﻿	var Ajax = function() {
	}
	
	Ajax.prototype.getXmlHttpRequest = function() {
		var xmlhttp = false;
	
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest();
		} else {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
			
		return xmlhttp;
	}
	
	Ajax.prototype.callByAjax = function(url, callbackHandler) {
		try {
			var xmlhttp = this.getXmlHttpRequest();
			xmlhttp.open("GET", url , true);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4) {
					if (xmlhttp.status == 200 || xmlhttp.status==0) {
						var data = xmlhttp.responseText;
						callbackHandler(data);
					} else {
						alert("["+xmlhttp.status+"]Ajax request failed");
					}
				}
			}
			xmlhttp.send(null);
		} catch (e) {
			alert(e.message);
		}
		return false;
	}
	
	Ajax.prototype.callByAjaxWithId = function(url, callbackHandler, id) {
		try {
			var xmlhttp = this.getXmlHttpRequest();
			xmlhttp.open("GET", url , true);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4) {
					if (xmlhttp.status == 200) {
						var data = xmlhttp.responseText;					
						callbackHandler(data, id);
					} else {
						alert("["+xmlhttp.status+"]Ajax request failed");
					}
				}
			}
			xmlhttp.send(null);
		} catch (e) {
			alert(e.message);
		}
		return false;
	}
	
	Ajax.prototype.callByAjaxWithIdToPost = function(url, callbackHandler, id, params) {
		try {
			var xmlhttp = this.getXmlHttpRequest();			
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4) {
					if (xmlhttp.status == 200) {
						var data = xmlhttp.responseText;					
						callbackHandler(data, id);
					} else {					
						alert("Ajax request failed");
					}
				}
			}
			xmlhttp.open("POST", url , true);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlhttp.send(params);	
		} catch (e) {
			alert(e.message);
		}
		return false;
	}
