var photoalbum={settings:{extraWidth:18},initialize:function(){photoalbum.elements={navigation:$$('.JS_photoalbum .JS_navigation a'),albums:$$('.JS_photoalbum'),thumbnailContainers:$$('.JS_photoalbum .JS_thumbnails'),thumbnails:$$('.JS_photoalbum .JS_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 thisAlbum=this.up('.JS_photoalbum');if(!thisAlbum){return false;};var action=this.readAttribute('JS_action');photoalbum.move(action,thisAlbum);eventObject.stop();return false;},move:function(action,thisAlbum){var imageContainerSlider=thisAlbum.select('.JS_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_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_thumbnails a').length*(parseInt(thisAlbum.select('.JS_thumbnails a')[0].getDimensions().width)+photoalbum.settings.extraWidth));if(thisAlbum.down('.JS_thumbnails').getDimensions().width<(thumbnailContainerWidth-photoalbum.settings.extraWidth)){thisAlbum.select('.JS_navigation a.previous').invoke(((currentPosition==0)?'hide':'show'));console.log(currentPosition,-sliderDimension+containerDimension);thisAlbum.select('.JS_navigation a.next').invoke(currentPosition==(-sliderDimension+containerDimension+photoalbum.settings.extraWidth)?'hide':'show');}
else{thisAlbum.select('.JS_navigation a').invoke('hide');}},click_image:function(eventObject){var thisAlbum=this.up('.JS_photoalbum');var targetImg=thisAlbum.down('.JS_image img');if(targetImg){targetImg.setAttribute('src',this.readAttribute('JS_image'));targetImg.setAttribute('title',this.down('img').readAttribute('title'));targetImg.setAttribute('alt',this.down('img').readAttribute('alt'));}
var imageContainerSlider=thisAlbum.down('.JS_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 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 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();}});document.observe('dom:loaded',function(eventObject){var queryString=document.location.search.toQueryParams();if(queryString.autoPrint=='true'){window.print();}});document.observe('dom:loaded',function(){$$('.icon.print').invoke('observe','click',function(eventObject){window.print();});});console.log(window.location);console.log(document.location);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 carrousel={defaultTransition:'slide',initialize:function(){$$('.JS_carrousel .JS_carrouselHeader a.JS_moveCarrousel').invoke('observe','click',carrousel.click_controller);$$('.JS_carrousel .JS_carrouselHeader a.JS_moveCarrousel').invoke('observe','carrousel:click',carrousel.click_controller);if($$('.JS_carrousel .JS_carrouselHeader a.JS_moveCarrousel').length){$$('.JS_carrousel .JS_carrouselHeader a.JS_moveCarrousel')[0].addClassName('JS_active');}
var carrousels=$$('.JS_carrousel');carrousels.each(function(carrouselElem){var transition=carrouselElem.readAttribute('carrousel_transitionType')?carrouselElem.readAttribute('carrousel_transitionType'):carrouselElem.defaultTransition;carrouselElem.select('.JS_moveCarrousel').each(carrousel.numberElements);carrouselElem.select('.JS_carrouselItem').each(carrousel.numberElements);carrousel.transitions[transition].onSetup(carrouselElem);carrouselElem.observe('mouseout',carrousel.timer.startTimer).observe('carrousel:startTimer',carrousel.timer.startTimer).observe('mouseover',carrousel.timer.stopTimer).observe('carrousel:stopTimer',carrousel.timer.stopTimer);carrouselElem.fire('carrousel:startTimer');});},numberElements:function(element,index){element.writeAttribute('carrousel_itemNumber',index);},timer:{defaultTimeout:4000,timer:0,nextItem:function(carrouselElem){var ControllerButtons=carrouselElem.select('.JS_carrouselHeader a.JS_moveCarrousel')
var targetSlide=null;for(var pos=0;pos<ControllerButtons.length;pos++){if(ControllerButtons[pos].hasClassName('JS_active')){if(pos==ControllerButtons.length-1){targetSlide=ControllerButtons[0];}
else{targetSlide=ControllerButtons[pos+1];}
break;}};targetSlide.fire('carrousel:click');carrouselElem.fire('carrousel:startTimer');},startTimer:function(eventObject){var carrouselElem=eventObject.findElement('.JS_carrousel');var timeout=carrouselElem.readAttribute('carrousel_itemShowTime')?parseInt(carrouselElem.readAttribute('carrousel_itemShowTime')):carrousel.timer.defaultTimeout;carrouselElem.timer=window.setTimeout(function(){carrousel.timer.nextItem(carrouselElem);},timeout);},stopTimer:function(eventObject){var carrouselElem=eventObject.findElement('.JS_carrousel');window.clearTimeout(carrouselElem.timer);carrouselElem.timer=0;}},click_controller:function(eventObject){var elem=eventObject.findElement('.JS_moveCarrousel');var carrouselElem=elem.up('.JS_carrousel');carrouselElem.select('.JS_carrouselHeader a.JS_moveCarrousel').invoke('removeClassName','JS_active');elem.addClassName('JS_active');if(!carrouselElem){return false;};var transition=carrouselElem.readAttribute('carrousel_transitionType')?carrouselElem.readAttribute('carrousel_transitionType'):carrouselElem.defaultTransition;carrousel.transitions[transition].onChange(carrouselElem);},transitions:{slide:{onSetup:function(carrouselElem){var carrouselAlinea=carrouselElem.down('.JS_carrouselBody');carrouselAlinea.setStyle({width:(carrouselAlinea.select('.JS_carrouselItem').length*parseInt(carrouselAlinea.select('.JS_carrouselItem')[0].getDimensions().width))+'px'});},onChange:function(carrouselElem){var carrouselAlinea=carrouselElem.down('.JS_carrouselBody');var containerWidth=parseInt(carrouselAlinea.down('.JS_carrouselItem').getDimensions().width);var wantedContainer=carrouselElem.down('.JS_active');var targetPosition=parseInt(wantedContainer.readAttribute('carrousel_itemNumber'))*containerWidth;new Effect.Morph(carrouselAlinea,{style:'left: -'+targetPosition+'px;',duration:0.5});}},fade:{onSetup:function(carrouselElem){carrouselElem.prevNo=0;carrousel.transitions.fade._restoreHierarchy(carrouselElem);var carrouselItems=carrouselElem.select('.JS_carrouselItem');carrouselItems.invoke('show');carrouselItems[carrouselItems.length-1].style.zIndex=0;},onChange:function(carrouselElem){var wantedContainer=carrouselElem.down('.JS_active');var activeNo=wantedContainer.readAttribute('carrousel_itemNumber');var containers=carrouselElem.select('.JS_carrouselItem');var prevContainer=carrouselElem.down('.JS_carrouselItem[carrousel_itemNumber='+carrouselElem.prevNo+']');var nextContainer=carrouselElem.down('.JS_carrouselItem[carrousel_itemNumber='+activeNo+']');if(carrouselElem.prevNo==activeNo){return;}
containers.each(function(container){if((container.readAttribute('carrousel_itemNumber')!=activeNo)&&(container.readAttribute('carrousel_itemNumber')!=carrouselElem.prevNo)){container.hide();}
else{container.show();}});if(activeNo>carrouselElem.prevNo){carrousel.transitions.fade._restoreHierarchy(carrouselElem);}
else{nextContainer.style.zIndex=1;}
Effect.Fade(prevContainer,{afterFinish:function(effect){effect.element.style.zIndex=0;Element.show(effect.element);Element.setOpacity(effect.element,1);}});carrouselElem.prevNo=activeNo;},_restoreHierarchy:function(carrouselElem){var activeNo=carrouselElem.down('.JS_active').readAttribute('carrousel_itemNumber');var carrouselItems=carrouselElem.select('.JS_carrouselItem');var prevContainerNo=carrouselElem.prevNo;for(var i=0;i<carrouselItems.length;i++){var slide=carrouselItems[(prevContainerNo+i)%carrouselItems.length];slide.style.zIndex=carrouselItems.length-i;}}}}};document.observe('dom:loaded',carrousel.initialize);var retailerList={settings:{},initialize:function(){$$('.dealer_calcProximityForPostcode').each(function(elem){elem.observe('click',retailerList.calcProximityForPostcode);elem.observe('retailerList:click',retailerList.calcProximityForPostcode)});if($$('.dealer_calcProximityForPostcode').length&&$('googleMaps')){new Ajax.Request('bouwpakket/pagina/speciaal/retailer/bouwsteen_01/markers.php',{method:'get',parameters:{'__requestBy':'js'},onSuccess:function(transport){markerlist=eval(transport.responseText);$(markerlist).each(function(marker){gMapsObject.processMarker(marker);})}});}},calcProximityForPostcode:function(eventObject){retailerList.settings={postcodeElem:$(this.readAttribute("postcodeId")),proximityElem:$(this.readAttribute("proximityId")),targetContainer:$(this.readAttribute("targetContainer")),errorElem:$(this.readAttribute("errorMessage"))}
if((!retailerList.settings.postcodeElem)||(!retailerList.settings.proximityElem)||(!retailerList.settings.targetContainer)){console.log('could not complete request, missing elements');return false;}
eventObject.stop();if(retailerList.settings.postcodeElem.value.match(/^[0-9]{4}\s?[a-z|A-Z]{2}$/)){retailerList.settings.postcodeElem.removeClassName(formValidation.errorClass);if(retailerList.settings.errorElem){retailerList.settings.errorElem.hide();}
var zoomlevel=parseInt($(retailerList.settings.proximityElem.options[retailerList.settings.proximityElem.selectedIndex]).readAttribute('googleZoomLevel'));gMapsObject.calcProximityToPostcode(retailerList.settings.postcodeElem.value,zoomlevel,retailerList.updateContainer);}else{if(retailerList.settings.errorElem){retailerList.settings.errorElem.show();}
retailerList.settings.postcodeElem.addClassName(formvalueIncorrectClassExtention);}},updateContainer:function(latitude,longitude){new Ajax.Updater($(retailerList.settings.targetContainer),$('basePath').readAttribute('href')+'retailerList',{asynchronous:true,method:'get',parameters:{'proximity':retailerList.settings.proximityElem.value,'latitude':latitude,'longitude':longitude,'randomize':Math.random(),'__requestBy':'js'}})}}
document.observe('dom:loaded',function(eventObject){if($('googleMaps')&&$('googleMaps').hasClassName('retailer')){gMapsObject.loadGoogleMaps();retailerList.initialize();$$('.dealer_calcProximityForPostcode').each(function(elem){if($F(elem.readAttribute('postcodeId'))){elem.fire('retailerList:click');}});}});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);var photo360=Class.create({instance:null,settings:null,calculated:null,autoRotateHandle:null,initialize:function(elem){this.settings={nextAnglePerPixels:50,invertXRotation:false,autoRotate:true,autoRotateSpeed:50,delayedLoad:null,delayedLoadSize:null,amountAngles:null};this.calculated={dims:null,photoDims:null,mouseoffset:null,photo:null,startPosition:0};if(!elem.hasClassName('JS_photo360')){console.error('het photo360 element heeft geen class JS_photo360',elem);return false;}
this.instance=elem;$H(this.settings).each(function(pair){var overrulingSetting=this.instance.readAttribute('JS_'+pair.key);if(overrulingSetting){this.settings[pair.key]=overrulingSetting;}},this);this.instance.select('.JS_photo360_navigation').invoke('hide');this.instance.select('.JS_photo360_navPauze').invoke('hide');this.calculated.photo=this.instance.down('img.JS_photo360_photo');this.boundEvents={};$H(this.events).each(function(pair){this.boundEvents[pair.key]=this.events[pair.key].bind(this);},this);this.calculated.photo.unselectable="on";this.calculated.photo.style.userSelect="none";this.calculated.photo.style.MozUserSelect="none";this.calculated.photo.observe('selectstart',this.boundEvents.selectStart);this.calculated.photo.observe('mousedown',this.boundEvents.startDrag).observe('touchstart',this.boundEvents.startDrag).observe('mouseup',this.boundEvents.stopDrag).observe('touchend',this.boundEvents.stopDrag);var identification=this.instance.readAttribute('id');if(identification){var targetSwitches=$$('.JS_photo360_openTargetInline[JS_targetPhoto360='+identification+']');targetSwitches.invoke('observe','click',this.boundEvents.switchInline);}
this.instance.select('.JS_photo360_navNext').invoke('observe','mousedown',this.boundEvents.navNext).invoke('observe','mouseup',this.boundEvents.navStop);this.instance.select('.JS_photo360_navPrevious').invoke('observe','mousedown',this.boundEvents.navPrevious).invoke('observe','mouseup',this.boundEvents.navStop);this.instance.select('.JS_photo360_navHoldNext').invoke('observe','mousedown',this.boundEvents.navHoldNext).invoke('observe','mouseup',this.boundEvents.navStop);this.instance.select('.JS_photo360_navHoldPrevious').invoke('observe','mousedown',this.boundEvents.navHoldPrevious).invoke('observe','mouseup',this.boundEvents.navStop);this.instance.select('.JS_photo360_navStart').invoke('observe','click',this.boundEvents.navStart);this.instance.select('.JS_photo360_navPauze').invoke('observe','click',this.boundEvents.navStop);document.observe('Popup:open',this.boundEvents.openPopup);this.instance.select('.JS_photo360_openInline').invoke('observe','click',this.boundEvents.openInline);},boundEvents:null,events:{openPopup:function(eventObject){var popupContainer=$('popupContainer');if(!popupContainer){console.error('openPopup zonder popup aangeroepen');return false;}
var photoInstance=popupContainer.down('.JS_photo360');if(photoInstance&&(photoInstance==this.instance)){this.preConfigure();}},switchInline:function(eventObject){var elem=eventObject.findElement('.JS_photo360_openTargetInline');if(!elem.hasClassName('JS_photo360_switched')){this.boundEvents.openInline(eventObject);}
else{this.boundEvents.closeInline(eventObject);}},openInline:function(eventObject){var identification=this.instance.readAttribute('id');if(identification){var targetSwitches=$$('.JS_photo360_openTargetInline[JS_targetPhoto360='+identification+']');targetSwitches.each(function(elem){elem.addClassName('JS_photo360_switched');});}
var preview=this.instance.down('.JS_photo360_preview');var player=this.instance.down('.JS_photo360_player');if(preview){preview.hide();}
player.show()
this.preConfigure();},closeInline:function(eventObject){var identification=this.instance.readAttribute('id');if(identification){var targetSwitches=$$('.JS_photo360_openTargetInline[JS_targetPhoto360='+identification+']');targetSwitches.each(function(elem){elem.removeClassName('JS_photo360_switched');});}
var preview=this.instance.down('.JS_photo360_preview');var player=this.instance.down('.JS_photo360_player');if(preview){preview.show();}
player.hide()},selectStart:function(eventObject){eventObject.stop();},startDrag:function(eventObject){eventObject.stop();if(this.settings.delayedLoad){return false;}
this.setPlayButton(true);this._stopAutoRotate();if(Prototype.Browser.IE){this.calculated.photo.setCapture();}
this.calculated.mouseoffset=this.calculateMouseOffset(eventObject);var positionLeft=this.calculated.photo.getStyle('left');var currentPosition=(parseInt(positionLeft.replace(/px/,''))*-1)/(this.calculated.photoDims.width/this.settings.amountAngles);this.calculated.startPosition=currentPosition;$(document.body).setStyle({'cursor':'w-resize'});document.observe('mousemove',this.boundEvents.mouseMove);document.observe('touchmove',this.boundEvents.mouseMove);document.observe('mouseup',this.boundEvents.stopDrag);document.observe('touchend',this.boundEvents.stopDrag);},stopDrag:function(eventObject){eventObject.stop();if(this.settings.delayedLoad){return false;}
if(Prototype.Browser.IE){this.calculated.photo.releaseCapture();}
$(document.body).setStyle({'cursor':'default'});var positionLeft=this.calculated.photo.getStyle('left');var currentPosition=(parseInt(positionLeft.replace(/px/,''))*-1)/(this.calculated.photoDims.width/this.settings.amountAngles);this.calculated.startPosition=currentPosition;document.stopObserving('mousemove',this.boundEvents.mouseMove);document.stopObserving('touchmove',this.boundEvents.mouseMove);document.stopObserving('mouseup',this.boundEvents.stopDrag);document.stopObserving('touchend',this.boundEvents.stopDrag);},mouseMove:function(eventObject){var mouseOffset=this.calculateMouseOffset(eventObject);var difference=mouseOffset.left-this.calculated.mouseoffset.left;var expectedSlide=Math.round(difference/this.settings.nextAnglePerPixels);if(this.settings.invertXRotation){expectedSlide=this.calculated.startPosition+expectedSlide;}
else{expectedSlide=this.calculated.startPosition-expectedSlide;}
expectedSlide=this.__rescopePosition(expectedSlide);this._gotoPosition(expectedSlide);},navNext:function(eventObject){var expectedSlide=this.calculated.startPosition+
(this.settings.invertXRotation?1:-1);expectedSlide=this.__rescopePosition(expectedSlide);this.setPlayButton(true);this.calculated.startPosition=expectedSlide;this._gotoPosition(expectedSlide);},navPrevious:function(eventObject){var expectedSlide=this.calculated.startPosition+
(this.settings.invertXRotation?-1:1);expectedSlide=this.__rescopePosition(expectedSlide);this.setPlayButton(true);this.calculated.startPosition=expectedSlide;this._gotoPosition(expectedSlide);},navHoldNext:function(eventObject){this.instance.select('.JS_photo360_navHoldNext').invoke('observe','mouseout',this.boundEvents.navStop);this.setPlayButton(true);this._stopAutoRotate();this._startAutoRotate('forward',-1);},navHoldPrevious:function(eventObject){this.instance.select('.JS_photo360_navHoldPrevious').invoke('observe','mouseout',this.boundEvents.navStop);this.setPlayButton(true);this._stopAutoRotate();this._startAutoRotate('backward',-1);},navStart:function(eventObject){this._stopAutoRotate();this.setPlayButton(false);this._startAutoRotate('forward',-1);},navStop:function(eventObject){this.instance.select('.JS_photo360_navHoldPrevious','.JS_photo360_navHoldNext').invoke('stopObserving','mouseout',this.boundEvents.navStop);this.setPlayButton(true);this.__autoRotateBackwards=false;this._stopAutoRotate();}},preConfigure:function(){if(this.settings.delayedLoad){var loaderDims=this.calculated.photo.getDimensions();this.instance.down('.JS_photo360_imageContainer').setStyle({'width':loaderDims.width+'px','height':loaderDims.height+'px','position':'relative'});var cachedImage=new Image();var updateImage=function(eventObject){this.settings.delayedLoad=null;eventtracking.track('photo360.delayedLoad',this.settings.delayedLoadSize);this.instance.select('.JS_photo360_navigation').invoke('show');this.calculated.photoDims={height:cachedImage.height,width:cachedImage.width}
this.calculated.dims={height:this.calculated.photoDims.height,width:(this.calculated.photoDims.width/this.settings.amountAngles)};this.instance.down('.JS_photo360_imageContainer').setStyle({'width':this.calculated.dims.width+'px','height':this.calculated.dims.height+'px','position':'relative','overflow':'hidden'});this.calculated.photo.setStyle({'position':'absolute','left':'0px','top':'0px'});this.calculated.photo.src=cachedImage.src;if(this.settings.autoRotate&&!this.autoRotateHandle){this.calculated.startPosition=0;this._gotoPosition(0);this._startAutoRotate('forward',this.settings.amountAngles-2);}}.bind(this);cachedImage.src=this.settings.delayedLoad;if(cachedImage.complete){updateImage();}
else{cachedImage.onload=updateImage;}
return;}},setPlayButton:function(status){this.instance.select('.JS_photo360_navStart').invoke(status?'show':'hide');this.instance.select('.JS_photo360_navPauze').invoke(status?'hide':'show');},__autoRotateHandle:null,__autoRotateAmountAngles:0,__autoRotateBackwards:false,__autoRotate:function(){if(this.__autoRotateAmountAngles==0){window.clearInterval(this.__autoRotateHandle);this.__autoRotateHandle=null;}
else if(this.__autoRotateAmountAngles>0){this.__autoRotateAmountAngles--}
var expectedSlide=this.calculated.startPosition;if(this.settings.invertXRotation){expectedSlide=this.__autoRotateBackwards?expectedSlide-1:expectedSlide+1;}
else{expectedSlide=this.__autoRotateBackwards?expectedSlide+1:expectedSlide-1;}
expectedSlide=this.__rescopePosition(expectedSlide);this.calculated.startPosition=expectedSlide;this._gotoPosition(expectedSlide);},_startAutoRotate:function(direction,angles){this.__autoRotateBackwards=(direction=='backward');this.__autoRotateAmountAngles=angles;this.__autoRotateHandle=setInterval(this.__autoRotate.bind(this),this.settings.autoRotateSpeed);},_stopAutoRotate:function(){__autoRotateAmountAngles=0;window.clearInterval(this.__autoRotateHandle);this.__autoRotateHandle=null;},_gotoPosition:function(posNo){this.calculated.photo.setStyle({left:((posNo%this.settings.amountAngles)*(this.calculated.photoDims.width/this.settings.amountAngles)*-1)+'px'});},__rescopePosition:function(expectedSlide){if(expectedSlide<0){expectedSlide=(((expectedSlide*-1)%(this.settings.amountAngles-1))*-1)+
(this.settings.amountAngles-1);}
expectedSlide=expectedSlide%(this.settings.amountAngles-1);return expectedSlide;},calculateMouseOffset:function(eventObject){var mousePosition={x:eventObject.pointerX(),y:eventObject.pointerY()};var containerOffset=this.instance.down('.JS_photo360_imageContainer').cumulativeOffset();return{left:mousePosition.x-containerOffset.left,top:mousePosition.y-containerOffset.top}}});document.observe('dom:loaded',function(eventObject){$$('.JS_photo360').each(function(elem){new photo360(elem);});});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 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);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;}});});});}});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;});}
$$('.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 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;}
if(fieldValue&&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 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=parseInt(this.slideshow.readAttribute('slideshow_time'));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.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();Effect.Fade(this.slides[this.current],{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 Steps={initialize:function(eventObject){$$('.JS_nextStep').invoke('observe','click',Steps._events.clickNextStep);},_events:{clickNextStep:function(eventObject){var elem=eventObject.element();var form=elem.up('form');var nextStep=elem.readAttribute('nextStep');var formAction=form.readAttribute('action').split('?');var queryString=(formAction[1]?formAction[1]:'').parseQuery();queryString['nextStep']=nextStep;form.writeAttribute('action',formAction[0]+'?'+$H(queryString).toQueryString());}}}
document.observe('dom:loaded',Steps.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;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('mouseout',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);},mouseOut:function(eventObject){this.elements.zoomContainer.hide();this.zooming=false;this.elements.zoomArea.hide();document.stopObserving('mousemove',this.boundEvents.mouseMove);},mouseMove:function(eventObject){this.mousePos={mouseX:eventObject.pointerX(),mouseY:eventObject.pointerY()};if(this.zooming){this.updateElements();}}},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);});}});
