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

	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) {

		dropNum = getButtonNum(buttonID);

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

		// Set rollover class of menu option
		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';
		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("main"), "div", "dropMenu");
			for (i=0; i<drops.length; i++) {
				drops[i].style.display = 'none';
			}
			var headerMenuOptions = document.getElementById("leftMenu");
			var hmos = headerMenuOptions.getElementsByTagName("a");
			for (var i=0; i<hmos.length; i++) {
				hmos[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))){
				MM_findObj(buttonID).className=baseClass;
				return;
		  }
		  timerID=setTimeout("MM_findObj('dropMenu_"+dropNum+"').style.display='none'; MM_findObj('"+buttonID+"').className='"+baseClass+"';",menuHideDelay);
		}
	}

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

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

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

function releaseDrop(dropMenu){
		buttonNum = getButtonNum(dropMenu);
		timerID=setTimeout("MM_findObj('"+dropMenu+"').style.display='none'; MM_findObj('hmo_"+buttonNum+"').className='"+baseClass+"';",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);
}