/**
 *	Collection of general AJAX utilities
 */
 var lmbAJAXUtil = {
 	/**
 	 *	Sends HTTP POST request
 	 *	callback - function called upon successful completion.  
 	 *			   It passed 2 parameters back
 	 *				1. response as XML
	 *				2. response as text
	 *	failureCallback - function called upon http failure.
	 *			   It passed 2 parameters back
 	 *				1. error code
	 *				2. error text
	 */
 	sendPostRequest : function(url, data, asynch, callback, failureCallback){
 		var request = this.createHTTPRequest();
 		request.open("POST", url, asynch);
 		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 		if(asynch){
 			request.onreadystatechange = function(){
 				if(request.readyState == 4){
 					if(request.status == 200){
 						callback(request.responseXML, request.responseText);
 					}
 					else {
 						failureCallback(request.status, request.statusText);
 					}
 				}
 			}
 		}
 		request.send(data);
 		if(!asynch){
 			if(request.status == 200){
				callback(request.responseXML, request.responseText);
			}
			else {
				failureCallback(request.status, request.statusText);
			}
 		}
 	},
 	/**
 	 *	Sends HTTP GET request
 	 *	callback - function called upon successful completion.  
 	 *			   It passed 2 parameters back
 	 *				1. response as XML
	 *				2. response as text
	 *	failureCallback - function called upon http failure.
	 *			   It passed 2 parameters back
 	 *				1. error code
	 *				2. error text
	 */
 	sendGetRequest : function(url, asynch, callback, failureCallback){
 		var request = this.createHTTPRequest();
 		request.open("GET", url, asynch);
 		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 		if(asynch){
 			request.onreadystatechange = function(){
 				if(request.readyState == 4){
 					if(request.status == 200){
 						callback(request.responseXML, request.responseText);
 					}
 					else {
 						failureCallback(request.status, request.statusText);
 					}
 				}
 			}
 		}
 		request.send("");
 		if(!asynch){
 			if(request.status == 200){
				callback(request.responseXML, request.responseText);
			}
			else {
				failureCallback(request.status, request.statusText);
			}
 		}
 	},
	/**
	 *	Creates XMLHttpRequest depending on the browser implementation
	 */
 	createHTTPRequest : function(){
 		try { return new XMLHttpRequest(); } catch(e) {}
	 	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
		try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
		return null;
 	}
 }