/* HTTPS to HTTP switch 
Check URL to see if it's in HTTPS, if it is but it shouldn't stop loading the page and change immediately to HTTP again. (reverse Teros CNP logic)
The GET information is kept, the POST information is LOST !!
more info: RFM000810028 - Koen Verhoeven
*/

function switchBackToHttpIfRequired() {
  	var arrHttps = new Array()
  	/* FILL ALL HTTPS PARTS HERE */
  	arrHttps[0] = "/partners/protected/";
  	arrHttps[1] = "/residential/protected/";
  	arrHttps[2] = "/business/protected/";
  	arrHttps[3] = "/sme/protected/";
  	arrHttps[4] = "/soho/protected/";
  	arrHttps[5] = "/crossb2b/protected/";
  	arrHttps[6] = "/corporate/protected/";
  	arrHttps[7] = "/code/protected";
  	arrHttps[8] = "/protected/";

  	var strQuery, strPath
  	var strProt, strHost, strPort, strHash
  	var strURL
  	var blnUrlIsHTTPS, blnProtIsHTTPS
  	var reProtHTTPS, reProtHTTP

  	//Get current url data
  	strProt = location.protocol;
  	strHost = location.host;
  	strPort = location.port;
  	strPath = location.pathname;
  	strQuery = location.search;
  	strHash = location.hash;
  	strURL = strProt + "//" + strHost;
  	strURL +=  strPath;
	//document.write("<!-- current uRL [" + strURL + "]-->");

  	blnUrlIsHTTPS = false
  	blnProtIsHTTPS = false
 		reProtHTTPS = /^https:\/\//i
 		reProtHTTP = /^http:\/\//i

	// check if url should be accessed in https
	for (var i=0; i < arrHttps.length; i++){
		if (strURL.indexOf(arrHttps[i]) > 0){
			blnUrlIsHTTPS = true
		}
	 }
	
	// check if url is already in https
	blnProtIsHTTPS = reProtHTTPS.test(strURL);
	
	if(! blnUrlIsHTTPS){
		//page DOES NOT needs to be accessed through https...
		if(blnProtIsHTTPS){
			// ... but currently it IS, so we swtich back to http
			strURL = strURL.replace(reProtHTTPS,"http://");
		}
	}
	
	// finish re-construction of full url - Keep query string
	strURL += strQuery;
	if(strHash > 0){
		strURL += "#" + strHash
	}
	
	if ((!blnUrlIsHTTPS) && blnProtIsHTTPS) {
		// should be in http and was not yet
		window.location.href = strURL;
		//alert('Page called in https, but should not be - should switch back to ' + strURL);
	}
  }
switchBackToHttpIfRequired();

$ = document.getElementById; /* Do never remove, some pages use this functionality without .NET providing it */

/* This file wil contain all global javascript functionalities */
if (eval ("typeof overlibPresent == 'undefined'") || !(eval ("overlibPresent"))){
	document.write('<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>');
	document.write('<scri' + 'pt language="JavaScript" src="/code/uniform/overlib.js"><!-- overLIB (c) Erik Bosrup --></scr' + 'ipt>');
	document.write('<scri' + 'pt language="JavaScript">var overlibPresent = true;</scri' + 'pt>');
}

/* ADD Webanalytics Javascript source file - 18/11/2008*/
document.write('<scri' + 'pt language="JavaScript" src="/code/asp/globals/stats/Ebl.js"><!-- WebAnalytics file --></scr' + 'ipt>');

//Adding css for printing purposes dynamically
document.write("<link rel='stylesheet' type='text/css' href='/assets/design/_css/print.css' media='print' charset='utf-8'/>");
document.write('<scri' + 'pt>');
document.write("<!--[if lte IE 6]>"); 
document.write("<link rel='stylesheet' href='/assets/design/_css/print_ie.css' type='text/css' media='print' charset='utf-8' />");
document.write("<![endif]-->");
document.write('</scri' + 'pt>');

function addEvent(elem, evType, fn, useCapture)
{
	if (elem.addEventListener)
		{
		elem.addEventListener(evType, fn, useCapture);
		return true;
		}
		
	if (elem.attachEvent)
		{
		var r = elem.attachEvent('on'+evType, fn);
		return r;
		}
		
	elem['on'+evType] = fn;
	return 0;
}


function getServerName(){
	var url = window.location.href;
	var servername = url.split("/");
	return servername[2];
}

function openNedstatPDFLink(startnewlink, oldLink, endnewlink){
	var newLink;
	newLink = startnewlink + getServerName() + oldLink + endnewlink;
//	alert(newLink);
	window.open(newLink);
	return false;
}

/* NedStat functions */
function sitestat(ns_l){
	ns_l+="&ns__t="+(new Date()).getTime();ns_pixelUrl=ns_l;ns_0=document.referrer;
	ns_0=(ns_0.lastIndexOf("/")==ns_0.length-1)?ns_0.substring(ns_0.lastIndexOf("/"),0):ns_0;
	if(ns_0.length>0)ns_l+="&ns_referrer="+escape(ns_0);
		if(document.images){
			ns_1=new Image();ns_1.src=ns_l;
		}
		else
		document.write("<img src="+ns_l+" width='1' height='1'>");
}

function eblsitestat(sitestaturl,decourl,lang,category) {
	if (!isLocalUser()) {
		var category_param;
		if (category == "") {
			category_param = "";
		} else {
			category_param = "&category="+category;
		}
		
		//alert(sitestaturl+"?"+decourl+category_param+"&language="+lang);
		decourl = decourl + ".aspx";
		//alert(sitestaturl+"?"+sitestatTransfCode(decourl)+category_param+"&language="+lang);
		sitestat(sitestaturl+"?"+sitestatTransfCode(decourl)+category_param+"&language="+lang);
	}
}

function sitestatTransfCode(url) {
	return url.substring(1,url.lastIndexOf(".")).replace(/\//g,".").toLowerCase();
}

var xmlhttp;
function loadXMLDoc(url,url2,title)
{
//url: url du servlet qui cree le graphique
//url2:url du servlet qui cree le pdf du graphique en cache
xmlhttp=null;
if (window.XMLHttpRequest)
  {// all modern browsers
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// for IE5, IE6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=function()
    {
    if(xmlhttp.readyState==4)
      { 
   //    document.getElementById('p1').innerHTML="<a onclick=loadXMLDoc('" + url + "','" + url2 + "') target=_new>" + title + "</a>";

 window.open(url2)

	 }
	  else
	 {
//	 document.getElementById('p1').innerHTML="...";
    
	 }
	 
    }

	xmlhttp.open("GET",url,true);

  
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function jSwitchLanguage(strLang)
{
SwitchLanguage(strLang);
}

function isLocalUser()
{
	var strIP = yhostip();
	var strPattern = /([\d]+)\.([\d]+)\.([\d]+)\.([\d]+)/ig;
	var re = new RegExp(strPattern);
	var arrMatches = re.exec(strIP);
	
	if (arrMatches != null) {
		switch(arrMatches[1]) {
			case "10":
				return true;
				break;
			case "171":
				if (arrMatches[2] == "26") {
					return true;
				} else {
					return false;
				}		
				break;
			case "172":
				if (Number(arrMatches[2]) >= 16 && Number(arrMatches[2]) <= 31) {
					return true;
				} else {
					return false;
				}
				break;	
			case "192":
				if (arrMatches[2] == "168") {
					return true;
				} else {
					return false;
				}		
				break;	
			case "194":
				if (arrMatches[2] == "29") {
					if (arrMatches[3] == "97" || arrMatches[3] == "98") {
						return true;
					} else {
						return false;					
					}
				} else {
					return false;				
				}
				break;
			default:
				return false;
				break;
		}		
	} else {
		return false;
	}
}

function yhostip()
{
	var yip = "";
	
	if((navigator.appName == "Microsoft Internet Explorer") && 
	  ((navigator.appVersion.indexOf('3.') != -1) || 
	  (navigator.appVersion.indexOf('4.') != -1)))
	  	yip = "";
	else {
	  	window.onerror = null;
	  	try
			{		
	  		yourAddress = java.net.InetAddress.getLocalHost();	
	  			
	  		yhost = yourAddress.getHostName();	
	  		yip = yourAddress.getHostAddress();
			}
		catch(err)
			{

			}
	}
	return yip;
}

function getCurrentYear() 
{
	return (new Date()).getFullYear().toString();
}

function getQueryString() 
{
	return window.location.search.substring(1);
}

// EBLOverlayer is used by the OverLayer .NET control
function EBLOverlayer(filePath, width, height, closeDelay)
{
	var _filePath = filePath;
	var _width = width;
	var _height = height;
	var _closeDelay = closeDelay; //milliseconds

	function display() 
	{
		Shadowbox.init();
		Shadowbox.open(
		{
			player: 'swf',
			title: '',
			content: _filePath,
			width: _width,
			height: _height,
			displayNav: false,
			flashBgColor: "transparent"
		}
		);
	 
		if (_closeDelay > 0)
			 setTimeout("Shadowbox.close()", _closeDelay);
	}
	
	addEvent(window, 'load', display ,false);
}

function getCookieKey(key)
{
	var arg=key+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen)
	{
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieValue(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;

	}
	return null;
	
	function getCookieValue(offset)
	{
		var endstr=document.cookie.indexOf (";", offset);
		if (endstr==-1) endstr=document.cookie.length;
		return unescape(document.cookie.substring(offset, endstr));
	}
}

function extractSpecificValueFromCookie(cookieName, key, separator) 
{
	var cookieValue = getCookieKey(cookieName);

	if (cookieValue == null)
		return null;
	
	var ccOffset = cookieValue.indexOf(key);
	if (ccOffset < 0)
		return null;
		
	var cc = cookieValue.substr(ccOffset + key.length);
	
	var ampIndex = cc.indexOf(separator);
	
	if (ampIndex < 0)
		return cc;
		
	return cc.substr(0, ampIndex);
}

var _currentLanguage = null;

function getCurrentLanguage()
{
	if (_currentLanguage == null)
		_currentLanguage = extractSpecificValueFromCookie("PreferencesCookie", "culture=", "&").split('-')[0];
	
	return _currentLanguage;
}