var scStartTime = new Date();
var scPageNamePreTab = "";
var scPreEvents = "";

function sendTrackingLink(eventsToSet,varsToSet,friendlyName)
{
    try { 
        s.linkTrackVars = varsToSet ? varsToSet : "None";
        s.linkTrackEvents = eventsToSet ? eventsToSet : "None";
        if (eventsToSet)
            s.linkTrackVars = s.linkTrackVars.match("None") ? "events" : s.linkTrackVars + ",events";
        s.events = eventsToSet ? eventsToSet : "";
        s.tl(true,'o',friendlyName);
    }
    catch(e) {}
}


/* Split the sitecat page name up and populate individual vars*/
function splitscPageName()
{
    try {		
	
		var t = s.pageName.split(">");
		
		var lowestpageindex = t.length-1;		
		if (t[1].match("PERSONAL")) {
			s.prop3 = "PERSONAL BANKING";
		}
		if (t[1].match("BUSINESS")) {
			s.prop3 = "BUSINESS BANKING";			
		}
		
        if (lowestpageindex>1)
            s.channel = t[1] + ">" + t[2];
        else
            s.channel = t[1];
	
		if(t.length>=5)
		{
			var varP1 = t[1] + ">" + t[2] + ">" + t[3];
			s.prop1=varP1;
		}
				
		var varP2 = s.pageName;
		if (t.length>5)
		{
			if(varP2.match('UBROI'))			
			{
				var varProp2 = varP2.replace(/\bCATEGORY: UBROI>\b/gi,'');
				varProp2 = varProp2.replace(/\bSUBCATLIST: UBROI>\b/gi,'');
				varProp2 = varProp2.replace(/\bSUBCAT: UBROI>\b/gi,'');
				varProp2 = varProp2.replace(/\bCATLIST: UBROI>\b/gi,'');				
				varProp2 = varProp2.replace(/\bPRODUCT: UBROI>\b/gi,'');
				varProp2 = varProp2.replace(/\bGLOBAL: UBROI>\b/gi,'');
				varProp2 = varProp2.replace(/\bPREAPPLY: UBROI>\b/gi,'');				
				varProp2 = varProp2.replace(/\b>INDEX\b/gi,'');
				s.prop2=varProp2;
			}
			else if(varP2.match('UBNI'))
			{
				var varProp2 = varP2.replace(/\bCATEGORY: UBNI>\b/gi,'');
				varProp2 = varProp2.replace(/\bSUBCATLIST: UBNI>\b/gi,'');
				varProp2 = varProp2.replace(/\bSUBCAT: UBNI>\b/gi,'');				
				varProp2 = varProp2.replace(/\bCATLIST: UBNI>\b/gi,'');				
				varProp2 = varProp2.replace(/\bPRODUCT: UBNI>\b/gi,'');
				varProp2 = varProp2.replace(/\bGLOBAL: UBNI>\b/gi,'');
				varProp2 = varProp2.replace(/\bPREAPPLY: UBNI>\b/gi,'');
				varProp2 = varProp2.replace(/\b>INDEX\b/gi,'');
				s.prop2=varProp2;
			}		
		}	
		
		//Page URL'S
		s.prop6=document.location.href;
    }

    catch(e){}
}

function trackErrorPageDetails()
{
    s.pageType="errorPage";
    s.prop22 = "404";
    s.eVar5=s.prop22;	
    s.prop23=s.getPreviousValue(s.pageName,'gpv_pn');
	s.getPreviousValue(s.prop23,'gpv_pn');		
}

/* Populate sitecat vars */
function trackSearchDetails(a)
{	
    try {		
		s.prop5 = a.queryDetails.queryText;
		/* total convered to number->string*/
		s.prop7 = a.queryDetails.estimatedTotal+='';
	    s.prop8 = s.getPreviousValue(s.pageName,'gpv_pn');
   		
   		s.eVar1 = s.prop5;   		
   		s.eVar3 = s.prop7;
		s.eVar4 = s.prop8;
		s.getPreviousValue(s.prop8,'gpv_pn');
		scSetUpPageVars();
		}
	catch(e) {}
}

/* Sends the img request to sitecat and they grab the data */
function renderScImageTag()
{
    try
    {
        var s_code=s.t();
        if(s_code)
            document.write(s_code);
    }
    catch(e){
	    }
 }

 function trackTabSC(index) {
          scSetUpPageVars();
    }

/* Read the tab number from the url to support adding to the page name. Tab numbers appear in different forms across the pages. */

function CheckTabsOnUrl(xslTabFlag,knownTab)
{
    try {
	
      if (!knownTab) {
          var bmk = stateManager.getCurrentBookmark();
          var tab = "";
          if (/tabs[0-9]/.test(window.location.href)) {
              tab = bmk.substring(3);
          }        
      }
      else
       tab = knownTab.substring(7);
	  
      if (!tab && xslTabFlag)
        tab = "1";
        
      if (tab)
        tab = ">TAB" + tab;
      return tab;
    }
    catch(e){return "";}
}


function trackLoginClick(eventString) {
    try {
			sendTrackingLink(eventString,null,"LOGINCLICK");
		}
    catch(e){}
}

function checkEventFunctions()
{
	checkForRegisterTextServices();
	checkForIphoneDownload();
	checkForBanklineLoginButton();
	checkForBranchLocatorButton();
	checkForFindBusinessButton();
	checkForActivateButton();
	checkForSwitchLink();
	checkForRegisterNow();
	checkForRequestCallBack();
	checkForFaqForm();
	checkForPdfClick();
	scSetUpPageVars();
}

function checkForPdfClick() {  		
    var jqLinks = "a[title*=Link to a PDF document]"; 	
    attachOnClickEvent(jqLinks,"event7","PDFLINK");        
}

function checkForSearchClick(){
	sendTrackingLink("event2","","INTERNALSEARCHCLICK");
}

function checkForRegisterTextServices() {  	
    var jqLinks = "a img[alt*=Register for text alerts]"; 	
    attachOnClickEvent(jqLinks,"event21","REGISTERTEXTSERVICES");        
}

function checkForIphoneDownload() {  
    var jqLinks = "a img[alt*=Download the iPhone App]"; 	
    attachOnClickEvent(jqLinks,"event22","DOWNLOADIPHONEAPP");        
}

function checkForBanklineLoginButton()
{
	var jqLinks = "a[class*=loginButton]"; 	
	attachOnClickEvent(jqLinks,"event10","BANKLINELOGINBUTTON");		
}
function checkForBranchLocatorButton()
{
	var jqLinks = "button[class*=branch_locator_go]"; 
	attachOnClickEvent(jqLinks,"event19","BRANCHLOCATORBUTTON");
}
function checkForFindBusinessButton()
{
	var jqLinks = "a[class*=findBranch]"; 
	attachOnClickEvent(jqLinks,"event18","FINDBUSINESSCENTREBUTTON");
}
function checkForActivateButton()
{
	var jqLinks = "a img[alt*=Activate]"; 
	attachOnClickEvent(jqLinks,"event20","ACTIVATEBUTTON");
}
function checkForSwitchLink()
{
	var jqLinks = "a[title*=Switch to]"; 
	attachOnClickEvent(jqLinks,"event25","SWITCHLINK");
}

function checkForRequestCallBack()
{
	var jqLinks = "a img[alt*=Request a call back]"; 
	attachOnClickEvent(jqLinks,"event14","REQUESTCALLBACKBUTTON");
}

function checkForRegisterNow()
{
	var jqLinks = "a img[alt*=Register now]"; 
	attachOnClickEvent(jqLinks,"event15","REGISTERNOWBUTTON");
}

function checkForFaqForm() {
	
	$("form.faqForm").submit(function() { 
	try {
			s.prop6 = $("input[name = question]").val() ;   		
			scSetUpPageVars();
		}
	catch(e) {}
	});
}

function checkForBranchLocatorForm(val) {	
	 try{	
			s.prop11 = val;
			scSetUpPageVars();	
		}
	catch(e) {		
	}	
}

function checkForBranchLocatorFilter(val) {	
	 try{		
		s.prop12 = val;
   		scSetUpPageVars();	
		}
	catch(e) {	
	}	
}

// Attach onclick to a number of links - if they exist. Attaches the 1st link found.
function attachOnClickEvent(jqlinksToCheck,eventToSet,friendlyName) {
    try {
        var jqLinks = jqlinksToCheck.split(",");
        
        for (i=0;i < jqLinks.length;i++) {
        
            /*if ($(jqLinks[i]).length > 0 && $(jqLinks[i]).click.length > 0) {*/
            if ($(jqLinks[i]).length > 0) {
                $(jqLinks[i]).click(function()
                {
                    friendlyName += ">" + $(this).attr("title");
                    trackButtonClick(eventToSet,null,friendlyName);
                })
                break; /* exit loop if click event sent*/
            }
        }
    }
    catch(e){}
}

function trackButtonClick(eventToSet,varsToSet,friendlyName)
{
		friendlyName = s.hier1 + ">" + friendlyName;
		sendTrackingLink(eventToSet,varsToSet,friendlyName);
}

function setEvents(scPreEvents) {      
	  
		var pageEvents = "event11";
		var serialCookieVal="";
		if(!readSerializedCookie('serialCookie'))
		{
			createSerializedCookie('serialCookie',Math.random()*1031125);
			serialCookieVal=readSerializedCookie('serialCookie');
			serialCookieVal = serialCookieVal.replace(".",'');
		}
		
		if(readSerializedCookie('serialCookie'))
		{
			serialCookieVal=readSerializedCookie('serialCookie');
			serialCookieVal = serialCookieVal.replace(".",'');
		}
		
		if (scPreEvents) {
			s.events = "";
			pageEvents += scPreEvents;
		}	  	
				
		if (s.prop4.match("PRODUCT"))
		{
			var event12 = 	",prodView,event12:" + serialCookieVal;			
			pageEvents += event12;
		}
		  
		if (s.pageName.match(">USEFULPHONENUMBERS"))
		{
			var event3= ",event3:" + serialCookieVal;
			pageEvents += event3;
		}

		if (s.pageName.match(">COMPLAIN"))
		{
			var event13 = ",event13:" + serialCookieVal;
			pageEvents += event13;
		}				
		
		if (s.prop4 == "SEARCH")
		{
			pageEvents += ",event1";
		}
				
		 if(s.getQueryParam('intcam'))
		{		
			s.eVar11 = s.getQueryParam('intcam');
			s.eVar11 = s.getValOnce(s.eVar11,'ev11');
			if(s.eVar11)
			{
				pageEvents += ",event16";
			}
			s.prop10 = s.eVar11;
		}
		
		if (s.pageName.match(">PREAPPLY"))
		{
			pageEvents += ",event23";
		}
		
		if (s.pageName.match(">OPENACCOUNT"))
		{
			pageEvents += ",event24";
		}
		
		s.events = (s.events)?( s.events.match(pageEvents)? pageEvents : s.events):pageEvents;
	  
}

function setProduct(pageNameFromMeta) {
	
      if (s.prop4.match("PRODUCT")) {
		  if (pageNameFromMeta)
		    s.products = ";" + pageNameFromMeta + ";;;";
		  else {
			if (s.prop2)
				s.products = ";" + s.prop2+";;;";
			else
				s.products = ";" + s.prop1+";;;";            
          }
      }
	  
	  if (s.prop4.match("PREAPPLY")) {
		  if (pageNameFromMeta)
		    s.products = ";" + pageNameFromMeta + ";;;";
      }
}

function setCaoProductEvent(prods) 
{
   s.products = prods;
}

/* Track accordion click via event to SC*/
function trackAccordianClick(ec,accordianText) {
    try {	
		
		var varProp2 = s.pageName;
		varProp2 = varProp2.replace("GLOBAL:",'');
		varProp2 = varProp2.replace("CATEGORY:",'');
		varProp2 = varProp2.replace("SUBCATLIST:",'');
		varProp2 = varProp2.replace("SUBCAT:",'');
		varProp2 = varProp2.replace("CATLIST:",'');				
		varProp2 = varProp2.replace("PRODUCT:",'');
		varProp2 = varProp2.replace("PREAPPLY:",'');		
		varProp2 = varProp2.replace(">INDEX",'');		
		var accordianProp = ec + "|" + varProp2 + ">" + accordianText;
		
		s.prop20=accordianProp;
		s.eVar9=s.prop20;
        sendTrackingLink("event26","eVar9,prop20","AccordianEvents");
    }
    catch(e){}    
}

/* Campaign Handling*/
function campaignHandling()
{	
    s.campaign=s.getQueryParam('extcam');

    if (s.campaign && s.campaign.length > 0) {
      
	  s.prop9 = s.getValOnce(s.campaign, 's_campaign');	  
	  s.eVar8="";
	  if(s.prop9)
	  {
		s.eVar8 = "+1";
	  }
	  
    }	
    s.campaign=s.getValOnce(s.campaign,'cmp_cookie');
	
	if(s.getQueryParam('olbcam')){
		s.eVar20 = s.getQueryParam('olbcam');
		s.eVar20 = s.getValOnce(s.eVar20,'ev20');
	}	
	
	
	var URLreferrer = document.referrer;
	var currentURL = document.URL;
	
	if(URLreferrer.match("http://www."))
	{
		URLreferrer=URLreferrer.substr(11);		
		var indUrlReferrer = URLreferrer.indexOf("/");
		URLreferrer = URLreferrer.slice(0,indUrlReferrer);
	}
	else if(URLreferrer.match("http://"))
	{
		URLreferrer=URLreferrer.substr(7);		
		var indUrlReferrer = URLreferrer.indexOf("/");
		URLreferrer = URLreferrer.slice(0,indUrlReferrer);		
	}
	else if(URLreferrer.match("www."))
	{
		URLreferrer=URLreferrer.substr(4);		
		var indUrlReferrer = URLreferrer.indexOf("/");
		URLreferrer = URLreferrer.slice(0,indUrlReferrer);		
	}	
	
 	var searchEngineList = "search.yahoo.com|search.yahoo.com|bing.com|search.yahoo.com/search|ask.com|aolsearch.aol.co.uk|search.aol.co.uk|search.hp.my.aol.co.uk|aolbroadband.search.aol.co.uk|search.bt.com|search.virginmedia.com|search.orange.co.uk|talktalk.co.uk/search|search.sky.com|search.mywebsearch.com|fastbrowsersearch.com|easysearch.org.uk|freesearchsite.org|search.msn.com|crawler.com/search|tesco.net|baidu.com|google.ae|google.am|google.as|google.at|google.az|google.ba|google.be|google.bg|google.ca|google.cd|google.ch|google.ci|google.cl|google.cn|google.co.cr|google.co.id|google.co.il|google.co.in|google.co.jp|google.co.ke|google.co.kr|google.co.ma|google.co.nz|google.co.th|google.co.ug|google.co.uk|google.co.uz|google.co.ve|google.co.yu|google.co.za|google.co.zm|google.com.ai|google.com.ar|google.com.au|google.com.au|google.com.bd|google.com.bh|google.com.bn|google.com.bo|google.com.br|google.com.co|google.com.cu|google.com.do|google.com.ec|google.com.eg|google.com.et|google.com.gi|google.com.gt|google.com.hk|google.com.jm|google.com.kh|google.com.ly|google.com.mt|google.com.mx|google.com.my|google.com.na|google.com.ng|google.com.ni|google.com.om|google.com.pa|google.com.pe|google.com.ph|google.com.pk|google.com.pr|google.com.py|google.com.qa|google.com.sa|google.com.sg|google.com.sv|google.com.tr|google.com.tw|google.com.ua|google.com.uy|google.com.vc|google.com.vn|google.com/search|google.cz|google.de|google.dj|google.dk|google.ee|google.es|google.fi|google.fr|google.ge|google.gm|google.gp|google.gr|google.hn|google.hr|google.ht|google.hu|google.ie|google.is|google.it|google.je|google.jo|google.kz|google.li|google.lk|google.lt|google.lu|google.lv|google.ma|google.md|google.mn|google.mu|google.nl|google.no|google.nu|google.pl|google.pt|google.ro|google.ru|google.rw|google.se|google.si|google.sk|google.sm|google.sn|google.to|google.tt|dev.natwestcom.rbsgrp.net";
			 
 	var previousReferrer = s.getPreviousValue(s.prop31,'gpv_c31');
	
	var noValue = "no value";
	var didNotBounce = "Did not bounce";
	var siteName = "ulsterbank";

	
	if((!URLreferrer.match(siteName)) && (!(previousReferrer.match("PPC|SEO|Affliate|External Banner|Email|Referrer|Direct|Did not bounce"))))
	{
		if((URLreferrer.match(searchEngineList)) && ((s.getQueryParam('extcam')=='ppc')||(s.getQueryParam('extcam')=='ppc')))
			{
			s.prop31 = "PPC";			
			} 
		else if((URLreferrer.match(searchEngineList)) && !((s.getQueryParam('extcam')=='ppc')||(s.getQueryParam('extcam')=='ppc')))
			{
			s.prop31 = "SEO";
			}  
		else if (((s.getQueryParam('extcam')=='afc')||(s.getQueryParam('extcam')=='AFC')))
			{
			s.prop31 = "Affiliate";
			}
		else if (((s.getQueryParam('extcam')=='bac')||(s.getQueryParam('extcam')=='BAC')))
			{
			s.prop31 = "External Banner";
			}	
		else if (((s.getQueryParam('extcam')=='emc')||(s.getQueryParam('extcam')=='EMC')))
			{
			s.prop31 = "Email";
			}  
		else if ((URLreferrer != ""))
			{
			s.prop31 = "Referrer";
			}  
		else
			{
			s.prop31 = "Direct";
			} 
	}	
	else if (previousReferrer.match("PPC|SEO|Affliate|External Banner|Email|Referrer|Direct"))
	{
		s.prop31 = "Did not bounce";
	}	
	else
	{
	s.prop31 = "";
	} 
	
	s.eVar21 = s.prop31;
	s.prop32 = "";
	s.eVar22="";
	s.eVar25="";
	if((s.prop31 != "Did not bounce") && (s.prop31 !=""))
	{
	s.prop32 = s.prop31 + ":" + s.getVisitNum();
	s.eVar22 = s.prop32;
	s.eVar25=s.crossVisitParticipation(s.eVar22,'s_ev22','30','10','>','event4',1);
	}
	
	
	previousCampaign = s.getPreviousValue(s.prop33,'gpv_c33');
	if (s.campaign && s.campaign.length > 0) 
		{
		s.prop33 = s.campaign + ":" + s.pageName;
		s.eVar23 = s.prop33;
		}
	else if ((previousCampaign != "Did not bounce") && ((previousCampaign != "") && (previousCampaign != "no value")))
		{
		s.prop33 = "Did not bounce";
		s.eVar23 = s.prop33;
		}
	else
		{
		s.prop33 = "";
		s.eVar23 = s.prop33;
		}
		
		s.getPreviousValue(s.prop31,'gpv_c31');
		s.getPreviousValue(s.prop33,'gpv_c33');		
}

function NonXSLSetUp() {   	
	
	s.eVar5 = s.prop22;
    s.eVar6 = s.pageName;	
	s.prop14 = scFulldate(); // Set full date
	s.prop15= scHour(); // Set time - hour
	s.prop16= scDay(); // Set day
		
	s.eVar14 = s.prop14;
	s.eVar15 = s.prop15;
	s.eVar16 = s.prop16;

    if (s.prop16.match("Saturday|Sunday"))
		s.prop17="Weekend";
	else
		s.prop17="Weekday"; 

    campaignHandling();
	
	s.eVar17 = s.prop17;
	
    var sch = (s.pageName.substring(s.pageName.indexOf(':') != -1 ? 1+s.pageName.indexOf(':') : 0));
    s.hier1 = sch.replace(/ /g,"");
		
    s.prop26 = (new Date().getTime() - scStartTime.getTime());
    s.getPreviousValue(s.pageName,'gpv_pn');    
	s.events = (s.events)?( s.events.match(pageEvents)? s.pageEvents : s.events):pageEvents;	
}


function scFulldate() {
	var d = new Date();
	var month = d.getMonth();
	var realMonth = month + 1

return d.getDate() + "/" + realMonth + "/" + d.getFullYear();
}

function scHour() {
	var d = new Date();
	if (d.getHours() <12)
	{
	var mornVal = d.getHours();
	var amHour = mornVal + "AM";
	return amHour;
	}
	if (d.getHours() ==12)
	{
	var noonVal = d.getHours();
	var noonHour = noonVal + "PM";
	return noonHour;
	}
	if (d.getHours() >12)
	{
	var afterVal = d.getHours();
	var pmHour = (afterVal - 12) + "PM";
	return pmHour;
	}
}

function scDay() {
	var d = new Date();
	var weekday=new Array(7);
	weekday[0]="Sunday";
	weekday[1]="Monday";
	weekday[2]="Tuesday";
	weekday[3]="Wednesday";
	weekday[4]="Thursday";
	weekday[5]="Friday";
	weekday[6]="Saturday";

	return weekday[d.getDay()];
}

function scYear() {
	var d = new Date();
	var year = d.getFullYear();
	return year;
}


function createSerializedCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else 
	{
		var expires = "";	
		document.cookie = name+"="+value+expires+"; path=/";		
	}
}

function readSerializedCookie(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 pipe_replace(str,n) {
   var RE = new RegExp("^((?:[0-9]+\\|\\|){" + (n-1) + "})([0-9]+)\|\|");
   return str.replace(RE,"$1$2&&");
}




