	/**
	* Ajax 가 지원되는 브라우져인지 체크한다.
	*
	* @sample ) if( chkAjaxBrowser() ){ //지원 }
	* @sample ) obj = new chkAjaxBrowser(); if( obj.bw.msie ) { //Ms IE 코드 }
	* @return boolean
	*/
	function chkAjaxBrowser()
	{
		var a,ua = navigator.userAgent;
		this.bw= {
			safari		: (( a=ua.split('AppleWwebKit/')[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)
	}
	
	/** 
	* XMLHttpRequest 오브젝트 생성
	* @sample ) obj = createHttpRequest()
	* @return ) XMLHttpRequest Object(Instance)
	*/
	function createHttpRequest()
	{
		if( window.ActiveXObject ){
			//Win e4, e5, e6용
			try{
				return new ActiveXObject("Msxml2.XMLHTTP");
			}catch (e){
				try{
					return new ActiveXObject("Microsoft.XMLHTTP");
				}catch (e2){
					return null;
				}
			}
		} else if ( window.XMLHttpRequest ){
			//Win Mac Linux m1, f1, o8 Mac s1 Linux k3 용
			return new XMLHttpRequest();
		} else {
			return null;
		}
	}
	
	/**
	* 송수신 함수
	* @sample ) sendRequest( onloaded, '&prog=1', 'POST', './test.jsp', true, true )
	* @param callback		송수신시 사용될 함수 이름
	* @param data			송신하는 파라메터
	* @param method			post, get ...
	* @param url			URL
	* @param async			비동기 true, 동기 false
	* @param sload			수퍼 로드 true로 강제 생략 또는 false는 기본
	* @param user			인증 페이지용 사용자 이름
	* @param password		인증 페이지용 암호
	*/
	function sendRequest( callback, data, method, url, async, sload, user, password )
	{
		//XMLHttpRequest  오브젝트 생성
		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 chkAjaxBrowser();
		var opera = bwoj.bw.opera;
		var safari = bwoj.bw.safari;
		var konqueror = bwoj.bw.konqueror;
		var mozes = bwoj.bw.mozes;
		
		//송신처리
		if( opera || safari || mozes ) {
			oj.onload = function() { callback(oj); }
		} else {
			oj.onreadystatechange = function()
			{
				if( oj.readyState == 4 ) {
					callback(oj);
				}
			}
		}
		
		//URL 인코딩
		data = uriEncode(data)
		if( method.toUpperCase() == 'GET'){
			url += data
		}
		
		//open 메소드
		oj.open( method, url, async, user, password);
		
		//헤더 application/x-www-form-urlencoded 설정
		setEncHeader(oj)
		
		//alert("/////jslb_ajax.js///// \n data:"+ data + "\n method:"+method+" \n url:" + url + " \n async:" + async);
		
		oj.send( data );


		
		//URI 인코딩 헤더 설정
		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;
		}
		
		//URL 인코딩
		function uriEncode(data){
			if( data != "" ) {
				var encdata = '';
				var datas = data.split('&');
				for( i = 1; i < datas.length; i++ ) {
					var dataq = datas[i].split('=');
					encdata += '&' + encodeURIComponent(dataq[0])+'='+ encodeURIComponent(dataq[1]);
				}
			} else {
				encdata = "";
			}
			return encdata;
		}
		
		
		return oj;
	}
	
	
	
	