
/**
 * @module 아작스 서고
 * @author RyongSu Kim <blond_***@hotmail.com>
 * @description: bm_ajax(Blond Mini Ajax Library)
 * @date: 2009년 2월 27일~28일
 */
/**
 * Version:
 * 		v1.0.4		GET,POST parameter add (파라메터를 문자렬로 처리)
 * 		v1.0.2		GET, POST method
 * 		v1.0.0		Core
 * In the Future
 * 		POST파라메터 넘길 때 Form태그의 Elements들을 배렬로 넘겨주는 처리
 * 		GET파라메터에서 배렬형식이 Key=>Value형식으로 되도록 처리
 */

// var rootdomain = "http://" + window.location.hostname

/**
 * 모듈명: 아작스 요청을 진행하는 함수이다.
 * 파라메터:
 * 		method	= {'GET','POST'}
 * 		url		: 요청경로
 * 		calback	: 응답받을 함수
 * 		params	: [배렬] 파라메터로 넘기는 인수들
 */
function ajaxrequest(arg) {
	
	var url = arg['url'];
	if ( !url ) { return;} 
	var method = arg['method'] == 'POST'?'POST':'GET';	// request method
	var callback = arg['callback'];
	var page_request = false
	var parameters = [];
	if ( arg['params'] ) parameters = arg['params'];

	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject) { // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} catch (e) {
			try {
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			} catch (e) {
			}
		}
	} else
		return false
	page_request.onreadystatechange = function() {
		if ( callback ) {
			eval(callback+'(page_request)');
		}
	}
	if ( method == 'GET' ) {
		var urlconnectchar = (url.indexOf("?")==-1?"?":"&");
/**		if ( isArray(parameters) && parameters.length > 0 ) {
			for ( var iparam in parameters ) {
				url += urlconnectchar + escape(iparam) + "=" + escape(parameters[iparam]);
				urlconnectchar = "&";
			}
		}
**/
		if ( parameters.length > 0 ) {
			url += urlconnectchar + parameters;
			urlconnectchar = "&";
		}
		url += urlconnectchar + "ajaxcachebust="+(new Date()).getTime();

		page_request.open('GET', url, true)
		page_request.send(null)
	} else {		// in case POST
		page_request.open('POST', url, true);
		page_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");	// ; charset=UTF-8;"
		page_request.setRequestHeader("Content-length", parameters.length);
		page_request.setRequestHeader("Connection", "close");
		page_request.send(parameters);
	}
}
// function isArray(o) { return o != null && typeof o == "object" && > typeof o.push == "function" }

/**
function ajaxresponsesample(rp) {
	if (rp.readyState == 4) {
		if ( (rp.status == 200 || window.location.href.indexOf("http") == -1)) {
			alert('molla response okay');
//			molla_object.innerHTML = rp.responseText;
//			molla_object.innerHTML = rp.responseXML;
		} else {
			alert('fail: '+rp.status);
		}
	}
}
**/

// 실례코드
// ajaxrequest({method:'GET',callback:'ajaxresponsesample',url:'index.html'});
// ajaxrequest({method:'GET',callback:'ajaxresponsesample',url:'index.html', params:['hey','tempvalue','heyvalue','toy','story']});
// ajaxrequest({method:'GET',callback:'ajaxresponsesample',url:'index.html?heyjim=jim', params:'hey=teiji&sarang=toy'});
//var tt=[];
//tt['hey'] = 'story';
//tt['jing'] = 'sorry';
//ajaxrequest({method:'GET',callback:'ajaxresponsesample',url:'index.html', params:tt});


