
Ajax = {};

Ajax.PostContentType = 'application/x-www-form-urlencoded';
Ajax.PostParams = null;

Ajax.BuildLoadingMessage = function() {
	return '<div class="msg_container"><img src="images/progress.gif" align="absmiddle"></div>';
}

Ajax.MakeRequest = function(AMethod, AURL, ACallbackMethod) {
//siapkan objek AJAXnya
	try{
		//Opera 8.0+, Firefox, Safari
		this.Request = new XMLHttpRequest();
	} catch (e) {
		//Internet Explorer Browsers
		try{
		//versi >= 4
			this.Request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
		//versi < 4
				this.Request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
		//ga nyupport AJAX
				alert("Browser Anda tidak mendukung AJAX. Hubungi Administrator Anda.");
				return false;
			}
		}
	}

	this.Request.onreadystatechange = ACallbackMethod;
	this.Request.open(AMethod, AURL, true);
	switch (AMethod) {
		case 'GET' : 
			this.Request.send(null); 
			break;
		case 'POST' :
			this.Request.setRequestHeader("Content-Type",Ajax.PostContentType);
			this.Request.send(this.PostParams); 
	}
	
}

Ajax.CheckReadyState = function(AContainerTagID) {
	Container = document.getElementById(AContainerTagID);
	switch (this.Request.readyState) {
		case 1:
		  if (Container != null) Container.innerHTML = this.BuildLoadingMessage();
		  break;
		case 2:
		  if (Container != null) Container.innerHTML = this.BuildLoadingMessage();
		  break;
		case 3:
		  if (Container != null) Container.innerHTML = this.BuildLoadingMessage();
		  break;
		case 4:
		  AjaxUpdater.IsUpdating = false;
		  if (Container != null) Container.innerHTML = '';
		  return this.Request.status;
	}
}

Ajax.GetResponse = function() {
//kalo yang dikasih sama server dalam bentuk XML
	if (this.Request.getResponseHeader('Content-type').indexOf('xml') != -1) {
		return this.Request.responseXML.documentElement;
//kalo yang dikasih server cuman kode HTML atau text biasa		
	} else {
		return this.Request.responseText;
	}
}

