var disappeardelay = 250;  //menu disappear speed onMouseout (in miliseconds)
var enableanchorlink = 0; //enable or disable the anchor link when clicked on? (1=e, 0=d)

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

function iecompattest() {
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function clearbrowseredge(obj, whichedge) {
	var edgeoffset=0;
	if (whichedge=="rightedge") {
		var windowedge=ie5 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15;
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth;
		if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure) edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth;
	}
	else {
		var topedge=ie5 && !window.opera? iecompattest().scrollTop : window.pageYOffset;
		var windowedge=ie5 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18;
		dropmenuobj.contentmeasure = dropmenuobj.offsetHeight;
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure) {
			edgeoffset = dropmenuobj.contentmeasure + obj.offsetHeight;
			if ((dropmenuobj.y-topedge) < dropmenuobj.contentmeasure) edgeoffset = dropmenuobj.y + obj.offsetHeight - topedge;
		}
	}
	return edgeoffset;
}

function dropdownmenu(obj, e, dropmenuID, exactPos) {
	if (window.event) event.cancelBubble = true;
	else if (e.stopPropagation) e.stopPropagation();
	if (typeof dropmenuobj!="undefined") dropmenuobj.style.visibility="hidden";
	clearhidemenu();
	if (ie5||ns6) {
		obj.onmouseout = delayhidemenu;
		dropmenuobj = document.getElementById(dropmenuID);
		dropmenuobj.onmouseover = clearhidemenu;
		dropmenuobj.onmouseout = ie5 ? function() { dynamichide(event); } : function(event) { dynamichide(event); }
		dropmenuobj.onclick = function() { dropmenuobj.onmouseout = function() {} }
		document.onmouseup = ie5 ? function() { dropdown_check_hide(event, dropmenuID); } : function(event) { dropdown_check_hide(event, dropmenuID); }
		if (e.type=="click" && dropmenuobj.style.visibility == 'hidden' || e.type == "mouseover") dropmenuobj.style.visibility = 'visible';
		else if (e.type == "click") dropmenuobj.style.visibility = 'hidden';
		if (exactPos == 1) {
			dropmenuobj.style.left = obj.offsetLeft + "px";
		}
	}
	return clickreturnvalue();
}

function clickreturnvalue() {
	if ((ie5||ns6) && !enableanchorlink) return false;
	else return true;
}

function contains_ns6(a, b) {
	return false;
}

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

function delayhidemenu() {
	delayhide = setTimeout("dropmenuobj.style.visibility='hidden'", disappeardelay);
}

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

function dropdown_check_hide(e, div_name) {
	if (!is_clicked(e, div_name)) {
		dropdown_hide(div_name);
	}
}
function dropdown_hide(div_name) {
	if (document.getElementById) document.getElementById(div_name).style.visibility = 'hidden';
	else if (document.all) document.all[div_name].style.visibility = 'hidden';
	else if (document.layers) document.layers[div_name].visibility = 'hidden';
}

function is_clicked(e, div_name) {
	if (document.layers) {
		var clickX = e.pageX;
		var clickY = e.pageY;
		var t = document.layers[div_name];
		if ((clickX > t.left) && (clickX < t.left + t.clip.width) && (clickY > t.top) && (clickY < t.top + t.clip.height)) return true;
		else return false;
	}
	else if (document.all) {
		var t = window.event.srcElement;
		while (t.parentElement != null) {
			if (t.id == div_name) return true;
			t = t.parentElement;
		}
		return false;
	}
	else if (document.getElementById && e) {
		var t = e.originalTarget;
		while (t.parentNode != null) {
			if (t.id == div_name) return true;
			t = t.parentNode;
		}
		return false;
	}
	return false;
}