function SimpleRequest() {
	var mActionPhp = ""; // PHP file to call using AJAX
	var mTargetID = ""; // The Javascript ID to be updated
	var mXmlHttpObject = null; // The object used to perform the AJAX request
	var mParameters = ""; //Parameter to pass on to the PHP file (POST) called by AJAX
	var mWait = true; // Parameter to open if wait for the return of AJAX
	var run_ = false; //true when AJAX load is finish
	var mLoadingHtml = ""; // loading HTML
	var mFocus = ""; // focus element
	var mFunctionAfter = ""; // function to load after
	
	this.run = run;
	this.getRun = getRun;
	this.setActionPhp = setActionPhp;
	this.setLoadingHtml = setLoadingHtml;
	this.setTargetID = setTargetID;
	this.setParameters = setParameters;
	this.setWait = setWait;
	this.setFocus = setFocus;
	this.setFunctionAfter = setFunctionAfter;
	this.pngFix = pngFix;
	
	
	function getRun() {
		return run_;
	}
	
	function setActionPhp(actionPhp) {
		mActionPhp = actionPhp;
	}
	
	function setLoadingHtml(loadingHtml) {
		mLoadingHtml = loadingHtml;
	}
	
	function setTargetID(targetID) {
		mTargetID = targetID;
	}
	
	function setParameters(parameters) {
		mParameters = parameters;
	}
	
	function setWait(wait) {
		mWait = wait;
	}
	
	function setFocus(focus) {
		mFocus = focus;
	}
	
	function setFunctionAfter(functionAfter) {
		mFunctionAfter = functionAfter;
	}
	
	function run() {
		if("" != mLoadingHtml)
			document.getElementById(mTargetID).innerHTML = mLoadingHtml;
	    mXmlHttpObject=getXmlHttpObject(stateChangedAjax);
	    mXmlHttpObject.open("POST", mActionPhp , mWait);
	    mXmlHttpObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	    mXmlHttpObject.send(mParameters);
	}
	
	function stateChangedAjax() {
		if (mXmlHttpObject.readyState==4 || mXmlHttpObject.readyState=="complete"){
    		var strResponse = mXmlHttpObject.responseText;
				document.getElementById(mTargetID).innerHTML = strResponse;
				// fix png
				pngFix();
				
				if("" != mFocus)
					document.getElementById(mFocus).focus();
				
				if("" != mFunctionAfter)
					mFunctionAfter.call();
				
				run_ = true;
		}
	}
	
	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 pngFix(){
		
		var arVersion = navigator.appVersion.split("MSIE")
		var version = parseFloat(arVersion[1])
		
		if ((version >= 5.5) && (document.body.filters)) 
		{
		   for(var i=0; i<document.images.length; i++)
		   {
		      var img = document.images[i]
		      var imgName = img.src.toUpperCase()
		      if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
		      {
		         var imgID = (img.id) ? "id='" + img.id + "' " : ""
		         var imgClass = (img.className) ? "class='" + img.className + "' " : ""
		         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
		         var imgStyle = "display:inline-block;" + img.style.cssText 
		         if (img.align == "left") imgStyle = "float:left;" + imgStyle
		         if (img.align == "right") imgStyle = "float:right;" + imgStyle
		         if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
		         var strNewHTML = "<span " + imgID + imgClass + imgTitle
		         + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
		         + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		         + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
		         img.outerHTML = strNewHTML
		         i = i-1
		      }
		   }
		}
	}
}

function SimpleValueRequest() {
	var mActionPhp = ""; // PHP file to call using AJAX
	var mValue = ""; // The Javascript ID to be updated
	var mXmlHttpObject = null; // The object used to perform the AJAX request
	var mParameters = ""; //Parameter to pass on to the PHP file (POST) called by AJAX
	var mWait = false; // Parameter to open if wait for the return of AJAX
	var run_ = false; //true when AJAX load is finish
	
	this.run = run;
	this.getRun = getRun;
	this.setActionPhp = setActionPhp;
	this.getValue = getValue;
	this.setParameters = setParameters;
	this.setWait = setWait;
	
	
	function getRun() {
			return run_;
	}
	
	function setActionPhp(actionPhp) {
			mActionPhp = actionPhp;
	}
	
	function getValue() {
			return mValue;
	}
	
	function setParameters(parameters) {
			mParameters = parameters;
	}
	
	function setWait(wait) {
			mWait = wait;
	}
	
	function run() {
	    mXmlHttpObject=getXmlHttpObject(stateChangedAjax);
	    mXmlHttpObject.open("POST", mActionPhp , mWait);
	    mXmlHttpObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	    mXmlHttpObject.send(mParameters);
	}
	
	function stateChangedAjax() {
		if (mXmlHttpObject.readyState==4 || mXmlHttpObject.readyState=="complete"){
    		var strResponse = mXmlHttpObject.responseText;
				mValue = strResponse;
				run_ = true;
		}
	}
	
	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;
	    }
	}
}
