function Url(obj, txt, rel) {

varSeparator=kvkVarSeparator;
pairSeparator=kvkPairSeparator;
str=kvkAppDir;

	if(obj instanceof Args) {
	
		for(i=0; i < obj.getSize(); i++) {
			
			if(obj.isAssoc(i)) {
				if(obj.getValue()!=="undefined")
				{
					str+=obj.getValue(i) + pairSeparator;
				}
			}
			else {
			//str+=obj.get(i) + varSeparator;
			}
		}
	}
return str;
}

function Args() {

this.args=new Array();
this.pointer=0;

	function add(key, arg) {
	numargs=arguments.length;
		
		if(numargs<2) {
		this.args[this.pointer]=key;
		}
		else if(numargs==2) {
		this.args[this.pointer]=new Array(key, arg);
		}
		this.pointer++;
	}
	this.add=add;

	function remove(key)
	{

		for(i=0;i<this.pointer;i++)
		{
			if(this.args[i] && this.args[i][0]==key)
			{
				delete this.args[i];
			}

		}
	}
	this.remove=remove;

	function get(key) {

		if(typeof(key) == "number") {
		return this.args[key];
		}
	}
	this.get=get;

	function getKey(key) {

		if(this.args[key] && this.args[key] instanceof Array) {
		return this.args[key][0];
		}
		return this.args[key];
	}
	this.getKey=getKey;

	function getValue(key) {

		if(this.args[key] && this.args[key] instanceof Array) {
		return this.args[key][1];
		}
	}
	this.getValue=getValue;

	function has(key) {

		if(typeof(key) == "number") {

			if(this.args[key]) {
			return true;
			}
		}
		else if(typeof(key) == "string") {
		
			for(i=0; i<this.pointer; i++) {
	
				if(this.args[i] && this.args[i][0] == key) {
				return true;
				}
			}
		}
	return false;
	}
	this.has=has;

	function isAssoc(key) {

		if(this.has(key) && this.args[key] instanceof Array) {
		return true;
		}
	return false;
	}
	this.isAssoc=isAssoc;

	function getSize() {
	return (this.pointer);
	}
	this.getSize=getSize;
}