// variable declarations

var js_dhtml_top = 58;

var Px = 0;
var Py = 0;

var page_position_left = 0;
var old_page_width = 0;
var old_page_height = 0;

var current_menu = "";
var old_menu = "";
var roll_menu = "";
var roll_movedmenu = "";
var current_section = "shell";
var requested_section = "";
var old_section = "";
var current_page = 1;

var clip_counter = 0;
var clip_counter_end = 0;
var unclip_counter = 0;
var unclip_counter_end = 0;

var roll_rolledlayer_currentheight = 0;
var roll_rolledlayer_currentheight_end = 0;
var roll_movedlayer_top = 0;
var roll_direction = "up";
var roll_rolledlayer_totalheight = 0;

var scrolltext_menu_top = js_dhtml_top;
var scrolltext_clip_top = 0;
var scrolltext_height = 0;
var scrolltext_release = true;
var scrolltext_direction = "up";
var scrollcontrol_open = false;

var resize_timeout = 0;
var clip_timeout = 0;
var unclip_timeout = 0;
var sequence_timeout = 0;
var roll_timeout = 0;
var scrolltext_timeout = 0;

var clipping_ended = "yes";
var unclipping_ended = "yes";
var rolling_ended = "yes";
var left_rolling_ended = "yes";
var allow_scroll = "yes";

ns4 = (document.layers)? true:false; // netscape 4?
ie4 = (document.all)? true:false; // internet explorer 4/5?
ns6 = (ns4|ie4)? false:true; // (Netscape 6)

// DHTML Core Functions

function openMenuImmediate(in_menu,is_initial) {
	var layer_to_change = in_menu.toString();
	if (is_initial == "yes") {
		establishPosition(in_menu);
	}
	if (document.layers) {
		window.document.layers[layer_to_change].visibility = "show";
	}
	else {
		returnElement(in_menu).style.visibility = "visible";
	}
}

function closeMenuImmediate(in_menu) {
	var layer_to_change = in_menu.toString();
	if (document.layers) {
		window.document.layers[layer_to_change].visibility = "hide";
	}
	else {
		returnElement(in_menu).style.visibility = "hidden";
	}
}

function returnElement(thename) {
	if (document.all) {
		return eval("window.document.all." + thename);
	} else {
		if (document.layers) {
			return eval("window.document.layers['" + thename + "']");
		} else {
			return window.document.getElementById(thename);
		}
	}
}

function establishPosition (in_menu) {
	menu_offset = 0;
	if (in_menu == "lbracket") {
		menu_offset = 175;
	}
	if (in_menu == "rbracket") {
		menu_offset = 513;
	}
	if (in_menu == "middle") {
		menu_offset = 226;
	}
	if (in_menu.indexOf("left") == 0) {
		menu_offset = 7;
	}
	if (in_menu.indexOf("right") == 0) {
		menu_offset = 561;
	}
	if (in_menu.indexOf("scroll") == 0) {
		menu_offset = 740;
	}
	if (in_menu.indexOf("info") == 0) {
		menu_offset = 121;
	}
	if (document.layers) {
		window.document.layers[in_menu].left = page_position_left + menu_offset;
	}
	else {
		returnElement(in_menu).style.left = page_position_left + menu_offset;
	}
}

function clipMenu(in_menu,in_position,in_value) {
	menu_to_change = in_menu.toString();
	if (in_position == "left") {
		var clip_var = "rect(auto auto auto " + in_value + ")";
	}
	else {
		if (in_position == "bottom") {
			if (menu_to_change.indexOf("left") == 0) {
				var clip_var = "rect(auto auto " + in_value + " auto)";
			}
			else {
				if (scrolltext_clip_top == 0) {
					var clip_var = "rect(auto auto " + in_value + " auto)";
				}
				else {
					temp_clip_bottom = in_value + scrolltext_clip_top;
					var clip_var = "rect(" + scrolltext_clip_top + " auto " + temp_clip_bottom + " auto)";
				}
			}
		}
		else {
			// in_direction equals "topbottom"
			bottom_clip = in_value + 393;
			var clip_var = "rect(" + in_value + " auto " + bottom_clip + " auto)";
		}			
	}
	if (ie4) {
		returnElement(menu_to_change).style.clip = clip_var;
	}
	if (ns6) {
		returnElement(menu_to_change).style.clip = clip_var;
	}
	if (ns4) {
		if (in_position == "left") {
			returnElement(menu_to_change).clip.left = in_value;	
		}
		else {
			if (in_position == "bottom") {
				if (menu_to_change.indexOf("left") == 0) {
					returnElement(menu_to_change).clip.bottom = in_value;	
				}
				else {
					if (scrolltext_clip_top == 0) {
						returnElement(menu_to_change).clip.bottom = in_value;	
					}
					else {
						temp_clip_bottom = in_value + scrolltext_clip_top;
						returnElement(menu_to_change).clip.bottom = temp_clip_bottom;	
						returnElement(menu_to_change).clip.top = scrolltext_clip_top;	
					}
				}
			}
			else {
				// in_direction equals "topbottom"
				bottom_clip = in_value + 393;
				returnElement(menu_to_change).clip.top = in_value;	
				returnElement(menu_to_change).clip.bottom = bottom_clip;	
			}
		}		
	}
}

function moveMenu(in_menu,in_value,in_context) {
	if (ns6) {
		returnElement(in_menu).style.top = in_value;
	}
	if (ns4) {
		if (in_context != "scroll") {
			returnElement(in_menu).top = in_value;
		}
		else {
			menu_to_change = "right" + current_section + "content";
			ubermenu_to_change = "right" + current_section;
			window.document.layers[ubermenu_to_change].document.layers[menu_to_change].top = in_value;
		}
	}
	if (ie4) {
		returnElement(in_menu).style.top = in_value;
	}
}

// Change of Section Functions

function begin_content_change(in_section) {
	if (clipping_ended == "no" || unclipping_ended == "no" || rolling_ended == "no") {
		return;
	}
	current_menu_height = js_dhtml_top;
	closeMenuImmediate("info" + in_section);
	if (js_isie4mac == "Yes") {
		change_content_disabled(in_section);
	}
	else {
		requested_section = in_section;
		old_section = current_section;
		start_rolling('left');
		wipe_content();
	}
}

function wipe_content() {
	if (clipping_ended == "no")	{
		sequence_timeout = setTimeout("wipe_content()",100);
		return;
	}
	if (current_menu == "") {
		current_menu = "lbracket";
		start_clipping(40);
		sequence_timeout = setTimeout("wipe_content()",100);
	}									
	else {
		if (current_menu == "lbracket") {
			change_middle_image();
			old_menu = current_menu;
			current_menu = "middle";
			start_unclipping(40);
			start_clipping(276);
			sequence_timeout = setTimeout("wipe_content()",100);
		}	
		else {
			if (current_menu == "middle") {
				current_menu = "rbracket";
				start_clipping(41);
				requested_section = current_section;
				change_middle_image();
				clipMenu("middle","left",0);
				sequence_timeout = setTimeout("wipe_content()",100);
			}	
			else {
				if (current_menu == "rbracket") {
					old_menu = current_menu;
					start_rolling("right");
					start_unclipping(41);
					current_menu = "";
				}
			}	
		}
	}								
}

function start_clipping(in_end) {
	clip_counter = 0;
	clip_counter_end = in_end;
	clipping_ended = "no";
	clip_timeout = setTimeout("clip_content()",1);
}

function start_unclipping(in_end) {
	unclip_counter = in_end;
	unclip_counter_end = 0;
	unclipping_ended = "no";
	unclip_timeout = setTimeout("unclip_content()",1);
}

function clip_content() {
	clipMenu(current_menu,"left",clip_counter);
	if (clip_counter < clip_counter_end) {
		if (current_menu == "middle") {
			clip_counter = clip_counter + js_middle_fade;
		}
		else {
			clip_counter = clip_counter + js_bracket_fade;
		}
		clip_timeout = setTimeout("clip_content()",1);
		return true;
	}
	else {
		clipMenu(current_menu,"left",clip_counter_end);
		clipping_ended = "yes";
		return true;
	}
}

function unclip_content() {
	clipMenu(old_menu,"left",unclip_counter);
	if (unclip_counter > unclip_counter_end) {
		unclip_counter = unclip_counter - js_bracket_fade;
		unclip_timeout = setTimeout("unclip_content()",1);
		return true;
	}
	else {
		clipMenu(old_menu,"left",0);
		unclipping_ended = "yes";
		return true;
	}
}

function change_middle_image() {
	var requested_image_src = eval("middle_" + requested_section + ".src");
	var current_image_src = eval("middle_" + current_section + ".src");
	current_section = requested_section;
	if (ns4) {
		window.document.layers["middle"].document.images['middle_wipe_image'].src=current_image_src;
		window.document.images['middle_main_image'].src=requested_image_src;
	}
	if (ie4) {
		window.document.all["middle"].document.images["middle_wipe_image"].src=current_image_src;
		window.document.images['middle_main_image'].src=requested_image_src;
	}
	if (ns6) {
		document.images["middle_wipe_image"].src=current_image_src;
		window.document.images['middle_main_image'].src=requested_image_src;
	}
}

function paginate_menu(in_page,in_position) {
	menu_to_close = "right" + current_section;
	if (current_page > 1) {
		menu_to_close = menu_to_close + current_page;
	}
	menu_to_open = "right" + current_section;
	if (in_page > 1) {
		menu_to_open = menu_to_open + in_page;
	}
	closeMenuImmediate(menu_to_close);
	openMenuImmediate(menu_to_open,"yes");
	clipMenu(menu_to_open,"bottom",393);
	current_page = in_page;
}

function paginate_release(in_position) {
}

// Side Menu Rollups and Rolldowns

function start_rolling(in_position) {
	if (left_rolling_ended == "no" && in_position == "right") {
		temptimeout = setTimeout("start_rolling('right')",100);
		return;
	}
	if (in_position == "left") {
		left_rolling_ended = "no";
		roll_rolledlayer_totalheight = 215;
		roll_section = current_section;
	}
	if (in_position == "right") {
		closeMenuImmediate("scrollcontrol");
		scrollcontrol_open = false;
		roll_rolledlayer_totalheight = 393;
		roll_section = old_section;
	}
	if (roll_direction == "up") {
		roll_rolledlayer_currentheight = roll_rolledlayer_totalheight;
	}
	else {
		roll_rolledlayer_currentheight = 4;	
	}	
	roll_movedlayer_top = roll_rolledlayer_currentheight + js_dhtml_top;
	if (rolling_ended == "yes") {
		roll_menu = in_position + roll_section;
		if (current_page > 1 && in_position == "right") {
			roll_menu = roll_menu + current_page;
			current_page = 1;
		}
	}
	roll_movemenu = in_position + "bottom";	
	rolling_ended = "no";
	roll_timeout = setTimeout("roll_content()",1);
}

function roll_content() {
	if (roll_rolledlayer_currentheight < 4 || roll_movedlayer_top < js_dhtml_top) {
		roll_movedlayer_top = js_dhtml_top;
		roll_rolledlayer_currentheight = 4;
	}
	if (roll_rolledlayer_currentheight > roll_rolledlayer_totalheight) {
		roll_rolledlayer_currentheight = roll_rolledlayer_totalheight;
	}
	if (roll_movedlayer_top > roll_rolledlayer_totalheight + js_dhtml_top) {
		roll_movedlayer_top = roll_rolledlayer_totalheight + js_dhtml_top;
	}
	clipMenu(roll_menu,"bottom",roll_rolledlayer_currentheight);
	moveMenu(roll_movemenu,roll_movedlayer_top,"main");
	if (roll_direction == "up") {
		if (roll_rolledlayer_currentheight >4) {
			roll_rolledlayer_currentheight = roll_rolledlayer_currentheight - js_roll_rate;
			roll_movedlayer_top = roll_movedlayer_top - js_roll_rate;
			roll_timeout = setTimeout("roll_content()",1);
			return true;
		}
		else {
			roll_direction = "down";
			if (roll_menu.indexOf('left') == 0) {
				menu_to_open = 'left' + requested_section;
			}
			else {
				menu_to_open = 'right' + requested_section;
				scrollmenu_to_open = 'right' + requested_section + 'content';
				moveMenu(menu_to_open,js_dhtml_top,"main");
				moveMenu(scrollmenu_to_open,0,"scroll");
				scrolltext_menu_top = 0;
			}
			closeMenuImmediate(roll_menu);
			openMenuImmediate(menu_to_open,'yes');
			clipMenu(menu_to_open,"bottom",4);
			roll_menu = menu_to_open;
			if (roll_menu.indexOf('left') == 0) {
				roll_timeout = setTimeout("start_rolling('left')",js_roll_pause);
			}
			else {
				roll_timeout = setTimeout("start_rolling('right')",js_roll_pause);
			}
			return true;
		}
	}
	else {
		if (roll_rolledlayer_currentheight < roll_rolledlayer_totalheight) {
			roll_rolledlayer_currentheight = roll_rolledlayer_currentheight + js_roll_rate;
			roll_movedlayer_top = roll_movedlayer_top + js_roll_rate;
			roll_timeout = setTimeout("roll_content()",1);
			return true;
		}
		else {
			rolling_ended = "yes";
			left_rolling_ended = "yes";
			roll_direction = "up";
			set_scroll_text_height();
			if (scrolltext_height > 393 && roll_menu.indexOf("right") == 0) {
				if (js_allow_scroll != "No") {
					scrollcontrol_open = true;
					openMenuImmediate('scrollcontrol','yes');
				}
			}
			return true;
		}
	}
}

// Scroll Text Functions

function set_scroll_text_height() {
	menu_to_change = "right" + current_section + "content";
	ubermenu_to_change = "right" + current_section;
	if (ie4) {
		scrolltext_height = returnElement(menu_to_change).clientHeight;
	}
	if (ns4) {
		scrolltext_height = window.document.layers[ubermenu_to_change].document.layers[menu_to_change].document.height;
	}
	if (ns6) {
		scrolltext_height = returnElement(menu_to_change).offsetHeight;
	}
}

function scroll_text(in_direction) {
	if (in_direction == "down" && scrolltext_menu_top >= 0) {
		scrolltext_menu_top = 0 - js_scroll_rate_down;
	}
	if (in_direction == "up") {
		scrolltext_menu_top = scrolltext_menu_top + js_scroll_rate;
	}
	if (in_direction == "down") {
		scroll_text_swapall();
		scroll_text_imageswap("scroll_up","roll");
	}
	else {
		scroll_text_swapall();
		scroll_text_imageswap("scroll_down","roll");
	}
	scrolltext_release = false;
	scrolltext_direction = in_direction;
	if (!scrolltext_release) {
		scrolltext_timeout = setTimeout("scroll_text_enact()",10);
	}
}

function scroll_text_enact() {
	menu_to_change = "right" + current_section + "content";
	if (scrolltext_direction == "down") {
		scrolltext_menu_top = scrolltext_menu_top + js_scroll_rate_down;
		if (scrolltext_menu_top > 0) {
			scrolltext_menu_top = 0;
		}
		moveMenu(menu_to_change,scrolltext_menu_top,"scroll");
	}
	else {
		scrolltext_menu_top = scrolltext_menu_top - js_scroll_rate;
		if (scrolltext_menu_top < (0 - (scrolltext_height - 393))) {
			scrolltext_menu_top = 0 - (scrolltext_height - 393);
		}
		moveMenu(menu_to_change,scrolltext_menu_top,"scroll");
	}
	if (!scrolltext_release) {
		if (scrolltext_direction == "up") {
			scrolltext_timeout = setTimeout("scroll_text_enact()",10);
		}
		if (scrolltext_direction == "down" && scrolltext_menu_top < 0) {
			scrolltext_timeout = setTimeout("scroll_text_enact()",10);
		}
	}
}

function scroll_text_release() {
	scrolltext_release = true;
	scroll_text_swapall();
}

function scroll_text_imageswap(img_name,in_state) {
	if (ns4) {
		returnElement("scrollcontrol").document.images[img_name].src = eval(img_name + "_" + in_state + ".src");
	}
	else {
		document.images[img_name].src = eval(img_name + "_" + in_state + ".src")
	}
}

function scroll_text_swapall() {
	scroll_text_imageswap("scroll_up","off");
	scroll_text_imageswap("scroll_down","off");
	scroll_text_imageswap("scroll_top","off");
	scroll_text_imageswap("scroll_bottom","off");
}

function scroll_text_page(in_direction) {
	if (in_direction == "down" && scrolltext_menu_top >= 0) {
		scrolltext_menu_top = 0 - 393;
	}
	if (in_direction == "up" && (scrolltext_clip_top + 393) >= scrolltext_height) {
		scrolltext_menu_top = scrolltext_menu_top + 393;
	}
	scrolltext_direction = in_direction;
	scrolltext_timeout = setTimeout("scroll_text_page_enact()",10);
}

function scroll_text_page_enact() {
	if (scrolltext_direction == "down") {
		scrolltext_menu_top = scrolltext_menu_top + 393;
		if (scrolltext_menu_top > 0) {
			scrolltext_menu_top = 0;
		}
		moveMenu(menu_to_change,scrolltext_menu_top,"scroll");
	}
	else {
		scrolltext_menu_top = scrolltext_menu_top - 393;
		if (scrolltext_menu_top < (0 - (scrolltext_height - 393))) {
			scrolltext_menu_top = 0 - (scrolltext_height - 393);
		}
		moveMenu(menu_to_change,scrolltext_menu_top,"scroll");
	}
}

function scroll_text_all(in_direction) {
	if (in_direction == "top") {
		scrolltext_menu_top = 0;
		moveMenu(menu_to_change,scrolltext_menu_top,"scroll");
	}
	else {
		scrolltext_menu_top = 0 - (scrolltext_height - 393);
		moveMenu(menu_to_change,scrolltext_menu_top,"scroll");
	}
}

// Resize Page Check Functions

function resize_screen(){
	document.images["lbracket_image"].src = js_root + "home/images/lbracket.gif";
	document.images["rbracket_image"].src = js_root + "home/images/rbracket.gif";
	closeMenuImmediate("lbracket");
	closeMenuImmediate("rbracket");
	closeMenuImmediate("middle");
	window.location.reload(true);
}

// Initialization

function init() {
	if (ie4) {
		if ((document.body.clientWidth) < 774)
		{
			page_position_left = 0;
		}
		else
		{
			page_position_left = Math.floor(((document.body.clientWidth -774)/ 2));
		}
	}
	if (ns4) {
		page_position_left = document.left_edge_spacer.x;
		if (page_position_left >0) {
			page_position_left = page_position_left + 1;
		}
	}
	if (ns6) {
		page_position_left = document.left_edge_spacer.offsetLeft;
	}
	//openMenuImmediate('lbracket','yes');
	//openMenuImmediate('rbracket','yes');
	//openMenuImmediate('middle','yes');
	//openMenuImmediate('leftshell','yes');
	//openMenuImmediate('leftbottom','yes');
	//openMenuImmediate('rightshell','yes');
	//openMenuImmediate('rightbottom','yes');
	//openMenuImmediate('righttop','yes');
	//document.images["lbracket_image"].src = js_root + "home/images/lbracket_white.gif";
	//document.images["rbracket_image"].src = js_root + "home/images/rbracket_white.gif";

	if (document.layers)
	{
		
		window.document.captureEvents(Event.MOUSEMOVE);
		window.document.onMouseMove=handleMouseMove;

	} else {
	
		window.document.onmousemove=handleMouseMove;
	}
}

// Mouse Moves

function handleMouseMove(e)
{
	if (ns4)
	{
		Px = e.pageX;
		Py = e.pageY;
		
	} else {
	
		if (e)
		{
			Px = e.clientX;
			Py = e.clientY;
			
		} else {
		
			Px = event.clientX + document.body.scrollLeft;
			Py = event.clientY + document.body.scrollTop;
			
		}
	}
	if (scrollcontrol_open) {
		image_up_on = false;
		image_down_on = false;
		if (ns6) {
			if (window.document.images["scroll_up"].src == eval("scroll_up_roll.src")) {
				image_up_on = true;
			}	
			if (window.document.images["scroll_down"].src == eval("scroll_down_roll.src")) {
				image_down_on = true;
			}
		}
		else {
			if (returnElement("scrollcontrol").document.images["scroll_up"].src == eval("scroll_up_roll.src")) {
				image_up_on = true;
			}	
			if (returnElement("scrollcontrol").document.images["scroll_down"].src == eval("scroll_down_roll.src")) {
				image_down_on = true;
			}
		}
		up_target_left = page_position_left + 742;
		up_target_right = up_target_left + 16;
		up_target_top = js_dhtml_top + 182;
		up_target_bottom = up_target_top + 16;
		down_target_left = page_position_left + 742;
		down_target_right = down_target_left + 16;
		down_target_top = js_dhtml_top + 202;
		down_target_bottom = down_target_top + 16;
		if (image_up_on) {
			if (Px>up_target_right || Px<up_target_left || Py>up_target_bottom || Py<up_target_top) {
				scroll_text_release();
			}
		}
		if (image_down_on) {
			if (Px>down_target_right || Px<down_target_left || Py>down_target_bottom || Py<down_target_top) {
				scroll_text_release();
			}
		}
	}
}

// Related Functions

function addtofav(linkUrl,linkTitle){
   if (ns4) {
      alert('Please hit ctrl-d to bookmark this page');
   }
   if (ns6) {
      alert('Please hit ctrl-d to bookmark this page');
   }
   if (ie4) {
	external.AddFavorite(linkUrl,linkTitle);
	return false;
   }
}

