var oBL_Http = null;
var oBL_HttpRetArray = null;

function HttpClass(callUrl, retFunct, suppressErrors) {		
	this.callUrl = callUrl;		
	this.OpenHttp = 
		function() {
			var http, httpRetArray;

			http = GetHttpObject();
			if (http != null) {
				http.open("GET", callUrl);
				http.onreadystatechange = 
					function() {
						if (http.readyState == 4) {
							if (http.responseText.length > 0) {
								var httpRetArray = http.responseText.split("|");

								if (httpRetArray.length > 1) {
									var regExp = new RegExp("[\"]", "g");
									var data = httpRetArray[1].replace(regExp, "\\\"");

									eval(retFunct + "(" + httpRetArray[0] + ", \"" + data + "\");");
								}else {
									if (suppressErrors == false) {
										alert(oBL_AJAX_Pub_Settings.ErrMsg_Processing);
									}
								}
							}else {
								if (suppressErrors == false) {
									alert(oBL_AJAX_Pub_Settings.ErrMsg_NoResult);
								}
							}
						}
					};
				http.send(null);
			}else {
				if (suppressErrors == false) {
					alert(oBL_AJAX_Pub_Settings.ErrMsg_Communicate);
				}
			}				
		};
	this.retFunct = retFunct;
	this.suppressErrors = suppressErrors;
	
	function GetHttpObject() {
		try {
			// Firefox, Opera 8.0+, Safari
			return new XMLHttpRequest();
		}catch (e) {
			// Internet Explorer
			try {				
				return new ActiveXObject("Msxml2.XMLHTTP");
			}catch (e) {
				try {
					return new ActiveXObject("Microsoft.XMLHTTP");
				}catch (e) {
					return null;
				}
			}
		}
		return null;
	}
}

function HttpObjectIni() {
	if (oBL_Http == null) {
		try {
			// Firefox, Opera 8.0+, Safari
			oBL_Http = new XMLHttpRequest();
		}catch (e) {
			// Internet Explorer
			try {
				oBL_Http = new ActiveXObject("Msxml2.XMLHTTP");
			}catch (e) {
				try {
					oBL_Http = new ActiveXObject("Microsoft.XMLHTTP");
				}catch (e) {
					oBL_Http = null;
				}
			}
		}
	}
}

function HttpObjectIsReady(ini) {
	if (oBL_Http != null) {
		return true;
	}else if (ini) {
		HttpObjectIni();
		return HttpObjectIsReady(false);
	}else {
		alert(oBL_AJAX_Pub_Settings.ErrMsg_Communicate);
		return false;				
	}
}

function HttpObjectVerifyReturn() {
	if (oBL_Http.readyState == 4) {
		if (oBL_Http.responseText.length > 0) {
			oBL_HttpRetArray = oBL_Http.responseText.split("|");				
			
			if (oBL_HttpRetArray.length > 1) {
				if (parseInt(oBL_HttpRetArray[0], 10) > 0) {
					return 1;
				}else {						
					return -1;
				}
			}else {
				alert(oBL_AJAX_Pub_Settings.ErrMsg_Processing);
				return -2;
			}
		}else {
			alert(oBL_AJAX_Pub_Settings.ErrMsg_NoResult);
			return -3;
		}
	}else {
		return 0;
	}
}