// Set class of topMenuItem text
var baseClass = 'base';
var overClass = 'active';

// Set time after mouseOut that drop menu remains visible:
var menuHideDelay=1000;
var timerID=null;

// Determine browser name, version & platform:
var BV = parseFloat(navigator.appVersion.indexOf("MSIE")>0?navigator.appVersion.split(";")[1].substr(6):navigator.appVersion);
var BN = navigator.appName;
var nua = navigator.userAgent;
var IsMac=(nua.indexOf('Mac')!=-1);
var IE=(BN.indexOf('Explorer')!=-1);


// Define drop menu offset values
var dropMenuNegativeOffset = 0;  // number of pixels to the left of the top menu item where drop menu appears

// Y location of drop relative to top of menu button.
var dropMenuVerticalOffset = (IE) ? 209 : 209;



///////////////////////////////////////////////////////////////////////////////

	function MM_findObj(n, d) { //v4.01
		var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
			d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
		if(!x && d.getElementById) x=d.getElementById(n); return x;
	}


///////////////////////////////////////////////////////////////////////////////

  function resetTimer(){
  	clearTimeout(timerID);
  }

///////////////////////////////////////////////////////////////////////////////

	function getButtonNum(buttonID){
		// Get the number following the underscore in the button ID passed to function
		buttonIDarray = buttonID.split("_");
		dropNum = buttonIDarray[1];
		return(dropNum);
	}

///////////////////////////////////////////////////////////////////////////////

	function showDrop(buttonID,dropWidth) {

		dropNum = getButtonNum(buttonID);

		// Start by hiding all drop menus
		hideDrop('all');

		// Set rollover class of menu option
		if(buttonID !== "tmo_"+actMenu){
			MM_findObj(buttonID).className = overClass;
		}

		// If menu item has no drop associated with it, simply return from here
		if(!(MM_findObj("dropMenu_"+dropNum))){
			return;
		}
	
		// May be problems if using IE on Mac (need to test)
		// if (IsMac && IE){return;}

		// Get position and width of hovered button
    var buttonOffsetLeft=MM_findObj(buttonID).offsetLeft;
		var buttonOffsetTop=MM_findObj(buttonID).offsetTop;
		// Not finding this value in DOM.
		// If important, it can probably be calculated by subtracting left offset from right
		// var buttonWidth=MM_findObj(buttonID).style.width;

		
		var activeDrop = MM_findObj('dropMenu_'+dropNum);
		activeDrop.style.left = eval(buttonOffsetLeft+dropMenuNegativeOffset)+'px';
		activeDrop.style.top = eval(buttonOffsetTop+dropMenuVerticalOffset)+'px';
		// activeDrop.style.width = buttonWidth+'px';
		if(dropWidth){
			activeDrop.style.width=dropWidth+"px";
		}
		activeDrop.style.display='block';

		// This can probably go:
		// MM_findObj(buttonID).style.height="auto";

		// Reset timer
		resetTimer();
	}


///////////////////////////////////////////////////////////////////////////////

	function hideDrop(buttonID){
		if(buttonID.toLowerCase()=='all'){
			// Hide ALL drops immediately
		  var drops = getElementsByClassName(MM_findObj("drops"), "div", "dropMenu");
			for (i=0; i<drops.length; i++) {
 				drops[i].style.display = 'none';
			}
			var topMenuOptions = document.getElementById("topMenu");
			var tmos = topMenuOptions.getElementsByTagName("a");
			for (var i=0; i<tmos.length; i++) {
				if(tmos[i].id !== "tmo_"+actMenu){
				  tmos[i].className = baseClass;
				}
			}
		}
		else{
			dropNum = getButtonNum(buttonID);
		  // Hide specified drop after duration: menuHideDelay
			clearTimeout(timerID);
			// If menu item has no drop associated with it,
			//    simply reset menu option color and return from here
			if(!(MM_findObj("dropMenu_"+dropNum))){
				if(buttonID !== "tmo_"+actMenu){
					MM_findObj(buttonID).className=baseClass;
				}
				return;
		  }
			if(buttonID !== "tmo_"+actMenu){
			  timerID=setTimeout("MM_findObj('dropMenu_"+dropNum+"').style.display='none'; MM_findObj('"+buttonID+"').className='"+baseClass+"';",menuHideDelay);
				return;
			}
		  timerID=setTimeout("MM_findObj('dropMenu_"+dropNum+"').style.display='none';",menuHideDelay);
		}
	}

///////////////////////////////////////////////////////////////////////////////

	function lockDrop(dropMenu){
		// parameter "dropMenu" not used at this time
		resetTimer();
	}

///////////////////////////////////////////////////////////////////////////////

function releaseDrop(dropMenu){
		buttonNum = getButtonNum(dropMenu);
			if("tmo_"+buttonNum !== "tmo_"+actMenu){
				timerID=setTimeout("MM_findObj('"+dropMenu+"').style.display='none'; MM_findObj('tmo_"+buttonNum+"').className='"+baseClass+"';",menuHideDelay);
				return;
			}
		  timerID=setTimeout("MM_findObj('dropMenu_"+buttonNum+"').style.display='none';",menuHideDelay);
	}

///////////////////////////////////////////////////////////////////////////////

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}

		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

///////////////////////////////////////////////////////////////////////////////

// Array support for the push method in IE 5
Array.prototype.push = ArrayPush;
function ArrayPush(value){
	this[this.length] = value;
}

///////////////////////////////////////////////////////////////////////////////

function showDate(){
	var mydate=new Date();
	var year=mydate.getYear();
	if (year < 1000){year+=1900};
	var day=mydate.getDay();
	var month=mydate.getMonth();
	var daym=mydate.getDate();
	var dayEnd = "th";
	if (daym == 1 || daym == 21 || daym == 31){dayEnd = "st";}
	if (daym == 2 || daym == 22){dayEnd = "nd";}
	if (daym == 3 || daym == 23){dayEnd = "rd";}
	var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	document.write(dayarray[day]+", "+montharray[month]+" "+daym+dayEnd+", "+year);
}



