


	function ajax() {
        // init var
		var mActionPhp = "", 		// PHP file to call using AJAX
			mTargetId = "", 		// The Javascript ID to be updated
			mXmlHttpObject = null, 	// The object used to perform the AJAX request
			mParameters = "", 		//Parameter to pass on to the PHP file (POST) called by AJAX
			mWait = true, 			// Parameter to open if wait for the return of AJAX
			mRun = false, 			//true when AJAX load is finish
			mLoadingHtml = "", 		// loading HTML
			mFocus = "", 			// focus element
			mFunctionAfter = ""; 	// function to load after

		// get run
        this.getRun = function(){
			return mRun;
		}

		// set actionPhp
        this.setActionPhp = function(actionPhp){
			mActionPhp = actionPhp;
		}

		// set loadingHtml
        this.setLoadingHtml = function(loadingHtml){
			mLoadingHtml = loadingHtml;
		}

		// set targetId
        this.setTargetId = function(targetId){
			mTargetId = targetId;
		}

		// set parameters
        this.setParameters = function(parameters){
			mParameters = parameters;
		}

		// set wait
        this.setWait = function(wait){
			mWait = wait;
		}

		// set focus
        this.setFocus = function(focus){
			mFocus = focus;
		}

		// set function after
        this.setFunctionAfter = function(functionAfter){
			mFunctionAfter = functionAfter;
		}

		// run
        this.run = function(){
        	if(document.getElementById(mTargetId)){
				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"){
        		if(document.getElementById(mTargetId)){
		    		var strResponse = mXmlHttpObject.responseText;

					// write response
					document.getElementById(mTargetId).innerHTML = strResponse;

					// fix png
					//pngFix();

					// focus cursor
					if("" != mFocus)
						document.getElementById(mFocus).focus();

					// load function after
					if("" != mFunctionAfter)
						mFunctionAfter.call();

					// set run
					mRun = 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)){
			   // check for img
			   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 ajaxValue() {
		// init var
		var mActionPhp = "", 		// PHP file to call using AJAX
			mValue = "", 			// The Javascript ID to be updated
			mXmlHttpObject = null,	// The object used to perform the AJAX request
			mParameters = "", 		//Parameter to pass on to the PHP file (POST) called by AJAX
			mWait = false, 			// Parameter to open if wait for the return of AJAX
			mRun = false; 			//true when AJAX load is finish

		// get run
        this.getRun = function(){
			return mRun;
		}

		// set actionPhp
        this.setActionPhp = function(actionPhp){
			mActionPhp = actionPhp;
		}

		// get value
        this.getValue = function(){
			return mValue;
		}

		// set parameters
        this.setParameters = function(parameters){
			mParameters = parameters;
		}

		// set wait
        this.setWait = function(wait){
			mWait = wait;
		}

		// run
        this.run = function(){
		    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;

    			// set value
				mValue = strResponse;

				// set run
				mRun = 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;
		    }
		}
	}
