function makeRequest(url,fnname,extraarg) {
    var httpRequest;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
            // See note below about this line
        }
    } 
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) {
                       try {
                            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                           } 
                         catch (e) {}
                      }
                                   }

    if (!httpRequest) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    httpRequest.onreadystatechange = function() { returnAjaxValue(fnname,httpRequest,extraarg); };
    httpRequest.open('GET', url, true);
    httpRequest.send('');
}

function returnAjaxValue(fnname,httpRequest,extraarg) {
    if(httpRequest.readyState == 4) {
	    var val=null;
        if (httpRequest.status == 200) {
	        val=httpRequest.responseText;
        }
		eval(fnname+'(val,extraarg,'+httpRequest.status+')');
    }
}

function ajaxSetInnerHTML(domid,url) {
	var obj=document.getElementById(domid);
	if(obj==null) {
		window.alert('Client:ajaxSetInnerHTML:Cannot find domid '+domid);
	} else {
		obj.innerHTML='<img src="/images/ajax.gif" width="24" height="24" alt="ajax waiting">';
	}
	makeRequest(url,'returnAjaxSetInner',domid);
}

function returnAjaxSetInner(html,domid) {
	var obj=document.getElementById(domid);
	if(obj==null) {
		window.alert('Client:returnAjaxSetInner:Cannot find domid '+domid);
	} else {
		obj.innerHTML=html;
	}
}

