function createCookie(name,value,days) {
	var expires = '';
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	} else {
		expires = "";
	}
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function setMaxLength(value, maxLength) {
	/// <summary>Trunates the text to maxLength and adds three periods.</summary>
	/// <param name="value" type="String" />
	/// <param name="maxLength" type="Integer" />
	/// <returns type="String" />
	
	if (value.length <= (maxLength + 3)) {return value;}

	value = value.substring(0,(maxLength - 3)) + '...';
	return value;
}

Querystring = function() {
	/// <summary>Provides client-side access to querystring name, value pairs.</summary>
	/// <remarks>Version 1.2.3 :: 22 Jun 2005 Adam Vandenberg</remarks>
	/// <example>Usage: <code>var qs = new Querystring();
	/// var thisValue = qs.get('thisValue');</code></example>

	this.params = {};
	var qs=document.location.search.substring(1,document.location.search.length);
	if (qs.length === 0) {return "";}

	// Turn <plus> back to <space>
	// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
	// Split out each name=value pair
	var name = '';
	var value = '';
	var pair = null;
	for (var i=0;i<args.length;i++) {
		value = null;
		pair = args[i].split('=');
		name = unescape(pair[0]).toLowerCase();

		if (pair.length === 2) {
			value = unescape(pair[1]);
		} else {
			value = name;
		}
		
		this.params[name] = value;
	}
	return this;
};

Querystring.prototype.get_value=function(key, default_) {
	/// <summary>Gets the value for the name.</summary>
	/// <param name="key" type="String" />
	/// <param name="default_" type="String">Optional; Value to return if value is null.</param>
	/// <returns type="String" />
		
	// This silly looking line changes UNDEFINED to NULL
	if (!default_) {default_ = null;}
	
	var value=this.params[key.toLowerCase()];
	if (value===null) {value=default_;}

	return value;
};