var clct_server = "server1.anoox.com";
var clct_port   = "80";
var clct_servlet = "callsite/servlet/callsite";
//
// Get a nice referrer string
//
function clct_getReferrerString() {
  var ref  = document.referrer;

  // no referrer
  if(ref == "")
    return "Direct access";
  
  var index1, index2;
  
  // remove protocol
  index1 = ref.indexOf("//");
  if(index1 != -1)
    ref = ref.substr(index1 + 2); 
    
  // get the referrer host name
  index1 = ref.indexOf(":");
  index2 = ref.indexOf("/");
  if(index1 == -1 || index2 < index1)
    index1 = index2;        
  if(index1 != -1)
    ref = ref.substr(0, index1);

  // self reference
  if(ref.toLowerCase() == document.location.host.toLowerCase())
    return "Self/Unknown";
  else return ref; // return referrer host name

}

//
// Sets cookie values. Expiration date is today + daysToLive.
//
function clct_storeCookie(name, value, daysToLive) {   
  var today = new Date();   
  var expires = new Date();
  expires.setTime(today.getTime() + 1000*60*60*24*daysToLive);
  clct_setCookie(name, value, expires);
}

//
// Sets cookie values. Expiration date is optional.
//
function clct_setCookie(name, value, expire) {   
  document.cookie = 
    name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}
  
//
// The following function returns a cookie value, given the name of the cookie:
//
function clct_getCookie(Name) {   
  var search = Name + "=";
  if (document.cookie.length > 0) { 
    // if there are any cookies      
    offset = document.cookie.indexOf(search)       
    if (offset != -1) { 
      // if cookie exists          
      offset += search.length;
      // set index of beginning of value         
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value         
      if (end == -1)             
        end = document.cookie.length;
      return unescape(document.cookie.substring(offset, end));
    }    
  }
  return "";
}

function clct_testCookies() {
  clct_setCookie("test", "test");
  if(clct_getCookie("test") != "")
    return true;
  else return false;
}

// Normal - two applets
function clct_writeApplet(trackingID, page) {
  if(!clct_testCookies())
    return;
  
  var now = new Date();
  var params = "";
  
  if(page == "")
    page = document.location.href;
  
  var firstVisit = false;

  // "permanent" stamp
  cookie = clct_getCookie("clctStamp");
  if(cookie == "") {
    clct_setCookie("clctFirstVisit", "true");
    cookie = now.getTime();
    firstVisit = true;
  }
  clct_storeCookie("clctStamp", cookie, 90);

  // first visit ?
  cookie = clct_getCookie("clctFirstVisit");
  if(cookie != "")
    firstVisit = true;
  
  params += "<param name=\"firstVisit\" value=\"" + firstVisit + "\">\n";

  // session id
  cookie = clct_getCookie("clctSessionID");
  if(cookie == "") {
    cookie = now.getTime();
    clct_setCookie("clctSessionID",cookie);
  } 
  params += "<param name=\"sessionID\" value=\"" + cookie + "\">";
  
  // host name
  params += "<param name=\"hostName\" value=\"" + document.location.host + "\">";
  
  // referrer
  cookie   = clct_getCookie("clctReferrer");
  referrer = clct_getReferrerString();
  if(cookie == "" || (cookie != referrer && referrer != "Self/Unknown")) {
    clct_setCookie("clctReferrer", referrer);
  }
  else referrer = cookie;
  params += "<param name=\"referrer\" value=\"" + referrer + "\">";

  // document location
  params += "<param name=\"document\" value=\"" + page + "\">";
  
  // trackingID
  params += "<param name=\"trackingID\" value=\"" + trackingID + "\">";
  
  var html = "\
    <applet code=\"com.netdive.callsite.applet.tracking.TrackingApplet\"\
    	CODEBASE=\"http://server1.anoox.com/callsite/applet/\"\
    	ARCHIVE=\"Pager.jar\"\
    	WIDTH=\"0\" HEIGHT=\"0\" ALIGN=\"BOTTOM\">\
    	\
  " + params + "\
    <param name=\"CABBASE\" value=\"Pager.cab\">\
    </applet>\
  ";
  
  document.write(html);
}

// Light version - config
var clct_server = "server1.anoox.com";
var clct_port   = "80";
var clct_servlet = "/callsite/servlet/callsite";

// Light - javascript version
function clct_lightJS(destType, dest, page) {
  if(!clct_testCookies())
    return;
  
  var now = new Date();
  
  if(page == "")
    page = document.location.href;
  
  var firstVisit = false;
  var sessionID;
  var referrer;

  // "permanent" stamp
  cookie = clct_getCookie("clctStamp");
  if(cookie == "") {
    clct_setCookie("clctFirstVisit", "true");
    cookie = now.getTime();
    firstVisit = true;
  }
  clct_storeCookie("clctStamp", cookie, 90);

  // first visit ?
  cookie = clct_getCookie("clctFirstVisit");
  if(cookie != "")
    firstVisit = true;
    
  // session id
  cookie = clct_getCookie("clctSessionID");
  if(cookie == "") {
    cookie = now.getTime();
    clct_setCookie("clctSessionID",cookie);
  } 
  sessionID = cookie;
  
  // host name
  hostName =  document.location.host;
  
  // referrer
  cookie   = clct_getCookie("clctReferrer");
  referrer = clct_getReferrerString();
  if(cookie == "" || (cookie != referrer && referrer != "Self/Unknown")) {
    clct_setCookie("clctReferrer", referrer);
  }
  else referrer = cookie;

  // uncomment this to automatically insert the image
  // document.write("<img src=\"\" name=\"clct_lightJS\">");

  var params = "FirstVisit=" + firstVisit + "|" +
    "SessionID=" + sessionID + "|" + 
    "HostName=" + hostName + "|" + 
    "Referrer=" + referrer + "|" +
    "Document=" + page + "|" +
    "DestType=" + destType + "|" +
    "Dest=" + dest;
  
  clct_tick(params, 0);
}

function clct_tick(params, duration) {
  document.images["clct_lightJS"].src = "http://" + clct_server + ":" + clct_port + clct_servlet + "?/tracking/" + params + "|Duration=" + duration;
  duration = duration + 5;
  // for dd.com track only visited pages not the duration 
  //setTimeout("clct_tick('" + params + "'," + duration + ")", 5000);
}

// Light - java version
function clct_writeAppletLight(destType, dest, page) {
  if(!clct_testCookies())
    return;
  
  var now = new Date();
  var params = "";
  var referrer;
  
  if(page == "")
    page = document.location.href;
  
  var firstVisit = false;

  // "permanent" stamp
  cookie = clct_getCookie("clctStamp");
  if(cookie == "") {
    clct_setCookie("clctFirstVisit", "true");
    cookie = now.getTime();
    firstVisit = true;
  }
  clct_storeCookie("clctStamp", cookie, 90);

  // first visit ?
  cookie = clct_getCookie("clctFirstVisit");
  if(cookie != "")
    firstVisit = true;
  
  params += "<param name=\"firstVisit\" value=\"" + firstVisit + "\">\n";

  // session id
  cookie = clct_getCookie("clctSessionID");
  if(cookie == "") {
    cookie = now.getTime();
    clct_setCookie("clctSessionID",cookie);
  } 
  params += "<param name=\"sessionID\" value=\"" + cookie + "\">";
  
  // host name
  params += "<param name=\"hostName\" value=\"" + document.location.host + "\">";
  
  // referrer
  cookie   = clct_getCookie("clctReferrer");
  referrer = clct_getReferrerString();
  if(cookie == "" || (cookie != referrer && referrer != "Self/Unknown")) {
    clct_setCookie("clctReferrer", referrer);
  }
  else referrer = cookie;
  params += "<param name=\"referrer\" value=\"" + referrer + "\">";

  // document location
  params += "<param name=\"document\" value=\"" + page + "\">";
  
  // dest
  params += "<param name=\"destType\" value=\"" + destType + "\">";

  // dest
  params += "<param name=\"dest\" value=\"" + dest + "\">";
  
  // server
  params += "<param name=\"server\" value=\"" + clct_server + "\">";
  // port
  params += "<param name=\"port\" value=\"" + clct_port + "\">";
  // servlet
  params += "<param name=\"servlet\" value=\"" + clct_servlet + "\">";

  var html = "\
    <applet code=\"com.netdive.callsite.applet.tracking.TrackingAppletLight\"\
    	CODEBASE=\"http://server1.anoox.com/callsite/applet/\"\
      ARCHIVE=\"Pager.jar\"\
    	WIDTH=\"0\" HEIGHT=\"0\" ALIGN=\"BOTTOM\">\
    	\
  " + params + "\
    <param name=\"CABBASE\" value=\"Pager.cab\">\
    </applet>\
  ";
  
  document.write(html);
}
