var intStatusCode = null;

function zAjax_LoadPage(strURL,objValue,intStyle) {
	var objXMLHTTP = zAjax_InitObject();
	
	if (zAjax_Check(objXMLHTTP,strURL)) {
		objXMLHTTP.onreadystatechange = function() {
			var strContent = zAjax_ReadingBuffer(objXMLHTTP);

			zAjax_SetValue(objValue,strContent,intStyle);
		}
		
		try {
			zAjax_SetValue(objValue,"Loading data ...",0);
			objXMLHTTP.open("GET",strURL,true);
			objXMLHTTP.send(null);
		} catch(e) {
			zAjax_SetValue(objValue,"",0);
		}
	}

	return(null);
}

function zAjax_PageExists(strURL) {
	var bolResult = false;
	var objXMLHTTP = zAjax_InitObject();
	
	if (zAjax_Check(objXMLHTTP,strURL)) {
		objXMLHTTP.onreadystatechange = function() {
			var strContent = zAjax_ReadingBuffer(objXMLHTTP);

			if (strContent != "" && strContent != null) {
				bolResult = true;
			}
		}
		
		try {
			objXMLHTTP.open("GET",strURL,true);
			objXMLHTTP.send(null);
		} catch (e) {
			
		}
	}
	
	return(bolResult);
}

function zAjax_InitObject() {
	var objAjax = null;
	
	if (window.XMLHttpRequest) {
		objAjax = new XMLHttpRequest();
		
		if (objAjax.overrideMimeType) {
			objAjax.overrideMimeType("text/xml");
		}
	} else if (window.ActiveXObject) {
		try {
			objAjax = new ActiveXObject("MSXML2.XMLHTTP");
		} catch (e) {
			try {
				objAjax = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				
			}
		}
	}
	
	return(objAjax);
}

function zAjax_Check(objReading,strURL) {
	var bolResult = true;
	
	if (objReading == null) {
		zAjax_ShowMessage("Failed to init initialize the ActiveX Object.");
		bolResult = false;
	} else if (strURL == "" || strURL == null) {
		zAjax_ShowMessage("The URL is incorrect!");
		bolResult = false;
	}
	
	return(bolResult);
}

function zAjax_ReadingBuffer(objReading) {
	var strContent = null;
	
	if (objReading.readyState == 4) {
		zAjax_SetStatus(objReading.status);
		if ((objReading.status >= 200 && objReading.status <300) || objReading.status == 0 || objReading.status == undefined) {
			strContent = objReading.responseText;
		} else {
			zAjax_Error(objReading.status);
		}
	}
			
	return(strContent);
}

function zAjax_SetStatus(intStatus) {
	intStatusCode = intStatus;
}

function zAjax_GetStatus() {
	return(intStatusCode);
}

function zAjax_Error(intStatus) {
	switch (intStatus) {
		case 302:
			zAjax_ShowMessage("The object has been moved.");
			break;
		case 400:
			zAjax_ShowMessage("HTTP Error 400 - Bad Request.");
			break;
		case 401:
			zAjax_ShowMessage("HTTP Error 401 - Unauthorized.");
			break;
		case 403:
			zAjax_ShowMessage("HTTP Error 403 - Forbidden.");
			break;
		case 404:
			zAjax_ShowMessage("HTTP Error 404 - Web site not found.");
			break;
		case 500:
			zAjax_ShowMessage("HTTP Error 500 - Internal server error.");
		default:
			zAjax_ShowMessage("Failure to do the operation.");
			break;	
	}
	
	return(null);
}

function zAjax_SetValue(objContent,strContent,intStyle) {
	var objTarget = document.getElementById(objContent);
	
	if (objTarget) {
		if (strContent != "" && strContent != null) {
			if (intStyle != 0) {
				strContent = zAjax_FormatContent(strContent,intStyle);
			}
			objTarget.innerHTML = strContent;
		}
	}
	
	return(null);
}

function zAjax_ShowMessage(strMessage) {
	alert(strMessage);
}

function zAjax_FormatContent(strContent,intStyle) {
	var strResult = strContent;
	
	if (strResult != "" && strResult != null) {
		if (intStyle == 1) {
			var strTemp = strContent.toLowerCase();
			var intStartPosition = strTemp.indexOf("<body");
			var intEndPosition = 0;
			if (intStartPosition != -1) {
				intStartPosition = strTemp.indexOf(">",intStartPosition) + 1;
				intEndPosition = strTemp.indexOf("</body>",intStartPosition);
				
				strResult = strResult.substring(intStartPosition,intEndPosition);
			}
		}
	}
	
	return(strResult);
}