/* 	ADD EVENT LISTENERS FOR ROLL OVERS  ---------------------------------------
	TO KEEP THE PARENT CLASS ON ROLL OVER STATE WHEN WE ARE ON THE CHILD
*/

navHover = function() {
	if (S.$("navigation")) {
		var navList = S.$("navigation").getElementsByTagName("LI");

		for (var i=0; i<navList.length; i++) {
			if (navList[i].id) {
				S.addEvent(navList[i], "mouseover", function() { rollOver(this, "0px 19px"); });
				S.addEvent(navList[i], "mouseout", function() { rollOver(this, "0px 0px"); });
				S.addEvent(navList[i], "mouseover", function() { S.addClass(this, "navhover"); });
    			S.addEvent(navList[i], "mouseout", function() {	S.removeClass(this, "navhover"); });
			}
		}
	}
}

/* 	CHANGE LINK BACKGROUND ACCORDING TO POSITION SPECIFIED ---------------------
	ONLY IF THERE IS A LINK CALLED TOP LEVEL SPECIFIED AND ITS NOT SELECTED
*/

rollOver = function(oList, pos) {
	var topLink = S.getClass(oList, "a", "toplevel");
	if (oList.className.match("nav_selected") == null) {
		if(topLink.length)
			topLink[0].style.backgroundPosition= pos;
	}
}

/* 	ATTACH ROLLOVER TO AFFILIATE NAVIGATION IMAGES ----------------------------
*/

attachRollover = function() {
	var rollImages = S.getClass(S.$("affnav"), "IMG", "rollover");	// find rollovers
	var myPage = document.getElementsByTagName("BODY"); 			// find the page we're on
	var defaultState = "_on.";
	var hoverState = "_over."
	var noTouchy = "";

	if ((myPage[0].id != "") && (myPage[0].id != "home") && (S.$("affnav_selected"))) {
		// fix the state of the selected image, dont need this if we remain original size
		var mySelectedImage = S.$("affnav_selected").getElementsByTagName("IMG");
		if (mySelectedImage.length) {
			mySelectedImage[0].src = mySelectedImage[0].src.replace(defaultState, hoverState);
			noTouchy = mySelectedImage[0].alt;
		}
		defaultState = "_off."; // must come after above
	}

	for (var i=0; i<rollImages.length; i++) {

		// FIX DEFAULT STATE FOR AFFILIATE SITES
		if (defaultState != "_on.") { rollImages[i].src = rollImages[i].src.replace("_on.", defaultState); }
		var currentSelected = false;

		if (rollImages[i].alt == noTouchy) { currentSelected = true;  }

		// APPLY PNG FILTER IF WE ARE IN IE
		if (rollImages[i].runtimeStyle) {
			rollImages[i].runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + rollImages[i].src + "',sizingMethod='scale')";
			rollImages[i].src = "/img/blank.gif";
		}

		// MAKE ROLLOVER IMAGES
		var tmpimg = new Image();
		tmpimg.src = rollImages[i].src.replace(defaultState, hoverState);

		// APPLY LISTENERS TO IMAGE IF ITS NOT CURRENTLY SELECTED
		if (!currentSelected) {
			S.addEvent(rollImages[i], "mouseover", function() {
				if(this.runtimeStyle) { this.runtimeStyle.filter = this.runtimeStyle.filter.toString().replace(defaultState, hoverState); }
				this.src = this.src.replace(defaultState, hoverState);
				this.style.pointer = 'pointer';
			});
			S.addEvent(rollImages[i], "mouseout", function() {
				if(this.runtimeStyle) { this.runtimeStyle.filter = this.runtimeStyle.filter.toString().replace(hoverState, defaultState); }
      			this.src = this.src.replace(hoverState,defaultState);
			});
		}
	}
}

/* 	LISTEN FOR NETWORK CHANGE AND UDPATE URL ----------------------------
*/

attachPageChange = function() {
	var networkSelect = S.$("networkSelect");
	if (networkSelect) {
		S.addEvent(networkSelect, "change", networkChange);
	}
}

/* 	CHANGE PAGE ACCORDING TO THE SELECTED NETWORK ----------------------------
*/

networkChange = function() {
	var networkSelect = S.$("networkSelect");
	var newNetwork = networkSelect[this.selectedIndex].value;
	var currentURL = window.location.href;
	var currentNetwork = getURLparam("n", currentURL);

	newNetwork = "n=" + newNetwork;

 	if (currentNetwork) {
	 	currentNetwork = "n=" + currentNetwork;
	 	currentURL = currentURL.replace(currentNetwork, newNetwork);
 	} else {
 		if (currentURL.indexOf("?") > 0) {
	 		currentURL = currentURL + "&" + newNetwork;
 		} else {
	 		currentURL = currentURL + "?" + newNetwork;
 		}
	}
 	window.location.href = currentURL;
}

/* 	DO QUICK REGEX  -------------------------------------------------------------
*/
doRegex = function(regex, someString) {
  	var oRegex = new RegExp(regex);
  	var results = oRegex.exec(someString);
   	return results;
}

/* 	GET THE VALUE OF A PARAMETER FROM THE URL STRING ----------------------------
*/
getURLparam = function(param, url) {
	var regex = "[\\?&]"+param+"=([^&#]*)";
	var results = doRegex(regex, url);
  	if( results == null )
    	return "";
  	else
   	 	return results[1];
}

/* 	POP UP THE GRID ----------------------------
*/
popupGrid = function(windowname, params) {
	if (S.$("week").value) {
		var myForm = S.$("popGrid");
		mywindow = window.open('', windowname, params);
		myForm.target = windowname;
		myForm.submit();
		mywindow.focus();
	}
}

/*	Attach rollovers to input images --------------------------------------
*/

function assistRollover() {
	var isMSIE = /*@cc_on!@*/false;

	if (isMSIE) {
		var inputList = S.$("contentMain").getElementsByTagName("INPUT");
		for (var i=0; i<inputList.length; i++) {
			if (inputList[i].type == "image") {
				S.addEvent(inputList[i], "mouseover", function(){
					this.style.backgroundPosition = "0 -19px";
				});
				S.addEvent(inputList[i], "mouseout", function(){
					this.style.backgroundPosition = "0 0";
				});
			}
		}
	}
}

/* ADD ONLOAD EVENTS IF SCHEMATIC UTILS IS PRESENT ----------------------------
*/

if (S.addEvent) {
	S.addEvent(window, "DOMContentLoaded", navHover);
	S.addEvent(window, "DOMContentLoaded", attachRollover);
	S.addEvent(window, "DOMContentLoaded", attachPageChange);
	S.addEvent(window, "DOMContentLoaded", assistRollover);
}
