
var transportXML=0;var transportJSON=1;var pj_global=this;var ProtoJax=Class.create();ProtoJax.prototype={initialize:function(url){this.url=url;this.onSuccess=null;this.onFailure=null;this.onBegin=null;this.onComplete=null;this.transport=transportXML;},setTransport:function(newTransport){var temp=this.transport;if(newTransport!='undefined')this.transport=newTransport;return temp;},setURL:function(newURL){var temp=this.url;if(newURL)this.url=newURL;return temp;},setBeginComplete:function(funcOnBegin,funcOnComplete){if(funcOnBegin&&funcOnComplete){var tempGlobalHandlers={onCreate:funcOnBegin,onComplete:funcOnComplete};Ajax.Responders.register(tempGlobalHandlers);}},setProcessors:function(funcXML,funcJSON){if(funcXML){this.onUserXML=funcXML;}
if(funcJSON){this.onUserJSON=funcJSON;}},clearProcessors:function(){this.onUserXML=null;this.onUserJSON=null;},setErrorHandler:function(funcErrorHandler){if(funcErrorHandler){this.onFailure=funcErrorHandler;}},call:function(functionName,parameters,transport){if(!transport)transport=this.transport;var pars=$H({func:functionName}).merge($H(parameters));pars=pars.toQueryString();pars+='&pjxmode='+transport;var ajaxObj=new Ajax.Request(this.url,{onSuccess:this.processResponse.bind(this),onFailure:this.requestFailed.bind(this),parameters:pars});delete pars;},callForm:function(functionName,formID,transport){if(!transport)transport=this.transport;var params=Form.serialize(formID);this.call(functionName,params,transport);},callPeriodical:function(functionName,interval,decay,parameters,transport){if(!transport)transport=this.transport;var pars=$H({func:functionName}).merge($H(parameters));pars=pars.toQueryString();pars+='&pjxmode='+transport;var ajaxObj=new Ajax.PeriodicalUpdater(window,this.url,{onSuccess:this.processResponse.bind(this),onFailure:this.requestFailed.bind(this),parameters:pars});delete pars;return ajaxObj;},stop:function(obj){obj.stop();},restart:function(obj){obj.start();},requestFailed:function(response,jsonObject){if(this.onFailure){this.onFailure(response);}},loadScript:function(url){var getTextObj=new Ajax.Request(url,{onSuccess:this.evalExternal.bind(this),onFailure:this.requestFailed.bind(this)});},evalExternal:function(response,jsonObject){pj_global.eval(response.responseText);},processXML:function(xml){if(xml==null)return;for(var i=0;i<xml.childNodes.length;i++){if(xml.childNodes[i].nodeName=="cmd"){var command;for(var j=0;j<xml.childNodes[i].attributes.length;j++){switch(xml.childNodes[i].attributes[j].name){case'f':command=xml.childNodes[i].attributes[j].value;break;case't':this.target_value=xml.childNodes[i].attributes[j].value;break;case'a':this.property_value=xml.childNodes[i].attributes[j].value;break;case'e':this.event_value=xml.childNodes[i].attributes[j].value;break;case'c':this.capture_value=xml.childNodes[i].attributes[j].value;break;}}
if(xml.childNodes[i].childNodes.length>1&&xml.childNodes[i].firstChild.nodeName=="#cdata-section"){this.data_value="";for(var j=0;j<xml.childNodes[i].childNodes.length;j++){this.data_value+=xml.childNodes[i].childNodes[j].data;}}else if(xml.childNodes[i].childNodes.length>1){for(var j=0;j<xml.childNodes[i].childNodes.length;j++){if(xml.childNodes[i].childNodes[j].childNodes.length>1&&xml.childNodes[i].childNodes[j].firstChild.nodeName=="#cdata-section"){var internalData="";for(var k=0;k<xml.childNodes[i].childNodes[j].childNodes.length;k++){internalData+=xml.childNodes[i].childNodes[j].childNodes[k].nodeValue;}}else{var internalData=xml.childNodes[i].childNodes[j].firstChild.nodeValue;}}}else if(xml.childNodes[i].firstChild){this.data_value=xml.childNodes[i].firstChild.nodeValue;}else{this.data_value="";}
try{eval("if( this."+command+" ) this."+command+"();");}catch(c){alert(c);}}}
delete objElement;delete command;delete internalData;delete j;delete k;delete i;},processJSON:function(responseJSON){if(responseJSON){for(i in responseJSON){command=null;this.target_value='';this.property_value='';this.event_value='';this.capture_value='';this.data_value='';if(responseJSON[i].f)command=responseJSON[i].f;if(responseJSON[i].t)this.target_value=responseJSON[i].t;if(responseJSON[i].a)this.property_value=responseJSON[i].a;if(responseJSON[i].e)this.event_value=responseJSON[i].e;if(responseJSON[i].c)this.capture_value=responseJSON[i].c;if(responseJSON[i].data)this.data_value=responseJSON[i].data;if(command){try{eval("if( this."+command+" ) this."+command+"();");}catch(c){}}}}},processResponse:function(protojaxResponse){if(protojaxResponse.getResponseHeader('X-JSON')){var json=protojaxResponse.responseText.parseJSON();if(this.onUserJSON){this.onUserJSON(json);}else{this.processJSON(json);}}else if(protojaxResponse.responseXML){if(this.onUserXML){this.onUserXML(protojaxResponse.responseXML.documentElement);}else{this.processXML(protojaxResponse.responseXML.documentElement);}}},al:function(){alert(this.data_value);},as:function(){pj_global.eval("$('"+this.target_value+"')."+this.property_value+"='"+this.data_value+"';");},st:function(){pj_global.eval("$('"+this.target_value+"').style."+this.property_value+"='"+this.data_value+"';");},rm:function(){Element.remove(this.target_value);},rd:function(){window.location.href=unescape(this.data_value);},sc:function(){pj_global.eval(this.data_value);},cr:function(){var temp=document.createElement(this.data_value);temp.id=this.property_value;$(this.target_value).appendChild(temp);}}
String.prototype.parseJSON=function(){try{return!(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(this.replace(/"(\\.|[^"\\])*"/g,'')))&&eval('('+this+')');}catch(e){return false;}};
