// escapes and appends the get var to the url
//  or replaces it if it exists
function addGetVarToURL(new_key, new_val, url) {
	var url_string = ''+url;
	var out_url_string = '';
	var offset = url_string.indexOf('?');
	var key_replaced = false;
	var get_string = false;
	if (offset > 0) {
		out_url_string = url_string.substring(0,offset+1);
		get_string = url_string.substring(offset+1);
		var fields = get_string.split('&');
		for (var f = 0; f < fields.length; f++) {
			if (f > 0) out_url_string += '&';
			var field = fields[f].split('=');
			var key = unescape(field[0].replace(/\+/g, ' '));
			if (key == new_key) {
				key_replaced = true;
				out_url_string += field[0] + '=' + escape(new_val);
			} else {
				out_url_string += field[0] + '=' + field[1];
			}
		}
	} else {
		out_url_string = url_string;
	}
	if (!key_replaced) {
		out_url_string += (get_string ? '&' : '?') + escape(new_key) + '=' + escape(new_val);
	}
	return out_url_string;
}
