function GetXmlHttpObject(handler)
{
	var objXmlHttp = null;

	if (navigator.userAgent.indexOf("Opera") >= 0) {
		alert("This example doesn't work in Opera")
		return;
	}
	if (navigator.userAgent.indexOf("MSIE")>=0) {
		var strName = "Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5") >= 0)
		{
			strName = "Microsoft.XMLHTTP";
		}

		try {
			objXmlHttp = new ActiveXObject(strName);
			objXmlHttp.onreadystatechange = handler;
			return objXmlHttp;
		}
		catch(e) {
			alert("Error. Scripting for ActiveX might be disabled")
			return;
		}
	}

	if (navigator.userAgent.indexOf("Mozilla")>=0)
	{
		objXmlHttp = new XMLHttpRequest();
		objXmlHttp.onload = handler;
		objXmlHttp.onerror = handler;

		return objXmlHttp;
	}
}

function exeAjax(url, fvars, fname) {
	xml = GetXmlHttpObject(fname);

	xml.open ("POST", url , false);
	xml.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	xml.send (fvars);
}

function checkChar(oElement,filter,e)
{
	if(oElement.onkeypress){
		if(document.all){
			var sKey=String.fromCharCode(event.keyCode);
			var re=new RegExp(filter);
				if(sKey!="\r" && sKey!="\b" && !re.test(sKey))
					event.returnValue=false;
				event.keyCode=sKey.charCodeAt(0);
		}else{
			document.captureEvents(Event.ONKEYPRESS);
				var sKey=String.fromCharCode(e.which);
				var re=new RegExp(filter);
				if(sKey!="\r" && sKey!="\b" && !re.test(sKey))return false;
		}
	}
}