function createRequestObject() {
    var ro;
    var browser = navigator.appName;
	
	try
	{
		if(browser == "Microsoft Internet Explorer"){
			ro = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			ro = new XMLHttpRequest();
		}
	}
	catch (e)
	{
		ro = null;
	}
	finally
	{
		return ro;
	}
}

var http = createRequestObject();
var cbFunc = 0;

function sndReq(callbackFunc, vform, action, queryString) {
//	document.busyIcon.src = "/images/busy.gif";
//	document.busyIcon.width = document.busyIcon.height = 22;

	if (http == null)
		return null; // no Ajax support

	if (queryString != "")
		http.open('get', action + "?" + queryString);
	else
	{
	    http.open('post', action);
		http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	}
    http.onreadystatechange = handleResponse;
	cbFunc = callbackFunc;

	if (queryString == "") // POST method
	{
		sendString = "";
		for (i = 0; i < vform.elements.length; ++ i)
		{
			elem = vform.elements[i];
	
			if ((elem.type == "checkbox" && elem.checked == true) || (elem.type != "checkbox" && elem.type != "radio"))
				sendString += elem.name + "=" + escape(elem.value) + "&";
			else if (elem.type == "radio")
			{
				if (elem.checked == true)
					sendString += elem.name + "=" + escape(elem.value) + "&"; 
			}
		}
		sendString += "end=end";
		http.send(sendString);
	}
	else // GET method
		http.send(null);
	
	return 1;  // OK, no probs.
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
		var funcName = http.callbackFunc;
        var update = new Array();

		if (response.search(/^ERR:/) >= 0)
		{
			document.getElementById("errorDiv").innerHTML = '<p class="p_error">' + response.replace(/^ERR:/, "") + '</p>';
		}
		else if (response == "OK")
		{
			/*requestSection = document.getElementById("requestDiv");
			okSection = document.getElementById("okDiv");
			
			requestSection.style.display = "none";
			okSection.style.display = "inline";*/
			
			// execute additional actions if the function is present
			if (eval("window." + cbFunc))
				eval(cbFunc + "('')");
		}
		else if (response.search(/^OKRET:/) >= 0)
		{
			vals = response.replace(/^OKRET:/, "");
			finalstr = vals.replace(/'/g, "\\'");
			
			if (eval("window." + cbFunc))
				eval(cbFunc + "('" + finalstr + "')");
		}
		else  // some kinda error.. hmm
			alert(response);
		
		//document.busyIcon.width = document.busyIcon.height = 0;
		//document.busyIcon.src = "/images/layout/spacer.gif";
    }
}