function DWREngine(){
}
DWREngine.setErrorHandler=function(_1){
DWREngine._errorHandler=_1;
};
DWREngine.setWarningHandler=function(_2){
DWREngine._warningHandler=_2;
};
DWREngine.setTimeout=function(_3){
DWREngine._timeout=_3;
};
DWREngine.setPreHook=function(_4){
DWREngine._preHook=_4;
};
DWREngine.setPostHook=function(_5){
DWREngine._postHook=_5;
};
DWREngine.XMLHttpRequest=1;
DWREngine.IFrame=2;
DWREngine.setMethod=function(_6){
if(_6!=DWREngine.XMLHttpRequest&&_6!=DWREngine.IFrame){
DWREngine._handleError("Remoting method must be one of DWREngine.XMLHttpRequest or DWREngine.IFrame");
return;
}
DWREngine._method=_6;
};
DWREngine.setVerb=function(_7){
if(_7!="GET"&&_7!="POST"){
DWREngine._handleError("Remoting verb must be one of GET or POST");
return;
}
DWREngine._verb=_7;
};
DWREngine.setOrdered=function(_8){
DWREngine._ordered=_8;
};
DWREngine.setAsync=function(_9){
DWREngine._async=_9;
};
DWREngine.defaultMessageHandler=function(_a){
if(typeof _a=="object"&&_a.name=="Error"&&_a.description){
alert("Error: "+_a.description);
}else{
alert(_a);
}
};
DWREngine.beginBatch=function(){
if(DWREngine._batch){
DWREngine._handleError("Batch already started.");
return;
}
DWREngine._batch={};
DWREngine._batch.map={};
DWREngine._batch.paramCount=0;
DWREngine._batch.map.callCount=0;
DWREngine._batch.ids=[];
DWREngine._batch.preHooks=[];
DWREngine._batch.postHooks=[];
};
DWREngine.endBatch=function(_b){
var _c=DWREngine._batch;
if(_c==null){
DWREngine._handleError("No batch in progress.");
return;
}
if(_b&&_b.preHook){
_c.preHooks.unshift(_b.preHook);
}
if(_b&&_b.postHook){
_c.postHooks.push(_b.postHook);
}
if(DWREngine._preHook){
_c.preHooks.unshift(DWREngine._preHook);
}
if(DWREngine._postHook){
_c.postHooks.push(DWREngine._postHook);
}
if(_c.method==null){
_c.method=DWREngine._method;
}
if(_c.verb==null){
_c.verb=DWREngine._verb;
}
if(_c.async==null){
_c.async=DWREngine._async;
}
if(_c.timeout==null){
_c.timeout=DWREngine._timeout;
}
_c.completed=false;
DWREngine._batch=null;
if(!DWREngine._ordered){
DWREngine._sendData(_c);
DWREngine._batches[DWREngine._batches.length]=_c;
}else{
if(DWREngine._batches.length==0){
DWREngine._sendData(_c);
DWREngine._batches[DWREngine._batches.length]=_c;
}else{
DWREngine._batchQueue[DWREngine._batchQueue.length]=_c;
}
}
};
DWREngine._errorHandler=DWREngine.defaultMessageHandler;
DWREngine._warningHandler=DWREngine.defaultMessageHandler;
DWREngine._preHook=null;
DWREngine._postHook=null;
DWREngine._batches=[];
DWREngine._batchQueue=[];
DWREngine._handlersMap={};
DWREngine._method=DWREngine.XMLHttpRequest;
DWREngine._verb="POST";
DWREngine._ordered=false;
DWREngine._async=true;
DWREngine._batch=null;
DWREngine._timeout=0;
DWREngine._DOMDocument=["Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"];
DWREngine._XMLHTTP=["Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
DWREngine._execute=function(_d,_e,_f,_10){
var _11=false;
if(DWREngine._batch==null){
DWREngine.beginBatch();
_11=true;
}
var _12=[];
for(var i=0;i<arguments.length-3;i++){
_12[i]=arguments[i+3];
}
if(DWREngine._batch.path==null){
DWREngine._batch.path=_d;
}else{
if(DWREngine._batch.path!=_d){
DWREngine._handleError("Can't batch requests to multiple DWR Servlets.");
return;
}
}
var _14;
var _15;
var _16=_12[0];
var _17=_12[_12.length-1];
if(typeof _16=="function"){
_15={callback:_12.shift()};
_14=_12;
}else{
if(typeof _17=="function"){
_15={callback:_12.pop()};
_14=_12;
}else{
if(typeof _17=="object"&&_17.callback!=null&&typeof _17.callback=="function"){
_15=_12.pop();
_14=_12;
}else{
if(_16==null){
if(_17==null&&_12.length>2){
if(DWREngine._warningHandler){
DWREngine._warningHandler("Ambiguous nulls at start and end of parameter list. Which is the callback function?");
}
}
_15={callback:_12.shift()};
_14=_12;
}else{
if(_17==null){
_15={callback:_12.pop()};
_14=_12;
}else{
if(DWREngine._warningHandler){
DWREngine._warningHandler("Missing callback function or metadata object.");
}
return;
}
}
}
}
}
var _18=Math.floor(Math.random()*10001);
var id=(_18+"_"+new Date().getTime()).toString();
var _1a="c"+DWREngine._batch.map.callCount+"-";
DWREngine._batch.ids.push(id);
if(_15.method!=null){
DWREngine._batch.method=_15.method;
delete _15.method;
}
if(_15.verb!=null){
DWREngine._batch.verb=_15.verb;
delete _15.verb;
}
if(_15.async!=null){
DWREngine._batch.async=_15.async;
delete _15.async;
}
if(_15.timeout!=null){
DWREngine._batch.timeout=_15.timeout;
delete _15.timeout;
}
if(_15.preHook!=null){
DWREngine._batch.preHooks.unshift(_15.preHook);
delete _15.preHook;
}
if(_15.postHook!=null){
DWREngine._batch.postHooks.push(_15.postHook);
delete _15.postHook;
}
if(_15.errorHandler==null){
_15.errorHandler=DWREngine._errorHandler;
}
if(_15.warningHandler==null){
_15.warningHandler=DWREngine._warningHandler;
}
DWREngine._handlersMap[id]=_15;
DWREngine._batch.map[_1a+"scriptName"]=_e;
DWREngine._batch.map[_1a+"methodName"]=_f;
DWREngine._batch.map[_1a+"id"]=id;
DWREngine._addSerializeFunctions();
for(i=0;i<_14.length;i++){
DWREngine._serializeAll(DWREngine._batch,[],_14[i],_1a+"param"+i);
}
DWREngine._removeSerializeFunctions();
DWREngine._batch.map.callCount++;
if(_11){
DWREngine.endBatch();
}
};
DWREngine._sendData=function(_1b){
Logger.debug("Call Count = "+_1b.map.callCount);
Maps["map"].showLoading();
if(_1b.map.callCount==0){
return;
}
for(var i=0;i<_1b.preHooks.length;i++){
_1b.preHooks[i]();
}
_1b.preHooks=null;
if(_1b.timeout&&_1b.timeout!=0){
_1b.interval=setInterval(function(){
clearInterval(_1b.interval);
DWREngine._abortRequest(_1b);
},_1b.timeout);
}
var _1d;
if(_1b.map.callCount==1){
_1d=_1b.map["c0-scriptName"]+"."+_1b.map["c0-methodName"]+".dwr";
}else{
_1d="Multiple."+_1b.map.callCount+".dwr";
}
if(_1b.method==DWREngine.XMLHttpRequest){
if(window.XMLHttpRequest){
_1b.req=new XMLHttpRequest();
}else{
if(window.ActiveXObject&&!(navigator.userAgent.indexOf("Mac")>=0&&navigator.userAgent.indexOf("MSIE")>=0)){
_1b.req=DWREngine._newActiveXObject(DWREngine._XMLHTTP);
}
}
}
var _1e="";
var _1f;
if(_1b.req){
_1b.map.xml="true";
if(_1b.async){
_1b.req.onreadystatechange=function(){
DWREngine._stateChange(_1b);
};
}
var _20=navigator.userAgent.indexOf("Safari/");
if(_20>=0){
var _21=navigator.userAgent.substring(_20+7);
var _22=parseInt(_21,10);
if(_22<400){
_1b.verb=="GET";
}
}
Logger.debug("Sending Data to the EView Server");
if(_1b.verb=="GET"){
_1b.map.callCount=""+_1b.map.callCount;
for(_1f in _1b.map){
var _23=encodeURIComponent(_1f);
var _24=encodeURIComponent(_1b.map[_1f]);
if(_24==""){
if(DWREngine._warningHandler){
DWREngine._warningHandler("Found empty qval for qkey="+_23);
}
}
_1e+=_23+"="+_24+"&";
}
_1e=_1e.substring(0,_1e.length-1);
try{
_1b.req.open("GET",_1b.path+"/exec/"+_1d+"?"+_1e,_1b.async);
_1b.req.send(null);
if(!_1b.async){
DWREngine._stateChange(_1b);
}
}
catch(ex){
DWREngine._handleMetaDataError(null,ex);
}
}else{
for(_1f in _1b.map){
if(typeof _1b.map[_1f]!="function"){
_1e+=_1f+"="+_1b.map[_1f]+"\n";
}
}
try{
_1b.req.open("POST",_1b.path+"/exec/"+_1d,_1b.async);
_1b.req.setRequestHeader("Content-Type","text/plain");
_1b.req.send(_1e);
if(!_1b.async){
DWREngine._stateChange(_1b);
}
}
catch(ex){
DWREngine._handleMetaDataError(null,ex);
}
}
}else{
_1b.map.xml="false";
var _25="dwr-if-"+_1b.map["c0-id"];
_1b.div=document.createElement("div");
_1b.div.innerHTML="<iframe frameborder='0' width='0' height='0' id='"+_25+"' name='"+_25+"'></iframe>";
document.body.appendChild(_1b.div);
_1b.iframe=document.getElementById(_25);
_1b.iframe.setAttribute("style","width:0px; height:0px; border:0px;");
if(_1b.verb=="GET"){
for(_1f in _1b.map){
if(typeof _1b.map[_1f]!="function"){
_1e+=encodeURIComponent(_1f)+"="+encodeURIComponent(_1b.map[_1f])+"&";
}
}
_1e=_1e.substring(0,_1e.length-1);
_1b.iframe.setAttribute("src",_1b.path+"/exec/"+_1d+"?"+_1e);
document.body.appendChild(_1b.iframe);
}else{
_1b.form=document.createElement("form");
_1b.form.setAttribute("id","dwr-form");
_1b.form.setAttribute("action",_1b.path+"/exec"+_1d);
_1b.form.setAttribute("target",_25);
_1b.form.target=_25;
_1b.form.setAttribute("method","post");
for(_1f in _1b.map){
var _26=document.createElement("input");
_26.setAttribute("type","hidden");
_26.setAttribute("name",_1f);
_26.setAttribute("value",_1b.map[_1f]);
_1b.form.appendChild(_26);
}
document.body.appendChild(_1b.form);
_1b.form.submit();
}
}
};
DWREngine._stateChange=function(_27){
if(!_27.completed&&_27.req.readyState==4){
Logger.debug("Received Data from the EView Server");
try{
var _28=_27.req.responseText;
var _29=_27.req.status;
if(_28==null||_28==""){
DWREngine._handleMetaDataError(null,"No data received from server");
return;
}
if(_28.search("DWREngine._handle")==-1){
DWREngine._handleMetaDataError(null,"Invalid reply from server");
return;
}
if(_29!=200){
if(_28==null){
_28="Unknown error occured";
}
DWREngine._handleMetaDataError(null,_28);
return;
}
eval(_28);
DWREngine._clearUp(_27);
}
catch(ex){
if(ex==null){
ex="Unknown error occured";
}
DWREngine._handleMetaDataError(null,ex);
}
finally{
if(DWREngine._batchQueue.length!=0){
var _2a=DWREngine._batchQueue.shift();
DWREngine._sendData(_2a);
DWREngine._batches[DWREngine._batches.length]=_2a;
}
}
}
};
DWREngine._handleResponse=function(id,_2c){
var _2d=DWREngine._handlersMap[id];
DWREngine._handlersMap[id]=null;
if(_2d){
Maps["map"].hideLoading();
try{
if(_2d.callback){
_2d.callback(_2c);
}
}
catch(ex){
DWREngine._handleMetaDataError(_2d,ex);
}
}
if(DWREngine._method==DWREngine.IFrame){
var _2e=DWREngine._batches[DWREngine._batches.length-1];
if(_2e.map["c"+(_2e.map.callCount-1)+"-id"]==id){
DWREngine._clearUp(_2e);
}
}
};
DWREngine._handleServerError=function(id,_30){
var _31=DWREngine._handlersMap[id];
DWREngine._handlersMap[id]=null;
if(_30.message){
DWREngine._handleMetaDataError(_31,_30.message,_30);
}else{
DWREngine._handleMetaDataError(_31,_30);
}
};
DWREngine._abortRequest=function(_32){
if(_32&&_32.metadata!=null&&!_32.completed){
DWREngine._clearUp(_32);
if(_32.req){
_32.req.abort();
}
var _33;
var id;
for(var i=0;i<_32.ids.length;i++){
id=_32.ids[i];
_33=DWREngine._handlersMap[id];
DWREngine._handleMetaDataError(_33,"Timeout");
}
}
};
DWREngine._clearUp=function(_36){
if(_36.completed){
alert("double complete");
return;
}
if(_36.div){
_36.div.parentNode.removeChild(_36.div);
}
if(_36.iframe){
_36.iframe.parentNode.removeChild(_36.iframe);
}
if(_36.form){
_36.form.parentNode.removeChild(_36.form);
}
if(_36.req){
delete _36.req;
}
for(var i=0;i<_36.postHooks.length;i++){
_36.postHooks[i]();
}
_36.postHooks=null;
for(var i=0;i<DWREngine._batches.length;i++){
if(DWREngine._batches[i]==_36){
DWREngine._batches.splice(i,1);
break;
}
}
_36.completed=true;
};
DWREngine._handleError=function(_38,ex){
if(DWREngine._errorHandler){
DWREngine._errorHandler(_38,ex);
}
};
DWREngine._handleMetaDataError=function(_3a,_3b,ex){
if(_3a&&typeof _3a.errorHandler=="function"){
_3a.errorHandler(_3b,ex);
}else{
DWREngine._handleError(_3b,ex);
}
};
DWREngine._addSerializeFunctions=function(){
Object.prototype.dwrSerialize=DWREngine._serializeObject;
Array.prototype.dwrSerialize=DWREngine._serializeArray;
Boolean.prototype.dwrSerialize=DWREngine._serializeBoolean;
Number.prototype.dwrSerialize=DWREngine._serializeNumber;
String.prototype.dwrSerialize=DWREngine._serializeString;
Date.prototype.dwrSerialize=DWREngine._serializeDate;
};
DWREngine._removeSerializeFunctions=function(){
delete Object.prototype.dwrSerialize;
delete Array.prototype.dwrSerialize;
delete Boolean.prototype.dwrSerialize;
delete Number.prototype.dwrSerialize;
delete String.prototype.dwrSerialize;
delete Date.prototype.dwrSerialize;
};
DWREngine._serializeAll=function(_3d,_3e,_3f,_40){
if(_3f==null){
_3d.map[_40]="null:null";
return;
}
switch(typeof _3f){
case "boolean":
_3d.map[_40]="boolean:"+_3f;
break;
case "number":
_3d.map[_40]="number:"+_3f;
break;
case "string":
_3d.map[_40]="string:"+encodeURIComponent(_3f);
break;
case "object":
if(_3f.dwrSerialize){
_3d.map[_40]=_3f.dwrSerialize(_3d,_3e,_3f,_40);
}else{
if(_3f.nodeName){
_3d.map[_40]=DWREngine._serializeXml(_3d,_3e,_3f,_40);
}else{
if(DWREngine._warningHandler){
DWREngine._warningHandler("Object without dwrSerialize: "+typeof _3f+", attempting default converter.");
}
_3d.map[_40]="default:"+_3f;
}
}
break;
case "function":
break;
default:
if(DWREngine._warningHandler){
DWREngine._warningHandler("Unexpected type: "+typeof _3f+", attempting default converter.");
}
_3d.map[_40]="default:"+_3f;
break;
}
};
DWREngine._lookup=function(_41,_42,_43){
var _44;
for(var i=0;i<_41.length;i++){
if(_41[i].data==_42){
_44=_41[i];
break;
}
}
if(_44){
return "reference:"+_44.name;
}
_41.push({data:_42,name:_43});
return null;
};
DWREngine._serializeObject=function(_46,_47,_48,_49){
var ref=DWREngine._lookup(_47,this,_49);
if(ref){
return ref;
}
if(_48.nodeName){
return DWREngine._serializeXml(_46,_47,_48,_49);
}
var _4b="Object:{";
var _4c;
for(_4c in this){
if(_4c!="dwrSerialize"){
_46.paramCount++;
var _4d="c"+DWREngine._batch.map.callCount+"-e"+_46.paramCount;
DWREngine._serializeAll(_46,_47,this[_4c],_4d);
_4b+=encodeURIComponent(_4c);
_4b+=":reference:";
_4b+=_4d;
_4b+=", ";
}
}
if(_4b.substring(_4b.length-2)==", "){
_4b=_4b.substring(0,_4b.length-2);
}
_4b+="}";
return _4b;
};
DWREngine._serializeXml=function(_4e,_4f,_50,_51){
var ref=DWREngine._lookup(_4f,this,_51);
if(ref){
return ref;
}
var _53;
if(window.XMLSerializer){
var _54=new XMLSerializer();
_53=_54.serializeToString(_50);
}else{
_53=_50.toXml;
}
return "XML:"+encodeURIComponent(_53);
};
DWREngine._serializeArray=function(_55,_56,_57,_58){
var ref=DWREngine._lookup(_56,this,_58);
if(ref){
return ref;
}
var _5a="Array:[";
for(var i=0;i<this.length;i++){
if(i!=0){
_5a+=",";
}
_55.paramCount++;
var _5c="c"+DWREngine._batch.map.callCount+"-e"+_55.paramCount;
DWREngine._serializeAll(_55,_56,this[i],_5c);
_5a+="reference:";
_5a+=_5c;
}
_5a+="]";
return _5a;
};
DWREngine._serializeBoolean=function(_5d,_5e,_5f,_60){
return "Boolean:"+this;
};
DWREngine._serializeNumber=function(_61,_62,_63,_64){
return "Number:"+this;
};
DWREngine._serializeString=function(_65,_66,_67,_68){
return "String:"+encodeURIComponent(this);
};
DWREngine._serializeDate=function(_69,_6a,_6b,_6c){
return "Date:"+this.getTime();
};
DWREngine._unserializeDocument=function(xml){
var dom;
if(window.DOMParser){
var _6f=new DOMParser();
dom=_6f.parseFromString(xml,"text/xml");
if(!dom.documentElement||dom.documentElement.tagName=="parsererror"){
var _70=dom.documentElement.firstChild.data;
_70+="\n"+dom.documentElement.firstChild.nextSibling.firstChild.data;
throw _70;
}
return dom;
}else{
if(window.ActiveXObject){
dom=DWREngine._newActiveXObject(DWREngine._DOMDocument);
dom.loadXML(xml);
return dom;
}else{
var div=document.createElement("div");
div.innerHTML=xml;
return div;
}
}
};
DWREngine._newActiveXObject=function(_72){
var _73;
for(var i=0;i<_72.length;i++){
try{
_73=new ActiveXObject(_72[i]);
break;
}
catch(ex){
}
}
return _73;
};
if(typeof window.encodeURIComponent==="undefined"){
DWREngine._utf8=function(_75){
_75=""+_75;
var c;
var s;
var enc="";
var i=0;
while(i<_75.length){
c=_75.charCodeAt(i++);
if(c>=56320&&c<57344){
continue;
}
if(c>=55296&&c<56320){
if(i>=_75.length){
continue;
}
s=_75.charCodeAt(i++);
if(s<56320||c>=56832){
continue;
}
c=((c-55296)<<10)+(s-56320)+65536;
}
if(c<128){
enc+=String.fromCharCode(c);
}else{
if(c<2048){
enc+=String.fromCharCode(192+(c>>6),128+(c&63));
}else{
if(c<65536){
enc+=String.fromCharCode(224+(c>>12),128+(c>>6&63),128+(c&63));
}else{
enc+=String.fromCharCode(240+(c>>18),128+(c>>12&63),128+(c>>6&63),128+(c&63));
}
}
}
}
return enc;
};
DWREngine._hexchars="0123456789ABCDEF";
DWREngine._toHex=function(n){
return DWREngine._hexchars.charAt(n>>4)+DWREngine._hexchars.charAt(n&15);
};
DWREngine._okURIchars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
window.encodeURIComponent=function(s){
s=DWREngine._utf8(s);
var c;
var enc="";
for(var i=0;i<s.length;i++){
if(DWREngine._okURIchars.indexOf(s.charAt(i))==-1){
enc+="%"+DWREngine._toHex(s.charCodeAt(i));
}else{
enc+=s.charAt(i);
}
}
return enc;
};
}
if(typeof Array.prototype.splice==="undefined"){
Array.prototype.splice=function(ind,cnt){
if(arguments.length==0){
return ind;
}
if(typeof ind!="number"){
ind=0;
}
if(ind<0){
ind=Math.max(0,this.length+ind);
}
if(ind>this.length){
if(arguments.length>2){
ind=this.length;
}else{
return [];
}
}
if(arguments.length<2){
cnt=this.length-ind;
}
cnt=(typeof cnt=="number")?Math.max(0,cnt):0;
removeArray=this.slice(ind,ind+cnt);
endArray=this.slice(ind+cnt);
this.length=ind;
for(var i=2;i<arguments.length;i++){
this[this.length]=arguments[i];
}
for(i=0;i<endArray.length;i++){
this[this.length]=endArray[i];
}
return removeArray;
};
}
if(typeof Array.prototype.shift==="undefined"){
Array.prototype.shift=function(str){
var val=this[0];
for(var i=1;i<this.length;++i){
this[i-1]=this[i];
}
this.length--;
return val;
};
}
if(typeof Array.prototype.unshift==="undefined"){
Array.prototype.unshift=function(){
var i=unshift.arguments.length;
for(var j=this.length-1;j>=0;--j){
this[j+i]=this[j];
}
for(j=0;j<i;++j){
this[j]=unshift.arguments[j];
}
};
}
if(typeof Array.prototype.push==="undefined"){
Array.prototype.push=function(){
var sub=this.length;
for(var i=0;i<push.arguments.length;++i){
this[sub]=push.arguments[i];
sub++;
}
};
}
if(typeof Array.prototype.pop==="undefined"){
Array.prototype.pop=function(){
var _89=this[this.length-1];
this.length--;
return _89;
};
}


