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;
	}
	if (document.cookie.indexOf("WTLOPTOUT=")!=-1){
		return;
	}
	var name=gFpc;
	var dCur=new Date();
	var adj=(dCur.getTimezoneOffset()*60000)+(offset*3600000);
	dCur.setTime(dCur.getTime()+adj);
	var dExp=new Date(dCur.getTime()+315360000000);
	var dSes=new Date(dCur.getTime());
	WT.co_f=WT.vt_sid=WT.vt_f=WT.vt_f_a=WT.vt_f_s=WT.vt_f_d=WT.vt_f_tlh=WT.vt_f_tlv="";
	if (document.cookie.indexOf(name+"=")==-1){
		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=WT.vt_f_d="1";
		WT.vt_f_tlh=WT.vt_f_tlv="0";
	}
	else{
		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);
		WT.vt_f_tlh=Math.floor((dLst.getTime()-adj)/1000);
		dSes.setTime(ss);
		if ((dCur.getTime()>(dLst.getTime()+1800000))||(dCur.getTime()>(dSes.getTime()+28800000))){
			WT.vt_f_tlv=Math.floor((dSes.getTime()-adj)/1000);
			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";
		}
	}
	WT.co_f=escape(WT.co_f);
	WT.vt_sid=WT.co_f+"."+(dSes.getTime()-adj);
	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):(""));
	if (document.cookie.indexOf(name+"=")==-1){
		WT.co_f=WT.vt_sid=WT.vt_f_s=WT.vt_f_d=WT.vt_f_tlh=WT.vt_f_tlv="";
		WT.vt_f=WT.vt_f_a="2";
	}
}

// Code section for Use the new first-party cookie generated with this tag.
var gFpc="WT_FPC";
var gConvert=true;

function backupPageTags() {
    for (var v in DCS) {
        pageDCS[v] = DCS[v];
    }
    for (var v in WT) {
        pageWT[v] = WT[v];
    }
    for (var v in DCSext) {
        pageDCSext[v] = DCSext[v];
    }
}

function restorePageTags() {
    DCS = new Object();
    WT = new Object();
    DCSext = new Object();
    
    for (var v in pageDCS) {
        DCS[v] = pageDCS[v];
    }
    for (var v in pageWT) {
        WT[v] = pageWT[v];
    }
    for (var v in pageDCSext) {
        DCSext[v] = pageDCSext[v];
    }
}

// This function is called for all link clicks
function dcsMultiTrackClick(args) {
  var oWT = new Object();
  var oDCS = new Object();
  var oDCSext = new Object();
  if (args.length % 2 == 0) {
      for (var i = 0; i < args.length; i += 2) {
          if (args[i].indexOf('WT.') == 0) {
              oWT[args[i].substring(3)] = args[i + 1];
          }
          else if (args[i].indexOf('DCS.') == 0) {
              oDCS[args[i].substring(4)] = args[i + 1];
          }
          else if (args[i].indexOf('DCSext.') == 0) {
              oDCSext[args[i].substring(7)] = args[i + 1];
          }            
      }

      // use previous dcsdat timestamp if already calculated
      if(typeof(DCS) != "undefined" && DCS.dcsdat){
        oDCS.dcsdat = DCS.dcsdat;
      } else {
        oDCS.dcsdat = new Date().getTime();
      }
      
      // use content group if already calculated and not specified in webtrends_helpers.js
      if(oWT.CG_N == undefined && typeof(CG_N) != "undefined"){
        oWT.CG_N = CG_N;
      }
      
      var WebT = "http" + (window.location.protocol.indexOf('https:') == 0 ? 's' : '') + "://" + gDomain + (gDcsId == "" ? '' : '/' + gDcsId) + "/dcs.gif?";
      //This request goes to CSI.
      var CSI = "http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://" + dataWarehouse + "?dcsid=" + gDcsId;
      var QS = "";

      QS += dcsA("dcsuri", oDCS.dcsuri);
      QS += dcsA("dcsdat", oDCS.dcsdat);

      var si_n = oWT.si_n;
      var si_x = oWT.si_x;
      if (si_n != null && si_n != '' && si_x != null && si_n != '') {
          QS += dcsA("WT.si_n", oWT.si_n);
          QS += dcsA("WT.si_x", oWT.si_x);
      }
      
      QS += dcsA("WT.vt_sid", WT.vt_sid);
      QS += dcsA("WT.co_f", WT.co_f);
      QS += dcsA("WT.dl", oWT.dl);
      QS += dcsA("WT.CG_N", oWT.CG_N);

      var ac = oWT.ac;
      if (ac != null && ac != '') {
        QS += dcsA("WT.ac", oWT.ac);
      }
      
      for (N in oDCSext) {
          if (oDCSext[N]) {
              QS += dcsA(N, oDCSext[N]);
          }
      }
      
      checkForIEAndCreateImage(WebT + QS);
      checkForIEAndCreateImage(CSI + QS);
  }
}

function dcsAdv(){
	dcsFunc("dcsET");
	dcsFunc("dcsCookie");
	dcsFunc("dcsAdSearch");
	dcsFunc("dcsTP");
}

var gDomain="statse.webtrendslive.com";

if ((typeof(gConvert)!="undefined")&&gConvert&&(document.cookie.indexOf(gFpc+"=")==-1)&&(document.cookie.indexOf("WTLOPTOUT=")==-1)){
	document.write("<SCR"+"IPT TYPE='text/javascript' SRC='"+"http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+"/"+gDcsId+"/wtid.js"+"'><\/SCR"+"IPT>");
}

var CG_N = "";
var gImages=new Array;
var gIndex=0;
var DCS = new Object();
var pageDCS = new Object();
var WT = new Object();
var pageWT = new Object();
var DCSext = new Object();
var pageDCSext = new Object();
var gQP=new Array();
var gI18n=false;
if (window.RegExp){
	var RE={"%09":/\t/g,"%20":/ /g,"%23":/\#/g,"%26":/\&/g,"%2B":/\+/g,"%3F":/\?/g,"%5C":/\\/g,"%22":/\"/g,"%7F":/\x7F/g,"%A0":/\xA0/g};
	var I18NRE={"%25":/\%/g};
}

// Add customizations here

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=gI18n?dcsEscape(dcsEncode(document.title),I18NRE):document.title;
	}
	WT.js="Yes";
	WT.jv=dcsJV();
	if (document.body&&document.body.addBehavior){
		document.body.addBehavior("#default#clientCaps");
		WT.ct=document.body.connectionType||"unknown";
		document.body.addBehavior("#default#homePage");
		if ((typeof(document.body.isHomePage)!="undefined")&&(typeof(document.body.isHomePage)!=null)) {
		    WT.hp=document.body.isHomePage(location.href)?"1":"0";
        }
	}
	else{
		WT.ct="unknown";
	}
	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=10;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;
			}
		}
	}
	if (gI18n){
		WT.em=(typeof(encodeURIComponent)=="function")?"uri":"esc";
		if (typeof(document.defaultCharset)=="string"){
			WT.le=document.defaultCharset;
		} 
		else if (typeof(document.characterSet)=="string"){
			WT.le=document.characterSet;
		}
	}
	WT.tv="8.0.2";
	WT.sp="@@SPLITVALUE@@";
	WT.dl="0";
	DCS.dcsdat=dCurrent.getTime();
	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;
				}
			}
		}
	}
	var referrer = null;
	if (document.referrer) {
	  referrer = document.referrer;
	}
	else {
	  referrer = "http://" + gFpcDom + DCS.dcsuri;
	}
	DCS.dcsref = gI18n ? dcsEscape(referrer, I18NRE) : referrer;
}

function dcsA(N,V){
	return "&"+N+"="+dcsEscape(V, RE);
}

function dcsEscape(S, REL){
	if (typeof(REL)!="undefined"){
		var retStr = new String(S);
		for (var R in REL){
			retStr = retStr.replace(REL[R],R);
		}
		return retStr;
	}
	else{
		return escape(S);
	}
}

function dcsEncode(S){
	return (typeof(encodeURIComponent)=="function")?encodeURIComponent(S):escape(S);
}

function dcsCreateImage(dcsSrc){
	if (document.images){
		gImages[gIndex]=new Image;
    gImages[gIndex].src=dcsSrc + "&rand=" + gIndex;
		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('DCSext.WT.CG_N') == 0) {
			        CG_N = meta.content;
			    }			    
				if (meta.name.indexOf('WT.')==0){
					WT[meta.name.substring(3)]=(gI18n&&(meta.name.indexOf('WT.ti')==0))?dcsEscape(dcsEncode(meta.content),I18NRE):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)]=(gI18n&&(meta.name.indexOf('DCS.dcsref')==0))?dcsEscape(meta.content,I18NRE):meta.content;
				}
			}
		}
	}
}

function dcsTag(){
	if (document.cookie.indexOf("WTLOPTOUT=")!=-1){
		return;
	}
	var WebT="http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+(gDcsId==""?'':'/'+gDcsId)+"/dcs.gif?";
	//This request goes to CSI.
	var CSI="http"+(window.location.protocol.indexOf('https:')==0?'s':'') + "://" + dataWarehouse + "?dcsid=" + gDcsId;
	var QS="";
	for (var N in DCS){
		if (DCS[N]) {
			QS+=dcsA(N,DCS[N]);
		}
	}
	for (N in WT){
		if (WT[N]) {
			QS+=dcsA("WT."+N,WT[N]);
		}
	}
	for (N in DCSext){
		if (DCSext[N]) {
			QS+=dcsA(N,DCSext[N]);
		}
	}
	checkForIEAndCreateImage( WebT + QS );
	checkForIEAndCreateImage( CSI + QS );
}

function checkForIEAndCreateImage( url )
{
    if (url.length>2048&&navigator.userAgent.indexOf('MSIE')>=0){
		url=url.substring(0,2040)+"&WT.tu=1";
	}
	dcsCreateImage(url);
}

function dcsJV(){
	var agt=navigator.userAgent.toLowerCase();
	var major=parseInt(navigator.appVersion);
	var mac=(agt.indexOf("mac")!=-1);
	var ff=(agt.indexOf("firefox")!=-1);
	var ff0=(agt.indexOf("firefox/0.")!=-1);
	var ff10=(agt.indexOf("firefox/1.0")!=-1);
	var ff15=(agt.indexOf("firefox/1.5")!=-1);
	var ff2up=(ff&&!ff0&&!ff10&!ff15);
	var nn=(!ff&&(agt.indexOf("mozilla")!=-1)&&(agt.indexOf("compatible")==-1));
	var nn4=(nn&&(major==4));
	var nn6up=(nn&&(major>=5));
	var ie=((agt.indexOf("msie")!=-1)&&(agt.indexOf("opera")==-1));
	var ie4=(ie&&(major==4)&&(agt.indexOf("msie 4")!=-1));
	var ie5up=(ie&&!ie4);
	var op=(agt.indexOf("opera")!=-1);
	var op5=(agt.indexOf("opera 5")!=-1||agt.indexOf("opera/5")!=-1);
	var op6=(agt.indexOf("opera 6")!=-1||agt.indexOf("opera/6")!=-1);
	var op7up=(op&&!op5&&!op6);
	var jv="1.1";
	if (ff2up){
		jv="1.7";
	}
	else if (ff15){
		jv="1.6";
	}
	else if (ff0||ff10||nn6up||op7up){
		jv="1.5";
	}
	else if ((mac&&ie5up)||op6){
		jv="1.4";
	}
	else if (ie5up||nn4||op5){
		jv="1.3";
	}
	else if (ie4){
		jv="1.2";
	}
	return jv;
}

function dcsFunc(func){
	if (typeof(window[func])=="function"){
		window[func]();
	}
}

//this reads the meta tags from HTML to populate variables for webtrends.
dcsVar();
dcsMeta();
dcsFunc("dcsAdv");
dcsTag();
backupPageTags();



/* ---------------------------------------------------------------------------- */

//Create namespace
if(!window.PRIMEDIA) { 
  window.PRIMEDIA = {};
} 

//Give access to WebTrends object outside of this anonymous function
window.PRIMEDIA.WebTrendsTag = {
    
    /*
     * Gets the content attribute value for a META tag with a particular name.
     */
    getMetaAttr: function(name){ 
      if (name) {    
        var selector = 'meta[name=' + name + ']'; 
        var meta = $(selector);
        if (meta[0]) {
          var content = meta.attr('content');
          if (content) {
            return content;
          } else {
            return undefined;
          }
        }
      }
    },

    /*
     * Returns the innerHTML value from an element if it exists.
     */
    getElemText: function(elem){
      if(elem) {
        var elemText = elem.innerHTML;
        return elemText;
      }
    },

    /*
     * Returns the listing id for a particular listing element. Depends on the 
     * listing element id being formatted as something like listing_1234.
     */
    getListingId: function(elem){
      if (elem && elem.id) {
        var listing_id = elem.id.split('_')[1];
      } else {
        var listing_id = "No listing ID given on " + document.location;
      }
      return listing_id;
    },

    /*
     * Returns the inner html of a selected item in a select box
     */
    getSelectText: function(elem) {            
      if (elem) {            
        var option = $('#' + elem.id + ' option:selected')[0];
        if (option) {
          var elemSelectText = $(option).text(); 
          return elemSelectText;
        }
      }
    },

    /*
     * formats opts for webtrends.js, and fires off a GET with those params
     */
    fire: function(opts) {    
      if (opts) {
        if (opts['dcsuri'] != undefined) {
          opts['DCS.dcsuri'] = opts['dcsuri'];
          delete opts['dcsuri']; // use passed in value
        } else if (typeof(DCS) != "undefined" && DCS.dcsuri) {
          opts['DCS.dcsuri'] = DCS.dcsuri; // use previous value
        }  

        //Pass in through opts once there are more action types
        opts['WT.dl'] = 1; // for now 1 == click event (as opposed to pageview event, 0)

        var arr = new Array();
        $.each(opts, function(o){  
         var key = String(o);
         var val = opts[o];
         if(!key.match(/DCS/) && !key.match(/WT/)){
           key = 'DCSext.' + key;
         }
         arr.push(key);
         arr.push(val);
        });
        dcsMultiTrackClick(arr);
      }
    },

    fireLeadForm: function(form, opts) {
      if (opts == undefined) { opts = {}; }

      settings = {
        clicktype     : 'LeadSubmitted',
        'a_l_cp_click': $('input#lead_listing_id', form).val(),
        LISTINGID     : $('input#lead_listing_id', form).val(),
        FIRSTNAME     : $('input.lead_first_name', form).val(),
        LASTNAME      : $('input.lead_last_name', form).val(),
        EMAIL         : $('input.lead_email', form).val(),
        DAYPHONE      : $('input.lead_phone', form).val(),
        LEADTYPE      : 'email',
        LEADCOUNT     : '1'
      };

      opts['WT.dl'] = 1; // indicate multitrack vs pageview
      $.extend(settings, opts);
      
      this.fire(settings);
    }
};
