document.observe('dom:loaded',function(eventObject){var queryString=document.location.search.toQueryParams();if(queryString.autoPrint=='true'){window.print();}});document.observe('dom:loaded',function(){$$('.JS_print').invoke('observe','click',function(eventObject){window.print();});});var ConfirmBox={initiate:function(eventObject){$$('.JS_confirmBox').invoke('observe','click',ConfirmBox._events.clickedForConfirm);},_events:{clickedForConfirm:function(eventObject){var elem=eventObject.element();var confirmMessage=elem.getAttribute("confirmMessage").replace(/\\n/,"\n");if(!confirmMessage){return false;}
if(!confirm(confirmMessage)){eventObject.stop();return false;}}}}
document.observe('dom:loaded',ConfirmBox.initiate);Basket=new Object();Basket.initialize=function(){Basket.assignActions();Basket.processTotals();Basket.updateContainer();Basket.updateCodeContainer();};Basket.processMutation=function(e){var elem=$(e.target);e.stop();var itemId=elem.getAttribute('itemId');var offerId=elem.getAttribute('offerId');var action=elem.getAttribute('action');var value=elem.tagName=='INPUT'?elem.value:elem.getAttribute('reqValue');var targetBasket=elem.getAttribute('targetBasket')?elem.getAttribute('targetBasket'):'defaultBasket';var addToValue=elem.readAttribute('addToValue');var basketElem=elem.up('.basketContainer');var params={'return':'productAmount','addToValue':addToValue,'action':action,'value':value,'targetBasket':targetBasket,'randomize':Math.random(),'inBasket':(basketElem?1:0),'__requestBy':'js'};if(itemId){params.productId=itemId;};if(offerId){params.offerId=offerId;};new Ajax.Request('php/bouwstenen/basket_listner.php',{asynchronous:true,method:'get',parameters:params,onSuccess:function(transport){jsonResponse=transport.responseText.evalJSON();console.log(jsonResponse);if(action=='deleteItem'){Basket.updateContainer();}
if(jsonResponse.itemId){$(jsonResponse.itemId+'_amountInBasket').value=jsonResponse.productAmount;$$('.basket_priceSubTotal[itemId='+jsonResponse.itemId+']').each(function(elem){elem.innerHTML=jsonResponse.calculatedPrice_Money;});};if(jsonResponse.offerId){var amountInBasket=$('offer_'+jsonResponse.offerId+'_amountInBasket');if(amountInBasket){amountInBasket.value=jsonResponse.productAmount;}
var subTotals=$$('.basket_priceSubTotal[offerId='+jsonResponse.offerId+']');if(subTotals.length){subTotals.each(function(elem){elem.innerHTML=jsonResponse.calculatedPrice_Money;});}};if(jsonResponse.allsoAffected.length){jsonResponse.allsoAffected.each(function(affectedItem){if(affectedItem.itemId){var amountInBasket=$(affectedItem.itemId+'_amountInBasket');console.log(affectedItem.itemId+'_amountInBasket',amountInBasket);if(amountInBasket){amountInBasket.value=affectedItem.productAmount;$$('.basket_priceSubTotal[itemId='+affectedItem.itemId+']').each(function(elem){elem.innerHTML=affectedItem.calculatedPrice_Money;});}};if(affectedItem.offerId){var amountInBasket=$('offer_'+affectedItem.offerId+'_amountInBasket');if(amountInBasket){amountInBasket.value=affectedItem.productAmount;}
var subTotals=$$('.basket_priceSubTotal[offerId='+affectedItem.offerId+']');if(subTotals.length){if(!affectedItem.productAmount){Basket.updateContainer();}else{subTotals.each(function(elem){elem.innerHTML=affectedItem.calculatedPrice_Money;});}}else{if(affectedItem.productAmount){Basket.updateContainer();}}};});}
console.log('processing totals');Basket.processTotals(targetBasket);},onFailure:function(){console.log('Could not retrieve product - basket information');}});}
Basket.processTotals=function(targetBasket){new Ajax.Request('php/bouwstenen/basket_listner.php',{asynchronous:true,method:'get',parameters:{'return':'totals','targetBasket':targetBasket,'randomize':Math.random(),'__requestBy':'js'},onSuccess:function(transport){jsonResponse=transport.responseText.evalJSON();console.log("totals are: ",jsonResponse);var totalValues=$$('.basket_totalPriceValid').each(function(elem){if(jsonResponse.allowTotalPriceUpdate=='TRUE'){elem.innerHTML=jsonResponse.totalSumValid_Money;}});if(jsonResponse.allowTotalPriceUpdate=='TRUE'){$$('.basket_totalPrice').each(function(elem){elem.update(jsonResponse.totalSum_Money);});$$('.basket_shippingCost').each(function(elem){elem.update(jsonResponse.shippingCost_Money);});$$('.basket_totalPriceWithShipping').each(function(elem){elem.update(jsonResponse.totalSumWithShipping_Money);});$$('.basket_totalPriceCodes').each(function(elem){elem.update(jsonResponse.totalSumCodes_Money);});$$('.basket_taxPrice').each(function(elem){elem.update(jsonResponse.totalSumTax_Money);});$$('.basket_grossPrice').each(function(elem){elem.innerHTML=jsonResponse.totalSumGross_Money;});}
$$('.JS_minibasket').each(function(elem){elem.update(jsonResponse.minibasket);});$$('.basket_totalLines').each(function(elem){elem.innerHTML=jsonResponse.totalLines;});$$('.basket_totalItems').each(function(elem){elem.innerHTML=jsonResponse.totalItems;});Basket.updateAanbiedingen(jsonResponse.totalSumFreeProduct);var basketPriceAccepted=jsonResponse.basketPriceAccepted;var merchantSelected=jsonResponse.merchantSelected;var merchantOrderDatesLeft=jsonResponse.merchantOrderDatesLeft;Basket.updateBasketProceedButtons(jsonResponse);},onFailure:function(){console.log('Could not retrieve totals - basket information');}});}
Basket.offerRelevantClassName='offerRelevant';Basket.updateAanbiedingen=function(totalSumValid){$$('.basketAanbieding_freeItem').each(function(elem){if(elem.hasClassName("hiddenElement")){elem.hide();if(((!elem.readAttribute('fromPrice'))||(totalSumValid>=parseInt(elem.readAttribute('fromPrice'))))&&((!elem.readAttribute('toPrice'))||(totalSumValid<parseInt(elem.readAttribute('toPrice'))))){elem.show();}}else{elem.removeClassName(Basket.offerRelevantClassName);if(((!elem.readAttribute('fromPrice'))||(totalSumValid>=parseInt(elem.readAttribute('fromPrice'))))&&((!elem.readAttribute('toPrice'))||(totalSumValid<parseInt(elem.readAttribute('toPrice'))))){elem.addClassName(Basket.offerRelevantClassName);}}});}
Basket.assignActions=function(){var product_mutateButtons=$$('button.basket_mutate');product_mutateButtons.each(function(elem){if(!elem.assignmentCompleted){elem.observe('click',function(e){Basket.processMutation(e);})}
elem.assignmentCompleted=true;});var product_itemAmounts=$$('input.basket_mutate');product_itemAmounts.each(function(elem){if(!elem.assignmentCompleted){elem.observe('keypress',function(e){var charCode=e.keyCode?e.keyCode:e.which;var strChar=String.fromCharCode(charCode);if(charCode==13){if(!e.target.value)e.target.value=0;Basket.processMutation(e);window.event?event.returnValue=false:e.preventDefault();return false;}
if((!strChar.match(/[0-9]/))&&(charCode!=8)&&(charCode!=46)){window.event?event.returnValue=false:e.preventDefault();return false;}});elem.observe('change',function(e){if(!e.target.value)e.target.value=0;Basket.processMutation(e);});elem.assignmentCompleted=true;}});var product_itemAdds=$$('form.basket_addItem');product_itemAdds.each(function(elem){if(!elem.assignmentCompleted){elem.observe('submit',function(e){e.stop();var elementsInForm=elem.getElementsByTagName('input');var query=new Hash();for(var iElem=0;iElem<elementsInForm.length;iElem++){if(elementsInForm[iElem].getAttribute('name')){query.set(elementsInForm[iElem].getAttribute('name'),elementsInForm[iElem].value);}}
query.set('targetBasket',(query.get('targetBasket')?query.get('targetBasket'):'defaultBasket'));query.set('randomize',Math.random());query.set('return','operationStatus');query.set('__requestBy','js');new Ajax.Request('php/bouwstenen/basket_listner.php',{asynchronous:true,method:'get',parameters:query,onSuccess:function(transport){jsonResponse=transport.responseText.evalJSON();Basket.processTotals(query.get('targetBasket'));Basket.updateContainer();$$('.basket_addItem .errorMessage').each(function(errorElem){errorElem.hide();if(errorElem.hasClassName('unknownItem')){if(jsonResponse.productFound!='SUCCESS'){errorElem.show();}}});e.target.reset();},onFailure:function(){console.log('Could not retrieve product - basket information');}});})
elem.assignmentCompleted=true;}});$$('.basketSetExtraData').each(function(elem){if(!elem.assignmentCompleted){elem.observe('click',function(e){e.stop();var sourceElem=this;var targElems=$w(this.getAttribute('basketExtraDataContainerId'));var elementsInContainer=[];targElems.each(function(elem){if($(elem)){var inputs=$(elem).select('input,select,textarea');inputs.each(function(inputElem){elementsInContainer.push(inputElem);});}});if(elementsInContainer.length){var query=new Hash();var errorneousFieldFound=false;for(var iElem=0;iElem<elementsInContainer.length;iElem++){var containerElem=$(elementsInContainer[iElem]);if(elementsInContainer[iElem].readAttribute('name')){if((containerElem.readAttribute('type')=='radio')&&(!containerElem.checked)){continue;}
if(containerElem.readAttribute('fieldValidation')){var validated=false;if(!(containerElem.readAttribute('type')=='checkbox')){var validator=new RegExp(containerElem.readAttribute('fieldValidation'));validated=containerElem.value.match(validator)}else{validated=containerElem.checked;}
if(validated){containerElem.removeClassName(formValidation.errorClass);}else{containerElem.addClassName(formValidation.errorClass);errorneousFieldFound=true;}}
query.set(containerElem.getAttribute('name'),containerElem.value);}}
query.set('targetBasket',(query.get('targetBasket')?query.get('targetBasket'):'defaultBasket'));query.set('randomize',Math.random());query.set('action','setExtraData');query.set('__requestBy','js');var targetURL=elem.readAttribute('href');new Ajax.Request('php/bouwstenen/basket_listner.php',{asynchronous:true,method:'get',parameters:query,onFailure:function(){console.log('setting extra data failed');},onSuccess:function(){if(!errorneousFieldFound){document.location.href=targetURL;}}});}else{console.log('had no extra data to submit (do the container(s) exist?)');var targetURL=elem.readAttribute('href');document.location.href=targetURL;}});elem.assignmentCompleted=true;};});$$('form.basket_addCode').each(function(elem){if(!elem.assignmentCompleted){elem.observe('submit',function(e){window.event?event.returnValue=false:e.preventDefault();var elementsInForm=elem.getElementsByTagName('input');var query=new Hash();var codeElem;for(var iElem=0;iElem<elementsInForm.length;iElem++){if(elementsInForm[iElem].getAttribute('name')){query.set(elementsInForm[iElem].getAttribute('name'),elementsInForm[iElem].value);}
if(elementsInForm[iElem].getAttribute('name')=='code')codeElem=elementsInForm[iElem];}
query.set('targetBasket',(query.get('targetBasket')?query.get('targetBasket'):'defaultBasket'));query.set('randomize',Math.random());query.set('__requestBy','js');new Ajax.Request('php/codes.php',{asynchronous:true,method:'get',parameters:query,onSuccess:function(transport){Basket.updateCodeContainer();$$('.basket_addCode .errorMessage').each(function(errorElem){errorElem.hide();if(errorElem.hasClassName(transport.responseXML.getElementsByTagName('status')[0].firstChild.nodeValue)){errorElem.show();}else{errorElem.hide();}});e.target.reset();},onFailure:function(){console.log('Could not add code');}});if(codeElem){codeElem.focus();codeElem.select();}})
elem.assignmentCompleted=true;}});$$('.deleteCode').each(function(elem){if(!elem.assignmentCompleted){elem.observe('click',function(e){new Ajax.Request('php/codes.php',{asynchronous:true,method:'get',parameters:{'__requestBy':'js','action':'deleteCode','code':elem.readAttribute('codeNumber'),'targetBasket':elem.readAttribute('targetBasket'),'randomize':Math.random()},onSuccess:function(transport){Basket.updateCodeContainer();},onFailure:function(){console.log('Could not delete code');}});});elem.assignmentCompleted=true;}});}
Basket.updateContainer=function(){var availableContainers=$$('.basketContainer');availableContainers.each(function(elem){var targetBasket=elem.getAttribute('targetBasket')?elem.getAttribute('targetBasket'):'defaultBasket';var allowEdit=elem.getAttribute('allowEdit');new Ajax.Updater(elem,'php/bouwstenen/basket_listner.php',{asynchronous:true,method:'get',parameters:{'return':'basket','targetBasket':targetBasket,'allowEdit':allowEdit,'randomize':Math.random(),'__requestBy':'js'},onComplete:function(transport){Basket.assignActions();Basket.processTotals(targetBasket);}});});}
Basket.updateCodeContainer=function(){var availableContainers=$$('.codeContainer');availableContainers.each(function(elem){var targetBasket=elem.readAttribute('targetBasket')?elem.readAttribute('targetBasket'):'defaultBasket';var allowEdit=elem.readAttribute('allowEdit');new Ajax.Updater(elem,'php/codes.php',{asynchronous:true,method:'get',parameters:{'return':'codeList','targetBasket':targetBasket,'randomize':Math.random(),'allowEdit':allowEdit,'__requestBy':'js'},onComplete:function(transport){Basket.assignActions();Basket.processTotals(targetBasket);}});});}
Basket.updateBasketProceedButtons=function(totalsResponseObject){var basketpriceAccepted=totalsResponseObject.basketPriceAccepted=='TRUE'?true:false;var merchantSelected=totalsResponseObject.merchantSelected=='TRUE'?true:false;var merchantRequired=totalsResponseObject.merchantRequired=='TRUE'?true:false;var merchantOrderDatesLeft=totalsResponseObject.merchantOrderDatesLeft=='TRUE'?true:false;$$('.JS_basketproceed').each(function(elem){if(elem.hasClassName('JS_proceedpayment')){if(basketpriceAccepted&&(merchantSelected||(!merchantRequired))&&(merchantOrderDatesLeft||(!merchantRequired))){elem.show();}
else{elem.hide();};}
if(elem.hasClassName('JS_proceedmerchantselection')){if((basketpriceAccepted)&&(!merchantSelected)&&(merchantRequired)){elem.show();}
else{elem.hide();};}
if(elem.hasClassName('JS_proceedmarchantselection_noDates')){if((basketpriceAccepted)&&(merchantSelected)&&(!merchantOrderDatesLeft)&&(merchantRequired)){elem.show();}
else{elem.hide();};}
if(elem.hasClassName('JS_proceeddenied')){if(!basketpriceAccepted){elem.show();}
else{elem.hide();};}});}
document.observe('dom:loaded',function(eventObject){$$('form.basket_probeCode').each(function(elem){if(!elem.assignmentCompleted){elem.observe('submit',function(e){window.event?event.returnValue=false:e.preventDefault();var elementsInForm=elem.getElementsByTagName('input');var query=new Hash();for(var iElem=0;iElem<elementsInForm.length;iElem++){if(elementsInForm[iElem].getAttribute('name')){query.set(elementsInForm[iElem].getAttribute('name'),elementsInForm[iElem].value);}}
query.set('randomize',Math.random());query.set('__requestBy','js');$$('form.basket_probeCode .returnResult').each(function(subElem){new Ajax.Updater(subElem,'php/codes.php',{asynchronous:true,method:'get',parameters:query,onComplete:function(transport){elem.reset();},onFailure:function(){console.log('Could not probe code');}});});return false;});elem.assignmentCompleted=true;}});});document.observe('dom:loaded',Basket.initialize);var Sorting={initialize:function(eventObject){$$('.JS_sorting select').invoke('observe','change',Sorting.events.changePulldown);},events:{submitForm:function(eventObject){eventObject.stop();var elem=eventObject.findElement('select');var form=elem.up('form');var wantedAction=elem.value;form.setAttribute('action',wantedAction);form.submit();},changePulldown:function(eventObject){var pulldown=eventObject.findElement('select');if(pulldown.up('form')){Sorting.events.submitForm(eventObject);}
else{document.location.href=pulldown.value;}}}}
document.observe('dom:loaded',Sorting.initialize);var AutoJump={initiate:function(){$$('select.JS_autoJump').invoke('observe','change',AutoJump._events.changedSelect);},_events:{changedSelect:function(eventObject){document.location.href=this.getValue();}}};document.observe('dom:loaded',AutoJump.initiate);var validator=Class.create({_pathUpToErrorElem:'div, tr, table',_errorClass:'JS_checkInput',_errorClassForm:'JS_formValidatedFalse',_validationTypes:{},_validationFields:{},_observers:[],_formName:'',__form:'',__formElements:[],consoleMessages:{info:{matchFailed:'veld kwam niet door de validatie',preventedSubmit:'voorkomen dat er wordt verzonden',attachedObserver:'extra observer toegevoegd'},warning:{illegalValidationMethod:'Kon het veld niet valideren door een onbekende validatiemethode',invalidPattern:'Opgegeven patroon was geen geldige reguliere expressie',unknownCallback:'Callback faalde om technische redenen we laten het formulier submitten als er verder geen problemen zijn'},error:{noFormName:'Validatie aangeroepen zonder formuliernaam, we stoppen validatie',formNotFound:'Het formulier kon niet worden gevonden, we stoppen validatie'}},initialize:function(formName){this._formName=formName;if(!this._formName){console.error(this.consoleMessages.error.noFormName);return false;};this.__attachElements();},__attachElements:function(){this.__form=$(this._formName);if(!this.__form){console.error(this.consoleMessages.error.formNotFound,this._formName);return;}
this.__formElements=this.__form.select('input','textarea','select','button');this.__formElements.each(this.__attachPossibleObservers,this);this.__form.select('input[type=submit]','input[type=button]','submit','button','input[type=image]').invoke('observe','click',this.__attemptSubmit.bind(this));this.__formElements.invoke('fire','validation:initialized');},__attachPossibleObservers:function(formElem){var elemName=formElem.readAttribute('name');if(elemName){this._observers.each(function(observer){if(observer.field==elemName){var callback=eval(observer.callback);if(!callback){console.warn(this.consoleMessages.warning.unknownCallback);}
else{formElem.observe(observer.event,bekendVan);formElem.observe('validation:initialized',bekendVan);}}});}},__attemptSubmit:function(eventObject){var preventSubmit=false;var formElements=this.__formElements;var combinedElements={};formElements.each(function(formElem){var originalName=formElem.readAttribute('name');if(originalName){var name=originalName.replace(/\[[Y|m|d|H|i]{0,1}\]/g,'');if(combinedElements[name]){if(Object.isArray(combinedElements[name])){combinedElements[name].push(formElem);}else{combinedElements[name]=[combinedElements[name],formElem];}}else{combinedElements[name]=formElem;}}});$H(combinedElements).each(function(elem){var name=elem.key;var formElem=elem.value;if(this._validationFields.get(name)){if(Object.isArray(formElem)){var fieldValue=formElem.invoke('getValue').compact().join(',');}else{var fieldValue=formElem.getValue();}
if(this._validationTypes[this._validationFields.get(name)]){var matchAgainst=this._validationTypes[this._validationFields.get(name)];}
else{console.warn(this.consoleMessages.warning.illegalValidationMethod,': '+name);return;}
var queryElem=Object.isArray(formElem)?formElem[0]:formElem;switch(matchAgainst.type){case'match':var pattern=eval(matchAgainst.pattern);if(!pattern){console.warn(this.consoleMessages.warning.invalidPattern,matchAgainst.pattern);return;}
fieldValue+='';if(fieldValue.match(pattern)){queryElem.up(this._pathUpToErrorElem).removeClassName(this._errorClass);}
else{console.info(this.consoleMessages.info.matchFailed,fieldValue,formElem,matchAgainst);queryElem.up(this._pathUpToErrorElem).addClassName(this._errorClass);preventSubmit=true;}
break;case'matchAndEqual':var pattern=eval(matchAgainst.pattern);if(!pattern){console.warn(this.consoleMessages.warning.invalidPattern,matchAgainst.pattern);return;}
if(fieldValue&&fieldValue.match(pattern)){combinedElements[name].up(this._pathUpToErrorElem).removeClassName(this._errorClass);}
else{console.info(this.consoleMessages.info.matchFailed,fieldValue,formElem,matchAgainst);queryElem.up(this._pathUpToErrorElem).addClassName(this._errorClass);preventSubmit=true;}
if(combinedElements[name].getValue()==combinedElements[name+matchAgainst.suffix].getValue()){combinedElements[name+matchAgainst.suffix].up(this._pathUpToErrorElem).removeClassName(this._errorClass);}
else{console.info(this.consoleMessages.info.matchFailed,fieldValue,formElem,matchAgainst);combinedElements[name+matchAgainst.suffix].up(this._pathUpToErrorElem).addClassName(this._errorClass);preventSubmit=true;}
break;case'date':var currentlySelected={year:formElem.find(function(elem){return elem.readAttribute('name').match(/\[Y\]/);}).getValue(),month:formElem.find(function(elem){return elem.readAttribute('name').match(/\[m\]/);}).getValue(),day:formElem.find(function(elem){return elem.readAttribute('name').match(/\[d\]/);}).getValue()};var dd=new Date(currentlySelected.year,currentlySelected.month,0);var lastDayOfMonth=dd.getDate();if(currentlySelected.day>lastDayOfMonth){console.info(this.consoleMessages.info.matchFailed,fieldValue,formElem,currentlySelected);formElem[0].up(this._pathUpToErrorElem).addClassName(this._errorClass);preventSubmit=true;break;}
else{formElem[0].up(this._pathUpToErrorElem).removeClassName(this._errorClass);}
if(matchAgainst.required){if(!currentlySelected.year||!currentlySelected.month||!currentlySelected.day){console.info(this.consoleMessages.info.matchFailed,fieldValue,formElem,currentlySelected);formElem[0].up(this._pathUpToErrorElem).addClassName(this._errorClass);preventSubmit=true;break;}
else{formElem[0].up(this._pathUpToErrorElem).removeClassName(this._errorClass);}}
break;case'callback':try{var callbackFunction=eval(matchAgainst.callback);if(callbackFunction){callbackFunction=callbackFunction.bind(this);var callbackResult=callbackFunction(name,formElem);if(!callbackResult){console.info(this.consoleMessages.info.matchFailed,formElem,matchAgainst,callbackFunction,callbackResult);preventSubmit=true;}}}
catch(callbackError){console.error(callbackError);console.warn(this.consoleMessages.warning.unknownCallback);}
break;}}},this);if(preventSubmit){this.__form.addClassName(this._errorClassForm);console.info(this.consoleMessages.info.preventedSubmit);eventObject.stop();return false;}else{this.__form.removeClassName(this._errorClassForm);}
return true;},loadValidationTypes:function(validationTypes){this._validationTypes=validationTypes;},loadValidationFields:function(validationFields){console.log('attaching observers',validationFields);this._validationFields=$H(validationFields);},attachObservers:function(observers){this._observers=observers;}});document.observe('dom:loaded',function(eventObject){console.log('processing settings for validator',JSConfig);if(JSConfig.validator){JSConfig.validator.each(function(settingHash){console.log(settingHash);var formValidation=new validator(settingHash['formName']);formValidation.loadValidationTypes(settingHash['validationTypes']);formValidation.loadValidationFields(settingHash['validationFields']);if(settingHash['observers']){formValidation.attachObservers(settingHash['observers']);}});}});document.observe('dom:loaded',function(eventObject){if(JSConfig.fieldDisabler){JSConfig.fieldDisabler.each(function(settingHash){$(settingHash.elem).observe('click',function(eventObject){if(eventObject.element().disabled){return false;}
settingHash.enable.each(function(elem){$(elem).disabled=false;});settingHash.disable.each(function(elem){elem=$(elem);if(!elem){return false;}
elem.disabled=true;if((elem.tagName=='INPUT')&&elem.readAttribute('type')=='radio'){elem.checked=false;}
if((elem.tagName=='INPUT')&&elem.readAttribute('type')=='text'){elem.value='';}
if(elem.tagName=='SELECT'){elem.selectedIndex=0;}});});});}});var Paginator={initialize:function(eventObject){$$('.JS_paginator form a').invoke('observe','click',Paginator.events.submitForm);$$('.JS_paginator select').invoke('observe','change',Paginator.events.changePulldown);},events:{submitForm:function(eventObject){eventObject.stop();var elem=eventObject.element();var form=elem.up('form');var wantedAction=elem.tagName=='A'?elem.readAttribute('href'):elem.value;form.setAttribute('action',wantedAction);form.submit();},changePulldown:function(eventObject){var pulldown=eventObject.element();if(pulldown.up('form')){Paginator.events.submitForm(eventObject);}
else{document.location.href=pulldown.value;}}}}
document.observe('dom:loaded',Paginator.initialize);var SlideShow=Class.create({slideshow:null,slides:[],current:0,initialize:function(slideshow){this.slideshow=$(slideshow);if(!this.slideshow){console.log('constructor aangeroepen van slideshow zonder element',slideshow);return false;}
this.slides=this.slideshow.childElements();this.current=0;this.timeout=parseFloat(this.slideshow.readAttribute('slideshow_timeout'));this.transitionTime=parseFloat(this.slideshow.readAttribute('slideshow_transitionTime'));this.transitionType=this.slideshow.readAttribute('slideshow_transitionType');if(!this.timeout){this.timeout=3;}
if(!this.transitionTime){this.transitionTime=1;}
if(this.slides.length==1){console.log('slideshow aangeroepen met maar 1 slide',slideshow);return false;}
if(!this.timeout){console.log('slideshow aangeroepen zonder een transitietijd',slideshow);return false;}
this.timeout=this.timeout*1000;this.correctZIndices();this.slides.invoke('show');setTimeout((function(){this.next();}).bind(this),this.timeout);},correctZIndices:function(){for(var i=0;i<this.slides.length;i++){var slide=this.slides[(this.current+i)%this.slides.length];slide.style.zIndex=this.slides.length-i;}},next:function(){this.correctZIndices();if(this.transitionType=='blindUp'){Effect.BlindUp(this.slides[this.current],{duration:this.transitionTime,afterFinish:function(effect){effect.element.style.zIndex=0;Element.show(effect.element);Element.setOpacity(effect.element,1);}});}
else{Effect.Fade(this.slides[this.current],{duration:this.transitionTime,afterFinish:function(effect){effect.element.style.zIndex=0;Element.show(effect.element);Element.setOpacity(effect.element,1);}});}
this.current=(this.current+1)%this.slides.length;setTimeout((function(){this.next();}).bind(this),this.timeout);}});Event.observe(window,"load",function(eventObject){$$('.JS_slideshow').each(function(elem){new SlideShow(elem);});});var eventtracking={initialize:function(eventObject){$$('.JS_trackClick').invoke('observe','click',eventtracking.events.track);},events:{track:function(eventObject){var eventElem=eventObject.findElement('.JS_trackClick');eventtracking.track(eventElem.readAttribute('JS_eventName'),eventElem.readAttribute('JS_eventValue'));}},track:function(eventName,eventValue){new Ajax.Request(window.location.href,{method:'post',parameters:{__requestBy:'js',trackEvent:'true',itemId:ITEM_ID,pageId:PAGE_ID,eventName:eventName,eventValue:eventValue}});}}
document.observe('dom:loaded',eventtracking.initialize);var GoogleMaps=Class.create({settingHash:{},mapOptions:{},map:null,initialize:function(settingHash){this.settingHash=settingHash;settingHash.positions.each(function(position){position['latLng']=new google.maps.LatLng(position.lat,position.lon)});this.mapOptions={mapTypeId:google.maps.MapTypeId.ROADMAP}
this.generateMap();},generateMap:function(){this.map=new google.maps.Map(document.getElementById(this.settingHash.mapId),this.mapOptions);this.settingHash.positions.each(function(position){console.log(position);position.marker=new google.maps.Marker({position:position.latLng,map:this.map,icon:position.icon});if(position.message){position.infowindow=new google.maps.InfoWindow({content:position.message});google.maps.event.addListener(position.marker,'click',function(){position.infowindow.open(this.map,position.marker);});}},this);if((this.settingHash.positions.length==1)||(this.settingHash.overruleLatitude&&this.settingHash.overruleLongitude)){if(this.settingHash.overruleLatitude&&this.settingHash.overruleLongitude){this.map.setCenter(new google.maps.LatLng(this.settingHash.overruleLatitude,this.settingHash.overruleLongitude));}
else{this.map.setCenter(this.settingHash.positions[0].latLng);}
if(this.settingHash.defaultZoom){this.map.setZoom(this.settingHash.defaultZoom);}}
else{var bounds=new google.maps.LatLngBounds();this.settingHash.positions.each(function(position){bounds.extend(position.latLng);});this.map.fitBounds(bounds);}}});Event.observe(window,'load',function(eventObject){if(JSConfig.GoogleMaps){JSConfig.GoogleMaps.each(function(settingHash){new GoogleMaps(settingHash);});}});var gMapsObject={data:{startPos:null,startZoom:null,map:null,geocoder:null,userPoint:null,bezoekerIcon:null,startingPosition:null,mapId:'googleMaps',points:[],latlngs:[],bounds:null},loadGoogleMaps:function(){if(GBrowserIsCompatible()){if(gMapsObject.data['startingPosition'].latlng){gMapsObject.data['startPos']=gMapsObject.data['startingPosition'].latlng;}
else{gMapsObject.data['startPos']=gMapsObject.data['startingPosition']?new GLatLng(gMapsObject.data['startingPosition'].latitude,gMapsObject.data['startingPosition'].longitude):new GLatLng(52.167194,5.232041);}
gMapsObject.data['map']=new GMap2($(gMapsObject.data['mapId']));gMapsObject.data['startZoom']=gMapsObject.data['startingPosition']?gMapsObject.data['startingPosition'].zoomlevel?gMapsObject.data['startingPosition'].zoomlevel:gMapsObject.data.map.getBoundsZoomLevel(gMapsObject.data.bounds)-1:8;gMapsObject.data['geocoder']=new GClientGeocoder();gMapsObject.data['bezoekerIcon']=new GIcon(G_DEFAULT_ICON);gMapsObject.data['bezoekerIcon'].image="http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png";gMapsObject.data['map'].setCenter(gMapsObject.data['startPos'],gMapsObject.data['startZoom']);gMapsObject.data['map'].addControl(new GLargeMapControl());var mapControl=new GMapTypeControl();gMapsObject.data['map'].addControl(mapControl);gMapsObject.data['points'].each(gMapsObject.processMarker);}},setStartPos:function(latitude,longitude,zoomlevel){gMapsObject.data['startingPosition']={latitude:latitude,longitude:longitude,zoomlevel:zoomlevel};},addMarker:function(icon){if(!gMapsObject.data.bounds){gMapsObject.data.bounds=new GLatLngBounds();}
gMapsObject.data['points'].push(icon);var latlng=new GLatLng(icon.latitude,icon.longitude);gMapsObject.data.latlngs.push(latlng);},setMapToCenter:function(zoomLevel){for(var iLatlng=0;iLatlng<gMapsObject.data.latlngs.length;iLatlng++){console.log(gMapsObject.data.latlngs[iLatlng]);gMapsObject.data.bounds.extend(gMapsObject.data.latlngs[iLatlng]);}
var center=gMapsObject.data.bounds.getCenter();console.log(center);gMapsObject.data['startingPosition']={latlng:center,zoomlevel:zoomLevel};},processMarker:function(newMarker){var latlng=new GLatLng(newMarker.latitude,newMarker.longitude);var markerOptions={icon:(newMarker.icon?new GIcon(G_DEFAULT_ICON,newMarker.icon):new GIcon(G_DEFAULT_ICON))};markerOptions.icon.shadow='';var marker=new GMarker(latlng,markerOptions);gMapsObject.data['map'].addOverlay(marker);GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(newMarker.message);});},calcProximityToPostcode:function(postcode,zoomlevel,callbackFunction){if(gMapsObject.data['geocoder']){gMapsObject.data['geocoder'].getLatLng(postcode+', netherlands',function(point){if(!point){if($('geocoderRespondedFalse')){$('geocoderRespondedFalse').show();}
gMapsObject.data['map'].setCenter(new GLatLng(52.167194,5.232041),6);}else{if($('geocoderRespondedFalse')){$('geocoderRespondedFalse').hide();}
gMapsObject.data['map'].setCenter(point,zoomlevel);markerOptions={icon:gMapsObject.data['bezoekerIcon']};var marker=new GMarker(point,markerOptions);gMapsObject.data['map'].addOverlay(marker);GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml('Door u ingevoerde postcode: '+postcode);});callbackFunction(point.lat(),point.lng());}});}}};document.observe('dom:loaded',function(eventObject){if($('googleMaps')){gMapsObject.loadGoogleMaps();}});var Popup={background:null,container:null,isOpened:false,contentOldParent:null,contentExtraClasses:[],initialize:function(eventObject){Popup.attachObservers();},attachObservers:function(elem){var observees=null;if(elem){observees=elem.select('.JS_popupOpen, .JS_popupClose');}
else{observees=$$('.JS_popupOpen, .JS_popupClose');}
observees.each(function(elem){if(elem.readAttribute('JS_popup_observed')=='true'){return;}
if(elem.hasClassName('JS_popupOpen')){elem.observe('click',Popup.events.open);}
if(elem.hasClassName('JS_popupClose')){elem.observe('click',Popup.events.close);}
elem.writeAttribute('JS_popup_observed','true');});},prepareElements:function(){if(Popup.background){return false;}
Popup.background=new Element('div',{'id':'popupBackground'}).hide();Popup.container=new Element('div',{'id':'popupContainer'});$(document.body).insert({'top':Popup.background}).insert({'top':Popup.container});Popup.background.observe('click',Popup.events.clickOut);return true;},events:{open:function(eventObject){var elem=eventObject.findElement('.JS_popupOpen');var targElem=$(elem.readAttribute('JS_popup_targetElem'));if(targElem){Popup.openWithContent(targElem,elem.readAttribute('JS_popup_extraClasses'));}},close:function(eventObject){eventObject.stop();Popup.close();},clickOut:function(eventObject){if(eventObject.findElement('#popupContainer')){return true;}
Popup.events.close(eventObject);return false;}},openWithContent:function(elem,extraClasses){if(!elem){return false;}
Popup.prepareElements();if(Popup.isOpened){Popup.close();}
if(extraClasses){Popup.contentExtraClasses=extraClasses.isArray?extraClasses:extraClasses.split(/\s/g);Popup.contentExtraClasses.each(function(extraClass){Popup.container.addClassName(extraClass);});}
Popup.contentOldParent=elem.up();Popup.container.appendChild(elem);elem.show();Popup.background.show();Popup.container.show();Popup.isOpened=true;document.fire('Popup:open');return true;},close:function(){Popup.isOpened=false;Popup.background.hide();Popup.container.hide();Popup.contentExtraClasses.each(function(extraClass){Popup.container.removeClassName(extraClass);});Popup.contentExtraClasses=[];var elem=Popup.container.down();elem.hide();Popup.contentOldParent.appendChild(elem);document.fire('Popup:close');return true;}};document.observe('dom:loaded',Popup.initialize);var TouchDetect={detected:false,initialize:function(eventObject){if(window.Touch){TouchDetect.detected=true;}
else{document.observe('touchstart',TouchDetect.events.touchStart);}},events:{touchStart:function(eventObject){TouchDetect.detected=true;document.stopObserving('touchstart',TouchDetect.events.touchStart);}},isDetected:function(){return TouchDetect.detected;}}
document.observe('dom:loaded',TouchDetect.initialize);var BaseUrlFix={initialize:function(eventObject){var baseTag=$$('base')[0];if(baseTag){if(baseTag.readAttribute('href')){BaseUrlFix.fixHashLocations();}}},fixHashLocations:function(parentElement){elementsToScan=parentElement?parentElement.select('a'):$$('a');elementsToScan.each(function(anchor){var anchorLocation=anchor.readAttribute('href');if(anchorLocation&&anchorLocation.charAt(0)=='#'){if(!anchor.retrieve('hashLocationFixApplied')){console.log('attaching eventhandlers for',anchor);anchor.observe('click',BaseUrlFix._events.clickHashTag);anchor.store('hashLocationFixApplied',true);}}});},_events:{clickHashTag:function(eventObject){eventObject.stop();var anchor=eventObject.element();document.location.hash=anchor.readAttribute('href').substr(1);}}};document.observe('dom:loaded',BaseUrlFix.initialize);var Zoom=Class.create({settingHash:{},elements:{},zooming:false,mousePos:{},dims:{},initialize:function(settingHash){if(Prototype.Browser.IE&&parseFloat(navigator.appVersion.split('MSIE')[1])<7){return false;}
this.settingHash=settingHash;if(!$(settingHash.zoomContainer)){return false;}
this.elements={smallImageContainer:$(settingHash.smallImageContainer),zoomContainer:$(settingHash.zoomContainer),zoomArea:$(settingHash.zoomArea),bigImage:$(settingHash.zoomContainer).down('img')};if(!this.elements.zoomContainer||!this.elements.smallImageContainer||!this.elements.bigImage){return false;}
this.boundEvents={};$H(this.events).each(function(pair){this.boundEvents[pair.key]=this.events[pair.key].bind(this);},this);this.attachEvents();},boundEvents:null,attachEvents:function(){this.elements.smallImageContainer.observe('mouseover',this.boundEvents.mouseOver).observe('touchstart',this.boundEvents.mouseOver).observe('mouseout',this.boundEvents.mouseOut).observe('touchend',this.boundEvents.mouseOut);$$('.JS_ZoomStop').invoke('observe','click',this.boundEvents.mouseOut);},events:{mouseOver:function(eventObject){this.elements.zoomContainer.show();this.zooming=true;this.elements.zoomArea.show();this.dims={};$H(this.elements).each(function(pair){this.dims[pair.key]=this.elements[pair.key].getDimensions();},this);document.observe('mousemove',this.boundEvents.mouseMove);document.observe('touchmove',this.boundEvents.mouseMove);this.updateMousePosition(eventObject);this.updateElements();eventObject.stop();},mouseOut:function(eventObject){this.elements.zoomContainer.hide();this.zooming=false;this.elements.zoomArea.hide();document.stopObserving('mousemove',this.boundEvents.mouseMove);document.stopObserving('touchmove',this.boundEvents.mouseMove);},mouseMove:function(eventObject){this.updateMousePosition();if(this.zooming){this.updateElements();}}},updateMousePosition:function(eventObject){if(eventObject.type.match(/touch/)){this.mousePos={mouseX:eventObject.touches[0].pageX,mouseY:eventObject.touches[0].pageY};}
else{this.mousePos={mouseX:eventObject.pointerX(),mouseY:eventObject.pointerY()};}},updateElements:function(){var imageOffset=this.elements.smallImageContainer.cumulativeOffset();var imgMouseX=this.mousePos.mouseX-imageOffset[0];var imgMouseY=this.mousePos.mouseY-imageOffset[1];var calculatedX=imgMouseX-(this.dims.zoomArea.width/2);if(calculatedX<0){calculatedX=0;}
if(calculatedX>this.dims.smallImageContainer.width-this.dims.zoomArea.width){calculatedX=this.dims.smallImageContainer.width-this.dims.zoomArea.width;}
var calculatedY=imgMouseY-(this.dims.zoomArea.height/2);if(calculatedY<0){calculatedY=0;}
if(calculatedY>this.dims.smallImageContainer.height-this.dims.zoomArea.height){calculatedY=this.dims.smallImageContainer.height-this.dims.zoomArea.height;}
this.elements.zoomArea.setStyle({left:calculatedX+'px',top:calculatedY+'px'});var correctedMousePositionX=(imgMouseX-(this.dims.zoomArea.width/2));var correctedCalculatedX;if(correctedMousePositionX>0){if(imgMouseX>(this.dims.smallImageContainer.width-(this.dims.zoomArea.width/2))){correctedCalculatedX=this.dims.smallImageContainer.width-this.dims.zoomArea.width;}
else{correctedCalculatedX=imgMouseX-(this.dims.zoomArea.width/2)}}
else{correctedCalculatedX=0;}
var calculatedPercentageX=(correctedCalculatedX/(this.dims.smallImageContainer.width-this.dims.zoomArea.width))*100;var calculatedBigX=(((this.dims.bigImage.width-this.dims.zoomContainer.width)/100)*calculatedPercentageX*-1);var correctedMousePositionY=(imgMouseY-(this.dims.zoomArea.height/2));var correctedCalculatedY;if(correctedMousePositionY>0){if(imgMouseY>(this.dims.smallImageContainer.height-(this.dims.zoomArea.height/2))){correctedCalculatedY=this.dims.smallImageContainer.height-this.dims.zoomArea.height;}
else{correctedCalculatedY=imgMouseY-(this.dims.zoomArea.height/2)}}
else{correctedCalculatedY=0;}
var calculatedPercentageY=(correctedCalculatedY/(this.dims.smallImageContainer.height-this.dims.zoomArea.height))*100;var calculatedBigY=(((this.dims.bigImage.height-this.dims.zoomContainer.height)/100)*calculatedPercentageY*-1);this.elements.bigImage.setStyle({left:calculatedBigX+'px',top:calculatedBigY+'px'});}});Event.observe(window,'load',function(eventObject){if(JSConfig.Zoom){JSConfig.Zoom.each(function(settingHash){new Zoom(settingHash);});}});
