function chkAjaBrowser(){
var a,ua=navigator.userAgent;
this.bw={
safari:((a=ua.split('AppleWebKit/')[1])?a.split('.')[0]:0)>=124,konqueror:((a=ua.split('Konqueror/')[1])?a.split(';')[0]:0)>=3.3,mozes:((a=ua.split('Gecko/')[1])?a.split(' ')[0]:0)>=20011128,opera:(!!window.opera)&&((typeof XMLHttpRequest)=='function'),msie:(!!window.ActiveXObject)?(!!createHttpRequest()):false};return(this.bw.safari||this.bw.konqueror||this.bw.mozes||this.bw.opera||this.bw.msie)}function createHttpRequest(){if(window.XMLHttpRequest){return new XMLHttpRequest();}else if(window.ActiveXObject){try{return new ActiveXObject('Msxml2.XMLHTTP');}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP');}catch(e2){return null;}}}else{return null;}}sendRequest.README={url:'http://jsgt.org/ajax/ref/lib/ref.htm',name:'sendRequest',version:0.51,license:'Public Domain',author:'Toshiro Takahashi http://jsgt.org/mt/01/',memo:''};
function sendRequest(callback,data,method,url,async,sload,user,password){
var oj=createHttpRequest();
if(oj==null)return null;
var sload=(!!sendRequest.arguments[5])?sload:false;
if(sload||method.toUpperCase()=='GET')url+='?';
if(sload)url=url+'t='+(new Date()).getTime();
var bwoj=new chkAjaBrowser();var opera=bwoj.bw.opera;
var safari=bwoj.bw.safari;var konqueror=bwoj.bw.konqueror;
var mozes=bwoj.bw.mozes;
if(typeof callback=='object'){
var callback_onload=callback.onload;
var callback_onbeforsetheader=callback.onbeforsetheader}else{var callback_onload=callback;
var callback_onbeforsetheader=null;}if(opera||safari||mozes){oj.onload=function(){callback_onload(oj);}}else{oj.onreadystatechange=function(){if(oj.readyState==4){callback_onload(oj);}}}data=uriEncode(data,url);if(method.toUpperCase()=='GET'){url+=data}oj.open(method,url,async,user,password);if(!!callback_onbeforsetheader)callback_onbeforsetheader(oj);setEncHeader(oj);oj.send(data);function setEncHeader(oj){var contentTypeUrlenc='application/x-www-form-urlencoded; charset=UTF-8';if(!window.opera){oj.setRequestHeader('Content-Type',contentTypeUrlenc);}else{if((typeof oj.setRequestHeader)=='function')oj.setRequestHeader('Content-Type',contentTypeUrlenc);}return oj}function uriEncode(data,url){var encdata=(url.indexOf('?')==-1)?'?dmy':'';if(typeof data=='object'){for(var i in data)encdata+='&'+encodeURIComponent(i)+'='+encodeURIComponent(data[i]);}else if(typeof data=='string'){if(data=='')return'';var encdata='';var datas=data.split('&');
for(var i=1;i<datas.length;i++){
var dataq=datas[i].split('=');
encdata+='&'+encodeURL2(dataq[0])+'='+encodeURL2(dataq[1]);
}};return encdata;}return oj}
function encodeURL2(str){
    var s0, i, s, u;
    s0 = "";                // encoded str
    for (i = 0; i < str.length; i++){   // scan the source
        s = str.charAt(i);
        u = str.charCodeAt(i);          // get unicode of the char
        if (s == " "){s0 += "+";}       // SP should be converted to "+"
        else {
            if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){       // check for escape
                s0 = s0 + s;            // don't escape
            }
            else {                  // escape
                if ((u >= 0x0) && (u <= 0x7f)){     // single byte format
                    s = "0"+u.toString(16);
                    s0 += "%"+ s.substr(s.length-2);
                }
                else if (u > 0x1fffff){     // quaternary byte format (extended)
                    s0 += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else if (u > 0x7ff){        // triple byte format
                    s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else {                      // double byte format
                    s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
            }
        }
    }
    return s0;
}

