$.extend({
	URLEncode:function(c){
		var o='';
		var x=0;c=c.toString();
		var r=/(^[a-zA-Z0-9_.]*)/;
  		
  		while(x<c.length){
			var m=r.exec(c.substr(x));
    		if(m!=null && m.length>1 && m[1]!=''){
    			o+=m[1];x+=m[1].length;
    		}else{
  				if(c[x]==' ') o += '+';
	  			else{
  					var d=c.charCodeAt(x);
 					var h=d.toString(16);
    				o+='%'+(h.length<2?'0':'')+h.toUpperCase();
				}
				x++;
			}
		}
		
		return o;
	},
  //----------------------------------------------------------------------------
	URLDecode:function(s){
		var o=s;
		var binVal,t;
		var r=/(%[^%]{2})/;
  			
 		while((m=r.exec(o))!=null && m.length>1 && m[1]!=''){
			b=parseInt(m[1].substr(1),16);
  			t=String.fromCharCode(b);o=o.replace(m[1],t);
		}
		
		return o;
	},
  //----------------------------------------------------------------------------
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  //----------------------------------------------------------------------------
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});
