// µ¿ÀÛ °¡´ÉÇÑ ºê¶ó¿ìÀú ÆÇÁ¤

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)
}


// XMLHttpRequest ¿ÀºêÁ§Æ® »ý¼º

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;
	}
}


// ¼Û¼ö½Å ÇÔ¼ö

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 chkAjaBrowser();
	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-urlencode ¼³Á¤
	setEncHeader(oj);

	// µð¹ö±×
	//alert("////jslb_ajaxxx.js//// \n data:"+data+" \n method:"+method+" \n url:"+url+" \n async:"+async);

	// send ¸Þ¼Òµå
	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!="") {
			//&¿Í =·Î ÀÏ´Ü ºÐÇØÇØ¼­ encode
			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
}