﻿var map;
var markersArray = [];
var directionDisplay;
var directionsService = new google.maps.DirectionsService();

$(document).ready(function ()
{
    // Bind buttons
    $("#chkSchools").change(function(){
        toggle_markers("social", $(this).is(":checked"));
    });
    $("#chkCommunication").change(function(){
        toggle_markers("transport", $(this).is(":checked"));
    });
    $("#chkShopping").change(function(){
        console.log($(this).is(":checked"));
        toggle_markers("shopping", $(this).is(":checked"));
    });
    $("#btnAddress").click(function(){
        console.log($("#addressSearch").val());
        get_directions($("#addressSearch").val());
        return false;
    });

    // Initalize map
    var latlng            = new google.maps.LatLng(59.92403, 10.76677);
    
    //sw,ne
    var imageBounds       = new google.maps.LatLngBounds(
                                new google.maps.LatLng(59.92480, 10.76635),
                                new google.maps.LatLng(59.92632, 10.76850));

    directionsDisplay   = new google.maps.DirectionsRenderer();
    var myOptions = {
        zoom: 15,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);    

    var areamap = new google.maps.GroundOverlay(
        "/img/foravtrykk.png",
        imageBounds);

    areamap.setMap(map);

    directionsDisplay.setMap(map);
    load_markers(map);
});


var load_markers = function () {

    $.ajax({
        type: "GET",
        url: "/scripts/googlemaps/markers.xml",
        dataType: "xml",
        success: function (xml) {
            var markers;
            $(xml).find("marker").each(function () {
               create_marker($(this).attr("lat"), $(this).attr("lng"), $(this).attr("title"), $(this).attr("html"), $(this).attr("category"));
            });
        }
    });
}


var create_marker = function (lat, lng, title, html, category) {

    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lng),
        map: map,
        title: title,
        category: category,
        clickable: true
    });

    var infowindow = new google.maps.InfoWindow({
        content: html
    });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map, marker);
    });

    markersArray.push(marker);
}


var toggle_markers = function (category, checked){
    if (checked)
    {
        add_markers(category);
    }
    else
    {
        clear_markers(category);
    }
}


var clear_markers = function(category){
    for (i in markersArray)
    {
        if (markersArray[i].category == category)
        {
            markersArray[i].setMap(null);
        }
    }
}


var add_markers = function(category){
    for (i in markersArray)
    {
        if (markersArray[i].category == category)
        {
            markersArray[i].setMap(map);
        }
    }
}

var get_directions = function(startlocation)
{
      var start = startlocation;
      var end   = "Johan Throne Holsts plass 1, Oslo";
      var request = {
        origin:start, 
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
      };
      directionsService.route(request, function(result, status) {
        if (status == google.maps.DirectionsStatus.OK) {
          directionsDisplay.setDirections(result);
        }
        else
        {
            alert("Kunne ikke finne posisjonen. Forsøk å angi på formatet: 'gate, by'.");
        }
      });
}


