var Winkels={autoOpenWinkel:null,loadLocationOnMap:function(){window.addEvent("load",function(){Winkels.loadLocation()})},loadLocation:function(){var A=Maps.getMapById("map");if(!A.gmap||!A.gmap.isLoaded()){Spif.Utils.setTimeoutHandler(Winkels.loadLocation,50);return}Winkels.validateLocation($("searchshops"))},selectShop:function(F,D){var C=$("live-content").getElements(".shopdetails");for(var B=0;B<C.length;B++){var E=C[B];var G=E.getElement("input[name=lat]").value;var A=E.getElement("input[name=lng]").value;if(G==F&&A==D){E.addClass("shopdetails-selected")}else{E.removeClass("shopdetails-selected")}}},unSelectShops:function(){var B=$("live-content").getElements(".shopdetails");for(var A=0;A<B.length;A++){var C=B[A];C.removeClass("shopdetails-selected")}},showShopOnMap:function(E,C){var F=new GLatLng(E,C);var B=Maps.getMapById("map");for(var A=0;A<B.markers.length;A++){var D=B.markers[A];if(D.isLocationEqual(E,C)){this.autoOpenWinkel=D;break}}setTimeout("Winkels.doAutoOpenWinkel()",250);B.gmap.panTo(F);B.gmap.setCenter(F);this.selectShop(E,C)},drawMarkers:function(E){var C=Maps.getMapById("map");C.removeMarkers();var A={dist:1000000,obj:null};for(var B=0;B<E.length;B++){var D=new Marker();D.icon="shop";D.lat=E[B].lat;D.lng=E[B].lng;D.args=E[B].args;var F=E;D.addEvent("click","Winkels.showShopWindow",{marker:D,content:E[B].args});C.addMarkerToArray(D)}C.loadMarkers()},doAutoOpenWinkel:function(){if(this.autoOpenWinkel){this.showShopWindow(this.autoOpenWinkel.gmarker,{marker:this.autoOpenWinkel,content:this.autoOpenWinkel.args})}},attachEvents:function(){Spif.Utils.setTimeoutHandler(function(){$$(".shopdetails-searchresult").each(function(A){A.addEvent("click",function(B){if(B.target.nodeName.toLowerCase()=="span"||B.target.nodeName.toLowerCase()=="input"){return}var D=A.getElement("input[name=lat]").value;var C=A.getElement("input[name=lng]").value;Winkels.showShopOnMap(D,C)})})},50)},removeHint:function(A,B){Winkels.removeError();if(A.value==B){A.value=""}},recoverHint:function(A,B){if(A.value==""){A.value=B;Winkels.removeError()}},isValidPostalCode:function(A){var B=/^[1-9][0-9]{3}[A-Za-z]{2}$/;return A.match(B)},postcodeValidate:function(A){var B=$("fromLocation").get("value");if(!Winkels.isValidPostalCode(B)){Winkels.showError("Uw postcode moet uit 4 cijfers en 2 letters bestaan, zonder spaties");return false}else{return true}},searchPlace:function(A){Winkels.removeError();var B=$("searchshops");this.validateLocation(B,A)},validateLocation:function(B,A){if(!A){A=B.elements[0].value}Maps.geocoder.getLocations(A,function(I){if(!I||I.Status.code!=200||I.Placemark.length<1||I.Placemark[0].AddressDetails.Accuracy<2){Winkels.showError("We kunnen deze locatie niet vinden",B);return false}else{var H=I.Placemark[0].Point.coordinates[1];var F=I.Placemark[0].Point.coordinates[0];var D=Maps.getMapById("map");if(D.currentDirections){D.currentDirections.clear()}var C=11;D.gmap.setCenter(new GLatLng(H,F),C);D.zoomlevel=C;var E=D.gmap.getBounds();$(B).getElement("input[name=bounds]").value=String(E);var G="?ne_lat="+E.getNorthEast().lat()+"&ne_lng="+E.getNorthEast().lng()+"&sw_lat="+E.getSouthWest().lat()+"&sw_lng="+E.getSouthWest().lng()+"&hideList=false";Live.get("/fragments/getshops"+G)}});return false},searchShops:function(A,H,D){var B=D.hideList;var F=D.dragEnd;if(H[0]==null){B=true}if(F){B=false}var G=Maps.getMapById("map");if(G.zoomlevel==6){return}if(G.currentDirections==null){var C=G.gmap.getBounds();$("searchshops").getElement("input[name=bounds]").value=String(C);var E="?ne_lat="+C.getNorthEast().lat()+"&ne_lng="+C.getNorthEast().lng()+"&sw_lat="+C.getSouthWest().lat()+"&sw_lng="+C.getSouthWest().lng()+"&hideList="+B;Live.get("/fragments/getshops"+E)}},validateAndCalculateRoute:function(B){B=$(B);var A=B.getElement("input[name=from]").value;var C=B.getElement("input[name=to]").value;if(B.getElement("input[name=name]").value!=""){GoogleRoute.SELECTED_SHOP=B.getElement("input[name=name]").value}if(A.toLowerCase()=="q42"){B.getElement("input[name=from]").value=A="q42, waldorpstraat 17f, den haag"}else{if(!Winkels.isValidPostalCode(A)){Winkels.showError("Uw postcode moet uit 4 cijfers en 2 letters bestaan, zonder spaties",B);return false}}A+=", Netherlands";var D=Maps.geocoder;D.getLocations(A,function(H){if(!H||H.Status.code!=200||H.Placemark.length<1||H.Placemark[0].AddressDetails.Accuracy<2){Winkels.showError("We kunnen deze locatie niet vinden",B)}else{var F=Maps.getRouteStartingPoint(H);if(!F){Winkels.showError("We kunnen deze locatie niet vinden",B);return false}var E=Maps.getMapById("map");var G=new GDirections(E.gmap,document.getElementById("route"));if(E.currentDirections){E.currentDirections.clear()}E.currentDirections=G;GEvent.addListener(G,"load",function(){if(GoogleRoute){Spif.Utils.setTimeoutHandler(GoogleRoute.startOverideData,0)}E.gmap.closeInfoWindow();var J=B.getElement("input[name=id]").value;var I=$("live-content").getElements(".shopdetails");Winkels.hideExcept(I,J)});GEvent.addListener(G,"error",function(){Winkels.showError("We kunnen deze route niet berekenen",B)});G.load("from: "+F+" to: "+C)}});return false},hideExcept:function(A,B){A.each(function(C){if(C.getElement("input[name=id]").value!=B){C.style.display="none";C.removeClass("shopdetails-selected")}else{C.addClass("shopdetails-selected")}})},showError:function(B,A){var C=A.getParent().getElements(".error");if(!C||C.length==0){return}C.each(function(D){D.removeClass("hidden");D.getElement("span.errorText").innerHTML=B})},removeError:function(){var A=$("content").getElements("div.error");if(!A||A.length==0){return}A.each(function(B){B.addClass("hidden")})},resetPostcodeInput:function(){Winkels.removeError();var A=$$("input[name=from]");if(!A||A.length==0){return}A.each(function(B){B.value="Vul uw postcode in"})},showShopWindow:function(F,D,H){var B=D.marker.lat;var C=D.marker.lng;var A=B+","+C;var D=D.content;var G='<h3 class="mapShopBalloonName">'+D.name+"</h3>";G+='<div class="mapShopBalloon"><div class="algemeneInformatie">';G+='<div class="address">';G+="<p>"+D.street+" "+D.number+"</p>";G+="<p>"+D.postalCode+" "+D.city+"</p>";if(D.phoneNumber){G+="<p>Tel: "+D.phoneNumber+"</p>"}G+='<div class"clear" />';G+="</div>";G+='<div class="actions">';G+='<div id="balloonRoutePlannerLink" class="routeButton-visible">';G+='<a class="dr-button dr-button-more" onclick="Winkels.showBalloonRoutePlanner(); return false;"><span class="left"></span><span class="middle"><span>bereken route</span></span><span class="right"></span></a>';G+="</div>";G+='<div id="balloonRoutePlanner" class="balloonRoutePlanner-hidden routeForm-shown morph">';G+='<div class="error hidden">';G+='<div class="arrow"></div><span class="errorText"></span>';G+="</div>";G+='<form method="post" id="customLocation" action="" onsubmit="Winkels.validateAndCalculateRoute(this);return false;">';G+='<input id="fromLocation" type="text" name="from" value="Vul uw postcode in" onfocus="Winkels.removeHint(this, \'Vul uw postcode in\');" onblur="Winkels.recoverHint(this, \'Vul uw postcode in\');" onkeydown="Winkels.removeError();"/>';G+='<input type="hidden" name="name" value="'+D.name+'" />';G+='<input type="hidden" name="to" value="'+A+'" />';G+='<input type="hidden" name="id" value="'+D.id+'" />';G+='<input type="hidden" name="pos" value="{position()}" />';G+='<a class="dr-button dr-button-more" onclick="Winkels.validateAndCalculateRoute(this.parentNode)">';G+='<span class="left"></span>';G+='<span class="middle">';G+="<span>bereken</span>";G+="</span>";G+='<span class="right"></span>';G+="</a>";G+="</form>";G+="</div>";G+="</div>";G+="</div>";if(D.shoptime.length==1&&D.shoptime[0].value==""){}else{G+='<div class="openingstijden">';G+="<h4>Openingstijden</h4>"}for(var E=0;E<D.shoptime.length;E++){if(D.shoptime[E].value!=""){G+='<div class="dag"><div class="dagnaam">'+D.shoptime[E].name;if(D.shoptime[E].isKoopavond=="true"){G+=" (koopavond)"}G+='</div><div class="tijd">'+D.shoptime[E].value+"</div></div>"}}G+="</div></div>";F.openInfoWindowHtml(G);GEvent.addListener(F,"infowindowclose",function(){Winkels.unSelectShops()});Winkels.selectShop(B,C)},showBalloonRoutePlanner:function(){Spif.ClassNameAbstraction.replace($("balloonRoutePlannerLink"),"routeButton-visible","routeButton-hidden");Spif.ClassNameAbstraction.replace($("balloonRoutePlanner"),"balloonRoutePlanner-hidden","balloonRoutePlanner-visible")}};var GoogleRoute={FIRST_PLACEMARK:null,SECOND_PLACEMARK:null,ROUTE_CONTAINER:null,SELECTED_SHOP:null,startOverideData:function(){GoogleRoute.ROUTE_CONTAINER=GoogleRoute.findElByTagAndAttr($("route"),"div.googledir");GoogleRoute.FIRST_PLACEMARK=GoogleRoute.findElByTagAndAttr(GoogleRoute.ROUTE_CONTAINER,"div[jsselect=Placemark]",1);GoogleRoute.SECOND_PLACEMARK=GoogleRoute.findElByTagAndAttr(GoogleRoute.ROUTE_CONTAINER,"div[jsselect=Placemark]",2);if(GoogleRoute.ROUTE_CONTAINER!=undefined&&GoogleRoute.FIRST_PLACEMARK!=undefined&&GoogleRoute.SECOND_PLACEMARK!=undefined){$("route").setStyle("display","block");GoogleRoute.disableCopyRight();GoogleRoute.hideElement(GoogleRoute.SECOND_PLACEMARK);GoogleRoute.disableRouteHeader();GoogleRoute.reposRouteDuration();GoogleRoute.createRouteTitle();GoogleRoute.repositionTableContent()}},repositionTableContent:function(){var C=GoogleRoute.findElByTagAndAttr(GoogleRoute.FIRST_PLACEMARK,"table",2);C.set("class","routeTable");var D=C.getElements("tr");var E="";for(var B=0;B<D.length;B++){var A=(B==0||B==D.length-1);if(B==0){E="/images/maps/startlocation.gif"}else{if(B==(D.length-1)){E="/images/maps/endlocation.gif"}else{E=""}}GoogleRoute.repositionTableRow(D[B],A,E)}},repositionTableRow:function(C,A,F){var B=GoogleRoute.findElByTagAndAttr(C,"td");var D=GoogleRoute.findElByTagAndAttr(C,"td",2);var E=GoogleRoute.findElByTagAndAttr(C,"td",3);B.set("class","firstColumn");D.set("class","secondColumn");E.set("class","thirdColumn");var G=new Element("td",{"class":"fourthColumn"});if(A&&F!=""){G.innerHTML="<div style='width: 30px;'><img src='"+F+"'/></div>"}else{G.innerHTML="<div style='width: 30px;'></div>"}C.grab(B);C.grab(E);C.grab(G);C.grab(D)},disableCopyRight:function(){var A=GoogleRoute.ROUTE_CONTAINER.lastChild;GoogleRoute.hideElement(A)},reposRouteDuration:function(){var A=GoogleRoute.findElByTagAndAttr(GoogleRoute.FIRST_PLACEMARK,"div");var B=GoogleRoute.findElByTagAndAttr(A,"div");B.set("class","routeDuration")},createRouteTitle:function(){var A=GoogleRoute.findElByTagAndAttr(GoogleRoute.FIRST_PLACEMARK,"div");var C=GoogleRoute.findElByTagAndAttr(A,"div");var B=new Element("h3",{id:"routeTitle"});B.inject(C.parentNode,"top");B.innerHTML="De route naar D-reizen "+GoogleRoute.SELECTED_SHOP},disableRouteHeader:function(){GoogleRoute.hideElement(GoogleRoute.findElByTagAndAttr(GoogleRoute.ROUTE_CONTAINER,"table"))},findElByTagAndAttr:function(A,B,C){if(C==undefined){return A.getElement(B)}else{return A.getElements(B)[C-1]}},hideElement:function(A){A.style.display="none"}};window.addEvent("load",function(){if(!Maps.isLoaded){Maps.init()}});var Maps={scriptsToExecute:[],isLoaded:null,requestDelay:150,numberOfMarkerRequests:0,geocoder:null,mapsArray:new Array(),staticMapsArray:new Array(),typeNames:new Array(),googleMapsLoaded:false,postponeScript:function(A){Maps.scriptsToExecute.push(A)},init:function(){if(!Maps.googleMapsLoaded){var A=document.createElement("script");A.type="text/javascript";A.src=Settings.GoogleMapsUrl+"&async=2&callback=MapsJsGoogleCallBack";document.body.appendChild(A);Maps.googleMapsLoaded=true;return}Maps.doInit()},doInit:function(){if(!window["CustomOverlay"]){CreateCustomControls();Maps.geocoder=new GClientGeocoder(new GGeocodeCache())}for(var A=0;A<Maps.scriptsToExecute.length;A++){Maps.scriptsToExecute[A]()}Maps.scriptsToExecute=[];this.createTypeNames();for(var A=0;A<this.staticMapsArray.length;A++){gmap=this.staticMapsArray[A];gmap.load()}for(var A=0;A<this.mapsArray.length;A++){gmap=this.mapsArray[A];gmap.load()}this.isLoaded=true},newMap:function(A){return new Map(A)},newStaticMap:function(B,A){return new StaticMap(B,A)},newMarker:function(){return new Marker()},newCustomControl:function(A){return new CustomControl(A)},createTypeNames:function(){this.typeNames["normal"]="G_NORMAL_MAP";this.typeNames["satellite"]="G_SATELLITE_MAP";this.typeNames["hybrid"]="G_HYBRID_MAP";this.typeNames["terrain"]="G_PHYSICAL_MAP";this.typeNames["moon-elevation"]="G_MOON_ELEVATION_MAP";this.typeNames["moon-visible"]="G_MOON_VISIBLE_MAP";this.typeNames["mars-elivation"]="G_MARS_ELEVATION_MAP";this.typeNames["mars-visible"]="G_MARS_VISIBLE_MAP";this.typeNames["mars-infrared"]="G_MARS_INFRARED_MAP";this.typeNames["sky-visible"]="G_SKY_VISIBLE_MAP";this.typeNames["satellite3d"]="G_SATELLITE_3D_MAP";this.typeNames["roadmap"]="G_DEFAULT_MAP_TYPES";this.typeNames["moon"]="G_MOON_MAP_TYPES";this.typeNames["mars"]="G_MARS_MAP_TYPES";this.typeNames["sky"]="G_SKY_MAP_TYPES"},getMapById:function(C){for(var A=0;A<this.mapsArray.length;A++){var B=this.mapsArray[A];if(B.id==C){return B}}for(var A=0;A<this.staticMapsArray.length;A++){var B=this.staticMapsArray[A];if(B.id==C){return B}}return false},addMapToArray:function(A){var B=this.getMapById(A.id);if(!B){A.posInArray=this.mapsArray.length;this.mapsArray.push(A)}else{A.posInArray=B.posInArray;this.mapsArray.splice(B.posInArray,1,A)}},addStaticMapToArray:function(A){var B=this.getMapById(A.id);if(!B){A.posInArray=this.staticMapsArray.length;this.staticMapsArray.push(A)}else{A.posInArray=B.posInArray;this.staticMapsArray.splice(B.posInArray,1,A)}},areBoundsValid:function(C){if(C&&C!=""){C=C.replace(/[\(\)]/g,"");var B=C.split(",");if(B.length!=4){return false}for(var A=0;A<B.length;A++){if(!Number(B[A])){return false}}return B}else{return false}},getTypeName:function(A){if(this.typeNames[A]){return this.typeNames[A]}else{return null}},getAnchor:function(A){var B;switch(A){case"top-right":B=G_ANCHOR_TOP_RIGHT;break;case"top-left":B=G_ANCHOR_TOP_LEFT;break;case"bottom-right":B=G_ANCHOR_BOTTOM_RIGHT;break;case"bottom-left":B=G_ANCHOR_BOTTOM_LEFT;break;default:B=G_ANCHOR_TOP_RIGHT}return B},getRouteStartingPoint:function(C){if(!C.Placemark||C.Placemark.length<1){return false}var D=C.Placemark;D.sort(function(F,E){return F.AddressDetails.Accuracy-E.AddressDetails.Accuracy});var A=D.filter(function(E){if(typeof E.AddressDetails=="undefined"||typeof E.AddressDetails.Country=="undefined"||typeof E.AddressDetails.Country.CountryNameCode=="undefined"){return false}else{return E.AddressDetails.Country.CountryNameCode=="NL"}});var B=(A.length>0)?A[0]:D[0];return B.Point.coordinates[1]+","+B.Point.coordinates[0]}};function Map(A){this.id=A;this.div=document.getElementById(A);this.controls=new Array();this.events=new Array();this.markers=new Array();this.icons=new Array()}Map.prototype={id:null,gmap:null,div:null,posInArray:null,controls:null,events:null,markers:null,icons:null,originalPosition:null,query:null,lng:null,lat:null,bounds:null,type:null,zoomlevel:5,customArgs:{},hasInit:false,route:null,load:function(){if(GBrowserIsCompatible()){if(this.hasInit==true){return}var A=this.div.nextSibling;var D=this.div.parentNode;D.removeChild(this.div);this.div.style.marginLeft="-1500em";document.body.appendChild(this.div);this.gmap=new GMap2(this.div);if(this.type!=null){this.gmap.setMapType(window[Maps.getTypeName(this.type)])}var B=this;var C=function(){var H=B;var F=D;var G=A;var I=H.div;I.style.marginLeft="";F.insertBefore(I,G);H.hasInit=true};this.setCenter(C);this.loadIcons();this.loadControls();this.loadEvents();this.loadRoute();var E=(Maps.staticMapsArray.length+this.posInArray)*3000;setTimeout(function(){B.loadMarkers()},E);if(!this.fixDisplayNoneBugAfterCallback){C()}}},addControlToArray:function(A){this.controls.push(A)},addEventToArray:function(A,C,B){this.events.push(new Array(A,C,B))},addIconToArray:function(A){this.icons.push(A)},addMarkerToArray:function(A){A.posInArray=this.markers.length;this.markers.push(A)},addRoute:function(D,C,B){var A={from:D,to:C,directionsContainer:B};this.route=A},loadRoute:function(){if(this.route!=null){this.drawRoute(this.route.to,this.route.from,this.route.directionsContainer)}},loadControls:function(){for(var A=0;A<this.controls.length;A++){var E=this.controls[A];if(typeof(E)=="object"){if(E.args.position){var D=Maps.getAnchor(E.args.position.anchor);var F=E.args.position.padding.replace(" ","");paddingArr=F.split(",");var B=paddingArr[0];var C=paddingArr[1];this.gmap.addControl(E,new GControlPosition(D,new GSize(1*B,1*C)))}else{this.gmap.addControl(E)}}else{this.gmap.addControl(new window[E])}}},loadEvents:function(){for(var A=0;A<this.events.length;A++){var D=this.events[A][0];var E=this.events[A][1];var B=this.events[A][2];var C=this.gmap;this.addListener(C,D,E,B)}},addListener:function(A,C,D,B){GEvent.addListener(A,C,function(){var F=window;var G=D.split(".");for(var E=0;E<G.length;E++){F=F[G[E]]}F(A,arguments,B)})},loadIcons:function(){for(var B=0;B<this.icons.length;B++){var F=this.icons[B];var D=(F.offsetLeft)?F.offsetLeft:0;var E=(F.offsetTop)?F.offsetTop:0;var A=new GIcon();A.image=F.src;A.iconSize=new GSize(1*F.width,1*F.height);A.iconAnchor=new GPoint(1*F.width/2-1*D,1*F.height/2-1*E);A.infoWindowAnchor=new GPoint(1*F.width/2-1*D,1*F.height/2-1*E);A.shadow=F.shadow;var C=new RegExp(/\d+/g);if(F.imageMap&&F.imageMap.search(C)){var G=F.imageMap;G=F.imageMap.match(C);for(var B=0;B<G.length;B++){G[B]=G[B]*1}A.imageMap=[0,0,0,7,7,7,7,0]}F.gIcon=A}},loadMarkers:function(D){this.callbacks=0;for(var E=0;E<this.markers.length;E++){marker=this.markers[E];if(marker.lng!=null&&marker.lat!=null){var G=new GLatLng(marker.lat,marker.lng);this.setMarker(G,marker);continue}else{if(marker.bounds!=null){var B=Maps.areBoundsValid(marker.bounds);if(B!=false){var H=new GLatLng(B[0],B[1]);var F=new GLatLng(B[2],B[3]);var C=new GLatLngBounds(H,F);var I=C.getCenter();this.setMarker(I,marker);continue}}}if(marker.query!=null){var A=true;this.callbacks++;this.getMarkerLatLng(marker,D)}}if(D&&!A){D()}},getMarkerLatLng:function(B,C){var D=this.posInArray;var A=Maps.mapsArray[D];Maps.numberOfMarkerRequests++;window.setTimeout(function(){Maps.geocoder.getLatLng(B.query,function(E){A.handleMarkerLatLng(E,A,B,C)})},Maps.requestDelay*Maps.numberOfMarkerRequests)},handleMarkerLatLng:function(B,A,C,D){A.setMarker(B,A.markers[C.posInArray]);A.callbacks--;if(D&&A.callbacks==0){D()}},setCenter:function(E){var B=Maps.areBoundsValid(this.bounds);if(B!=false){var A=new GLatLng(B[0],B[1]);var F=new GLatLng(B[2],B[3]);var C=new GLatLngBounds(A,F);var G=C.getCenter();this.zoomlevel=this.gmap.getBoundsZoomLevel(C);this.setCenterFromLatLng(G)}else{if(this.lng&&this.lat&&this.lng!=""&&this.lat!=""){var D=new GLatLng(this.lat,this.lng);this.setCenterFromLatLng(D)}else{if(this.query){this.setCenterFromQuery(this.query,E)}}}},setCenterFromQuery:function(C,B){this.fixDisplayNoneBugAfterCallback=true;var A=this.posInArray;Maps.geocoder.getLatLng(C,function(D){Maps.mapsArray[A].setCenterFromLatLng(D);if(B){B()}})},setCenterFromLatLng:function(A){if(!A){return}this.lat=A.lat();this.lng=A.lng();if(!this.originalPosition){this.originalPosition=A}this.gmap.checkResize();this.gmap.setCenter(A,1*this.zoomlevel)},setMarker:function(A,C){if(A!=null){C.lat=A.lat();C.lng=A.lng();if(C.icon&&C.icon!=""){var D=this.getIconByName(C.icon);C.gmarker=new GMarker(A,D.gIcon)}else{C.gmarker=new GMarker(A)}C.loadEvents();try{this.gmap.addOverlay(C.gmarker)}catch(B){}}},doesMarkerExistsOnLatLng:function(D,B){if(!D||!B){return}for(var A=0;A<this.markers.length;A++){var C=this.markers[A];if(C.isLocationEqual(D,B)){return C}}return null},removeMarkers:function(){for(var A=0;A<this.markers.length;A++){this.markers[A].gmarker.remove()}this.markers=new Array()},getIconByName:function(B){for(var A=0;A<this.icons.length;A++){var C=this.icons[A];if(C.name==B){return C}}return null},getBoundsFromAllMarkers:function(){if(this.markers.length==0){return}var A=new GLatLng(this.markers[0].lat,this.markers[0].lng);var C=new GLatLng(this.markers[0].lat,this.markers[0].lng);var D=new GLatLngBounds(A,C);for(var B=0;B<this.markers.length;B++){var E=this.markers[B];var F=new GLatLng(E.lat,E.lng);D.extend(F)}return D},drawRoute:function(A,B,C){return}};function StaticMap(B,A){this.img=document.getElementById(B);this.key=A;this.markers=new Array();this.icons=new Array()}StaticMap.prototype={img:null,width:null,height:null,queryString:null,key:null,posInArray:null,markers:null,icons:null,query:null,lng:null,lat:null,bounds:null,type:null,zoomlevel:5,hasInit:false,load:function(){if(this.hasInit){return}this.setCenter();var A=this;var B=this.posInArray*3000;setTimeout(function(){A.loadMarkers();A.drawMapAfterCallback(A)},B)},drawMap:function(){this.img.src=this.queryString},buildQueryString:function(){var B="http://maps.google.com/staticmap?";B+="center="+this.lat+","+this.lng;B+="&zoom="+this.zoomlevel;B+="&size="+this.width+"x"+this.height;if(this.type){B+="&maptype="+this.type}if(this.markers.length>0){B+="&markers=";var D=false;for(var A=0;A<this.markers.length;A++){var C=this.markers[A];var E=this.getIconByName(C.icon);if(!C||!C.lat||!C.lng){continue}if(D){B+="|"}B+=C.lat+","+C.lng;if(E&&(E.size||E.color||E.character)){B+=",";if(E.size){B+=E.size}if(E.color){B+=E.color}if(E.character){B+=E.character}}D=true}}B+="&key="+this.key;this.queryString=B},getIconByName:function(B){for(var A=0;A<this.icons.length;A++){var C=this.icons[A];if(C.name==B){return C}}return null},addMarkerToArray:function(A){A.posInArray=this.markers.length;this.markers.push(A)},addIconToArray:function(A){this.icons.push(A)},loadMarkers:function(){if(!this.callbacks){this.callbacks=0}for(var B=0;B<this.markers.length;B++){marker=this.markers[B];if(marker.lng!=null&&marker.lat!=null){var E=new GLatLng(marker.lat,marker.lng);this.setMarker(E,marker);continue}else{if(marker.bounds!=null){var C=Maps.areBoundsValid(marker.bounds);if(C!=false){var A=new GLatLng(C[0],C[1]);var F=new GLatLng(C[2],C[3]);var D=new GLatLngBounds(A,F);var G=D.getCenter();this.setMarker(G,marker);continue}}}if(marker.query!=null){this.callbacks++;this.getMarkerLatLng(marker)}}},getMarkerLatLng:function(B){var C=this.posInArray;var A=Maps.staticMapsArray[C];Maps.numberOfMarkerRequests++;window.setTimeout(function(){Maps.geocoder.getLatLng(B.query,function(D){A.handleMarkerLatLng(D,A,B);A.callbacks--})},Maps.requestDelay*Maps.numberOfMarkerRequests)},handleMarkerLatLng:function(B,A,C){A.setMarker(B,A.markers[C.posInArray])},setMarker:function(A,B){if(A!=null){B.lat=A.lat();B.lng=A.lng()}},setCenter:function(){var B=Maps.areBoundsValid(this.bounds);if(B!=false){var A=new GLatLng(B[0],B[1]);var E=new GLatLng(B[2],B[3]);var C=new GLatLngBounds(A,E);var F=C.getCenter();this.setCenterFromLatLng(F)}else{if(this.lng&&this.lat&&this.lng!=""&&this.lat!=""){var D=new GLatLng(this.lat,this.lng);this.setCenterFromLatLng(D)}else{if(this.query){if(!this.callbacks){this.callbacks=0}this.setCenterFromQuery(this.query)}}}},setCenterFromQuery:function(B){var A=this.posInArray;this.callbacks++;Maps.geocoder.getLatLng(B,function(C){Maps.staticMapsArray[A].setCenterFromLatLng(C);Maps.staticMapsArray[A].callbacks--})},setCenterFromLatLng:function(A){if(!A){return}if(!this.originalPosition){this.originalPosition=A}this.lat=A.lat();this.lng=A.lng()},drawMapAfterCallback:function(A){if(A.callbacks&&A.callbacks>0){setTimeout(function(){A.drawMapAfterCallback(A)},50)}else{A.buildQueryString();A.drawMap();A.hasInit=true}}};function Icon(){}Icon.prototype={gIcon:null,src:null,offsetLeft:null,offsetTop:null,shadow:null,width:null,height:null,name:null,color:null,character:null,imageMap:null,size:null};function Marker(){this.events=new Array()}Marker.prototype={gmarker:null,posInArray:null,events:null,icon:null,query:null,lat:null,lng:null,bounds:null,addEvent:function(A,C,B){this.events.push(new Array(A,C,B))},loadEvents:function(){for(var B=0;B<this.events.length;B++){var D=this.gmarker;var C=this.events[B][0];var E=this.events[B][1];var A=this.events[B][2];this.addListener(D,C,E,A)}},addListener:function(C,B,D,A){GEvent.addListener(C,B,function(){var F=window;var G=D.split(".");for(var E=0;E<G.length;E++){F=F[G[E]]}F(C,A,arguments)})},isLocationEqual:function(B,A){if(this.lng==A&&this.lat==B){return true}else{return false}}};function CreateCustomControls(){window.CustomControl=function(A){this.args=A};CustomControl.prototype=new GControl();CustomControl.prototype.args=null;CustomControl.prototype.position=null;CustomControl.prototype.initialize=function(B){var D=document.createElement("div");D.className=this.args.className;D.id=this.args.id;var C=this.args.eventName;var E=this.args.functionName;GEvent.addDomListener(D,C,function(){var G=window;var H=E.split(".");for(var F=0;F<H.length;F++){G=G[H[F]]}G(B,arguments)});var A=this.args.html;D.innerHTML=A.replace(/#dblq;/g,'"');B.getContainer().appendChild(D);return D};CustomControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(7,7))};window.CustomOverlay=function(A){this.div=A};CustomOverlay.prototype=new GOverlay();CustomOverlay.prototype.initialize=function(B,A){if(!this.gmap){this.gmap=B}if(!this.div){this.div=document.createElement("div")}A=(A)?A:G_MAP_FLOAT_PANE;this.gmap.getPane(A).appendChild(this.div)};CustomOverlay.prototype.remove=function(){this.div.parentNode.removeChild(this.div)};CustomOverlay.prototype.copy=function(){return new CustomOverlay(this.gmap,this.div,G_MAP_FLOAT_PANE)};CustomOverlay.prototype.redraw=function(A){};CustomOverlay.prototype.drawFromLatLng=function(D,B,C){var A=this.gmap.fromLatLngToDivPixel(D);this.draw(A.x,A.y,B,C)},CustomOverlay.prototype.draw=function(C,D,A,B){A=(A)?A:0;B=(B)?B:0;A=this.div.clientWidth+A;B=this.div.clientHeight+B;this.div.style.left=(C-A)+"px";this.div.style.top=(D-B)+"px"}}function MapsJsGoogleCallBack(){Maps.doInit()}var DMaps={lastRightClickLngLat:null,showCurrentValues:function(G){var I=document.getElementById("mapForm");var D=G.getBounds();var F=D.getNorthEast();var C=D.getSouthWest();var E=F.lat();var B=F.lng();var J=C.lat();var A=C.lng();var H="("+J+","+A+"),("+E+","+B+")";I.coordinaten.value=H},showBounds:function(A,B){DMaps.showCurrentValues(A)},refreshBounds:function(B){var A=Maps.getMapById(B);DMaps.showCurrentValues(A.gmap)},showInformationWindow:function(C,D,B){DMaps.hideName();var A='<div class="markerName">'+D.name+"</div>";A+='<div><a class="dr-link" href="'+D.urlInfo+'" >Aanbod in '+D.name+"</a></div>";C.openInfoWindowHtml(A)},showName:function(I,C,K){var J=Maps.getMapById(C.mapid);var G=$("map-overlay-ligging");for(var D=0;D<G.childNodes.length;D++){var F=G.childNodes[D];if(F.nodeName=="#text"){continue}if(F.className=="middle"){var E=document.createElement("span");E.style.whiteSpace="nowrap";E.innerHTML=C.name;F.innerHTML="";F.appendChild(E);break}}if(Spif.ClassNameAbstraction.contains(G,"hidden")){Spif.ClassNameAbstraction.replace(G,"hidden","shown")}var B=new CustomOverlay(G);J.gmap.addOverlay(B);var A=0;var H=0;if(C.type=="country"){A=-9;H=38}else{if(C.type=="region"){A=-17;H=20}else{if(C.type=="city"){A=-15;H=8}}}B.drawFromLatLng(I.getLatLng(),A,H)},hideName:function(C,D,B){var A=$("map-overlay-ligging");if(Spif.ClassNameAbstraction.contains(A,"shown")){Spif.ClassNameAbstraction.replace(A,"shown","hidden")}},hideSmallOverlay:function(){var A=document.getElementById("map-overlay-small");if(Spif.ClassNameAbstraction.contains(A,"shown")){Spif.ClassNameAbstraction.replace(A,"shown","hidden")}},moveToPlace:function(C,B){var A=Maps.getMapById(C);A.setCenterFromQuery(B);this.showCurrentValues(A.gmap)},moveToMarker:function(E,B,D,G,F){var H=Maps.getMapById(E);H.bounds=null;H.lat=null;H.lng=null;var C=B+", "+D;H.query=C;var A=new Marker();A.icon=G;Maps.geocoder.getLatLng(C,function(J){if(J!=null){var I=H.doesMarkerExistsOnLatLng(J.lat(),J.lng());if(!I){A.addEvent("click","DMaps.showInformationWindow",{name:B,urlInfo:F});A.addEvent("mouseover","DMaps.showName",{name:B,mapid:E,type:G});A.addEvent("mouseout","DMaps.hideName");H.setMarker(J,A);H.addMarkerToArray(A)}else{A=I}H.gmap.panTo(J);DMaps.showInformationWindow(A.gmarker,{name:B,urlInfo:F},null)}})},returnToCountry:function(D,E,C){var B=Maps.getMapById(E.mapid);B.gmap.returnToSavedPosition();var A='<div class="markerName">'+E.name+"</div>";D.openInfoWindowHtml(A)},resetToCenter:function(B,C){B.returnToSavedPosition();var A=document.getElementById("customButton");if(!Spif.ClassNameAbstraction.contains(A,"hidden")){Spif.ClassNameAbstraction.replace(A,"visible","hidden")}},showContextMenu:function(C,G,E){var A=G[0];DMaps.lastRightClickLngLat=C.fromContainerPixelToLatLng(new GPoint(A.x,A.y));var F=Maps.getMapById(E.mapid);var D=$("context-menu-ligging");var B=C.getZoom();if(Spif.ClassNameAbstraction.contains(D,"outOnly")){Spif.ClassNameAbstraction.replace(D,"outOnly","inAndOut")}else{if(Spif.ClassNameAbstraction.contains(D,"inOnly")){Spif.ClassNameAbstraction.replace(D,"inOnly","inAndOut")}}if(B==15&&Spif.ClassNameAbstraction.contains(D,"inAndOut")){Spif.ClassNameAbstraction.replace(D,"inAndOut","outOnly")}else{if(B==0&&Spif.ClassNameAbstraction.contains(D,"inAndOut")){Spif.ClassNameAbstraction.replace(D,"inAndOut","inOnly")}}D.style.left=A.x+"px";D.style.top=A.y+"px";if(Spif.ClassNameAbstraction.contains(D,"hidden")){Spif.ClassNameAbstraction.replace(D,"hidden","visible")}},hideContextMenu:function(){var A=$("context-menu-ligging");if(Spif.ClassNameAbstraction.contains(A,"visible")){Spif.ClassNameAbstraction.replace(A,"visible","hidden")}},zoomIn:function(C){var B=Maps.getMapById(C);if(DMaps.lastRightClickLngLat){var A=B.gmap.getZoom();if(A==15){return}A++;B.gmap.setCenter(this.lastRightClickLngLat,A)}},zoomOut:function(C){var B=Maps.getMapById(C);if(DMaps.lastRightClickLngLat){var A=B.gmap.getZoom();if(A==0){return}A--;B.gmap.setCenter(this.lastRightClickLngLat,A)}},drawMarker:function(B,F,C){try{var D=new GMarker(new GLatLng(F[1].lat(),F[1].lng()));B.clearOverlays();B.addOverlay(D);var A=$("mapForm").getElement("input[name=marker-coor]");A.value=F[1].lat()+","+F[1].lng()}catch(E){}},toggleButton:function(B,E,D){DMaps.hideContextMenu();var A=Maps.getMapById(D.mapid);if(!B){B=A.gmap}var C=document.getElementById("customButton");if(!A.originalPosition||!A.hasInit){return}if(B.getBounds().contains(A.originalPosition)==false){if(!Spif.ClassNameAbstraction.contains(C,"visible")){Spif.ClassNameAbstraction.replace(C,"hidden","visible")}}else{if(!Spif.ClassNameAbstraction.contains(C,"hidden")){Spif.ClassNameAbstraction.replace(C,"visible","hidden")}}}};