var Spry;if(!Spry){Spry={};}if(!Spry.Utils){Spry.Utils={};}Spry.Utils.msProgIDs=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0"];Spry.Utils.createXMLHttpRequest=function(){var _1=null;try{if(window.ActiveXObject){while(!_1&&Spry.Utils.msProgIDs.length){try{_1=new ActiveXObject(Spry.Utils.msProgIDs[0]);}catch(e){_1=null;}if(!_1){Spry.Utils.msProgIDs.splice(0,1);}}}if(!_1&&window.XMLHttpRequest){_1=new XMLHttpRequest();}}catch(e){_1=null;}if(!_1){Spry.Debug.reportError("Failed to create an XMLHttpRequest object!");}return _1;};Spry.Utils.loadURL=function(_2,_3,_4,_5,_6){var _7=new Spry.Utils.loadURL.Request();_7.method=_2;_7.url=_3;_7.async=_4;_7.successCallback=_5;Spry.Utils.setOptions(_7,_6);try{_7.xhRequest=Spry.Utils.createXMLHttpRequest();if(!_7.xhRequest){return null;}if(_7.async){_7.xhRequest.onreadystatechange=function(){Spry.Utils.loadURL.callback(_7);};}_7.xhRequest.open(_7.method,_7.url,_7.async,_7.username,_7.password);if(_7.headers){for(var _8 in _7.headers){_7.xhRequest.setRequestHeader(_8,_7.headers[_8]);}}_7.xhRequest.send(_7.postData);if(!_7.async){Spry.Utils.loadURL.callback(_7);}}catch(e){if(_7.errorCallback){_7.errorCallback(_7);}else{Spry.Debug.reportError("Exception caught while loading "+_3+": "+e);}_7=null;}return _7;};Spry.Utils.loadURL.callback=function(_9){if(!_9||_9.xhRequest.readyState!=4){return;}if(_9.successCallback&&(_9.xhRequest.status==200||_9.xhRequest.status==0)){_9.successCallback(_9);}else{if(_9.errorCallback){_9.errorCallback(_9);}}};Spry.Utils.loadURL.Request=function(){var _a=Spry.Utils.loadURL.Request.props;var _b=_a.length;for(var i=0;i<_b;i++){this[_a[i]]=null;}this.method="GET";this.async=true;this.headers={};};Spry.Utils.loadURL.Request.props=["method","url","async","username","password","postData","successCallback","errorCallback","headers","userData","xhRequest"];Spry.Utils.loadURL.Request.prototype.extractRequestOptions=function(_c,_d){if(!_c){return;}var _e=Spry.Utils.loadURL.Request.props;var _f=_e.length;for(var i=0;i<_f;i++){var _10=_e[i];if(_c[_10]!=undefined){this[_10]=_c[_10];if(_d){_c[_10]=undefined;}}}};Spry.Utils.loadURL.Request.prototype.clone=function(){var _11=Spry.Utils.loadURL.Request.props;var _12=_11.length;var req=new Spry.Utils.loadURL.Request;for(var i=0;i<_12;i++){req[_11[i]]=this[_11[i]];}if(this.headers){req.headers={};Spry.Utils.setOptions(req.headers,this.headers);}return req;};Spry.Utils.setInnerHTML=function(ele,str,_13){if(!ele){return;}ele=Spry.$(ele);var _14="<script[^>]*>(.|s|\n|\r)*?</script>";ele.innerHTML=str.replace(new RegExp(_14,"img"),"");if(_13){return;}var _15=str.match(new RegExp(_14,"img"));if(_15){var _16=_15.length;for(var i=0;i<_16;i++){var s=_15[i].replace(/<script[^>]*>[\s\r\n]*(<\!--)?|(-->)?[\s\r\n]*<\/script>/img,"");Spry.Utils.eval(s);}}};Spry.Utils.updateContent=function(ele,url,_17,_18){Spry.Utils.loadURL("GET",url,true,function(req){Spry.Utils.setInnerHTML(ele,req.xhRequest.responseText);if(_17){_17(ele,url);}},_18);};if(!Spry.$$){Spry.Utils.addEventListener=function(_19,_1a,_1b,_1c){try{_19=Spry.$(_19);if(_19.addEventListener){_19.addEventListener(_1a,_1b,_1c);}else{if(_19.attachEvent){_19.attachEvent("on"+_1a,_1b);}}}catch(e){}};Spry.Utils.removeEventListener=function(_1d,_1e,_1f,_20){try{_1d=Spry.$(_1d);if(_1d.removeEventListener){_1d.removeEventListener(_1e,_1f,_20);}else{if(_1d.detachEvent){_1d.detachEvent("on"+_1e,_1f);}}}catch(e){}};Spry.Utils.addLoadListener=function(_21){if(typeof window.addEventListener!="undefined"){window.addEventListener("load",_21,false);}else{if(typeof document.addEventListener!="undefined"){document.addEventListener("load",_21,false);}else{if(typeof window.attachEvent!="undefined"){window.attachEvent("onload",_21);}}}};Spry.Utils.addClassName=function(ele,_22){ele=Spry.$(ele);if(!ele||!_22||(ele.className&&ele.className.search(new RegExp("\\b"+_22+"\\b"))!=-1)){return;}ele.className+=(ele.className?" ":"")+_22;};Spry.Utils.removeClassName=function(ele,_23){ele=Spry.$(ele);if(!ele||!_23||(ele.className&&ele.className.search(new RegExp("\\b"+_23+"\\b"))==-1)){return;}ele.className=ele.className.replace(new RegExp("\\s*\\b"+_23+"\\b","g"),"");};Spry.Utils.getObjectByName=function(_24){var _25=null;if(_24){var lu=window;var _26=_24.split(".");for(var i=0;lu&&i<_26.length;i++){_25=lu[_26[i]];lu=_25;}}return _25;};Spry.$=function(_27){if(arguments.length>1){for(var i=0,_28=[],_29=arguments.length;i<_29;i++){_28.push(Spry.$(arguments[i]));}return _28;}if(typeof _27=="string"){_27=document.getElementById(_27);}return _27;};}Spry.Utils.eval=function(str){return eval(str);};Spry.Utils.escapeQuotesAndLineBreaks=function(str){if(str){str=str.replace(/\\/g,"\\\\");str=str.replace(/["']/g,"\\$&");str=str.replace(/\n/g,"\\n");str=str.replace(/\r/g,"\\r");}return str;};Spry.Utils.encodeEntities=function(str){if(str&&str.search(/[&<>"]/)!=-1){str=str.replace(/&/g,"&amp;");str=str.replace(/</g,"&lt;");str=str.replace(/>/g,"&gt;");str=str.replace(/"/g,"&quot;");}return str;};Spry.Utils.decodeEntities=function(str){var d=Spry.Utils.decodeEntities.div;if(!d){d=document.createElement("div");Spry.Utils.decodeEntities.div=d;if(!d){return str;}}d.innerHTML=str;if(d.childNodes.length==1&&d.firstChild.nodeType==3&&d.firstChild.nextSibling==null){str=d.firstChild.data;}else{str=str.replace(/&lt;/gi,"<");str=str.replace(/&gt;/gi,">");str=str.replace(/&quot;/gi,"\"");str=str.replace(/&amp;/gi,"&");}return str;};Spry.Utils.fixupIETagAttributes=function(_2a){var _2b="";var _2c=_2a.match(/^<[^\s>]+\s*/)[0];var _2d=_2a.match(/\s*\/?>$/)[0];var _2e=_2a.replace(/^<[^\s>]+\s*|\s*\/?>/g,"");_2b+=_2c;if(_2e){var _2f=0;var _30=0;while(_2f<_2e.length){while(_2e.charAt(_30)!="="&&_30<_2e.length){++_30;}if(_30>=_2e.length){_2b+=_2e.substring(_2f,_30);break;}++_30;_2b+=_2e.substring(_2f,_30);_2f=_30;if(_2e.charAt(_30)=="\""||_2e.charAt(_30)=="'"){var _31=_30++;while(_30<_2e.length){if(_2e.charAt(_30)==_2e.charAt(_31)){_30++;break;}else{if(_2e.charAt(_30)=="\\"){_30++;}}_30++;}_2b+=_2e.substring(_2f,_30);_2f=_30;}else{_2b+="\"";var _32=_2e.slice(_30).search(/\s/);_30=(_32!=-1)?(_30+_32):_2e.length;_2b+=_2e.slice(_2f,_30);_2b+="\"";_2f=_30;}}}_2b+=_2d;return _2b;};Spry.Utils.fixUpIEInnerHTML=function(_33){var _34="";var _35=new RegExp("<\\!--|<\\!\\[CDATA\\[|<\\w+[^<>]*>|-->|\\]\\](>|&gt;)","g");var _36=0;var _37=0;while(_33.length){var _38=_35.exec(_33);if(!_38||!_38[0]){_34+=_33.substr(_36,_33.length-_36);break;}if(_38.index!=_36){_34+=_33.substr(_36,_38.index-_36);}if(_38[0]=="<!--"||_38[0]=="<![CDATA["){++_37;_34+=_38[0];}else{if(_38[0]=="-->"||_38[0]=="]]>"||(_37&&_38[0]=="]]&gt;")){--_37;_34+=_38[0];}else{if(!_37&&_38[0].charAt(0)=="<"){_34+=Spry.Utils.fixupIETagAttributes(_38[0]);}else{_34+=_38[0];}}}_36=_35.lastIndex;}return _34;};Spry.Utils.stringToXMLDoc=function(str){var _39=null;try{var _3a=new ActiveXObject("Microsoft.XMLDOM");_3a.async=false;_3a.loadXML(str);_39=_3a;}catch(e){try{var _3b=new DOMParser;_39=_3b.parseFromString(str,"text/xml");}catch(e){Spry.Debug.reportError("Caught exception in Spry.Utils.stringToXMLDoc(): "+e+"\n");_39=null;}}return _39;};Spry.Utils.serializeObject=function(obj){var str="";var _3c=true;if(obj==null||obj==undefined){return str+obj;}var _3d=typeof obj;if(_3d=="number"||_3d=="boolean"){str+=obj;}else{if(_3d=="string"){str+="\""+Spry.Utils.escapeQuotesAndLineBreaks(obj)+"\"";}else{if(obj.constructor==Array){str+="[";for(var i=0;i<obj.length;i++){if(!_3c){str+=", ";}str+=Spry.Utils.serializeObject(obj[i]);_3c=false;}str+="]";}else{if(_3d=="object"){str+="{";for(var p in obj){if(!_3c){str+=", ";}str+="\""+p+"\": "+Spry.Utils.serializeObject(obj[p]);_3c=false;}str+="}";}}}}return str;};Spry.Utils.getNodesByFunc=function(_3e,_3f){var _40=new Array;var _41=new Array;var _42=_3e;while(_42){if(_3f(_42)){_41.push(_42);}if(_42.hasChildNodes()){_40.push(_42);_42=_42.firstChild;}else{if(_42==_3e){_42=null;}else{try{_42=_42.nextSibling;}catch(e){_42=null;}}}while(!_42&&_40.length>0){_42=_40.pop();if(_42==_3e){_42=null;}else{try{_42=_42.nextSibling;}catch(e){_42=null;}}}}if(_40&&_40.length>0){Spry.Debug.trace("-- WARNING: Spry.Utils.getNodesByFunc() failed to traverse all nodes!\n");}return _41;};Spry.Utils.getFirstChildWithNodeName=function(_43,_44){var _45=_43.firstChild;while(_45){if(_45.nodeName==_44){return _45;}_45=_45.nextSibling;}return null;};Spry.Utils.setOptions=function(obj,_46,_47){if(!_46){return;}for(var _48 in _46){if(_47&&_46[_48]==undefined){continue;}obj[_48]=_46[_48];}};Spry.Utils.SelectionManager={};Spry.Utils.SelectionManager.selectionGroups=new Object;Spry.Utils.SelectionManager.SelectionGroup=function(){this.selectedElements=new Array;};Spry.Utils.SelectionManager.SelectionGroup.prototype.select=function(_49,_4a,_4b){var _4c=null;if(!_4b){this.clearSelection();}else{for(var i=0;i<this.selectedElements.length;i++){_4c=this.selectedElements[i].element;if(_4c.element==_49){if(_4c.className!=_4a){Spry.Utils.removeClassName(_49,_4c.className);Spry.Utils.addClassName(_49,_4a);}return;}}}_4c=new Object;_4c.element=_49;_4c.className=_4a;this.selectedElements.push(_4c);Spry.Utils.addClassName(_49,_4a);};Spry.Utils.SelectionManager.SelectionGroup.prototype.unSelect=function(_4d){for(var i=0;i<this.selectedElements.length;i++){var _4e=this.selectedElements[i].element;if(_4e.element==_4d){Spry.Utils.removeClassName(_4e.element,_4e.className);return;}}};Spry.Utils.SelectionManager.SelectionGroup.prototype.clearSelection=function(){var _4f=null;do{_4f=this.selectedElements.shift();if(_4f){Spry.Utils.removeClassName(_4f.element,_4f.className);}}while(_4f);};Spry.Utils.SelectionManager.getSelectionGroup=function(_50){if(!_50){return null;}var _51=Spry.Utils.SelectionManager.selectionGroups[_50];if(!_51){_51=new Spry.Utils.SelectionManager.SelectionGroup();Spry.Utils.SelectionManager.selectionGroups[_50]=_51;}return _51;};Spry.Utils.SelectionManager.select=function(_52,_53,_54,_55){var _56=Spry.Utils.SelectionManager.getSelectionGroup(_52);if(!_56){return;}_56.select(_53,_54,_55);};Spry.Utils.SelectionManager.unSelect=function(_57,_58){var _59=Spry.Utils.SelectionManager.getSelectionGroup(_57);if(!_59){return;}_59.unSelect(_58,className);};Spry.Utils.SelectionManager.clearSelection=function(_5a){var _5b=Spry.Utils.SelectionManager.getSelectionGroup(_5a);if(!_5b){return;}_5b.clearSelection();};Spry.Utils.Notifier=function(){this.observers=[];this.suppressNotifications=0;};Spry.Utils.Notifier.prototype.addObserver=function(_5c){if(!_5c){return;}var len=this.observers.length;for(var i=0;i<len;i++){if(this.observers[i]==_5c){return;}}this.observers[len]=_5c;};Spry.Utils.Notifier.prototype.removeObserver=function(_5d){if(!_5d){return;}for(var i=0;i<this.observers.length;i++){if(this.observers[i]==_5d){this.observers.splice(i,1);break;}}};Spry.Utils.Notifier.prototype.notifyObservers=function(_5e,_5f){if(!_5e){return;}if(!this.suppressNotifications){var len=this.observers.length;for(var i=0;i<len;i++){var obs=this.observers[i];if(obs){if(typeof obs=="function"){obs(_5e,this,_5f);}else{if(obs[_5e]){obs[_5e](this,_5f);}}}}}};Spry.Utils.Notifier.prototype.enableNotifications=function(){if(--this.suppressNotifications<0){this.suppressNotifications=0;Spry.Debug.reportError("Unbalanced enableNotifications() call!\n");}};Spry.Utils.Notifier.prototype.disableNotifications=function(){++this.suppressNotifications;};Spry.Debug={};Spry.Debug.enableTrace=true;Spry.Debug.debugWindow=null;Spry.Debug.onloadDidFire=false;Spry.Utils.addLoadListener(function(){Spry.Debug.onloadDidFire=true;Spry.Debug.flushQueuedMessages();});Spry.Debug.flushQueuedMessages=function(){if(Spry.Debug.flushQueuedMessages.msgs){var _60=Spry.Debug.flushQueuedMessages.msgs;for(var i=0;i<_60.length;i++){Spry.Debug.debugOut(_60[i].msg,_60[i].color);}Spry.Debug.flushQueuedMessages.msgs=null;}};Spry.Debug.createDebugWindow=function(){if(!Spry.Debug.enableTrace||Spry.Debug.debugWindow||!Spry.Debug.onloadDidFire){return;}try{Spry.Debug.debugWindow=document.createElement("div");var div=Spry.Debug.debugWindow;div.style.fontSize="12px";div.style.fontFamily="console";div.style.position="absolute";div.style.width="400px";div.style.height="300px";div.style.overflow="auto";div.style.border="solid 1px black";div.style.backgroundColor="white";div.style.color="black";div.style.bottom="0px";div.style.right="0px";div.setAttribute("id","SpryDebugWindow");document.body.appendChild(Spry.Debug.debugWindow);}catch(e){}};Spry.Debug.debugOut=function(str,_61){if(!Spry.Debug.debugWindow){Spry.Debug.createDebugWindow();if(!Spry.Debug.debugWindow){if(!Spry.Debug.flushQueuedMessages.msgs){Spry.Debug.flushQueuedMessages.msgs=new Array;}Spry.Debug.flushQueuedMessages.msgs.push({msg:str,color:_61});return;}}var d=document.createElement("div");if(_61){d.style.backgroundColor=_61;}d.innerHTML=str;Spry.Debug.debugWindow.appendChild(d);};Spry.Debug.trace=function(str){Spry.Debug.debugOut(str);};Spry.Debug.reportError=function(str){Spry.Debug.debugOut(str,"red");};Spry.Data={};Spry.Data.regionsArray={};Spry.Data.initRegionsOnLoad=true;Spry.Data.initRegions=function(_62){_62=_62?Spry.$(_62):document.body;var _63=null;var _64=Spry.Utils.getNodesByFunc(_62,function(_65){try{if(_65.nodeType!=1){return false;}var _66="spry:region";var _67=_65.attributes.getNamedItem(_66);if(!_67){_66="spry:detailregion";_67=_65.attributes.getNamedItem(_66);}if(_67){if(_63){var _68=_65.parentNode;while(_68){if(_68==_63){Spry.Debug.reportError("Found a nested "+_66+" in the following markup. Nested regions are currently not supported.<br/><pre>"+Spry.Utils.encodeEntities(_68.innerHTML)+"</pre>");return false;}_68=_68.parentNode;}}if(_67.value){_67=_65.attributes.getNamedItem("id");if(!_67||!_67.value){_65.setAttribute("id","spryregion"+(++Spry.Data.initRegions.nextUniqueRegionID));}_63=_65;return true;}else{Spry.Debug.reportError(_66+" attributes require one or more data set names as values!");}}}catch(e){}return false;});var _69,_6a,i;var _6b=[];for(i=0;i<_64.length;i++){var rgn=_64[i];var _6c=false;_69=rgn.attributes.getNamedItem("id").value;attr=rgn.attributes.getNamedItem("spry:region");if(!attr){attr=rgn.attributes.getNamedItem("spry:detailregion");_6c=true;}if(!attr.value){Spry.Debug.reportError("spry:region and spry:detailregion attributes require one or more data set names as values!");continue;}rgn.attributes.removeNamedItem(attr.nodeName);Spry.Utils.removeClassName(rgn,Spry.Data.Region.hiddenRegionClassName);_6a=Spry.Data.Region.strToDataSetsArray(attr.value);if(!_6a.length){Spry.Debug.reportError("spry:region or spry:detailregion attribute has no data set!");continue;}var _6d=false;var _6e=false;var _6f="";var _70=null;var _71={};var _72={};attr=rgn.attributes.getNamedItem("spry:readystate");if(attr&&attr.value){_72["ready"]=attr.value;}attr=rgn.attributes.getNamedItem("spry:errorstate");if(attr&&attr.value){_72["error"]=attr.value;}attr=rgn.attributes.getNamedItem("spry:loadingstate");if(attr&&attr.value){_72["loading"]=attr.value;}attr=rgn.attributes.getNamedItem("spry:expiredstate");if(attr&&attr.value){_72["expired"]=attr.value;}var _73=Spry.Utils.getNodesByFunc(rgn,function(_74){try{if(_74.nodeType==1){var _75=_74.attributes;var _76=Spry.Data.Region.PI.orderedInstructions.length;var _77=null;var _78=null;for(var i=0;i<_76;i++){var _79=Spry.Data.Region.PI.orderedInstructions[i];var _7a=_75.getNamedItem(_79);if(!_7a){continue;}var _7b=Spry.Data.Region.PI.instructions[_79];var _7c=(_74==rgn)?true:_7b.childrenOnly;var _7d=_7b.getOpenTag(_74,_79);var _7e=_7b.getCloseTag(_74,_79);if(_7c){var _7f=document.createComment(_7d);var _80=document.createComment(_7e);if(!_77){_74.insertBefore(_7f,_74.firstChild);}else{_74.insertBefore(_7f,_77.nextSibling);}_77=_7f;if(!_78){_74.appendChild(_80);}else{_74.insertBefore(_80,_78);}_78=_80;}else{var _81=_74.parentNode;_81.insertBefore(document.createComment(_7d),_74);_81.insertBefore(document.createComment(_7e),_74.nextSibling);}if(_79=="spry:state"){_71[_7a.value]=true;}_74.removeAttribute(_79);}if(Spry.Data.Region.enableBehaviorAttributes){var _82=Spry.Data.Region.behaviorAttrs;for(var _83 in _82){var _84=_75.getNamedItem(_83);if(_84){_6d=true;if(_82[_83].setup){_82[_83].setup(_74,_84.value);}}}}}}catch(e){}return false;});_6f=rgn.innerHTML;if(window.ActiveXObject&&!Spry.Data.Region.disableIEInnerHTMLFixUp&&_6f.search(/=\{/)!=-1){if(Spry.Data.Region.debug){Spry.Debug.trace("<hr />Performing IE innerHTML fix up of Region: "+_69+"<br /><br />"+Spry.Utils.encodeEntities(_6f));}_6f=Spry.Utils.fixUpIEInnerHTML(_6f);}if(Spry.Data.Region.debug){Spry.Debug.trace("<hr />Region template markup for '"+_69+"':<br /><br />"+Spry.Utils.encodeEntities(_6f));}if(!_6e){rgn.innerHTML="";}var _85=new Spry.Data.Region(rgn,_69,_6c,_6f,_6a,_71,_72,_6d);Spry.Data.regionsArray[_85.name]=_85;_6b.push(_85);}for(var i=0;i<_6b.length;i++){_6b[i].updateContent();}};Spry.Data.initRegions.nextUniqueRegionID=0;Spry.Data.updateRegion=function(_86){if(!_86||!Spry.Data.regionsArray||!Spry.Data.regionsArray[_86]){return;}try{Spry.Data.regionsArray[_86].updateContent();}catch(e){Spry.Debug.reportError("Spry.Data.updateRegion("+_86+") caught an exception: "+e+"\n");}};Spry.Data.getRegion=function(_87){return Spry.Data.regionsArray[_87];};Spry.Data.updateAllRegions=function(){if(!Spry.Data.regionsArray){return;}for(var _88 in Spry.Data.regionsArray){Spry.Data.updateRegion(_88);}};Spry.Data.getDataSetByName=function(_89){var ds=window[_89];if(typeof ds!="object"||!ds.getData||!ds.filter){return null;}return ds;};Spry.Data.DataSet=function(_8a){Spry.Utils.Notifier.call(this);this.name="";this.internalID=Spry.Data.DataSet.nextDataSetID++;this.curRowID=0;this.data=[];this.unfilteredData=null;this.dataHash={};this.columnTypes={};this.filterFunc=null;this.filterDataFunc=null;this.distinctOnLoad=false;this.distinctFieldsOnLoad=null;this.sortOnLoad=null;this.sortOrderOnLoad="ascending";this.keepSorted=false;this.dataWasLoaded=false;this.pendingRequest=null;this.lastSortColumns=[];this.lastSortOrder="";this.loadIntervalID=0;Spry.Utils.setOptions(this,_8a);};Spry.Data.DataSet.prototype=new Spry.Utils.Notifier();Spry.Data.DataSet.prototype.constructor=Spry.Data.DataSet;Spry.Data.DataSet.prototype.getData=function(_8b){return (_8b&&this.unfilteredData)?this.unfilteredData:this.data;};Spry.Data.DataSet.prototype.getUnfilteredData=function(){return this.getData(true);};Spry.Data.DataSet.prototype.getLoadDataRequestIsPending=function(){return this.pendingRequest!=null;};Spry.Data.DataSet.prototype.getDataWasLoaded=function(){return this.dataWasLoaded;};Spry.Data.DataSet.prototype.getValue=function(_8c,_8d){var _8e=undefined;if(!_8d){_8d=this.getCurrentRow();}switch(_8c){case "ds_RowNumber":_8e=this.getRowNumber(_8d);break;case "ds_RowNumberPlus1":_8e=this.getRowNumber(_8d)+1;break;case "ds_RowCount":_8e=this.getRowCount();break;case "ds_UnfilteredRowCount":_8e=this.getRowCount(true);break;case "ds_CurrentRowNumber":_8e=this.getCurrentRowNumber();break;case "ds_CurrentRowID":_8e=this.getCurrentRowID();break;case "ds_EvenOddRow":_8e=(this.getRowNumber(_8d)%2)?Spry.Data.Region.evenRowClassName:Spry.Data.Region.oddRowClassName;break;case "ds_SortOrder":_8e=this.getSortOrder();break;case "ds_SortColumn":_8e=this.getSortColumn();break;default:if(_8d){_8e=_8d[_8c];}break;}return _8e;};Spry.Data.DataSet.prototype.setDataFromArray=function(arr,_8f){this.notifyObservers("onPreLoad");this.unfilteredData=null;this.filteredData=null;this.data=[];this.dataHash={};var _90=arr.length;for(var i=0;i<_90;i++){var row=arr[i];if(row.ds_RowID==undefined){row.ds_RowID=i;}this.dataHash[row.ds_RowID]=row;this.data.push(row);}this.loadData(_8f);};Spry.Data.DataSet.prototype.loadData=function(_91){var _92=this;this.pendingRequest=new Object;this.dataWasLoaded=false;var _93=function(){_92.pendingRequest=null;_92.dataWasLoaded=true;_92.applyColumnTypes();_92.disableNotifications();_92.filterAndSortData();_92.enableNotifications();_92.notifyObservers("onPostLoad");_92.notifyObservers("onDataChanged");};if(_91){_93();}else{this.pendingRequest.timer=setTimeout(_93,0);}};Spry.Data.DataSet.prototype.filterAndSortData=function(){if(this.filterDataFunc){this.filterData(this.filterDataFunc,true);}if(this.distinctOnLoad){this.distinct(this.distinctFieldsOnLoad);}if(this.keepSorted&&this.getSortColumn()){this.sort(this.lastSortColumns,this.lastSortOrder);}else{if(this.sortOnLoad){this.sort(this.sortOnLoad,this.sortOrderOnLoad);}}if(this.filterFunc){this.filter(this.filterFunc,true);}if(this.data&&this.data.length>0){this.curRowID=this.data[0]["ds_RowID"];}else{this.curRowID=0;}};Spry.Data.DataSet.prototype.cancelLoadData=function(){if(this.pendingRequest&&this.pendingRequest.timer){clearTimeout(this.pendingRequest.timer);}this.pendingRequest=null;};Spry.Data.DataSet.prototype.getRowCount=function(_94){var _95=this.getData(_94);return _95?_95.length:0;};Spry.Data.DataSet.prototype.getRowByID=function(_96){if(!this.data){return null;}return this.dataHash[_96];};Spry.Data.DataSet.prototype.getRowByRowNumber=function(_97,_98){var _99=this.getData(_98);if(_99&&_97>=0&&_97<_99.length){return _99[_97];}return null;};Spry.Data.DataSet.prototype.getCurrentRow=function(){return this.getRowByID(this.curRowID);};Spry.Data.DataSet.prototype.setCurrentRow=function(_9a){if(this.curRowID==_9a){return;}var _9b={oldRowID:this.curRowID,newRowID:_9a};this.curRowID=_9a;this.notifyObservers("onCurrentRowChanged",_9b);};Spry.Data.DataSet.prototype.getRowNumber=function(row,_9c){if(row){var _9d=this.getData(_9c);if(_9d&&_9d.length){var _9e=_9d.length;for(var i=0;i<_9e;i++){if(_9d[i]==row){return i;}}}}return -1;};Spry.Data.DataSet.prototype.getCurrentRowNumber=function(){return this.getRowNumber(this.getCurrentRow());};Spry.Data.DataSet.prototype.getCurrentRowID=function(){return this.curRowID;};Spry.Data.DataSet.prototype.setCurrentRowNumber=function(_9f){if(!this.data||_9f>=this.data.length){Spry.Debug.trace("Invalid row number: "+_9f+"\n");return;}var _a0=this.data[_9f]["ds_RowID"];if(_a0==undefined||this.curRowID==_a0){return;}this.setCurrentRow(_a0);};Spry.Data.DataSet.prototype.findRowsWithColumnValues=function(_a1,_a2,_a3){var _a4=[];var _a5=this.getData(_a3);if(_a5){var _a6=_a5.length;for(var i=0;i<_a6;i++){var row=_a5[i];var _a7=true;for(var _a8 in _a1){if(_a1[_a8]!=row[_a8]){_a7=false;break;}}if(_a7){if(_a2){return row;}_a4.push(row);}}}return _a2?null:_a4;};Spry.Data.DataSet.prototype.setColumnType=function(_a9,_aa){if(_a9){if(typeof _a9=="string"){_a9=[_a9];}for(var i=0;i<_a9.length;i++){this.columnTypes[_a9[i]]=_aa;}}};Spry.Data.DataSet.prototype.getColumnType=function(_ab){if(this.columnTypes[_ab]){return this.columnTypes[_ab];}return "string";};Spry.Data.DataSet.prototype.applyColumnTypes=function(){var _ac=this.getData(true);var _ad=_ac.length;var _ae=[];if(_ad<1){return;}for(var _af in this.columnTypes){var _b0=this.columnTypes[_af];if(_b0!="string"){for(var i=0;i<_ad;i++){var row=_ac[i];var val=row[_af];if(val!=undefined){if(_b0=="number"){row[_af]=new Number(val);}else{if(_b0=="html"){row[_af]=Spry.Utils.decodeEntities(val);}}}}}}};Spry.Data.DataSet.prototype.distinct=function(_b1){if(this.data){var _b2=this.data;this.data=[];this.dataHash={};var _b3=false;var _b4={};var i=0;var _b5=[];if(typeof _b1=="string"){_b5=[_b1];}else{if(_b1){_b5=_b1;}else{for(var _b6 in _b2[0]){_b5[i++]=_b6;}}}for(var i=0;i<_b2.length;i++){var rec=_b2[i];var _b7="";for(var j=0;j<_b5.length;j++){_b6=_b5[j];if(_b6!="ds_RowID"){if(_b7){_b7+=",";}_b7+=_b6+":"+"\""+rec[_b6]+"\"";}}if(!_b4[_b7]){this.data.push(rec);this.dataHash[rec["ds_RowID"]]=rec;_b4[_b7]=true;}else{_b3=true;}}if(_b3){this.notifyObservers("onDataChanged");}}};Spry.Data.DataSet.prototype.getSortColumn=function(){return (this.lastSortColumns&&this.lastSortColumns.length>0)?this.lastSortColumns[0]:"";};Spry.Data.DataSet.prototype.getSortOrder=function(){return this.lastSortOrder?this.lastSortOrder:"";};Spry.Data.DataSet.prototype.sort=function(_b8,_b9){if(!_b8){return;}if(typeof _b8=="string"){_b8=[_b8,"ds_RowID"];}else{if(_b8.length<2&&_b8[0]!="ds_RowID"){_b8.push("ds_RowID");}}if(!_b9){_b9="toggle";}if(_b9=="toggle"){if(this.lastSortColumns.length>0&&this.lastSortColumns[0]==_b8[0]&&this.lastSortOrder=="ascending"){_b9="descending";}else{_b9="ascending";}}if(_b9!="ascending"&&_b9!="descending"){Spry.Debug.reportError("Invalid sort order type specified: "+_b9+"\n");return;}var _ba={oldSortColumns:this.lastSortColumns,oldSortOrder:this.lastSortOrder,newSortColumns:_b8,newSortOrder:_b9};this.notifyObservers("onPreSort",_ba);var _bb=_b8[_b8.length-1];var _bc=Spry.Data.DataSet.prototype.sort.getSortFunc(_bb,this.getColumnType(_bb),_b9);for(var i=_b8.length-2;i>=0;i--){_bb=_b8[i];_bc=Spry.Data.DataSet.prototype.sort.buildSecondarySortFunc(Spry.Data.DataSet.prototype.sort.getSortFunc(_bb,this.getColumnType(_bb),_b9),_bc);}if(this.unfilteredData){this.unfilteredData.sort(_bc);if(this.filterFunc){this.filter(this.filterFunc,true);}}else{this.data.sort(_bc);}this.lastSortColumns=_b8.slice(0);this.lastSortOrder=_b9;this.notifyObservers("onPostSort",_ba);};Spry.Data.DataSet.prototype.sort.getSortFunc=function(_bd,_be,_bf){var _c0=null;if(_be=="number"){if(_bf=="ascending"){_c0=function(a,b){a=a[_bd];b=b[_bd];if(a==undefined||b==undefined){return (a==b)?0:(a?1:-1);}return a-b;};}else{_c0=function(a,b){a=a[_bd];b=b[_bd];if(a==undefined||b==undefined){return (a==b)?0:(a?-1:1);}return b-a;};}}else{if(_be=="date"){if(_bf=="ascending"){_c0=function(a,b){var dA=a[_bd];var dB=b[_bd];dA=dA?(new Date(dA)):0;dB=dB?(new Date(dB)):0;return dA-dB;};}else{_c0=function(a,b){var dA=a[_bd];var dB=b[_bd];dA=dA?(new Date(dA)):0;dB=dB?(new Date(dB)):0;return dB-dA;};}}else{if(_bf=="ascending"){_c0=function(a,b){a=a[_bd];b=b[_bd];if(a==undefined||b==undefined){return (a==b)?0:(a?1:-1);}var tA=a.toString();var tB=b.toString();var _c1=tA.toLowerCase();var _c2=tB.toLowerCase();var _c3=tA.length>tB.length?tB.length:tA.length;for(var i=0;i<_c3;i++){var _c4=_c1.charAt(i);var _c5=_c2.charAt(i);var a_c=tA.charAt(i);var b_c=tB.charAt(i);if(_c4>_c5){return 1;}else{if(_c4<_c5){return -1;}else{if(a_c>b_c){return 1;}else{if(a_c<b_c){return -1;}}}}}if(tA.length==tB.length){return 0;}else{if(tA.length>tB.length){return 1;}}return -1;};}else{_c0=function(a,b){a=a[_bd];b=b[_bd];if(a==undefined||b==undefined){return (a==b)?0:(a?-1:1);}var tA=a.toString();var tB=b.toString();var _c6=tA.toLowerCase();var _c7=tB.toLowerCase();var _c8=tA.length>tB.length?tB.length:tA.length;for(var i=0;i<_c8;i++){var _c9=_c6.charAt(i);var _ca=_c7.charAt(i);var a_c=tA.charAt(i);var b_c=tB.charAt(i);if(_c9>_ca){return -1;}else{if(_c9<_ca){return 1;}else{if(a_c>b_c){return -1;}else{if(a_c<b_c){return 1;}}}}}if(tA.length==tB.length){return 0;}else{if(tA.length>tB.length){return -1;}}return 1;};}}}return _c0;};Spry.Data.DataSet.prototype.sort.buildSecondarySortFunc=function(_cb,_cc){return function(a,b){var ret=_cb(a,b);if(ret==0){ret=_cc(a,b);}return ret;};};Spry.Data.DataSet.prototype.filterData=function(_cd,_ce){var _cf=false;if(!_cd){this.filterDataFunc=null;_cf=true;}else{this.filterDataFunc=_cd;if(this.dataWasLoaded&&((this.unfilteredData&&this.unfilteredData.length)||(this.data&&this.data.length))){if(this.unfilteredData){this.data=this.unfilteredData;this.unfilteredData=null;}var _d0=this.data;this.data=[];this.dataHash={};for(var i=0;i<_d0.length;i++){var _d1=_cd(this,_d0[i],i);if(_d1){this.data.push(_d1);this.dataHash[_d1["ds_RowID"]]=_d1;}}_cf=true;}}if(_cf){if(!_ce){this.disableNotifications();if(this.filterFunc){this.filter(this.filterFunc,true);}this.enableNotifications();}this.notifyObservers("onDataChanged");}};Spry.Data.DataSet.prototype.filter=function(_d2,_d3){var _d4=false;if(!_d2){if(this.filterFunc&&this.unfilteredData){this.data=this.unfilteredData;this.unfilteredData=null;this.filterFunc=null;_d4=true;}}else{this.filterFunc=_d2;if(this.dataWasLoaded&&(this.unfilteredData||(this.data&&this.data.length))){if(!this.unfilteredData){this.unfilteredData=this.data;}var _d5=this.unfilteredData;this.data=[];for(var i=0;i<_d5.length;i++){var _d6=_d2(this,_d5[i],i);if(_d6){this.data.push(_d6);}}_d4=true;}}if(_d4){this.notifyObservers("onDataChanged");}};Spry.Data.DataSet.prototype.startLoadInterval=function(_d7){this.stopLoadInterval();if(_d7>0){var _d8=this;this.loadInterval=_d7;this.loadIntervalID=setInterval(function(){_d8.loadData();},_d7);}};Spry.Data.DataSet.prototype.stopLoadInterval=function(){if(this.loadIntervalID){clearInterval(this.loadIntervalID);}this.loadInterval=0;this.loadIntervalID=null;};Spry.Data.DataSet.nextDataSetID=0;Spry.Data.HTTPSourceDataSet=function(_d9,_da){Spry.Data.DataSet.call(this);this.url=_d9;this.dataSetsForDataRefStrings=new Array;this.hasDataRefStrings=false;this.useCache=true;this.setRequestInfo(_da,true);Spry.Utils.setOptions(this,_da,true);this.recalculateDataSetDependencies();if(this.loadInterval>0){this.startLoadInterval(this.loadInterval);}};Spry.Data.HTTPSourceDataSet.prototype=new Spry.Data.DataSet();Spry.Data.HTTPSourceDataSet.prototype.constructor=Spry.Data.HTTPSourceDataSet;Spry.Data.HTTPSourceDataSet.prototype.setRequestInfo=function(_db,_dc){this.requestInfo=new Spry.Utils.loadURL.Request();this.requestInfo.extractRequestOptions(_db,_dc);if(this.requestInfo.method=="POST"){if(!this.requestInfo.headers){this.requestInfo.headers={};}if(!this.requestInfo.headers["Content-Type"]){this.requestInfo.headers["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8";}}};Spry.Data.HTTPSourceDataSet.prototype.recalculateDataSetDependencies=function(){this.hasDataRefStrings=false;var i=0;for(i=0;i<this.dataSetsForDataRefStrings.length;i++){var ds=this.dataSetsForDataRefStrings[i];if(ds){ds.removeObserver(this);}}this.dataSetsForDataRefStrings=new Array();var _dd=this.getDataRefStrings();var _de=0;for(var n=0;n<_dd.length;n++){var _df=Spry.Data.Region.getTokensFromStr(_dd[n]);for(i=0;_df&&i<_df.length;i++){if(_df[i].search(/{[^}:]+::[^}]+}/)!=-1){var _e0=_df[i].replace(/^\{|::.*\}/g,"");var ds=null;if(!this.dataSetsForDataRefStrings[_e0]){ds=Spry.Data.getDataSetByName(_e0);if(_e0&&ds){this.dataSetsForDataRefStrings[_e0]=ds;this.dataSetsForDataRefStrings[_de++]=ds;this.hasDataRefStrings=true;}}}}}for(i=0;i<this.dataSetsForDataRefStrings.length;i++){var ds=this.dataSetsForDataRefStrings[i];ds.addObserver(this);}};Spry.Data.HTTPSourceDataSet.prototype.getDataRefStrings=function(){var _e1=[];if(this.url){_e1.push(this.url);}if(this.requestInfo&&this.requestInfo.postData){_e1.push(this.requestInfo.postData);}return _e1;};Spry.Data.HTTPSourceDataSet.prototype.attemptLoadData=function(){for(var i=0;i<this.dataSetsForDataRefStrings.length;i++){var ds=this.dataSetsForDataRefStrings[i];if(ds.getLoadDataRequestIsPending()||!ds.getDataWasLoaded()){return;}}this.loadData();};Spry.Data.HTTPSourceDataSet.prototype.onCurrentRowChanged=function(ds,_e2){this.attemptLoadData();};Spry.Data.HTTPSourceDataSet.prototype.onPostSort=function(ds,_e3){this.attemptLoadData();};Spry.Data.HTTPSourceDataSet.prototype.onDataChanged=function(ds,_e4){this.attemptLoadData();};Spry.Data.HTTPSourceDataSet.prototype.loadData=function(){if(!this.url){return;}this.cancelLoadData();var url=this.url;var _e5=this.requestInfo.postData;if(this.hasDataRefStrings){var _e6=true;for(var i=0;i<this.dataSetsForDataRefStrings.length;i++){var ds=this.dataSetsForDataRefStrings[i];if(ds.getLoadDataRequestIsPending()){_e6=false;}else{if(!ds.getDataWasLoaded()){ds.loadData();_e6=false;}}}if(!_e6){return;}url=Spry.Data.Region.processDataRefString(null,this.url,this.dataSetsForDataRefStrings);if(!url){return;}if(_e5&&(typeof _e5)=="string"){_e5=Spry.Data.Region.processDataRefString(null,_e5,this.dataSetsForDataRefStrings);}}this.notifyObservers("onPreLoad");this.data=null;this.dataWasLoaded=false;this.unfilteredData=null;this.dataHash=null;this.curRowID=0;var req=this.requestInfo.clone();req.url=url;req.postData=_e5;this.pendingRequest=new Object;this.pendingRequest.data=Spry.Data.HTTPSourceDataSet.LoadManager.loadData(req,this,this.useCache);};Spry.Data.HTTPSourceDataSet.prototype.cancelLoadData=function(){if(this.pendingRequest){Spry.Data.HTTPSourceDataSet.LoadManager.cancelLoadData(this.pendingRequest.data,this);this.pendingRequest=null;}};Spry.Data.HTTPSourceDataSet.prototype.getURL=function(){return this.url;};Spry.Data.HTTPSourceDataSet.prototype.setURL=function(url,_e7){if(this.url==url){if(!_e7||(this.requestInfo.method==_e7.method&&(_e7.method!="POST"||this.requestInfo.postData==_e7.postData))){return;}}this.url=url;this.setRequestInfo(_e7);this.cancelLoadData();this.recalculateDataSetDependencies();this.dataWasLoaded=false;};Spry.Data.HTTPSourceDataSet.prototype.setDataFromDoc=function(_e8){this.pendingRequest=null;this.loadDataIntoDataSet(_e8);this.applyColumnTypes();this.disableNotifications();this.filterAndSortData();this.enableNotifications();this.notifyObservers("onPostLoad");this.notifyObservers("onDataChanged");};Spry.Data.HTTPSourceDataSet.prototype.loadDataIntoDataSet=function(_e9){this.dataHash=new Object;this.data=new Array;this.dataWasLoaded=true;};Spry.Data.HTTPSourceDataSet.prototype.xhRequestProcessor=function(_ea){var _eb=_ea.responseText;if(_ea.status==200||_ea.status==0){return _eb;}return null;};Spry.Data.HTTPSourceDataSet.prototype.sessionExpiredChecker=function(req){if(req.xhRequest.responseText=="session expired"){return true;}return false;};Spry.Data.HTTPSourceDataSet.prototype.setSessionExpiredChecker=function(_ec){this.sessionExpiredChecker=_ec;};Spry.Data.HTTPSourceDataSet.prototype.onRequestResponse=function(_ed,req){this.setDataFromDoc(_ed.rawData);};Spry.Data.HTTPSourceDataSet.prototype.onRequestError=function(_ee,req){this.notifyObservers("onLoadError",req);};Spry.Data.HTTPSourceDataSet.prototype.onRequestSessionExpired=function(_ef,req){this.notifyObservers("onSessionExpired",req);};Spry.Data.HTTPSourceDataSet.LoadManager={};Spry.Data.HTTPSourceDataSet.LoadManager.cache=[];Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest=function(_f0,_f1,_f2){Spry.Utils.Notifier.call(this);this.reqInfo=_f0;this.rawData=null;this.timer=null;this.state=Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.NOT_LOADED;this.xhRequestProcessor=_f1;this.sessionExpiredChecker=_f2;};Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.prototype=new Spry.Utils.Notifier();Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.prototype.constructor=Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest;Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.NOT_LOADED=1;Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_REQUESTED=2;Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_FAILED=3;Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_SUCCESSFUL=4;Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.prototype.loadDataCallback=function(req){if(req.xhRequest.readyState!=4){return;}var _f3=null;if(this.xhRequestProcessor){_f3=this.xhRequestProcessor(req.xhRequest);}if(this.sessionExpiredChecker){Spry.Utils.setOptions(req,{"rawData":_f3},false);if(this.sessionExpiredChecker(req)){this.state=Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_FAILED;this.notifyObservers("onRequestSessionExpired",req);this.observers.length=0;return;}}if(!_f3){this.state=Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_FAILED;this.notifyObservers("onRequestError",req);this.observers.length=0;return;}this.rawData=_f3;this.state=Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_SUCCESSFUL;this.notifyObservers("onRequestResponse",req);this.observers.length=0;};Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.prototype.loadData=function(){var _f4=this;this.cancelLoadData();this.rawData=null;this.state=Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_REQUESTED;var _f5=this.reqInfo.clone();_f5.successCallback=function(req){_f4.loadDataCallback(req);};_f5.errorCallback=_f5.successCallback;this.timer=setTimeout(function(){_f4.timer=null;Spry.Utils.loadURL(_f5.method,_f5.url,_f5.async,_f5.successCallback,_f5);},0);};Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.prototype.cancelLoadData=function(){if(this.state==Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_REQUESTED){if(this.timer){this.timer.clearTimeout();this.timer=null;}this.rawData=null;this.state=Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.NOT_LOADED;}};Spry.Data.HTTPSourceDataSet.LoadManager.getCacheKey=function(_f6){return _f6.method+"::"+_f6.url+"::"+_f6.postData+"::"+_f6.username;};Spry.Data.HTTPSourceDataSet.LoadManager.loadData=function(_f7,ds,_f8){if(!_f7){return null;}var _f9=null;var _fa=null;if(_f8){_fa=Spry.Data.HTTPSourceDataSet.LoadManager.getCacheKey(_f7);_f9=Spry.Data.HTTPSourceDataSet.LoadManager.cache[_fa];}if(_f9){if(_f9.state==Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_REQUESTED){if(ds){_f9.addObserver(ds);}return _f9;}else{if(_f9.state==Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest.LOAD_SUCCESSFUL){if(ds){setTimeout(function(){ds.setDataFromDoc(_f9.rawData);},0);}return _f9;}}}if(!_f9){_f9=new Spry.Data.HTTPSourceDataSet.LoadManager.CachedRequest(_f7,(ds?ds.xhRequestProcessor:null),(ds?ds.sessionExpiredChecker:null));if(_f8){Spry.Data.HTTPSourceDataSet.LoadManager.cache[_fa]=_f9;_f9.addObserver({onRequestError:function(){Spry.Data.HTTPSourceDataSet.LoadManager.cache[_fa]=undefined;}});}}if(ds){_f9.addObserver(ds);}_f9.loadData();return _f9;};Spry.Data.HTTPSourceDataSet.LoadManager.cancelLoadData=function(_fb,ds){if(_fb){if(ds){_fb.removeObserver(ds);}else{_fb.cancelLoadData();}}};Spry.Data.XMLDataSet=function(_fc,_fd,_fe){this.xpath=_fd;this.doc=null;this.subPaths=[];this.entityEncodeStrings=true;Spry.Data.HTTPSourceDataSet.call(this,_fc,_fe);var _ff=typeof this.subPaths;if(_ff=="string"||(_ff=="object"&&this.subPaths.constructor!=Array)){this.subPaths=[this.subPaths];}};Spry.Data.XMLDataSet.prototype=new Spry.Data.HTTPSourceDataSet();Spry.Data.XMLDataSet.prototype.constructor=Spry.Data.XMLDataSet;Spry.Data.XMLDataSet.prototype.getDataRefStrings=function(){var _100=[];if(this.url){_100.push(this.url);}if(this.xpath){_100.push(this.xpath);}if(this.requestInfo&&this.requestInfo.postData){_100.push(this.requestInfo.postData);}return _100;};Spry.Data.XMLDataSet.prototype.getDocument=function(){return this.doc;};Spry.Data.XMLDataSet.prototype.getXPath=function(){return this.xpath;};Spry.Data.XMLDataSet.prototype.setXPath=function(path){if(this.xpath!=path){this.xpath=path;if(this.dataWasLoaded&&this.doc){this.notifyObservers("onPreLoad");this.setDataFromDoc(this.doc);}}};Spry.Data.XMLDataSet.nodeContainsElementNode=function(node){if(node){node=node.firstChild;while(node){if(node.nodeType==1){return true;}node=node.nextSibling;}}return false;};Spry.Data.XMLDataSet.getNodeText=function(node,_101,_102){var txt="";if(!node){return;}try{var _103=node.firstChild;while(_103){try{if(_103.nodeType==3){txt+=_101?Spry.Utils.encodeEntities(_103.data):_103.data;}else{if(_103.nodeType==4){txt+=_102?Spry.Utils.encodeEntities(_103.data):_103.data;}}}catch(e){Spry.Debug.reportError("Spry.Data.XMLDataSet.getNodeText() exception caught: "+e+"\n");}_103=_103.nextSibling;}}catch(e){Spry.Debug.reportError("Spry.Data.XMLDataSet.getNodeText() exception caught: "+e+"\n");}return txt;};Spry.Data.XMLDataSet.createObjectForNode=function(node,_104,_105){if(!node){return null;}var obj=new Object();var i=0;var attr=null;try{for(i=0;i<node.attributes.length;i++){attr=node.attributes[i];if(attr&&attr.nodeType==2){obj["@"+attr.name]=attr.value;}}}catch(e){Spry.Debug.reportError("Spry.Data.XMLDataSet.createObjectForNode() caught exception while accessing attributes: "+e+"\n");}var _106=node.firstChild;if(_106&&!_106.nextSibling&&_106.nodeType!=1){obj[node.nodeName]=Spry.Data.XMLDataSet.getNodeText(node,_104,_105);}while(_106){if(_106.nodeType==1){if(!Spry.Data.XMLDataSet.nodeContainsElementNode(_106)){obj[_106.nodeName]=Spry.Data.XMLDataSet.getNodeText(_106,_104,_105);try{var _107=_106.nodeName+"/@";for(i=0;i<_106.attributes.length;i++){attr=_106.attributes[i];if(attr&&attr.nodeType==2){obj[_107+attr.name]=attr.value;}}}catch(e){Spry.Debug.reportError("Spry.Data.XMLDataSet.createObjectForNode() caught exception while accessing attributes: "+e+"\n");}}}_106=_106.nextSibling;}return obj;};Spry.Data.XMLDataSet.getRecordSetFromXMLDoc=function(_108,path,_109,_10a){if(!_108||!path){return null;}var _10b=new Object();_10b.xmlDoc=_108;_10b.xmlPath=path;_10b.dataHash=new Object;_10b.data=new Array;_10b.getData=function(){return this.data;};var ctx=new ExprContext(_108);var _10c=xpathParse(path);var e=_10c.evaluate(ctx);var _10d=e.nodeSetValue();var _10e=true;if(_10d&&_10d.length>0){_10e=_10d[0].nodeType!=2;}var _10f=0;var _110=true;var _111=false;if(typeof _10a=="boolean"){_110=_111=_10a;}for(var i=0;i<_10d.length;i++){var _112=null;if(_109){_112=new Object;}else{if(_10e){_112=Spry.Data.XMLDataSet.createObjectForNode(_10d[i],_110,_111);}else{_112=new Object;_112["@"+_10d[i].name]=_10d[i].value;}}if(_112){_112["ds_RowID"]=_10f++;_112["ds_XMLNode"]=_10d[i];_10b.dataHash[_112["ds_RowID"]]=_112;_10b.data.push(_112);}}return _10b;};Spry.Data.XMLDataSet.PathNode=function(path){this.path=path;this.subPaths=[];this.xpath="";};Spry.Data.XMLDataSet.PathNode.prototype.addSubPath=function(path){var node=this.findSubPath(path);if(!node){node=new Spry.Data.XMLDataSet.PathNode(path);this.subPaths.push(node);}return node;};Spry.Data.XMLDataSet.PathNode.prototype.findSubPath=function(path){var _113=this.subPaths.length;for(var i=0;i<_113;i++){var _114=this.subPaths[i];if(path==_114.path){return _114;}}return null;};Spry.Data.XMLDataSet.PathNode.prototype.consolidate=function(){var _115=this.subPaths.length;if(!this.xpath&&_115==1){var _116=this.subPaths[0];this.path+=((_116[0]!="/")?"/":"")+_116.path;this.xpath=_116.xpath;this.subPaths=_116.subPaths;this.consolidate();return;}for(var i=0;i<_115;i++){this.subPaths[i].consolidate();}};Spry.Data.XMLDataSet.prototype.convertXPathsToPathTree=function(_117){var _118=_117.length;var root=new Spry.Data.XMLDataSet.PathNode("");for(var i=0;i<_118;i++){var _119=_117[i];var _11a=_119.replace(/\/\//g,"/__SPRYDS__");_11a=_11a.replace(/^\//,"");var _11b=_11a.split(/\//);var _11c=_11b.length;var node=root;for(var j=0;j<_11c;j++){var path=_11b[j].replace(/__SPRYDS__/,"//");node=node.addSubPath(path);}node.xpath=_119;}root.consolidate();return root;};Spry.Data.XMLDataSet.prototype.flattenSubPaths=function(rs,_11d){if(!rs||!_11d){return;}var _11e=_11d.length;if(_11e<1){return;}var data=rs.data;var _11f={};var _120=[];var _121=[];for(var i=0;i<_11e;i++){var _122=_11d[i];if(typeof _122=="object"){_122=_122.path;}if(!_122){_122="";}_120[i]=Spry.Data.Region.processDataRefString(null,_122,this.dataSetsForDataRefStrings);_121[i]=_120[i].replace(/\[.*\]/g,"");}var row;var _123=data.length;var _124=[];for(var i=0;i<_123;i++){row=data[i];var _125=[row];for(var j=0;j<_11e;j++){var _126=Spry.Data.XMLDataSet.getRecordSetFromXMLDoc(row.ds_XMLNode,_120[j],(_11d[j].xpath?false:true),this.entityEncodeStrings);if(_126&&_126.data&&_126.data.length){if(typeof _11d[j]=="object"&&_11d[j].subPaths){var sp=_11d[j].subPaths;spType=typeof sp;if(spType=="string"){sp=[sp];}else{if(spType=="object"&&spType.constructor==Object){sp=[sp];}}this.flattenSubPaths(_126,sp);}var _127=_126.data;var _128=_127.length;var _129=_121[j]+"/";var _12a=_125.length;var _12b=[];for(var k=0;k<_12a;k++){var _12c=_125[k];for(var l=0;l<_128;l++){var _12d=new Object;var _12e=_127[l];for(prop in _12c){_12d[prop]=_12c[prop];}for(var prop in _12e){var _12f=_129+prop;if(_129==(prop+"/")||_129.search(new RegExp("\\/"+prop+"\\/$"))!=-1){_12f=_121[j];}_12d[_12f]=_12e[prop];}_12b.push(_12d);}}_125=_12b;}}_124=_124.concat(_125);}data=_124;_123=data.length;for(i=0;i<_123;i++){row=data[i];row.ds_RowID=i;_11f[row.ds_RowID]=row;}rs.data=data;rs.dataHash=_11f;};Spry.Data.XMLDataSet.prototype.loadDataIntoDataSet=function(_130){var rs=null;var _131=Spry.Data.Region.processDataRefString(null,this.xpath,this.dataSetsForDataRefStrings);var _132=this.subPaths;var _133=false;if(this.subPaths&&this.subPaths.length>0){var _134=[];var _135=_132.length;for(var i=0;i<_135;i++){var _136=Spry.Data.Region.processDataRefString(null,_132[i],this.dataSetsForDataRefStrings);if(_136.charAt(0)!="/"){_136=_131+"/"+_136;}_134.push(_136);}_134.unshift(_131);var _137=this.convertXPathsToPathTree(_134);_131=_137.path;_132=_137.subPaths;_133=_137.xpath?false:true;}rs=Spry.Data.XMLDataSet.getRecordSetFromXMLDoc(_130,_131,_133,this.entityEncodeStrings);if(!rs){Spry.Debug.reportError("Spry.Data.XMLDataSet.loadDataIntoDataSet() failed to create dataSet '"+this.name+"'for '"+this.xpath+"' - "+this.url+"\n");return;}this.flattenSubPaths(rs,_132);this.doc=rs.xmlDoc;this.data=rs.data;this.dataHash=rs.dataHash;this.dataWasLoaded=(this.doc!=null);};Spry.Data.XMLDataSet.prototype.xhRequestProcessor=function(_138){var resp=_138.responseXML;var _139=false;if(_138.status!=200){if(_138.status==0){if(_138.responseText&&(!resp||!resp.firstChild)){_139=true;}}}else{if(!resp){_139=true;}}if(_139){resp=Spry.Utils.stringToXMLDoc(_138.responseText);}if(!resp||!resp.firstChild||resp.firstChild.nodeName=="parsererror"){return null;}return resp;};Spry.Data.XMLDataSet.prototype.sessionExpiredChecker=function(req){if(req.xhRequest.responseText=="session expired"){return true;}else{if(req.rawData){var _13a=req.rawData.documentElement.firstChild;if(_13a&&_13a.nodeValue=="session expired"){return true;}}}return false;};Spry.Data.Region=function(_13b,name,_13c,data,_13d,_13e,_13f,_140){this.regionNode=_13b;this.name=name;this.isDetailRegion=_13c;this.data=data;this.dataSets=_13d;this.hasBehaviorAttributes=_140;this.tokens=null;this.currentState=null;this.states={ready:true};this.stateMap={};Spry.Utils.setOptions(this.states,_13e);Spry.Utils.setOptions(this.stateMap,_13f);for(var i=0;i<this.dataSets.length;i++){var ds=this.dataSets[i];try{if(ds){ds.addObserver(this);}}catch(e){Spry.Debug.reportError("Failed to add '"+this.name+"' as a dataSet observer!\n");}}};Spry.Data.Region.hiddenRegionClassName="SpryHiddenRegion";Spry.Data.Region.evenRowClassName="even";Spry.Data.Region.oddRowClassName="odd";Spry.Data.Region.notifiers={};Spry.Data.Region.evalScripts=true;Spry.Data.Region.addObserver=function(_141,_142){var n=Spry.Data.Region.notifiers[_141];if(!n){n=new Spry.Utils.Notifier();Spry.Data.Region.notifiers[_141]=n;}n.addObserver(_142);};Spry.Data.Region.removeObserver=function(_143,_144){var n=Spry.Data.Region.notifiers[_143];if(n){n.removeObserver(_144);}};Spry.Data.Region.notifyObservers=function(_145,_146,data){var n=Spry.Data.Region.notifiers[_146.name];if(n){var _147={};if(data&&typeof data=="object"){_147=data;}else{_147.data=data;}_147.region=_146;_147.regionID=_146.name;_147.regionNode=_146.regionNode;n.notifyObservers(_145,_147);}};Spry.Data.Region.RS_Error=1;Spry.Data.Region.RS_LoadingData=2;Spry.Data.Region.RS_PreUpdate=4;Spry.Data.Region.RS_PostUpdate=8;Spry.Data.Region.prototype.getState=function(){return this.currentState;};Spry.Data.Region.prototype.mapState=function(_148,_149){this.stateMap[_148]=_149;};Spry.Data.Region.prototype.getMappedState=function(_14a){var _14b=this.stateMap[_14a];return _14b?_14b:_14a;};Spry.Data.Region.prototype.setState=function(_14c,_14d){var _14e={state:_14c,mappedState:this.getMappedState(_14c)};if(!_14d){Spry.Data.Region.notifyObservers("onPreStateChange",this,_14e);}this.currentState=_14e.mappedState?_14e.mappedState:_14c;if(this.states[_14c]){var _14f={state:this.currentState};if(!_14d){Spry.Data.Region.notifyObservers("onPreUpdate",this,_14f);}var str=this.transform();if(Spry.Data.Region.debug){Spry.Debug.trace("<hr />Generated region markup for '"+this.name+"':<br /><br />"+Spry.Utils.encodeEntities(str));}Spry.Utils.setInnerHTML(this.regionNode,str,!Spry.Data.Region.evalScripts);if(this.hasBehaviorAttributes){this.attachBehaviors();}if(!_14d){Spry.Data.Region.notifyObservers("onPostUpdate",this,_14f);}}if(!_14d){Spry.Data.Region.notifyObservers("onPostStateChange",this,_14e);}};Spry.Data.Region.prototype.getDataSets=function(){return this.dataSets;};Spry.Data.Region.prototype.addDataSet=function(_150){if(!_150){return;}if(!this.dataSets){this.dataSets=new Array;}for(var i=0;i<this.dataSets.length;i++){if(this.dataSets[i]==_150){return;}}this.dataSets.push(_150);_150.addObserver(this);};Spry.Data.Region.prototype.removeDataSet=function(_151){if(!_151||this.dataSets){return;}for(var i=0;i<this.dataSets.length;i++){if(this.dataSets[i]==_151){this.dataSets.splice(i,1);_151.removeObserver(this);return;}}};Spry.Data.Region.prototype.onPreLoad=function(_152){if(this.currentState!="loading"){this.setState("loading");}};Spry.Data.Region.prototype.onLoadError=function(_153){if(this.currentState!="error"){this.setState("error");}Spry.Data.Region.notifyObservers("onError",this);};Spry.Data.Region.prototype.onSessionExpired=function(_154){if(this.currentState!="expired"){this.setState("expired");}Spry.Data.Region.notifyObservers("onExpired",this);};Spry.Data.Region.prototype.onCurrentRowChanged=function(_155,data){if(this.isDetailRegion){this.updateContent();}};Spry.Data.Region.prototype.onPostSort=function(_156,data){this.updateContent();};Spry.Data.Region.prototype.onDataChanged=function(_157,data){this.updateContent();};Spry.Data.Region.enableBehaviorAttributes=true;Spry.Data.Region.behaviorAttrs={};Spry.Data.Region.behaviorAttrs["spry:select"]={attach:function(rgn,node,_158){var _159=null;try{_159=node.attributes.getNamedItem("spry:selectgroup").value;}catch(e){}if(!_159){_159="default";}Spry.Utils.addEventListener(node,"click",function(_15a){Spry.Utils.SelectionManager.select(_159,node,_158);},false);if(node.attributes.getNamedItem("spry:selected")){Spry.Utils.SelectionManager.select(_159,node,_158);}}};Spry.Data.Region.behaviorAttrs["spry:hover"]={attach:function(rgn,node,_15b){Spry.Utils.addEventListener(node,"mouseover",function(_15c){Spry.Utils.addClassName(node,_15b);},false);Spry.Utils.addEventListener(node,"mouseout",function(_15d){Spry.Utils.removeClassName(node,_15b);},false);}};Spry.Data.Region.setUpRowNumberForEvenOddAttr=function(node,attr,_15e,_15f){if(!_15e){Spry.Debug.showError("The "+attr+" attribute requires a CSS class name as its value!");node.attributes.removeNamedItem(attr);return;}var _160="";var _161=_15e.split(/\s/);if(_161.length>1){_160=_161[0];node.setAttribute(attr,_161[1]);}node.setAttribute(_15f,"{"+(_160?(_160+"::"):"")+"ds_RowNumber}");};Spry.Data.Region.behaviorAttrs["spry:even"]={setup:function(node,_162){Spry.Data.Region.setUpRowNumberForEvenOddAttr(node,"spry:even",_162,"spryevenrownumber");},attach:function(rgn,node,_163){if(_163){rowNumAttr=node.attributes.getNamedItem("spryevenrownumber");if(rowNumAttr&&rowNumAttr.value){var _164=parseInt(rowNumAttr.value);if(_164%2){Spry.Utils.addClassName(node,_163);}}}node.removeAttribute("spry:even");node.removeAttribute("spryevenrownumber");}};Spry.Data.Region.behaviorAttrs["spry:odd"]={setup:function(node,_165){Spry.Data.Region.setUpRowNumberForEvenOddAttr(node,"spry:odd",_165,"spryoddrownumber");},attach:function(rgn,node,_166){if(_166){rowNumAttr=node.attributes.getNamedItem("spryoddrownumber");if(rowNumAttr&&rowNumAttr.value){var _167=parseInt(rowNumAttr.value);if(_167%2==0){Spry.Utils.addClassName(node,_166);}}}node.removeAttribute("spry:odd");node.removeAttribute("spryoddrownumber");}};Spry.Data.Region.setRowAttrClickHandler=function(node,_168,_169,_16a){if(_168){var ds=Spry.Data.getDataSetByName(_168);if(ds){rowIDAttr=node.attributes.getNamedItem(_169);if(rowIDAttr){var _16b=rowIDAttr.value;if(_16b){Spry.Utils.addEventListener(node,"click",function(_16c){ds[_16a](_16b);},false);}}}}};Spry.Data.Region.behaviorAttrs["spry:setrow"]={setup:function(node,_16d){if(!_16d){Spry.Debug.reportError("The spry:setrow attribute requires a data set name as its value!");node.removeAttribute("spry:setrow");return;}node.setAttribute("spryrowid","{"+_16d+"::ds_RowID}");},attach:function(rgn,node,_16e){Spry.Data.Region.setRowAttrClickHandler(node,_16e,"spryrowid","setCurrentRow");node.removeAttribute("spry:setrow");node.removeAttribute("spryrowid");}};Spry.Data.Region.behaviorAttrs["spry:setrownumber"]={setup:function(node,_16f){if(!_16f){Spry.Debug.reportError("The spry:setrownumber attribute requires a data set name as its value!");node.removeAttribute("spry:setrownumber");return;}node.setAttribute("spryrownumber","{"+_16f+"::ds_RowID}");},attach:function(rgn,node,_170){Spry.Data.Region.setRowAttrClickHandler(node,_170,"spryrownumber","setCurrentRowNumber");node.removeAttribute("spry:setrownumber");node.removeAttribute("spryrownumber");}};Spry.Data.Region.behaviorAttrs["spry:sort"]={attach:function(rgn,node,_171){if(!_171){return;}var ds=rgn.getDataSets()[0];var _172="toggle";var _173=_171.split(/\s/);if(_173.length>1){var _174=Spry.Data.getDataSetByName(_173[0]);if(_174){ds=_174;_173.shift();}if(_173.length>1){var str=_173[_173.length-1];if(str=="ascending"||str=="descending"||str=="toggle"){_172=str;_173.pop();}}}if(ds&&_173.length>0){Spry.Utils.addEventListener(node,"click",function(_175){ds.sort(_173,_172);},false);}node.removeAttribute("spry:sort");}};Spry.Data.Region.prototype.attachBehaviors=function(){var rgn=this;Spry.Utils.getNodesByFunc(this.regionNode,function(node){if(!node||node.nodeType!=1){return false;}try{var _176=Spry.Data.Region.behaviorAttrs;for(var _177 in _176){var attr=node.attributes.getNamedItem(_177);if(attr){var _178=_176[_177];if(_178&&_178.attach){_178.attach(rgn,node,attr.value);}}}}catch(e){}return false;});};Spry.Data.Region.prototype.updateContent=function(){var _179=true;var _17a=this.getDataSets();if(!_17a||_17a.length<1){Spry.Debug.reportError("updateContent(): Region '"+this.name+"' has no data set!\n");return;}for(var i=0;i<_17a.length;i++){var ds=_17a[i];if(ds){if(ds.getLoadDataRequestIsPending()){_179=false;}else{if(!ds.getDataWasLoaded()){ds.loadData();_179=false;}}}}if(!_179){Spry.Data.Region.notifyObservers("onLoadingData",this);return;}this.setState("ready");};Spry.Data.Region.prototype.clearContent=function(){this.regionNode.innerHTML="";};Spry.Data.Region.processContentPI=function(_17b){var _17c="";var _17d=/<!--\s*<\/?spry:content\s*[^>]*>\s*-->/mg;var _17e=0;var _17f=0;while(_17b.length){var _180=_17d.exec(_17b);if(!_180||!_180[0]){_17c+=_17b.substr(_17e,_17b.length-_17e);break;}if(!_17f&&_180.index!=_17e){_17c+=_17b.substr(_17e,_180.index-_17e);}if(_180[0].search(/<\//)!=-1){--_17f;if(_17f){Spry.Debug.reportError("Nested spry:content regions are not allowed!\n");}}else{++_17f;var _181=_180[0].replace(/.*\bdataref="/,"");_17c+=_181.replace(/".*$/,"");}_17e=_17d.lastIndex;}return _17c;};Spry.Data.Region.prototype.tokenizeData=function(_182){if(!_182){return null;}var _183=new Spry.Data.Region.Token(Spry.Data.Region.Token.LIST_TOKEN,null,null,null);var _184=new Array;var _185=Spry.Data.Region.processContentPI(_182);_184.push(_183);var _186=/((<!--\s*){0,1}<\/{0,1}spry:[^>]+>(\s*-->){0,1})|((\{|%7[bB])[^\}\s%]+(\}|%7[dD]))/mg;var _187=0;while(_185.length){var _188=_186.exec(_185);var _189=null;if(!_188||!_188[0]){var str=_185.substr(_187,_185.length-_187);_189=new Spry.Data.Region.Token(Spry.Data.Region.Token.STRING_TOKEN,null,str,str);_184[_184.length-1].addChild(_189);break;}if(_188.index!=_187){var str=_185.substr(_187,_188.index-_187);_189=new Spry.Data.Region.Token(Spry.Data.Region.Token.STRING_TOKEN,null,str,str);_184[_184.length-1].addChild(_189);}if(_188[0].search(/^({|%7[bB])/)!=-1){var _18a=_188[0];var _18b=_188[0];_18a=_18a.replace(/^({|%7[bB])/,"");_18a=_18a.replace(/(}|%7[dD])$/,"");var _18c=null;var _18d=_18a.split(/::/);if(_18d.length>1){_18c=_18d[0];_18a=_18d[1];}_18b=_18b.replace(/^%7[bB]/,"{");_18b=_18b.replace(/%7[dD]$/,"}");_189=new Spry.Data.Region.Token(Spry.Data.Region.Token.VALUE_TOKEN,_18c,_18a,new String(_18b));_184[_184.length-1].addChild(_189);}else{if(_188[0].charAt(0)=="<"){var _18e=_188[0].replace(/^(<!--\s*){0,1}<\/?/,"");_18e=_18e.replace(/>(\s*-->){0,1}|\s.*$/,"");if(_188[0].search(/<\//)!=-1){if(_184[_184.length-1].tokenType!=Spry.Data.Region.Token.PROCESSING_INSTRUCTION_TOKEN){Spry.Debug.reportError("Invalid processing instruction close tag: "+_18e+" -- "+_188[0]+"\n");return null;}_184.pop();}else{var _18f=Spry.Data.Region.PI.instructions[_18e];if(_18f){var _190=null;var _191="";if(_188[0].search(/^.*\bselect=\"/)!=-1){_191=_188[0].replace(/^.*\bselect=\"/,"");_191=_191.replace(/".*$/,"");if(_191){_190=Spry.Data.getDataSetByName(_191);if(!_190){Spry.Debug.reportError("Failed to retrieve data set ("+_191+") for "+_18e+"\n");_191="";}}}var _192=null;if(_188[0].search(/^.*\btest=\"/)!=-1){_192=_188[0].replace(/^.*\btest=\"/,"");_192=_192.replace(/".*$/,"");_192=Spry.Utils.decodeEntities(_192);}var _193=null;if(_188[0].search(/^.*\bname=\"/)!=-1){_193=_188[0].replace(/^.*\bname=\"/,"");_193=_193.replace(/".*$/,"");_193=Spry.Utils.decodeEntities(_193);}var _194=new Spry.Data.Region.Token.PIData(_18e,_191,_192,_193);_189=new Spry.Data.Region.Token(Spry.Data.Region.Token.PROCESSING_INSTRUCTION_TOKEN,_190,_194,new String(_188[0]));_184[_184.length-1].addChild(_189);_184.push(_189);}else{Spry.Debug.reportError("Unsupported region processing instruction: "+_188[0]+"\n");return null;}}}else{Spry.Debug.reportError("Invalid region token: "+_188[0]+"\n");return null;}}_187=_186.lastIndex;}return _183;};Spry.Data.Region.prototype.callScriptFunction=function(_195,_196){var _197=undefined;_195=_195.replace(/^\s*\{?\s*function::\s*|\s*\}?\s*$/g,"");var func=Spry.Utils.getObjectByName(_195);if(func){_197=func(this.name,function(){return _196.getValueFromDataSet.apply(_196,arguments);});}return _197;};Spry.Data.Region.prototype.evaluateExpression=function(_198,_199){var _19a=undefined;try{if(_198.search(/^\s*function::/)!=-1){_19a=this.callScriptFunction(_198,_199);}else{_19a=Spry.Utils.eval(Spry.Data.Region.processDataRefString(_199,_198,null,true));}}catch(e){Spry.Debug.trace("Caught exception in Spry.Data.Region.prototype.evaluateExpression() while evaluating: "+Spry.Utils.encodeEntities(_198)+"\n    Exception:"+e+"\n");}return _19a;};Spry.Data.Region.prototype.processTokenChildren=function(_19b,_19c,_19d){var _19e=_19c.children;var len=_19e.length;for(var i=0;i<len;i++){this.processTokens(_19b,_19e[i],_19d);}};Spry.Data.Region.prototype.processTokens=function(_19f,_1a0,_1a1){var i=0;switch(_1a0.tokenType){case Spry.Data.Region.Token.LIST_TOKEN:this.processTokenChildren(_19f,_1a0,_1a1);break;case Spry.Data.Region.Token.STRING_TOKEN:_19f.push(_1a0.data);break;case Spry.Data.Region.Token.PROCESSING_INSTRUCTION_TOKEN:if(_1a0.data.name=="spry:repeat"){var _1a2=null;if(_1a0.dataSet){_1a2=_1a0.dataSet;}else{_1a2=this.dataSets[0];}if(_1a2){var _1a3=_1a1.getDataSetContext(_1a2);if(!_1a3){Spry.Debug.reportError("processTokens() failed to get a data set context!\n");break;}_1a3.pushState();var _1a4=_1a3.getData();var _1a5=_1a4.length;for(i=0;i<_1a5;i++){_1a3.setRowIndex(i);var _1a6=true;if(_1a0.data.jsExpr){_1a6=this.evaluateExpression(_1a0.data.jsExpr,_1a1);}if(_1a6){this.processTokenChildren(_19f,_1a0,_1a1);}}_1a3.popState();}}else{if(_1a0.data.name=="spry:if"){var _1a6=true;if(_1a0.data.jsExpr){_1a6=this.evaluateExpression(_1a0.data.jsExpr,_1a1);}if(_1a6){this.processTokenChildren(_19f,_1a0,_1a1);}}else{if(_1a0.data.name=="spry:choose"){var _1a7=null;var _1a8=null;var _1a6=false;var j=0;for(j=0;j<_1a0.children.length;j++){var _1a9=_1a0.children[j];if(_1a9.tokenType==Spry.Data.Region.Token.PROCESSING_INSTRUCTION_TOKEN){if(_1a9.data.name=="spry:when"){if(_1a9.data.jsExpr){_1a6=this.evaluateExpression(_1a9.data.jsExpr,_1a1);if(_1a6){_1a8=_1a9;break;}}}else{if(_1a9.data.name=="spry:default"){_1a7=_1a9;}}}}if(!_1a8&&_1a7){_1a8=_1a7;}if(_1a8){this.processTokenChildren(_19f,_1a8,_1a1);}}else{if(_1a0.data.name=="spry:state"){var _1a6=true;if(!_1a0.data.regionState||_1a0.data.regionState==this.currentState){this.processTokenChildren(_19f,_1a0,_1a1);}}else{Spry.Debug.reportError("processTokens(): Unknown processing instruction: "+_1a0.data.name+"\n");return "";}}}}break;case Spry.Data.Region.Token.VALUE_TOKEN:var _1a2=_1a0.dataSet;var val=undefined;if(_1a2&&_1a2=="function"){val=this.callScriptFunction(_1a0.data,_1a1);}else{if(!_1a2&&this.dataSets&&this.dataSets.length>0&&this.dataSets[0]){_1a2=this.dataSets[0];}if(!_1a2){Spry.Debug.reportError("processTokens(): Value reference has no data set specified: "+_1a0.regionStr+"\n");return "";}val=_1a1.getValueFromDataSet(_1a2,_1a0.data);}if(typeof val!="undefined"){_19f.push(val+"");}break;default:Spry.Debug.reportError("processTokens(): Invalid token type: "+_1a0.regionStr+"\n");break;}};Spry.Data.Region.prototype.transform=function(){if(this.data&&!this.tokens){this.tokens=this.tokenizeData(this.data);}if(!this.tokens){return "";}processContext=new Spry.Data.Region.ProcessingContext(this);if(!processContext){return "";}var _1aa=[""];this.processTokens(_1aa,this.tokens,processContext);return _1aa.join("");};Spry.Data.Region.PI={};Spry.Data.Region.PI.instructions={};Spry.Data.Region.PI.buildOpenTagForValueAttr=function(ele,_1ab,_1ac){if(!ele||!_1ab){return "";}var _1ad="";try{var _1ae=ele.attributes.getNamedItem(_1ab);if(_1ae&&_1ae.value){_1ad=Spry.Utils.encodeEntities(_1ae.value);}}catch(e){_1ad="";}if(!_1ad){Spry.Debug.reportError(_1ab+" attribute requires a JavaScript expression that returns true or false!\n");return "";}return "<"+Spry.Data.Region.PI.instructions[_1ab].tagName+" "+_1ac+"=\""+_1ad+"\">";};Spry.Data.Region.PI.buildOpenTagForTest=function(ele,_1af){return Spry.Data.Region.PI.buildOpenTagForValueAttr(ele,_1af,"test");};Spry.Data.Region.PI.buildOpenTagForState=function(ele,_1b0){return Spry.Data.Region.PI.buildOpenTagForValueAttr(ele,_1b0,"name");};Spry.Data.Region.PI.buildOpenTagForRepeat=function(ele,_1b1){if(!ele||!_1b1){return "";}var _1b2="";try{var _1b3=ele.attributes.getNamedItem(_1b1);if(_1b3&&_1b3.value){_1b2=_1b3.value;_1b2=_1b2.replace(/\s/g,"");}}catch(e){_1b2="";}if(!_1b2){Spry.Debug.reportError(_1b1+" attribute requires a data set name!\n");return "";}var _1b4="";try{var _1b5=ele.attributes.getNamedItem("spry:test");if(_1b5){if(_1b5.value){_1b4=" test=\""+Spry.Utils.encodeEntities(_1b5.value)+"\"";}ele.attributes.removeNamedItem(_1b5.nodeName);}}catch(e){_1b4="";}return "<"+Spry.Data.Region.PI.instructions[_1b1].tagName+" select=\""+_1b2+"\""+_1b4+">";};Spry.Data.Region.PI.buildOpenTagForContent=function(ele,_1b6){if(!ele||!_1b6){return "";}var _1b7="";try{var _1b8=ele.attributes.getNamedItem(_1b6);if(_1b8&&_1b8.value){_1b7=Spry.Utils.encodeEntities(_1b8.value);}}catch(e){_1b7="";}if(!_1b7){Spry.Debug.reportError(_1b6+" attribute requires a data reference!\n");return "";}return "<"+Spry.Data.Region.PI.instructions[_1b6].tagName+" dataref=\""+_1b7+"\">";};Spry.Data.Region.PI.buildOpenTag=function(ele,_1b9){return "<"+Spry.Data.Region.PI.instructions[_1b9].tagName+">";};Spry.Data.Region.PI.buildCloseTag=function(ele,_1ba){return "</"+Spry.Data.Region.PI.instructions[_1ba].tagName+">";};Spry.Data.Region.PI.instructions["spry:state"]={tagName:"spry:state",childrenOnly:false,getOpenTag:Spry.Data.Region.PI.buildOpenTagForState,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.instructions["spry:if"]={tagName:"spry:if",childrenOnly:false,getOpenTag:Spry.Data.Region.PI.buildOpenTagForTest,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.instructions["spry:repeat"]={tagName:"spry:repeat",childrenOnly:false,getOpenTag:Spry.Data.Region.PI.buildOpenTagForRepeat,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.instructions["spry:repeatchildren"]={tagName:"spry:repeat",childrenOnly:true,getOpenTag:Spry.Data.Region.PI.buildOpenTagForRepeat,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.instructions["spry:choose"]={tagName:"spry:choose",childrenOnly:true,getOpenTag:Spry.Data.Region.PI.buildOpenTag,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.instructions["spry:when"]={tagName:"spry:when",childrenOnly:false,getOpenTag:Spry.Data.Region.PI.buildOpenTagForTest,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.instructions["spry:default"]={tagName:"spry:default",childrenOnly:false,getOpenTag:Spry.Data.Region.PI.buildOpenTag,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.instructions["spry:content"]={tagName:"spry:content",childrenOnly:true,getOpenTag:Spry.Data.Region.PI.buildOpenTagForContent,getCloseTag:Spry.Data.Region.PI.buildCloseTag};Spry.Data.Region.PI.orderedInstructions=["spry:state","spry:if","spry:repeat","spry:repeatchildren","spry:choose","spry:when","spry:default","spry:content"];Spry.Data.Region.getTokensFromStr=function(str){if(!str){return null;}return str.match(/{[^}]+}/g);};Spry.Data.Region.processDataRefString=function(_1bb,_1bc,_1bd,_1be){if(!_1bc){return "";}if(!_1bb&&!_1bd){return _1bc;}var _1bf="";var re=new RegExp("\\{([^\\}:]+::)?[^\\}]+\\}","g");var _1c0=0;while(_1c0<_1bc.length){var _1c1=re.exec(_1bc);if(!_1c1||!_1c1[0]){_1bf+=_1bc.substr(_1c0,_1bc.length-_1c0);return _1bf;}if(_1c1.index!=_1c0){_1bf+=_1bc.substr(_1c0,_1c1.index-_1c0);}var _1c2="";if(_1c1[0].search(/^\{[^}:]+::/)!=-1){_1c2=_1c1[0].replace(/^\{|::.*/g,"");}var _1c3=_1c1[0].replace(/^\{|.*::|\}/g,"");var row=null;var val="";if(_1bb){val=_1bb.getValueFromDataSet(_1c2,_1c3);}else{var ds=_1c2?_1bd[_1c2]:_1bd[0];if(ds){val=ds.getValue(_1c3);}}if(typeof val!="undefined"){val+="";_1bf+=_1be?Spry.Utils.escapeQuotesAndLineBreaks(val):val;}if(_1c0==re.lastIndex){var _1c4=_1c1.index+_1c1[0].length;if(_1c4<_1bc.length){_1bf+=_1bc.substr(_1c4);}break;}_1c0=re.lastIndex;}return _1bf;};Spry.Data.Region.strToDataSetsArray=function(str,_1c5){var _1c6=new Array;var _1c7={};if(!str){return _1c6;}str=str.replace(/\s+/g," ");str=str.replace(/^\s|\s$/g,"");var arr=str.split(/ /);for(var i=0;i<arr.length;i++){if(arr[i]&&!Spry.Data.Region.PI.instructions[arr[i]]){try{var _1c8=Spry.Data.getDataSetByName(arr[i]);if(!_1c7[arr[i]]){if(_1c5){_1c6.push(arr[i]);}else{_1c6.push(_1c8);}_1c7[arr[i]]=true;}}catch(e){}}}return _1c6;};Spry.Data.Region.DSContext=function(_1c9,_1ca){var _1cb=_1c9;var _1cc=_1ca;var _1cd=[{rowIndex:-1}];var _1ce=null;var _1cf=[];var _1d0=function(){return _1cd[_1cd.length-1].rowIndex;};this.resetAll=function(){_1cd=[{rowIndex:_1cb.getCurrentRow()}];};this.getDataSet=function(){return _1cb;};this.getNumRows=function(_1d1){var data=this.getCurrentState().data;return data?data.length:_1cb.getRowCount(_1d1);};this.getData=function(){var data=this.getCurrentState().data;return data?data:_1cb.getData();};this.setData=function(data){this.getCurrentState().data=data;};this.getValue=function(_1d2,_1d3){var _1d4="";var _1d5=this.getCurrentState();var ds=_1d5.nestedDS?_1d5.nestedDS:this.getDataSet();if(ds){_1d4=ds.getValue(_1d2,_1d3);}return _1d4;};this.getCurrentRow=function(){if(_1cd.length<2||_1d0()<0){return _1cb.getCurrentRow();}var data=this.getData();var _1d6=_1d0();if(_1d6<0||_1d6>data.length){Spry.Debug.reportError("Invalid index used in Spry.Data.Region.DSContext.getCurrentRow()!\n");return null;}return data[_1d6];};this.getRowIndex=function(){var _1d7=_1d0();if(_1d7>=0){return _1d7;}return _1cb.getRowNumber(_1cb.getCurrentRow());};this.setRowIndex=function(_1d8){this.getCurrentState().rowIndex=_1d8;var data=this.getData();var _1d9=_1cf.length;for(var i=0;i<_1d9;i++){_1cf[i].syncDataWithParentRow(this,_1d8,data);}};this.syncDataWithParentRow=function(_1da,_1db,_1dc){var row=_1dc[_1db];if(row){nestedDS=_1cb.getNestedDataSetForParentRow(row);if(nestedDS){var _1dd=this.getCurrentState();_1dd.nestedDS=nestedDS;_1dd.data=nestedDS.getData();_1dd.rowIndex=nestedDS.getCurrentRowNumber();_1dd.rowIndex=_1dd.rowIndex<0?0:_1dd.rowIndex;var _1de=_1cf.length;for(var i=0;i<_1de;i++){_1cf[i].syncDataWithParentRow(this,_1dd.rowIndex,_1dd.data);}}}};this.pushState=function(){var _1df=this.getCurrentState();var _1e0=new Object;_1e0.rowIndex=_1df.rowIndex;_1e0.data=_1df.data;_1e0.nestedDS=_1df.nestedDS;_1cd.push(_1e0);var _1e1=_1cf.length;for(var i=0;i<_1e1;i++){_1cf[i].pushState();}};this.popState=function(){if(_1cd.length<2){Spry.Debug.reportError("Stack underflow in Spry.Data.Region.DSContext.popState()!\n");return;}var _1e2=_1cf.length;for(var i=0;i<_1e2;i++){_1cf[i].popState();}_1cd.pop();};this.getCurrentState=function(){return _1cd[_1cd.length-1];};this.addChild=function(_1e3){var _1e4=_1cf.length;for(var i=0;i<_1e4;i++){if(_1cf[i]==_1e3){return;}}_1cf.push(_1e3);};};Spry.Data.Region.ProcessingContext=function(_1e5){this.region=_1e5;this.dataSetContexts=[];if(_1e5&&_1e5.dataSets){var _1e6=_1e5.dataSets.slice(0);var _1e7=_1e6.length;for(var i=0;i<_1e7;i++){var ds=_1e5.dataSets[i];while(ds&&ds.getParentDataSet){var _1e8=false;ds=ds.getParentDataSet();if(ds&&this.indexOf(_1e6,ds)==-1){_1e6.push(ds);}}}for(i=0;i<_1e6.length;i++){this.dataSetContexts.push(new Spry.Data.Region.DSContext(_1e6[i],this));}var _1e9=this.dataSetContexts;var _1ea=_1e9.length;for(i=0;i<_1ea;i++){var dsc=_1e9[i];var ds=dsc.getDataSet();if(ds.getParentDataSet){var _1eb=ds.getParentDataSet();if(_1eb){var pdsc=this.getDataSetContext(_1eb);if(pdsc){pdsc.addChild(dsc);}}}}}};Spry.Data.Region.ProcessingContext.prototype.indexOf=function(arr,item){if(arr){var _1ec=arr.length;for(var i=0;i<_1ec;i++){if(arr[i]==item){return i;}}}return -1;};Spry.Data.Region.ProcessingContext.prototype.getDataSetContext=function(_1ed){if(!_1ed){if(this.dataSetContexts.length>0){return this.dataSetContexts[0];}return null;}if(typeof _1ed=="string"){_1ed=Spry.Data.getDataSetByName(_1ed);if(!_1ed){return null;}}for(var i=0;i<this.dataSetContexts.length;i++){var dsc=this.dataSetContexts[i];if(dsc.getDataSet()==_1ed){return dsc;}}return null;};Spry.Data.Region.ProcessingContext.prototype.getValueFromDataSet=function(){var _1ee="";var _1ef="";if(arguments.length>1){_1ee=arguments[0];_1ef=arguments[1];}else{var _1f0=arguments[0].replace(/\s*{\s*|\s*}\s*/g,"");if(_1f0.search("::")!=-1){_1ee=_1f0.replace(/::.*/,"");_1ef=_1f0.replace(/.*::/,"");}else{_1ef=_1f0;}}var _1f1="";var _1f2=this.getDataSetContext(_1ee);if(_1f2){_1f1=_1f2.getValue(_1ef,_1f2.getCurrentRow());}else{Spry.Debug.reportError("getValueFromDataSet: Failed to get "+_1ee+" context for the "+this.region.regionNode.id+" region.\n");}return _1f1;};Spry.Data.Region.ProcessingContext.prototype.$v=Spry.Data.Region.ProcessingContext.prototype.getValueFromDataSet;Spry.Data.Region.ProcessingContext.prototype.getCurrentRowForDataSet=function(_1f3){var dsc=this.getDataSetContext(_1f3);if(dsc){return dsc.getCurrentRow();}return null;};Spry.Data.Region.Token=function(_1f4,_1f5,data,_1f6){var self=this;this.tokenType=_1f4;this.dataSet=_1f5;this.data=data;this.regionStr=_1f6;this.parent=null;this.children=null;};Spry.Data.Region.Token.prototype.addChild=function(_1f7){if(!_1f7){return;}if(!this.children){this.children=new Array;}this.children.push(_1f7);_1f7.parent=this;};Spry.Data.Region.Token.LIST_TOKEN=0;Spry.Data.Region.Token.STRING_TOKEN=1;Spry.Data.Region.Token.PROCESSING_INSTRUCTION_TOKEN=2;Spry.Data.Region.Token.VALUE_TOKEN=3;Spry.Data.Region.Token.PIData=function(_1f8,data,_1f9,_1fa){var self=this;this.name=_1f8;this.data=data;this.jsExpr=_1f9;this.regionState=_1fa;};Spry.Utils.addLoadListener(function(){setTimeout(function(){if(Spry.Data.initRegionsOnLoad){Spry.Data.initRegions();}},0);});