/***********************************************
* CSS Menu script © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Revised for relative positioning and animation by Mark Hicken
***********************************************/

var disappeardelay=500 //menu disappear speed onMouseout (in miliseconds)
var enableanchorlink=1 //Enable or disable the anchor link when clicked on? (1=e, 0=d)
var hidemenu_onclick=1 //hide menu when user clicks within menu? (1=yes, 0=no)
var v_subMenu_x_Offset=0 //only works in vertical mode
var v_subMenu_y_Offset=0 //only works in vertical mode
var h_subMenu_x_Offset=0//only works in horizontal mode
var h_subMenu_y_Offset=0 //only works in horizontal mode

//------------------------------------------------------------------------------------
var ie5menu= document.all
var ns6=document.getElementById&&!document.all
var op=navigator.userAgent.toLowerCase().indexOf("opera")!=-1

function getposOffset(what, offsettype, sPosType){
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent
	while (parentEl!=null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}

	if(sPosType=="relative") return totaloffset-((offsettype=="left")? what.offsetParent.offsetLeft : what.offsetParent.offsetTop);
	else return totaloffset;
}
function isHidden(obj) {
	if(obj.style.visibility=="hidden" || obj.style.display=="none" || obj.className.indexOf("_hidden")!=-1) return true;
	else return false;
}
function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function clearbrowseredge(obj, whichedge){
	var edgeoffset=0
	if (whichedge=="rightedge"){
		var windowedge=ie5menu && !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 windowedge=ie5menu && !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
	}
	return edgeoffset
}

var objTop;
function dropdownmenu(obj, e, dropmenuID, sPosType, sOrientation){
	if (typeof sPosType=="undefined") sPosType="absolute"
	if (typeof sOrientation=="undefined") sOrientation="vertical"
	opRel=(op&&sPosType=="relative") // ignore opera in relative positioning mode
	if (!opRel) {
		if (window.event) event.cancelBubble=true
		else if (e.stopPropagation) e.stopPropagation()

		//hide previous menu
		if (typeof dropmenuobj!="undefined") hide(dropmenuobj)
		clearhidemenu()
     
		if (ie5menu||ns6) {
		
			//top menu item
			objTop=obj; // for later use
			obj.onclick=clickreturnvalue
			obj.onmouseout=function() { this.dd_ismouseover=false; dynamichide(e) }

			//sub menu
			dropmenuobj=document.getElementById(dropmenuID)
			if (hidemenu_onclick) dropmenuobj.onclick=function(){ hide(dropmenuobj) }
			dropmenuobj.onmouseover=function() { this.dd_ismouseover=true; clearhidemenu() } //prevents submenu items from closing menu
			dropmenuobj.onmouseout=ie5menu? function(){ this.dd_ismouseover=false; dynamichide(event) } : function(event){ this.dd_ismouseover=false; dynamichide(event) } //checks if it should hide

			showhide(dropmenuobj, e)
			dropmenuobj.parentLI=objTop;
			dropmenuobj.x=getposOffset(obj, "left", sPosType)
			dropmenuobj.y=getposOffset(obj, "top", sPosType)
			if(sOrientation=="vertical") dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+v_subMenu_x_Offset+"px"
			else dropmenuobj.style.left=dropmenuobj.x+dropmenuobj.offsetWidth-clearbrowseredge(obj, "rightedge")+h_subMenu_x_Offset+"px"
			if(sOrientation=="vertical") dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+v_subMenu_y_Offset+"px"
			else dropmenuobj.style.top=dropmenuobj.y-obj.offsetHeight-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+h_subMenu_y_Offset+"px"
			dropmenuobj.style.zIndex=1000;
		}
		return clickreturnvalue()
	}
}


function dropdownmenu2(obj, e, dropmenuID, sPosType, sOrientation){
	if (typeof sPosType=="undefined") sPosType="absolute"
	if (typeof sOrientation=="undefined") sOrientation="vertical"
	opRel=(op&&sPosType=="relative") // ignore opera in relative positioning mode
	if (!opRel) {
		if (window.event) event.cancelBubble=true
		else if (e.stopPropagation) e.stopPropagation()

		//hide previous menu
		if (typeof dropmenuobj!="undefined") hide(dropmenuobj)
		clearhidemenu()
     
		if (ie5menu||ns6) {
		
			//top menu item
			objTop=obj; // for later use
			obj.onclick=clickreturnvalue
			obj.onmouseout=function() { this.dd_ismouseover=false; dynamichide(e) }

			//sub menu
			dropmenuobj=document.getElementById(dropmenuID)
			//if (hidemenu_onclick) dropmenuobj.onclick=function()
		//	{ 
			//hide(dropmenuobj)
			//}
			dropmenuobj.onmouseover=function() { this.dd_ismouseover=true; clearhidemenu() } //prevents submenu items from closing menu
			dropmenuobj.onmouseout=ie5menu? function(){ this.dd_ismouseover=false; dynamichide(event) } : function(event){ this.dd_ismouseover=false; dynamichide(event) } //checks if it should hide

			showhide(dropmenuobj, e)
			dropmenuobj.parentLI=objTop;
			dropmenuobj.x=getposOffset(obj, "left", sPosType)
			dropmenuobj.y=getposOffset(obj, "top", sPosType)
			if(sOrientation=="vertical") dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+v_subMenu_x_Offset+"px"
			else dropmenuobj.style.left=dropmenuobj.x+dropmenuobj.offsetWidth-clearbrowseredge(obj, "rightedge")+h_subMenu_x_Offset+"px"
			if(sOrientation=="vertical") dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+v_subMenu_y_Offset+"px"
			else dropmenuobj.style.top=dropmenuobj.y-obj.offsetHeight-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+h_subMenu_y_Offset+"px"
			dropmenuobj.style.zIndex=1000;
		}
		return clickreturnvalue()
	}
}
function hide(obj) { 
	var subActive = (objTop.className.indexOf("_subActive")==-1)?false:true;
	if(!obj.dd_ismouseover && obj!=objTop) {
		if(subActive && menuAnimSupported) { 
			animClip(obj.id, obj.offsetHeight, 0, 250, false);
//			animAlpha(obj.id, obj.startAlpha, 0, 250, false);
		}
		if(typeof(MenuAnimationsLoaded)=="undefined" || !menuAnimSupported) { changeMenuItemClasses(obj, objTop, false); } // Also gets executed by animation functions
	}
}
function show(obj) {

	var subActive = (objTop.className.indexOf("_subActive")==-1)?false:true;
	if(obj!=objTop) {
//		if(jQuery && jQuery.fn.bgiframe) { jQuery(obj).bgiframe(); } // fixes z-index for ie6
		changeMenuItemClasses(obj, objTop, true);
		if(!subActive && menuAnimSupported) { 
		    animClip(obj.id, 0, obj.offsetHeight, 250, true);
//			animAlpha(obj.id, 0, obj.startAlpha, 250, true);
		}
	}
}
function changeMenuItemClasses(obj, objTop, bShow) {
	if(bShow) {
		obj.className=obj.className.replace(new RegExp("_hidden"), "");
		objTop.className=objTop.className.replace(new RegExp("_subActive"), "")+"_subActive";
	}
	else {
		obj.className=obj.className.replace(new RegExp("_hidden"), "")+"_hidden";
		objTop.className=objTop.className.replace(new RegExp("_subActive"), "");
	}
}

function showhide(obj, e){
	clearhidemenu();
	if (ie5menu||ns6) dropmenuobj.style.left=dropmenuobj.style.top=-200
	if (e.type=="click" && isHidden(obj) || e.type=="mouseover") show(obj)
	else if (e.type=="click") hide(obj)
}
function clickreturnvalue(){
	if ((ie5menu||ns6) && !enableanchorlink) return false
	else return true
}
function clearhidemenu(){
	if (typeof(delayhide)!="undefined") clearTimeout(delayhide)
}
function dynamichide(e){
	function contains_ns6(a, b) {
		while (b.parentNode)
			if ((b = b.parentNode) == a) return true;
		return false;
	}
	
	clearhidemenu()
	if (ie5menu&&!dropmenuobj.contains(e.toElement)) delayhidemenu()
	else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget)) delayhidemenu()
}
function delayhidemenu(){
	delayhide=setTimeout("hide(dropmenuobj)", disappeardelay)
}

// this line was really breaking stuff for some reason
// it prevented jQuery from attaching events
// it also prevented the top menus from closing correctly
//Object.prototype.dd_ismouseover=false;






//for debuging
msgWin = null;
function message(sMessage) {
	if(msgWin==null) { msgWin = window.open("blank.html", "msgWin", "width=200, height=300"); }
	msgWin.document.write(sMessage+"<br />");
}
//*/