if(!devon)var devon={};devon.xSync=function(url,method,oSource){this.url=url;this.method=method?method:devon.xSync.options.method;this.request=devon.xSync.getRequest();this.async=devon.xSync.options.asyncMode;this.loadLabel=devon.xSync.createLoadingLabel(oSource);this.query="";this.param=new Array();}
devon.xSync.createLoadingLabel=function(oSource){var left=2;var top=5;if(oSource!=null){left=devon.xSync.findPosX(oSource);top=devon.xSync.findPosY(oSource);}
var oSpan=document.createElement("span");oSpan.style.position="absolute";oSpan.style.left=left;oSpan.style.top=top;oSpan.innerHTML="<img src='/images/ajax_preload.gif'>&nbsp;<b>Data Loading...</b>";return document.body.appendChild(oSpan);}
devon.xSync.options={debug:false,mute:false,nullToInitialize:true,method:"POST",reqContentType:"application/x-www-form-urlencoded",resContentType:"application/xml",readyState:{"UNINITIALIZED":0,"LOADING":1,"LOADED":2,"INTERACTIVE":3,"COMPLETE":4},asyncMode:true,progressbar:false}
devon.xSync.messages={"ERR001":"Server commnuication failed.","ERR002":"Browser doesn't support XMLHttpRequest!","ERR003":"devon.xSync object is exhausted.\nMake another instance via new devon.xSync(url)","ERR004":"Resoponse content-type is \"\"\nIt should be \""+devon.xSync.options.resContentType+"\"","ERR005":"Resoponse content-type dismatched\nIt should be \""+devon.xSync.options.resContentType+"\"","ERR006":"Resoponse is empty","PREFIX":"devon.xSync","POSTFIX":"Please consult site manager!","SEP":"===========================================\n"}
devon.xSync.isXMLHttp=function(arg){if(!arg)return false;if(devon.xSync.isie()&&(arg instanceof ActiveXObject)&&(typeof(arg.readyState)!='undefined'))return true;if(devon.xSync.isff()&&(arg instanceof XMLHttpRequest)&&(typeof(arg.readyState)!='undefined'))return true;return false;}
devon.xSync.getXMLHttpStatus=function(request){if(!(devon.xSync.isXMLHttp(request)))return"";var message="XMLHttpRequest information\n";message+="status : "+request.status;if(request.status=="12029")message+=" (connection to the server failed)";if(request.status=="404")message+=" (Not found)";message+="\nreadyState :"+request.readyState;if(request.getAllResponseHeaders())message+="\nheaders:\n"+request.getAllResponseHeaders();return message;}
devon.xSync.isie=function(){return window.ActiveXObject?true:false;}
devon.xSync.isff=function(){return window.XMLHttpRequest?true:false;}
devon.xSync.getMessage=function(code){var message=devon.xSync.messages[code];return devon.xSync.messages[code]?devon.xSync.messages[code]:code;}
devon.xSync.alert=function(arg,request){if(devon.xSync.options.mute==true)return;var message="";var code="";var sep=devon.xSync.getMessage("SEP");if(typeof(arg)=="string"){message=devon.xSync.getMessage(arg);code=message==arg?"ERR999":arg;if(!message)message=arg;}else if(arg instanceof Error){code="ERR"+(arg.number&0xFFFF);message=arg+"\n"+arg.description;}else{code="EXCEPTION";message=arg;}
if(request&&devon.xSync.isXMLHttp(request)){message+="\n"+sep+devon.xSync.getXMLHttpStatus(request);}
alert("["+code+"] on "+devon.xSync.messages["PREFIX"]+"\n"+sep+message+"\n"+sep+devon.xSync.messages["POSTFIX"]);}
devon.xSync.getRequest=function(){var request=null;if(devon.xSync.isie()){try{request=new ActiveXObject('Msxml2.XMLHTTP');}catch(e){}
if(!request)try{request=new ActiveXObject('Microsoft.XMLHTTP');}catch(e){}}
if(!request&&devon.xSync.isff()){try{request=new XMLHttpRequest();}catch(e){}}
if(request==null)devon.xSync.alert("ERR002");return request;}
devon.xSync.prototype.fire=function(){if(!this.request){return;}
if(this.request.readyState!=devon.xSync.options.readyState.UNINITIALIZED){devon.xSync.alert("ERR003");return;}
try{var instance=this;this.request.onreadystatechange=function(){devon.xSync.onreadystatechange.call(instance);}
this.request.open(this.method,this.url,this.async);if(this.method=="POST")this.request.setRequestHeader('Content-Type',devon.xSync.options.reqContentType);if(document.XecureWeb){var path=getPath(this.url);var cipher=document.XecureWeb.BlockEnc(xgate_addr,path,this.query,"GET");this.request.send("q="+encodeURIComponent(cipher));}else{this.request.send(this.query);}
if(devon.xSync.isff()&&!this.async){try{devon.xSync.onreadystatechange.call(instance);}catch(e){}}}catch(e){if(this.async||!devon.xSync.isie()){devon.xSync.alert(e,this.request);}}}
devon.xSync.onreadystatechange=function(){if(this.request.readyState==devon.xSync.options.readyState.COMPLETE){this.loadLabel.style.display="none";if(this.request.status==200||this.request.status==0){if(devon.xSync.options.debug){alert(this.request.responseText);}
this.callback.call(this);}else{devon.xSync.alert("ERR001",this.request);}
if(window.doAfterFire){window.doAfterFire(this.query);}}}
devon.xSync.prototype.callback=function(){var contentType=this.request.getResponseHeader("Content-Type");if(contentType==null||contentType.indexOf(devon.xSync.options.resContentType)<0){var code=contentType==""?"ERR004":"ERR005";if(devon.xSync.options.mute==true)return;devon.xSync.alert(code,this.request);if(contentType.indexOf("text/html")>=0){document.write(this.request.responseText);}
return;}
var xmlDoc=this.request.responseXML.documentElement;if(xmlDoc==null){devon.xSync.alert("ERR006",this.request);return;}
var instance=this;var error=xmlDoc.getAttribute("error");if(error){devon.xSync.alert(devon.xSync.getText(xmlDoc),this.request);return;}
var until=xmlDoc.childNodes.length;var flag=true;for(var idx=0;idx<until;idx++){var peer=xmlDoc.childNodes[idx];if(peer.nodeType!=1)continue;if(devon.xSync.handler[peer.nodeName]){var json=devon.xSync.parse(peer);if(json.onBeforeAction&&devon.xSync.doAction(json.onBeforeAction,instance,json,instance,peer,xmlDoc)==false)continue;devon.xSync.handler[peer.nodeName].call(this,json,instance,peer,xmlDoc);if(json.onAfterAction)devon.xSync.doAction(json.onAfterAction,instance,json,instance,peer,xmlDoc);}}
delete this.request;}
devon.xSync.doAction=function(execCmd,instance,param1,param2,param3,param4){if(window[execCmd]&&typeof(window[execCmd])=="function"){var flag=window[execCmd].call(instance,param1,param2,param3,param4);}
return flag;}
devon.xSync.doAnchor=function(href,target){var oAnchor=document.createElement("A");oAnchor.href=href;if(target)oAnchor.target=target;document.body.insertBefore(oAnchor);oAnchor.click();delete oAnchor;}
devon.xSync.parse=function(xmlnode){if(xmlnode.nodeType!=1)return null;var json={};var until=xmlnode.attributes.length;for(var idx=0;idx<until;idx++){var peer=xmlnode.attributes[idx];if(peer.nodeType!=2)continue;json[peer.nodeName]=devon.xSync.getText(peer);}
json["$text"]=devon.xSync.getText(xmlnode);json["$name"]=xmlnode.nodeName;json["$nodes"]=new Array();var until=xmlnode.childNodes.length;var jsonLen=0;for(var idx=0;idx<until;idx++){var peer=xmlnode.childNodes[idx];var parsed=devon.xSync.parse(peer);if(!parsed)continue;if(typeof(json[peer.nodeName])=="undefined"){json[peer.nodeName]=new Array();json["$nodes"][json["$nodes"].length]=json[peer.nodeName];}
json[peer.nodeName][json[peer.nodeName].length]=parsed;}
json.toString=function(){return devon.xSync.getXml(xmlnode);}
return json;}
devon.xSync.getXml=function(oNode){if(oNode.xml!=undefined){return oNode.xml;}
else{}}
devon.xSync.getText=function(oNode){var text=(oNode.text!=undefined)?oNode.text:oNode.textContent;if(text=="null"&&devon.xSync.options.nullToInitialize==true)text="";var aMozilla=isMozilla?isMozilla:isNN6=isNN&&isDOM;if(aMozilla)text=text.trim();return text;}
devon.xSync.handler={};devon.xSync.handler.select=function(json){var otag=devon.xSync.$(json.id);if(!otag){devon.xSync.alert("HTML Tag not found for id \""+json.id+"\"");return false;}
var size=otag.length;if(json.clear=="true"){for(var idx=0;idx<size;idx++)otag.remove(0);}else{var from=parseInt(json.clear);if(from!="NaN"){for(var idx=from;idx<size;idx++)otag.remove(from);}}
if(json.option){var until=json.option.length;for(var idx=0;idx<until;idx++){var option=new Option(json.option[idx].$text,json.option[idx].value);otag.options.add(option);}}
if(window.doAfterFireForSelect){window.doAfterFireForSelect(otag);}}
devon.xSync.handler.alert=function(json){var s=json.$text;s=s.replace(/&amp;/g,"&");s=s.replace(/&lt;/g,"<");s=s.replace(/&gt;/g,">");s=s.replace(/&quot;/g,"\"");s=s.replace(/&#039;/g,"'");alert(s);}
devon.xSync.handler.LData=function(json){}
devon.xSync.handler.LMultiData=function(json){}
devon.xSync.handler.string=function(json){}
devon.xSync.handler.innerHTML=function(json){if(!json.cell)return;for(var idx=0;idx<json.cell.length;idx++){var oCell=devon.xSync.$(json.cell[idx].id);try{if(oCell)oCell.innerHTML=json.cell[idx].$text;}catch(e){alert(e);}}}
devon.xSync.handler.outerHTML=function(json){if(!json.cell)return;for(var idx=0;idx<json.cell.length;idx++){var oCell=devon.xSync.$(json.cell[idx].id);try{if(oCell)oCell.outerHTML=json.cell[idx].$text;}catch(e){}}}
devon.xSync.handler.inputSetter=function(json){var oform=devon.xSync.$(json.id);if(!oform){devon.xSync.alert("HTML Tag not found for id \""+json.id+"\"");return false;}
if(!json.cell)return;for(var idx=0;idx<json.cell.length;idx++){var oInput=oform[json.cell[idx].id];if(!oInput)continue;devon.xSync.setInputValue(oInput,json.cell[idx].$text);}}
devon.xSync.setInputValue=function(oInput,value){if(!oInput)return;var tagName=oInput.tagName;if(!tagName&&oInput.length){for(var idx=0;idx<oInput.length;idx++){devon.xSync.setInputValue(oInput[idx],value);}}else if(tagName=="INPUT"||tagName=="SELECT"||tagName=="TEXTAREA"){switch(oInput.type){case"text":case"hidden":case"password":case"textarea":case"select-one":case"select-multiple":oInput.value=value;break;case"radio":case"checkbox":oInput.checked=(oInput.value==value)?true:false;break;}}else{}}
devon.xSync.$=function(id){if(arguments.length==1&&typeof(id)=="string")return document.getElementById(id);var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string'){element=document.getElementById(element);}
elements[elements.length]=element;}
return elements;}
devon.xSync.prototype.addQuery=function(){switch(arguments.length){case 2:if(this.query)this.query+="&";this.query+=encodeURIComponent(arguments[0])+"="+encodeURIComponent(arguments[1]);break;case 1:if(typeof(arguments[0])!='object')return false;switch(arguments[0].tagName){case'FORM':for(var inx=0;inx<arguments[0].elements.length;inx++){var obj=arguments[0].elements.item(inx);switch(obj.type){case'button':case'file':case'reset':case'submit':break;case'select-multiple':for(var idx=0;idx<obj.length;idx++){if(!obj[idx].selected)continue;else{if(this.query)this.query+="&";this.query+=encodeURIComponent(obj.name)+"="+encodeURIComponent(obj[idx].value);}}
break;case'radio':case'checkbox':if(obj.checked){obj.value="Y";}else{obj.value="N";}
default:if(this.query)this.query+="&";this.query+=encodeURIComponent(obj.name)+"="+encodeURIComponent(obj.value);}}
break;default:}
break;default:}}
devon.xSync.findPosX=function(obj){var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent;}}else if(obj.x){curleft+=obj.x;}
return curleft;}
devon.xSync.findPosY=function(obj){var curtop=0;if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent;}}else if(obj.y)curtop+=obj.y;return curtop;}