webui-aria2/js/libs/dojo/_base/url.js
2012-05-01 19:52:07 +08:00

89 lines
1.7 KiB
JavaScript

/*
Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
//>>built
define("dojo/_base/url",["./kernel"],function(_1){
var _2=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),_3=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),_4=function(){
var n=null,_5=arguments,_6=[_5[0]];
for(var i=1;i<_5.length;i++){
if(!_5[i]){
continue;
}
var _7=new _4(_5[i]+""),_8=new _4(_6[0]+"");
if(_7.path==""&&!_7.scheme&&!_7.authority&&!_7.query){
if(_7.fragment!=n){
_8.fragment=_7.fragment;
}
_7=_8;
}else{
if(!_7.scheme){
_7.scheme=_8.scheme;
if(!_7.authority){
_7.authority=_8.authority;
if(_7.path.charAt(0)!="/"){
var _9=_8.path.substring(0,_8.path.lastIndexOf("/")+1)+_7.path;
var _a=_9.split("/");
for(var j=0;j<_a.length;j++){
if(_a[j]=="."){
if(j==_a.length-1){
_a[j]="";
}else{
_a.splice(j,1);
j--;
}
}else{
if(j>0&&!(j==1&&_a[0]=="")&&_a[j]==".."&&_a[j-1]!=".."){
if(j==(_a.length-1)){
_a.splice(j,1);
_a[j-1]="";
}else{
_a.splice(j-1,2);
j-=2;
}
}
}
}
_7.path=_a.join("/");
}
}
}
}
_6=[];
if(_7.scheme){
_6.push(_7.scheme,":");
}
if(_7.authority){
_6.push("//",_7.authority);
}
_6.push(_7.path);
if(_7.query){
_6.push("?",_7.query);
}
if(_7.fragment){
_6.push("#",_7.fragment);
}
}
this.uri=_6.join("");
var r=this.uri.match(_2);
this.scheme=r[2]||(r[1]?"":n);
this.authority=r[4]||(r[3]?"":n);
this.path=r[5];
this.query=r[7]||(r[6]?"":n);
this.fragment=r[9]||(r[8]?"":n);
if(this.authority!=n){
r=this.authority.match(_3);
this.user=r[3]||n;
this.password=r[4]||n;
this.host=r[6]||r[7];
this.port=r[9]||n;
}
};
_4.prototype.toString=function(){
return this.uri;
};
return _1._Url=_4;
});