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 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 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 photoalbum={settings:{extraWidth:10},initialize:function(){photoalbum.elements={navigation:$$('.JS_photoalbum_navigation a'),albums:$$('.JS_photoalbum'),thumbnailContainers:$$('.JS_photoalbum_thumbnails'),thumbnails:$$('.JS_photoalbum_thumbnails a')};photoalbum.elements.navigation.invoke('observe','click',photoalbum.click_controller);photoalbum.elements.thumbnails.invoke('observe','click',photoalbum.click_image);photoalbum.elements.thumbnailContainers.each(function(thumbnailContainer){var thumbnailContainerWidth=(thumbnailContainer.select('a').length*(parseInt(thumbnailContainer.select('a')[0].getDimensions().width)+photoalbum.settings.extraWidth));thumbnailContainer.down('div').setStyle({width:thumbnailContainerWidth+'px',position:'absolute'});});photoalbum.elements.albums.each(photoalbum.determineNavigationVisibility);},click_controller:function(eventObject){var thisNavigation=eventObject.findElement('.JS_photoalbum_navigation a');var thisAlbum=thisNavigation.up('.JS_photoalbum');if(!thisAlbum){return false;};var action=thisNavigation.readAttribute('JS_photoalbum_action');console.log('Photoalbum action',action,thisAlbum);photoalbum.move(action,thisAlbum);eventObject.stop();return false;},move:function(action,thisAlbum){var imageContainerSlider=thisAlbum.select('.JS_photoalbum_thumbnails div')[0];var imageDimension,moveByChanging,sliderDimension,containerDimension;imageDimension=parseInt(imageContainerSlider.select('a')[0].getDimensions().width);sliderDimension=imageContainerSlider.getDimensions().width;containerDimension=imageContainerSlider.up().getDimensions().width;if(!imageDimension){return false;}
if(action=='first'){new Effect.Morph(imageContainerSlider,{style:'left:0px;',duration:0.5,afterFinish:function(eventObject){photoalbum.determineNavigationVisibility(thisAlbum);}});};if(action=='previous'){var currentPosition=parseInt(imageContainerSlider.getStyle('left').replace(/[^\d\-]/g,''));var targetPosition=((currentPosition+imageDimension+photoalbum.settings.extraWidth)<=0)?(currentPosition+imageDimension+photoalbum.settings.extraWidth):0;new Effect.Morph(imageContainerSlider,{style:'left:'+targetPosition+'px;',duration:0.5,afterFinish:function(eventObject){photoalbum.determineNavigationVisibility(thisAlbum);}});};if(action=='next'){var currentPosition=parseInt(imageContainerSlider.getStyle('left').replace(/[^\d\-]/g,''));var minDimension=(-sliderDimension+containerDimension);var targetPosition=((currentPosition-imageDimension)>=minDimension)?(currentPosition-imageDimension-photoalbum.settings.extraWidth):minDimension+photoalbum.settings.extraWidth;new Effect.Morph(imageContainerSlider,{style:'left:'+targetPosition+'px;',duration:0.5,afterFinish:function(eventObject){photoalbum.determineNavigationVisibility(thisAlbum);}});};if(action=='last'){new Effect.Morph(imageContainerSlider,{style:'left:'+(-sliderDimension+containerDimension)+'px;',duration:0.5,afterFinish:function(eventObject){photoalbum.determineNavigationVisibility(thisAlbum);}});};},determineNavigationVisibility:function(thisAlbum){var imageContainerSlider=thisAlbum.down('.JS_photoalbum_thumbnails div');if(!imageContainerSlider){return false;}
var sliderDimension=imageContainerSlider.getDimensions().width;var containerDimension=imageContainerSlider.up().getDimensions().width;var currentPosition=parseInt(imageContainerSlider.getStyle('left').replace(/[^\d\-]/g,''));var thumbnailContainerWidth=(thisAlbum.select('.JS_photoalbum_thumbnails a').length*(parseInt(thisAlbum.select('.JS_photoalbum_thumbnails a')[0].getDimensions().width)+photoalbum.settings.extraWidth));if(thisAlbum.down('.JS_photoalbum_thumbnails').getDimensions().width<(thumbnailContainerWidth-photoalbum.settings.extraWidth)){thisAlbum.select('.JS_photoalbum_navigation a.previous').invoke(((currentPosition==0)?'hide':'show'));console.log(currentPosition,-sliderDimension+containerDimension);thisAlbum.select('.JS_photoalbum_navigation a.next').invoke(currentPosition==(-sliderDimension+containerDimension+photoalbum.settings.extraWidth)?'hide':'show');}
else{thisAlbum.select('.JS_photoalbum_navigation a').invoke('hide');}},click_image:function(eventObject){eventObject.stop();var imageElement=eventObject.findElement('img');if(!imageElement){return false;}
var thisAlbum=imageElement.up('.JS_photoalbum');var targetImg=thisAlbum.down('.JS_photoalbum_image img');if(targetImg){targetImg.setAttribute('src',imageElement.readAttribute('js_photoalbum_bigimg'));targetImg.setAttribute('title',imageElement.readAttribute('title'));targetImg.setAttribute('alt',imageElement.readAttribute('alt'));}
var imageContainerSlider=thisAlbum.down('.JS_photoalbum_thumbnails div');var slideWidth=parseInt(imageContainerSlider.select('a')[0].getDimensions().width);var containerDimension=imageContainerSlider.up().getDimensions().width;var currentPosition=parseInt(imageContainerSlider.getStyle('left').replace(/[^\d\-]/g,''));var offsetPosition=eventObject.element().positionedOffset()[0];if((-currentPosition+containerDimension-slideWidth)<=offsetPosition){photoalbum.move('next',thisAlbum);}
else if((-currentPosition+slideWidth)>offsetPosition){console.log(currentPosition,slideWidth,offsetPosition);photoalbum.move('previous',thisAlbum);}}}
Event.observe(window,'load',photoalbum.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 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);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 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']);}});}});var Tabs={initialize:function(eventObject){$$('.JS_tabs .JS_option').invoke('observe','click',Tabs._events.clickTab);},_events:{clickTab:function(eventObject){eventObject.stop();var elem=eventObject.element();var alineaNo=elem.readAttribute('alineaNo');var parentTabContainer=elem.up('.JS_tabs');parentTabContainer.select('.JS_option','.JS_tab').invoke('removeClassName','JS_active');elem.addClassName('JS_active');parentTabContainer.down('.JS_tab[alineaNo='+alineaNo+']').addClassName('JS_active');}}};document.observe('dom:loaded',Tabs.initialize);
