// based on silhouette.js, amended to resolve bugs
 
var NI_SE = "", NI_SC = "", NI_ST = "", NI_SV = "", NI_IW = 0;
var lastAC;

function ni_TrackHit(server, siteCode, description, section, service, trigger, amount, adCampaign, title, url, layer, basketAdd, basketRemove, parameters, identifier, products)
{ 
   NI_SE = server; NI_SC = siteCode; NI_ST = section; NI_SV = service;
   
   function CB(){
      var cb="", key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";            
      for (i=0;i<5;i++) cb += key.charAt(Math.floor(Math.random()*52));      
      return cb;
   }

   function A(B,C){
      if (typeof(C) != "undefined" && C != "") return "&"+B+"="+escape(C);
      else return "";
   }
   
   if (typeof(NI_PAGE) != "undefined"){
     if (url.indexOf("?") > 0) url += "&ni_page=" + NI_PAGE;
     else url += "?ni_page=" + NI_PAGE;
   }
	var query = parent.document.location.search;
	if(!query && parent.document.location.hash.indexOf("?")!=-1){
		query = parent.document.location.hash.substr(parent.document.location.hash.indexOf("?"));
	}
	var vars = parseQS(query);
	if (vars!=null && vars.ac!=null) {
   		if(typeof(adCampaign)=="undefined" || adCampaign.length==0){
			adCampaign = unescape(vars.ac);
		}
   }
   if(typeof(refURL)=="undefined" || refURL.length==0){
        refURL = window.document.referrer;
   }
   var p = "http"+(document.URL.indexOf('https:')==0?'s':''); 	
   var t = new Date();	
   var u = p+"://"+server+"/Hit.aspx?tv=1&sc="+siteCode;
   u+=A("lo",description);
   u+=A("du",url);
   u+=A("st",section);
   u+=A("sv",service);
   if(adCampaign!=lastAC)u+=A("ac",adCampaign);
   u+=A("tr",trigger);
   u+=A("ta",amount);
   u+=A("ti",title);
   u+=A("tz",t.getTimezoneOffset());
   u+=A("ch",t.getHours());
   u+=A("cb",CB());
   u+=A("ru",refURL);
   u+=A("js","1");
   u+=A("ul",navigator.appName=="Netscape" ? navigator.language : navigator.userLanguage);
   u+=A("ba", basketAdd);
   u+=A("br", basketRemove);
   u+=A("pm", parameters);
   u+=A("id", identifier);
   u+=A("pr", products);
	
   if (typeof(screen)=="object"){
      u+=A("sr",screen.width+"x"+screen.height);	
   }
   
  	refURL = url;
	if(adCampaign)lastAC = adCampaign;
	
	var image = new Image(1,1);
	image.src = u;
}
function parseQS(query){
	if(query!=null){
		var ret = {};
		var reg = /(?:[&?])([^?&=#]*)(?:=)?([^?&=#]*)/g;
		var result;
		while(result = reg.exec(query)){
			var name = result[1];
			var value = result[2];
			if(value && value.length){
				ret[name] = value;
			}
		}
		return ret;
	}
	return null;
}
function assembleQS(vars){
	var ret = "";
	for(var i in vars){
		var value = vars[i];
		if(value && value.length){
			ret += (ret.length?"&":"?")+i+"="+value;
		}
	}
	return ret;
}