var ANV='3.0.2.18';	// Script Version (ALL)
var ANSID='11835';		// Partner ID (ALL)
var ANID='TID';		// ID cookie name (ALL)
var ANP=1;		// Participation flag - AMS=1, TAND=2.  Add them to get the correct value.
var ANEU="http://anrtx.tacoda.net/e/e.js?";		// Error reporting URL (ALL)
var ANT3=1;		// Set value to 1 to prevent 3rd party cookie blocking detection, targetability status and opt-out status cookie from being set.

var ANDPF;		// Data Provider Global Flag (TAND)
var ANDPU="http://anrtx.tacoda.net/rtx/r.js?";	// Data Provider Request URL (TAND)
var ANCU="http://anrtx.tacoda.net/cbd/cbd?";		// 3rd Part Cookie Blocking Detection (TAND)
var ANURL=0;		// Log URL flag (1=yes) (TAND)

var ANAS="http://anad.tacoda.net";			// Ad Server URL (TANA)

var ANDD="onlineathens.com";		// Default Domain (AMS)
var ANDN=new Array();		// Array of Domains (AMS)
//ANDN[""]="";			// Uncomment and fill in both Key and Value to define a domain to be checked (AMS)
ANDN["onlineathens.com"]="onlineathens.com";
ANDN["athensmusic.com"]="onlineathens.com";
ANDN["athensjobfinder.com"]="onlineathens.com";
ANDN["athensautofinder.com"]="onlineathens.com";
ANDN["mycapture.com"]="onlineathens.com";
ANDN["legacy.com"]="onlineathens.com";


var AMSTEP= "te";		// Targeting Engine prefix (AMS)
var AMSTES= "tte/blank.gif";	// Targeting Engine suffix (AMS)
var AMSDPF;			// Data call global flag
var AMSLGC= 1;		// Flag to indicate whether "page" query string variable is passed (AMS)
var AMSC=new Array(ANID,"RMID","mdwid");	// Array of cookies to log (AMS)


// ============================== Do Not Change Anything Below This Line ============================== 
var ANCB=0;             // 3rd Party Cookies Blocked? (ALL)

var ANVPC='OTH';	// Default Page Category (TAND/AMS)

var ANDSZ=2;		// Default Ad Size (TANA)
var ANVAC='a';		// Default Area Code (TANA)
var ANVSZ=ANDSZ;	// Default Ad Size (TANA)
var ANVAD=0;		// Inventory Provider Call Action Flag (TANA)
var ANADS=new Array();	// Ad Sizes Array (TANA)
ANADS=["468x60a","728x90a","300x250a","120x600a","160x600a","468x60a|728x90a","120x600a|160x600a"];

var ANRD='';		// Domain of Publisher Page (TAND)
var ANVDT=0;		// Data Provider Call Action Flag (TAND)
var ANOO=0;		// Opt-out status

var ANVSC='';		// Default Sub Category (AMS)
var ANTE='';		// Domain of targeting engine (AMS)
var ANVDA=0;		// AMS Call Action Flag (AMS)
var AMSK=new Array();	// Custom Variable Key Array (AMS)
var AMSVL=new Array();	// Customer Varibale Value Array (AMS)
var AMSN=0;		// Customer Variable Count (AMS)

// ============================== COMMON FUNCTIONS ==============================
// window.onerror=ANEH;

// Read Cookie
function ANRC(n) {
   var cn = n + "=";
   var dc = document.cookie;
   if (dc.length > 0) {
      for(var b = dc.indexOf(cn); b!=-1; b=dc.indexOf(cn,b)) {
         if((b!=0) && (dc.charAt(b-1) != ' ')) {
            b++;
            continue;
         }
         b+=cn.length;
         var e=dc.indexOf(";",b);
         if (e==-1) e=dc.length;
         return unescape(dc.substring(b,e));
      }
   }
   return null;
}

// Set Cookie
function ANSC(n,v,ex,p) {
   var e = document.domain.split (".");
   e.reverse();
   var m = e[1] + '.' + e[0];
   var cc = n+"="+escape(v);
   if (ex) {
      var exp = new Date;
      exp.setTime(exp.getTime()+ex);
      cc += ";expires="+exp.toGMTString();
   }
   if (p) {
      cc += ";path="+p;
   }
   if (m) {
      cc += ";domain="+m;
   }
   document.cookie = cc;
}

// Get Root Domain (unless we are in an IFrame)
function ANGRD() {
   if (top != self || ANRD != '') {
      return ANRD;
   }
   var rf=top.location.href;
   var i=j=0;
   i=rf.indexOf('/');
   i=rf.indexOf('/',++i);
   j=rf.indexOf('/',++i);
   if (j==-1) {
      j=rf.length;
   }
   r=rf.substring(i,j);
   return r;
}

// Trim leading and trailing spaces
function ANTR(s) {
   if (!s) {
      return '';
   }
   s = s.replace(/^\s*/g,'');
   s = s.replace(/\s*$/g,'');
   return s;
}

// Report error if they occur
function ANEH(m,u,l) {
   var s=ANEU+'m='+escape(m)+'&u='+escape(u)+'&l='+l;
   document.write('<SCR'+'IPT SRC="'+s+'" LANGUAGE="JavaScript"></SCR'+'IPT>');
   return true;
}


// Periodic Maintenance Function
function ANPF () {
   // Check for local cookie
   if (ANT3==1) {
      return;
   }
   var now = new Date;
   var c=ANRC('T3CK');
   if (c!=null) {
      var f=c.split("|");
      var r=q=j=0;
      for (var i=0; i<f.length; i++) {
         // Check to see if this is opt-out status
         j=f[i].indexOf('TANO=');
         if (j>=0) {
            ANOO=f[i].substring(j+5);
            continue;
         }

         // Time to run 3rd party cookie blocking detection?
         j=f[i].indexOf('TANE=');
         if (j>=0) {
            r=1;
            var e=f[i].substring(j+5);
            if ((Date.parse(now)/1000) - e > 86400) {
               q=1;
               f[i]="";
            }
            continue;
         }

         // Check to see if cookie blocking has been detected
         j=f[i].indexOf('TANC=');
         if (j>=0) {
            ANCB=f[i].substring(j+5);
            if (q==1) {
               f[i]="";
            }
            continue;
         }
      }

      // If no expiration, must be first time - run AN3CB
      if (r==0 || q==1) {
         c = f.join("|");
         ANSC("T3CK",c,4*365*24*60*60*1000,"/");
         AN3CB();
      }
   } else {
      // No cookie or empty cookie - run cookie blocking check
      AN3CB();
   }
}

// Check for 1st party cookie blocking
function ANDCB() {
   ANSC('TCT',1, 60*1000, '/');
   if (ANRC('TCT')==null) {
      return true;
   }
   else {
      return false;
   }
}

// 3rd Party Cookie Blocking Detection
function AN3CB() {
   document.write('<SCR'+'IPT SRC="'+ANCU+'"></SCR'+'IPT>');
   return;
}



// Main function call to pass parameters/action cmds
function TCDA(ps) {
   // Parse out all value and cmds
   if (!ps || ps=='') {
      return;
   }
   var pa=ps.split(";");
   for (p in pa) {
      kv=pa[p].split("=");
      k=kv[0];
      v=kv[1];

      // Trim spaces off beginning and end of key and value
      if (k!=null) {
         k=ANTR(k);
      }
      if (v!=null) {
         v=ANTR(v);
      }
   
      var m = k.toUpperCase();
      switch (m) {
         // Site Area (sa)
         case ("SA"):
            v = v.toUpperCase();
            if (v!=null&&v!='') {
               ANVAC=v;
            }
            break;
   
         // Size (sz)
         case ("SZ"):
            v = v.toUpperCase();
            if (v!=null&&v!='') {
               ANVSZ=v;
            }
            break;
         
         // Content Category (cc)
         case ("CC"):
            v = v.toUpperCase();
            if (v!=null&&v!='') {
               ANVPC=v;
            }
            break;
         
         // Sub Category (sc)
         case ("SC"):
            if (v!=null&&v!='') {
               ANVSC=v;
            }
            break;

         // Set Page Domain (used when Data Tag served in IFrame)
         case ("RD"):
	    if (v!=null&&v!='') {
               ANRD=v.toLowerCase();
            }
            break;

         // Do TAN Call (dt)
         case ("DT"):
            ANVDT=1;
            break;
         
         // Do AMS Call (da)
         case ("DA"):
            ANVDA=1;
            break;
   
         // Do TAN Ad Call (ad)
         case ("AD"):
            ANVAD=1;
            break;
   
         default:
            if (v!=null&&v!='') {
               ANCV(k,v);
            }
      }
   }
   // Process Actions
   // Data Provider Call - must come before Ad call
   if (ANVDT == 1 && ANOO == 0) {
      ANDP(ANVPC);
      ANVDT=0;
   }

   // Inventory Provider Call (Ad Call)
   if (ANVAD == 1) {
      ANAP(ANVAC,ANVSZ);
      ANVAD=0;
   }

   // AMS Data Call
   if (ANVDA == 1) {
      ANDA(ANSID,ANVPC,ANVSC);
      ANVDA=0;
   }

   return;
}


ANPF();	// Periodic maintenance functions
if (typeof(tcdacmd) != 'undefined' && tcdacmd != "") {
   TCDA(tcdacmd);
}

// ============================== AMS FUNCTIONS ==============================
// Legacy function call support
function Tacoda_AMS_DDC_addPair(k, v) {
   ANCV(k,v);
}

// Add Pair (AMS)
function ANCV(k,v){
   AMSK[AMSN] = k;
   AMSVL[AMSN] = v;
   AMSN++;
}

// Translate Custom Variables to query string
function ANTCV() {
   var TVS = "";
   for(var i=0; i<AMSN; i++) {
      if (!AMSK[i]) {
         continue;
      }
      if (!AMSVL[i]) {
         AMSVL[i]='';
      }
      TVS += "&v_" + escape( AMSK[i].toLowerCase() ) + "=" + escape( AMSVL[i].toLowerCase() ) ;
   }
   return TVS;
}

// Legacy function call (AMS)
function Tacoda_AMS_DDC(tiu, tjv) {
   ANDDC(tiu,tjv);
}

// AMS Data Call (AMS)
function ANDA() {
   var t='';
   // Generate path to Targeting Engine
   var e = ANGRD().split(".");
   e.reverse();
   t = e[1] + '.' + e[0];
   if (typeof(ANDN[t])!='undefined') {
      t=ANDN[t];
   }
   else {
      t=ANDD;
   }
   var tiu = 'http://'+AMSTEP+'.'+t+'/'+AMSTES;
   ANDDC(tiu,"0.0");
}

// Call TE (AMS)
function ANDDC(tiu, tjv) {
   if ((ANP&1) == 0) {
      return;
   }
   if (AMSDPF==1) {
      return; 	//If DP function call has been made before, don't do it again
   } else {
      AMSDPF=1;
   }
   var ckblk = ANDCB();
   var ta = "?"+Math.random()+"&v="+ANV+"&r="+escape(document.referrer)+"&p="+ANVPC+":"+ANVSC;
   if (AMSLGC==1) {
      ta += "&page="+escape(window.location.href);
   }
   ta += "&tz="+(new Date()).getTimezoneOffset()+"&s="+ANSID;
   if (ckblk) {
      ta += "&ckblk1";
   } else {
      if (ANCB==1) {
         ta+="&ckblk3";
      }
      for(var i=0; i<AMSC.length; i++) {
         var cl = AMSC[i];
         var clv = ANRC(cl);
         if(cl != null) {
            ta += "&c_"+escape(cl)+"="+escape(clv);
         }
      }
   }
   ta += ANTCV();
   document.write('<IMG'+' SRC="' + tiu + ta + '" STYLE="display: none" height="1" width="1" border="0">');
}

// ============================== TAND FUNCTIONS ==============================
// Data Provider call (TAND)
function ANDP(pc) {
   if ((ANP&2) == 0) {
      return;
   }
   if (ANDPF==1) {
      return; 	//If DP function call has been made before, don't do it again
   } else {
      ANDPF=1;
   }
   ANVPC=pc;
   var r=ANGRD();
   var ANU="";
   var ckblk="";
   if (ANDCB()) {
      ckblk="&ckblk1";
   }
   if (ANCB==1) {
      ckblk="&ckblk3";
   }
   if (ANURL==1) {
      ANU="&page="+escape(window.location.href);
   }
   if (ANVPC!='') {
      document.write('<SCR'+'IPT SRC="'+ANDPU+"cmd="+ANVPC+'&si='+ANSID+ANU+'&r='+r+'&v='+ANV+ckblk+'&cb='+Math.random()+'" LANGUAGE="JavaScript"></SCR'+'IPT>');	// Send Data Provider Request
   }
}

// ============================== TANA FUNCTIONS ==============================
// Audience Provider call (TANA)
function ANAP(ac,sz,pc) {
   // First, call Data Provider to ensure it has been called
   if (sz <= ANADS.length) {
      ANVAC=ac.toLowerCase();
      var au='<SCR'+'IPT SRC="'+ANAS+'/cgi-bin/ads/';
      if (sz==4||sz==5||sz==7) {
         au+='sk';
      }
      else {
         au+='ad';
      }
      au+=ANSID+ANVAC+'.cgi/v=2.0S/sz='+ANADS[sz-1]+'/'+Math.round(Math.random()*100000)+'/RETURN-CODE/JS/" LANGUAGE="JavaScript"></SCR'+'IPT>';
      document.write(au);
   }
   ANVSZ=ANDSZ; // Reset global size value to default
}
