	var url_search_keys = ["c1", "source", "kw"];
	
	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 "";
		}
	
		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 page.getValue(key);
	}
	
	function displayItem(key) {
		if(queryString(key) == 'false') {
			document.write("you didn't enter a ?name=value querystring item.");
		}else{
			document.write("key = " + queryString(key) + "<br />");
		}
	}
	
	function getCookiePath() {
		// return "path=http://" + document.location.hostname + "/";
		// return "path=" + document.location.hostname;
		return "path=/";
	}
	
	function saveSearchParams() {
		res = true;
		for (i = 0; i < url_search_keys.length; i++) {
			key = url_search_keys[i];
			val = queryString(key);
			if (!val) {
				res = false;
				break;
			}
		}
		
		if (res) {
			deleteSearchParams();
			
			for (i = 0; i < url_search_keys.length; i++) {
				key = url_search_keys[i];
				val = queryString(key);
				document.cookie = key + "=" + val + "; ;" + getCookiePath();
				
			}
			document.cookie = "search_url=" + 
				location.href.substring(0, location.href.indexOf("?")) + 
												"; ;" + getCookiePath();
		}
	}
	
	function deleteSearchParams() {
		for (i = 0; i < url_search_keys.length; i++) {
			key = url_search_keys[i];
			deleteCookieByName(key);
		}
		
		deleteCookieByName("search_url");
	}
	
	function deleteCookieByName(cname) {
		var cookie_date = new Date();  // current date & time
  		cookie_date.setTime(cookie_date.getTime() - 1);
		document.cookie = cname + "=; expires=" + cookie_date.toGMTString() + 
												";" + getCookiePath();
	}
	
	function getSearchParams(field) {
		if (!field) return false;
		
		field.value = "";
		c_list = document.cookie;
		
		s_param = "search_url";
		s_url = findValue(c_list, s_param);
		
		if (!s_url)	return;
			
		for (i = 0; i < url_search_keys.length; i++) {
			key = url_search_keys[i]; 
			val = findValue(c_list, key);
			if (val) {
				if (field.value) field.value += "&"
				field.value += val;
			}
		}
		
		if (field.value) {
			field.value = s_url.substring(s_param.length + 1, s_url.length) + "?" + field.value;
		}		
	}
	
	function findValue(c_list, key) {
		val = "";
		c_idx = c_list.indexOf(key + "="); 
		if (c_idx >= 0) {
			c_ex = c_list.substring(c_idx, c_list.length);
			xval = c_ex.substring(0, c_ex.indexOf(";"));
			if (!xval)
				xval = c_ex;
			if (xval != key + "=") 
				val = xval
		}
		
		
		return val;
	}