function chkAjaBrowser()
{
    var a,ua = navigator.userAgent;
    this.bw= { 
	safari    : ((a=ua.split('AppleWebKit/')[1])?a.split('(')[0].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.516, 
	license	: 'Public Domain',
	author	: 'Toshiro Takahashi http://jsgt.org/mt/01/',memo:''
    };
    function sendRequest(callback,data,method,url,async,sload,user,password)
    {
	var GET=method.toUpperCase()=='GET',
	    oj = createHttpRequest();
	if( oj == null ) return null;
	
	if((sload)?sload:false)url +=((url.indexOf('?')==-1)?'?':'&')+'t='+(new Date()).getTime();
	
	var bwoj = new chkAjaBrowser(),
	    o  = bwoj.bw.opera,
	    s  = bwoj.bw.safari,
	    k = bwoj.bw.konqueror,
	    m  = 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(o || s || m){
	    oj.onload = function () { callback_onload(oj);oj.abort(); }
	} else {
	    
	    oj.onreadystatechange =function () 
	    {
		if ( oj.readyState == 4 ){
		    callback_onload(oj);oj.abort();
		}
	    }
	}
	
	data = uriEncode(data,url);
	if(GET) {
	    url += ((url.indexOf('?')==-1)?'?':'&')+data;
	}
	
	oj.open(method,url,async,user,password);
	
	if(!!callback_onbeforsetheader)callback_onbeforsetheader(oj);
	
	setEncHeader(oj);
	
	oj.send(data);
	
	function setEncHeader(oj){
	    
	    if(!o||typeof oj.setRequestHeader == 'function'){
		oj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	    }
	    return oj;
	}
	
	function uriEncode(data,url){
	    var d = [];
	    if(typeof data=='object'){
		for(var i in data)p(i,data[i]);
	    } else if(typeof data=='string'){
		if(data=='')return '';
		if(data.charAt(0)=='&')data=data.substring(1,data.length)
		var datas = data.split('&');
		for(var i=0;i<datas.length;i++)
		{
		    var dataq = datas[i].split('=');
		    p(dataq[0],dataq[1]);
		}
	    } 
	    function p(k,v){d.push( encodeURIComponent(k) + "=" + encodeURIComponent(v))};
	    return d.join("&");
	}
	
	return oj;
    }
    
