/* ############################################# */
/* #  P.Gold - MAR 08                          # */
/* #  RUBIX MEDIA LLC                          # */
/* ############################################# */



// EXTERNAL LINKS *****************

var externalLauncher = {
	init: function() {
		externalLauncher.installListeners();
	},

	installListeners: function() {
		var anchors = document.getElementsByTagName('a');
		for (var i=0; i<anchors.length; i++) {
			if (anchors[i].className.match('external'))
				externalLauncher.addEvent(anchors[i], 'click', externalLauncher.eventLaunch, false);
		}
	},
	
	eventLaunch: function(e) {
		var target = externalLauncher.getEventTarget(e);

		if (target.tagName == "IMG") {
			do {
				target = target.parentNode;
			} while (target != document && !(target.href));
		}
		
		window.open(target.href);
		externalLauncher.cancelLink(e);
		externalLauncher.cancelClickSafari();
	},

	addEvent: function(elm, evType, fn, useCapture) {
		// cross-browser event handling for IE5+, NS6+ and Mozzila/Gecko
		// By Scott Andrew
		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;
		}	
	},

	getEventTarget: function(e) {
		return window.event ? window.event.srcElement : e ? e.target : null;
	},
	
	cancelClickSafari: function() {
		return false;
	},
	
	cancelLink: function(e) {
		if (window.event) {
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			window.event.srcElement.blur();
		}
		if (e && e.stopPropagation && e. preventDefault) {
			e.stopPropagation();
			e.preventDefault();
			e.target.blur();
		}
	}
};
externalLauncher.addEvent(window, 'load', externalLauncher.init, false);
// ********************************


/* ************* Top Nav script *************** */
/*  for IE only | not supported by ie5 Mac       */
/* ********************************************* */

var menuNav = {
	addEvent: function(elm, evType, fn, useCapture) {
		// addEvent cross-browser event handling for IE5+, NS6+ and Mozzila/Gecko
		// By Scott Andrew
		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;
		}	
	},
	
	init: function() {
		var isMac = navigator.userAgent.toLowerCase().indexOf("mac") !=-1;
		if (document.all&&document.getElementById&&!isMac) {
			var lists = document.getElementsByTagName('ul');
			for (var i=0; i<lists.length; i++) { 
				if (lists[i].className.match('globalNav'))
					navRoot = lists[i];
			}
			if (navRoot) {
				for (i=0; i<navRoot.childNodes.length; i++) {
					node = navRoot.childNodes[i];
					if (node.nodeName=="LI") {
						node.onmouseover=function() {
							if (this.className.match("flip")) {
								this.className+=" flipOver";
							}
							this.className+=" over";
						}
			 			node.onmouseout=function() {
							if (this.className.match("flipOver")) {
			 					this.className=this.className.replace(" flipOver", "");
							}
				 			this.className=this.className.replace(" over", "");
						}
					}
		 		}
		 	}
		}
	}
};

menuNav.addEvent(window, 'load', menuNav.init, false);

