var debugText;function uniqueID(){return new Date().valueOf()+Math.round(Math.random()*1000)}function refreshDocument(){var A=document.location.href;if(document.location.hash){A=A.substr(0,A.indexOf(document.location.hash))}A+=document.location.search?";":"?";A+="reload="+Math.random();document.location.replace(A)}function openAndFocus(B){var A=window.open(B.href,B.id);A.focus();return false}function clearElement(C){var A=C.childNodes.length;for(var B=0;B<A;B++){C.removeChild(C.childNodes[0])}}var Cookies=new CookieJar();function CookieJar(){this.today=new Date();this.expiry=new Date(this.today.getTime()+365*24*60*60*1000);this.domain;this.path}CookieJar.prototype.getCookieVal=function(B){var A=document.cookie.indexOf(";",B);if(A==-1){A=document.cookie.length}return unescape(document.cookie.substring(B,A))};CookieJar.prototype.Get=function(D){var B=D+"=";var F=B.length;var A=document.cookie.length;var E=0;while(E<A){var C=E+F;if(document.cookie.substring(E,C)==B){return this.getCookieVal(C)}E=document.cookie.indexOf(" ",E)+1;if(E==0){break}}return null};CookieJar.prototype.Delete=function(A){if(this.Get(A)){document.cookie=A+"="+((this.path)?"; path="+this.path:"")+((this.domain)?"; domain="+this.domain:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT"}};CookieJar.prototype.Set=function(B,D,A){var E;var C=B+"="+escape(D)+((A)?"; expires="+A.toGMTString():"")+((this.path)?"; path="+this.path:"")+((this.domain)?"; domain="+this.domain:"")+((E)?"; secure":"");document.cookie=C};CookieJar.prototype.SetSession=function(A,B){this.Set(A,B)};function getFormValue(C){var A;if(C.type){if(C.type=="text"||C.type=="textarea"||C.type=="select-one"||C.type=="hidden"||C.type=="password"){A=C.value}else{if(C.type=="checkbox"){A=C.checked?C.value:undefined}else{if(C.type=="submit"||C.type=="button"){}else{alert("Unknown element type '"+C.type+"' for element '"+element+"' in form '"+form+"'")}}}}else{if(C.length){for(var B=0;B<C.length;B++){if(C[B].type&&C[B].type=="radio"){if(C[B].checked){A=C[B].value}}else{A=A||new Array();if(C[B].type=="checkbox"&&C[B].checked){A.push(C[B].value)}else{if(C.type=="text"||C.type=="textarea"||C.type=="select-one"||C.type=="hidden"||C.type=="password"){A.push(C[B].value)}}}}}}return A}function setFormValue(C,D){if(D==undefined){D=""}else{if(C.length){for(var B=0;B<C.length;B++){if(C[B].type&&(C[B].type=="radio"||C[B].type=="checkbox")){if(D instanceof Array){for(var A=0;A<D.length;A++){if(C[B].value==D[A]){C[B].checked=true}}}else{C[B].checked=C[B].value==D}}}}else{if(C.type){if(C.type=="text"||C.type=="textarea"||C.type=="hidden"||C.type=="password"){C.value=D}else{if(C.type=="checkbox"){if(D instanceof Array){for(var B=0;B<D.length;B++){if(C.value==D[B]){C.checked=true}}}else{if(D==C.value){C.checked=true}else{C.checked=false}}}else{if(C.type=="button"||C.type=="submit"){}else{if(C.type=="radio"){C.checked=C.value==D}else{if(C.type=="select-one"){for(var B=0;B<C.length;B++){C.options[B].selected=C.options[B].value==D}}else{alert("Unknown type '"+C.type+"' in setFormValue()")}}}}}}else{alert("Unknown element '"+C+"' in setFormValue")}}}}if(typeof JSoft=="undefined"||!JSoft){var JSoft={}}JSoft.Table=function(A){if(typeof (A)=="string"){this.id=A;this.element=document.getElementById(A)}else{this.id=A.id;this.element=A}this.init()};JSoft.Table.prototype={_editAction:null,_selectAction:null,_deleteAction:null,Event:YAHOO.util.Event,Dom:YAHOO.util.Dom,init:function(){this.setupRowHandlers()},editAction:function(A){this._editAction=A},selectAction:function(A){this._selectAction=A},deleteAction:function(A){this._deleteAction=A},setupClickHandlers:function(){if(this._selectAction!=null){this.Event.on(this.element,"click",this.selectRow,this)}if(this._editAction!=null){this.Event.on(this.element,"dblclick",this.editRow,this)}if(this._deleteAction!=null){var B=YAHOO.util.Dom.getElementsByClassName("delete","img",this.element);for(var A=0;A<B.length;A++){YAHOO.util.Event.on(B[A],"click",this.deleteRow,this)}}},setupRowHandlers:function(){var C=this.element.getElementsByTagName("tr");for(var B=0;B<C.length;B++){var E=C[B];if(!this.Dom.hasClass(E,"groupRow")){this.Event.on(E,"mouseover",function(F){YAHOO.util.Dom.addClass(this,"highlight")});this.Event.on(E,"mouseout",function(F){YAHOO.util.Dom.removeClass(this,"highlight")})}}var A=document.getElementById(this.id+"SelectAll");if(A){this.Event.on(A,"click",this.selectAll,this)}var D=this.Dom.getElementsByClassName("groupCheck");for(var B=0;B<D.length;B++){this.Event.on(D[B],"click",this.selectGroup,this)}},selectAll:function(D,C){var A=C.element.getElementsByTagName("input");for(var B=0;B<A.length;B++){if(YAHOO.util.Dom.hasClass(A[B],"check")||YAHOO.util.Dom.hasClass(A[B],"groupCheck")){A[B].checked=this.checked}}},selectGroup:function(E,C){var D=this.className.match(/group\d/);if(D){var A=YAHOO.util.Dom.getElementsByClassName(D,"input",C.element);for(var B=0;B<A.length;B++){A[B].checked=this.checked}}},getRowId:function(A){return(/_(\w+)/.exec(A.id)[1])},executeAction:function(actionStr,record){if(actionStr.indexOf("function")==0){eval(actionStr);if(action){action(record)}else{alert("action for "+me+" doesn't define functionn 'action'")}}else{var newUrl=actionStr;newUrl+=record;if(newUrl.indexOf("?")==-1){newUrl+="?"}newUrl+=";HTTP_REFERER="+encodeURIComponent(window.location.href);window.location.href=newUrl}},selectRow:function(D,B){var C=YAHOO.util.Event.getTarget(D);var A=true;while(C&&C.nodeName.toUpperCase()!="TR"){nodeName=C.nodeName.toUpperCase();if(nodeName=="A"||nodeName=="INPUT"){A=false;break}else{C=C.parentNode}}if(C&&A){YAHOO.util.Event.preventDefault(D);record=B.getRowId(C);if(record!=null){B.executeAction(B._selectAction,record)}else{alert("Clicked element doesn't contain a key value. Id='"+this.id+"'")}}},editRow:function(C,A){var B=YAHOO.util.Event.getTarget(C);while(B&&B.nodeName.toUpperCase()!="TR"){B=B.parentNode}if(B){YAHOO.util.Event.preventDefault(C);record=A.getRowId(B);if(record!=null){A.executeAction(A._editAction,record)}else{alert("Clicked element doesn't contain a key value. Id='"+this.id+"'")}}},deleteRow:function(C,A){if(confirm("Weet u zeker dat u dit item wilt verwijderen?")){if(!C.cancelBubble){var B=YAHOO.util.Event.getTarget(C);while(B&&B.nodeName.toUpperCase()!="TR"){B=B.parentNode}if(B){record=A.getRowId(B);A.executeAction(A._deleteAction,record)}}YAHOO.util.Event.stopEvent(C);return false}}};if(typeof JSoft=="undefined"||!JSoft){var JSoft={}}JSoft.tables={};JSoft.forms={};JSoft.Application=function(){this.init()};JSoft.Application.prototype={init:function(){return true},setupTables:function(B){for(var A in JSoft.tables){var C=JSoft.tables[A]();C.setupClickHandlers();C[A]=C}},setupButtons:function(){var A=YAHOO.util.Dom.getElementsByClassName("action","a");this.setupButtonCollection(A);var A=YAHOO.util.Dom.getElementsByClassName("action","input");this.setupButtonCollection(A)},setupButtonCollection:function(B){function D(F){return function(G){YAHOO.util.Event.preventDefault(G);return F(G)}}for(var A=0;A<B.length;A++){var E=null;if(B[A].onclick){E=D(B[A].onclick)}var C=new YAHOO.widget.Button(B[A]);if(E){C.on("click",E)}}},setupDelete:function(){var A=YAHOO.util.Dom.getElementsByClassName("delete","a");for(var B=0;B<A.length;B++){YAHOO.util.Event.on(A[B],"click",function(C){if(!confirm("Weet u zeker dat u dit item wilt verwijderen?")){YAHOO.util.Event.stopEvent(C);return false}})}},setState:function(B,A){var C=window.location.href;if(window.location.hash){C=C.substr(0,newloc.indexOf(window.location.hash))}C+=window.location.search?";":"?";C+=B+"="+A+window.location.hash;window.location.href=C}};JSoft.showError=function(A){dialog=new YAHOO.widget.SimpleDialog("dlg",{width:"35em",fixedcenter:true,modal:true,visible:true,draggable:false,buttons:[{text:"Ok",handler:function(){this.hide()},isDefault:true}]});dialog.setHeader("Foutmelding");dialog.setBody(A);dialog.cfg.setProperty("icon",YAHOO.widget.SimpleDialog.ICON_WARN);dialog.render(document.body);dialog.show()};JSoft.Dialog=function(A){if(typeof (A)=="string"){this.id=A;this.element=document.getElementById(A)}else{this.id=A.id;this.element=A}this.init()};JSoft.Dialog.prototype={id:null,yuiDialog:null,modal:true,rendered:false,dataUrl:null,defaultData:null,width:35,autoCenter:true,autocomplete:{},onDataLoaded:null,onHide:null,Dom:YAHOO.util.Dom,init:function(){this.onDataLoaded=new YAHOO.util.CustomEvent("dataLoaded",this,false,YAHOO.util.CustomEvent.FLAT);this.onHide=new YAHOO.util.CustomEvent("hide",this,false,YAHOO.util.CustomEvent.FLAT)},renderForm:function(){this.element.style.display="";if(!this.rendered){this.yuiDialog=new YAHOO.widget.Dialog(this.id,{width:this.width+"em",draggable:true,close:true,visible:false,modal:this.modal,hideaftersubmit:false,buttons:[{text:"ok",handler:this.handleSubmit,isDefault:true},{text:"annuleer",handler:this.handleCancel}]});this.yuiDialog.beforeHideEvent.subscribe(function(C,B,D){D.onHide.fire(D)},this);this.yuiDialog.render();var A=this;this.yuiDialog.callback={success:function(B){A.success(B)},failure:this.failure};this.rendered=true;this.setupAutoComplete()}},setupAutoComplete:function(){var G=this.yuiDialog.form.id;if(JSoft.forms[G]&&JSoft.forms[G]["ac"]){var C=JSoft.forms[this.yuiDialog.form.id]["ac"];for(var B in C){var E=C[B];var D=new YAHOO.widget.DS_XHR(JSoft.Application.prototype.rootUrl+E.source,E.path,{responseType:YAHOO.widget.DS_XHR.TYPE_JSON,maxCacheEntries:60,queryMatchSubset:true});var A=this.yuiDialog.form.elements[B];var F=new YAHOO.widget.AutoComplete(A,E.id+"AutoCompleteContainer",D,{animVert:false,queryDelay:0.25,minQueryLength:3,maxResultsDisplayed:12});F.containerExpandEvent.subscribe(this.alignLookup,this);this.autocomplete[B]=F}}},alignLookup:function(B,C,A){YAHOO.util.Dom.setX(this._elContainer,YAHOO.util.Dom.getX(this._elTextbox))},newRecord:function(){this.renderForm();this.yuiDialog.form.reset();if(this.defaultData!=null){this.setData(this.defaultData);this.onDataLoaded.fire(this.defaultData)}else{this.onDataLoaded.fire()}this.show()},editRecord:function(A){this.renderForm();this.getData(A)},show:function(){this.yuiDialog.show();if(this.autoCenter){this.center()}var A=this.yuiDialog.form.id;if(JSoft.forms[A]&&JSoft.forms[A]["focusField"].length){this.yuiDialog.form.elements[JSoft.forms[A]["focusField"]].focus()}},center:function(){this.yuiDialog.center()},handleCancel:function(A){this.hide()},handleSubmit:function(A){this.submit()},getData:function(A){me=this;var B=YAHOO.util.Connect.asyncRequest("GET",this.dataUrl+A,{success:function(C){me.getDataDone(C)},failure:function(C){me.getDataFailed(C)}})},getDataDone:function(B){if(B.status==200){try{var A=YAHOO.lang.JSON.parse(B.responseText);this.setData(A);this.onDataLoaded.fire(A);this.show()}catch(C){JSoft.showError("Response is not valid JSON data. Response: '"+B.responseText+"'")}}else{JSoft.showError(B.responseText)}},getDataFailed:function(A){JSoft.showError(A.responseText)},setData:function(B){var A=this.yuiDialog.form;for(field in B){if(A.elements[field]){setFormValue(A.elements[field],B[field])}else{if(A.elements[field+"[]"]){setFormValue(A.elements[field+"[]"],B[field])}}}},success:function(C){try{var A=YAHOO.lang.JSON.parse(C.responseText);if(A.result){this.yuiDialog.hide()}else{if(A.invalidFields){this.showInvalidFields(A.invalidFields)}else{if(A.message){JSoft.showError("Fout: "+A.message)}else{JSoft.showError("Fout: het opslaan is mislukt maar de server heeft geen foutmelding gegeven.")}}}}catch(B){alert("Result is not valid JSON encoded data. Response: '"+C.responseText+"'")}if(A.redirect){window.location.href=A.redirect}else{if(A.reload){window.location.reload(false)}}},failure:function(A){alert(A.responseText)},showInvalidFields:function(A){var C=this.yuiDialog.form;for(var D in A){if(C.elements[D]){var B=C.elements[D];if(this.Dom.hasClass(B,"text")){this.Dom.addClass(B,"error")}}else{alert("Field '"+D+"' not found")}}}};