function DoCallback(data)
{
	data = data.replace("&amp;", "\&");
	data = data.replace("/", "%2F");
	data = data.replace("+", "%2B");
	
// branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        //req.onreadystatechange = processReqChange;
        //req.open('POST', url, false);
		
		req.open("post", url, false);
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send(data);
		
		if((req.readyState == 4) && (req.status == 200))
		 eval(what);
		 else  alert('There was a problem retrieving the XML data: ' + req.responseText);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject('Microsoft.XMLHTTP')
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open('POST', url, true);
            req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            req.send(data);
        }
    }
}

function processReqChange() {
    // only if req shows 'loaded'
    if (req.readyState == 4) {
        // only if 'OK'
        if (req.status == 200) {
            eval(what);
        } else {
            alert('There was a problem retrieving the XML data: ' +
                req.responseText);
        }
    }
}