
XWK.Url = function(url) {
	this.url = "";
	this.args = [];
	this.parse(url);
};

var _p = XWK.Url.prototype = {};

_p.addProportyToURL = function(url) {
	var p = url.indexOf('?');
	var qs=url.substr();
}

_p.parse = function(url) {
	var p = url.indexOf('?');
	if (p < 0) {
		this.url = url;
		this.args = [];
		return;
	}
	this.url = url.substr(0,p);

	var qs=url.substr(p+1);
	var a = qs.split('&')
	var r = [];
	for (var i=0; i<a.length; i++) {
		var pr = a[i].split('=');
		for (var k=0; k<pr.length; k++) {
			pr[k] = unescape(pr[k]);
		}
		r.push(pr);
	}
	this.args = r;
}
_p.setProporty = function(p,value) {
	var i = this.getProportyId(p,true);
	this.args[i][1] = value;
}

_p.getProporty = function(p) {
	var i = this.getProportyId(p);
	if (i == -1)
		return null;
	return this.args[i][1];
}

_p.getProportyId = function(p,create) {
	var a = this.args;
	for (var i=0; i<a.length; i++) {
		if (a[i][0] == p) {
			return i;
		}
	}
	if (create) {
		a.push([p]);
		return a.length-1;
	}
	return -1;
}

_p.merge = function(a) {
	for (var i=0; i<a.length; i++) {
		this.setProporty(a[i][0],a[i][1]);
	}
}

_p.toUrl = function() {
	var a = this.args;
	if (a.length == 0) {
		return this.url;
	}
	var tmp = [];
	for (var i=0; i<a.length; i++) {
		if (a[i].length < 2) {
			tmp.push(escape(a[i][0]));
			continue;
		}
		tmp.push(escape(a[i][0])+"="+escape(a[i][1]));
	}
	return this.url+"?"+tmp.join("&");
}

_p.toString = function() {
	return this.toUrl();
}

