function GetXmlHttpObject(handler)
{ 
	var objXmlHttp=null

	if (navigator.userAgent.indexOf("Opera")>=0)
	{
		alert("This example doesn't work in Opera") 
		return; 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0)
	{ 
		var strName="Msxml2.XMLHTTP"
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
		{
			strName="Microsoft.XMLHTTP"
		} 

		try
		{ 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler 
			return objXmlHttp
		} 
		catch(e)
		{ 
			alert("Error. Scripting for ActiveX might be disabled") 
			return 
		} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0)
	{
		objXmlHttp=new XMLHttpRequest()
		objXmlHttp.onload=handler
		objXmlHttp.onerror=handler 
		return objXmlHttp
	}
} 


function UrlDecode(str){
	var i,temp;
	var result="";
	for(i=0;i<str.length;i++){
		if(str.charAt(i)=="%"){
			if(str.charAt(++i)=="u"){
				temp=str.charAt(i++) + str.charAt(i++) + str.charAt(i++) + str.charAt(i++) + str.charAt(i);
				result += unescape("%" + temp);
			}else{
				temp = str.charAt(i++) + str.charAt(i);
				if( eval("0x"+Trim(temp)) <= 160 ){
					result += unescape("%" + temp);
				}else{
					temp += str.charAt(++i) + str.charAt(++i) + str.charAt(++i);
					result += Decode_unit("%" + temp);
				}
			}
		}else{
			result += str.charAt(i);
		}
	}
	return result;
}

function Decode_unit(str){
	var p,q = "";
	if(str.GetCount("%")!=2)return str;
	p=eval("0x" + str.split("%")[1]);
	q=eval("0x" + str.split("%")[2]);
	if(p<160 || q<160)return unescape(str);
	str=str.replace(/%/g,"");
	execScript("temp=&H"+str, "vbscript");
	execScript("result=chr("+temp+")", "vbscript");
	return result;
}

function UrlEncode(str){ 
 var i,temp,p,q; 
 var result=""; 
 for(i=0;i<str.length;i++){ 
  temp = str.charCodeAt(i); 
  if(temp>=0x4e00){ 
   execScript("ascCode=hex(asc(\""+str.charAt(i)+"\"))", "vbscript"); 
   result+=ascCode.replace(/(.{2})/g, "%$1"); 
  }else{ 
   result+=escape(str.charAt(i)); 
  } 
 } 
 return result; 
}
function gb2utf8(data){
	var glbEncode = [];
	gb2utf8_data = data;
	execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
	var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
	t=t.split("@");
	var i=0,j=t.length,k;
	while(++i<j) {
		k=t[i].substring(0,4);
		if(!glbEncode[k]) {
			gb2utf8_char = eval("0x"+k);
			execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript");
			glbEncode[k]=escape(gb2utf8_char).substring(1,6);
		}
		t[i]=glbEncode[k]+t[i].substring(4);
	}
	gb2utf8_data = gb2utf8_char = null;
	return unescape(t.join("%"));
}
