// Code section for Enable Event Tracking
var gHref="";
function dcsParseSvl(sv){
	sv=sv.split(" ").join("");
	sv=sv.split("\t").join("");
	sv=sv.split("\n").join("");
	var pos=sv.toUpperCase().indexOf("WT.SVL=");
	if (pos!=-1){
		var start=pos+8;
		var end=sv.indexOf('"',start);
		if (end==-1){
			end=sv.indexOf("'",start);
			if (end==-1){
				end=sv.length;
			}
		}
		return sv.substring(start,end);
	}
	return "";
}
function dcsIsOnsite(host){
	var doms="pctelecom,pctelecom.ca,preview.pctelecom.ca";
    var aDoms=doms.split(',');
    for (var i=0;i<aDoms.length;i++){
		if (host.indexOf(aDoms[i])!=-1){
		       return 1;
		}
    }
    return 0;
}
function dcsIsHttp(e){
	return (e.href&&e.protocol&&(e.protocol.indexOf("http")!=-1))?true:false;
}

function dcsSaveHref(evt){
	if (evt.preventDefault&&evt.target.href){
		evt.preventDefault();
		gHref=evt.target.href;
	}
}

function dcsEvt(evt){
	var e=evt.target||evt.srcElement;
	if (e.tagName&&(e.tagName=="IMG")){
		e=e.parentElement||e.parentNode;
	}
	return e;
}
function dcsBind(event,func){
	if ((typeof(window[func])=="function")&&document.body){
		if (document.body.addEventListener){
			document.body.addEventListener(event, window[func], true);
		}
		else if(document.body.attachEvent){
			document.body.attachEvent("on"+event, window[func]);
		}
	}
}
function dcsET(){
	dcsBind("click","dcsDownload");
	dcsBind("click","dcsOffsite");
}
	
function dcsMultiTrack(){
	for (var i=0;i<arguments.length;i++){
		if (arguments[i].indexOf('WT.')==0){
				WT[arguments[i].substring(3)]=arguments[i+1];
				i++;
		}
		if (arguments[i].indexOf('DCS.')==0){
				DCS[arguments[i].substring(4)]=arguments[i+1];
				i++;
		}
		if (arguments[i].indexOf('DCSext.')==0){
				DCSext[arguments[i].substring(7)]=arguments[i+1];
				i++;
		}
	}
	var dCurrent=new Date();
	DCS.dcsdat=dCurrent.getTime();
	dcsTag();
}

// Code section for Track clicks to download links.
function dcsDownload(evt){
	evt=evt||(window.event||"");
	if (evt){
		var e=dcsEvt(evt);
		if (dcsIsHttp(e)&&dcsIsOnsite(e.hostname)){
			var types="xls,doc,pdf,txt,csv,zip,ppt,wmv";
			if (types.indexOf(e.pathname.substring(e.pathname.lastIndexOf(".")+1,e.pathname.length))!=-1){
				var qry=e.search?e.search.substring(e.search.indexOf("?")+1,e.search.length):"";
				if (qry.toUpperCase().indexOf("WT.SVL=")==-1){
					WT.svl=dcsParseSvl(e.name?e.name.toString():(e.onclick?e.onclick.toString():""));
				}
				var path=(e.pathname.indexOf("/")!=0)?"/"+e.pathname:e.pathname;
				dcsMultiTrack("DCS.dcssip",e.hostname,"DCS.dcsuri",path,"WT.ti","Download:"+path,"WT.dl","1");
				DCS.dcssip=DCS.dcsuri=WT.ti=WT.svl=WT.dl="";
			}
		}
	}
}


// Code section for Track clicks to links leading offsite.
function dcsOffsite(evt){
	evt=evt||(window.event||"");
	if (evt){
		var e=dcsEvt(evt);
		if (dcsIsHttp(e)&&!dcsIsOnsite(e.hostname)){
			var qry=e.search?e.search.substring(e.search.indexOf("?")+1,e.search.length):"";
			if (qry.toUpperCase().indexOf("WT.SVL=")==-1){
				WT.svl=dcsParseSvl(e.name?e.name.toString():(e.onclick?e.onclick.toString():""));
			}
			var path=(e.pathname.indexOf("/")!=0)?"/"+e.pathname:e.pathname;
			var trim=true;
			dcsSaveHref(evt);
			dcsMultiTrack("DCS.dcssip",e.hostname,"DCS.dcsuri",path,"DCS.dcsqry",trim?"":qry,"WT.ti","Offsite:"+e.hostname+path+qry,"WT.os","1");
			DCS.dcssip=DCS.dcsuri=DCS.dcsqry=WT.ti=WT.svl=WT.os="";
		}
	}
}

var gService = true;
var gTimeZone = -5;
// Code section for Enable First-Party Cookie Tracking
function dcsCookie(){
	if (typeof(dcsOther)=="function"){
		dcsOther();
	}
	else if (typeof(dcsPlugin)=="function"){
		dcsPlugin();
	}
	else if (typeof(dcsFPC)=="function"){
		dcsFPC(gTimeZone);
	}
}
function dcsGetCookie(name){
	var pos=document.cookie.indexOf(name+"=");
	if (pos!=-1){
		var start=pos+name.length+1;
		var end=document.cookie.indexOf(";",start);
		if (end==-1){
			end=document.cookie.length;
		}
		return unescape(document.cookie.substring(start,end));
	}
	return null;
}
function dcsGetCrumb(name,crumb){
	var aCookie=dcsGetCookie(name).split(":");
	for (var i=0;i<aCookie.length;i++){
		var aCrumb=aCookie[i].split("=");
		if (crumb==aCrumb[0]){
			return aCrumb[1];
		}
	}
	return null;
}
function dcsGetIdCrumb(name,crumb){
	var cookie=dcsGetCookie(name);
	var id=cookie.substring(0,cookie.indexOf(":lv="));
	var aCrumb=id.split("=");
	for (var i=0;i<aCrumb.length;i++){
		if (crumb==aCrumb[0]){
			return aCrumb[1];
		}
	}
	return null;
}
function dcsFPC(offset){
	if (typeof(offset)=="undefined"){
		return;
	}
	var name=gFpc;
	var dCur=new Date();
	dCur.setTime(dCur.getTime()+(dCur.getTimezoneOffset()*60000)+(offset*3600000));
	var dExp=new Date(dCur.getTime()+315360000000);
	var dSes=new Date(dCur.getTime());
	if (document.cookie.indexOf(name+"=")!=-1){
		var id=dcsGetIdCrumb(name,"id");
		var lv=parseInt(dcsGetCrumb(name,"lv"));
		var ss=parseInt(dcsGetCrumb(name,"ss"));
		if ((id==null)||(id=="null")||isNaN(lv)||isNaN(ss)){
			return;
		}
		WT.co_f=id;
		var dLst=new Date(lv);
		dSes.setTime(ss);
		if ((dCur.getTime()>(dLst.getTime()+1800000))||(dCur.getTime()>(dSes.getTime()+28800000))){
			dSes.setTime(dCur.getTime());
			WT.vt_f_s="1";
		}
		if ((dCur.getDay()!=dLst.getDay())||(dCur.getMonth()!=dLst.getMonth())||(dCur.getYear()!=dLst.getYear())){
			WT.vt_f_d="1";
		}
	}
	else{
		var tmpname=name+"_TMP=";
		document.cookie=tmpname+"1";
		if (document.cookie.indexOf(tmpname)!=-1){
			document.cookie=tmpname+"; expires=Thu, 01-Jan-1970 00:00:01 GMT";
			if ((typeof(gWtId)!="undefined")&&(gWtId!="")){
				WT.co_f=gWtId;
			}
			else if ((typeof(gTempWtId)!="undefined")&&(gTempWtId!="")){
				WT.co_f=gTempWtId;
				WT.vt_f="1";
			}
			else{
				WT.co_f="2";
				var cur=dCur.getTime().toString();
				for (var i=2;i<=(32-cur.length);i++){
					WT.co_f+=Math.floor(Math.random()*16.0).toString(16);
				}
				WT.co_f+=cur;
				WT.vt_f="1";
			}
			if (typeof(gWtAccountRollup)=="undefined"){
				WT.vt_f_a="1";
			}
			WT.vt_f_s="1";
			WT.vt_f_d="1";
		}
		else{
			WT.vt_f="2";
			WT.vt_f_a="2";
			return;
		}
	}
	WT.co_f=escape(WT.co_f);
	WT.vt_sid=WT.co_f+"."+dSes.getTime();
	var expiry="; expires="+dExp.toGMTString();
	document.cookie=name+"="+"id="+WT.co_f+":lv="+dCur.getTime().toString()+":ss="+dSes.getTime().toString()+expiry+"; path=/"+(((typeof(gFpcDom)!="undefined")&&(gFpcDom!=""))?("; domain="+gFpcDom):(""));
}

// Code section for Use the new first-party cookie generated with this tag.
var gFpc="WT_FPC";
var gConvert=true;

// Code section for Set the First-Party Cookie domain
var gFpcDom=".pctelecom.ca";

function dcsAdv(){
	dcsFunc("dcsET");
	dcsFunc("dcsCookie");
	dcsFunc("dcsAdSearch");
	dcsFunc("dcsTP");
}



var gImages=new Array;
var gIndex=0;
var DCS=new Object();
var WT=new Object();
var DCSext=new Object();
var gQP=new Array();
if (window.RegExp){
	var RE={"%09":/\t/g,"%20":/ /g,"%23":/\#/g,"%26":/\&/g,"%2B":/\+/g,"%3F":/\?/g,"%5C":/\\/g};
}

var gDomain="sdc.loblaws.ca";
var gDcsId="dcsv3xapy00000kv9wmgzvau0_9b7m";

if ((typeof(gConvert)!="undefined")&&gConvert&&(document.cookie.indexOf(gFpc+"=")==-1)){
	document.write("<SCR"+"IPT TYPE='text/javascript' SRC='"+"http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+"/"+gDcsId+"/wtid.js"+"'><\/SCR"+"IPT>");
}

function dcsVar(){
	var dCurrent=new Date();
	WT.tz=dCurrent.getTimezoneOffset()/60*-1;
	if (WT.tz==0){
		WT.tz="0";
	}
	WT.bh=dCurrent.getHours();
	WT.ul=navigator.appName=="Netscape"?navigator.language:navigator.userLanguage;
	if (typeof(screen)=="object"){
		WT.cd=navigator.appName=="Netscape"?screen.pixelDepth:screen.colorDepth;
		WT.sr=screen.width+"x"+screen.height;
	}
	if (typeof(navigator.javaEnabled())=="boolean"){
		WT.jo=navigator.javaEnabled()?"Yes":"No";
	}
	if (document.title){
		WT.ti=document.title;
	}
	WT.js="Yes";
	if (typeof(gVersion)!="undefined"){
		WT.jv=gVersion;
	}
	if (document.body&&document.body.addBehavior){
		document.body.addBehavior("#default#clientCaps");
		if (document.body.connectionType){
			WT.ct=document.body.connectionType;
		}
		document.body.addBehavior("#default#homePage");
		WT.hp=document.body.isHomePage(location.href)?"1":"0";
	}
	if (parseInt(navigator.appVersion)>3){
		if ((navigator.appName=="Microsoft Internet Explorer")&&document.body){
			WT.bs=document.body.offsetWidth+"x"+document.body.offsetHeight;
		}
		else if (navigator.appName=="Netscape"){
			WT.bs=window.innerWidth+"x"+window.innerHeight;
		}
	}
	WT.fi="No";
	if (window.ActiveXObject){
		for(var i=9;i>0;i--){
			try{
				var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
				WT.fi="Yes";
				WT.fv=i+".0";
				break;
			}
			catch(e){
			}
		}
	}
	else if (navigator.plugins&&navigator.plugins.length){
		for (var i=0;i<navigator.plugins.length;i++){
			if (navigator.plugins[i].name.indexOf('Shockwave Flash')!=-1){
				WT.fi="Yes";
				WT.fv=navigator.plugins[i].description.split(" ")[2];
				break;
			}
		}
	}
	WT.sp="";
	DCS.dcsdat=dCurrent.getTime();
	
	//Fixes the problem with same page showing up as two line items due to different domain names.
	if (window.location.hostname == "pctelecom.ca") {
			DCS.dcssip='www.pctelecom.ca';
		} else {
			DCS.dcssip=window.location.hostname
		}
		//DCS.dcssip=window.location.hostname;
	
	DCS.dcsuri=window.location.pathname;
	if (window.location.search){
		DCS.dcsqry=window.location.search;
		if (gQP.length>0){
			for (var i=0;i<gQP.length;i++){
				var pos=DCS.dcsqry.indexOf(gQP[i]);
				if (pos!=-1){
					var front=DCS.dcsqry.substring(0,pos);
					var end=DCS.dcsqry.substring(pos+gQP[i].length,DCS.dcsqry.length);
					DCS.dcsqry=front+end;
				}
			}
		}
	}
	// Added by MS 2006-11-06
	if (window.location.search.indexOf("WT.ac=") != -1)
	{
		var temp = window.location.search.split("WT.ac=")[1];
		if (temp.indexOf("&") != -1)
		{
			temp = temp.split("&")[0];
		}
		WT.ac=temp;
	}
	// End added by MS 2006-11-06
	if ((window.document.referrer!="")&&(window.document.referrer!="-")){
		if (!(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)<4)){
			DCS.dcsref=window.document.referrer;
		}
	}
}

function A(N,V){
	return "&"+N+"="+dcsEscape(V);
}

function dcsEscape(S){
	if (typeof(RE)!="undefined"){
		var retStr = new String(S);
		for (R in RE){
			retStr = retStr.replace(RE[R],R);
		}
		return retStr;
	}
	else{
		return escape(S);
	}
}

function dcsCreateImage(dcsSrc){
	if (document.images){
		gImages[gIndex]=new Image;
		if ((typeof(gHref)!="undefined")&&(gHref.length>0)){
			gImages[gIndex].onload=gImages[gIndex].onerror=dcsLoadHref;
		}
		gImages[gIndex].src=dcsSrc;
		gIndex++;
	}
	else{
		document.write('<IMG ALT="" BORDER="0" NAME="DCSIMG" WIDTH="1" HEIGHT="1" SRC="'+dcsSrc+'">');
	}
}

function dcsMeta(){
	var elems;
	if (document.all){
		elems=document.all.tags("meta");
	}
	else if (document.documentElement){
		elems=document.getElementsByTagName("meta");
	}
	if (typeof(elems)!="undefined"){
		for (var i=1;i<=elems.length;i++){
			var meta=elems.item(i-1);
			if (meta.name){
				if (meta.name.indexOf('WT.')==0){
					WT[meta.name.substring(3)]=meta.content;
				}
				else if (meta.name.indexOf('DCSext.')==0){
					DCSext[meta.name.substring(7)]=meta.content;
				}
				else if (meta.name.indexOf('DCS.')==0){
					DCS[meta.name.substring(4)]=meta.content;
				}
			}
		}
	}
}

function dcsTag(){
	var P="http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+(gDcsId==""?'':'/'+gDcsId)+"/dcs.gif?";
	for (N in DCS){
		if (DCS[N]) {
			P+=A(N,DCS[N]);
		}
	}
	for (N in WT){
		if (WT[N]) {
			P+=A("WT."+N,WT[N]);
		}
	}
	for (N in DCSext){
		if (DCSext[N]) {
			P+=A(N,DCSext[N]);
		}
	}
	if (P.length>2048&&navigator.userAgent.indexOf('MSIE')>=0){
		P=P.substring(0,2040)+"&WT.tu=1";
	}
	dcsCreateImage(P);
}

function dcsFunc(func){
	if (typeof(window[func])=="function"){
		window[func]();
	}
}

/****************************************************************
* Function: dcsOnsiteAdLink()									*
* Description:													*
*  A wrapper function for onsite advertising calls on a page to *
* dcsMultiTrack.												*
* Possible Inputs:												*
*	- url:string (Required) - the URL of the ad link			*
*	- popup:string (Optional) - the features of a popup window	*
*	  if the link is supposed to open up in a popup.			*
*	- ad:string (Required) - the WT.ac parameter for Webtrends	*
*****************************************************************
*/
function dcsOnsiteAdLink()
{
	var originDomain;		// The URL the user is currently viewing
	var targetUrl;			// The relative or absolute target of the URL
	var isOffsite;			// Specifies if link continues onto same domain or not
	var isPopup;			// Specifies if link is meant to open in a new window
	var popupFeatures;		// Specifies the features required for the new popup window
	var theWindow;			// A reference a new window if one is supposed to be opened
	var wtac;				// The Webtrends WT.ac parameter
	var targetQry;			// The query string in the URL (if included)
	var targetUri;			// The target URI of the link
	var targetHref;			// The full target HREF

	// Initialize all variables
	isOffsite = isPopup = false;
	originDomain = targetUrl = targetUri = popupFeatures = wtac = targetQry = "";
	theWindow = null;

	// Read through the arguments passed to the function and determine
	// what we're going to do
	for( var i = 0; i < arguments.length; i++ )
	{
		if (arguments[i].indexOf("url") == 0)
		{
			targetUrl = arguments[i+1];
		}
		if (arguments[i].indexOf("popup") == 0)
		{
			isPopup = true;
			popupFeatures = arguments[i+1];
		}
		if (arguments[i].indexOf("ad") == 0)
		{
			wtac = arguments[i+1];
		}
	}
		
	// Checking for onsite / offsite links
	originDomain = window.location.hostname;
	if ( (targetUrl.indexOf(".ca") == -1) && (targetUrl.indexOf(".com") == -1) )
	{
		isOffsite = false;
	}
	else
	{
		//originDomain = originDomain.replace(/www\d?./,"");	// Capture just the domain name
		if ( targetUrl.toLowerCase().indexOf(originDomain.toLowerCase()) == -1 )
		{
			isOffsite = true;
		}
		else
		{
			isOffsite = false;
		}
	}	

	// Processing for Onsite
	if (!isOffsite)
	{
		if (targetUrl.indexOf("?") != -1)
		{
			targetUrl += "&WT.ac="+wtac;
		}
		else
		{
			targetUrl += "?WT.ac="+wtac;
		}
	}
	
	// Checking for popup and features
	if (isPopup)
	{
		theWindow = window.open( targetUrl, "", popupFeatures );
	}

	// Processing for URI string
	if (!isOffsite)
	{
		targetUri = targetUrl;			// Users must specify path starting from root
	}
	else
	{
		targetUri = targetUrl;
		targetUri = targetUri.replace(/https?:\/\//,"");
		if (targetUri.indexOf("/") != -1)
		{
			targetUri = targetUri.substr( targetUri.indexOf("/"), targetUri.length );
		}
	}
	if (targetUri.indexOf("?") != -1)
	{
		targetUri = targetUri.split("?")[0];
	}

	
	// Processing for domain
	if (!isOffsite)
	{
		targetDomain = window.location.hostname;
	}
	else
	{
		targetDomain = targetUrl;
		targetDomain = targetDomain.replace(/https?:\/\//, "");
		if (targetDomain.indexOf(".ca") != -1)
		{
			targetDomain = targetDomain.split(".ca")[0] + ".ca";
		}
		else if (targetDomain.indexOf(".com") != -1)
		{
			targetDomain = targetDomain.split(".com")[0] + ".com";
		}
	}

	// Grab the query string
	targetQry = targetUrl;
	if (targetQry.indexOf("?") != -1)
	{
		targetQry = "?" + targetQry.split("?")[1];
	}
	else
	{
		targetQry = "";
	}
	
	if (!isOffsite && (targetUrl.indexOf("http") != -1))
	{
		targetHref = targetUrl;
	}
	else if (!isOffsite)
	{
		targetHref = window.location.protocol + "//" + window.location.hostname + targetUrl;
	}
	else
	{
		targetHref = targetUrl;
	}

	if (!isPopup)
	{
		window.location.href = targetHref;
	}
	
	if (isOffsite)
	{
		dcsMultiTrack(  "DCS.dcssip", targetDomain,
			"DCS.dcsuri", targetUri,
			"DCS.dcsqry", targetQry,
			"WT.ti", "Offsite:"+targetHref,
			"WT.os", "1",
			"WT.ac", wtac,
			"WT.ad", "" );
	}
}

dcsVar();
dcsMeta();
dcsFunc("dcsAdv");
dcsTag();
