﻿function revertUTF8(szInput)
{
 var x,wch,wch1,wch2,uch="",szRet="";
 for (x=0; x<szInput.length; x++){
  if (szInput.charAt(x)=="%") {
   wch =parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
   if (!wch) {
    break;
   }
   if (!(wch & 0x80)) {
    wch = wch;
   } else if (!(wch & 0x20)){
    x++;
    wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
    wch  = (wch & 0x1F)<< 6;
    wch1 = wch1 & 0x3F;
     wch  = wch + wch1;
   }  else {
    x++;
    wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
    x++;
    wch2 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
    wch  = (wch & 0x0F)<< 12;
    wch1 = (wch1 & 0x3F)<< 6;
    wch2 = (wch2 & 0x3F);
    wch  = wch + wch1 + wch2;
   }
   szRet += String.fromCharCode(wch);
  } else {
   szRet += szInput.charAt(x);
  }
 }
 return(szRet);
}



function GB2312UTF8()
{
this.Dig2Dec=function(s)
{
      var retV = 0;
      if(s.length == 4)
      {
          for(var i = 0; i < 4; i ++)
          {
              retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);
          }
          return retV;
      }
      return -1;
} 
this.Hex2Utf8=function(s){
     var retS = "";
     var tempS = "";
     var ss = "";
     if(s.length == 16){
         tempS = "1110" + s.substring(0, 4);
         tempS += "10" + s.substring(4, 10); 
         tempS += "10" + s.substring(10,16); 
         var sss = "0123456789ABCDEF";
         for(var i = 0; i < 3; i ++){
            retS += "%";
            ss = tempS.substring(i * 8, (eval(i)+1)*8);
            retS += sss.charAt(this.Dig2Dec(ss.substring(0,4)));
            retS += sss.charAt(this.Dig2Dec(ss.substring(4,8)));
         }
         return retS;
     }
     return "";
} 
this.Dec2Dig=function(n1){
      var s = "";
      var n2 = 0;
      for(var i = 0; i < 4; i++){
         n2 = Math.pow(2,3 - i);
         if(n1 >= n2){
            s += '1';
            n1 = n1 - n2;
          }
         else
          s += '0';
      }
      return s;      
}

this.Str2Hex=function(s){
      var c = "";
      var n;
      var ss = "0123456789ABCDEF";
      var digS = "";
      for(var i = 0; i < s.length; i ++){
         c = s.charAt(i);
         n = ss.indexOf(c);
         digS += this.Dec2Dig(eval(n));
      }
      return digS;
}
this.Gb2312ToUtf8=function(s1){
    var s = escape(s1);
    var sa = s.split("%");
    var retV ="";
    if(sa[0] != ""){
      retV = sa[0];
    }
    for(var i = 1; i < sa.length; i ++){
      if(sa[i].substring(0,1) == "u"){
        retV += this.Hex2Utf8(this.Str2Hex(sa[i].substring(1,5)));
   if(sa[i].length){
    retV += sa[i].substring(5);
   }
      }
      else{
     retV += unescape("%" + sa[i]);
   if(sa[i].length){
    retV += sa[i].substring(5);
   }
   }
    }
    return retV;
}
this.Utf8ToGb2312=function(str1){
        var substr = "";
        var a = "";
        var b = "";
        var c = "";
        var i = -1;
        i = str1.indexOf("%");
        if(i==-1){
          return str1;
        }
        while(i!= -1){
    if(i<3){
                substr = substr + str1.substr(0,i-1);
                str1 = str1.substr(i+1,str1.length-i);
                a = str1.substr(0,2);
                str1 = str1.substr(2,str1.length - 2);
                if(parseInt("0x" + a) & 0x80 == 0){
                  substr = substr + String.fromCharCode(parseInt("0x" + a));
                }
                else if(parseInt("0x" + a) & 0xE0 == 0xC0){ //two byte
                        b = str1.substr(1,2);
                        str1 = str1.substr(3,str1.length - 3);
                        var widechar = (parseInt("0x" + a) & 0x1F) << 6;
                        widechar = widechar | (parseInt("0x" + b) & 0x3F);
                        substr = substr + String.fromCharCode(widechar);
                }
                else{
                        b = str1.substr(1,2);
                        str1 = str1.substr(3,str1.length - 3);
                        c = str1.substr(1,2);
                        str1 = str1.substr(3,str1.length - 3);
                        var widechar = (parseInt("0x" + a) & 0x0F) << 12;
                        widechar = widechar | ((parseInt("0x" + b) & 0x3F) << 6);
                        widechar = widechar | (parseInt("0x" + c) & 0x3F);
                        substr = substr + String.fromCharCode(widechar);
                }
     }
     else {
      substr = substr + str1.substring(0,i);
      str1= str1.substring(i);
     }
              i = str1.indexOf("%");
        }

        return substr+str1;
}
}

var userIp=IPData[0]; 
var userAdress=escape(IPData[2]); 
var refurl=document.referrer;
refurl=refurl.toLowerCase(); 
var boturl=escape(refurl);
//google 默认为utf8编码
if(refurl.indexOf("www.google.c")>0&&refurl.indexOf("ie=gb")<=0) 
{ 	
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl);
} 
//baidu 默认为gb2312
if(refurl.indexOf("www.baidu.com")>0&&refurl.indexOf("ie=utf-8")>0) 
{ 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
else if(refurl.indexOf("www.baidu.com")>0) 
{ 
	var key=refurl.indexOf("wd="); 
	var dy=refurl.indexOf("=",key); 
	var yh=refurl.indexOf("&",dy); 
	var bfh=refurl.indexOf("%",dy); 
	if(bfh<0||bfh>yh&&yh>0) 
	{ 
		refurl=escape(refurl); 
	} 
} 
//yahoo 
if(refurl.indexOf("yahoo.com")>0&&refurl.indexOf("ei=gbk")<0) 
{ 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
if(refurl.indexOf("search.cn.yahoo.com")>0&&refurl.indexOf("ei=utf-8")>0) 
{ 	 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
if(refurl.indexOf("search.yahoo.com")>0&&refurl.indexOf("ei=utf-8")>0) 
{ 	 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
if(refurl.indexOf("one.cn.yahoo.com")>0) 
{ 	 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
if(refurl.indexOf("search.yahoo.com")>0&&refurl.indexOf("ei=utf-8")>0) 
{ 	 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
//有道 默认为utf8编码
if(refurl.indexOf("youdao.com")>0) //&&refurl.indexOf("ue=utf8")>0) 
{ 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
if(refurl.indexOf("youdao.com")>0 &&refurl.indexOf("ue=gbk")>0) 
{ 
	var key=refurl.indexOf("wd="); 
	var dy=refurl.indexOf("=",key); 
	var bfh=refurl.indexOf("%",dy); 
	if(bfh<0||bfh>dy+1) 
	{ 
		refurl=escape(refurl); 
	} 
}
//bing  默认为utf8编码
if(refurl.indexOf("bing.com")>0) 
{ 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 

//sogou 
var sogoukey=refurl.indexOf("query="); 
var sogoudy=refurl.indexOf("=",sogoukey); 
var sogoubfh=refurl.indexOf("%",sogoudy); 
if(refurl.indexOf("sogou.com")>0&&(sogoubfh<0||sogoubfh>sogoudy+1)) 
{ 
	refurl=escape(refurl); 
} 

//tom 
var tomkey=refurl.indexOf("w="); 
var tomdy=refurl.indexOf("=",tomkey); 
var tombfh=refurl.indexOf("%",tomdy); 
if(refurl.indexOf("tom.com")>0&&(tombfh<0||tombfh>tomdy+1)) 
{ 
	refurl=escape(refurl); 
} 
//soso 默认为gb2312
var sosokey=refurl.indexOf("w="); 
var sosody=refurl.indexOf("=",sosokey); 
var sosobfh=refurl.indexOf("%",sosody); 
if(refurl.indexOf("soso.com")>0&&(sosobfh<0||sosobfh>sosody+1)) 
{ 
	refurl=escape(refurl); 
} 
if(refurl.indexOf("soso.com")>0&&refurl.indexOf("ie=utf-8")>0)
{ 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 
//114 
var key114=refurl.indexOf("kw="); 
var dy114=refurl.indexOf("=",key114); 
var bfh114=refurl.indexOf("%",dy114); 
if(refurl.indexOf("114search.118114.cn")>0&&(bfh114<0||bfh114>dy114+1)) 
{ 
	refurl=escape(refurl); 
} 
if(refurl.indexOf("114search.118114.cn")>0&&refurl.indexOf("ec=gb2312")>0) //utf8编码
{ 
	refurl=revertUTF8(refurl); 
	refurl=escape(refurl); 
} 

refurl=refurl.replace(/&/g,'[**]'); 
var localUrl=location.href; 
localUrl=localUrl.replace(/#/g,'[*]'); 
//document.write(refurl); 
document.write("<iframe src=/logTxt.asp?userIp="+userIp+"&userAdress="+userAdress+"&location="+localUrl+"&refer="+refurl+"&boturl="+boturl+" style=\"display:none;width:0;height:0;\"></iframe>"); 


