// JavaScript Document - General Site Functions and Init
// Josh Leroux, Required: JQUERY

var pageReady = false;  // is the DOM ready?

function init()
{
	pageReady = true;
	
    if( POOLGLOBAL.style == "STANDARD" )
    {
		configureActionButtons(); // configure FIND buttons
	}
	
}

$(document).ready(init);

// ##########################################################################################################
// Swap Action Buttons
// ##########################################################################################################

function configureActionButtons()
{
  var buttons = $('.defaultButton');
  for(var n=0;n<buttons.length;n++)
  {
  	var b = buttons[n];
  	var bid = b.id.replace(/:/g,"\\\\:"); // escape JSF colons in id names
  	$(b).after("<div class='actionButton right'><a href='#' style='color: #FFF;text-decoration:none;' onclick=\"$('#" + bid + "').click(); return false;\">" + b.value + "</a>");
  	$(b).addClass('hidden');
  }
 }

//2008/09/12 - ks - function to detect/assign the root domain, called in setCookie
function detectDomain(valuetodetect){
  var thisdomain = "";
  if (valuetodetect != null && valuetodetect != "" ){
    //alert ('passed currentdomain to parse is ' + valuetodetect);
    var _regex = /^([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)*([a-zA-Z0-9][a-zA-Z0-9\-]+[a-zA-Z0-9]\.[a-zA-Z]{2,6})$/;
    if (valuetodetect.match(_regex)){
      //alert('regex matches');
      thisdomain = RegExp.$2;
    }
  }
  //alert ('in detectDomain : ' + thisdomain);
  return thisdomain;
}
//Toggle setCookie from Legacy js. This sets a persistent cookie
//update the /library/js/common.js version as well
//ks - 2008/05/15 - updated 2008/07/29
//updated 2008/09/02
//updated 2008/09/12 - assign root domain
function setCookie(name, value)
{
	//alert ("in setCookie and cookie name to be set is :" + name + " and cookie value is : " + value);
	if ( value != null && value != "" ){
	  //assign root domain
    var currentdomain = document.domain;
	 // alert ('before pass to detectDomain - currentdomain is ' + currentdomain);
	  var detecteddomain = detectDomain(currentdomain);
	  //alert ('after detecteddomain : ' + detecteddomain);
	  if (detecteddomain != '' ){
	    assigndomain = detecteddomain;
	  }
	  else{
	    assigndomain = currentdomain;
	  }
	  //alert('assigndomain : ' + assigndomain);
	  
	  var today = new Date();
	  var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000); // plus 28 days
	  
	  document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString() + "; path=/; domain=" + assigndomain + ";";
	  
	  //cookies = document.cookie;
    
    /* 2008/09/05temp removal of cookie check to resolve bug 801, re-adding confirmCookie for LANG to handle toggle for domains
	  //added 2008/09/02 - confirm persistent cookie set
	  var cookienameset = "";

	  cookienameset =  getCookie(name);
		//alert ("cookienameset = " + cookienameset);
		
	  if ( cookienameset != null && cookienameset != ''){
	    //alert ("persistent cookienameset is not null/undefined/empty, so persistent cookie was set");
	    //do nothing
	  }
	  else{
	    //alert ("persistent cookienameset is " +  cookienameset + " , so call setCookieNonPersistent(name,value) where name = " + name + " and value = " + value);
	    setCookieNonPersistent(name,value);
	  } */
	}
	
}

//added 2008/09/02 - ks - to set a Non-Persistent Cookie
function setCookieNonPersistent(name, value)
{
	
	//alert ("in setCookieNonPersistent where name = " + name + " and value is " + value);
	if ( value != null && value != "" ){
	  //assign root domain
    var currentdomain = document.domain;
	  //alert ('currentdomain is ' + currentdomain);
	  var detecteddomain = detectDomain(currentdomain);
	  //alert ('detecteddomain : ' + detecteddomain);
	  if (detecteddomain != '' ){
	    assigndomain = detecteddomain;
	  }
	  else{
	    assigndomain = currentdomain;
	  }
	  
	  //document.cookie=name + "=" + escape(value)  + "; path=/;";
	  document.cookie=name + "=" + escape(value)  + "; path=/; domain=" + assigndomain + ";";
	  
	  //added 2008/09/02 - confirm non-persistent cookie set
	  var cookienameset = "";
	  cookienameset =  getCookie(name);

	  if ( cookienameset != null && cookienameset != ''){
	    //alert ("non persistent cookienameset is not null/undefined/empty, so nonpersistent cookie was set");
	    //do nothing
	    }
	  else{
	    //popup('800x600','/Personal/Help/WebTechnology.aspx#Cookies');

	    //window.open ("http://www.canadapost.ca/Personal/Help/WebTechnology.aspx#Cookies","cpc","location=1,status=1,scrollbars=1,resizable=yes,left=100,top=150,width=800,height=600");
	    //setTimeOut(window.open ("http://www.canadapost.ca/Personal/Help/WebTechnology.aspx#Cookies","cpc","location=1,status=1,scrollbars=1,resizable=yes,left=100,top=150,width=800,height=600"), 3000);	  
	    self.setTimeout('winOpen()', 2000);
	  }
	}
	
}

function winOpen() {
     window.open ("http://www.canadapost.ca/Personal/Help/WebTechnology.aspx#Cookies","cpc","location=1,status=1,scrollbars=1,resizable=yes,left=100,top=150,width=800,height=600");
}


//confirm cookies on page load
function confirmCookie()
{
	var cookieValue = "";

	//check for style
	//first, check for querystring value
	qsParm['style'] = null;
	qsParm['lang'] = null;
	qsParm['language'] = null;
	checkQS();
	
	//style
	if (qsParm['style'] != null && qsParm['style'] != ''){
		//alert ("qsParm['style'] is not null: " + qsParm['style']);
		setCookie('style',qsParm['style']);		
	}
	else{
		cookieValue =  getCookie("style");
		if ( cookieValue != null && cookieValue != ''){
			//alert ("cookieValue is not null: " + cookieValue);
			setCookie('style',cookieValue);
		}
		else{
			//alert ("default standard");
			setCookie('style','0');			
		}
	}

//updated 2008/09/05 to handle toggle to new domain
	//LANG
	var currentURL = document.URL;
	
	var newLang = "e";

	//first, determine to Querystring LANG=value
	//alert("1 qsParm['lang'] : " + qsParm['lang']);
	//alert("2 qsParm['language'] : " + qsParm['language']);
	if (qsParm['lang'] != null && qsParm['lang'] != '')
	{
		//alert ("qsParm['lang'] is not null: " + qsParm['lang']);
		switch (qsParm['lang'])
		{
			case "fr":
				newLang = 'f';
				break;
			case "french":
				newLang = 'f';
				break;
			case "en":
				newLang = 'e';
				break;
			case "english":
				newLang = 'e';
				break;
			default :
				newLang = 'e';
				break;			
		}	//end switch

		setCookie('LANG',newLang);

	}
	else if (qsParm['language']!= null && qsParm['language'] != '')
	{
		//alert ("qsParm['lang'] is not null: " + qsParm['lang']);
		switch (qsParm['language'])
		{
			case "fr":
				newLang = 'f';
				break;
			case "french":
				newLang = 'f';
				break;
			case "en":
				newLang = 'e';
				break;
			case "english":
				newLang = 'e';
				break;
			default :
				newLang = 'e';
				break;			
		}	//end switch
	
		setCookie('LANG',newLang);		
	}
	//else, detect if a LANG cookie is set, and then compare to current page language before setCookie
	else{
		cookieValue =  getCookie("LANG");
		//alert("cookieValue : " + cookieValue);
		if ( cookieValue != null && cookieValue != ''){
			//alert ("cookieValue is not null: " + cookieValue);
			//compare with current url language
			//currentURL.value.search(/^[\w]+[\-e]{1}+[a-zA-Z]+$/) != -1 ;
			//if (currentURL.substring(currentURL.IndexOf("-e.")) != -1)
			if (document.URL.match('-e.'))
			{
				pageLang = "e";
				//alert ("in -e : " + document.URL.match('-e.'));
				if (cookieValue != pageLang)
				{
					setCookie('LANG',pageLang);
				}
			}
			else if (document.URL.match('-f.'))
			{
				pageLang = "f";
				//alert ("in -f : " + document.URL.match('-f.'));
				if (cookieValue != pageLang)
				{
					setCookie('LANG',pageLang);
				}
			}
		}/*
		else{
			alert ("final else" );
			//default English
			//setCookie('LANG','e');
			//do nothing, browser language is set by default, no LANG cookie is set			
		}*/
	}	
}
//
function getCookie( cookie_name )
{
  //alert("in getCookie : " + cookie_name );
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}

//check Querystring
var qsParm = new Array();
function checkQS() {
	var query = window.location.search.substring(1);
	var parms = query.split('&');
	for (var i=0; i<parms.length; i++) {
		var pos = parms[i].indexOf('=');
		if (pos > 0) {
			var key = parms[i].substring(0,pos).toLowerCase();;
			var val = parms[i].substring(pos+1).toLowerCase();;
			qsParm[key] = val;
			//alert ("in checkQS - key : " + key + " val : " + val);
		}
	}
} 

//ks - 2008/06/03 - for PR Category nav
if (document.getElementById){ //DynamicDrive.com change
	document.write('<style type="text/css">\n')
	document.write('.submenu{display: none;}\n')
	document.write('</style>\n')
}

function SwitchMenu(obj){
	if(document.getElementById){
	var el = document.getElementById(obj);
	var ar = document.getElementById("catemenudiv").getElementsByTagName("span"); //DynamicDrive.com change
		if(el.style.display != "block"){ //DynamicDrive.com change
			for (var i=0; i<ar.length; i++){
				if (ar[i].className=="submenu") //DynamicDrive.com change
				ar[i].style.display = "none";
			}
			el.style.display = "block";
		}else{
			el.style.display = "none";
		}
	}
}