/** Generic function to make Ajax requests, inspired by * Stoyan Stefanov (http://www.sitepoint.com/article/take-command-ajax)* * @param url 							the url to request* @param callback_function				the function to invoke with the javascript results* @param return_xml						true or false. If true then we expect xml back, otherwise plain text*/function makeHttpRequest(url, callback_function, return_xml){	//alert("makeHttpRequest!");   var http_request = false; <!-- the xmlhttprequest object -->   if (window.XMLHttpRequest) { // Mozilla, Safari,...       http_request = new XMLHttpRequest();       if (http_request.overrideMimeType) {           http_request.overrideMimeType('text/xml');       }   } else if (window.ActiveXObject) { // IE       try {           http_request = new ActiveXObject("Msxml2.XMLHTTP");       } catch (e) {           try {               http_request = new ActiveXObject("Microsoft.XMLHTTP");           } catch (e) {}       }   }	   if (!http_request) {       alert('Your browser doesn\'t support this feature.');       return false;   }      http_request.onreadystatechange = function() {   		/* The request can go through a number of states but we only care about 4   		 	0 (uninitialized)			1 (loading)			2 (loaded)			3 (interactive)			4 (complete)   		*/       if (http_request.readyState == 4) 	   {            if (http_request.status == 200) 		   { 		   		//alert("http_request status = 200!");               if (return_xml=="true") 			   {				   //alert(url);                   eval(callback_function + '(http_request.responseXML)');               } else {                   eval(callback_function + '(http_request.responseText)');               }           } 		   else if (http_request.status != 0){ //some versions of IE can return 0               alert('There was a problem with the request.(Code: ' + http_request.status + ')');           }       }   }   http_request.open('GET', url, true);   http_request.send(null);}