function makeRequest(url, successfunc, uiElement, method, params)
 {
 	if(typeof(method) == "undefined")
 		method = "GET";
 	if(typeof(params) == "undefined")
 		params = null;
  var http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
      http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 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('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = function() { alertContents(http_request, successfunc, uiElement, url); };
        http_request.open(method,url, true);
        if(method == "POST")
        {
        	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        	http_request.setRequestHeader("Content-length", params == null? 0: params.length);
      		http_request.setRequestHeader("Connection", "close");
        }
        http_request.send(params);
   }
    function alertContents(http_request, successfunc, uiElement, url) { 
        if (http_request.readyState == 4) 
		{
			if (http_request.status == 200) 
			{
				if(document.getElementById(uiElement) != null && http_request.responseText!="true")
                  document.getElementById(uiElement).innerHTML="";
	                if(successfunc != null)
					{
                        // evaluate the success function
						eval(successfunc +'(http_request);');
					}
			} 			
        }
    } 