谁能帮我解释一下这个函数
yesun 2005-10-08 01:23:14 我看起来一个头两个大啊
function UR(){
var a=arguments,i,F,R=[0,"","","",""];
if(a.length==2){
if(a[1] instanceof Array){
for(i=0;i<a[1].length;i++){
F=UR(a[0],a[1][i])
if(F){
if(F[0]<100){
R[0] += F[0];
}else{
R[0] = F[0];
}
if(F[1]!==""){
R[1] = F[1];
}
if(F[2]!==""){
R[2] = F[2];
}
if(F[3]!==""){
R[3] = F[3];
}
if(F[4]!==""){
R[4] = F[4];
}
}
}
return R;
}else if(typeof(UR[a[0]])!="undefined"){
if(typeof(UR[a[0]][a[1]])!="undefined"){
return UR[a[0]][a[1]];
}else{
if(a[1]==""||a[1]=="在线管理"||a[1]=="注册用户"||a[1]=="匆匆过客"||a[1]=="绿电话"||a[1]=="黑电话"||a[1]=="无电话"){
if(a[0]==""){
return R;
}else{
return UR("",a[1]);
}
}else if(a[0]==""){
return;
}else if((typeof(UR["//"])!="undefined")&&(typeof(UR["//"][a[1]])!="undefined")&&(UR["//"][a[1]].test(a[0]))){
return UR(UR["//"][a[1]].toString(),a[1]);
}else{
return UR("",a[1]);
}
}
}else if((typeof(UR["//"])!="undefined")&&(typeof(UR["//"][a[1]])!="undefined")&&(UR["//"][a[1]].test(a[0]))){
return UR(UR["//"][a[1]].toString(),a[1]);
}else if(a[1]==""||a[1]=="在线管理"||a[1]=="注册用户"||a[1]=="匆匆过客"||a[1]=="绿电话"||a[1]=="黑电话"||a[1]=="无电话"){
if(a[0]==""){
return R;
}else{
return UR("",a[1]);
}
}else{
if(a[0]==""){
return;
}else{
return UR("",a[1]);
}
}
}else if(a.length==5){
if(a[0] instanceof Array){
for(i in a[0]){
UR(a[0][i],a[1],a[2],a[3],a[4]);
}
}else if(a[1] instanceof Array){
for(i in a[1]){
UR(a[0],a[1][i],a[2],a[3],a[4]);
}
}else{
if(a[0] instanceof RegExp){
if(typeof(UR["//"])=="undefined"){
UR["//"] = {};
}
UR["//"][a[1]]=a[0];
}
a[0] = a[0].toString();
a[2] = a[2]*100;
if(a[3] instanceof Array){
a[5] = a[3][1];
a[3] = a[3][0];
}else{
a[5] = "";
}
if(a[4] instanceof Array){
a[6] = a[4][1];
a[4] = a[4][0];
}else{
a[6] = "";
}
F = UR(a[0],a[1]);
if(F){
if(a[2]<100){
a[2] += F[0];
}
if(a[3]===""){
a[3] = F[1];
}
if(a[4]===""){
a[4] = F[2];
}
if(a[5]===""){
a[5] = F[3];
}
if(a[6]===""){
a[6] = F[4];
}
}
if(typeof(UR[a[0]])=="undefined"){
UR[a[0]] = {};
}
UR[a[0]][a[1]]=[a[2],a[3],a[4],a[5],a[6]];
}
}
}