/*  Navigation Functions */
function addParsedQueryStringToUri(uri, querystring) {
	if (!(uri.indexOf('?', 2) > 2)) {
		uri += '?';
	}
	
	var uriLastChar = new String(uri.charAt(uri.length-1));
	var qsFirstChar = new String(querystring.charAt(0));
	
	if ((uriLastChar == '?' || uriLastChar == '&') && qsFirstChar == '&') {
		querystring = querystring.substr(1);
	} else if (uriLastChar != '?' && uriLastChar != '&' && qsFirstChar != '&') {
		uri += '&';
	}

	return uri + querystring;
}

function appendNameValueStrings(s1, s2, pairSeperator) {
	s1 = (s1==null) ? '' : s1;
	s2 = (s2==null) ? '' : s2;
	pairSeperator = (pairSeperator==null) ? ',' : pairSeperator;
	
	if (s1.length == 0 || s2.length == 0) {
		return '' + s1 + s2;
	}

	var s1LastChar  = new String(s1.charAt(s1.length-1));
	var s2FirstChar = new String(s2.charAt(0));

	if (s1LastChar == pairSeperator && s2FirstChar != pairSeperator) {
		return '' + s1 + s2;
	} else if (s1LastChar == pairSeperator && s2FirstChar == pairSeperator) {
		return '' + s1 + s2.substr(1);
	} else {
		return s1 + pairSeperator + s2;
	}
}

function addURLParam(sURL, sName, sVal) {
	if (sURL.indexOf('?') > 0) {	//Does the url have any existing query string params?
		return('&' + sName + '=' + sVal);	//If the url has existing query string params, then we add the new name/value pair with a leading '&'
	} else {
		return('?' + sName + '=' + sVal);	//If the url has no query string params, then we add the new name/value pair with a leading '?'
	}
}

function Querystring(qs) {
	this.params = new Object()
	
	this.get = function(key, default_) {
			if (default_ == null) { default_ = null; }
			var value=this.params[key];
			if (value==null){value=default_};
			return value;
		}
	
	if (qs == null) {
		qs=location.search.substring(1, location.search.length)
	}

	if (qs.length == 0) {return;}

	qs = qs.replace(/\+/g, ' ');
	
	if (qs.indexOf('?') > 0) {
		qs = qs.substring(qs.indexOf('?') + 1, qs.length);
	}

	var args = qs.split('&')
	
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=');
		var name = unescape(pair[0]);

		if (pair.length == 2) {
			value = unescape(pair[1]);
		} else {
			value = name;
		}
		
		this.params[name] = value;
	}
}

// Function to 'activate' images.
function imgOn(imgName){if (document.images){document[imgName].src = eval(imgName + "On.src");}}

// Function to 'deactivate' images.
function imgOff(imgName){if (document.images){document[imgName].src = eval(imgName + "Off.src");}}

// Function to trim images of leading and trailing whitespace
function Trim(sPhrase) {
	//start at the beginning and remove any spaces until a character is reached
	while ('' + sPhrase.charAt(0) == ' ') {
		sPhrase = sPhrase.substring (1, sPhrase.length);
	}
	
	//start at the end and remove any spaces until a character is reached
	while('' + sPhrase.charAt(sPhrase.length - 1) == ' ') {
		sPhrase = sPhrase.substring(0, sPhrase.length - 1);
	}
	
	while ('' + sPhrase.charAt(0) == '\t') {
		sPhrase = sPhrase.substring (1, sPhrase.length);
	}
	
	while('' + sPhrase.charAt(sPhrase.length - 1) == '\t') {
		sPhrase = sPhrase.substring(0, sPhrase.length - 1);
	}
	
	return sPhrase;
}
