//Global variables
var isRunning = false;				// Is the AJAX core working on something already?
var http = _initHTTPObject();		// The XMLHttp Object
var returnText = null;
var AJAXError = false;
var AJAXDetailError = null;


function _initHTTPObject ( )
{
	var xmlhttp;
	if ( !xmlhttp && typeof XMLHttpRequest != 'undefined' ) {
		try {
			xmlhttp = new XMLHttpRequest();
			xmlhttp.overrideMimeType("text/xml");
		}
		catch ( e ) {
			xmlhttp = false;
		}
		if(xmlhttp !== false) return xmlhttp;
	} else {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

	return xmlhttp;
}

//FUNCTION: called on state change of http. Checks for data
function _stateChange( returnObject ) {
	if ( http.readyState == 4 ) {
		if ( http.status == 200 ) {
			//The document is ready for display
			returnText = http.responseText;
			AJAXError = false;
			isRunning = false;
		} else {
			AJAXError = "The Application could not connect to the site";
			AJAXDetailError = "The XMLHttp Object returned the status code: " + http.status;
			isRunning = false;
		}
	}
	
	if ( AJAXError ) {
		returnObject.innerHTML = AJAXError + " : " + AjaxDetailError;
	} else {
		returnObject.innerHTML = returnText;
	}
}

function getAJAXpage(url, object) {
	if ( !http ) 
		http = _initHTTPObject();
	
	if ( !isRunning && http ) {
		http.open ( "GET" , url , true );
		http.onreadystatechange = function () { _stateChange( object ); };
		isRunning = true;
		http.send ( null );
	}
}

//FUNCTION: called on state change of http. Checks for data (Form one)
function _formStateChange( returnObject ) {
	if ( http.readyState == 4 ) {
		if ( http.status == 200 ) {
			//The document is ready for display
			returnText = http.responseText;
			AJAXError = false;
			isRunning = false;
		} else {
			AJAXError = "The Application could not connect to the site";
			AJAXDetailError = "The XMLHttp Object returned the status code: " + http.status;
			isRunning = false;
		}
	}
	
	if ( AJAXError ) {
		returnObject.innerHTML = AJAXError + " : " + AjaxDetailError;
	} else {
		returnObject.innerHTML = returnText;
	}
}

function submitForm(url, object, parameters) {
	if ( !http ) 
		http = _initHTTPObject();
	
	if ( !isRunning && http ) {
		http.open ( "POST" , url , true );
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.setRequestHeader("Content-length", parameters.length);
		http.setRequestHeader("Connection", "close");
		http.onreadystatechange = function () { _formStateChange( object ); };
		isRunning = true;
		http.send(parameters);
	}else return false;
	
	return true;
}

