var map = null;
var geocoder = null;

var addressarr = new Array();
var textarr = new Array();
var text2arr = new Array();
var urlarr = new Array();
var plaatsarr = new Array();

var iglob = 0;

//vestigingen definieren vanuit config file

addressarr[0] = 'Grotestraat 152 7443 BP Nijverdal Nederland';
textarr[0] = 'Diekman Nijverdal';
text2arr[0] = 'Grotestraat 152';
urlarr[0] = '../index.html';
plaatsarr[0] = 'nijverdal';

//aantal markers/poi
var numpoi = 1



function load() {
    iglob = 0;


    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));

        map.addControl(new GLargeMapControl());
        /*map.addControl(new GScaleControl());*/
        /*map.addControl(new GMapTypeControl());*/

        //zet een default mapcenter locatie
        if (numpoi > 1)
        map.setCenter(new GLatLng(52.290059, 6.190078), 10);

        geocoder = new GClientGeocoder();

        map.clearOverlays();
        Init(addressarr);
    }
}

function Init(addressarr) {
    for (i = 0; i < addressarr.length; i++) {
        var res = geocoder.getLocations(addressarr[i], CreateMarker);
    }
}


function ZoomAndShowInfo(coo1, coo2, text, url)
 {
    map.clearOverlays();

    var point = new GLatLng(coo1, coo2);
    var marker = new GMarker(point);
    map.addOverlay(marker);

    map.setCenter(point, 15);

    marker.openInfoWindowHtml('<strong>' + text + '</strong><br /><a href="#" onclick="load(); return(false);">Zoom uit</a>');

    GEvent.addListener(marker, "click",
    function() {
        marker.openInfoWindowHtml('<strong>' + text + '</strong><br /><a href="#" onclick="load(); return(false);">Zoom uit</a>');
    });
}




function InitAddress(id, address, text, text2, url)
 {

    globtext = text;
    globurl = url;
    globtext2 = text2;

    var res = geocoder.getLocations(address, CreateMarker);

}


function CreateMarker(response)
 {

    if (!response || response.Status.code != 200)
    alert("\"" + address + "\" not found");
    else
    {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);

        //indien maar 1 poi, zet mapcenter	
        if (numpoi == 1)
        {
            defaultpoint = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0] - 0.15);
            map.setCenter(defaultpoint, 10);
        }

        var marker = new GMarker(point);
        map.addOverlay(marker);

        //coordinaten
        var coo1 = place.Point.coordinates[1];
        var coo2 = place.Point.coordinates[0];
        var tmptext = textarr[iglob];
        var tmptext2 = text2arr[iglob];
        var tmpaddress = addressarr[iglob];
        var tmpurl = urlarr[iglob];
        var tmpplaats = plaatsarr[iglob];

        var directionsaddress = tmpaddress;




        GEvent.addListener(marker, "click",
        function() {
            marker.openInfoWindowHtml('<strong>' + tmptext + '</strong><br />' + tmptext2 + ' (<a href="#" onclick="ZoomAndShowInfo(\'' + coo1 + '\', \'' + coo2 + '\', \'' + tmptext + '\', \'' + tmpurl + '\'); return(false);">zoom in</a>)<br /><br />Ik vertrek van: <small>( straat + plaatsnaam )</small><br /><input type="text" name="vertrekadres" id="verdtrekadres" size="20">&nbsp;<input type="submit" class="submit" value="route" onclick="SendToDirections(\'' + tmpaddress + '\')"><br /><br />');
        });


        //indien er maar 1 poi is, open infowindow on load		
        if (numpoi == 1)
        {
            window.setTimeout(function() {

                marker.openInfoWindowHtml('<strong>' + tmptext + '</strong><br />' + tmptext2 + ' (<a href="#" onclick="ZoomAndShowInfo(\'' + coo1 + '\', \'' + coo2 + '\', \'' + tmptext + '\', \'' + tmpurl + '\'); return(false);">zoom in</a>)<br /><br />Ik vertrek van: <small>( straat + plaatsnaam )</small><br /><input type="text" name="vertrekadres" id="verdtrekadres" size="20">&nbsp;<input type="submit" class="submit" value="route" onclick="SendToDirections(\'' + tmpaddress + '\')"><br /><br />');
            },
            1200);

        }




    }

    iglob++;
}



function FollowMouse(address) {
    if (geocoder) {
        geocoder.getLatLng(
        address,
        function(point) {
            if (!point) {
                //alert(address + " not found");
                } else {
                /*map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address);*/

                var marker = createMarker(point, 'LALALALALA');
                map.addOverlay(marker);

            }
        }
        );
    }
}







// addAddressToMap() is called when the geocoder returns an
// answer.  It adds a marker to the map with an open info window
// showing the nicely formatted version of the address and the country code.
function addAddressToMap(response) {

    if (!response || response.Status.code != 200) {
        alert("Sorry, we were unable to geocode that address");
    } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
        place.Point.coordinates[0]);

        map.setCenter(point, 11);
        //marker = new GMarker(point);
        //map.addOverlay(marker);
        // marker.openInfoWindowHtml(place.address + '<br>' +
        //   '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);
    }
}



// findLocation() is used to enter the sample addresses into the form.
function findLocation(address) {
    //document.forms[0].q.value = address;
    //showLocation();
    iglob = 0;
    map.clearOverlays();
    Init(addressarr);
    geocoder.getLocations(address, addAddressToMap);
}

function ZoomOut()
 {
    map.setCenter(new GLatLng(52.5815, 5.22759), 7);

}


function SendToDirections(directionsaddress)
 {
    //alert('directionsaddress:' +directionsaddress);
    var vertrekadres = document.getElementById("verdtrekadres").value;
    //alert('doorsturen naar ggmaps met vertrekadres '+vertrekadres);
    var redirecturl = 'http://maps.google.com/maps?daddr=' + directionsaddress + '&saddr=' + vertrekadres + ',Nederland&f=d&hl=en&sll=52.365459,6.462278&sspn=0.007508,0.026565&layer=&ie=UTF8&z=9&om=1';
    //alert('redirecturl: '+redirecturl);
    window.open(redirecturl, 'directions');
    //
}


window.addEvent('domready', function() {
	load();
});
window.addEvent('unload', function() {
	GUnload();
});
