// JavaScript Document

   function getQueryString() {
    if (location.href.lastIndexOf('?') ==-1) {
	return "";
    }	
    return location.search.substring(1,location.search.length);
}	
function split(str, search, keepBefore) {
    var index = str.indexOf(search);
    if (index!=-1) {
	if (keepBefore) {
	    return str.substring(0, str.indexOf(search));
	} else {
	    return str.substring(index+search.length, str.length)
		}	    
    }
    return str;
}   
function extractDomain(url) {
    url = split(url, "http://", false);
    url = split(url, "https://", false);
    url = split(url, "/", true);
    url = split(url, ":", true);
    return url;
}   
function extractPathName(url) {
    url = split(url, "http://", false);
    url = split(url, "https://", false);
    url = split(url, "?", true);
    url = split(url, "/", false);
    return "/" + url;
}   
function extractQueryString(url) {
    if (url.indexOf("?")==-1) {
	return "";
    }
    url = split(url, "http://", false);
    url = split(url, "https://", false);
    url = split(url, "?", false);
    return url;
}   
function extractCookie(name, abbrvName) {
    var cookies = document.cookie + ";";
    if (cookies.length!=0) {
	var cookie = split(cookies, name+"=", false);
	cookie = split(cookie, ";", true);
	return "&pC" + escape(abbrvName) + "=" + escape(cookie);
    }
    return "";
}   
function getProcessParams(prefix, qs) {
    if (qs.length == 0) {
	return "";
    } 
    var tmp="";
    var list = qs.split('&');
    for (var i=0;i<list.length;i++) {
	var key_value = list[i].split('=');
	tmp = tmp + "&" + prefix + "P" + escape(key_value[0]) + "=" + escape(key_value[1]);
    }
    return tmp;
}

function getTag(domain, virtualPath,orderIdParam,orderId,revenueParam,revenue) {
	
	var orderIdInclude;
	if (orderIdParam) {
		orderIdInclude = "&" + orderIdParam + "=" + orderId;
	} else {
		orderIdInclude="";
	}
	
	var revenueInclude;
	if (revenueParam) {
		revenueInclude = "&" + revenueParam + "=" + revenue;
	} else {
		revenueInclude="";
	}


    var r = Math.random();
    var d = new Date();
    var protocol = location.protocol;
    var tag = protocol + "//" + domain + virtualPath + "?ts=" +
	escape(d.getTime()) +
	"&r=" + escape(r) +
	"&pDom=" + escape(location.host) + 
	"&pPath=" + escape(location.pathname) +
	getProcessParams("p", getQueryString()) +
	"&rDom=" + escape(extractDomain(document.referrer)) + 
	"&rPath=" + escape(extractPathName(document.referrer)) +
	getProcessParams("r", extractQueryString(document.referrer)) +
	orderIdInclude +
	revenueInclude;
	
    return tag;
}

function tag(domain,virtualPath) {
//removed as document.write not working with ASp.net AJAX (ATLAS)
//document.write("<img alt=\"\" height=\"1\" width=\"1\" src=\"" + getTag(domain, virtualPath, null, null, null, null) + "\">");
var x = document.createElement('span');
x.innerHTML = "<img alt=\"\" height=\"1\" width=\"1\" src=\"" + getTag(domain, virtualPath, null, null, null, null) + "\">"
}	


function tag(domain,virtualPath,orderIdParam,orderId,revenueParam,revenue) {
//removed as document.write not working with ASp.net AJAX (ATLAS)
//document.write("<img alt=\"\" height=\"1\" width=\"1\" src=\"" + 
             // getTag(domain, virtualPath, orderIdParam, orderId, revenueParam, revenue) + "\">");
var x = document.createElement('span');
x.innerHTML = "<img alt=\"\" height=\"1\" width=\"1\" src=\"" + 
              getTag(domain, virtualPath, orderIdParam, orderId, revenueParam, revenue) + "\">";


       
document.body.appendChild(x); 
}	