URL = function(url){
	if(url){
		var temp = url.split("?");
		this.url = temp[0];
		this.query = temp[1];	
	}
	else{
		this.url = "";
		this.query = "";	
	}
}

URL.prototype.queryToArray= function(query){
	if(arguments.length == 0)
		query = this.query;
	keys = new Array();
	values = new Array();
	var arr = query.split("&");
	for(i=0; i<arr.length; i++){
		temp = arr[i].split("=");
		keys.push(temp[0]);
		values.push(temp[1]);
	}	
	
	return new Array(keys,values);
}
	
URL.prototype.arrayToQuery = function(keys,values){
	query = "";
	for(i=0; i<keys.length; i++){
		query += keys[i]+"="+values[i]+"&";
	}
	return query.substr(0,(query.length-1));
}

URL.prototype.makeQueryFromForm = function(form){
	var elements = form.elements;
	var query = "";
	for(i=0; i<elements.length; i++){
		if(elements[i].name && elements[i].value!=""){
			if(elements[i].type == "checkbox" || elements[i].type == "radio"){
				if(elements[i].checked)
					query += elements[i].name+"="+elements[i].value+"&";
			}
			else
				query += elements[i].name+"="+elements[i].value+"&";
		}
	}
	return query.substr(0,(query.length-1));
}

URL.prototype.replaceValue = function(key,value,save){
	arr = this.queryToArray();
	var exist = false;
	keys = arr[0];
	values = arr[1];
	
	tempValues = new Array();
	for(i=0; i<keys.length; i++){
		if(keys[i] == key){
			tempValues.push(value);
			exist = true;
		}
		else
			tempValues.push(values[i]);
	}
	if(!exist){
		keys.push(key);
		tempValues.push(value);
	}
	var query = this.arrayToQuery(keys,tempValues);
	if(save)
		this.query = query;
	return query;
}

URL.prototype.getQuery = function(){		
	return this.query;
}

URL.prototype.getURL = function(){
	return this.url+"?"+this.query;
}

URL.prototype.setURL = function(url){
	var temp = url.split("?");
	this.url = temp[0];
	this.query = temp[1];
}

URL.prototype.getQueryValue = function(key){
	var values = this.queryToArray();
	keys = values[0];
	for(var i=0; i<keys.length; i++){
		if(keys[i] == key)
			return values[1][i];
	}
}
