String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}

String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

String.prototype.isNumeric = function() {
	var RegExp = /^(-)?(\d*)(\.?)(\d*)$/;
	var result = this.match(RegExp);
	return result;
}

String.prototype.isAlpha = function() {
	var RegExp = /^[a-zA-Z]?(-)?(\.?)$/;
	var result = this.match(RegExp);
	return result;
}

String.prototype.isAlphaNumeric = function() {
	var RegExp = /\w/;
	var result = this.match(RegExp);
	return result;
}

function eFunc() {
	//empty func
}

function rFunc(url, fvars) {
	var xml = GetXmlHttpObject(eFunc);

	if (fvars == null) {
		fvars = '';
	}

	xml.open ("POST", url , false);
	xml.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	xml.send (fvars);
	
	return xml.responseText;
}

function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	}
	else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+ evType, fn);
		return r;
	}
	else {
		return false;
	}
}

function removeEvent(obj, evType, fn, useCapture) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	}
	else if (obj.detachEvent) {
		var r = obj.detachEvent("on"+ evType, fn);
		return r;
	}
	else {
		alert("Handler could not be removed");
	}
}

function GetXmlHttpObject(handler) {
	var objXmlHttp = null;

	if (navigator.userAgent.indexOf("Opera") >= 0) {
		objXmlHttp = new XMLHttpRequest();
		objXmlHttp.onload = handler;
		objXmlHttp.onerror = handler;

		return objXmlHttp;
	}
	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 exeAjaxA(url, fvars, fname) {
	xml = GetXmlHttpObject(fname);

	xml.open ("POST", url , true);
	xml.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	xml.send (fvars);
}

function exeAjaxR(url, fvars, fname) {
	xml = GetXmlHttpObject(fname);

	xml.open ("POST", url , false);
	xml.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	xml.send (fvars);
	
	return xml.responseText;
}

function chkChar(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;
		}
	}
}