/********************************************************
*	(C)2006-2007 Creuna AB KeySubmit.js
*		
*	This script set external pages to be targeted in
*   a new window and also fixes a lot of compatibility
*   issues with the CSS standard for Internet Explorer
*	  
*********************************************************/

var PageInitializer = new function(){ 

	var m_ActiveClass		= " ie-active";
	var m_ActiveRegEx		= new RegExp(m_ActiveClass + "\\b");
	var m_PrevActiveClass	= " prev-ie-active";
	var m_PrevActiveRegEx	= new RegExp(m_PrevActiveClass + "\\b");
	var m_TargetClass		= " ie-target";
	var m_TargetRegEx		= new RegExp(m_TargetClass + "\\b");
	var m_TargetedClass		= " ie-targeted";
	var m_TargetedRegEx		= new RegExp(m_TargetedClass + "\\b");
	var m_MenuHoverClass	= " ie-hover";
	var m_MenuHoverRegEx	= new RegExp(m_MenuHoverClass + "\\b");
	var m_UrlHash			= "";
	var m_IFrame			= null;
	var m_PortletEditView	= null;

	this.OnLoad = function(){
		PageInitializer.InitializeExternalLinks();		
	}
	
	this.InPortletEditView = function(){
		if(m_PortletEditView == null){
			m_PortletEditView = (document.location.href.indexOf("PortletEditView=true") >= 0);		
		}
		return m_PortletEditView;
	}

	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){
				if(this.IsIE()){
					this.AddMailtoClass(anchor, href);
					var spanElement = document.createElement("span");
					spanElement.className = "anchor-end";
					//spanElement.innerHtml = "<!-- Anchor End -->";
					anchor.appendChild(spanElement);
				}
				var rel = anchor.getAttribute("rel");
				var file		= this.IsFileLink(href, rel);
				var external	= this.IsExternalLink(href, rel);
				if(external || file){
					if(anchor.target != null){
						//anchor.target = "_blank";
						if(this.IsIE()){
							if(file){
								anchor.className += " file";
								this.AddExtensionClass(anchor, href);
							}else{
								anchor.className += " external";
							}
						}
					}
				}
			}
		}
	}

	this.IsExternalLink = function(href, rel){
		if(document.location.pathname != null){
			var host = document.location.href.substring(0, document.location.href.indexOf(document.location.pathname));
			if(href.indexOf(host) == 0){
				return false;
			}
		}
		var s = href.substring(0, 1);
		return (rel == "external" || (s != "/" && s != "#"));
	}

	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 (rel == "file" || (extension != "" && extension != "htm" && extension != "html" && extension != "aspx"));
	}
	
	this.ShowHideClosedGroupSettings = function(state){
		var cgsDiv = document.getElementById("closedGroupSettings");
		if(cgsDiv != null){
			if(state == "closed")
				cgsDiv.style.display = "block";
			else
				cgsDiv.style.display = "none";
		}
	}
	
	/**************************************
	IE Repairing Scripts START
	**************************************/

	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));
	}

	/**************************************
	IE Repairing Scripts END
	**************************************/
	
}
if(document.addEventListener)
	document.addEventListener("load", PageInitializer.OnLoad, false);
if(window.addEventListener)
	window.addEventListener("load", PageInitializer.OnLoad, false);
else if(window.attachEvent)
	window.attachEvent("onload", PageInitializer.OnLoad);


