/*********************************************
*
*  global.js
*
*  requires mootools.js 
*  core and native components
*  http://mootools.net/download
*
*********************************************/

/*********************************************
 image rollovers
*********************************************/

function initRollovers() {
	var images = $A(document.getElementsByTagName('IMG'));
	images.each(function (img) {
		if ($(img).hasClass('roll')) {
			// skip active images
			if (img.src.test('-d.gif$')) return;
			
			var overImg = new Image();
			overImg.src = img.oversrc = img.src.replace(/\.gif$/, '-o.gif');
			img.outsrc = img.src;
			
			img.onmouseover = function() { this.src = this.oversrc; };
			img.onmouseout = function() { this.src = this.outsrc; };
		}
	});
}

window.addEvent('load', initRollovers);


/*********************************************
 subnav showing / hiding
*********************************************/

var subnavDelay = 600;
var subnavCurrent = null;
var subnavTimer = null;

function subnavOn(li) {
	subnavKillTimer();
	if (subnavCurrent != null) subnavHide();
	li.subnav.setStyles({ visibility: 'visible', zIndex: 35});
	subnavCurrent = li.subnav;
	
	li.onmouseout = function() { subnavOff(this); };
	li.subnav.onmouseover = function() { subnavKillTimer(); };
	li.subnav.onmouseout = function() { subnavOff(this.parent); };
}

function subnavOff(li) {
	subnavKillTimer();
	subnavTimer = setTimeout('subnavHide()', subnavDelay);
}

function subnavHide() {
	if (subnavCurrent == null) return;
	subnavCurrent.setStyles({ visibility: 'hidden', zIndex: 15});
	subnavCurrent = null;
}

function subnavKillTimer() {
	if (subnavTimer != null)
		clearTimeout(subnavTimer);
	subnavTimer = null;
}

function initSubnav() {
	var lis = $A($('nav').getElementsByTagName('LI'));
	lis.each(function (li) {
		var divs = li.getElementsByTagName('DIV');
		if ((divs.length > 0) && (! $(li).hasClass('active'))) {
			li.subnav = $(divs[0]);
			li.subnav.parent = $(li);

			li.onmouseover = function() { subnavOn(this); };
		} else {
			if (($(li).hasClass('active')) && (divs[0] != null))
				$(divs[0]).setStyles({ visibility: 'visible', zIndex: 30});
			li.onmouseover = function() { subnavHide(); };
		}
	});
}

window.addEvent('load', initSubnav);
