/*
	Navigation JavaScript

	Call dropdownmenu(callingobject, event, IDofDropDown)
	Add onClick="return clickreturnvalue();" to the main object for disabling it's link

	Edit the configuration variables as necessary


	The container holding the links should have 
*/

/* ---------------------------------------- Configuration ---------------------------------------- */
var disappeardelay=250;		// menu disappear speed onMouseout (in miliseconds)
var enableanchorlink=1;		// Enable or disable the anchor link when clicked on? (1=e, 0=d)
var menuoffsetv=12;		// move menu down
var menuoffseth=0;		// move menu left or right
/* ---------------------------------------- End Configuration ---------------------------------------- */


var dropmenuobj = null;
var arrTimeOutIDs = [];
var arrTimeOutIDs2 = [];

function clickreturnvalue(){
	if(!enableanchorlink) {
		return false;
	} else {
		return true;
	}
}

function dropdownmenu(obj, e, dropmenuID){
	if(window.event) {
		event.cancelBubble=true;
	} else if(e.stopPropagation) {
		e.stopPropagation();
	}

	var tmpID = dropmenuID;

	if (typeof dropmenuobj!="undefined" && dropmenuobj != null) {
		//hide previous menu if it's not the current one again
		if(dropmenuobj.id && dropmenuobj.id != tmpID) {
			dropmenuobj.style.visibility="hidden";
		}
	}
	if(document.getElementById) {
		dropmenuobj = document.getElementById(tmpID);
	} else {
		dropmenuobj = null;
	}
	
	if (typeof dropmenuobj!="undefined" && dropmenuobj != null) {
		var arrPos = findPos(obj);
		var tmpYAdd = 0;
		if(obj.offsetHeight) {
			tmpYAdd = obj.offsetHeight;
		}
		dropmenuobj.x = arrPos[0] + menuoffseth;
		dropmenuobj.y = arrPos[1] + tmpYAdd + menuoffsetv;
		dropmenuobj.style.left = dropmenuobj.x + 'px';
		dropmenuobj.style.top = dropmenuobj.y + 'px';

		dropmenuobj.style.visibility="visible";
		obj.onmouseout = function(){ delayhidemenu(tmpID); }
		dropmenuobj.onmouseover = function() { cancelhidemenu(tmpID); cancelhidemenu2(tmpID); }
		dropmenuobj.onmouseout = function() { delayhidemenu2(tmpID); }
	} else {
		return false;
	}
}

function cancelhidemenu(tmpID) {
	clearTimeout(arrTimeOutIDs[tmpID]);
}

function cancelhidemenu2(tmpID) {
	clearTimeout(arrTimeOutIDs2[tmpID]);
}

function findPos(obj) {
	var curLeft = 0
	var curTop = 0;

	if(obj.offsetParent) {
		do {
			curLeft += obj.offsetLeft;
			curTop += obj.offsetTop;
		} while(obj = obj.offsetParent);
	}
	return [curLeft, curTop];
}

function delayhidemenuAction(objID) {
	if(document.getElementById) {
		var tmpobj = document.getElementById(objID);
		if (typeof tmpobj!="undefined") {
			if(tmpobj.style) {
				tmpobj.style.visibility='hidden';
			}
		}
	}
}

function delayhidemenu(objID) {
	//delayhide=setTimeout("dropmenuobj.style.visibility='hidden'",disappeardelay)
	arrTimeOutIDs[objID] = setTimeout("delayhidemenuAction('" + objID + "')",disappeardelay);
}

function delayhidemenu2(objID) {
	//delayhide=setTimeout("dropmenuobj.style.visibility='hidden'",disappeardelay)
	arrTimeOutIDs2[objID] = setTimeout("delayhidemenuAction('" + objID + "')",disappeardelay);
}

