var isMac = navigator.userAgent.toLowerCase().indexOf("mac") !=-1;
var isSafari = navigator.userAgent.toLowerCase().indexOf("safari") !=-1;
var isOpera = (window.opera);

if (isMac && (isSafari || isOpera)) {
	addEvent(window, 'load', setNavOverFlash, false);
}

function setNavOverFlash(e) {
	getFlashContent();
	installListeners();
}

// grab alt content before SFWobject replaces it
var flashAltContent;
function getFlashAltContent() {
	var flashContainer;
	if (flashContainer = document.getElementById('flashContainer')) {
		flashAltContent = flashContainer.cloneNode(true);
		flashAltContent.id = "";
		return flashAltContent;
	}
	return null;
}

// grab flash content after page load
//var flashContent;
var contentHolder;
function getFlashContent() {
	contentHolder = document.getElementById('flashContainer');
}


function installListeners() {
	if (!document.getElementById('globalNav')) { return; }
	
	var menuItems = getChildrenByTagName('globalNav','ul');
	if(!menuItems) return;
	if(!menuItems.length) return;
	for (var i=0; i<menuItems.length; i++) {
		addEvent(menuItems[i], 'mouseover', listenerNavOver, false);	
	//	addEvent(menuItems[i], 'mouseout', listenerNavOut, false);
	}
	
	var items = getChildrenByTagName('globalNav','li');
	for (var i=0; i<items.length; i++) {
		addEvent(items[i], 'mouseover', listenerNavOut, false);
	}
}



/* ********************************** */
/* *        EVENT HANDLERS          * */
/* ********************************** */

function listenerNavOver(e) {
	var flashObject;
	try {
		if (contentHolder && contentHolder.childNodes && contentHolder.appendChild) {
			if (flashObject = contentHolder.childNodes[0]) {
				flashObject.style.visibility = 'hidden';
				if (flashAltContent) {
					contentHolder.appendChild(flashAltContent);
					flashAltContent.style.position = "absolute";
					flashAltContent.style.top = "0";
				}
			}
		}
	} catch (e) {
		
	}
}

function listenerNavOut(e) {
	try {
		contentHolder.removeChild(flashAltContent);
		var flashObject = contentHolder.childNodes[0];
		flashObject.style.visibility = 'visible';
	} catch (e) {
	
	}
}



/* ********************************** */
/* *     UTILITY FUNCTIONS          * */
/* ********************************** */

// cross-browser event handling for IE5+, NS6+ and Mozzila/Gecko
// By Scott Andrew
function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	} else {
		elm['on' + evType] = fn;
	}	
}


function getChildrenByTagName(oElementId, tagName) {
	if (document.getElementById(oElementId))
		return (document.getElementById(oElementId)).getElementsByTagName(tagName);
}


function cancelLink(e) {
	if (window.event) {
			window.event.cancelBubble = true;
			window.event.returnValue = false;
	}
	if (e && e.stopPropagation && e. preventDefault) {
		e.stopPropagation();
		e.preventDefault();
	}
}


function createElement(tag) {
	if (document.createElement) {
		return document.createElement(tag);
	} else if (document.createElementNS) {
		return document.createElementNS('http://www.w3.org/1999/xhtml',tag);
	}
}
