// Header instantiation
// Requires prototype.js to come before it.

var currentHoverHeaderElement=false;
var nextHoverHeaderElement=false;
var headerTimer=false;
var headerShowDelay=100;//milliseconds
var headerHideDelay=1000;//milliseconds
	
function activateHeaderElement() {
	$$('div.yui-ac-content').each(function(item){item.hide()});
	clearTimeout(headerTimer);
	if (currentHoverHeaderElement !== nextHoverHeaderElement && currentHoverHeaderElement.removeClassName) {
		currentHoverHeaderElement.removeClassName('hover');
	}
	currentHoverHeaderElement=nextHoverHeaderElement;
	nextHoverHeaderElement=false;
	currentHoverHeaderElement.addClassName('hover');
}
function deactivateHeaderElement() {
	clearTimeout(headerTimer);
	if (currentHoverHeaderElement && currentHoverHeaderElement.removeClassName) {
		currentHoverHeaderElement.removeClassName('hover');
	}
	currentHoverHeaderElement=false;
	nextHoverHeaderElement=false;
}
function startActivateHeaderTimer() {
	nextHoverHeaderElement=this;
	if (headerTimer) clearTimeout(headerTimer);
	headerTimer=setTimeout(activateHeaderElement,headerShowDelay);
}
function startDeactivateHeaderTimer() {
	if (headerTimer) clearTimeout(headerTimer);
	headerTimer=setTimeout(deactivateHeaderElement,headerHideDelay);
}
function activateHeaderByKey(e) {/*Skip the delay for keyboard users*/
	if (e.keyCode == Event.KEY_ESC) {/*Pressing esc kills the menu hover*/
		Event.element(e).blur();
		deactivateHeaderElement();
	} else {
		nextHoverHeaderElement=this;
		activateHeaderElement();
	}
}

$$('#header .shelf, #gnTabs td').each(function(item){
	item.observe('mouseover',startActivateHeaderTimer);
	item.observe('mouseout',startDeactivateHeaderTimer);
	item.observe('keyup',activateHeaderByKey);
});
$$('#header .shelf a, #gnTabs td a').each(function(item){
	item.observe('keyup',function(){this.focus()});
	item.observe('blur',startDeactivateHeaderTimer);
});

if(!location.href.match(/showHelp/i)){ /*don't do this if showHelp is on, so people can copy the id with their mouse*/
document.observe('click',deactivateHeaderElement);/*hide menus after clicking.*/
}

