function Args(Text) {
    Text = Text || 0;
	this.toString = GetString;
	this.GetArg = _getArg;
	this.SetArg = _setArg;
	this.DelArg = _removeArg;
	this.Args   = new Array();
	var separator = '&';
	var equalsign = '=';

    if (Text) {
        var str = Text;
        //alert('From Text: ' + str);
    } else {
        var str = window.location.search.replace(/%20/g, ' ');
        alert('From Url: ' + str);
    }

	var index = str.indexOf('?');
	var infoArray = new Array();
	var sInfo;
	var tmp;

	if (index != -1) {
		sInfo = str.substring(index+1,str.length);
		infoArray = sInfo.split(separator);
	}
	for (var i=0; i<infoArray.length; i++) {
		tmp = infoArray[i].split(equalsign);
		if (tmp[0] != '') {
			var t = tmp[0];
			this.Args[tmp[0]] = new Object();
			this.Args[tmp[0]].value = tmp[1];
			this.Args[tmp[0]].name = tmp[0];
			//this.Args[tmp[0]] = tmp[1];
            //alert(this.Args[tmp[0]].name + '=' + this.Args[tmp[0]].value);
		}
	}
	function GetString() {
		var s = '';
		var once = true;
		for (i in this.Args) {
			if (once) {
				s += '?';
				once = false;
			}
			s += this.Args[i].name;
			s += equalsign;
			s += this.Args[i].value;
			s += separator;
		}
		return s.replace(/ /g, '%20');
	}
    function _getArg(name) {
	    if (typeof(this.Args[name].name) != 'string')
            return null;
		else
			return this.Args[name].value;
	}
	function _setArg(name,value) {
		this.Args[name] = new Object()
		this.Args[name].name = name;
		this.Args[name].value = value;
	}
	function _removeArg(name) {
		this.Args[name] = null;
	}
	return this;
}