// Javascript functions to create iCampus header bar and menu bar
// This version of the menu bar uses image rollover so that is works
// on Netscape 4.

// Warning: The url names here are absolute and need to be fixed if this
// directory is moved.

var on_image_url = "/projects/icampus/images/red-line.gif";
var off_image_url = "/projects/icampus/images/yellow-arrow.gif";
var image_width = 20;
var image_height = 20;

//precache the images
if (document.images) {
   var on_image = new Image(image_width, image_height);
   var off_image = new Image(image_width, image_height);
   on_image.src = on_image_url;
   off_image.src = off_image_url;
}


//----------------------------------------
// Top-level routines

//Call this to generate the menu bar by itself (eventually for page footer)

// Call this to generate the standard iCampus header

function generate_icampus_header() {
  document.write("<table align=center width=50%><tr><td align=center>");
  document.write("<img src=\"/projects/icampus/images/icampus-logo-final.jpg\" alt=\"iCampus\" width=132 height=50 border=0>");
  document.write("</td></tr></table>");
   create_color_bar();
   generate_icampus_menu_bar_header();
}

function generate_icampus_header1() {
   create_color_bar1();
   generate_icampus_menu_bar_header1();
}



//------------------
//old version
//function generate_icampus_header() {
//  document.write("<table align=center width=50%><tr><td width=20% align=right>");
//  document.write("<a href=\"http://web.mit.edu/\">  \
//<img src=\"/projects/icampus/images/mitsmall.gif\" alt=\"MIT\" width=40 height=25 border=0></a></td>");
//  document.write("<td align=center>          \
//                  <font color=#666699><strong><font size=+1 face=\"Times\"><em>i</em></font>Campus</strong></font> \
//                  </td>");
//  document.write("<td width=20% align=left>");
//  document.write("<a href=\"http://research.microsoft.com/\"><img src=\"/projects/icampus/images/mslogo-blue.gif\" alt=\"Microsoft\" height=25 border=0></a>");
//  document.write("</td></tr></table>");
//   create_color_bar();
//   generate_icampus_menu_bar_header();
//}
//------------------


function generate_icampus_footer() {
 document.write("<p>");
 generate_icampus_menu_bar_footer();  
 document.write("<font size=-1><p>Send comments about this site to ");
 document.write("<i><a href=\"mailto:icampus-webmaster@mit.edu\">icampus-webmaster@mit.edu</a></i>");
 document.write("<br>Last modified: ");
 document.write(document.lastModified);
 document.close();
}
		
function generate_icampus_footer1() {
 document.write("<p>");
 generate_icampus_menu_bar_footer1();  
 document.write("<font size=-1><p>Send comments about this site to ");
 document.write("<i><a href=\"mailto:icampus-webmaster@mit.edu\">icampus-webmaster@mit.edu</a></i>");
 document.write("<br>Last modified: ");
 document.write(document.lastModified);
 document.close();
}

function generate_icampus_footer2() {
 document.write("<p>");
 document.write("<font size=-1><p>Send comments about this site to ");
 document.write("<i><a href=\"mailto:icampus-webmaster@mit.edu\">icampus-webmaster@mit.edu</a></i>");
 document.write("<br>Last modified: ");
 document.write(document.lastModified);
 document.close();
}




//----------------------------------------
// Routines for generating menu

//turn images on and off
function turn_image_off(image_name) {
  if (document.images) {
    document.images[image_name].src = off_image.src;
  }
}

function turn_image_on(image_name) {
  if (document.images) {
    document.images[image_name].src = on_image.src;
  }
}

function set_message(msg) {
  window.status = msg;
  return true;
}

function generate_icampus_menu_bar_header(){
  generate_icampus_menu_bar_marked("1");
}


function generate_icampus_menu_bar_header1(){
  generate_icampus_menu_bar_marked1("1");
}

function generate_icampus_menu_bar_footer(){
  generate_icampus_menu_bar_marked("2");
}

function generate_icampus_menu_bar_footer1(){
  generate_icampus_menu_bar_marked1("2");
}

// marker is to add to image label to give images distinct names 
function generate_icampus_menu_bar_marked(marker){
  document.write("<center><table border=1 callpadding=0 cellspacing=0 bordercolor=yellow width=100%><tr>");
  create_row_entry(marker, "iCampus Home", "/projects/icampus/index.html", "Go to iCampus home page");
  create_row_entry(marker,"Current Projects", "/projects/icampus/projects", "Learn about current iCampus projects");
  create_row_entry(marker, "New Proposals", "/projects/icampus/proposals","Information about submitting proposals");
  create_row_entry(marker, "News", "/projects/icampus/news.html", "News about iCampus");
  create_row_entry(marker, "Contact", "/projects/icampus/contact.html", "Contact iCampus");
  document.write("</tr></table></center>");
}

function generate_icampus_menu_bar_marked1(marker){
  document.write("<center><table border=1 callpadding=0 cellspacing=0 bordercolor=yellow width=100%><tr>");
  create_row_entry1(marker, "iCampus Home", "/projects/icampus/index.html", "Go to iCampus home page");
  create_row_entry1(marker,"Current Projects", "/projects/icampus/projects", "Learn about current iCampus projects");
  create_row_entry1(marker, "New Proposals", "/projects/icampus/proposals","Information about submitting proposals");
  create_row_entry1(marker, "News", "/projects/icampus/news.html", "News about iCampus");
  create_row_entry1(marker, "Contact", "/projects/icampus/contact.html", "Contact iCampus");
  document.write("</tr></table></center>");
}





// create a cell in the table bar

//color should match definition in stylesheet
cell_text_color = "#FFFF99"
qcell_text_color = "\"" + cell_text_color + "\""
cell_highlight_text_color = "#CC0000"
qcell_highlight_text_color = "\"" + cell_highlight_text_color + "\""

cell_text_color1 = "#CCCCCC"
qcell_text_color1 = "\"" + cell_text_color1 + "\""

//some day, fix this so that it works in Netscape 4 as well, i.e., so
//that the image and text color flips when you mouse over text, as it does
//in IE and Netscape 6

function create_row_entry(marker, label,target_url,message){
  //add quotes to arguments for inclusion in event function strings
  var qlabel = "\"" + marker + label + "\"";
  var qurl = "\"" + target_url + "\"";  
  var qmessage = "\"" + message + "\"";
  var qoff_image_url = "\"" + off_image_url + "\"";
  var text_mouse_over_action = "this.style.color =" + qcell_highlight_text_color;
  var text_mouse_out_action = "this.style.color =" + qcell_text_color;
  var image_mouse_over_action = "turn_image_on(" + qlabel + "); return set_message(" + qmessage + ")";
  var image_mouse_out_action ="turn_image_off(" + qlabel + "); return set_message(\"\")";
  var link_mouse_spec = "onMouseOver=" + "\'" +
                         text_mouse_over_action + ";" + image_mouse_over_action + "\'"
                         + "onMouseOut=" + "\'" +
                            text_mouse_out_action +  ";" + image_mouse_out_action + "\'";
  var link_font_spec = "<font color=" + qcell_text_color + link_mouse_spec +">" + label + "</font>";
  var link_full_tag = "<a href = " + qurl + ">" +  link_font_spec + "</a>";
  document.write("<td align=center class='menucell'><table border=0><tr><td align=center>");
  document.write("<a href=" + qurl + " ");
  document.write(" onMouseOver=" + "\'" + image_mouse_over_action + "\'");
  document.write(" onMouseOut=" + "\'" + image_mouse_out_action + "\' >");
  document.write("<img src=" + qoff_image_url + " name=" + qlabel +
                   " alt=" + qmessage +
                   " height=" + image_height + " width=" + image_width + " border=0></a></td>");
  document.write("<td class=\'menucell\'>" + link_full_tag + "</td></tr></table></td>");
}	       

function create_row_entry1(marker, label,target_url,message){
  //add quotes to arguments for inclusion in event function strings
  var qlabel = "\"" + marker + label + "\"";
  var qurl = "\"" + target_url + "\"";  
  var qmessage = "\"" + message + "\"";
  var qoff_image_url = "\"" + off_image_url + "\"";
  var text_mouse_over_action = "this.style.color =" + qcell_highlight_text_color;
  var text_mouse_out_action = "this.style.color =" + qcell_text_color1;
  var image_mouse_over_action = "turn_image_on(" + qlabel + "); return set_message(" + qmessage + ")";
  var image_mouse_out_action ="turn_image_off(" + qlabel + "); return set_message(\"\")";
  var link_mouse_spec = "onMouseOver=" + "\'" +
                         text_mouse_over_action + ";" + image_mouse_over_action + "\'"
                         + "onMouseOut=" + "\'" +
                            text_mouse_out_action +  ";" + image_mouse_out_action + "\'";
  var link_font_spec = "<font color=" + qcell_text_color1 + link_mouse_spec +">" + label + "</font>";
  var link_full_tag = "<a href = " + qurl + ">" +  link_font_spec + "</a>";
  document.write("<td align=center class='menucell1'><table border=0><tr><td align=center>");
  document.write("<a href=" + qurl + " ");
  document.write(" onMouseOver=" + "\'" + image_mouse_over_action + "\'");
  document.write(" onMouseOut=" + "\'" + image_mouse_out_action + "\' >");
  document.write("<img src=" + qoff_image_url + " name=" + qlabel +
                   " alt=" + qmessage +
                   " height=" + image_height + " width=" + image_width + " border=0></a></td>");
  document.write("<td class=\'menucell1\'>" + link_full_tag + "</td></tr></table></td>");
}	       






//----------------------------------------
//Routines used in generating color bar

//number of distinct segments to generate
bar_segments=100

// If you change the start and end colors, you should also change
// the stylesheet so that the color of the menu cells match the center
// of the bar

string_start_r="FF"
string_start_g="33"
string_start_b="33"

string_end_r="00"
string_end_g="00"
string_end_b="00"

start_r = parseInt(string_start_r, 16)
start_g = parseInt(string_start_g, 16)
start_b = parseInt(string_start_b, 16)
end_r = parseInt(string_end_r, 16)
end_g = parseInt(string_end_g, 16)
end_b = parseInt(string_end_b, 16)

string_start1_r="51"
string_start1_g="68"
string_start1_b="150"

string_end1_r="190"
string_end1_g="199"
string_end1_b="216"

start1_r = parseInt(string_start1_r, 10)
start1_g = parseInt(string_start1_g, 10)
start1_b = parseInt(string_start1_b, 10)
end1_r = parseInt(string_end1_r, 10)
end1_g = parseInt(string_end1_g, 10)
end1_b = parseInt(string_end1_b, 10)


function create_color_bar() {
  document.write("<table border=0 cellpadding=0 cellspacing=0 width=100%><tr>")
    for (var k = 0; k<= bar_segments; k++) {
      document.write("<td bgcolor=")
	document.write(generate_segment_color(k))
	  document.write(">")
	  document.write("&nbsp")
	  document.write("</td>")
	  }
  document.write("</tr></table>")
  }

function create_color_bar1() {
  document.write("<table border=0 cellpadding=0 cellspacing=0 width=100%><tr>")
    for (var k = 0; k<= bar_segments; k++) {
      document.write("<td bgcolor=")
	document.write(generate_segment_color1(k))
	  document.write(">")
	  document.write("&nbsp")
	  document.write("</td>")
	  }
  document.write("</tr></table>")
  }





function interp(start,end,i) {
  return Math.round(start + (i * ((end - start) / bar_segments)))
  }

function my_to_string(i) {
  var s = i.toString(16)
    if (s.length < 2) {
      return "0" + s
      } else {
	return s}
}

function make_color(r,g,b) {
 return "#" + my_to_string(r) + my_to_string(g) + my_to_string(b)
 }

function generate_segment_color(i) {
  return make_color(interp(start_r,end_r,i),interp(start_g,end_g,i),interp(start_b,end_b,i))
  }

function generate_segment_color1(i) {
  return make_color(interp(start1_r,end1_r,i),interp(start1_g,end1_g,i),interp(start1_b,end1_b,i))
  }

