var km=false;var loads=new Array();var clientGeocoder;var routeKaart;var gezochteOverlay=false;var initialZoom=10;var zoomen=false;var bewegenSchuif=false;var slideStart=100;var eigenRoutePunten=new Array();var eigenRouteLijnen=new Array();var eigenRouteAfstand=0;var eigenRouteMarkers=new Array();var eigenRouteKmMarkers=new Array();var vestigingen=new Array();var vestigingIcon;var markerDragIndex=false;var editMode=true;var kmIcon;var puntIcon;var loadVestigingen=true;function load(){if(GBrowserIsCompatible()){puntIcon=new GIcon();puntIcon.iconSize=new GSize(9,9);puntIcon.iconAnchor=new GPoint(4,4);puntIcon.image="/images/routes/dot.png";kmIcon=new GIcon();kmIcon.iconSize=new GSize(22,17);kmIcon.iconAnchor=new GPoint(11,17);kmIcon.image="/images/routes/kilometerpaaltje.png";vestigingIcon=new GIcon();vestigingIcon.iconSize=new GSize(21,21);vestigingIcon.image="/images/routes/maps_dot.png";clientGeocoder=new GClientGeocoder();routeKaart=new GMap2(document.getElementById("routeKaart"));routeKaart.setCenter(centrum,initialZoom);routeKaart.setUIToDefault();GEvent.addListener(routeKaart,'click',function(huidigeMarker,huidigPunt){toevoegenPunt(huidigeMarker,huidigPunt);});routeKaart.addControl(new GOverviewMapControl());routeKaart.addControl(new GScaleControl());routeKaart.enableContinuousZoom();zetLengteGraad(centrum);zetBreedteGraad(centrum);GEvent.addListener(routeKaart,"onresize",function(){routeKaart.checkResize();});GEvent.addListener(routeKaart,"mousemove",function(punt){zetLengteGraad(punt);zetBreedteGraad(punt);});GEvent.addDomListener(document.getElementById('routeKaart'),"mousewheel",function(actie){zoomIE(actie);});GEvent.addDomListener(document.getElementById('routeKaart'),"DOMMouseScroll",function(actie){zoomFF(actie);});if(loadVestigingen){xajax_loadVestigingen();}
$('h1').scrollTo(0);}}
window.onload=myLoads;loads[loads.length]='load()';loads[loads.length]='initSizeDivs()';window.onunload=GUnload;function myLoads(){var i;for(i=0;i<loads.length;i++){eval(loads[i]);}}
function zetLengteGraad(punt){document.getElementById('lengteGraad').innerHTML=Math.round(punt.lng()*10000)/10000;}
function zetBreedteGraad(punt){document.getElementById('breedteGraad').innerHTML=Math.round(punt.lat()*10000)/10000;}
function toonStart(){var adres='';if(document.getElementById('straat').value!=''){adres=document.getElementById('straat').value+', ';initialZoom=15;}else{initialZoom=12;}
if(document.getElementById('plaats').value!=''){adres=adres+document.getElementById('plaats').value+', ';}
if(document.getElementById('land').value!=''){adres=adres+document.getElementById('land').value+', ';}
clientGeocoder.getLocations(adres,tekenStart);}
function tekenStart(resultaat){if(resultaat.Status.code==200){var adres=resultaat.Placemark[0];var gezochtPunt=new GLatLng(adres.Point.coordinates[1],adres.Point.coordinates[0]);centrum=gezochtPunt;routeKaart.setCenter(gezochtPunt,initialZoom);}else{errorHandler.show('Het adres wat je invoerde kan niet worden gevonden.',$('#routeKaart'));}}
function zoominKnop(){routeKaart.zoomIn();initialZoom=routeKaart.getZoom();}
function zoomuitKnop(){if(routeKaart.getZoom()-1>6){routeKaart.zoomOut();initialZoom=routeKaart.getZoom();}}
function zoomIE(actie){if(actie.wheelDelta>0){routeKaart.zoomIn();}else if(actie.wheelDelta<0){if(routeKaart.getZoom()-1>6){routeKaart.zoomOut();}}
initialZoom=routeKaart.getZoom();}
function zoomFF(actie){if(actie.detail>0){if(routeKaart.getZoom()-1>6){routeKaart.zoomOut();}}else if(actie.detail<0){routeKaart.zoomIn();}
initialZoom=routeKaart.getZoom();}
function startZoom(event){if(!zoomen){if(window.event){slideStart=window.event.clientY;}else{slideStart=event.clientY;}
zoomen=true;}else{return false;}}
function stopZoom(){zoomen=false;}
function wissenLaatstePunt(){if(eigenRouteMarkers.length>0){if(eigenRouteMarkers.length>1){routeKaart.removeOverlay(eigenRouteLijnen[eigenRouteLijnen.length-1]);eigenRouteLijnen.pop();}
routeKaart.removeOverlay(eigenRouteMarkers[eigenRouteMarkers.length-1]);eigenRoutePunten.pop();eigenRouteMarkers.pop();tekenKilometerMarkers();berekenAfstand();}else{errorHandler.show('Je hebt geen punten geplaatst op de kaart.',$('#routeKaart'));}}
function geefMarkerIndex(marker){var found=false;for(i=0;i<eigenRouteMarkers.length&&!found;i++){if(eigenRouteMarkers[i]==marker){markerDragIndex=i;found=true;}}}
function wijzigMarkerInRoute(marker){eigenRoutePunten[markerDragIndex]=marker.getPoint();eigenRouteMarkers[markerDragIndex]=marker;opnieuwTekenen();berekenAfstand();}
function opnieuwTekenen(){var huidigePunten=new Array();if(markerDragIndex==0){huidigePunten[0]=eigenRoutePunten[markerDragIndex];huidigePunten[1]=eigenRoutePunten[markerDragIndex+1];if(eigenRouteLijnen[0]!=undefined){var lijn=new GPolyline(huidigePunten,"#348cad",4,0.8);routeKaart.removeOverlay(eigenRouteLijnen[0]);eigenRouteLijnen[0]=lijn;routeKaart.addOverlay(lijn);}}else{if(markerDragIndex>0){huidigePunten[0]=eigenRoutePunten[markerDragIndex-1];huidigePunten[1]=eigenRoutePunten[markerDragIndex];var lijn=new GPolyline(huidigePunten,"#348cad",4,0.8);routeKaart.removeOverlay(eigenRouteLijnen[markerDragIndex-1]);eigenRouteLijnen[markerDragIndex-1]=lijn;routeKaart.addOverlay(lijn);}
if(markerDragIndex+1<eigenRoutePunten.length){huidigePunten[0]=eigenRoutePunten[markerDragIndex];huidigePunten[1]=eigenRoutePunten[markerDragIndex+1];var lijn=new GPolyline(huidigePunten,"#348cad",4,0.8);routeKaart.removeOverlay(eigenRouteLijnen[markerDragIndex]);eigenRouteLijnen[markerDragIndex]=lijn;routeKaart.addOverlay(lijn);}}
tekenKilometerMarkers();}
function toevoegenPunt(huidigeMarker,huidigPunt){if(editMode){if(initialZoom<10){errorHandler.show('Je dient verder in te zoomen om een punt aan de route te kunnen toevoegen.',$('#routeKaart'));}else{if(!huidigeMarker){var nieuweMarker=new GMarker(huidigPunt,{icon:puntIcon,draggable:true,bouncy:false});GEvent.addListener(nieuweMarker,"dragstart",function(){geefMarkerIndex(nieuweMarker);});GEvent.addListener(nieuweMarker,"dragend",function(){wijzigMarkerInRoute(nieuweMarker);});routeKaart.addOverlay(nieuweMarker);eigenRoutePunten.push(huidigPunt);eigenRouteMarkers.push(nieuweMarker);if(eigenRoutePunten.length>1){var huidigePunten=new Array();huidigePunten[0]=eigenRoutePunten[eigenRoutePunten.length-1];huidigePunten[1]=eigenRoutePunten[eigenRoutePunten.length-2];var lijn=new GPolyline(huidigePunten,"#348cad",4,0.8);eigenRouteLijnen[eigenRouteLijnen.length]=lijn;routeKaart.addOverlay(lijn);}
berekenAfstand();}}}else if(!huidigeMarker){}
tekenKilometerMarkers();}
function clearMap(){editMode=true;while(eigenRouteMarkers.length>0){routeKaart.removeOverlay(eigenRouteMarkers[eigenRouteMarkers.length-1]);eigenRoutePunten.pop();eigenRouteMarkers.pop();routeKaart.removeOverlay(eigenRouteLijnen[eigenRouteLijnen.length-1]);eigenRouteLijnen.pop();}
document.getElementById('afstand').innerHTML=0+" km";if(document.getElementById('routeAfstand')!=undefined){document.getElementById('routeAfstand').value=0;}
routeKaart.clearOverlays();}
function clearForm(){if(document.getElementById('link')!=undefined){document.getElementById('link').innerHTML='';}
if(document.getElementById('naam')!=undefined){document.getElementById('naam').value='';}
if(document.getElementById('routePunten')!=undefined){document.getElementById('routePunten').value='';}
if(document.getElementById('routeID')!=undefined){document.getElementById('routeID').value='';}
if(document.getElementById('tijdUur')!=undefined){document.getElementById('tijdUur').value='';}
if(document.getElementById('tijdMinuten')!=undefined){document.getElementById('tijdMinuten').value='';}
if(document.getElementById('tijdSeconden')!=undefined){document.getElementById('tijdSeconden').value='';}
if(document.getElementById('routeID')!=undefined){document.getElementById('routeID').value='';}
if(document.getElementById('routeAfstand')!=undefined){document.getElementById('routeAfstand').value=0;}
if(document.getElementById('routeSportType')!=undefined){document.getElementById('routeSportType').selectedIndex=0;}
if(document.getElementById('routeKm')!=undefined){document.getElementById('routeKm').selectedIndex=0;}
if(document.getElementById('omschrijving')!=undefined){document.getElementById('omschrijving').value='';}
if(document.getElementById('ondergrond')!=undefined){document.getElementById('ondergrond').selectedIndex=0;}
if(document.getElementById('publiek')!=undefined){document.getElementById('publiek').selectedIndex=0;}
if(document.getElementById('datumDag')!=undefined){document.getElementById('datumDag').selectedIndex=0;}
if(document.getElementById('datumMaand')!=undefined){document.getElementById('datumMaand').selectedIndex=0;}
if(document.getElementById('datumJaar')!=undefined){document.getElementById('datumJaar').selectedIndex=0;}
km=false;}
function tekenGeladenRoute(dragMogelijk){editMode=dragMogelijk;var punten=document.getElementById('routePunten').value.split(";");for(i=0;i<punten.length-1;i++){var punt=punten[i].split(",");eigenRoutePunten[eigenRoutePunten.length]=new GLatLng(punt[0],punt[1]);}
tekenPunt(0,dragMogelijk);berekenAfstand();}
function tekenPunt(i,dragMogelijk){if(i<eigenRoutePunten.length){var nieuweMarker=new GMarker(eigenRoutePunten[i],{icon:puntIcon,draggable:dragMogelijk,bouncy:false});GEvent.addListener(nieuweMarker,"dragstart",function(){geefMarkerIndex(nieuweMarker);});GEvent.addListener(nieuweMarker,"dragend",function(){wijzigMarkerInRoute(nieuweMarker);});routeKaart.addOverlay(nieuweMarker);eigenRouteMarkers.push(nieuweMarker);if(i>0){huidigePunten=new Array();huidigePunten[0]=eigenRoutePunten[i-1];huidigePunten[1]=eigenRoutePunten[i];var lijn=new GPolyline(huidigePunten,"#348cad",4,0.8);eigenRouteLijnen.push(lijn);routeKaart.addOverlay(lijn);}
routeKaart.panTo(eigenRoutePunten[i],initialZoom);i++;setTimeout('tekenPunt('+i+','+dragMogelijk+')',200);}else{routeKaart.panTo(eigenRoutePunten[0],initialZoom);centrum=eigenRoutePunten[0];tekenKilometerMarkers();}}
function berekenAfstand(){for(i=0;i<eigenRoutePunten.length-1;i++){var huidigePunt=eigenRoutePunten[i];eigenRouteAfstand+=huidigePunt.distanceFrom(eigenRoutePunten[i+1]);}
eigenRouteAfstand=Math.round(eigenRouteAfstand)/1000;eigenRouteAfstand=Math.round(eigenRouteAfstand*100)/100;document.getElementById('afstand').innerHTML=eigenRouteAfstand+" km";if(document.getElementById('routeAfstand')!=undefined){document.getElementById('routeAfstand').value=eigenRouteAfstand;}}
function kmOpnieuw(aantal,index){if(document.getElementById('routeKm')!=undefined){document.getElementById('routeKm').selectedIndex=index;}
document.getElementById('routeKaart').selectedIndex=index;if(aantal!='Niet'){km=aantal*1000;}else{km=false;}
tekenKilometerMarkers();}
function tekenKilometerMarkers(){if(km){for(i=0;i<eigenRouteKmMarkers.length;i++){routeKaart.removeOverlay(eigenRouteKmMarkers[i]);}
eigenRouteKmMarkers=new Array();var restAfstand=0;if(eigenRouteMarkers.length>1){var huidigeAfstand;var aantalRondeKm=0;for(i=0;i<eigenRoutePunten.length;i++){if(eigenRoutePunten[i]!=undefined&&eigenRoutePunten[i+1]!=undefined){huidigeAfstand=eigenRoutePunten[i].distanceFrom(eigenRoutePunten[i+1]);aantalPaaltjes=(huidigeAfstand+restAfstand)/km;aantalPaaltjesCount=Math.floor(aantalPaaltjes);restAfstand=(huidigeAfstand+restAfstand)-(aantalPaaltjesCount*km);for(j=0;j<aantalPaaltjesCount;j++){aantalRondeKm+=(km/1000);var lat=eigenRoutePunten[i+1].lat()-eigenRoutePunten[i].lat();lat=lat/aantalPaaltjes;var lng=eigenRoutePunten[i+1].lng()-eigenRoutePunten[i].lng();lng=lng/aantalPaaltjes;var latlng=new GLatLng((eigenRoutePunten[i].lat()*1)+(lat*((j*1)+(1*1))),(eigenRoutePunten[i].lng()*1)+(lng*((j*1)+(1*1))));var kmMarker=new GMarker(latlng,{icon:kmIcon,title:'Het '+aantalRondeKm+' Kilometer-punt'});eigenRouteKmMarkers.push(kmMarker);routeKaart.addOverlay(kmMarker);}}}}}}
