//Possible variables to set in the calling file:
//numberOfHits
//searchWord
//session
//pagetitle
//url
//guid
//groups
//filetype
//responseTime
//path
//cvid
//cid
//metagroupname - Gives the possibility to automatically create group from metatag named the "metagroupname"
//surveysessionid
var src_loaded = false;
var sz_previousSessionId = "";

function writeStatistics() {
   if (src_loaded == true) return;
   var sz_session = "";if (typeof session!="undefined") sz_session = session;

   var randomNum = Math.floor(Math.random()*100000) ;
   var nmstatCookie = Get_Cookie('nmstat');
   if (nmstatCookie==null) {storeMasterCookie();storeIntelligentCookie('nmstat',sz_session+(new Date()).getTime()+randomNum);}
   nmstatCookie = Get_Cookie('nmstat');
   if (nmstatCookie!=null) sz_previousSessionId = escape(nmstatCookie);

   var sz_screenResolution = window.screen.width + "x" + window.screen.height;
   var sz_title = ""; sz_title=escape(document.title);
   var jstitle = "";if (typeof pagetitle=="string") sz_title=escape(pagetitle);
   var sz_referer = ""; if (typeof referer=="string") sz_referer=escape(referer); else sz_referer=escape(document.referrer);
   var sz_url = "";if (typeof url=="string") sz_url=escape(url); else sz_url=escape(location.href);
   var sz_uid = "";
   if (typeof uid!="undefined") sz_uid=escape(uid);//Remove this line
   if (typeof sz_userid!="undefined") sz_uid=escape(sz_userid);
   var sz_guid = "";if (typeof guid!="undefined") sz_guid=escape(guid);
   if (sz_guid=="") {
      for (var j=0; j< document.forms.length; j++) {
         var sz_tmp = document.forms[j].action.toString().toUpperCase();
         if (sz_tmp.indexOf("NRNODEGUID")!=-1) {
            sz_guid = sz_tmp.substr(sz_tmp.indexOf("NRNODEGUID")+11);
            if (sz_guid.indexOf("%7B")==0) {
               sz_guid = sz_guid.substring(3);
               sz_guid = sz_guid.substring(0, sz_guid.indexOf("%7D"));
            }
         }
      }
   }
   var sz_groups = "";if (typeof groups!="undefined") sz_groups=escape(groups);
   var sz_filetype = "";if (typeof filetype!="undefined") sz_filetype=escape(filetype);
   var sz_numberOfHits = "";if (typeof numberOfHits!="undefined") sz_numberOfHits=escape(numberOfHits);
   var sz_searchWord = "";if (typeof searchWord!="undefined") sz_searchWord=escape(searchWord);
   var sz_responseTime = "";if (typeof responseTime!="undefined") sz_responseTime=escape(responseTime);
   var sz_path = "";if (typeof path=="string") sz_path=escape(path);
   var sz_cvid = "";if (typeof cvid!="undefined") sz_cvid=escape(cvid);
   var sz_cid = "";if (typeof cid!="undefined") sz_cid=escape(cid);
   var sz_surveysessionid = ""; if (typeof surveysessionid!="undefined") sz_surveysessionid = surveysessionid;
   sz_url = sz_url.split("\n").join("").split("\r").join("");
   sz_cid = sz_cid.split("\n").join("").split("\r").join("");
   sz_cvid = sz_cvid.split("\n").join("").split("\r").join("");
   sz_session = sz_session.split("\n").join("").split("\r").join("");
   sz_title = sz_title.split("\n").join("").split("\r").join("");
   sz_path = sz_path.split("\n").join("").split("\r").join("");
   sz_responseTime = sz_responseTime.split("\n").join("").split("\r").join("");
   sz_referer = sz_referer.split("\n").join("").split("\r").join("");
   sz_screenResolution = sz_screenResolution.split("\n").join("").split("\r").join("");
   sz_searchWord = sz_searchWord.split("\n").join("").split("\r").join("");
   sz_numberOfHits = sz_numberOfHits.split("\n").join("").split("\r").join("");
   sz_filetype = sz_filetype.split("\n").join("").split("\r").join("");
   sz_groups = sz_groups.split("\n").join("").split("\r").join("");
   sz_previousSessionId = sz_previousSessionId.split("\n").join("").split("\r").join("");
   sz_guid = sz_guid.split("\n").join("").split("\r").join("");
   sz_uid = sz_uid.split("\n").join("").split("\r").join("");
   sz_surveysessionid = sz_surveysessionid.split("\n").join("").split("\r").join("");
   jstitle = jstitle.split("\n").join("").split("\r").join("");
   document.write("<img style=\"width:1px;height:1px;position:absolute\" src=\"//uk1.siteimprove.com/image.aspx?url=" + sz_url + "&cid="+sz_cid+"&cvid="+sz_cvid+"&session="+sz_session+"&title="+sz_title+"&path="+sz_path+"&rt=" + sz_responseTime + "&ref=" + sz_referer + "&res="+sz_screenResolution+"&sw="+sz_searchWord+"&hits="+sz_numberOfHits+"&ft="+sz_filetype+"&groups="+sz_groups+"&rn="+randomNum+"&prev="+sz_previousSessionId+"&guid="+sz_guid+"&uid="+sz_uid+"&jstitle="+jstitle+"&surveysessionid="+sz_surveysessionid+"\" hspace=0 vspace=0 alt='' width=1 height=1 border=0>");
}


function Get_Cookie(name) {
   var start = document.cookie.indexOf(name+"=");
   var len = start+name.length+1;
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
   if (start == -1) return null;
   var end = document.cookie.indexOf(";",len);
   if (end == -1) end = document.cookie.length;
   return unescape(document.cookie.substring(len,end));
}

function Set_Cookie(name,value,expires,path,domain,secure) {
   document.cookie = name + "=" +escape(value) +
      ( (expires) ? ";expires=" + expires.toGMTString() : "") +
      ( (path) ? ";path=" + path : "") + 
      ( (domain) ? ";domain=" + domain : "") +
      ( (secure) ? ";secure" : "");
}

function Delete_Cookie(name,path,domain) {
   if (Get_Cookie(name)) document.cookie = name + "=" +
      ( (path) ? ";path=" + path : "") +
      ( (domain) ? ";domain=" + domain : "") +
      ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}

var today = new Date();
var zero_date = new Date(0,0,0);
today.setTime(today.getTime() - zero_date.getTime());

var todays_date = new Date(today.getYear(),today.getMonth(),today.getDate(),0,0,0);
var expires_date = new Date(todays_date.getTime() + (8 * 7 * 86400000));

function storeMasterCookie() {
   if (!Get_Cookie('MasterCookie'))
      Set_Cookie('MasterCookie','MasterCookie');
}

function storeIntelligentCookie(name,value) {
   if (Get_Cookie('MasterCookie')) {
      var IntelligentCookie = Get_Cookie(name);
      if ((!IntelligentCookie) || (IntelligentCookie != value)) {
         Set_Cookie(name,value,expires_date);
         var IntelligentCookie = Get_Cookie(name);
         if ((!IntelligentCookie) || (IntelligentCookie != value))
            Delete_Cookie('MasterCookie');
      }
   }
}
function logfile(filename, filetype, fileurl, groups, path) {
   var title   = filename;
   var url     = fileurl;
   var referer = location.href;
   if (url.toLowerCase().match(".pdf$"))
      url += "?" + referer;
   
   var randomNum = Math.floor(Math.random()*100000) ;

   if (document.images) {
      img1 = new Image();
      img1.src = "//uk1.siteimprove.com/image.aspx?ourl=" + escape(url) + "&title="+escape(title)+"&path="+escape(path) + "&ref=" + escape(referer) +"&ft="+escape(filetype)+"&groups="+escape(groups)+"&rn="+randomNum;
   }
   return;
}

function setgroupsfrommeta(mn){
   if (typeof groups=="undefined") groups = "";
   var m = document.getElementsByTagName('meta');   
   for(var i in m) {
      if(m[i].name == mn) {
         groups += (groups==""?"":",") + m[i].content;
      }
   }
}
if (typeof metagroupname!="undefined")
   setgroupsfrommeta(metagroupname);

writeStatistics();
src_loaded = true;

var alllinks = document.links;
var currenturl = location.href;
var excludelist = {asp:1,aspx:1,php:1}

for (var linkcounter=0;linkcounter<alllinks.length;linkcounter++) {
   if (alllinks[linkcounter].href.toLowerCase().indexOf("javascript:")!=-1){continue}
   if (alllinks[linkcounter].href.toLowerCase().indexOf("#")!=-1){continue}
   var current_onclick = "";
   if (typeof(alllinks[linkcounter].onclick)=="function") current_onclick = alllinks[linkcounter].onclick.toString();
   if (current_onclick.indexOf("logfile")!=-1){continue}
   if (current_onclick.indexOf("window.open")!=-1){
      var new_onclick = current_onclick.replace("window.open","addonclick('',this.href);window.open").replace("function anonymous()","");
      alllinks[linkcounter].onclick = new Function(new_onclick);
      continue;
   }   
   var th_href = alllinks[linkcounter].href;
   th_href = th_href.split("\n").join("").split("\r").join("");
   var th_onclick = alllinks[linkcounter].onclick;
   alllinks[linkcounter].onclick = new Function("return addonclick(" + th_onclick + ", \"" + th_href + "\")");
}

function addonclick(originalfunction, linkhref){
   var logclick = true;
   var linkhrefsplitted = linkhref.split(".");
   var linkhrefending = "";
   for (var i=0; i < linkhrefsplitted.length; i++) {linkhrefending = linkhrefsplitted[i];}
   var currentdomain = document.domain;
   var linkhrefexclthisdomain = onclickRegexReplace(linkhref, "//" + currentdomain, "");
   var iscurrentdomain = linkhrefexclthisdomain!=linkhref;
   if (iscurrentdomain && excludelist[linkhrefending]=="1")
         logclick = false;
   if (logclick)
      onclicklogfile(linkhref);
   if (typeof(originalfunction)=="function"){return originalfunction.apply()}
}

function onclickRegexReplace(inputString, fromString, toString) {var regString = new RegExp(fromString, "gi");return inputString.replace(regString, toString);}
function onclicklogfile(url) {
   var referer = location.href;
   var randomNum = Math.floor(Math.random()*100000) ;
   if (url.toLowerCase().match(".pdf$"))
      url += "?" + referer;
   if (document.images) {
      img1 = new Image();
      img1.src = "//uk1.siteimprove.com/image.aspx?ourl=" + escape(url) + "&ref=" + escape(referer) +"&autoonclick=1&rn="+randomNum;
   }
   return;
}
   