var xhrObject=null;
var xhrDebug=0;

function xhrdbg(txt)
{
	if (xhrDebug) console.info('XHR: '+txt);
}

var xhrEngines = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function xhrCreate() {
	var xhrtmp = false;
	for (var i=0;i<xhrEngines.length;i++) {
		try {
			xhrtmp = xhrEngines[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xhrtmp;
}



function xhrShowWait()
{
	document.getElementById('waitimg').style.display='block';
}


function xhrClearWait()
{
	document.getElementById('waitimg').style.display='none';
}

function xhrLoadElement(el,url,postData)
{
	xhrShowWait();
	setTimeout(function() {document.getElementById(el).innerHTML=xhrSendSync(url,postData);layout_fixup();xhrClearWait();},10);
}

function xhrSendSync(url,postData) {
	
	if (!xhrObject) return null; 
	var method = (postData) ? "POST" : "GET";
	xhrObject.open(method,url,false);
	//xhrObject.setRequestHeader('User-Agent','XMLHTTP/1.0');
	if (postData)
		xhrObject.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	
	
	xhrdbg('ready to send:'+url);
	xhrObject.send(postData);
	xhrdbg('sent...');
	
	xhrdbg('RS: '+xhrObject.readyState);
	xhrdbg('ST: '+xhrObject.status);
	if (xhrObject.readyState != 4) return null;
	if (xhrObject.status!=200) return null;
	
	return xhrObject.responseText;
}

function xhrSendForm(frm)
{
	//console.dir(frm);
	var postdata='';
	//xhrdbg('l: '+frm.elements.length);
	for (var i=0;i<frm.elements.length;i++)
	{
		//xhrdbg(i+' '+frm.elements[i].type);
		if (postdata.length>0) postdata=postdata+'&';
		if (frm.elements[i].type=="checkbox")
		{
			if (frm.elements[i].checked) postdata=postdata+frm.elements[i].name+'='+encodeURIComponent(frm.elements[i].value);
		}
		else if (frm.elements[i].type=="radio")
		{
			if (frm.elements[i].checked) postdata=postdata+frm.elements[i].name+'='+encodeURIComponent(frm.elements[i].value);
		}
		else postdata=postdata+frm.elements[i].name+'='+encodeURIComponent(frm.elements[i].value);
	}
	xhrdbg(postdata);
	return xhrSendSync(frm.action,postdata);
	
}

function xhrPostAppend(postdata,fld,val)
{
	if (postdata.length>0) postdata=postdata+'&';
	postdata+=fld+'='+encodeURIComponent(val);
	return postdata;
}

xhrdbg('init');
xhrObject=xhrCreate();
if (xhrObject) xhrdbg('ok'); else xhrdbg('err');
