AR_ECO.addEvent(window, "load", showheaderdate);
AR_ECO.addEvent(window, "load", toggle_flyOut);
AR_ECO.addEvent(window, "load", showArrow);
AR_ECO.addEvent(window, "load", linkRemoveFocus);
AR_ECO.addEvent(window, "load", addTargetAtt);
AR_ECO.addEvent(window, "load", getKey);
AR_ECO.addEvent(window, "load", elmSurfTrack);
/* HEADER */
function isLoggedIn() {
var bLoggedIn = false;
if(document.cookie.indexOf('AUTH=1') != -1 ) {
	bLoggedIn = true;
}
if(document.cookie.indexOf('USER=') != -1) {
	bLoggedIn = true;
}
if(document.cookie.indexOf('CUSTOMER=') != -1) {
	bLoggedIn = true;
}
if(document.cookie.indexOf('LOGGED_OUT') != -1) {
	bLoggedIn = false;
}
return bLoggedIn;
}
function headerCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function getPenname(){ 
	var atcookie = headerCookie('at'); 
	if (atcookie){ 
		var arAt = atcookie.split("&"); 
		var pennameEQ = "a="; 
		for(i=0; i<arAt.length; i++){ 
			var c = arAt[i]; 
			if (c.indexOf(pennameEQ) == 0) return unescape(c.substring(pennameEQ.length,c.length)); 
		} 
	} 
	return ""; 
} 

function displayLogin(){
  var sCurrentHostname = window.location.hostname;
  var sScriptHostname = "";
  if(sCurrentHostname.indexOf("economist.com") == -1){
    sScriptHostname = "http://local.economist.com";
  }
  window.name = 'economist';
  var sHREFLocation = document.location.href;
  var sPath = window.location.pathname;
  var sServerAndPath = sScriptHostname + sPath;
  var sQueryString = window.location.search;
  var sParamDelimiter = "?";
  var sAnchorText = window.location.hash;

  // make sure we have index.cfm on the end otherwise logout will break for urls ending in /
  if(sServerAndPath.substring(sServerAndPath.length-1) == '/'){
    sServerAndPath = sServerAndPath + 'index.cfm';
  }
  
  if(sQueryString.length != 0) { // Remove any logout parameters and trailing delimiters
    sQueryString = sQueryString.replace(/[?&]*logout=y/ig,"");
    sQueryString = sQueryString.replace(/[?&]$/,"");
    sQueryString = sQueryString.replace(/^[?&]/,"");
    if (sQueryString.length != 0) {
      sServerAndPath = sServerAndPath + sParamDelimiter + sQueryString;
      sParamDelimiter = "&";
    }
  }
  
  var sFileType = new RegExp('.html');
  sServerAndPath = sServerAndPath.replace(sFileType, '.cfm');
  
  var sCleanURL = sServerAndPath;
  
  if(isLoggedIn()) {
    // Deal with an anchor text at the end of the url
    // window.location.search doesn't appear to include the hash, but check anyway
    var anchorRE = /##[a-z0-9-_]*/ig;
    var bHasAnchor = sCleanURL.search(anchorRE)
    var strName = getPenname();
    // displayed penname can be max 26 characters
    var intMaxLength = 26;
    if (strName.length > intMaxLength){
      strName = strName.substring(0,intMaxLength) + "&hellip;";
    }

    if (bHasAnchor != -1){
      sAnchorText = sCleanURL.match(anchorRE);
      sCleanURL = sCleanURL.replace(sAnchorText,'');
    }

    var sLogoutURL = sCleanURL + sParamDelimiter + 'logout=Y' + sAnchorText;
    
    var sContent = '<p>Welcome ' + strName + '<\/p>';
    sContent += '<ul><li><a href="' + sScriptHostname + '/members/members.cfm">My account<\/a><\/li>';
    sContent += '<li class="pipe_element"><a href="' + sScriptHostname + '/members/members.cfm?act=newsletter">Manage my newsletters<\/a><\/li>';
    sContent = sContent + '<li class="last"><a href="' + sLogoutURL + '">Log out</a><\/li><\/ul>';
  
  } else {// not logged in
    var sSubmitURL = sCleanURL;
    var sLoginReturnURL = sCleanURL;
    if (sScriptHostname.length != 0) {
      sLoginReturnURL = sLoginReturnURL.replace(sScriptHostname, "http://"+sCurrentHostname);
    }
    sLoginReturnURL = escape(sLoginReturnURL);
    
    sContent = '<form action="' + sScriptHostname + '/members/members.cfm?act=exec_login" method="post" id="login_fieldset">';
    sContent += '<input name="logging_in" value="Y" type="hidden" \/>';
    sContent = sContent + '<input name="returnURL" value="' + sLoginReturnURL + '" type="hidden" \/>';
    sContent += '<div class="login_box">';
    sContent += '<div class="left_elm"><div><label for="header-email">Log in: e-mail<\/label><input id="header-email" name="email_address" type="text" \/><\/div>';
    sContent += '<div><label for="header-password">Password<\/label><input type="password" id="header-password" name="pword" type="password" \/><\/div><\/div>';
    sContent += '<div><input type="checkbox" id="header-save_password" name="save_password" value="Y" class="check_btn" \/>';
    sContent += '<label for="header-save_password" class="rememberme">Remember me<\/label><\/div>';
    sContent += '<div class="header_register"><a href="' + sScriptHostname + '/members/members.cfm?act=registration" class="header_register">Register<\/a><\/div>';
    sContent += '<\/div>';
    sContent += '<div><input type="image" alt="Go" class="go_btn" src="http:\/\/media.economist.com\/images\/elements\/go_btn.gif" \/><\/div>';
    sContent += '<\/form>';
  }
  
  document.write(sContent);
}
/* END OF HEADER */

/* DATE */
function getDayString(nDay){
	var Days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	return Days[nDay]
}
function getMonthString(nMonth){
	var Months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	return Months[nMonth] 	  	 
}
function takeYear(theDate) {
	x = theDate.getYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}
function getDateSuffix(nDay) {
  var suffix = "th";
	switch (nDay) {
		case 1:
		case 21:
		case 31: 
			suffix = "st"; break;
		case 2:
		case 22:
			suffix = "nd"; break;
		case 3:
		case 23:
			suffix = "rd"; break;
	};
  return suffix;
}
function showheaderdate(){
	var today = new Date();
	// date is to be GMT
	today.setTime(today.getTime() + (today.getTimezoneOffset()*60000));
  var suffix = getDateSuffix(today.getDate());
	var strDate = getDayString(today.getDay()) + " " + getMonthString(today.getMonth()) + " ";
	strDate += today.getDate() + suffix + " " + takeYear(today);
	strDateText = document.createTextNode(strDate)
	datepara = document.getElementById("date_para");
	if (datepara != undefined){
		datepara.appendChild(strDateText);
	}
}
/* END OF DATE */
/* NAVIGATION */
function toggle_flyOut(){
	var navSubMenu = AR_ECO.getElementsByClassName('mainnavigation_has_sub', 'li');	
	for (i=0; i < navSubMenu.length; i++){
		var navElm = navSubMenu[i];						
		navElm.onmouseover=function(){	
			removeFocus();			
			this.className="mainnavigation_has_sub on";			
			moveFlyOut(this);
		}	
		navElm.onmouseout=function(){		
		this.className=this.className.replace(" on", " off");
	
		}
		navElm.onfocus=function(){				
			this.className="mainnavigation_has_sub on";
			moveFlyOut(this);
		}
		navElm.onblur=function(){
		this.className=this.className.replace(" on", " off");
		}	
		navElm.onactivate=function(){	/*IE*/
			removeFocus()			
			this.className="mainnavigation_has_sub on";
			moveFlyOut(this);
		}
		navElm.ondeactivate=function(){				/*IE*/
			this.className=this.className.replace(" on", " off");
		}		
  }
}
function removeFocus(){
	var navSubMenu2 = AR_ECO.getElementsByClassName('mainnavigation_has_sub on', 'li');
	for (y=0; y < navSubMenu2.length; y++){ 
		var navElm2 = navSubMenu2[y];
		navElm2.className="mainnavigation_has_sub";
		}
	}
function getKey() {
  AR_ECO.addEvent(document, 'keypress',  function(e){
		 e = (window.event)? window.event: e;
    if(e.keyCode==27){
    	var navSubMenu = AR_ECO.getElementsByClassName('mainnavigation_has_sub on', 'li');	
			if(navSubMenu!= undefined)
				if(navSubMenu[0]){
					navSubMenu[0].firstChild.focus();
					navSubMenu[0].className = navSubMenu[0].className.replace(" on", " off");
				}
    }
   return true; 
   })
}
function moveFlyOut(elm){
		var iebody=(document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
		var browserHeight = AR_ECO.getBrowserWindowSize();
		var bodyScroll = iebody.scrollTop;
		var elementsYPos = elm.offsetTop;
		elementsYPos = parseInt(elementsYPos) + parseInt(elm.childNodes[2].getElementsByTagName('li')[0].offsetHeight);
		var elementHeight = elm.childNodes[2].getElementsByTagName('li');
		//document.body.scrollTop
		if (bodyScroll == 0){bodyScroll = document.body.scrollTop} 	
		var listHeight = 0;		
		for (var i=0; i < (elementHeight.length-1); i++){
			elmHeight = elementHeight[i];
			listHeight += parseInt(elmHeight.offsetHeight);
		}		
		if (((parseInt(browserHeight.height) + parseInt(bodyScroll)) - parseInt(elementsYPos)) <= parseInt(listHeight)){
			elm.childNodes[2].style.top = (browserHeight.height + bodyScroll - elementsYPos - parseInt(listHeight) - 9) + "px";
		}
		else
			elm.childNodes[2].style.top = "3px";			
}
function addTargetAtt(){
	var linkTargetAtt = AR_ECO.getElementsByClassName('external', 'a');	
	for (i=0; i < linkTargetAtt.length; i++){
		var targetAtt = linkTargetAtt[i];				
		targetAtt.setAttribute("target", "_blank");		
  	}
}
function showArrow(){
	if (AR_ECO.$('V6mainnavigation')){
	 	elements = AR_ECO.$('V6mainnavigation').getElementsByTagName('a');
		nontagelm = AR_ECO.$('V6mainnavigation').getElementsByTagName('span');
		for (i=0; i < elements.length; i++){
	   	if (elements[i].parentNode.className == "mainnavigation_has_sub")
			if (elements[i].className=='external')
				elements[i].className='external showarrow';
			else
	  			elements[i].className='showarrow';
		}
		for (j=0; j < nontagelm.length; j++){
		if (nontagelm[j].parentNode.className == "mainnavigation_has_sub")
	  		nontagelm[j].className='showarrow';
		}
	}
}
function linkRemoveFocus(){
	if (AR_ECO.$('V6mainnavigation')){
		var linkToRemove = AR_ECO.$('V6mainnavigation').getElementsByTagName('a')
		for (var i=0; i < linkToRemove.length; i++){
			linkToRemove[i].onclick = function(){				
			this.blur();
		  }
		}
	}
}
/* END NAVIGATION */
/* SURFAID TRACKING */
function elmSurfTrack() {
	if (AR_ECO.$('V6mainnavigation')){
 		var trackNavLinks = AR_ECO.$('V6mainnavigation').getElementsByTagName('a');
		addSurfTrack(trackNavLinks)
	}	
	if (AR_ECO.$('classified')){
		var trackClassLinks = AR_ECO.$('classified').getElementsByTagName('a');
		addSurfTrack(trackClassLinks)
	}	
	if (AR_ECO.$('footer')){
		var trackFooterLinks = AR_ECO.$('footer').getElementsByTagName('a');	
		addSurfTrack(trackFooterLinks)
	}
}
function addSurfTrack(elmToTrack) {
	for (var i=0; i < elmToTrack.length; i++){
		if(elmToTrack[i].getAttribute('href').indexOf("http://") > -1){
			AR_ECO.addEvent(elmToTrack[i], "click", function () {sa_onclick(this.getAttribute('href'))});
   	}
	}
}
/* END SURFAID TRACKING */
