YUI.add("aui-url",function(e,t){function E(e){var t=this;if(!e)throw"An URL should be specified.";t._indexParts(e),t._indexParameters()}var n=e.QueryString,r="",i="#",s="?",o="://",u=0,a=1,f=2,l=3,c=4,h=5,p=6,d=7,v=8,m=9,g=10,y=11,b=12,w=13;E.URI_REGEX_RFC3986=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,e.mix(E.prototype,{_source:undefined,_protocol:undefined,_authority:undefined,_user_info:undefined,_user:undefined,_password:undefined,_host:undefined,_port:undefined,_relative:undefined,_path:undefined,_directory:undefined,_file:undefined,_query:undefined,_anchor:undefined,_parameters:undefined,addParameter:function(t,n){var r=this;r.setParameter(t,r.hasParameter(t)?e.Array(r.getParameter(t)).concat(n):n)},addParameters:function(t){var n=this;e.each(t,function(e,t){n.addParameter(t,e)})},hasParameter:function(e){var t=this;return t._parameters.hasOwnProperty(e)},getParameter:function(e){var t=this;return t._parameters[e]},getParameters:function(){var e=this;return e._parameters},getAnchor:function(){var e=this;return e._anchor},getAuthority:function(){var e=this;return e._authority},getDirectory:function(){var e=this;return e._directory},getFile:function(){var e=this;return e._file},getHost:function(){var e=this;return e._host},getPassword:function(){var e=this;return e._password},getPath:function(){var e=this;return e._path},getPort:function(){var e=this;return e._port},getProtocol:function(){var e=this;return e._protocol},getQuery:function(){var e=this;return e._query},getRelative:function(){var e=this;return e._relative},getSource:function(){var e=this;return e._source},getUser:function(){var e=this;return e._user},getUserInfo:function(){var e=this;return e._user_info},removeParameter:function(e){var t=this;delete t._parameters[e],t._indexParameters()},removeParameters:function(t){var n=this;e.each(t,function(e,t){n.removeParameter(t)})},setParameter:function(e,t){var n=this;n._parameters[e]=t,n._indexParameters()},setParameters:function(t){var n=this;e.each(t,function(e,t){n.setParameter(t,e)})},setAnchor:function(e){var t=this;t._anchor=e},setAuthority:function(e){var t=this;t._authority=e},setDirectory:function(e){var t=this;t._directory=e},setFile:function(e){var t=this;t._file=e},setHost:function(e){var t=this;t._host=e},setPassword:function(e){var t=this;t._password=e},setPath:function(e){var t=this;t._path=e},setPort:function(e){var t=this;t._port=e},setProtocol:function(e){var t=this;t._protocol=e},setRelative:function(e){var t=this;t._relative=e},setSource:function(e){var t=this;t._source=e},setUser:function(e){var t=this;t._user=e},setUserInfo:function(e){var t=this;t._user_info=e},toString:function(){var e=this,t=[];return e._protocol&&t.push(e._protocol,o),t.push(e._authority,e._path),e._query&&t.push(s,e._query),e._anchor&&t.push(i,e._anchor),t.join(r)},_indexParameters:function(){var e=this;e._parameters||(e._parameters=n.parse(e._query||r)),e._query=n.stringify(e._parameters)},_indexParts:function(e){var t=this,n=E.URI_REGEX_RFC3986.exec(e);t._source=n[u],t._protocol=n[a],t._authority=n[f],t._user_info=n[l],t._user=n[c],t._password=n[h],t._host=n[p],t._port=n[d],t._relative=n[v],t._path=n[m],t._directory=n[g],t._file=n[y],t._query=n[b],t._anchor=n[w]}},!0),e.Url=E},"2.0.0",{requires:["oop","querystring-parse","querystring-stringify"]});