
function PageQuery(q) {

	if(q.length > 1) this.q = q.substring(1, q.length);
	
	else this.q = null;

	this.keyValuePairs = new Array();

	if(q) {

		for(var i=0; i < this.q.split("&").length; i++) {

			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}

	this.getKeyValuePairs = function() { return this.keyValuePairs; }

	this.getValue = function(s) {

	for(var j=0; j < this.keyValuePairs.length; j++) {

		if(this.keyValuePairs[j].split("=")[0] == s)

			return this.keyValuePairs[j].split("=")[1];
		}

		return false;
	}

	this.getParameters = function() {

		var a = new Array(this.getLength());

		for(var j=0; j < this.keyValuePairs.length; j++) {

			a[j] = this.keyValuePairs[j].split("=")[0];
		}

		return a;
	}

	this.getLength = function() { return this.keyValuePairs.length; } 
}


function queryString(key){

	var page = new PageQuery(window.location.search); 

	return unescape(page.getValue(key)); 
}


function retrieve_sid_cookie() {

	sid_cookie = '';		// initialize

	if(document.cookie.indexOf('gtsid') != -1) {

		sid_cookie = document.cookie.toString().substring(document.cookie.indexOf('gtsid=') + 6);

		if(sid_cookie.indexOf(';') != -1) {

			sid_cookie = sid_cookie.substring(0,sid_cookie.indexOf(';'));

		}
	}

	return sid_cookie;
}




function derive_sid(input_sid) {

	my_sid = '';		// initialize

	if(input_sid) {

		my_sid = input_sid;
	}

	else {

		my_sid = queryString('sid');

		if(my_sid == 'false') {my_sid = queryString('utm_campaign')}		// Google Analytics tag

		if(my_sid == 'false') {

		// if null, see if we set a cookie last time we saw them

			my_sid = retrieve_sid_cookie();
		}


		if(!my_sid || my_sid == '') {

			// let's look for HTTP_REFERER then

			if(document.referrer) {		// use hostname from document.referrer if it isn't null

				my_referrer = document.referrer;

				if(my_referrer.indexOf('http://') != -1) {my_referrer = my_referrer.substring(7);}

				if(my_referrer.indexOf('https://') != -1) {my_referrer = my_referrer.substring(8);}

				if(my_referrer.indexOf('/') != -1) {

					my_referrer = my_referrer.substring(0,my_referrer.indexOf('/'));

				}

				my_sid = my_referrer;

			}
		}

		if(!my_sid || my_sid == '') {	

			my_sid = 'unknown';
		}
	}


	// now set cookie so if they come back without a sid or referer we can track the initial one

	domain_array = document.location.hostname.split('.');

	expiresin30days = new Date(new Date().getTime() + (86400000 * 30)).toGMTString();

	document.cookie = 'gtsid=' + my_sid + ';path=/;expires=' + expiresin30days;	// IE will not set cookies for
											// explicit .to domains - bug?

	return;

}


