﻿if(typeof(Vx)=="undefined"){var Vx={}}if(!Vx.Calculator){Vx.Calculator={}}Vx.Calculator.SelectionCounter=new Class({initialize:function(D,B,C){var B=this.setupSubjects($splat(B)),A=0;this.setupLabels($splat(D));B.each(function(E){if(E.checked){++A}});if(A!==C){this.updateLabelValue(A-C)}},setupLabels:function(D){this.labels=[];for(var B=0,A=D.length,C;B<A;++B){C=$(D[B]);if(C){this.labels.push(C);if(C.nodeName.toLowerCase()==="input"){C.addEvent("click",this.checkSubmit)}}}},setupSubjects:function(B){var E=[],C,A,D;
for(C=0,A=B.length;C<A;++C){D=$(B[C]);if(D){E.push(D);D.addEvent("click",this.subjectClicked.bind(this,D))}}return E},subjectClicked:function(A){this.updateLabelValue(A.checked?1:-1)},updateLabelValue:function(C){for(var B=0,A=this.labels.length;B<A;++B){this.labels[B].value=this.labels[B].value.replace(/\((\d+)\)/,function(D,E){var F=parseInt(E,10)+C;return"("+F+")"})}},checkSubmit:function(A){if(/\(0\)/.test(A.target.value)){A.stop();return false}return true}});Vx.Calculator.ComparisonTariff=new Class({Implements:[Options],options:{service:{url:"",method:"get",encoding:"utf-8",timeoutPeriod:5000},carrierId:0,tariffId:0,defaultItemText:"",waitingText:"Bitte haben Sie ein wenig Geduld...",dependencies:[]},initialize:function(A,C,B){this.setOptions(B);
this.carrierList=$(A);this.tariffList=$(C);this.update={};this.carrierId=this.options.carrierId;this.tariffId=this.options.tariffId;this.carrierList.addEvent("change",this.updateTariffs.bind(this));$(this.carrierList.form).addEvent("submit",this.checkSubmit.bind(this));this.setupSubjects()},setupSubjects:function(){this.subjects=[];var E,B,D,C,A;for(E=0,B=this.options.dependencies.length;E<B;++E){D=this.options.dependencies[E];D.elem=$(D.id);if(!D.elem){continue}delete D.id;C=D.event||"change";delete D.event;
A={bind:this};if($type(D.delay)=="number"){A.delay=Math.max(D.delay,0);delete D.delay}if($type(D.beforeUpdate)=="function"){A.arguments=[D.beforeUpdate,D.elem,!D.checkChange];D.elem.addEvent(C,function(G,H,F){if(G(H)){this.updateCarriers(F)}}.create(A))}else{A.arguments=[!D.checkChange];D.elem.addEvent(C,this.updateCarriers.create(A))}delete D.beforeUpdate;if(D.checkChange){D.previousValue=""}if($type(D.getValue)!="function"){D.getValue=this.getElementValue}this.subjects.push(D)}delete this.options.dependencies
},updateTariffs:function(){this.carrierId=this.carrierList.value;this.tariffId=0;this.tariffList.options.length=0;if(!this.update.result){this.updateCarriers(true)}else{this.fillTariffList(this.update.result[this.carrierId].tariffs)}},updateCarriers:function(A){if(!A){this.carrierId=0;this.tariffId=0}this.startRequest()},startRequest:function(){this.stopRequest();this.resetLists();this.disableList(this.carrierList,true,this.options.waitingText);this.disableList(this.tariffList,true,this.options.waitingText);
if(!this.update.request){this.update.request=new Request.JSON({link:"cancel",method:this.options.service.method,encoding:this.options.service.encoding,url:this.options.service.url,onSuccess:this.updateLists.bind(this),onFailure:this.stopRequest.bind(this)})}var A={};A.data=this.getServiceData();this.update.request.send(A);if(this.options.service.timeoutPeriod>0){this.update.timeout=this.stopRequest.delay(this.options.service.timeoutPeriod,this)}},stopRequest:function(){if(this.update.timeout){this.update.timeout=$clear(this.update.timeout)
}if(this.update.request){this.update.request.cancel()}},resetLists:function(){this.carrierList.options.length=0;this.tariffList.options.length=0},getServiceData:function(){var C,A,E={},B,D;for(C=0,A=this.subjects.length;C<A;++C){B=this.subjects[C];D=B.getValue(B.elem);if(B.checkChange){B.previousValue=D}if($defined(D)&&D!==""){E[B.param]=D}}return E},updateLists:function(C){this.stopRequest();if(!C||!C.result||!C.result.carriers){return}this.resetLists();this.update.result={};var D=$splat(C.result.carriers),F=false,B,A,E;
for(B=0,A=D.length;B<A;++B){E=D[B];this.update.result[E.iD]=E;this.carrierList.options[B]=new Option(E.name,E.iD);if((B===0&&this.carrierId===0)||this.carrierId==E.iD){F=true;this.carrierId=E.iD;this.carrierList.options[B].selected=true;this.fillTariffList(E.tariffs)}}if(!F&&D.length>0){this.tariffId=0;this.carrierList.selectedIndex=0;this.fillTariffList(D[0].tariffs)}this.disableList(this.carrierList,this.carrierList.options.length===0);this.disableList(this.tariffList,this.tariffList.options.length===0)
},fillTariffList:function(C){if(!C){return}for(var B=0,A=C.length;B<A;++B){this.tariffList.options[B]=new Option(C[B].name,C[B].iD);if((B===0&&this.tariffId===0)||this.tariffId==C[B].iD){this.tariffList.options[B].selected=true;this.tariffId=C[B].iD}}},disableList:function(B,A,C){B.disabled=A;C=C||this.options.defaultItemText;if(A&&C){B.options[0]=new Option(C,"")}},checkSubmit:function(){for(var B=0,A=this.subjects.length;B<A;++B){if(this.subjects[B].checkChange&&this.subjects[B].previousValue!==""&&this.subjects[B].previousValue!==this.subjects[B].getValue(this.subjects[B].elem)){this.tariffList.selectedIndex=-1;
break}}return true},getElementValue:function(A){return A.value}});Vx.Calculator.setupSlider=function(B,A){A=$(A);B=$(B);var C=new Fx.Slide(A,{link:"cancel",duration:"short"});if(B.checked){C.show()}else{C.hide();A.setStyle("display","")}B.addEvent("click",function(){C.toggle()})};Vx.Calculator.GasUsageToPower=new Class({initialize:function(C,B,A,D){this.usage=$(C);this.power=$(B);if(!C||!B){return}this.factor=A||1;this.separator=D;this.setWatch()},setWatch:function(){this.callbacks={usage:this.calculate.bind(this),power:this.detach.bind(this)};
this.usage.addEvent("change",this.callbacks.usage);this.power.addEvent("change",this.callbacks.power)},calculate:function(){var B=(this.usage.value===""||isNaN(this.usage.value))?0:this.usage.value.toFloat(),A=Math.max(1,Math.round(B/this.factor*100)/100);if(this.separator){A=(""+A).replace(".",this.separator)}this.power.value=A},detach:function(){this.usage.removeEvent("change",this.callbacks.usage);this.power.removeEvent("change",this.callbacks.power);delete this.callbacks}});Vx.Calculator.DirectComparison={close:function(F){var C,E,D,A,B,G;
while(F&&F.nodeName&&F.nodeName.toUpperCase()!="TD"){F=F.parentNode}if(!F||F==window){return false}E=F.parentNode.parentNode;while(E&&E.nodeName.toUpperCase()!="TABLE"){E=E.parentNode}G=E.nextSibling;B=E.parentNode;B.removeChild(E);C=F.cellIndex;for(D=0,A=E.rows.length;D<A;++D){E.rows[D].deleteCell(C)}if(E.rows.length>0){B.insertBefore(E,G)}else{B.parentNode.removeChild(B)}return false},adjustTableHeight:function(D,G){D=$(D);G=$(G);var C,B,F,E,I,H,A;E=Math.min(D.rows.length,G.rows.length);for(C=0;
C<E;++C){I=G.rows[C].cells[0];H=D.rows[C].cells[0];if(!I||!H){break}A=Math.max(I.offsetHeight,H.offsetHeight);for(B=0,F=G.rows[C].cells.length;B<F;++B){this.$adjustHeight(G.rows[C].cells[B],A)}for(B=0,F=D.rows[C].cells.length;B<F;++B){this.$adjustHeight(D.rows[C].cells[B],A)}}},$adjustHeight:function(C,A){C=$(C);if(!Browser.Engine.gecko&&!Browser.Engine.presto){if(window.getComputedStyle){var B=window.getComputedStyle(C,null);A-=(this.$stripUnit(B.getPropertyValue("padding-top"))+this.$stripUnit(B.getPropertyValue("padding-bottom")));
A-=(this.$stripUnit(B.getPropertyValue("border-top-width"))+this.$stripUnit(B.getPropertyValue("border-bottom-width")))}else{if(C.currentStyle){A-=(this.$stripUnit(C.currentStyle.paddingTop)+this.$stripUnit(C.currentStyle.paddingBottom));A-=(this.$stripUnit(C.currentStyle.borderTopWidth)+this.$stripUnit(C.currentStyle.borderBottomWidth))}}}if(A>0){C.setStyle("height",A+"px")}},$stripUnit:function(B){var A=/([-+]?\d+)/.exec(B);return(A!=null?A[0]:0).toInt(10)}};Vx.Calculator.Mobile=new Class({Implements:[Options],options:{leftover:{id:"percentageLeftIndicator",label:"Noch {0} Prozent zu vergeben"}},initialize:function(A,B,D,C){this.selector=$(A);
if(!this.selector||!Vx.UI||!Vx.UI.Slider){return}this.setOptions(C);this.presets=B||[];this.sliders=$extend({normal:[],grouped:[]},D);if(this.sliders.grouped.length>0){this.leftover=$(this.options.leftover.id)}this.addWatch()},addWatch:function(){this.selector.addEvent("change",this.selectPreset.bind(this));this.sliders.normal.each(function(A){var B=$(A);if(B){B.addEvent("change",this.userChange.bind(this))}},this);this.sliders.grouped.each(function(A){var B=$(A);if(B){B.addEvent("change",this.groupChange.bind(this))
}},this)}.protect(),selectPreset:function(){var B=this.selector.value,A=Vx.UI.Slider.sliders,D,C;if(B!==""){this.lock=true;this.sliders.grouped.each(function(E){A[E].set(0)});D=this.presets[parseInt(B,10)];C=function(E){A[E].set(D[E])};this.sliders.normal.each(C,this);this.sliders.grouped.each(C,this);this.lock=false}},userChange:function(){if(!this.lock){this.selector.value=""}},groupChange:function(){this.userChange();if(!this.leftover){return}var C=100,B,A;for(B=0,A=this.sliders.grouped.length;
B<A;++B){C-=parseInt(Vx.UI.Slider.sliders[this.sliders.grouped[B]].step,10)}if(C<=0){this.leftover.setStyle("visibility","hidden")}else{this.leftover.innerHTML=this.options.leftover.label.replace("{0}",C.toString(10));this.leftover.setStyle("visibility","visible")}}});(function(){var A=[38,38,40,40,37,39,37,39,66,65];Vx.konamiCode=function(D){if($type(D)!=="function"){return}var C=0,B=function(E){if(E.code!==16){if(E.code===A[C]){if(++C>=A.length){$(document).removeEvent("keyup",B);C=0;D()}}else{if(E.code!==A[0]){C=0
}else{if(C!==2){C=1}}}}return true};$(document).addEvent("keyup",B)}})();