﻿//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
//sz_forceurl

if (typeof src_loaded=="undefined")
	var src_loaded = false;
var sz_previousSessionId = "";

function sz_getlogurl(p_url, p_ref) {
	if (typeof metagroupname!="undefined")
		setgroupsfrommeta(metagroupname);
	if (p_url) url = p_url;
	var get_log_url = "";

	var sz_url = "";if (typeof url=="string") sz_url=escape(url); else sz_url=escape(location.href);sz_url = sz_url.split("\n").join("").split("\r").join("");
	get_log_url += "//ssl.siteimprove.com/image.aspx?url=" + sz_url;

	var sz_cid = "";if (typeof cid!="undefined") sz_cid=escape(cid);sz_cid = sz_cid.split("\n").join("").split("\r").join("");get_log_url += sz_cid ? "&cid=" + sz_cid : "";
	var sz_cvid = "";if (typeof cvid!="undefined") sz_cvid=escape(cvid);sz_cvid = sz_cvid.split("\n").join("").split("\r").join("");get_log_url += sz_cvid ? "&cvid=" + sz_cvid : "";
	var sz_session = "";if (typeof session!="undefined") sz_session = session;sz_session = sz_session.split("\n").join("").split("\r").join("");get_log_url += sz_session ? "&session=" + sz_session : "";
	var sz_title = ""; sz_title=escape(document.title);var jstitle = "";if (typeof pagetitle=="string") sz_title=escape(pagetitle);sz_title = sz_title.split("\n").join("").split("\r").join("");get_log_url += sz_title ? "&title=" + sz_title : "";
	var sz_path = "";if (typeof path=="string") sz_path=escape(path);sz_path = sz_path.split("\n").join("").split("\r").join("");get_log_url += sz_path ? "&path=" + sz_path : "";
	var sz_responseTime = "";if (typeof responseTime!="undefined") sz_responseTime=escape(responseTime);sz_responseTime = sz_responseTime.split("\n").join("").split("\r").join("");get_log_url += sz_responseTime ? "&rt=" + sz_responseTime : "";
	var sz_referer = ""; 
	if (sz_path=="Forside") {
	  sz_referer = top.document.referrer;
		get_log_url += "&ref=" + sz_referer;
	} else if (typeof p_ref=="string" && p_ref!=null && p_ref!="") {
		sz_referer=escape(p_ref);
		sz_referer = sz_referer.split("\n").join("").split("\r").join("");
		get_log_url += sz_referer ? "&ref=" + sz_referer : "";
	} else if (typeof referer=="string") {
		sz_referer=escape(referer); 
		sz_referer = sz_referer.split("\n").join("").split("\r").join("");
		get_log_url += sz_referer ? "&ref=" + sz_referer : "";
	} else {
		sz_referer=escape(document.referrer);
		sz_referer = sz_referer.split("\n").join("").split("\r").join("");
		get_log_url += sz_referer ? "&ref=" + sz_referer : "";
	}
	var sz_screenResolution = window.screen.width + "x" + window.screen.height;sz_screenResolution = sz_screenResolution.split("\n").join("").split("\r").join("");get_log_url += sz_screenResolution ? "&res=" + sz_screenResolution : "";
	var sz_searchWord = "";if (typeof searchWord!="undefined") sz_searchWord=escape(searchWord);sz_searchWord = sz_searchWord.split("\n").join("").split("\r").join("");get_log_url += sz_searchWord ? "&sw=" + sz_searchWord : "";
	var sz_numberOfHits = "";if (typeof numberOfHits!="undefined") sz_numberOfHits=escape(numberOfHits);sz_numberOfHits = sz_numberOfHits.split("\n").join("").split("\r").join("");get_log_url += sz_numberOfHits ? "&hits=" + sz_numberOfHits : "";
	var sz_filetype = "";if (typeof filetype!="undefined") sz_filetype=escape(filetype);sz_filetype = sz_filetype.split("\n").join("").split("\r").join("");get_log_url += sz_filetype ? "&ft=" + sz_filetype : "";
	var sz_groups = "";if (typeof groups!="undefined") sz_groups=escape(groups);sz_groups = sz_groups.split("\n").join("").split("\r").join("");get_log_url += sz_groups ? "&groups=" + sz_groups : "";
	var sz_ourl = ""; if (typeof sz_forceurl=="string") sz_ourl=escape(sz_forceurl);sz_ourl = sz_ourl.split("\n").join("").split("\r").join("");get_log_url += sz_ourl ? "&ourl=" + sz_ourl : "";
	var randomNum = Math.floor(Math.random()*100000);
	get_log_url += randomNum ? "&rn=" + randomNum : "";
	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);sz_previousSessionId = sz_previousSessionId.split("\n").join("").split("\r").join("");
	get_log_url += sz_previousSessionId ? "&prev=" + sz_previousSessionId : "";
	var sz_uid = "";
	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.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"));
				}
			}
		}
	}
	sz_guid = sz_guid.split("\n").join("").split("\r").join("");
	sz_uid = sz_uid.split("\n").join("").split("\r").join("");
	get_log_url += sz_guid ? "&guid=" + sz_guid : "";
	get_log_url += sz_uid ? "&uid=" + sz_uid : "";
	jstitle = jstitle.split("\n").join("").split("\r").join("");
	get_log_url += jstitle ? "&jstitle=" + jstitle : "";
	var sz_surveysessionid = ""; if (typeof surveysessionid!="undefined") sz_surveysessionid = surveysessionid;sz_surveysessionid = sz_surveysessionid.split("\n").join("").split("\r").join("");
	get_log_url += sz_surveysessionid ? "&surveysessionid=" + sz_surveysessionid : "";
	if (typeof(_szpars) == "object") {
		for (i in _szpars) {
			get_log_url += "&" + encodeURIComponent('grk_' + i) + '=' + encodeURIComponent(_szpars[i]);
		}
	}
	return get_log_url;
}

function writeStatistics(p_ref) {
	//alert("writeStatistics()");
	if (src_loaded == true) return;
	if (document.images) {
		img1 = new Image();
		img1.src = sz_getlogurl("", p_ref);
	}
	getLinks();
	src_loaded = true;
}

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;
   
   var randomNum = Math.floor(Math.random()*100000) ;

	if (document.images) {
		img1 = new Image();
		img1.src = "//ssl.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;
		}
	}
}

//writeStatistics();
//src_loaded = true;

var excludelist = {asp:1,aspx:1,php:1};
function getLinks () {
	var alllinks = document.links;
	var currenturl = location.href;

	for (var linkcounter=0;linkcounter<alllinks.length;linkcounter++) {
		if (alllinks[linkcounter].href.toLowerCase().indexOf("supershowdoc.asp")!=-1){continue}
		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()","");
			try {
				alllinks[linkcounter].onclick = new Function(new_onclick);
			} catch (err) {}
			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 (document.images) {
		img1 = new Image();
		img1.src = "//ssl.siteimprove.com/image.aspx?ourl=" + escape(url) + "&ref=" + escape(referer) +"&autoonclick=1&rn="+randomNum;
	}
	return;
} 
 