#!/usr/bin/perl
 
# Authors: Bill Rosener, John Rose
# Organization: DII, University of Tennessee, Knoxville
# Date: Spring 1997
# Purpose: This program takes a gif version of our campus map that
#          has been broken up into 9x13 grid and allows users to
#          view 1x1, 2x2, 3x3, 4x4, or 5x5 grids of the map. Users
#          can also traverse in four different directions within the
#          map. You will need to use the naming convention for the grids
#          to be "cam+the row+-+the column.gif". For example:
#          cam2-3.gif

 
require 'cgi-lib.pl';


&main;
 
 
sub main {
  &ReadParse;
  print &PrintHeader;

  #  print "grids = $in{grids} <br>\n"; 
  #  print "start = $in{start} <br>\n";  

  ($starting_row, $starting_col) = split(":", $in{start});

#123
  ($starting_row, $starting_col) = &verify_starting_values 
    ($starting_row, $starting_col, $in{num_rows}, $in{num_cols}, $in{grids});


  # print "starting row = $starting_row<br>\n"; 
  # print "starting col = $starting_col<br>\n"; 
  # print "num rows = $in{num_rows} <br>\n"; 
  # print "num cols = $in{num_cols} <br>\n"; 

  print "<center>\n";
  print "<table border=1 cellspacing=2 cellpadding=2>\n";
  if ($starting_row eq 1) {
    # Do not add North button.
  }
  else {
    print "<tr>\n";
    print "<td align=center valign=bottom colspan=3>\n";
    $new_start = ($starting_row - 1) . ":" . $starting_col;
    print "<form method=POST action=\"http://www.utk.edu/";
    print "cgi-bin/campus-map/campus-map.pl\">\n";
    print "<input type=submit name=\"submit\" value=\"North\">\n";
    print "<input type=\"hidden\" name=\"grids\" value=$in{grids}>\n";
    print "<input type=\"hidden\" name=\"start\" value=$new_start>\n";
    print "<input type=\"hidden\" name=\"num_rows\" value=$in{num_rows}>\n";
    print "<input type=\"hidden\" name=\"num_cols\" value=$in{num_cols}>\n";
    print "</form>\n";
    print "</td>\n";
    print "</tr>\n";
  }

  print "<tr>\n";

  if ($starting_col eq 1) {
    # Do not add West button.
  }
  else {
    print "<td valign= center>\n";
    $new_start = $starting_row . ":" . ($starting_col - 1);
    print "<form method=POST action=\"http://www.utk.edu/";
    print "cgi-bin/campus-map/campus-map.pl\">\n";
    print "<input type=submit name=\"submit\" value=\"West\">\n";
    print "<input type=\"hidden\" name=\"grids\" value=$in{grids}>\n";
    print "<input type=\"hidden\" name=\"start\" value=$new_start>\n";
    print "<input type=\"hidden\" name=\"num_rows\" value=$in{num_rows}>\n";
    print "<input type=\"hidden\" name=\"num_cols\" value=$in{num_cols}>\n";
    print "</form>\n";
    print "</td>\n";
  }

  print "<td>\n";
  print "<table border=0 cellspacing=0 cellpadding=0>\n";

  print "<tr>\n";


  $col_counter = 0;
  while ($col_counter <= ($in{grids} - 1)) {
    print "<td>\n";

    $row_counter = 0;
    while ($row_counter <= ($in{grids} - 1)) {
      $the_row = $starting_row + $row_counter;
      $the_col = $starting_col + $col_counter;

      print "<img src=\"http://www.utk.edu/maps/campus/";
      print "cam$the_row-$the_col.gif\" ";
      print "width=196 height=192><br>";
      $row_counter = $row_counter + 1;
    }
    $col_counter = $col_counter + 1;
    print "</td>\n";
  }

  print "</tr>\n";
  print "</td>\n";
  print "</table>\n";
  print "</td>\n";


  $temp = &display_east ($starting_col, $in{num_cols}, $in{grids});
  if ($temp eq 0) {
    # print "Do NOT display EAST option.<br>\n";
    # Do NOT display EAST option.
  }  
  else {
    # print "Display EAST option.<br>\n";
    print "<td valign=center>\n";

    $new_start = $starting_row . ":" . ($starting_col + 1);
    print "<form method=POST action=\"http://www.utk.edu/";
    print "cgi-bin/campus-map/campus-map.pl\">\n";
    print "<input type=submit name=\"submit\" value=\"East\">\n";
    print "<input type=\"hidden\" name=\"grids\" value=$in{grids}>\n";
    print "<input type=\"hidden\" name=\"start\" value=$new_start>\n";
    print "<input type=\"hidden\" name=\"num_rows\" value=$in{num_rows}>\n";
    print "<input type=\"hidden\" name=\"num_cols\" value=$in{num_cols}>\n";
    print "</form>\n";

#    print "<input type=submit name=\"submit\" value=\"East\">\n";
    print "</td>\n";
  }
  print "</tr>\n";

   
  $temp = &display_south ($starting_row, $in{num_rows}, $in{grids});
  if ($temp eq 0) {
    # print "Do NOT display South option.<br>\n";
    # Do NOT display SOUTH option.
  }  
  else {
    # print "Display South option.<br>\n";
    print "<tr>\n";
    print "<td align=center colspan=3>\n";

    $new_start = ($starting_row + 1) . ":" . $starting_col;
    print "<form method=POST action=\"http://www.utk.edu/";
    print "cgi-bin/campus-map/campus-map.pl\">\n";
    print "<input type=submit name=\"submit\" value=\"South\">\n";
    print "<input type=\"hidden\" name=\"grids\" value=$in{grids}>\n";
    print "<input type=\"hidden\" name=\"start\" value=$new_start>\n";
    print "<input type=\"hidden\" name=\"num_rows\" value=$in{num_rows}>\n";
    print "<input type=\"hidden\" name=\"num_cols\" value=$in{num_cols}>\n";
    print "</form>\n";

    print "</td>\n";
    print "</tr>\n";
  }

  print "</table>";
  print "</center>\n";
  print "<p><br>\n";

  &display_legend;

}



# 123
sub verify_starting_values {
  local ($start_row, $start_col, $num_rows, $num_cols, $grids) = @_;

  # print "start row = $start_row <br>\n";
  # print "start col = $start_col <br>\n";
  # print "num rows = $num_rows <br>\n";
  # print "num cols = $num_cols <br>\n";
  # print "grids = $grids <br>\n";
  
  if (($start_row + $grids) > $num_rows) {
    $start_row = ($num_rows + 1) - $grids;
  }

  if (($start_col + $grids) > $num_cols) {
    $start_col = ($num_cols + 1) - $grids;
  }

  # print "new start row = $start_row<br>\n";
  # print "new start col = $start_col<br>\n";

  return ($start_row, $start_col);
}




sub display_east {

  local ($starting_col, $num_cols, $grid_size) = @_;

  # print "starting row = $starting_row<br>\n"; 
  # print "starting col = $starting_col<br>\n"; 
  # print "num rows = $num_rows <br>\n"; 
  # print "num cols = $num_cols<br>\n"; 
  # print "grid size = $grid_size<br>\n"; 

  if (($starting_col + $grid_size) > $num_cols) {
    return (0);
  }
  else {
    return (1);
  }
}


sub display_south {
 
  local ($starting_row, $num_rows, $grid_size) = @_;
 
  # $starting_row = 8;
  # print "starting row = $starting_row<br>\n";  
  # print "starting col = $starting_col<br>\n";
  # print "num rows = $num_rows <br>\n";
  # print "num cols = $num_cols<br>\n";
  # print "grid size = $grid_size<br>\n";
 
  if (($starting_row + $grid_size) > $num_rows) {
    return (0);
  }
  else {
    return (1);
  }
 
}


sub display_legend {

  print "<h3>Legend</h3>\n";
  print "<table>\n";
  print "<tr>\n";
  print "<td><img src=\"/maps/campus/student.parking.gif\"> ";
  print "<b>Student Parking</b></td>\n";
  print "<td> &nbsp; &nbsp; </td>\n";
  print "<td><img src=\"/maps/campus/staff.area.parking.gif\"> ";
  print "<b>Staff Area Parking</b></td>\n";
  print "</tr>\n";

  print "<tr>\n";
  print "<td><img src=\"/maps/campus/staff.reserved.area.gif\"> ";
  print "<b>Restricted Parking</b> <br>";
  print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  print "as designated by signs</td>\n";
  print "<td> &nbsp; &nbsp; </td>\n";
  print "<td><img src=\"/maps/campus/visitor.parking.gif\"> ";
  print "<b>Visitor Parking</b> <br>";
  print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  print "(Visitor Permit Required except at<br>";
  print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  print "Univ. Ctr garage or parking meters)</td>\n";
  print "</tr>\n";

  print "<tr>\n";
  print "<td><img src=\"/maps/campus/aquatic.center.use.gif\"> ";
  print "<b>Aquatic Center Use Only</b> <br>";
  print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  print "Staff or Commuter Permit</td>\n";
  print "<td> &nbsp; &nbsp; </td>\n";
  print "<td><img src=\"/maps/campus/staff.student.gif\"> ";
  print "<b>Staff/Student Parking</b></td>\n";
  print "</tr>\n";

  print "<tr>\n";
  print "<td><img src=\"/maps/campus/staff.visitor.gif\"> ";
  print "<b>Staff/Visitor Parking</b></td>\n";
  print "<td> &nbsp; &nbsp; </td>\n";
  print "<td><img src=\"/maps/campus/meter.parking.gif\"> ";
  print "<b>Meter Parking</b></td>\n";
  print "</tr>\n";

  print "<tr>\n";
  print "<td><img src=\"/maps/campus/emergency.blue.phone.trans.gif\"> ";
  print "<b>Emergency Blue Phones</b></td>\n";
  print "<td> &nbsp; &nbsp; </td>\n";
  print "<td><img src=\"/maps/campus/interior.blue.phone.trans.gif\"> ";
  print "<b>Interior Emergency Blue Phones</b></td>\n";
  print "</tr>\n";

  print "</table>\n"</b>;

  print "<p><br><br> \n";

  print "Return to \n";
  print "<a href=\"http://www.utk.edu/maps/\">UTK Maps</a> \n";
  print "<p> \n";
  print "Maps &#169 2004-2005 <br> \n";
  print "These maps may not be reproduced, copied, altered, or \n";
  print "distributed without permission of the University of Tennessee \n";
  print "Geography Department, Cartographic Services Laboratory, \n";
  print "(423) 974-2418.\n";
  print "<p> \n";
  print "Hypertext and scanning by the \n";
  print "<a href=\"http://www.it.utk.edu/itc/\">Innovative \n";
  print "Technologies Center</a>. \n";


  print "<p><br><p>\n";

}

