//copyright 2005 Trinet Internet Solutions, Inc. 
//This code may not be copied or used without permission from Trinet Internet Solutions, Inc. 
//Please contact info@trinetsolutions.com for more information

var menu_x = 0;
var menu_y = 0;
var offsetHeight = 0;
var menu_displacement_x = -1;
var menu_displacement_y = 8;
var dhtml = (document.all || document.getElementById);

var menu_persist_interval = 400; 
var menu_hover_states = Array();
var menu_interval_objects = Array();
var menu_interval_states = Array();

//determine if we should use the iframe mask trick to prevent <select> lists from showing through the menus
//(think it only works in ie6 and higher, though possibly ie5.5)
var hide_div = get_hide_div();

function get_hide_div() {
	var agt = navigator.userAgent.toLowerCase();	
	var idx = agt.indexOf('msie');
	if (idx == -1 || agt.indexOf('opera') != -1) {
		return true;
	} else {
		//browser detection code from http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
		var is_major = parseInt(navigator.appVersion);
		var is_minor = parseFloat(navigator.appVersion);
		var is_ie3    = (is_major < 4);
		var is_ie4    = ((is_major == 4) && (agt.indexOf("msie 4")!=-1) );
		var is_ie4up  = (is_major >= 4);
		var is_ie5    = ((is_major == 4) && (agt.indexOf("msie 5")!=-1) );
		var is_ie6up =(!is_ie3 && !is_ie4 && !is_ie5);
		//end cited code
		if (is_ie6up) {
			return false;
		} else {
			return true;
		}
	}
}
function menu_link_mouseover (menu_name, parent) {

	if (parent != 'menu_none') {
		get_element(parent).allow_hide = false;
		get_element(menu_name).parent_menu = parent;
		menu_hover_states[parent] = true;
		//alert(menu_name + ' ' + parent);
	} else {
		close_all_menus();
		//document.images[menu_name + '_bar'].src = 'images/bg_blue.jpg';
	}
	menu_hover_states[menu_name] = true;
	set_and_show(menu_name);
}

function menu_link_mouseout(menu_name, child_menu) {
	menu_hover_states[menu_name] = false;
	schedule_menu_closing(menu_name);
	menu_hover_states[child_menu] = false;
}

function clear_menu_over(menu_name) {
	if ((get_element(menu_name).allow_hide != false) && !menu_hover_states[menu_name]) {
		clearInterval(menu_interval_objects[menu_name]);
		menu_interval_states[menu_name]=false;
		hide_menu(menu_name);
	}
}
function schedule_menu_closing(menu_name) {
	if (!menu_interval_states[menu_name]) {
		menu_interval_objects[menu_name] = setInterval('clear_menu_over("' + menu_name + '")', menu_persist_interval);
		menu_interval_states[menu_name]=true;
	}
}
function close_all_menus() {
	for (menu_name in menu_hover_states) {
		if (!get_element(menu_name)) {
			//alert(menu_name);
		} else {
			if (get_element(menu_name).allow_hide == true) {
				menu_hover_states[menu_name]=false;
				if (menu_interval_states[menu_name]) {
					clearInterval(menu_interval_objects[menu_name]);
					menu_interval_states[menu_name] = false;
					hide_menu(menu_name);
				}
			}
		}
	}
}

function set_and_show(menu_name) {
	e=document.images[menu_name + '_anchor'];
	//alert(typeof(e));
	menu_x=GetXOffset(e);
	menu_y=GetYOffset(e);
	offsetHeight = e.offsetHeight;
	if (hide_div == false) {
		//prevent <select> elements from showing through
		mask = get_element('iframe_mask' + get_menu_depth(menu_name));
		mask.style.left = (menu_x + menu_displacement_x) + 'px';
		mask.style.top = (menu_y + offsetHeight + menu_displacement_y) + "px";
		mask.style.height = get_element(menu_name).offsetHeight;
		mask.style.width = get_element(menu_name).offsetWidth;		

		mask.style.visibility = "visible";
	}
	show_menu(menu_name);
	schedule_menu_closing(menu_name);
}
function get_menu_depth(menu_name) {
	var i=1;
	e = get_element(menu_name);
	while (e.parent_menu) {
		e = get_element(e.parent_menu);
		i++;
	}
	return i;
}
		
function show_menu(menu_name) {
	if (dhtml) {
		var tempVar=get_element(menu_name);
		//document.getElementById('floater_text').innerHTML=menu_text;
		tempVar.style.left= (menu_x + menu_displacement_x) + "px";
		tempVar.style.top = (menu_y + offsetHeight + menu_displacement_y) + "px";
		tempVar.style.visibility="visible";
		tempVar.style.display='';
		tempVar.allow_hide=true;
	}
}
function hide_menu(menu_name) {
	if ( dhtml ){
		var tempVar = get_element(menu_name);
		tempVar.style.visibility="hidden";
		get_element('iframe_mask' + get_menu_depth(menu_name)).style.visibility = 'hidden';
		if ( get_element(tempVar.parent_menu) )  {
			get_element(tempVar.parent_menu).allow_hide=true;
			clear_menu_over(tempVar.parent_menu);
		} else {
			//document.images[menu_name + '_bar'].src='images/clear.gif';
		}
	}
}
function get_element(elem_id) {
	if (document.getElementById) {
		return document.getElementById(elem_id);
	} else if (document.all) {
		return document.all[elem_id];
	} else {
		return false;
	}
}	
function GetXOffset(e) {
	var x=e.offsetLeft;
	var pe;
	pe=e.offsetParent;
	while (pe !=null ) {
		x+=pe.offsetLeft;
		pe=pe.offsetParent;
	}
	return x;
}
function GetYOffset(e) {
	var y=e.offsetTop;
	var pe;
	pe=e.offsetParent;
	while (pe !=null ) {
		y+=pe.offsetTop;
		pe=pe.offsetParent;
	}
	return y;
}