(function (settings) {
	try {
		var result = {
			url : "",
			trackingParameterValue : ""
		};

		(function () {
			var urlParts = document.URL.split("?");
			var resultUrl = urlParts[0];
			if (urlParts.length > 1) {
				var re = new RegExp("(?:^|&)" + settings["trackingParameterName"] + "=([^&]*)", "i");
				var query = urlParts[1];
				var match = query.match(re);
				if (match) {
					result["trackingParameterValue"] = match[1];
					query = urlParts[1].replace(re, "");
					document.cookie = (function () {
						var expires = new Date();
						expires.setFullYear(expires.getFullYear() + 10);
						return [
							settings["trackingParameterName"] + "=" + window.encodeURIComponent(match[1]),
							"path" + "=" + "/",
							"expires" + "=" + expires.toGMTString(), 
							"max-age" + "=" + 315360000 // = (60 * 60 * 24 * 365 * 10) seconds = 10 years
						];
					})().join(";");
				}
				resultUrl += (query.length > 0 ? "?" : "") + query;
			}
			result["url"] = window.encodeURIComponent(resultUrl);
		})();

		(function () {
			if (result["trackingParameterValue"].length == 0) {
				var re = new RegExp("(?:^|;)\\s*" + settings["trackingParameterName"] + "=([^;]*)", "i");
				var match = document.cookie.match(re)
				if (match) {
					result["trackingParameterValue"] = window.decodeURIComponent(match[1]);
				}
			}
		})();

		(function () {
			if (result["trackingParameterValue"]) {
				var url = settings["trackingUrl"];
				for (var param in result) {
					var token = "{var:" + param + "}";
					url = url.replace(token, result[param]);
				}
				document.write('<img src="' + url + '" alt="" width="1" height="1" />');
			}
		})();
	}
	catch (e) { };
})({
	trackingUrl : "http://localhost/mauge/linktracking.aspx?link_url={var:url}&visitor={var:trackingParameterValue}",
	trackingParameterName : "_trk"
});