
if(dwr==null)var dwr={};if(dwr.util==null)dwr.util={};if(DWRUtil==null)var DWRUtil=dwr.util;dwr.util._escapeHtml=true;dwr.util.setEscapeHtml=function(escapeHtml){dwr.util._escapeHtml=escapeHtml;};dwr.util._shouldEscapeHtml=function(options){if(options&&options.escapeHtml!=null){return options.escapeHtml;}
return dwr.util._escapeHtml;};dwr.util.escapeHtml=function(original){return original.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');};dwr.util.unescapeHtml=function(original){return original.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');};dwr.util.replaceXmlCharacters=function(original){original=original.replace("&","+");original=original.replace("<","\u2039");original=original.replace(">","\u203A");original=original.replace("\'","\u2018");original=original.replace("\"","\u201C");return original;};dwr.util.containsXssRiskyCharacters=function(original){return(original.indexOf('&')!=-1||original.indexOf('<')!=-1||original.indexOf('>')!=-1||original.indexOf('\'')!=-1||original.indexOf('\"')!=-1);};dwr.util.onReturn=function(event,action){if(!event)event=window.event;if(event&&event.keyCode&&event.keyCode==13)action();};dwr.util.selectRange=function(ele,start,end){ele=dwr.util._getElementById(ele,"selectRange()");if(ele==null)return;if(ele.setSelectionRange){ele.setSelectionRange(start,end);}
else if(ele.createTextRange){var range=ele.createTextRange();range.moveStart("character",start);range.moveEnd("character",end-ele.value.length);range.select();}
ele.focus();};if(document.getElementById){dwr.util.byId=function(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string'){element=document.getElementById(element);}
if(arguments.length==1){return element;}
elements.push(element);}
return elements;};}
else if(document.all){dwr.util.byId=function(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string'){element=document.all[element];}
if(arguments.length==1){return element;}
elements.push(element);}
return elements;};}
var $;if(!$){$=dwr.util.byId;}
dwr.util.toDescriptiveString=function(data,showLevels,options){if(showLevels===undefined)showLevels=1;var opt={};if(dwr.util._isObject(options))opt=options;var defaultoptions={escapeHtml:false,baseIndent:"",childIndent:"\u00A0\u00A0",lineTerminator:"\n",oneLineMaxItems:5,shortStringMaxLength:13,propertyNameMaxLength:30};for(var p in defaultoptions){if(!(p in opt)){opt[p]=defaultoptions[p];}}
var skipDomProperties={document:true,ownerDocument:true,all:true,parentElement:true,parentNode:true,offsetParent:true,children:true,firstChild:true,lastChild:true,previousSibling:true,nextSibling:true,innerHTML:true,outerHTML:true,innerText:true,outerText:true,textContent:true,attributes:true,style:true,currentStyle:true,runtimeStyle:true,parentTextEdit:true};function recursive(data,showLevels,indentDepth,options){var reply="";try{if(typeof data=="string"){var str=data;if(showLevels==0&&str.length>options.shortStringMaxLength)
str=str.substring(0,options.shortStringMaxLength-3)+"...";if(options.escapeHtml){var lines=str.split("\n");for(var i=0;i<lines.length;i++)lines[i]=dwr.util.escapeHtml(lines[i]);str=lines.join("\n");}
if(showLevels==0){str=str.replace(/\n|\r|\t/g,function(ch){switch(ch){case"\n":return"\\n";case"\r":return"";case"\t":return"\\t";}});}
else{str=str.replace(/\n|\r|\t/g,function(ch){switch(ch){case"\n":return options.lineTerminator+indent(indentDepth+1,options);case"\r":return"";case"\t":return"\\t";}});}
reply='"'+str+'"';}
else if(typeof data=="function"){reply="function";}
else if(dwr.util._isArray(data)){if(showLevels==0){if(data.length>0)
reply="[...]";else
reply="[]";}
else{var strarr=[];strarr.push("[");var count=0;for(var i=0;i<data.length;i++){if(!(i in data))continue;var itemvalue=data[i];if(count>0)strarr.push(", ");if(showLevels==1){if(count==options.oneLineMaxItems){strarr.push("...");break;}}
else{strarr.push(options.lineTerminator+indent(indentDepth+1,options));}
if(i!=count){strarr.push(i);strarr.push(":");}
strarr.push(recursive(itemvalue,showLevels-1,indentDepth+1,options));count++;}
if(showLevels>1)strarr.push(options.lineTerminator+indent(indentDepth,options));strarr.push("]");reply=strarr.join("");}}
else if(dwr.util._isObject(data)&&!dwr.util._isDate(data)){if(showLevels==0){reply=dwr.util._detailedTypeOf(data);}
else{var strarr=[];if(dwr.util._detailedTypeOf(data)!="Object"){strarr.push(dwr.util._detailedTypeOf(data));if(typeof data.valueOf()!="object"){strarr.push(":");strarr.push(recursive(data.valueOf(),1,indentDepth,options));}
strarr.push(" ");}
strarr.push("{");var isDomObject=dwr.util._isHTMLElement(data);var count=0;for(var prop in data){var propvalue=data[prop];if(isDomObject){if(!propvalue)continue;if(typeof propvalue=="function")continue;if(skipDomProperties[prop])continue;if(prop.toUpperCase()==prop)continue;}
if(count>0)strarr.push(", ");if(showLevels==1){if(count==options.oneLineMaxItems){strarr.push("...");break;}}
else{strarr.push(options.lineTerminator+indent(indentDepth+1,options));}
strarr.push(prop.length>options.propertyNameMaxLength?prop.substring(0,options.propertyNameMaxLength-3)+"...":prop);strarr.push(":");strarr.push(recursive(propvalue,showLevels-1,indentDepth+1,options));count++;}
if(showLevels>1&&count>0)strarr.push(options.lineTerminator+indent(indentDepth,options));strarr.push("}");reply=strarr.join("");}}
else{reply=""+data;}
return reply;}
catch(err){return(err.message?err.message:""+err);}}
function indent(count,options){var strarr=[];strarr.push(options.baseIndent);for(var i=0;i<count;i++){strarr.push(options.childIndent);}
return strarr.join("");};return recursive(data,showLevels,0,opt);};dwr.util.useLoadingMessage=function(message){var loadingMessage;if(message)loadingMessage=message;else loadingMessage="Loading";dwr.engine.setPreHook(function(){var disabledZone=dwr.util.byId('disabledZone');if(!disabledZone){disabledZone=document.createElement('div');disabledZone.setAttribute('id','disabledZone');disabledZone.style.position="absolute";disabledZone.style.zIndex="1000";disabledZone.style.left="0px";disabledZone.style.top="0px";disabledZone.style.width="100%";disabledZone.style.height="100%";document.body.appendChild(disabledZone);var messageZone=document.createElement('div');messageZone.setAttribute('id','messageZone');messageZone.style.position="absolute";messageZone.style.top="0px";messageZone.style.right="0px";messageZone.style.background="red";messageZone.style.color="white";messageZone.style.fontFamily="Arial,Helvetica,sans-serif";messageZone.style.padding="4px";disabledZone.appendChild(messageZone);var text=document.createTextNode(loadingMessage);messageZone.appendChild(text);dwr.util._disabledZoneUseCount=1;}
else{dwr.util.byId('messageZone').innerHTML=loadingMessage;disabledZone.style.visibility='visible';dwr.util._disabledZoneUseCount++;}});dwr.engine.setPostHook(function(){dwr.util._disabledZoneUseCount--;if(dwr.util._disabledZoneUseCount==0){dwr.util.byId('disabledZone').style.visibility='hidden';}});};dwr.util.setHighlightHandler=function(handler){dwr.util._highlightHandler=handler;};dwr.util.yellowFadeHighlightHandler=function(ele){dwr.util._yellowFadeProcess(ele,0);};dwr.util._yellowFadeSteps=["d0","b0","a0","90","98","a0","a8","b0","b8","c0","c8","d0","d8","e0","e8","f0","f8"];dwr.util._yellowFadeProcess=function(ele,colorIndex){ele=dwr.util.byId(ele);if(colorIndex<dwr.util._yellowFadeSteps.length){ele.style.backgroundColor="#ffff"+dwr.util._yellowFadeSteps[colorIndex];setTimeout("dwr.util._yellowFadeProcess('"+ele.id+"',"+(colorIndex+1)+")",200);}
else{ele.style.backgroundColor="transparent";}};dwr.util.borderFadeHighlightHandler=function(ele){ele.style.borderWidth="2px";ele.style.borderStyle="solid";dwr.util._borderFadeProcess(ele,0);};dwr.util._borderFadeSteps=["d0","b0","a0","90","98","a0","a8","b0","b8","c0","c8","d0","d8","e0","e8","f0","f8"];dwr.util._borderFadeProcess=function(ele,colorIndex){ele=dwr.util.byId(ele);if(colorIndex<dwr.util._borderFadeSteps.length){ele.style.borderColor="#ff"+dwr.util._borderFadeSteps[colorIndex]+dwr.util._borderFadeSteps[colorIndex];setTimeout("dwr.util._borderFadeProcess('"+ele.id+"',"+(colorIndex+1)+")",200);}
else{ele.style.backgroundColor="transparent";}};dwr.util.focusHighlightHandler=function(ele){try{ele.focus();}
catch(ex){}};dwr.util._highlightHandler=null;dwr.util.highlight=function(ele,options){if(options&&options.highlightHandler){options.highlightHandler(dwr.util.byId(ele));}
else if(dwr.util._highlightHandler!=null){dwr.util._highlightHandler(dwr.util.byId(ele));}};dwr.util.setValue=function(ele,val,options){if(val==null)val="";if(options==null)options={};var orig=ele;if(typeof ele=="string"){ele=dwr.util.byId(ele);if(ele&&ele.id!=orig)ele=null;}
var nodes=null;if(ele==null){nodes=document.getElementsByName(orig);if(nodes.length>=1)ele=nodes.item(0);}
if(ele==null){dwr.util._debug("setValue() can't find an element with id/name: "+orig+".");return;}
dwr.util.highlight(ele,options);if(dwr.util._isHTMLElement(ele,"select")){if(ele.type=="select-multiple"&&dwr.util._isArray(val))dwr.util._selectListItems(ele,val);else dwr.util._selectListItem(ele,val);return;}
if(dwr.util._isHTMLElement(ele,"input")){if(ele.type=="radio"||ele.type=="checkbox"){if(nodes&&nodes.length>=1){for(var i=0;i<nodes.length;i++){var node=nodes.item(i);if(node.type!=ele.type)continue;if(dwr.util._isArray(val)){node.checked=false;for(var j=0;j<val.length;j++)
if(val[j]==node.value)node.checked=true;}
else{node.checked=(node.value==val);}}}
else{ele.checked=(val==true);}}
else ele.value=val;return;}
if(dwr.util._isHTMLElement(ele,"textarea")){ele.value=val;return;}
if(val.nodeType){if(val.nodeType==9)val=val.documentElement;val=dwr.util._importNode(ele.ownerDocument,val,true);ele.appendChild(val);return;}
if(dwr.util._shouldEscapeHtml(options)&&typeof(val)=="string"){if(ele.textContent)ele.textContent=val;else if(ele.innerText)ele.innerText=val;else ele.innerHTML=dwr.util.escapeHtml(val);}
else{ele.innerHTML=val;}};dwr.util._selectListItems=function(ele,val){var found=false;var i;var j;for(i=0;i<ele.options.length;i++){ele.options[i].selected=false;for(j=0;j<val.length;j++){if(ele.options[i].value==val[j]){ele.options[i].selected=true;}}}
if(found)return;for(i=0;i<ele.options.length;i++){for(j=0;j<val.length;j++){if(ele.options[i].text==val[j]){ele.options[i].selected=true;}}}};dwr.util._selectListItem=function(ele,val){var found=false;var i;for(i=0;i<ele.options.length;i++){if(ele.options[i].value==val){ele.options[i].selected=true;found=true;}
else{ele.options[i].selected=false;}}
if(found)return;for(i=0;i<ele.options.length;i++){ele.options[i].selected=(ele.options[i].text==val);}};dwr.util.getValue=function(ele,options){if(options==null)options={};var orig=ele;if(typeof ele=="string"){ele=dwr.util.byId(ele);if(ele&&ele.id!=orig)ele=null;}
var nodes=null;if(ele==null){nodes=document.getElementsByName(orig);if(nodes.length>=1)ele=nodes.item(0);}
if(ele==null){dwr.util._debug("getValue() can't find an element with id/name: "+orig+".");return"";}
if(dwr.util._isHTMLElement(ele,"select")){if(ele.type=="select-multiple"){var reply=new Array();for(var i=0;i<ele.options.length;i++){var item=ele.options[i];if(item.selected){var valueAttr=item.getAttributeNode("value");if(valueAttr&&valueAttr.specified){reply.push(item.value);}
else{reply.push(item.text);}}}
return reply;}
else{var sel=ele.selectedIndex;if(sel!=-1){var item=ele.options[sel];var valueAttr=item.getAttributeNode("value");if(valueAttr&&valueAttr.specified){return item.value;}
return item.text;}
else{return"";}}}
if(dwr.util._isHTMLElement(ele,"input")){if(ele.type=="radio"){if(nodes&&nodes.length>=1){for(var i=0;i<nodes.length;i++){var node=nodes.item(i);if(node.type==ele.type){if(node.checked)return node.value;}}}
return ele.checked;}
if(ele.type=="checkbox"){if(nodes&&nodes.length>=1){var reply=[];for(var i=0;i<nodes.length;i++){var node=nodes.item(i);if(node.type==ele.type){if(node.checked)reply.push(node.value);}}
return reply;}
return ele.checked;}
return ele.value;}
if(dwr.util._isHTMLElement(ele,"textarea")){return ele.value;}
if(dwr.util._shouldEscapeHtml(options)){if(ele.textContent)return ele.textContent;else if(ele.innerText)return ele.innerText;}
return ele.innerHTML;};dwr.util.getText=function(ele){ele=dwr.util._getElementById(ele,"getText()");if(ele==null)return null;if(!dwr.util._isHTMLElement(ele,"select")){dwr.util._debug("getText() can only be used with select elements. Attempt to use: "+dwr.util._detailedTypeOf(ele)+" from  id: "+orig+".");return"";}
var sel=ele.selectedIndex;if(sel!=-1){return ele.options[sel].text;}
else{return"";}};dwr.util.setValues=function(data,options){var prefix="";if(options&&options.prefix)prefix=options.prefix;if(options&&options.idPrefix)prefix=options.idPrefix;dwr.util._setValuesRecursive(data,prefix);};dwr.util._setValuesRecursive=function(data,idpath){if(dwr.util._isArray(data)&&data.length>0&&dwr.util._isObject(data[0])){for(var i=0;i<data.length;i++){dwr.util._setValuesRecursive(data[i],idpath+"["+i+"]");}}
else if(dwr.util._isObject(data)&&!dwr.util._isArray(data)){for(var prop in data){var subidpath=idpath?idpath+"."+prop:prop;if(dwr.util._isObject(data[prop])&&!dwr.util._isArray(data[prop])||dwr.util._isArray(data[prop])&&data[prop].length>0&&dwr.util._isObject(data[prop][0])){dwr.util._setValuesRecursive(data[prop],subidpath);}
else if(typeof data[prop]=="function"){}
else{if(dwr.util.byId(subidpath)!=null||document.getElementsByName(subidpath).length>=1){dwr.util.setValue(subidpath,data[prop]);}}}}};dwr.util.getValues=function(data,options){if(typeof data=="string"||dwr.util._isHTMLElement(data)){return dwr.util.getFormValues(data);}
else{var prefix="";if(options!=null&&options.prefix)prefix=options.prefix;if(options!=null&&options.idPrefix)prefix=options.idPrefix;dwr.util._getValuesRecursive(data,prefix);return data;}};dwr.util.getFormValues=function(eleOrNameOrId){var ele=null;if(typeof eleOrNameOrId=="string"){ele=document.forms[eleOrNameOrId];if(ele==null)ele=dwr.util.byId(eleOrNameOrId);}
else if(dwr.util._isHTMLElement(eleOrNameOrId)){ele=eleOrNameOrId;}
if(ele!=null){if(ele.elements==null){alert("getFormValues() requires an object or reference to a form element.");return null;}
var reply={};var name;var value;for(var i=0;i<ele.elements.length;i++){if(ele[i].type in{button:0,submit:0,reset:0,image:0,file:0})continue;if(ele[i].name){name=ele[i].name;value=dwr.util.getValue(name);}
else{if(ele[i].id)name=ele[i].id;else name="element"+i;value=dwr.util.getValue(ele[i]);}
reply[name]=value;}
return reply;}};dwr.util._getValuesRecursive=function(data,idpath){if(dwr.util._isArray(data)&&data.length>0&&dwr.util._isObject(data[0])){for(var i=0;i<data.length;i++){dwr.util._getValuesRecursive(data[i],idpath+"["+i+"]");}}
else if(dwr.util._isObject(data)&&!dwr.util._isArray(data)){for(var prop in data){var subidpath=idpath?idpath+"."+prop:prop;if(dwr.util._isObject(data[prop])&&!dwr.util._isArray(data[prop])||dwr.util._isArray(data[prop])&&data[prop].length>0&&dwr.util._isObject(data[prop][0])){dwr.util._getValuesRecursive(data[prop],subidpath);}
else if(typeof data[prop]=="function"){}
else{if(dwr.util.byId(subidpath)!=null||document.getElementsByName(subidpath).length>=1){data[prop]=dwr.util.getValue(subidpath);}}}}};dwr.util.addOptions=function(ele,data){ele=dwr.util._getElementById(ele,"addOptions()");if(ele==null)return;var useOptions=dwr.util._isHTMLElement(ele,"select");var useLi=dwr.util._isHTMLElement(ele,["ul","ol"]);if(!useOptions&&!useLi){dwr.util._debug("addOptions() can only be used with select/ul/ol elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
if(data==null)return;var argcount=arguments.length;var options={};var lastarg=arguments[argcount-1];if(argcount>2&&dwr.util._isObject(lastarg)){options=lastarg;argcount--;}
var arg3=null;if(argcount>=3)arg3=arguments[2];var arg4=null;if(argcount>=4)arg4=arguments[3];if(!options.optionCreator&&useOptions)options.optionCreator=dwr.util._defaultOptionCreator;if(!options.optionCreator&&useLi)options.optionCreator=dwr.util._defaultListItemCreator;var text,value,li;if(dwr.util._isArray(data)){for(var i=0;i<data.length;i++){options.data=data[i];options.text=null;options.value=null;if(useOptions){if(arg3!=null){if(arg4!=null){options.text=dwr.util._getValueFrom(data[i],arg4);options.value=dwr.util._getValueFrom(data[i],arg3);}
else options.text=options.value=dwr.util._getValueFrom(data[i],arg3);}
else options.text=options.value=dwr.util._getValueFrom(data[i]);if(options.text!=null||options.value){var opt=options.optionCreator(options);opt.text=options.text;opt.value=options.value;ele.options[ele.options.length]=opt;}}
else{options.value=dwr.util._getValueFrom(data[i],arg3);if(options.value!=null){li=options.optionCreator(options);if(dwr.util._shouldEscapeHtml(options)){options.value=dwr.util.escapeHtml(options.value);}
li.innerHTML=options.value;ele.appendChild(li);}}}}
else if(arg4!=null){if(!useOptions){alert("dwr.util.addOptions can only create select lists from objects.");return;}
for(var prop in data){options.data=data[prop];options.value=dwr.util._getValueFrom(data[prop],arg3);options.text=dwr.util._getValueFrom(data[prop],arg4);if(options.text!=null||options.value){var opt=options.optionCreator(options);opt.text=options.text;opt.value=options.value;ele.options[ele.options.length]=opt;}}}
else{if(!useOptions){dwr.util._debug("dwr.util.addOptions can only create select lists from objects.");return;}
for(var prop in data){if(typeof data[prop]=="function")continue;options.data=data[prop];if(!arg3){options.value=prop;options.text=data[prop];}
else{options.value=data[prop];options.text=prop;}
if(options.text!=null||options.value){var opt=options.optionCreator(options);opt.text=options.text;opt.value=options.value;ele.options[ele.options.length]=opt;}}}
dwr.util.highlight(ele,options);};dwr.util._getValueFrom=function(data,method){if(method==null)return data;else if(typeof method=='function')return method(data);else return data[method];};dwr.util._defaultOptionCreator=function(options){return new Option();};dwr.util._defaultListItemCreator=function(options){return document.createElement("li");};dwr.util.removeAllOptions=function(ele){ele=dwr.util._getElementById(ele,"removeAllOptions()");if(ele==null)return;var useOptions=dwr.util._isHTMLElement(ele,"select");var useLi=dwr.util._isHTMLElement(ele,["ul","ol"]);if(!useOptions&&!useLi){dwr.util._debug("removeAllOptions() can only be used with select, ol and ul elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
if(useOptions){ele.options.length=0;}
else{while(ele.childNodes.length>0){ele.removeChild(ele.firstChild);}}};dwr.util.addRows=function(ele,data,cellFuncs,options){ele=dwr.util._getElementById(ele,"addRows()");if(ele==null)return;if(!dwr.util._isHTMLElement(ele,["table","tbody","thead","tfoot"])){dwr.util._debug("addRows() can only be used with table, tbody, thead and tfoot elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
if(!options)options={};if(!options.rowCreator)options.rowCreator=dwr.util._defaultRowCreator;if(!options.cellCreator)options.cellCreator=dwr.util._defaultCellCreator;var tr,rowNum;if(dwr.util._isArray(data)){for(rowNum=0;rowNum<data.length;rowNum++){options.rowData=data[rowNum];options.rowIndex=rowNum;options.rowNum=rowNum;options.data=null;options.cellNum=-1;tr=dwr.util._addRowInner(cellFuncs,options);if(tr!=null)ele.appendChild(tr);}}
else if(typeof data=="object"){rowNum=0;for(var rowIndex in data){options.rowData=data[rowIndex];options.rowIndex=rowIndex;options.rowNum=rowNum;options.data=null;options.cellNum=-1;tr=dwr.util._addRowInner(cellFuncs,options);if(tr!=null)ele.appendChild(tr);rowNum++;}}
dwr.util.highlight(ele,options);};dwr.util._addRowInner=function(cellFuncs,options){var tr=options.rowCreator(options);if(tr==null)return null;for(var cellNum=0;cellNum<cellFuncs.length;cellNum++){var func=cellFuncs[cellNum];if(typeof func=='function')options.data=func(options.rowData,options);else options.data=func||"";options.cellNum=cellNum;var td=options.cellCreator(options);if(td!=null){if(options.data!=null){if(dwr.util._isHTMLElement(options.data))td.appendChild(options.data);else{if(dwr.util._shouldEscapeHtml(options)&&typeof(options.data)=="string"){td.innerHTML=dwr.util.escapeHtml(options.data);}
else{td.innerHTML=options.data;}}}
tr.appendChild(td);}}
return tr;};dwr.util._defaultRowCreator=function(options){return document.createElement("tr");};dwr.util._defaultCellCreator=function(options){return document.createElement("td");};dwr.util.removeAllRows=function(ele,options){ele=dwr.util._getElementById(ele,"removeAllRows()");if(ele==null)return;if(!options)options={};if(!options.filter)options.filter=function(){return true;};if(!dwr.util._isHTMLElement(ele,["table","tbody","thead","tfoot"])){dwr.util._debug("removeAllRows() can only be used with table, tbody, thead and tfoot elements. Attempt to use: "+dwr.util._detailedTypeOf(ele));return;}
var child=ele.firstChild;var next;while(child!=null){next=child.nextSibling;if(options.filter(child)){ele.removeChild(child);}
child=next;}};dwr.util.setClassName=function(ele,className){ele=dwr.util._getElementById(ele,"setClassName()");if(ele==null)return;ele.className=className;};dwr.util.addClassName=function(ele,className){ele=dwr.util._getElementById(ele,"addClassName()");if(ele==null)return;ele.className+=" "+className;};dwr.util.removeClassName=function(ele,className){ele=dwr.util._getElementById(ele,"removeClassName()");if(ele==null)return;var regex=new RegExp("(^|\\s)"+className+"(\\s|$)",'g');ele.className=ele.className.replace(regex,'');};dwr.util.toggleClassName=function(ele,className){ele=dwr.util._getElementById(ele,"toggleClassName()");if(ele==null)return;var regex=new RegExp("(^|\\s)"+className+"(\\s|$)");if(regex.test(ele.className)){ele.className=ele.className.replace(regex,'');}
else{ele.className+=" "+className;}};dwr.util.cloneNode=function(ele,options){ele=dwr.util._getElementById(ele,"cloneNode()");if(ele==null)return null;if(options==null)options={};var clone=ele.cloneNode(true);if(options.idPrefix||options.idSuffix){dwr.util._updateIds(clone,options);}
else{dwr.util._removeIds(clone);}
ele.parentNode.insertBefore(clone,ele);return clone;};dwr.util._updateIds=function(ele,options){if(options==null)options={};if(ele.id){ele.setAttribute("id",(options.idPrefix||"")+ele.id+(options.idSuffix||""));}
var children=ele.childNodes;for(var i=0;i<children.length;i++){var child=children.item(i);if(child.nodeType==1){dwr.util._updateIds(child,options);}}};dwr.util._removeIds=function(ele){if(ele.id)ele.removeAttribute("id");var children=ele.childNodes;for(var i=0;i<children.length;i++){var child=children.item(i);if(child.nodeType==1){dwr.util._removeIds(child);}}};dwr.util.cloneNodeForValues=function(templateEle,data,options){templateEle=dwr.util._getElementById(templateEle,"cloneNodeForValues()");if(templateEle==null)return null;if(options==null)options={};var idpath;if(options.idPrefix!=null)
idpath=options.idPrefix;else
idpath=templateEle.id||"";return dwr.util._cloneNodeForValuesRecursive(templateEle,data,idpath,options);};dwr.util._cloneNodeForValuesRecursive=function(templateEle,data,idpath,options){if(dwr.util._isArray(data)){var clones=[];for(var i=0;i<data.length;i++){var item=data[i];var clone=dwr.util._cloneNodeForValuesRecursive(templateEle,item,idpath+"["+i+"]",options);clones.push(clone);}
return clones;}
else
if(dwr.util._isObject(data)&&!dwr.util._isArray(data)){var clone=templateEle.cloneNode(true);if(options.updateCloneStyle&&clone.style){for(var propname in options.updateCloneStyle){clone.style[propname]=options.updateCloneStyle[propname];}}
dwr.util._replaceIds(clone,templateEle.id,idpath);templateEle.parentNode.insertBefore(clone,templateEle);dwr.util._cloneSubArrays(data,idpath,options);return clone;}
return null;};dwr.util._replaceIds=function(ele,oldidpath,newidpath){if(ele.id){var newId=null;if(ele.id==oldidpath){newId=newidpath;}
else if(ele.id.length>oldidpath.length){if(ele.id.substr(0,oldidpath.length)==oldidpath){var trailingChar=ele.id.charAt(oldidpath.length);if(trailingChar=="."||trailingChar=="["){newId=newidpath+ele.id.substr(oldidpath.length);}}}
if(newId){ele.setAttribute("id",newId);}
else{ele.removeAttribute("id");}}
var children=ele.childNodes;for(var i=0;i<children.length;i++){var child=children.item(i);if(child.nodeType==1){dwr.util._replaceIds(child,oldidpath,newidpath);}}};dwr.util._cloneSubArrays=function(data,idpath,options){for(prop in data){var value=data[prop];if(dwr.util._isArray(value)){if(value.length>0&&dwr.util._isObject(value[0])){var subTemplateId=idpath+"."+prop;var subTemplateEle=dwr.util.byId(subTemplateId);if(subTemplateEle!=null){dwr.util._cloneNodeForValuesRecursive(subTemplateEle,value,subTemplateId,options);}}}
else if(dwr.util._isObject(value)){dwr.util._cloneSubArrays(value,idpath+"."+prop,options);}}};dwr.util._getElementById=function(ele,source){var orig=ele;ele=dwr.util.byId(ele);if(ele==null){dwr.util._debug(source+" can't find an element with id: "+orig+".");}
return ele;};dwr.util._isHTMLElement=function(ele,nodeName){if(ele==null||typeof ele!="object"||ele.nodeName==null){return false;}
if(nodeName!=null){var test=ele.nodeName.toLowerCase();if(typeof nodeName=="string"){return test==nodeName.toLowerCase();}
if(dwr.util._isArray(nodeName)){var match=false;for(var i=0;i<nodeName.length&&!match;i++){if(test==nodeName[i].toLowerCase()){match=true;}}
return match;}
dwr.util._debug("dwr.util._isHTMLElement was passed test node name that is neither a string or array of strings");return false;}
return true;};dwr.util._detailedTypeOf=function(x){var reply=typeof x;if(reply=="object"){reply=Object.prototype.toString.apply(x);reply=reply.substring(8,reply.length-1);}
return reply;};dwr.util._isObject=function(data){return(data&&typeof data=="object");};dwr.util._isArray=function(data){return(data&&data.join);};dwr.util._isDate=function(data){return(data&&data.toUTCString)?true:false;};dwr.util._importNode=function(doc,importedNode,deep){var newNode;if(importedNode.nodeType==1){newNode=doc.createElement(importedNode.nodeName);for(var i=0;i<importedNode.attributes.length;i++){var attr=importedNode.attributes[i];if(attr.nodeValue!=null&&attr.nodeValue!=''){newNode.setAttribute(attr.name,attr.nodeValue);}}
if(typeof importedNode.style!="undefined"){newNode.style.cssText=importedNode.style.cssText;}}
else if(importedNode.nodeType==3){newNode=doc.createTextNode(importedNode.nodeValue);}
if(deep&&importedNode.hasChildNodes()){for(i=0;i<importedNode.childNodes.length;i++){newNode.appendChild(dwr.util._importNode(doc,importedNode.childNodes[i],true));}}
return newNode;};dwr.util._debug=function(message,stacktrace){var written=false;try{if(window.console){if(stacktrace&&window.console.trace)window.console.trace();window.console.log(message);written=true;}
else if(window.opera&&window.opera.postError){window.opera.postError(message);written=true;}}
catch(ex){}
if(!written){var debug=document.getElementById("dwr-debug");if(debug){var contents=message+"<br/>"+debug.innerHTML;if(contents.length>2048)contents=contents.substring(0,2048);debug.innerHTML=contents;}}};
