// -----------------------------------------------------------------------------
// Library    : TAGS001.js
// Created by : PixelSmart / Netideas -- 22 sept 2008, version 003
// Description: Service smart for pixelsmart tag creation.
// Copyright  : http://www.pixelsmart.net/smart001/copyright.html
// -----------------------------------------------------------------------------
var TSID     = "";               // Customer ID
var _VERSION = "10B001";         // SCRIPT VERSION
var _TSPREFX = "A1";             // PixelSmart Versioning Prefix
var _TSKEYID = "__tskey";        // PixelSmart COOKIE KEY Name
var _TSVISIT = "__tsvis";        // PixelSmart COOKIE VISIT Name
var _TSFORMC = "__TSF";          // TS Form Cookie
var _TSERVER = "pixelsmart.net"; // TS PixelServer
var _PIXELOK = 0;	 	             // Pixel created yet?
var _TSPARMS = "";               // Additional parameters to add
var _EXPIRES = 180;              // no. days to keep our cookie (without re-visit)
// -----------------------------------------------------------------------------

function TS__setCookie(cname,value) {   // generic write of cookie
  var today    = new Date();
  today.setTime( today.getTime() );

  var expires  = _EXPIRES * 1000 * 60 * 60 * 24;   // convert days to ms
  var expires_date = new Date( today.getTime() + expires);

  document.cookie = cname + "=" + escape(value) +
                    ";expires=" + expires_date.toGMTString() +
                    ";path=/";
}

// -----------------------------------------------------------------------------

function TS__getCookie(cname) {       // generic read of cookie

  var cookie = document.cookie;
  if (!document.cookie) return '';

  var start = cookie.indexOf( cname + "=" );
  if (start == -1) return '';

  var len = start + cname.length + 1;
  if ( ( !start ) && ( cname != cookie.substring( 0, cname.length ) ) ) {
    return '';
  }

  var end = cookie.indexOf( ";", len );
  if ( end == -1 ) end = cookie.length;
  
  return unescape( cookie.substring( len, end ) );
}
		
// -----------------------------------------------------------------------------

function TS__getUID() {                // generate unique ID 
  var t = (new Date()).getTime();    
  return _TSPREFX + "." + TS__getRand() + "." + t;
}

// -----------------------------------------------------------------------------

function TS__getRand() {				 // generate a random value
  return ((Math.random()) * 0x1000000000|0).toString(16).substring(1);
}

// -----------------------------------------------------------------------------
  
function TS__setVisit() {               // write visit cookie
  visit = TS__getCookie(_TSVISIT);	    // get current val	
  if (visit == '') visit = 1;           // empty? then 1
  else visit = parseInt(visit) + 1;     // add one!
  TS__setCookie(_TSVISIT,visit)         // store
  return visit;                         // return val
}

// -----------------------------------------------------------------------------

function TS_setparam(name,value) {     // add any parameters
  _TSPARMS = _TSPARMS + "&" + escape(name) + "=" + escape(value);
}

// -----------------------------------------------------------------------------

function TS_setpixeltype(type) {
  _TSPARMS = _TSPARMS + "&__TTP=" + escape(type);
}

// -----------------------------------------------------------------------------

function TS_smartpixel(newtsid) {
  TS_createpixel(newtsid,1);
}

// -----------------------------------------------------------------------------

function TS_createpixel(newtsid,smartform) {
  var frmvalues = "";

  if (smartform == 1) 
    frmvalues = TS__getCookie(_TSFORMC);        // get any form values
  
  //document.cookie = _TSFORMC + "=;path=/";             // remove (old form) values....

  if (smartform == 1) TS_smartforms();

  if (_PIXELOK == 0) {                          // not already submitted in req?
    if (newtsid != null) TSID = newtsid;

  	var pixvalue  = TS__getCookie(_TSKEYID);      // get ID 

	  if (pixvalue == '') pixvalue = TS__getUID();  // create new ID if not exist
      TS__setCookie(_TSKEYID,pixvalue);           // store ID with (new) date
   
	  document.write("<img src='http://" + _TSERVER + "/" + TSID + ".pixel?__TID=" + pixvalue + 
		               "&__TCN=" + TS__setVisit() + "&__TSF=" + frmvalues +
	                 _TSPARMS + "' alt='" + TSID + "'>");

 	  _PIXELOK = 1;                                 // avoid re-submitting.
  }
}

// -----------------------------------------------------------------------------

function TS_smartforms() {
 
  if(document.forms.length>0) { 
    for(i=0;i<document.forms.length;i++) {

      name=document.forms[i].name;
      form=document.forms[i];

      TS_SmartEvent(form,"submit",function() { TS_SmartHandler(form) });
    }
  }
}

// -----------------------------------------------------------------------------

function TS_SmartEvent(obj, evType, fn) {
  if (obj.addEventListener) 
       obj.addEventListener(evType, fn, false);
  else if (obj.attachEvent) 
       obj.attachEvent("on"+evType, fn);
  else obj.onmouseover = fn;
}

// -----------------------------------------------------------------------------

function TS_SmartHandler(form) {
  var hfield = "";
  for(i = 0;i < form.elements.length;i++) {
    var fname  = form.elements[i].name;
    var fvalue = escape(form.elements[i].value);
    if (fvalue.length < 100) {
      fname  = fname.replace ("{{","");
      fname  = fname.replace ("}}","");
      fvalue = fvalue.replace("{{","");
      fvalue = fvalue.replace("}}","");
      hfield = hfield + fname + "{{" + fvalue + "}}";
    }
  }
  document.cookie = _TSFORMC + "=" + hfield + ";path=/";
}

// -----------------------------------------------------------------------------

function TS_revertform(fname,newurl) {
  var form = document.getElementById(fname); 
  if (form) {
    var qtoken = newurl.indexOf("?");
    if (qtoken >= 0) newurl = newurl + "&_RN=";
    else newurl = newurl + "?_RN=";
    newurl = newurl + (new Date()).getTime();
    form.action = newurl;
  }
}

// -----------------------------------------------------------------------------
// END : V10A001 >> 17-08-2008 12:03 JRN - changed eventhandling
// -----------------------------------------------------------------------------