EventListener.addEvent(window,"load",function(){FullDateFieldUtil.init();
changesubject();
changeinfo();
checkDynamicForms()
});
DynamicFormUtil={dynamicForm:null};
function checkDynamicForms(){var A=document.getElementsByTagName("form");
for(var B=0;
B<A.length;
B++){if(A[B].getAttribute("lb:rules")){DynamicFormUtil.dynamicForm=new DynamicForm(A[B])
}}}function makeDate(C){var B=C.split(/-/);
var A=new Date();
A.setFullYear(parseInt(B[2]),parseInt(B[1])-1,parseInt(B[0]));
return A
}function makeDate(C){var B=C.split(/-/);
var A=new Date();
A.setFullYear(parseInt(B[2]),parseInt(B[1])-1,parseInt(B[0]));
return A
}function DynamicForm(A){this.form=A;
this.read(this.form.getAttribute("lb:rules"));
this.checkConditions([]);
this.attachEvents()
}DynamicForm.prototype.handleChange=function(A){this.checkConditions([])
};
DynamicForm.prototype.handleClick=function(A){this.lastsubmitname=A.name
};
DynamicForm.prototype.handleSubmit=function(F){var A=[];
this.checkConditions(A);
var G=(this.rules)?this.rules.concat(A):A;
var H=new Array();
try{for(var D=0;
D<G.length;
D++){if(G[D].submit&&G[D].submit!=this.lastsubmitname){continue
}var B=document.getElementsByName(G[D].name)[0];
if(!this.applies(G[D],B)){H[H.length]={name:G[D].name,message:G[D].message}
}}}catch(C){alert(G[D].name+" niet gevonden. Er zit een fout in het XML bestand.")
}if(H.length){if(this.handler){this.handler(H)
}else{var E="";
for(var D=0;
D<H.length;
D++){E=E+H[D].message+"\n"
}alert(E)
}return false
}else{if(document.getElementsByName("method_action")[0]){document.getElementsByName("method_action")[0].value=this.lastsubmitname
}return true
}};
DynamicForm.prototype.setSubmitHandler=function(A){this.handler=A
};
DynamicForm.prototype.checkConditions=function(G,C){var I=C||this.conditions;
if(I){for(var E=0;
E<I.length;
E++){var B=I[E];
var F=document.getElementsByName(B.name);
for(var D=0;
D<F.length;
D++){var J=F[D];
if(J&&this.applies(B,J)){if(B.conditions){this.checkConditions(G,B.conditions)
}if(B.actions){for(var H=0;
H<B.actions.length;
H++){this.perform(B.actions[H])
}}if(B.rules){for(var A=0;
A<B.rules.length;
A++){G[G.length]=B.rules[A]
}}}}}}};
DynamicForm.prototype.applies=function(G,B){var F=this.getInputValue(B);
switch(G.operation){case"empty":return(F=="");
break;
case"filled":return(F!="");
break;
case"equals":return(F==G.parameters[0]);
break;
case"unequals":return(F!=G.parameters[0]);
break;
case"match":var E=(G.parameters.length>=2)?new RegExp(G.parameters[0],G.parameters[1]):new RegExp(G.parameters[0]);
return E.test(F);
break;
case"nomatch":var E=(G.parameters.length>=2)?new RegExp(G.parameters[0],G.parameters[1]):new RegExp(G.parameters[0]);
return !E.test(F);
break;
case"checked":if(B.type=="checkbox"||B.type=="radio"){return B.checked
}break;
case"unchecked":if(B.type=="checkbox"||B.type=="radio"){return !B.checked
}break;
case"smaller":return(Number(F)!=NaN&&parseInt(F,10)<parseInt(G.parameters[0],10));
break;
case"larger":return(Number(F)!=NaN&&parseInt(F,10)>parseInt(G.parameters[0],10));
break;
case"range":return(Number(F)!=NaN&&parseInt(F,10)>=parseInt(G.parameters[0],10)&&parseInt(F,10)<=parseInt(G.parameters[1],10));
break;
case"outside":return(Number(F)!=NaN&&parseInt(F,10)<parseInt(G.parameters[0],10)||parseInt(F,10)>parseInt(G.parameters[1],10));
break;
case"futuredate":var C=makeDate(F);
var A=new Date();
return(C>A);
break;
case"pastdate":var C=makeDate(F);
var A=new Date();
return(C<A);
break;
case"younger":var C=makeDate(F);
var A=new Date();
var D=A.setFullYear(A.getFullYear()-G.parameters[0]);
return(C>D);
break;
case"older":var C=makeDate(F);
var A=new Date();
var D=A.setFullYear(A.getFullYear()-G.parameters[0]);
return(C<D);
break;
case"withindaysfromnow":var C=makeDate(F);
var A=new Date();
var D=A.getTime()+3600*1000*24*G.parameters[0];
return(C.getTime()<=D);
break;
case"laterthandaysfromnow":var C=makeDate(F);
var A=new Date();
var D=A.getTime()+3600*1000*24*G.parameters[0];
return(C.getTime()>D);
break
}return false
};
DynamicForm.prototype.perform=function(action){if(!action.isCustom){switch(action.operation){case"show":for(var i=0;
i<action.parameters.length;
i++){if(document.getElementById(action.parameters[i])){document.getElementById(action.parameters[i]).style.display="block"
}}break;
case"hide":for(var i=0;
i<action.parameters.length;
i++){if(document.getElementById(action.parameters[i])){document.getElementById(action.parameters[i]).style.display="none"
}}break;
case"addclass":if(document.getElementById(action.parameters[0])){ClassName.add(document.getElementById(action.parameters[0]),action.parameters[1])
}break;
case"removeclass":if(document.getElementById(action.parameters[0])){ClassName.remove(document.getElementById(action.parameters[0]),action.parameters[1])
}break;
case"check":if(document.getElementById(action.parameters[0])){document.getElementById(action.parameters[0]).checked=true
}document.getElementById(action.parameters[0]).onchange();
break;
case"copyvalue":if(document.getElementById(action.parameters[0])&&document.getElementById(action.parameters[1])){this.setInputValue(document.getElementById(action.parameters[1]),this.getInputValue(document.getElementById(action.parameters[0])))
}break;
case"setvalue":if(document.getElementById(action.parameters[0])){this.setInputValue(document.getElementById(action.parameters[0]),action.parameters[1])
}break;
case"clearvalue":if(document.getElementById(action.parameters[0])){this.setInputValue(document.getElementById(action.parameters[0]),"")
}break
}}else{eval(action.operation)
}};
DynamicForm.prototype.getInputValue=function(A){switch(A.tagName.toLowerCase()){case"input":switch(A.type){case"checkbox":if(A.checked){return A.value
}break;
case"radio":var C=document.getElementsByName(A.name);
for(var B=0;
B<C.length;
B++){if(C[B].checked){return C[B].value
}}break;
case"text":case"hidden":case"password":return A.value;
break
}break;
case"select":return A.options[A.selectedIndex].value;
break;
case"textarea":return A.value;
break
}return""
};
DynamicForm.prototype.setInputValue=function(A,C){switch(A.tagName.toLowerCase()){case"input":switch(A.type){case"checkbox":if(A.value==C){A.checked=true
}break;
case"radio":var D=document.getElementsByName(A.name);
for(var B=0;
B<D.length;
B++){if(D[B].value==C){D[B].checked=true;
if(D[B].DC){D[B].DC.updateGUI()
}}}break;
case"text":case"hidden":case"password":A.value=C;
break
}break;
case"select":for(var B=0;
B<A.options.length;
B++){if(A.options[B].value==C){A.selectedIndex=B
}}break;
case"textarea":A.value=C;
break
}};
DynamicForm.prototype.read=function(A){var B=null;
if(window.XMLHttpRequest){B=new XMLHttpRequest()
}else{if(window.ActiveXObject){try{B=new ActiveXObject("Msxml2.XMLHTTP")
}catch(D){B=new ActiveXObject("Microsoft.XMLHTTP")
}}}if(!B){return 
}B.open("GET",A,false);
B.send(null);
if(B.responseXML){var C=B.responseXML.childNodes[0];
if(C.nodeType==7){C=B.responseXML.childNodes[1]
}this.conditions=wrapNodes(C,"condition",Condition);
this.rules=wrapNodes(C,"rule",Rule,true)
}};
DynamicForm.prototype.attachEvents=function(){var A=this.form.elements;
for(var B=0;
B<A.length;
B++){if(A[B].tagName&&A[B].tagName=="FIELDSET"){continue
}if(A[B].type&&(A[B].type=="radio"||A[B].type=="checkbox")){EventListener.addEvent(A[B],"click",this.handleChange,this)
}else{EventListener.addEvent(A[B],"change",this.handleChange,this)
}}this.form.onsubmit=this.method(this.handleSubmit)
};
DynamicForm.prototype.method=function(B){var A=this;
return function(){return B.apply(A,arguments)
}
};
function Condition(A){this.name=A.getAttribute("name");
this.operation=getOperation(A.getAttribute("value"));
this.parameters=getParameters(A.getAttribute("value"));
this.conditions=wrapNodes(A,"condition",Condition);
this.actions=wrapNodes(A,"action",Action);
this.rules=wrapNodes(A,"rule",Rule)
}function Action(A){if(A.getAttribute("type")){this.operation=getOperation(A.getAttribute("type"));
this.parameters=getParameters(A.getAttribute("type"))
}if(A.getAttribute("custom")){this.isCustom=true;
this.operation=A.getAttribute("custom")
}}Action.prototype.toString=function(){var B=this.operation+"(";
for(var A in this.parameters){B=B+((A>0)?", ":"")+this.parameters[A]
}B+=")";
return B
};
function Rule(A){this.name=A.getAttribute("name");
this.submit=A.getAttribute("submit");
this.operation=getOperation(A.getAttribute("require"));
this.parameters=getParameters(A.getAttribute("require"),(this.operation=="match"||this.operation=="nomatch"));
this.message=getValue(A.getElementsByTagName("error")[0])
}function getOperation(A){var B=new RegExp("^([a-zA-Z0-9]+)[(](.*)[)]$");
B.test(A);
B.exec(A);
return RegExp.$1
}function getParameters(A,C){var B=new RegExp("^([a-z]+)[(](.*)[)]$");
B.test(A);
B.exec(A);
if(C){var D=new Array();
D[0]=RegExp.$2
}else{var D=RegExp.$2.split(",")
}if(D[0].length==0){D.length=0
}return D
}function wrapNodes(A,C,F,G){var D=A.firstChild;
var B=new RegExp("\\b"+C+"\\b");
var E=[];
while(D){if(B.test(D.nodeName)){E[E.length]=new F(D)
}D=D.nextSibling
}return E.length?E:null
}function getValue(A){if(A){var B=(A.firstChild)?A.firstChild.nodeValue:A.nodeValue;
B=B.replace(/^\s+/g,"");
B=B.replace(/\s+$/g,"");
return B
}else{return null
}}var confirmMove={init:function(A){this.form=document.getElementById("main-form");
this.radios=document.getElementsByName("customer.aswitch");
this.dialog=new FormDialog(A,this)
},showDialog:function(A){if(!this.dialog||this.dialog.container.id!=A){this.init(A)
}if(this.dialog.container.style.display!="block"&&this.dialog.container.style.visibility!="visible"){this.dialog.toggle(true)
}},confirm:function(C){if(C){var A=this.form.elements;
for(var B=0;
B<A.length;
B++){if(A[B].type=="submit"&&ClassName.contains(A[B],"next")){A[B].name="_cancel";
A[B].click()
}}}else{this.resetRadios()
}},resetRadios:function(){for(var A,B=0;
B<this.radios.length;
B++){A=this.radios[B];
A.checked=false;
if(A.DC){A.DC.updateGUI()
}}}};
var confirmPayment={init:function(){this.radioPaymentIncasso=document.getElementById("yradio1aja");
this.radioAcceptYes=document.getElementById("yradio5a1");
this.radioAcceptNo=document.getElementById("yradio5a2");
this.foldOut=document.getElementById("foldout-yradio1a");
this.dialog=new FormDialog("dialog-payment",this)
},showDialog:function(){if(!this.dialog){this.init()
}this.dialog.toggle(true)
},confirm:function(A){if(A){this.radioAcceptYes.checked=true;
if(this.radioAcceptYes.DC){this.radioAcceptYes.DC.updateGUI()
}}else{this.radioAcceptNo.checked=false;
if(this.radioAcceptNo.DC){this.radioAcceptNo.DC.updateGUI()
}this.foldOut.style.display="none";
this.radioPaymentIncasso.checked=true;
if(this.radioPaymentIncasso.DC){this.radioPaymentIncasso.DC.updateGUI()
}}}};
var districtHeating={init:function(A){this.form=document.getElementById("main-form");
this.radios=document.getElementsByName("districtHeating.hasDistrictHeating");
this.dialog=new FormDialog(A,this)
},showDialog:function(A){this.init(A);
this.dialog.toggle(true)
},confirm:function(C){if(C){var A=this.form.elements;
for(var B=0;
B<A.length;
B++){if(A[B].type=="submit"&&ClassName.contains(A[B],"next")){A[B].name="_cancel";
A[B].click()
}}}else{this.resetRadios()
}},resetRadios:function(){for(var A,B=0;
B<this.radios.length;
B++){A=this.radios[B];
A.checked=false;
if(A.DC){A.DC.updateGUI()
}}}};
var continueRegistration={init:function(A){this.form=document.getElementById("main-form");
this.dialog=new FormDialog(A,this)
},showDialog:function(A){this.init(A);
this.dialog.toggle(true)
},confirm:function(C){if(C==undefined){DynamicForm.prototype.setInputValue(document.getElementById("redirectToLoginPage"),"J");
var A=this.form.elements;
for(var B=0;
B<A.length;
B++){if(A[B].type=="submit"&&ClassName.contains(A[B],"next")){A[B].name="_cancel";
A[B].click()
}}}else{if(C){}else{if(!C){DynamicForm.prototype.setInputValue(document.getElementById("redirectToLoginPage"),"N");
var A=this.form.elements;
for(var B=0;
B<A.length;
B++){if(A[B].type=="submit"&&ClassName.contains(A[B],"next")){A[B].name="_cancel";
A[B].click()
}}}}}}};
function submitForm(F,A){var E=document.getElementById(F);
if(E){var B=E.elements;
for(var C=0;
C<B.length;
C++){if(B[C].type=="submit"&&ClassName.contains(B[C],"next")){var D=B[C].name;
B[C].name="_target"+A;
B[C].click();
B[C].name=D
}}}}function changesubject(){subject=document.getElementById("contactSubject");
if(subject!=null&&typeof (subject)!="undefined"){if(subject.value=="A-jaarverslag@nuon.com"){document.getElementById("comment").disabled=true;
document.getElementById("foldout-annualreport").style.display="block";
document.getElementById("foldout-comment").style.display="none"
}else{document.getElementById("comment").disabled=false;
document.getElementById("foldout-annualreport").style.display="none";
document.getElementById("foldout-comment").style.display="block"
}}}function changeinfo(){info=document.getElementById("desiredInfoSelect");
if(info!=null&&typeof (info)!="undefined"){if(info.value=="other"){document.getElementById("foldout-infotext").style.display="block"
}else{document.getElementById("foldout-infotext").style.display="none"
}}}FullDateFieldUtil={dateFields:{},init:function(){var A=document.getElementsByTagName("input");
for(var C=0;
C<A.length;
C++){if(ClassName.contains(A[C],"fulldate")){var B=new FullDateField();
B.init(A[C]);
this.dateFields[A[C].id]=B
}}},update:function(C){var B=C.indexOf(".");
if(B<0){B=C.length
}var A=this.dateFields[C.substring(0,B)+".date_full"];
if(A!=null&&A!=undefined){A.onChange();
DynamicFormUtil.dynamicForm.handleChange(A.input)
}}};
function FullDateField(){}FullDateField.prototype={init:function(C){var D=Utils.getParentByNodeName(C,"div");
var A=D.getElementsByTagName("input")[0];
var B=D.getElementsByTagName("select");
this.input=C;
this.day=A;
this.month=B[0];
this.year=B[1];
this.onChange();
EventListener.addEvent(this.day,"change",this.onChange,this)
},onChange:function(){this.input.value=this.day.value+"-"+this.month.options[this.month.selectedIndex].value+"-"+this.year.options[this.year.selectedIndex].value
}};
$(document).ready(function initDeviation(){changeDeviation()
});
function changeDeviation(){var A=$("select#deviationTypes option:selected").val();
if(A=="Anders, nl:"){$("div#foldout-deviationExplanation").show()
}else{$("div#foldout-deviationExplanation").hide()
}}var confirmBBPAdvice={init:function(){this.dialog=new FormDialog("dialog-bbp-advice-confirm",this);
this.form=document.getElementById("main-form");
this.amount=document.getElementById("newBBPAmount");
this.amountInDialog=document.getElementById("advies_confirm_wijziging")
},showDialog:function(){if(!this.dialog){this.init()
}this.updateAmount();
this.dialog.toggle(true)
},updateAmount:function(){this.amountInDialog.innerHTML=this.amount.value
},confirm:function(C){var A=this.form.elements;
if(C){for(var B=0;
B<A.length;
B++){if(A[B].type=="submit"&&A[B].name=="_change"){A[B].click()
}}}}};