// Move the menu down by x Pixels until it's centered
function moveItem(layerId,increment,destination){
	theItem=document.getElementById(layerId);
	if (theItem.style){
		theItem.style.top=parseInt(theItem.style.top)+increment+'px';
		//alert(theItem.style.top+' is top');
		if(parseInt(theItem.style.top)+increment > destination || Math.abs(destination-(parseInt(theItem.style.top)+increment))<increment || parseInt(theItem.style.top)==destination){
			theItem.style.top=destination+'px';
			if(window.intervalID)clearInterval(window.intervalID);
		}
	}
}

function getEventDets(event){
	if(!document.getElementById)return false;
	if(!event){
		if(window.event)event = window.event;
		else return false;
	}
	//define target(targ) and related target(relatedTarg) vars
	if(event.target) targ = event.target;
	else if (event.srcElement) targ = event.srcElement;
	if (targ.nodeType == 3) targ = targ.parentNode;// defeat Safari bug
	if(event.relatedTarget) relatedTarg = event.relatedTarget;
	else if(event.type.toLowerCase()=='mouseout') relatedTarg=event.toElement;
	else if(event.type.toLowerCase()=='mouseover') relatedTarg=event.fromElement;
	else relatedTarg=undefined;
	//find out what menu we're acting on
	tempTarget=targ;
	while(tempTarget.id.indexOf('Container')<0 && tempTarget.id.indexOf('Header')<0 && tempTarget.id.indexOf('MenuTab')<0 && tempTarget.nodeName!='BODY'){
		tempTarget=tempTarget.parentNode;
	}
	if(tempTarget.id.indexOf('Header')>-1)prefix=tempTarget.id.substring(0,tempTarget.id.indexOf('Header'));
	else if(tempTarget.id.indexOf('Container')>-1)prefix=tempTarget.id.substring(0,tempTarget.id.indexOf('Container'));
	else if(tempTarget.id.indexOf('MenuTab')>-1)prefix=tempTarget.id.substring(0,tempTarget.id.indexOf('MenuTab'));
	else return false;
	ddContainer=document.getElementById(prefix+'Container');
	ddContents=document.getElementById(prefix+'Contents');
	//get height of moving portion of menu, and use it to determine starting position
	if(document.getComputedStyle)menuVertOffset=parseInt(document.getComputedStyle(ddContents, null).getPropertyValue("height"));
	else if(ddContents.offsetHeight)menuVertOffset=parseInt(ddContents.offsetHeight);
	else menuVertOffset=186;
	menuVertOffset-=28;
	menuVertOffset='-'+menuVertOffset+'px';
	return true;
}

function dropDown(event){
	if(!getEventDets(event))return;
	// conditions for mouseout events
	if(event.type.toLowerCase()=='mouseout' && relatedTarg){
		// make sure not occurring within container div
		tempRelated=relatedTarg;
		while(tempRelated.id.indexOf('Container') < 0 && tempRelated.nodeName != 'BODY'){
			tempRelated= tempRelated.parentNode;
		}
		if(tempRelated.id.indexOf('Container') > -1)return;
		//make sure not going to Header graphic
		tempTarg=targ;
		while(tempTarg.id.indexOf('Container') < 0 && tempTarg.nodeName != 'BODY'){
			tempTarg=tempTarg.parentNode;
		}
		if(tempTarg.id.indexOf('Container') > -1 && relatedTarg.id.indexOf('Header')>-1)return;
	}
	//for mouseover, make sure we're not mousing back over the header gif
	if(event.type.toLowerCase()=='mouseover' && targ.id.indexOf('Header')>-1 && relatedTarg.id.indexOf('Container')>-1){
		ddContents.style.top='0px';
		ddContainer.style.visibility='visible';
	}
	//perform actions depending on what event occured.
	if(event.type.toLowerCase()=='mouseover' && ddContainer.style){
		ddContainer.style.visibility="visible";
		if(window.intervalID)clearInterval(window.intervalID);
		window.intervalID = setInterval("moveItem(ddContents.id,5,0)", 8);
	}
	else if(event.type.toLowerCase()=='mouseout' && ddContainer.style){
		if(window.intervalID)clearInterval(window.intervalID);
		ddContents.style.top=menuVertOffset;
		ddContainer.style.visibility="hidden";
	}
	else if(event.type.toLowerCase()=='mouseup' && ddContainer.style){
		if(window.intervalID)clearInterval(window.intervalID);
		ddContents.style.top=menuVertOffset;
		ddContainer.style.visibility="hidden";
	}
}

function menuItem(event){
	if(!getEventDets(event))return;
	while(targ.id.indexOf('MenuItem')==-1 && targ.nodeName != 'BODY')targ=targ.parentNode;
	if(targ.id.indexOf('MenuItem')<0)return;
	//perform necessary actions depending on event type
	if(event.type.toLowerCase()=='mouseover'){
		var tempTarg=targ;
		while(tempTarg.parentNode.id!=targ.id && tempTarg.nodeName != 'BODY')tempTarg=tempTarg.parentNode;
		if(tempTarg.parentNode.id==targ.id)return;//don't change state of menu if acting on child element
		ddContainer.style.visibility='visible';
		if(window.intervalID)clearInterval(window.intervalID);
		window.intervalID = setInterval("moveItem(ddContents.id,15,0)", 8);
		targ.style.backgroundColor='#E7E7E7';
	}
	else if(event.type.toLowerCase()=='mouseout'){
		while(relatedTarg.parentNode.id!=targ.id && relatedTarg.nodeName != 'BODY')relatedTarg=relatedTarg.parentNode;
		if(relatedTarg.parentNode.id==targ.id)return;//don't change colour if the mouse is moving to a child element
		targ.style.backgroundColor='#FFFFFF';
	}
}