﻿// First party cookie implementation for use on a site not using a WebTrends Analytics JS Tag.
// Apply this javascript to all page on the site (will work on just landing pages).
// Change @@CUSTID@@ in the last line to reflect the correct account number.

function DcsDynamicSearch(cid) {
	// private members
	var cname = "WT_DSAI";
	var wt = (typeof (WT) == "object") ? WT : {};

	// private methods
	function setAdInfo() {
		var value = getQueryParam("cshift_ck");
		if (value.length > 0) {
			var cur = new Date();
			var exp = new Date(cur.getTime() + 315360000000);
			document.cookie = cname + "=" + value + "; expires=" + exp.toGMTString() + "; path=/";
		}
	}
	function getQueryParam(key) {
		var qry = window.location.search.substring(1);
		if (qry.length > 0) {
			var params = qry.split("&");
			var count = params.length;
			for (var i = 0; i < count; i++) {
				var p = params[i].split("=");
				if (p[0] == key) {
					return p[1];
				}
			}
		}
		return "";
	}

	function dcsGetCookie(name) {
		var cookies = document.cookie.split("; ");
		var cmatch = [];
		var idx = 0;
		var i = 0;
		var namelen = name.length;
		var clen = cookies.length;
		for (i = 0; i < clen; i++) {
			var c = cookies[i];
			if ((c.substring(0, namelen + 1)) == (name + "=")) {
				cmatch[idx++] = c;
			}
		}
		var cmatchCount = cmatch.length;
		if (cmatchCount > 0) {
			idx = 0;
			if ((cmatchCount > 1) && (name == dcsInit.fpc)) {
				var dLatest = new Date(0);
				for (i = 0; i < cmatchCount; i++) {
					var lv = parseInt(dcsGetCrumb(cmatch[i], "lv"));
					var dLst = new Date(lv);
					if (dLst > dLatest) {
						dLatest.setTime(dLst.getTime());
						idx = i;
					}
				}
			}
			return unescape(cmatch[idx].substring(namelen + 1));
		}
		else {
			return null;
		}
	}

	function dcsGetCrumb(cval, crumb) {
		var aCookie = cval.split(":");
		for (var i = 0; i < aCookie.length; i++) {
			var aCrumb = aCookie[i].split("=");
			if (crumb == aCrumb[0]) {
				return aCrumb[1];
			}
		}
		return null;
	}

	// privileged methods
	this.getClientId = function() {
		return cid;
	};
	this.getAdInfo = function() {
		return dcsGetCookie(cname) || "";
	};
	this.getIsNew = function() {
		return 1;
	};
	// read query parameter, set cookie
	setAdInfo();
}

var dcsDS = new DcsDynamicSearch(5296);

