/* 
 xtrtrkr 
 custom variables: 
 1: social_first_click - visitor scope
 2: social_influencer - visitor scope
 3: 
 4: 
 5: 
*/

var Docs = ['doc','xls','pdf'];
var Srcs = ['twitter','facebook','youtube'];
var Tracked = false;
var ie7orbelow = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
var dirtyLinks = ['#','javascript'];
var urchin_source = '';
var urchin_medium = '';
var urchin_term = '';

var domains = [{name: 'www.ebico.org.uk',UA:'UA-2893024-4'},{name: 'panther',UA:'UA-2893024-4'}];
subdomain = '';

/*
  Helper functions for Internet Explorer's W3C complioance frailty
*/
if (/msie/i.test (navigator.userAgent)) //only override IE
{
  document.nativeGetElementById = document.getElementById; 
  document.getElementById = function(id)
  {
    var elem = document.nativeGetElementById(id);
    if(elem)
    {
      //make sure that it is a valid match on id
      if(elem.attributes['id'].value == id)
      {
        return elem;
      }
      else
      {
        //otherwise find the correct element
        for(var i=1;i<document.all[id].length;i++)
        {
          if(document.all[id][i].attributes['id'].value == id)
          {
            return document.all[id][i];
          }
        }
      }
    }
    return null;
  }
}


function createCookie(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 readCookie(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 get_UA(){
  UA = '';
  for(var i = 0; i < domains.length; i++){
    if(document.location.toString().indexOf(domains[i].name) > -1){	  
      UA = domains[i].UA;
      return UA;
    }
  }

  return UA;
}

function _LinksCheck(CheckItems,lnk){
  var LinkCheck = false;
  for(var i = 0; i < CheckItems.length; i++){
    if(lnk.indexOf(CheckItems[i]) > -1){
      LinkCheck = true;
    }
  }
  return LinkCheck;
}

function _PageTrack(URL){

  var pageTracker = _gat._getTracker(get_UA());
  if(document.location.toString().indexOf(subdomain)>0){
    pageTracker._setDomainName(subdomain);
    pageTracker._setAllowLinker(true);
  }
  pageTracker._trackPageview(URL);

  Tracked = true;
}

function _ExitPageTrack(URL,Dest,newWindow,exit){
  if(exit){
	_PageTrack('/exit/'+URL);
  }else{
	_PageTrack(URL);
  }
 
  setTimeout(function(){
    if(Tracked){
      if(newWindow){
	    Tracked = false;
        window.open(Dest);
      }else{
	    window.location.href = Dest;
      }
    }
  }, 100);
  return false;
}

function pmxdomainCheck(link){
  pmxlink = false;
  for(var i = 0; i < domains.length; i++){
	if((link.indexOf('http:')>=0) && (link.indexOf(domains[i].name)>0) && (document.domain.indexOf(domains[i].name)<0)){pmxlink=true}
  }
  return pmxlink
}

function _ExitTrack(Links){

  for(var i = 0; i < Links.length; i++){
    if((Links[i].href.toString().indexOf(document.domain)<0) && (!pmxdomainCheck(Links[i].href.toString())) && (Links[i].href.toString().indexOf('mailto')<0) && (Links[i].href.toString().indexOf('http:')>=0) && (!_LinksCheck(Docs, Links[i].href.toString()))){
      if(!ie7orbelow){
        Links[i].setAttribute("onclick","return _ExitPageTrack('" + Links[i].href + "','" + Links[i].href + "'," + (Links[i].target != '') + ",true)");
      }else{
	    Links[i].onclick=function() { _ExitPageTrack(this.href,this.href,(this.target != ''),true); };
      }
    }
  }
}

function _DownloadTrack(lnks) {
  for(var i = 0; i < lnks.length; i++){
    if(_LinksCheck(Docs, lnks[i].href)){
	  if(!ie7orbelow){
        lnks[i].setAttribute("onclick","return _ExitPageTrack('/download/" + lnks[i].href + "','" + lnks[i].href + "',true,false);");
	  }else{
	    lnks[i].onclick=function() { _ExitPageTrack('/download/' + this.href,this.href,true,false); };
      }
    }
  }
}

function _MailTrack(Links) {
  for(var i = 0; i < Links.length; i++){
    if(Links[i].href.indexOf("mailto:") > -1){
	  if(!ie7orbelow){
        Links[i].setAttribute("onclick","_PageTrack('/mailto/" + Links[i].href + "')");
	  }else{
	    Links[i].onclick=function() { _PageTrack('/mailto/'+this.href); };
      }
    }
  }
}

function get_utm_value(l,n,s,vregex)
{if (!l || l=="" || !n || n=="" || !s || s=="") return "-";
var i, i2, i3, c="-";
var regex = new RegExp(vregex);
i=l.indexOf(n);
i3=n.indexOf("=")+1;
if (i > -1){i2=l.indexOf(s,i);
  if (i2 < 0){i2=l.length;}
  c=l.substring((i+i3),i2);
}
vout = regex.exec(c) == null ? '' : regex.exec(c)[1];
return vout;}

function _SocialTrack(){
  for(var i = 0; i < Srcs.length; i++){
    if(document.referrer && document.referrer.indexOf(Srcs[i])>=0){
      if(readCookie('__utma')==null){	
        _gaq.push(['_ebico._setCustomVar',1,'social_first_click',Srcs[i],1]);
      }else{	
	    var social_history = get_utm_value(document.cookie, '__utmv=', ';','social_influencer=([a-zA-Z]*)');
	    if(social_history!='' && social_history.indexOf(Srcs[i])<0){
	      _gaq.push(['_ebico._setCustomVar',2,'social_influencer',social_history+'-'+Srcs[i],1]);
	    }else{
		  _gaq.push(['_ebico._setCustomVar',2,'social_influencer',Srcs[i],1]);
	    }
      }
    }
  }

  return true;
}

function _uGC(l, n, s) {
    if (!l || l == "" || !n || n == "" || !s || s == "") return "-";
    var i, i2, i3, c = "-";
    i = l.indexOf(n);
    i3 = n.indexOf("=") + 1;
    if (i > -1) {
        i2 = l.indexOf(s, i);
        if (i2 < 0) {
            i2 = l.length
        }
        c = l.substring((i + i3), i2)
    }
    return c
} 

function grabReferrer() {
    var z = _uGC(document.cookie, "__utmz=", ";");
    urchin_source = _uGC(z, "utmcsr=", "|");
    urchin_medium = _uGC(z, "utmcmd=", "|");
    urchin_term = _uGC(z, "utmctr=", "|");
    var gclid = _uGC(z, "utmgclid=", "|");
    if (gclid != '-') {
        urchin_source = "google";
        urchin_medium = "cpc"
    }
}

function cleanLinks(lnks){
  cleanedLinks = [];
  for(var i = 0; i < lnks.length; i++){ 
	cleanLink = true;
    for(var j = 0; j < dirtyLinks.length; j++){
	  if(lnks[i].href.indexOf(dirtyLinks[j])>=0){
	    cleanLink = false;
	  }
	}
	if(cleanLink){cleanedLinks.push(lnks[i]);}
  }
  return cleanedLinks;
}

function _ExtraTrack(){
  fullLinks = document.getElementsByTagName('a');
  Links = cleanLinks(fullLinks);   

  _SocialTrack();
  _ExitTrack(cleanLinks(fullLinks));
  _DownloadTrack(cleanLinks(fullLinks));
  _MailTrack(cleanLinks(fullLinks));
}

var _gaq = _gaq || [];	
_gaq.push(['_ebico._setAccount', get_UA()]);

setTimeout(function(){
  _ExtraTrack();
}, 100);
