
var PageInitializer = new function(){ 
	
	var m_MenuHoverClass	= " ie-hover";
	var m_MenuHoverRegEx	= new RegExp(m_MenuHoverClass + "\\b");
	var m_IFrame			= null;
	
	this.OnLoad = function(){
		PageInitializer.InitializeExternalLinks();
		if(PageInitializer.IsIE() && PageInitializer.PreIE7()) {
			PageInitializer.InitializeMenu();
		}
	}

	this.InitializeExternalLinks = function(){
		if (!document.getElementsByTagName)
			return;

		var anchors = document.getElementsByTagName("a");
		
		for (var i=0; i<anchors.length; i++) {
			var anchor = anchors[i];
			var href = anchor.getAttribute("href");
			if(href != null){
				var rel = anchor.getAttribute("rel");
				var external = this.IsExternalLink(href, rel);
				if(external){
					if(anchor.target != null){
						anchor.target = "_blank";
					}
				} 
				if(this.IsIE() && this.PreIE7()) {
					var fileLink = this.IsFileLink(href,rel);
					if(fileLink){
						this.AddExtensionClass(anchor, href);
					}
				}
			}
		}
	}

	this.IsExternalLink = function(href, rel){
		return (rel == "external");
	}

	this.IsFileLink = function(href, rel){
		var extension = "";
		var index1 = href.lastIndexOf(".");
		var index2 = href.indexOf("?");
		if(index1 > 0 && index2 < 0){
			extension = href.slice(index1 + 1);
			if(extension.indexOf("/") > 0)
				extension = "";
		}
		return (extension == "pdf" || extension == "doc");
	}
	
	this.AddMailtoClass = function(anchor, href){
		if(href.indexOf("mailto:") == 0)
			anchor.className += " mailto";
	}
	
	this.AddExtensionClass = function(anchor, href){
		var index = href.lastIndexOf(".");
		if(index > 0){
			anchor.className += " ext-" + href.slice(index + 1);
		}
	}
	
	this.InitializeInputs = function() {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++){
			var input = inputs[i];
			input.className += " input-" + input.getAttribute("type");
		}
	}

	this.IsIE = function(){
		var agt = navigator.userAgent.toLowerCase();
		return ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
	}
	
	this.PreIE7 = function(){
		var agt = navigator.userAgent.toLowerCase();
		return (((agt.indexOf("msie 5") != -1) || (agt.indexOf("msie 6") != -1)) && (agt.indexOf("opera") == -1));
	}
	
	this.InitializeMenu = function() {
		// Create an IFrame used for putting beneath submenus
		// so dropdowns will be placed on top of select boxes
		m_IFrame = document.createElement("iframe");
		m_IFrame.setAttribute("src","about:blank");
		m_IFrame.setAttribute("scrolling","no");
		m_IFrame.setAttribute("frameBorder", "0");
		m_IFrame.style.border	= "0px";
		m_IFrame.style.width	= "0px";
		m_IFrame.style.height	= "0px";
		m_IFrame.style.display	= "none";
		m_IFrame.style.position	= "absolute";

		var navDiv = document.getElementById("mainNavigation");
		if(navDiv != null){
			var list = navDiv.firstChild.firstChild;
			var listItems = list.childNodes;
			for (var i = 0; i < listItems.length; i++){
				var item = listItems[i];
				item.onmouseenter = this.MenuOnMouseOver;
				item.onmouseleave = this.MenuOnMouseOut;
			}
		}
	}
	
	this.MenuOnMouseOver = function(){
		this.className += m_MenuHoverClass;
		var uls = this.getElementsByTagName("ul");
		if(uls.length > 0){
			var ul = uls[0];
			this.appendChild(m_IFrame);
			m_IFrame.style.width	= ul.offsetWidth;
			m_IFrame.style.height	= ul.offsetHeight;
			m_IFrame.style.top		= 22;
			m_IFrame.style.left		= 0;
			m_IFrame.style.zIndex	= ul.style.zIndex - 1;
			m_IFrame.style.display	= "block";
		}
	}

	this.MenuOnMouseOut = function(){
		this.className = this.className.replace(m_MenuHoverRegEx, "");
		m_IFrame.style.display = "none";
	}

	/**************************************
	IE Repairing Scripts END
	**************************************/
	
}

if(window.addEventListener){
	window.addEventListener("load", PageInitializer.OnLoad, false);
}else if(window.attachEvent) {
	window.attachEvent("onload", PageInitializer.OnLoad);
}
