PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_DATA="DATA";PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_HTML="HTML";PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_BOTH="BOTH";PHP2Ajax.AJAXPAGE_PARENT_ONLOAD_EVENT_PARAMETER="__setParentOnLoadEvent";PHP2Ajax.AJAXPageBase=function(A,C,B,D){this.id=A;this.setPageContainer(((D!=null)?D:this.id));this.all=new Object();this.setUrl(C);this.setResponseType(B);this.preLoader=new PHP2Ajax.LoadManager("ajaxPreLoader_"+this.id,this.pageContainerId,PHP2Ajax.LOADER_TYPE_OVERPAGE);this.isParentPageOnLoad=false;this.__semaphoreOnCallStarted=false};PHP2Ajax.AJAXPageBase.prototype.setUrl=function(A){this.url=A};PHP2Ajax.AJAXPageBase.prototype.setResponseType=function(A){this.responseType=A};PHP2Ajax.AJAXPageBase.prototype.setPageContainer=function(A){this.pageContainerId=A;this.currentPage=document.getElementById(this.pageContainerId)};PHP2Ajax.AJAXPageBase.prototype.load=function(A,C,B){if(A==null){var A=new Object()}A=this.getPostData(A);this.call(C,A,B);this.preLoader.show()};PHP2Ajax.AJAXPageBase.prototype.call=function(C,A,B){if(this.serverResponse==null){this.serverResponse=new PHP2Ajax.JSONRequest(this.url)}this.serverResponse.clear();if(C){this.serverResponse.call(C)}for(postItemName in A){this.serverResponse.add(postItemName,A[postItemName])}if(this.isParentPageOnLoad){this.isParentPageOnLoad=false;this.serverResponse.add(PHP2Ajax.AJAXPAGE_PARENT_ONLOAD_EVENT_PARAMETER,"true")}if(B!=null){this.serverResponse.setPageCallBackHandler(B)}this.serverResponse.setHandler(this.onLoadCaller);this.serverResponse.onResponseError=this.onResponseErrorCaller;this.serverResponse.onHTTPError=this.onHTTPError;this.serverResponse.currentObject=this;this.serverResponse.execute();if(this.__semaphoreOnCallStarted&&(typeof (this.onConcurrentCallStarted)=="function")){this.onConcurrentCallStarted()}this.__semaphoreOnCallStarted=true};PHP2Ajax.AJAXPageBase.prototype.onLoadCaller=function(){this.currentObject.__semaphoreOnCallStarted=false;this.currentObject.onResponseLoad();if(typeof (this.currentObject.onLoad)=="function"){this.currentObject.onLoad()}};PHP2Ajax.AJAXPageBase.prototype.onResponseErrorCaller=function(){this.currentObject.onResponseError()};PHP2Ajax.AJAXPageBase.prototype.onResponseLoad=function(){var B=this.serverResponse.getResponse();var A=B.Response;var C=(B.PHPTMPDebug!=null)?B.PHPTMPDebug:"";if(typeof (B.PHPAJAXDebugInfo)!=undefined){this.loadDebugInfo(B.PHPAJAXDebugInfo,C)}if(B.ResponseType==null){B.ResponseType=PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_HTML}if(((B.ResponseType==PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_HTML)||(B.ResponseType==PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_BOTH))&&(A.HTMLContent!=null)){this.loadHTML(A.HTMLContent)}if(((B.ResponseType==PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_DATA)||(B.ResponseType==PHP2Ajax.AJAXPAGE_RESPONSE_TYPE_BOTH))&&(A.ControlsData!=null)){this.loadControlsData(A.ControlsData)}if((A.ClientHandler!=null)&&(typeof (this[A.ClientHandler])=="function")){this[A.ClientHandler]()}if(B.ClientMessages.Count>0){this.showClientMessages(B.ClientMessages.Messages)}this.loadJSObjectsList(A.JSObjectsList);this.preLoader.hide()};PHP2Ajax.AJAXPageBase.prototype.loadJSObjectsList=function(jsObjectslist){try{var currentObject=this;var notLoadedObjects=new Object();var notLoadedObjectsCount=0;if((jsObjectslist!=null)&&(typeof (jsObjectslist)=="object")){for(objectIndex in jsObjectslist){var jsObjectName=jsObjectslist[objectIndex];var evalResult=true;var evalString="if (typeof("+jsObjectName+") != 'undefined') { "+jsObjectName+".owner = currentObject; } else {evalResult = false;}";eval(evalString);if(!evalResult){notLoadedObjects[notLoadedObjectsCount++]=jsObjectName}}if(notLoadedObjectsCount>0){var iterativeLoader=function(){currentObject.loadJSObjectsList(notLoadedObjects)};var timerId=setTimeout(iterativeLoader,300)}}}catch(eLoadException){alert(eLoadException)}};PHP2Ajax.AJAXPageBase.prototype.showClientMessages=function(A){this.pageMessages=new PHP2Controls.MessageBox();for(messageNum in A){this.pageMessages.add(A[messageNum].Message)}this.pageMessages.show()};PHP2Ajax.AJAXPageBase.prototype.pushFunction=function(D,B){if(B!=null){var C=/function\s*/ig;var A=/\s*\(/ig;func_string=B.shift();func_name=func_string.replace(C,"");func_name=func_name.replace(A,"");func_name=func_name.replace("/s*/si","");D.push(func_name)}};PHP2Ajax.AJAXPageBase.prototype.pushJS=function(E,D){var B=new Array();var C=/<\/?script.*?>/ig;var A=/function\s+.+\s*\(/ig;if(D!=null){js_string=D.shift();js_string=js_string.replace(C,"");func=A.exec(js_string);this.pushFunction(B,func);while(func){func=A.exec(js_string);this.pushFunction(B,func)}for(i=0;i<B.length;i++){req_replace=new RegExp("function\\s*"+B[i]+"\\s*\\(","ig");js_string=js_string.replace(req_replace,"window."+B[i]+" = function(")}E.push(js_string)}};PHP2Ajax.AJAXPageBase.prototype.loadHTML=function(innerHTMLCode){var js_arr=new Array();var js_reg=/<script.*?>(.|[\r\n])*?<\/script>/ig;var js_str=js_reg.exec(innerHTMLCode);this.pushJS(js_arr,js_str);while(js_str){js_str=js_reg.exec(innerHTMLCode);this.pushJS(js_arr,js_str)}innerHTMLCode=innerHTMLCode.replace(js_reg,"");this.currentPage.innerHTML="";if(this.currentPage.insertAdjacentHTML==undefined){dom=this.currentPage;var df;var r=dom.ownerDocument.createRange();r.selectNodeContents(dom);r.collapse(true);df=r.createContextualFragment(innerHTMLCode);dom.insertBefore(df,dom.firstChild)}else{this.currentPage.insertAdjacentHTML("afterbegin",innerHTMLCode)}this.all=new Object();this.addControlsByTagName("input");this.addControlsByTagName("select");this.addControlsByTagName("textarea");for(var i=0;i<js_arr.length;i++){eval(js_arr[i])}};PHP2Ajax.AJAXPageBase.prototype.loadControlsData=function(A){for(controlId in A){if(typeof (this.all[controlId])!="undefined"){for(attributeName in A[controlId]){this.all[controlId][attributeName]=A[controlId][attributeName]}}}};PHP2Ajax.AJAXPageBase.prototype.onLoad=function(){};PHP2Ajax.AJAXPageBase.prototype.setParentOnLoadEvent=function(){this.isParentPageOnLoad=true};PHP2Ajax.AJAXPageBase.prototype.onResponseError=function(){this.alert=new PHP2Controls.Alert("Error: "+this.serverResponse.response.Error.Code+". "+this.serverResponse.response.Error.Message);this.preLoader.hide()};PHP2Ajax.AJAXPageBase.prototype.onHTTPError=function(){this.currentObject.alert=new PHP2Controls.Alert("Error: 'The server respond with a bad status code: "+this.httpRequest.status);this.currentObject.preLoader.hide()};PHP2Ajax.AJAXPageBase.prototype.onConcurrentCallStarted=function(){};PHP2Ajax.AJAXPageBase.prototype.addControl=function(A){if(A!=null){var B=(A.id?A.id:A.name);this.all[B]=A;this.all[B].owner=this;this.all[B].getActiveValue=function(){if((this.tagName.toLowerCase()=="input")&&(this.type.toLowerCase()=="checkbox")){return(this.checked?"on":"")}if(this.value!=null){return this.value}if(this.text!=null){return this.text}}}};PHP2Ajax.AJAXPageBase.prototype.addControlsByTagName=function(A){var B=this.currentPage.getElementsByTagName(A);for(i=0;i<B.length;i++){this.addControl(B[i]);if((A.toLowerCase()=="input")&&(B[i].type.toLowerCase()=="button")){if(B[i].onclick==null){B[i].onclick=this.onAJAXButtonClick}}}};PHP2Ajax.AJAXPageBase.prototype.getPostData=function(A){if(A==null){var A=new Object()}for(controlId in this.all){if((this.all[controlId].tagName.toLowerCase()=="input")&&(this.all[controlId].type.toLowerCase()=="button")){}else{if((this.all[controlId].tagName.toLowerCase()=="input")&&(this.all[controlId].type.toLowerCase()=="radio")){if((this.all[controlId].checked)){this.addActiveValue(A,controlId)}}else{this.addActiveValue(A,controlId)}}}return A};PHP2Ajax.AJAXPageBase.prototype.addActiveValue=function(A,B){if(typeof (this.all[B].name)!="undefined"){A[this.all[B].name]=this.all[B].getActiveValue()}else{A[B]=this.all[B].getActiveValue()}};PHP2Ajax.AJAXPageBase.prototype.getActiveValue=function(){if(this.value!=null){return this.value}return""};PHP2Ajax.AJAXPageBase.prototype.onAJAXButtonClick=function(){var A=new Object();A[this.name]=this.value;this.owner.load(A)};PHP2Ajax.AJAXPageBase.prototype.loadDebugInfo=function(E,B){var A=document.getElementById("_debugArea");if(A==null){A=document.getElementById("ajaxDebugInfoBlock")}if(A==null){if(document.body.insertAdjacentHTML==undefined){dom=document.body;var F;var D=dom.ownerDocument.createRange();D.selectNodeContents(dom);D.collapse(true);F=D.createContextualFragment('<div id="ajaxDebugInfoBlock"></div>');dom.insertBefore(F,dom.lastChild)}else{document.body.insertAdjacentHTML("beforeEnd",'<div id="ajaxDebugInfoBlock"></div>')}A=document.getElementById("ajaxDebugInfoBlock")}if(A!=null){A.innerHTML=E}if(B){var C=document.getElementById("PHPTMPDebug");if(C!=null){C.innerHTML=B}}else{if(document.getElementById("PHPTMPDebugBlock")!=null){document.getElementById("PHPTMPDebugBlock").style.display="none"}}};
