//***************************************************************************************
// *  Page Name   :  SEOCommonJSFunctions.js                        
// *  Description :  A common JS file used by different modules in the ATS application				      
// *
// *  REVISION HISTORY:                                                                                                                 
// *  Date Created :                                       
// *  Author       : 
// *                                                                        
// *  REVISION TRAIL:                                                      
// *                                                                        
// *  DATE		  BY     SIR NO          DESCRIPTION                         
// *  12/14/2005  ARMC	 SIR-IDAQAWLG    Open External Window bug on ATS and Careers HP
// *  09/01/2006  PBMD   SIR-IDAHOXQC    ATS ASG Changes                                       
// *  02/02/2007  SGS    SIR-IDAQAM1C    TAS Hidden Page Functionality                                         
// *  07/12/2007  MLAB   SIR-950         Invalid Dropdown value found in ATS and DF 
// *                                     Search
// *  08/29/2008  RPSD	 SIR-1282		 Omniture Effort Release 2  
// *  08/25/2008  RPSD	 SIR-1311		 Omniture Effort Release 3
//***************************************************************************************

//External js file used by ATS\UserControl\UIFooter.ascx
	var name= "ACNRC"; 
	var allcookies = this.document.cookie; 
	var pos = allcookies.indexOf(name); 
	var start = allcookies.indexOf(this.name + '=');
	start += this.name.length +1;
	
	var end = allcookies.indexOf(';', start);

	if (end ==-1) end =allcookies.length;
	
	var cookieval = allcookies.substring(start, end);
	var domain = document.domain;
	var path = " / "; 
	var secure;
	var expires= new Date(); 
	var current= new Date(); 
	var x;
	var upper_limit = 9000000000000000;
	var y;
	var mh = current.getMonth()+1; 
	var de = current.getDate(); 
	var yr = current.getFullYear(); 
	var hs = current.getHours(); 
	var mn = current.getMinutes(); 
	var ss = current.getSeconds(); 
	var ap;  

	expires.setFullYear(expires.getFullYear()+9); 
	current.setFullYear (current.getFullYear()); 
            
    function RandomNumber(upper_limit) 
	{ 
		return Math.round(upper_limit * Math.random()); 
	}
	
	function cookie(id, output, expires, path) 
	{ 
		x=("ACNUSERID=") + id; 
		x = ("ACNRC") + "=" + ("ACNVISIT=") + output + "&" + x + "; expires=" + expires.toGMTString(); 
		x =  x + "; path=" + path;
		document.cookie = x;
	}
	
	function visittime(mh, de, yr, hs, mn, ss,ap) 
	{ 
		if(hs < 12){ 
		ap = "AM"
		}
		else {
			ap = "PM"
		}

		switch(hs)
		{
			case 00:
				hs="12";
			break; 
			case 01:
				hs="1";
			break; 	
			case 02:
				hs="2";
			break; 	
			case 03:
				hs="3";
			break; 	
			case 04:
				hs="4";
			break; 	
			case 05:
				hs="5";
			break; 	
			case 06:
				hs="6";
			break; 	
			case 07:
				hs="7";
			break; 	
			case 08:
				hs="8";
			break; 	
			case 09:
				hs="9";
			break; 	    	      
			case 10:
				hs="10";
			break; 	 
			case 11: 
				hs="11";
			break; 	
			case 12: 
				hs="12";
			break; 	
			case 13: 
				hs="1";
			break; 	
			case 14: 
				hs="2";
			break; 	
			case 15: 
				hs="3";
			break; 	
			case 16: 
				hs="4";
			break; 	
			case 17: 
				hs="5";
			break; 	
			case 18: 
				hs="6";
			break; 	
			case 19: 
				hs="7";
			break; 	
			case 20: 
				hs="8";
			break; 	
			case 21: 
				hs="9";
			break; 	
			case 22: 
				hs="10";
			break; 	
			case 23: 
				hs="11";
			break; 	
			default:
				hs=hs; 
			break; 
		}
	
		switch(mn)
		{ 
			case 0:
				mn="00";
			break; 	
			case 1:
				mn="01";
			break; 	
			case 2:
				mn="02";
			break; 	
			case 3:
				mn="03";
			break; 	
			case 4:
				mn="04";
			break; 	
			case 5:
				mn="05";
			break; 	
			case 6:
				mn="06";
			break; 	
			case 7:
				mn="07";
			break; 	
			case 8:
				mn="08";
			break; 	
			case 9:
				mn="09";
			break; 		
			default:
				mn=mn;
			break; 
		} 

		switch(ss)
		{ 
			case "0":
				ss="00";
			break; 	
			case 1:
				ss="01";
			break; 	
			case 2:
				ss="02";
			break; 	
			case 3:
				ss="03";
			break; 	
			case 4:
				ss="04";
			break; 	
			case 5:
				ss="05";
			break; 	
			case 6:
				ss="06";
			break; 	
			case 7:
				ss="07";
			break; 	
			case 8:
				ss="08";
			break; 	
			case 9:
				ss="09";
			break; 		
			default:
				ss=ss;
			break; 
		} 
					
		output = mh + "/" + de + "/" + yr + "+" + hs + ":" + mn + ":" + ss + "+" + ap; 
	}


	if(pos != -1)	
	{
		var broken_cookie = cookieval.split("&");
		var cookie1 = broken_cookie[0];
		var cookie2 = broken_cookie[1];
		var cookie1_check = cookie1.split("=");
		var cookie2_check = cookie2.split("=");
		var id = cookie2_check[1];
		var a = cookie2_check[1].length;
		var output = cookie1_check[1];
		
		if ((cookie1_check[0] == "ACVIST") || (cookie2_check[0] == "ACUSERID")) {
			x=cookie(id, output, expires, path);
		}
			
		if (a == 0)
		{	
			var f=visittime(mh, de, yr, hs, mn, ss,ap);
			var num=RandomNumber(upper_limit); 
			var rn=current.getTime();
			var id = num + rn; 
			x=cookie(id, output, expires, path);
		}
	}

	if(pos == -1)
	{
		var f=visittime(mh, de, yr, hs, mn, ss,ap);
		var num=RandomNumber(upper_limit); 
		var rn=current.getTime();
		var id = num + rn; 
		x=cookie(id, output, expires, path);
	}

	function footerBG()
	{
		var footerID;
		footerID = "FooterTable";
		var section = document.getElementById(footerID); 
		var cn = "bgMain";
		section.className =  cn;
	}
		
	//Function used by ATS\XSLT\UIFooter.xslt		
	function GMS()
	{
		if ((navigator.appVersion.indexOf("Macintosh") != -1)) {
			alert('Macintosh users can view the complete Global Meritocracy Statement at http://careeers.accenture.com/gms.html.');
		}
		else {
			alert('Accenture does not discriminate on the basis of race, religion, color, sex, age, non-disqualifying physical or mental disability, national origin or any other basis covered by local law. All matters related to employment are decided on the basis of qualifications, merit and business need.');
		}
	}		
		
	//Function used by ATS\ASPX\DisplayHomepagePopup.aspx
	//				   ATS\ASPX\DisplayPrintFriendly.aspx
	function printThis()
	{
		if (window.print){ 
			window.print()
		} 
		else 
			alert('To print this page press Ctrl-P on your keyboard.')
	}		


	//Function used by ATS\Templates\Article.aspx
	//				   ATS\Templates\DropDownMenu.aspx
	function Go(ItemID)
	{
		if (document.getElementById(ItemID).value.match("..external..") == "..external..")
		{		
			window.open(document.getElementById(ItemID).value.replace(/..external../,""));
		}
		else				
		{
			self.location = document.getElementById(ItemID).value;
		}
		
	}

	// This function below will pass search data to the SearchBoxAddOn usercontrol.
	function runSearchFunction()
	{ 
		CopyFromForm = window.document.forms[0];
		CopyToForm = window.document.SearchBoxAddOnForm;
		
		if(CopyFromForm.sv.value =="") 
		{	
			CopyToForm.site.value = "ATS_all";
			CopyToForm.search_main.value = "";
			CopyToForm.search_in.value = "main_locations";	
			CopyToForm.searchby.value = "";
		}
		else
		{
			CopyToForm.site.value = "ATS_" + CopyFromForm.sv.value.toLowerCase();
			CopyToForm.search_main.value = "section";
			CopyToForm.search_in.value = "main";
			CopyToForm.searchby.value = CopyFromForm.sv.value;		
		}

		CopyToForm.q.value = CopyFromForm.q.value;
		CopyToForm.target = "_self";
		SubmitForm(CopyToForm.id);	

		//This cancels other events triggered by the user once the form is submitted. 
		if(window.event)
		{
			event.returnValue = false;
			event.cancelBubble = true;
		}
		else
		{
			e.returnValue = false
			e.cancelBubble = true;
		}
	}	
	
		
	//This function submits the correct form that corresponds to the formId passed to it.
	//This is used in the Search functionality to submit the correct form.
	function SubmitForm(formId)
	{
		var srcForm;
		var formTemp;
		for(i=0;i<window.document.forms.length;i++)
		{
			formTemp = window.document.forms[i];
			
			if(formTemp.id.toLowerCase() == formId.toLowerCase()) {
				srcForm = formTemp;
			}
			else {
				formTemp.onsubmit = function(){ return false;}
			}
		}
		
		if(srcForm)	{
			srcForm.submit();
		}
		
	}

	//This is the event handler for the Enter key.
	function checkForEnter(keyCode) 
	{
		if(keyCode == 13) { 
			runSearchFunction();
		}

		return false;
	}       

	//Function used by ATS\XSLT\UIBanner.xslt
	function printWin()
	{
		var guidVal;
		var idVal = "PrintGUID";
		var obj3;
		guidVal = document.getElementById(idVal).value;
		openPrintFriendly(guidVal);
	}

	// Functions used by ATS\Templates\PrintandEmailAFriend.ascx
	function openPrintFriendly(GUID)
	{
		popWindow('/ATS/ASPX/DisplayPrintFriendly.aspx?GUID=' + GUID,'560','760','');
	}
	   
	function EmailToFriend()
	{
		popWindow('/xd/tsPrintMail/email_friend_full-New2.asp?country=' + CurrentChannel + '&pageURL=' + encode,'500','630','');
	}
   
	   
	//All spaces, punctuation, accented characters, and any other non-ASCII characters 
	//are replaced with %xx encoding, where xx is equivalent to the hexadecimal number 
	//representing the character. For example, a space is returned as "%20." 
	function URLencode(sStr)
	{
		return escape(sStr).
			replace(/\+/g, '%2B').
				replace(/\"/g,'%22').
					replace(/\'/g, '%27'). 
						replace(/\//g,'%2F');
		//%27 - Single Quote
		//%22 - Double Quote
		//%2B - + sign
		//%2F - / sign
	}

	function trim(str)
	{
		return str.replace(/^\s*|\s*$/g,"");
	}

	//Returns true if the parameter passed is not undefined and has a length greater than 0
	function IsValidParam(param)
	{
		if (param == undefined){				
			return false;				
		}
		
		if(trim(param).length > 0){
			return true;
		}				

		return false;
	}

	//Calls Hitbox.asp passing hitURL and redirectURL as query strings.
	//The target parameter specifies whether the Hitbox.asp will open in current window 
	//or opens in a new window.
	function RedirectHitbox(hitURL, redirectURL, target)
	{						
		if(IsValidParam(hitURL) && IsValidParam(redirectURL))
		{
			
			var encodedHitURL = URLencode(hitURL);
			var encodedRedirectURL = URLencode(redirectURL);
			var strURL;
			
			strURL = '/ATS/ASP/Hitbox.asp?hitURL=' + encodedHitURL + '&redirectURL=' + encodedRedirectURL;

			if(typeof target != 'undefined'){
				if(target.toLowerCase() == 'external'){
					window.open(strURL);
				}			
				else{
					window.location=strURL;
				}
			}
			else{
				window.location=strURL;
			}					
		}
	}
   
	//Omniture onClick JS function to handle variable assignments for embedded
	//video and audio attachments
	function trackOmnitureCustomLinks(eventType,url)
	{
		var s=s_gi(s_account);
		url = url.toLowerCase();
								
		switch(eventType)
		{
			case 'event6':
				//Override tracked variables
				s.linkTrackVars = 'eVar16,events';
				s.linkTrackEvents = 'event6';
				
				//Set custom event variable 16 to the link URL
				s.eVar16 = url;
				
				//Set site event variable for embedded video link
				s.events = 'event6';
				
				//Send request to populate the Custom Link Report	
				s.tl(true,'o','Watch the Video');	
				
				//Reset variables to empty to avoid double hits
				s.linkTrackVars = "None";
				s.linkTrackEvents = "None";
				s.eVar3 = "";
				s.events = "";									
				break;    
				
			case 'event7':		
				//Override tracked variables
				s.linkTrackVars = 'eVar17,events';
				s.linkTrackEvents = 'event7';
				
				//Set custom event variable 17 to the link URL
				s.eVar17 = url;
				
				//Set site event variable for embedded audio link
				s.events = 'event7';
				
				//Send request to populate the Custom Link Report	
				s.tl(true,'o','Listen to Audio');
				
				break;    
		
			case 'event28':
			
				//Override tracked variables
				s.linkTrackVars = 'eVar32,events';
				s.linkTrackEvents = 'event28';
				
				//Set custom event variable 32 to the referral page
				s.eVar32 = url + ' | print article';
				
				//Set site event variable for print article tracking
				s.events = 'event28';
				
				//Send request to populate the Custom Link Report	
				s.tl(true,'o','Print Article');
				
				break;    
		} 													
	}	
