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 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 Winkelwagen={initialize:function(eventObject){$$('.JS_microbasket').invoke('observe','mouseover',Winkelwagen.events.showMinibasket).invoke('observe','mouseout',Winkelwagen.events.hideMinibasket)},events:{showMinibasket:function(eventObject){var elem=eventObject.findElement('.JS_microbasket');elem.down('.JS_minibasket').show();},hideMinibasket:function(eventObject){var elem=eventObject.findElement('.JS_microbasket');elem.down('.JS_minibasket').hide();}}}
document.observe('dom:loaded',Winkelwagen.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);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 DropoutMenu=Class.create({instance:null,initialize:function(elem){this.instance=elem;this.boundEvents={};$H(this.events).each(function(pair){this.boundEvents[pair.key]=this.events[pair.key].bind(this);},this);this.instance.select('a').invoke('observe','click',this.boundEvents.click);},boundEvents:null,events:{click:function(eventObject){if(!TouchDetect.isDetected()){return true;}
var parentLI=eventObject.findElement('li');var childUL=parentLI.down('ul');if(!childUL){return true;}
if(!childUL.hasClassName('JS_dropoutOpened')){this.instance.select('.JS_dropoutOpened').invoke('removeClassName','JS_dropoutOpened');childUL.addClassName('JS_dropoutOpened');document.observe('click',this.boundEvents.touchedElsewhere);eventObject.stop();}},touchedElsewhere:function(eventObject){var clickedOnDropoutMenu=eventObject.findElement('.JS_dropoutMenu');if(clickedOnDropoutMenu){return true;}
this.instance.select('.JS_dropoutOpened').invoke('removeClassName','JS_dropoutOpened');document.stopObserving('click',this.boundEvents.touchedElsewhere);}}});document.observe('dom:loaded',function(eventObject){$$('.JS_dropoutMenu').each(function(elem){new DropoutMenu(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 photo360=Class.create({instance:null,settings:null,calculated:null,autoRotateHandle:null,bigImageInitialized:false,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()
if(this.bigImageInitialized){this.calculated.startPosition=0;this._gotoPosition(0);this._startAutoRotate('forward',this.settings.amountAngles-1);}
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-1);}}.bind(this);cachedImage.src=this.settings.delayedLoad;if(cachedImage.complete){updateImage();}
else{cachedImage.onload=updateImage;}
this.bigImageInitialized=true;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){if(eventObject.type.match(/touch/)){var mousePosition={x:eventObject.touches[0].pageX,y:eventObject.touches[0].pageY};}
else{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 photoalbum={settings:{extraWidth:18},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 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_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_zoomimg'));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 RichTextEditor={initializationSettings:{mode:"specific_textareas",language:"nl",editor_selector:"JS_RichTextEditor",theme:"advanced",plugins:"paste",paste_text_sticky:true,setup:function(ed){ed.onInit.add(function(ed){ed.pasteAsPlainText=true;});},theme_advanced_buttons1:'',theme_advanced_buttons2:'',theme_advanced_buttons3:'',theme_advanced_buttons4:'',theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left"},initialize:function(eventObject){tinyMCE.init(RichTextEditor.initializationSettings);}}
document.observe('dom:loaded',RichTextEditor.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 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 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 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 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 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 AutoJump={initiate:function(){$$('select.JS_autoJump').invoke('observe','change',AutoJump._events.changedSelect);},_events:{changedSelect:function(eventObject){document.location.href=this.getValue();}}};document.observe('dom:loaded',AutoJump.initiate);var 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);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);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'){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.innerHTML=jsonResponse.totalSumValid_Money;}}});if(jsonResponse.allowTotalPriceUpdate=='TRUE'){$$('.basket_totalPrice').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.totalSum_Money);};});$$('.basket_shippingCost').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.shippingCost_Money);}});$$('.basket_totalPriceWithShipping').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.totalSumWithShipping_Money);}});$$('.basket_totalPriceCodes').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.totalSumCodes_Money);}});$$('.basket_taxPrice').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.totalSumTax_Money);}});$$('.basket_grossPrice').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.innerHTML=jsonResponse.totalSumGross_Money;}});}
$$('.JS_basket_totaalgewicht_netto').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.totaalGewichtNetto);}});$$('.JS_basket_totaalgewicht_bruto').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.totaalGewichtBruto);}});$$('.JS_minibasket').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.update(jsonResponse.minibasket);}});$$('.basket_totalLines').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{elem.innerHTML=jsonResponse.totalLines;}});$$('.basket_totalItems').each(function(elem){var targetBasketElement=elem.readAttribute('targetBasket');if(targetBasketElement&&targetBasketElement!=targetBasket){return;}
else{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');if(codeElem.readAttribute('allowTypeMerge')){query.set('allowTypeMerge',true);}
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 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 Wishlist={listnerUrl:'php/bouwstenen/wishlist_listner.php',initialize:function(eventObject){Wishlist.attachListners();},attachListners:function(parentElement){parentElement=parentElement?$(parentElement):$(document.body);parentElement.select('.JS_wishlist_mutate[itemId][mutateValue]').invoke('observe','click',Wishlist.events.mutate);parentElement.select('.JS_wishlist_update[itemId]').invoke('observe','change',Wishlist.events.update);parentElement.select('input.JS_wishlist_correctInput[itemId]').invoke('observe','keypress',Wishlist.events.correctInput);},events:{mutate:function(eventObject){eventObject.stop();var elem=eventObject.findElement('.JS_wishlist_mutate');var itemId=elem.readAttribute('itemId');var delta=elem.readAttribute('mutateValue');Wishlist.actions.mutate(itemId,delta);},update:function(eventObject){eventObject.stop();var elem=eventObject.findElement('.JS_wishlist_update');var itemId=elem.readAttribute('itemId');var value=elem.value;if(!value){elem.value=value='0';}
Wishlist.actions.update(itemId,value);},correctInput:function(eventObject){var elem=eventObject.findElement('input.JS_wishlist_correctInput');var charCode=eventObject.keyCode?eventObject.keyCode:eventObject.which;var strChar=String.fromCharCode(charCode);switch(charCode){case Event.KEY_BACKSPACE:case Event.KEY_DELETE:case Event.KEY_LEFT:case Event.KEY_RIGHT:case Event.KEY_TAB:break;case Event.KEY_RETURN:Wishlist.events.update(eventObject);return true;default:if(!strChar.match(/[0-9]/)){eventObject.stop();return false;}}}},actions:{mutate:function(itemId,delta){var params={'return':'productAmount','action':'mutate','value':delta,'randomize':Math.random(),'__requestBy':'js'};params['itemId']=itemId;new Ajax.Request(Wishlist.listnerUrl,{asynchronous:true,method:'get',parameters:params,onSuccess:Wishlist.actions._processChanges,onFailure:function(){console.log('er was een probleem met het verwerken voor het '+'verzoek met betrekking tot de wishlist. '+'Parameters waren: ',params);}})},update:function(itemId,value){var params={'return':'productAmount','action':'update','value':delta,'randomize':Math.random(),'__requestBy':'js'};params['itemId']=itemId;new Ajax.Request(Wishlist.listnerUrl,{asynchronous:true,method:'get',parameters:params,onSuccess:Wishlist.actions._processChanges,onFailure:function(){console.log('er was een probleem met het verwerken voor het '+'verzoek met betrekking tot de wishlist. '+'Parameters waren: ',params);}})},_processChanges:function(transport){var response=transport.responseJSON;if(response.itemId){var elemsWithAmount=$$('.JS_wishlist_itemAmount[itemId='+response.itemId+']');elemsWithAmount.each(function(elemWithAmount){if(elemWithAmount.tagName=='INPUT'){elemWithAmount.value=response.productAmount;}
else{elemWithAmount.update(response.productAmount);}});var elemsWithPrice=$$('.JS_wishlist_itemPrice[itemId='+response.itemId+']');elemsWithPrice.each(function(elemWithPrice){if(elemWithPrice.tagName=='INPUT'){elemWithPrice.value=response.calculatedPrice_Money;}
else{elemWithPrice.update(response.calculatedPrice_Money);}});};Wishlist.actions.updateTotals();},updateTotals:function(){var params={'return':'totals','randomize':Math.random(),'__requestBy':'js'};new Ajax.Request(Wishlist.listnerUrl,{asynchronous:true,method:'get',parameters:params,onSuccess:Wishlist.actions._processTotals,onFailure:function(){console.log('er was een probleem met het verwerken voor het '+'verzoek met betrekking tot de wishlist. '+'Parameters waren: ',params);}});},_processTotals:function(transport){var response=transport.responseJSON;if(response.allowTotalPriceUpdate=='TRUE'){$$('.JS_wishlist_netPrice').invoke('update',jsonResponse.totalSum_Money);$$('.JS_wishlist_taxPrice').invoke('update',jsonResponse.totalSumTax_Money);$$('.JS_wishlist_grossPrice').invoke('update',jsonResponse.totalSumGross_Money);$$('.JS_wishlist_totalLines').invoke('update',jsonResponse.totalLines);$$('.JS_wishlist_totalItems').invoke('update',jsonResponse.totalItems);}
Wishlist.actions.updateContainer();},updateContainer:function(){var params={'return':'basket','randomize':Math.random(),'__requestBy':'js'};new Ajax.Request(Wishlist.listnerUrl,{asynchronous:true,method:'get',parameters:params,onSuccess:Wishlist.actions._processContainer,onFailure:function(){console.log('er was een probleem met het verwerken voor het '+'verzoek met betrekking tot de wishlist. '+'Parameters waren: ',params);}});},_processContainer:function(transport){$$('.JS_wishlist_container').each(function(containerElem){containerElem.update(transport.responseText);Wishlist.attachListners(containerElem);});}}};document.observe('dom:loaded',Wishlist.initialize);var Zoom=Class.create({settingHash:{},elements:{},zooming:false,mousePos:{},dims:{},initialize:function(settingHash){if(Prototype.Browser.IE&&parseFloat(navigator.appVersion.split('MSIE')[1])<7){return false;}
this.settingHash=settingHash;if(!$(settingHash.zoomContainer)){return false;}
this.elements={smallImageContainer:$(settingHash.smallImageContainer),zoomContainer:$(settingHash.zoomContainer),zoomArea:$(settingHash.zoomArea),bigImage:$(settingHash.zoomContainer).down('img')};if(!this.elements.zoomContainer||!this.elements.smallImageContainer||!this.elements.bigImage){return false;}
this.boundEvents={};$H(this.events).each(function(pair){this.boundEvents[pair.key]=this.events[pair.key].bind(this);},this);this.attachEvents();},boundEvents:null,attachEvents:function(){this.elements.smallImageContainer.observe('mouseover',this.boundEvents.mouseOver).observe('touchstart',this.boundEvents.mouseOver).observe('mouseout',this.boundEvents.mouseOut).observe('touchend',this.boundEvents.mouseOut);$$('.JS_ZoomStop').invoke('observe','click',this.boundEvents.mouseOut);},events:{mouseOver:function(eventObject){this.elements.zoomContainer.show();this.zooming=true;this.elements.zoomArea.show();this.dims={};$H(this.elements).each(function(pair){this.dims[pair.key]=this.elements[pair.key].getDimensions();},this);document.observe('mousemove',this.boundEvents.mouseMove);document.observe('touchmove',this.boundEvents.mouseMove);this.updateMousePosition(eventObject);this.updateElements();eventObject.stop();},mouseOut:function(eventObject){this.elements.zoomContainer.hide();this.zooming=false;this.elements.zoomArea.hide();document.stopObserving('mousemove',this.boundEvents.mouseMove);document.stopObserving('touchmove',this.boundEvents.mouseMove);},mouseMove:function(eventObject){this.updateMousePosition();if(this.zooming){this.updateElements();}}},updateMousePosition:function(eventObject){if(eventObject.type.match(/touch/)){this.mousePos={mouseX:eventObject.touches[0].pageX,mouseY:eventObject.touches[0].pageY};}
else{this.mousePos={mouseX:eventObject.pointerX(),mouseY:eventObject.pointerY()};}},updateElements:function(){var imageOffset=this.elements.smallImageContainer.cumulativeOffset();var imgMouseX=this.mousePos.mouseX-imageOffset[0];var imgMouseY=this.mousePos.mouseY-imageOffset[1];var calculatedX=imgMouseX-(this.dims.zoomArea.width/2);if(calculatedX<0){calculatedX=0;}
if(calculatedX>this.dims.smallImageContainer.width-this.dims.zoomArea.width){calculatedX=this.dims.smallImageContainer.width-this.dims.zoomArea.width;}
var calculatedY=imgMouseY-(this.dims.zoomArea.height/2);if(calculatedY<0){calculatedY=0;}
if(calculatedY>this.dims.smallImageContainer.height-this.dims.zoomArea.height){calculatedY=this.dims.smallImageContainer.height-this.dims.zoomArea.height;}
this.elements.zoomArea.setStyle({left:calculatedX+'px',top:calculatedY+'px'});var correctedMousePositionX=(imgMouseX-(this.dims.zoomArea.width/2));var correctedCalculatedX;if(correctedMousePositionX>0){if(imgMouseX>(this.dims.smallImageContainer.width-(this.dims.zoomArea.width/2))){correctedCalculatedX=this.dims.smallImageContainer.width-this.dims.zoomArea.width;}
else{correctedCalculatedX=imgMouseX-(this.dims.zoomArea.width/2)}}
else{correctedCalculatedX=0;}
var calculatedPercentageX=(correctedCalculatedX/(this.dims.smallImageContainer.width-this.dims.zoomArea.width))*100;var calculatedBigX=(((this.dims.bigImage.width-this.dims.zoomContainer.width)/100)*calculatedPercentageX*-1);var correctedMousePositionY=(imgMouseY-(this.dims.zoomArea.height/2));var correctedCalculatedY;if(correctedMousePositionY>0){if(imgMouseY>(this.dims.smallImageContainer.height-(this.dims.zoomArea.height/2))){correctedCalculatedY=this.dims.smallImageContainer.height-this.dims.zoomArea.height;}
else{correctedCalculatedY=imgMouseY-(this.dims.zoomArea.height/2)}}
else{correctedCalculatedY=0;}
var calculatedPercentageY=(correctedCalculatedY/(this.dims.smallImageContainer.height-this.dims.zoomArea.height))*100;var calculatedBigY=(((this.dims.bigImage.height-this.dims.zoomContainer.height)/100)*calculatedPercentageY*-1);this.elements.bigImage.setStyle({left:calculatedBigX+'px',top:calculatedBigY+'px'});}});Event.observe(window,'load',function(eventObject){if(JSConfig.Zoom){JSConfig.Zoom.each(function(settingHash){new Zoom(settingHash);});}});(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;if(tinyMCE.isIE){return}a.onKeyDown.add(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng().cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("mceInsertLink",false,h[1]+h[2]);i.selection.moveToBookmark(k);if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();(function(){tinymce.create('tinymce.plugins.AutolinkPlugin',{init:function(ed,url){var t=this;if(tinyMCE.isIE)
return;ed.onKeyDown.add(function(ed,e){if(e.keyCode==13)
return t.handleEnter(ed);});ed.onKeyPress.add(function(ed,e){if(e.which==41)
return t.handleEclipse(ed);});ed.onKeyUp.add(function(ed,e){if(e.keyCode==32)
return t.handleSpacebar(ed);});},handleEclipse:function(ed){this.parseCurrentLine(ed,-1,'(',true);},handleSpacebar:function(ed){this.parseCurrentLine(ed,0,'',true);},handleEnter:function(ed){this.parseCurrentLine(ed,-1,'',false);},parseCurrentLine:function(ed,end_offset,delimiter,goback){var r,end,start,endContainer,bookmark,text,matches,prev,len;r=ed.selection.getRng().cloneRange();if(r.startOffset<5){prev=r.endContainer.previousSibling;if(prev==null){if(r.endContainer.firstChild==null||r.endContainer.firstChild.nextSibling==null)
return;prev=r.endContainer.firstChild.nextSibling;}
len=prev.length;r.setStart(prev,len);r.setEnd(prev,len);if(r.endOffset<5)
return;end=r.endOffset;endContainer=prev;}else{endContainer=r.endContainer;if(endContainer.nodeType!=3&&endContainer.firstChild){while(endContainer.nodeType!=3&&endContainer.firstChild)
endContainer=endContainer.firstChild;r.setStart(endContainer,0);r.setEnd(endContainer,endContainer.nodeValue.length);}
if(r.endOffset==1)
end=2;else
end=r.endOffset-1-end_offset;}
start=end;do
{r.setStart(endContainer,end-2);r.setEnd(endContainer,end-1);end-=1;}while(r.toString()!=' '&&r.toString()!=''&&r.toString().charCodeAt(0)!=160&&(end-2)>=0&&r.toString()!=delimiter);if(r.toString()==delimiter||r.toString().charCodeAt(0)==160){r.setStart(endContainer,end);r.setEnd(endContainer,start);end+=1;}else if(r.startOffset==0){r.setStart(endContainer,0);r.setEnd(endContainer,start);}
else{r.setStart(endContainer,end);r.setEnd(endContainer,start);}
text=r.toString();matches=text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)(.+)$/i);if(matches){if(matches[1]=='www.'){matches[1]='http://www.';}
bookmark=ed.selection.getBookmark();ed.selection.setRng(r);tinyMCE.execCommand('mceInsertLink',false,matches[1]+matches[2]);ed.selection.moveToBookmark(bookmark);if(tinyMCE.isWebKit){ed.selection.collapse(false);var max=Math.min(endContainer.length,start+1);r.setStart(endContainer,max);r.setEnd(endContainer,max);ed.selection.setRng(r);}}},getInfo:function(){return{longname:'Autolink',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('autolink',tinymce.plugins.AutolinkPlugin);})();(function(){tinymce.create('tinymce.plugins.AutoResizePlugin',{init:function(ed,url){var t=this,oldSize=0;if(ed.getParam('fullscreen_is_enabled'))
return;function resize(){var d=ed.getDoc(),b=d.body,de=d.documentElement,DOM=tinymce.DOM,resizeHeight=t.autoresize_min_height,myHeight;myHeight=tinymce.isIE?b.scrollHeight:d.body.offsetHeight;if(myHeight>t.autoresize_min_height)
resizeHeight=myHeight;if(t.autoresize_max_height&&myHeight>t.autoresize_max_height){resizeHeight=t.autoresize_max_height;ed.getBody().style.overflowY="auto";}else
ed.getBody().style.overflowY="hidden";if(resizeHeight!==oldSize){DOM.setStyle(DOM.get(ed.id+'_ifr'),'height',resizeHeight+'px');oldSize=resizeHeight;}
if(t.throbbing){ed.setProgressState(false);ed.setProgressState(true);}};t.editor=ed;t.autoresize_min_height=parseInt(ed.getParam('autoresize_min_height',ed.getElement().offsetHeight));t.autoresize_max_height=parseInt(ed.getParam('autoresize_max_height',0));ed.onInit.add(function(ed){ed.dom.setStyle(ed.getBody(),'paddingBottom',ed.getParam('autoresize_bottom_margin',50)+'px');});ed.onChange.add(resize);ed.onSetContent.add(resize);ed.onPaste.add(resize);ed.onKeyUp.add(resize);ed.onPostRender.add(resize);if(ed.getParam('autoresize_on_init',true)){ed.onInit.add(function(ed,l){ed.setProgressState(true);t.throbbing=true;ed.getBody().style.overflowY="hidden";});ed.onLoadContent.add(function(ed,l){resize();setTimeout(function(){resize();ed.setProgressState(false);t.throbbing=false;},1250);});}
ed.addCommand('mceAutoResize',resize);},getInfo:function(){return{longname:'Auto Resize',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('autoresize',tinymce.plugins.AutoResizePlugin);})();(function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this,e=0;if(a.getParam("fullscreen_is_enabled")){return}function b(){var i=a.getDoc(),f=i.body,k=i.documentElement,h=tinymce.DOM,j=d.autoresize_min_height,g;g=tinymce.isIE?f.scrollHeight:i.body.offsetHeight;if(g>d.autoresize_min_height){j=g}if(d.autoresize_max_height&&g>d.autoresize_max_height){j=d.autoresize_max_height;a.getBody().style.overflowY="auto"}else{a.getBody().style.overflowY="hidden"}if(j!==e){h.setStyle(h.get(a.id+"_ifr"),"height",j+"px");e=j}if(d.throbbing){a.setProgressState(false);a.setProgressState(true)}}d.editor=a;d.autoresize_min_height=parseInt(a.getParam("autoresize_min_height",a.getElement().offsetHeight));d.autoresize_max_height=parseInt(a.getParam("autoresize_max_height",0));a.onInit.add(function(f){f.dom.setStyle(f.getBody(),"paddingBottom",f.getParam("autoresize_bottom_margin",50)+"px")});a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);if(a.getParam("autoresize_on_init",true)){a.onInit.add(function(g,f){g.setProgressState(true);d.throbbing=true;g.getBody().style.overflowY="hidden"});a.onLoadContent.add(function(g,f){b();setTimeout(function(){b();g.setProgressState(false);d.throbbing=false},1250)})}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})();tinyMCE.addI18n('en.autosave',{restore_content:"Restore auto-saved content",warning_message:"If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?"});(function(tinymce){var PLUGIN_NAME='autosave',RESTORE_DRAFT='restoredraft',TRUE=true,undefined,unloadHandlerAdded,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.plugins.AutoSave',{init:function(ed,url){var self=this,settings=ed.settings;self.editor=ed;function parseTime(time){var multipels={s:1000,m:60000};time=/^(\d+)([ms]?)$/.exec(''+time);return(time[2]?multipels[time[2]]:1)*parseInt(time);};tinymce.each({ask_before_unload:TRUE,interval:'30s',retention:'20m',minlength:50},function(value,key){key=PLUGIN_NAME+'_'+key;if(settings[key]===undefined)
settings[key]=value;});settings.autosave_interval=parseTime(settings.autosave_interval);settings.autosave_retention=parseTime(settings.autosave_retention);ed.addButton(RESTORE_DRAFT,{title:PLUGIN_NAME+".restore_content",onclick:function(){if(ed.getContent({draft:true}).replace(/\s|&nbsp;|<\/?p[^>]*>|<br[^>]*>/gi,"").length>0){ed.windowManager.confirm(PLUGIN_NAME+".warning_message",function(ok){if(ok)
self.restoreDraft();});}else
self.restoreDraft();}});ed.onNodeChange.add(function(){var controlManager=ed.controlManager;if(controlManager.get(RESTORE_DRAFT))
controlManager.setDisabled(RESTORE_DRAFT,!self.hasDraft());});ed.onInit.add(function(){if(ed.controlManager.get(RESTORE_DRAFT)){self.setupStorage(ed);setInterval(function(){self.storeDraft();ed.nodeChanged();},settings.autosave_interval);}});self.onStoreDraft=new Dispatcher(self);self.onRestoreDraft=new Dispatcher(self);self.onRemoveDraft=new Dispatcher(self);if(!unloadHandlerAdded){window.onbeforeunload=tinymce.plugins.AutoSave._beforeUnloadHandler;unloadHandlerAdded=TRUE;}},getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinymce.majorVersion+"."+tinymce.minorVersion};},getExpDate:function(){return new Date(new Date().getTime()+this.editor.settings.autosave_retention).toUTCString();},setupStorage:function(ed){var self=this,testKey=PLUGIN_NAME+'_test',testVal="OK";self.key=PLUGIN_NAME+ed.id;tinymce.each([function(){if(localStorage){localStorage.setItem(testKey,testVal);if(localStorage.getItem(testKey)===testVal){localStorage.removeItem(testKey);return localStorage;}}},function(){if(sessionStorage){sessionStorage.setItem(testKey,testVal);if(sessionStorage.getItem(testKey)===testVal){sessionStorage.removeItem(testKey);return sessionStorage;}}},function(){if(tinymce.isIE){ed.getElement().style.behavior="url('#default#userData')";return{autoExpires:TRUE,setItem:function(key,value){var userDataElement=ed.getElement();userDataElement.setAttribute(key,value);userDataElement.expires=self.getExpDate();try{userDataElement.save("TinyMCE");}catch(e){}},getItem:function(key){var userDataElement=ed.getElement();try{userDataElement.load("TinyMCE");return userDataElement.getAttribute(key);}catch(e){return null;}},removeItem:function(key){ed.getElement().removeAttribute(key);}};}},],function(setup){try{self.storage=setup();if(self.storage)
return false;}catch(e){}});},storeDraft:function(){var self=this,storage=self.storage,editor=self.editor,expires,content;if(storage){if(!storage.getItem(self.key)&&!editor.isDirty())
return;content=editor.getContent({draft:true});if(content.length>editor.settings.autosave_minlength){expires=self.getExpDate();if(!self.storage.autoExpires)
self.storage.setItem(self.key+"_expires",expires);self.storage.setItem(self.key,content);self.onStoreDraft.dispatch(self,{expires:expires,content:content});}}},restoreDraft:function(){var self=this,storage=self.storage,content;if(storage){content=storage.getItem(self.key);if(content){self.editor.setContent(content);self.onRestoreDraft.dispatch(self,{content:content});}}},hasDraft:function(){var self=this,storage=self.storage,expDate,exists;if(storage){exists=!!storage.getItem(self.key);if(exists){if(!self.storage.autoExpires){expDate=new Date(storage.getItem(self.key+"_expires"));if(new Date().getTime()<expDate.getTime())
return TRUE;self.removeDraft();}else
return TRUE;}}
return false;},removeDraft:function(){var self=this,storage=self.storage,key=self.key,content;if(storage){content=storage.getItem(key);storage.removeItem(key);storage.removeItem(key+"_expires");if(content){self.onRemoveDraft.dispatch(self,{content:content});}}},"static":{_beforeUnloadHandler:function(e){var msg;tinymce.each(tinyMCE.editors,function(ed){if(ed.plugins.autosave)
ed.plugins.autosave.storeDraft();if(ed.getParam("fullscreen_is_enabled"))
return;if(!msg&&ed.isDirty()&&ed.getParam("autosave_ask_before_unload"))
msg=ed.getLang("autosave.unload_msg");});return msg;}}});tinymce.PluginManager.add('autosave',tinymce.plugins.AutoSave);})(tinymce);(function(e){var c="autosave",g="restoredraft",b=true,f,d,a=e.util.Dispatcher;e.create("tinymce.plugins.AutoSave",{init:function(i,j){var h=this,l=i.settings;h.editor=i;function k(n){var m={s:1000,m:60000};n=/^(\d+)([ms]?)$/.exec(""+n);return(n[2]?m[n[2]]:1)*parseInt(n)}e.each({ask_before_unload:b,interval:"30s",retention:"20m",minlength:50},function(n,m){m=c+"_"+m;if(l[m]===f){l[m]=n}});l.autosave_interval=k(l.autosave_interval);l.autosave_retention=k(l.autosave_retention);i.addButton(g,{title:c+".restore_content",onclick:function(){if(i.getContent({draft:true}).replace(/\s|&nbsp;|<\/?p[^>]*>|<br[^>]*>/gi,"").length>0){i.windowManager.confirm(c+".warning_message",function(m){if(m){h.restoreDraft()}})}else{h.restoreDraft()}}});i.onNodeChange.add(function(){var m=i.controlManager;if(m.get(g)){m.setDisabled(g,!h.hasDraft())}});i.onInit.add(function(){if(i.controlManager.get(g)){h.setupStorage(i);setInterval(function(){h.storeDraft();i.nodeChanged()},l.autosave_interval)}});h.onStoreDraft=new a(h);h.onRestoreDraft=new a(h);h.onRemoveDraft=new a(h);if(!d){window.onbeforeunload=e.plugins.AutoSave._beforeUnloadHandler;d=b}},getInfo:function(){return{longname:"Auto save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave",version:e.majorVersion+"."+e.minorVersion}},getExpDate:function(){return new Date(new Date().getTime()+this.editor.settings.autosave_retention).toUTCString()},setupStorage:function(i){var h=this,k=c+"_test",j="OK";h.key=c+i.id;e.each([function(){if(localStorage){localStorage.setItem(k,j);if(localStorage.getItem(k)===j){localStorage.removeItem(k);return localStorage}}},function(){if(sessionStorage){sessionStorage.setItem(k,j);if(sessionStorage.getItem(k)===j){sessionStorage.removeItem(k);return sessionStorage}}},function(){if(e.isIE){i.getElement().style.behavior="url('#default#userData')";return{autoExpires:b,setItem:function(l,n){var m=i.getElement();m.setAttribute(l,n);m.expires=h.getExpDate();try{m.save("TinyMCE")}catch(o){}},getItem:function(l){var m=i.getElement();try{m.load("TinyMCE");return m.getAttribute(l)}catch(n){return null}},removeItem:function(l){i.getElement().removeAttribute(l)}}}},],function(l){try{h.storage=l();if(h.storage){return false}}catch(m){}})},storeDraft:function(){var i=this,l=i.storage,j=i.editor,h,k;if(l){if(!l.getItem(i.key)&&!j.isDirty()){return}k=j.getContent({draft:true});if(k.length>j.settings.autosave_minlength){h=i.getExpDate();if(!i.storage.autoExpires){i.storage.setItem(i.key+"_expires",h)}i.storage.setItem(i.key,k);i.onStoreDraft.dispatch(i,{expires:h,content:k})}}},restoreDraft:function(){var h=this,j=h.storage,i;if(j){i=j.getItem(h.key);if(i){h.editor.setContent(i);h.onRestoreDraft.dispatch(h,{content:i})}}},hasDraft:function(){var h=this,k=h.storage,i,j;if(k){j=!!k.getItem(h.key);if(j){if(!h.storage.autoExpires){i=new Date(k.getItem(h.key+"_expires"));if(new Date().getTime()<i.getTime()){return b}h.removeDraft()}else{return b}}}return false},removeDraft:function(){var h=this,k=h.storage,i=h.key,j;if(k){j=k.getItem(i);k.removeItem(i);k.removeItem(i+"_expires");if(j){h.onRemoveDraft.dispatch(h,{content:j})}}},"static":{_beforeUnloadHandler:function(h){var i;e.each(tinyMCE.editors,function(j){if(j.plugins.autosave){j.plugins.autosave.storeDraft()}if(j.getParam("fullscreen_is_enabled")){return}if(!i&&j.isDirty()&&j.getParam("autosave_ask_before_unload")){i=j.getLang("autosave.unload_msg")}});return i}}});e.PluginManager.add("autosave",e.plugins.AutoSave)})(tinymce);
