﻿var map = null;
var geo = null;


function addListener() {
    
    GEvent.addListener(map, "click", function(overlay, point) {
        if (point) {
            map.clearOverlays();
            var mymarker = new GMarker(point);
            map.addOverlay(mymarker);
            $('#lat').text(point.lat().toFixed(6));
            $('#long').text(point.lng().toFixed(6));
            $('#ctl00_ContentPlaceHolder1_Lng').val(point.lng());
            $('#ctl00_ContentPlaceHolder1_Lat').val(point.lat());
            map.panTo(point);
        }
    });

    GEvent.addDomListener(map, 'load', function() {
        $('#mapwrapper').show();
    }); 
}

function getAddress(address) {
    GEvent.addDomListener(map, 'load', function() {
    $('#mapwrapper').show();
    }); 
    if (map == null)
        initMap();
  geo = new GClientGeocoder();
  geo.getLatLng(address, function(point) {
      if (point) {
          setLatLng(point, 13);
          printOverlays(point);
      }
      else
          alert('Hittade inte den efterfrågade adressen');
  });
}

function printOverlays(p) {

    $.getJSON('/handlers/GetPositions.ashx?lat=' + p.lat() + '&lng=' + p.lng(),
        function(data) {
    $.each(data, function(i, item) {
  
            
                var mymarker = new GMarker(new GLatLng(item.Latitude, item.Longitude));
                GEvent.addListener(mymarker, 'click', function() {

                var infoTabs = [
            new GInfoWindowTab("Info", '<strong>' + item.Short + '</strong><br>' + item.Long + '<br /><strong>Kostnad:</strong> ' + item.Cost + 'kr.<div class="vote">1<input type="radio" onclick="addVote(1);" name="vote" value="1" />2<input type="radio" onclick="addVote(2);"  name="vote" value="2" />3<input type="radio" onclick="addVote(3);"  name="vote" value="3" />4<input type="radio" onclick="addVote(4);"  name="vote" value="4" />5<input type="radio" onclick="addVote(5);"  name="vote" value="5" /><span class="position">' + item.ID + '</span> (3.5)</div>'),
            new GInfoWindowTab("Adress", '<strong>' + item.Short + '</strong><br/>' + item.Street + '<br /> ' + item.Zip + ' ' + item.City)
                ];
                    
                    // When clicked, open an Info Window
                mymarker.openInfoWindowHtml(infoTabs);

                });

                map.addOverlay(mymarker);
            });
        });
}

function getNewAddress(address) {
    addListener();
    if (map == null)
        initMap();
    geo = new GClientGeocoder();
    geo.getLatLng(address, function(point) {
        if (point) {
            setLatLng(point, 15);
            var mymarker = new GMarker(point);
            map.addOverlay(mymarker);
            $('#lat').text(point.lat().toFixed(6));
            $('#long').text(point.lng().toFixed(6));
            $('#ctl00_ContentPlaceHolder1_Lng').val(point.lng());
            $('#ctl00_ContentPlaceHolder1_Lat').val(point.lat());
        }
        else
            alert('Hittade inte den efterfrågade adressen');
    });
}

function setLatLng(point, zoom) {
    $('#garmin').attr('href', $('#garmin').attr('href') + '?lat=' + point.lat() + '&lng=' + point.lng());
    map.setCenter(point, zoom);
}

function addVote(vote) {



    $.post('/handlers/addvote.ashx', { 'id': $('.position').text(), 'vote': vote }, function(data) {
        if (data == 0)
            alert('Du får bara rösta på en plats var 60:e dag');
        else
            alert('Din röst har blivit sparad.');
    });

}


