function URL(url){if(url.length==0){eval('throw "Invalid URL ['+url+"];")}this.url=url;this.port=-1;this.query=(this.url.indexOf("?")>=0)?this.url.substring(this.url.indexOf("?")+1):"";if(this.query.indexOf("#")>=0){this.query=this.query.substring(0,this.query.indexOf("#"))}this.protocol="";this.host="";var protocolSepIndex=this.url.indexOf("://");if(protocolSepIndex>=0){this.protocol=this.url.substring(0,protocolSepIndex).toLowerCase();this.host=this.url.substring(protocolSepIndex+3);if(this.host.indexOf("/")>=0){this.host=this.host.substring(0,this.host.indexOf("/"))}var atIndex=this.host.indexOf("@");if(atIndex>=0){var credentials=this.host.substring(0,atIndex);var colonIndex=credentials.indexOf(":");if(colonIndex>=0){this.username=credentials.substring(0,colonIndex);this.password=credentials.substring(colonIndex)}else{this.username=credentials}this.host=this.host.substring(atIndex+1)}var portColonIndex=this.host.indexOf(":");if(portColonIndex>=0){this.port=this.host.substring(portColonIndex);this.host=this.host.substring(0,portColonIndex)}this.file=this.url.substring(protocolSepIndex+3);this.file=this.file.substring(this.file.indexOf("/"))}else{this.file=this.url}if(this.file.indexOf("?")>=0){this.file=this.file.substring(0,this.file.indexOf("?"))}var refSepIndex=url.indexOf("#");if(refSepIndex>=0){this.file=this.file.substring(0,refSepIndex);this.reference=this.url.substring(this.url.indexOf("#"))}else{this.reference=""}this.path=this.file;if(this.query.length>0){this.file+="?"+this.query}if(this.reference.length>0){this.file+="#"+this.reference}this.getPort=getPort;this.getQuery=getQuery;this.getProtocol=getProtocol;this.getHost=getHost;this.getUserName=getUserName;this.getPassword=getPassword;this.getFile=getFile;this.getReference=getReference;this.getPath=getPath;this.getArgumentValue=getArgumentValue;this.getArgumentValues=getArgumentValues;this.toString=toString;function getPort(){return this.port}function getQuery(){return this.query}function getProtocol(){return this.protocol}function getHost(){return this.host}function getUserName(){return this.username}function getPassword(){return this.password}function getFile(){return this.file}function getReference(){return this.reference}function getPath(){return this.path}function getArgumentValue(key){var a=this.getArgumentValues();if(a.length<1){return""}for(i=0;i<a.length;i++){if(a[i][0]==key){return a[i][1]}}return""}function getArgumentValues(){var a=new Array();var b=this.query.split("&amp;");var c="";if(b.length<1){return a}for(i=0;i<b.length;i++){c=b[i].split("=");a[i]=new Array(c[0],((c.length==1)?c[0]:c[1]))}return a}function toString(){return this.url}};