

/*----------
| AJAX Library Functions... 
----------*/



	
function createRequestObject () {
	// Define request object as requestObject...
	var requestObject = false;	
	// Setup request object for Mozilla, Safari, etc...
    if (window.XMLHttpRequest) { 			
        requestObject = new XMLHttpRequest();
        if (requestObject.overrideMimeType) {
            requestObject.overrideMimeType('text/xml');
        }		
	// Setup request object for IE...		
    } else if (window.ActiveXObject) {
        try {
            requestObject = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            try {
                requestObject = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e) {}
        }
    }	
	// If unable to create a request object...
    if (!requestObject) {		
		// Display error message...
        window.defaultStatus = 'AJAX Error: Could not create an XMLHTTP instance';
        return false;
    } else {
		return requestObject;
	}
}

function AJAX_Pull(url, callback) {
	serverPull('TEXT', url, callback);
}	

function AJAX_Pull_XML(url, callback) {
	serverPull('XML', url, callback);
}	

function serverPull(returnType, url, callback) {	
	// Get a request object...
	httpRequest = createRequestObject();	
	// Make the actual request to the server...
    httpRequest.open('GET', url, true);

	 httpRequest.send(null);		
	// Deal with the server response...
	httpRequest.onreadystatechange = function() {				
		// If response recieved...
        if (httpRequest.readyState == 4) {				
			// If request successfull...
	    	if (httpRequest.status == 200) {
				if (returnType == 'TEXT') {
					callback(httpRequest.responseText);
				} else if (returnType == 'XML') {
					callback(httpRequest.responseXML);
				}
			} else {
         	   	window.defaultStatus = 'AJAX Error: Server request failed... Status: ' + httpRequest.status;
	        }					
        }
	}
}

function AJAX_Push(url, queryString, callback) {
	serverPush('TEXT', url, queryString, callback);
}

function AJAX_Push_XML(url, queryString, callback) {
	serverPush('XML', url, queryString, callback);
}

function serverPush(returnType, url, queryString, callback) {
	// Get a request object...
	httpRequest = createRequestObject();	
	// Post the data...
	httpRequest.open('POST', url, true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');	
	httpRequest.send(queryString);
	// Deal with server response...
	httpRequest.onreadystatechange = function() {			
		// If response recieved...
        if (httpRequest.readyState == 4) {		
			if (returnType == 'TEXT') {
				callback(httpRequest.responseText);
			} else if (returnType == 'XML') {
				callback(httpRequest.responseXML);
			}		
        }
	}
}

/*----------
| End of AJAX Library Functions... 
----------*/