$.telefoonboekMaps={pagename:null,showPopup:true,map:null,markerQueue:new Array(),markers:new Array(),displayType:null,StreetView:null,myPano:null,init:function(){if(!GBrowserIsCompatible()){alert('Sorry, je browser is niet geschikt om de kaart te tonen.');}
if($.telefoonboekMaps.displayType=='none'){return}
var mapContainer=document.getElementById('map');if(mapContainer==null){alert('De kaart kon niet gestart worden omdat hij niet gevonden kon worden op deze pagina.');}
this.map=new GMap2(mapContainer);GEvent.addListener(this.map,'load',$.telefoonboekMaps.onMapLoad);this.map.setCenter(new GLatLng(52.132974,5.291226),7);if($('#showstreetview'))
{$('#showstreetview').bind('click',function(){$.telefoonboekMaps.ShowStreetviewBtn();});}
if($('#closestreetview')||$('#closestreetviewup'))
{$('#closestreetview').bind('click',function(){$.telefoonboekMaps.CloseStreetviewBtn();});$('#closestreetviewup').bind('click',function(){$.telefoonboekMaps.CloseStreetviewBtn();});}
var strURL=window.location.toString();var posStreetview=strURL.indexOf("#streetview");if(posStreetview>=0)
{$.telefoonboekMaps.ShowStreetviewBtn();}},onMapLoad:function(){if($.telefoonboekMaps.displayType==null){alert('De kaart kan helaas niet getoond worden op deze pagina');return;}
var mapControl=($.telefoonboekMaps.displayType=='map')?new GLargeMapControl():new GSmallMapControl();$.telefoonboekMaps.map.addControl(mapControl);$.telefoonboekMaps.processQueue();},showStreetView:function()
{var panoClient;var StreetViewLocatie=$.telefoonboekMaps.StreetView;panoClient=new GStreetviewClient();panoClient.getNearestPanorama(StreetViewLocatie,$.telefoonboekMaps.showPanoData);$.telefoonboekMaps.myPano=new GStreetviewPanorama(document.getElementById("mapstreetview"),{features:{userPhotos:false}});$.telefoonboekMaps.myPano.setLocationAndPOV(StreetViewLocatie);GEvent.addListener($.telefoonboekMaps.myPano,"error",$.telefoonboekMaps.handleNoFlash);},showPanoData:function(panoData){if(panoData.code!=200){$("#streetviewfield").hide();$("#streetviewmain").hide();$("#streetviewfieldmain").hide();$("#showstreetview").html('<span class="streetviewnotavailable">Geen Streetview aanwezig</span>');$.telefoonboek.urchinTrackerWrapper('/detailpagina/streetview-nietbeschikbaar');return false;}
else
{nextPanoId=panoData.links[0].panoId;var displayString=[panoData.location.description,].join("");$("#streetviewfield").show();$("#streetviewmain").show();$("#streetviewfieldmain").show();$("#showstreetview").hide();$("#closestreetviewup").show();}
$.telefoonboekMaps.myPano.setLocationAndPOV(panoData.location.latlng);$.telefoonboek.urchinTrackerWrapper('/detailpagina/streetview-ingeladen');return true;},handleNoFlash:function(errorCode){if(errorCode==603){alert('Flash is niet ondersteund in uw browser');return;}},next:function(){panoClient.getPanoramaById(nextPanoId,showPanoData);},CloseStreetviewBtn:function(){$("#showstreetview").show();$("#streetviewfield").hide();$("#streetviewmain").hide();$("#streetviewfieldmain").hide();$("#closestreetviewup").hide();},ShowStreetviewBtn:function(){$.telefoonboekMaps.showStreetView();$("#streetviewfield").show();$("#streetviewmain").show();$("#streetviewfieldmain").show();},processQueue:function(){var markerCount=$.telefoonboekMaps.markerQueue.length;if(markerCount==0){return;}
var minLatitude=90;var maxLatitude=0;var minLongitude=180;var maxLongitude=-180;var zoomLevel=null;for(var i=0;i<markerCount;++i){var marker=$.telefoonboekMaps.markerQueue.pop();$.telefoonboekMaps.markers.push(marker);var markerData=marker.data;$.telefoonboekMaps.map.addOverlay(markerData);var markerPoint=markerData.getLatLng();minLatitude=Math.min(minLatitude,markerPoint.lat());maxLatitude=Math.max(maxLatitude,markerPoint.lat());minLongitude=Math.min(minLongitude,markerPoint.lng());maxLongitude=Math.max(maxLongitude,markerPoint.lng());if(markerCount==1)
{marker.startOpened=true;}
if(marker.startOpened&&marker.html!=null){GEvent.trigger(markerData,'click');}
if(marker.zoomLevel!=null){if(zoomLevel==null||marker.zoomLevel<zoomLevel)
zoomLevel=marker.zoomLevel;}}
$.telefoonboekMaps.markers.reverse();$.telefoonboekMaps.updateCenterAndZoomLevel(minLatitude,maxLatitude,minLongitude,maxLongitude,zoomLevel);},updateCenterAndZoomLevel:function(minLatitude,maxLatitude,minLongitude,maxLongitude,zoomLevel){var centerPoint=new GLatLng((minLatitude+maxLatitude)/2,(minLongitude+maxLongitude)/2);var minPoint=new GLatLng(minLatitude,minLongitude);var maxPoint=new GLatLng(maxLatitude,maxLongitude);if(zoomLevel==null)
zoomLevel=$.telefoonboekMaps.map.getBoundsZoomLevel(new GLatLngBounds(minPoint,maxPoint));$.telefoonboekMaps.map.setZoom(zoomLevel);$.telefoonboekMaps.map.panTo(centerPoint);},addMarker:function(latitude,longitude,html,url,startOpened,zoomLevel,isCompany){if(html==undefined){html=null;}
if(url==undefined){url=null;}
if(startOpened==undefined){startOpened=false;}
if(zoomLevel==undefined){zoomLevel=null;}
if(isCompany==undefined){isCompany=true;}
var markerData=$.telefoonboekMaps.createMarker(new GLatLng(latitude,longitude),html,url,isCompany);var marker={'data':markerData,'html':html,'url':url,'startOpened':startOpened,'zoomLevel':zoomLevel}
$.telefoonboekMaps.StreetView=new GLatLng(latitude,longitude);$.telefoonboekMaps.markerQueue.push(marker);},createIcon:function(isCompany){var image=isCompany?'/images/map_pin.png':'/images/map_pin_dtg.png';var icon=new GIcon();icon.image=image;icon.shadow='/images/map_pin_schaduw.png';icon.iconSize=new GSize(18,24);icon.shadowSize=new GSize(27,20);icon.iconAnchor=new GPoint(9,20);icon.infoWindowAnchor=new GPoint(0,0);return icon;},createMarker:function(point,html,url,isCompany){var icon=$.telefoonboekMaps.createIcon(isCompany);var marker=new GMarker(point,icon);if(html!=null){GEvent.addListener(marker,'click',function(){var zoomLevel;if(marker.zoomLevel!=null){if(zoomLevel==null||marker.zoomLevel<zoomLevel)
zoomLevel=marker.zoomLevel;}
$.telefoonboekMaps.map.openInfoWindowHtml(point,html);$.telefoonboekMaps.map.setCenter(point,zoomLevel);});}
else if(url!=null){GEvent.addListener(marker,'click',function(){window.location=url;});}
return marker;},showMarkerInfo:function(index){if(index>=$.telefoonboekMaps.markers.length){return;}
var marker=$.telefoonboekMaps.markers[index];if(marker.html!=null){GEvent.trigger(marker.data,'click');}}};$(document).ready(function(){$.telefoonboekMaps.init();});