// JavaScript Document

var hideDelay = 250;

// Detect browser
var browser;
var ua = navigator.userAgent.toLowerCase();
if(ua.indexOf("firefox") != -1) browser = "firefox";
if(ua.indexOf("msie") != -1) browser = "msie";
if(ua.indexOf("opera") != -1) browser = "opera";
if(ua.indexOf("safari") != -1) browser = "safari";
if(ua.indexOf("chrome") != -1) browser = "chrome";

var ie4 = document.all;
var ns6 = document.getElementById && !document.all;

if (ie4 || ns6) {
	document.write('<div id="subMenu" onMouseover="clearhidemenu();" onMouseout="dynamichide(event);"></div>');
}

var currentObj;

function showhide(e) {
	if (ie4 || ns6) {
		dropmenuobj.style.left = dropmenuobj.style.top = "-500px";
	}
	
	if (e.type == "click" && obj.visibility == "hidden" || e.type == "mouseover") {
		dropmenuobj.style.visibility = "visible";
	} else if (e.type == "click") {
		dropmenuobj.style.visibility = "hidden";
	}
}

function populateMenu(menuID) {
	var menu_str = "";
	
	menu_str += '<div class="subMenuContent">';
	
	var mnu = document.getElementById(menuID);
	
	menu_str += mnu.innerHTML;
	
	menu_str += '</div>';
	
	if (ie4 || ns6) {
		dropmenuobj.innerHTML = menu_str;
	}
}

function subMenu(obj, e, menuID) {
	if(currentObj != undefined) {
		currentObj.className = "";
	}
	
	currentObj = obj;
	currentObj.className = "selectedMenu";
	
	if (window.event) {
		event.cancelBubble = true;
	} else if (e.stopPropagation) {
		e.stopPropagation();
	}
	
	clearhidemenu();
	
	dropmenuobj = document.getElementById ? document.getElementById("subMenu") : subMenu;
	populateMenu(menuID);

	var tPad = 0;
	
	if(browser == "opera") {
		//tPad = -4;
	}
	
	if (ie4 || ns6) {
		showhide(e);
		dropmenuobj.style.position = "absolute";
		dropmenuobj.style.left = leftPos(obj, 0) + "px";
		dropmenuobj.style.top = topPos(obj, obj.offsetHeight + tPad) + "px";
	}

	return clickreturnvalue();
}

function clickreturnvalue() {
	if (ie4 || ns6) {
		return false;
	} else {
		return true;
	}
}

function contains_ns6(a, b) {
	while (b.parentNode) {
		if ((b = b.parentNode) == a) {
			return true;
		}
	}
	
	return false;
}

function dynamichide(e) {
	if (ie4 && !dropmenuobj.contains(e.toElement)) {
		hideSubMenu();
	} else if (ns6 && e.currentTarget != e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget)) {
		hideSubMenu();
	}
}

function hidemenu(e) {
	if (typeof dropmenuobj != "undefined") {
		if (ie4 || ns6) {
			dropmenuobj.style.visibility = "hidden";
			
			if(currentObj != undefined) {
				currentObj.className = "";
			}
		}
	}
}

function hideSubMenu() {
	if (ie4 || ns6) {
		delayhide = setTimeout("hidemenu()", hideDelay);
	}
}

function clearhidemenu() {
	if (typeof delayhide != "undefined") {
		clearTimeout(delayhide);
	}
}

document.onclick = hidemenu;

// Find absolute left position of the object in the document
function leftPos(obj, diff) {
	var leftCoord = 0;
	
	while(obj) {
	   leftCoord += obj.offsetLeft;
	   obj = obj.offsetParent;
	}
	
	return leftCoord + diff;
}

// Find absolute top position of the object in the document
function topPos(obj, diff)
{
	var topCoord = 0;
	
	while(obj) {
	   topCoord += obj.offsetTop;
	   obj = obj.offsetParent;
	}
	
	return topCoord + diff;
}