function URLEncode(prevPage) {
	var SAFECHARS = "0123456789" +
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";
	var HEX = "0123456789ABCDEF";

	var plaintext = prevPage;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	}

	return encoded;
}

function generateKey() {
    var length=20;
    var sPassword = "";

    for (i=0; i < length; i++) {
        numI = getRandomNum();
        while (checkPunc(numI)) { numI = getRandomNum(); }
        sPassword = sPassword + String.fromCharCode(numI);
    }

	setCookie("trackingKey",sPassword);
	return sPassword;
}

function getRandomNum() {
    var rndNum = Math.random()
    rndNum = parseInt(rndNum * 1000);
    rndNum = (rndNum % 94) + 33;
    return rndNum;
}

function checkPunc(num) {
	if ((num >=33) && (num <=47)) { return true; }
	if ((num >=58) && (num <=64)) { return true; }    
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }
    return false;
}

function setCookie(name, value, expires, path, domain, secure) {
  path="/";

  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");

  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

var querystring = location.search.substring(1);
var clickTrack = new Image();

if (getCookie("trackingKey")){
	var trackingCode=getCookie("trackingKey");
} else {
	var trackingCode=generateKey();
}


if (!querystring){
	clickTrack.src = "http://www.paid32.com/affsoft/clickTrack.php?agent="+client+"&website="+URLEncode(website)+"&tracking="+URLEncode(trackingCode)+"&ref="+URLEncode(document.referrer);
} else {
	clickTrack.src = "http://www.paid32.com/affsoft/clickTrack.php?"+querystring+"&agent="+client+"&website="+URLEncode(website)+"&tracking="+URLEncode(trackingCode)+"&ref="+URLEncode(document.referrer);
}
