function toggle_chooser(){
  var the_box = $("#address_chooser");
  var status=the_box.css("display");
  if(status=="none"){
    the_box.show();
    if(!prev_map){
      prev_map = initialize_preview();
    }
  }else{
    the_box.hide();
  }
  
  
}

function initialize_main(points) {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    var lat = 41.9026266;
    var lng = 12.4712519;
    var minzoom = 6;
    var maxzoom = 14;

    map.setUIToDefault();
    map.setCenter(new GLatLng(lat , lng), minzoom);
    map.setMapType(G_SATELLITE_MAP);
    map.addControl(new GMapTypeControl());
    map.disableScrollWheelZoom();

    //set min - max zoom
    var mapTypes = map.getMapTypes();
    for (var i=0; i<mapTypes.length; i++) {
      mapTypes[i].getMinimumResolution = function() {
        return minzoom;
      }
      mapTypes[i].getMaximumResolution = function() {
        return maxzoom;
      }
    }

    // Create a base icon for all of our markers that specifies the
    // shadow, icon dimensions, etc.
    var baseIcon = new GIcon();
    baseIcon.image="http://www.mayafox.com/preview/images/maya2/shopping/star.png";
    baseIcon.iconSize = new GSize(14, 14);
    baseIcon.shadowSize = new GSize(34, 30);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);

    function setMarkerData(marker,city){
      $.ajax({
        type: "POST",
        url: "actions.php",
        data: "action_type=SHOPPINGGETDATA&city="+city,
        dataType: "json",
        success: function(response){
          marker.openInfoWindowHtml("<span style='color:#333333; font-size=12px; font-weight:bold;'>"+response.citta+"</span><BR><BR><span style='color:#333333; font-size=12px;'>Sono presenti </span><a href='shopping_results.php?city="+response.citta+"' target='results' style='color:#FF00FF;'><b>"+response.negozi+"</b> locations</a>.");
        }
      })
    }

    // Creates a marker whose info window displays the letter corresponding
    // to the given index.
    function createMarker(point,city) {
      var markerOptions = {
        icon:baseIcon
      };
      var marker = new GMarker(point, markerOptions);

      GEvent.addListener(marker, "click", function() {
        setMarkerData(marker,city);
      });
      return marker;
    }

    for (var i = 0; i < points.length; i++) {
      var latlng = new GLatLng(points[i]['lat'],points[i]['lng']);
      map.addOverlay(createMarker(latlng,points[i]['city']));
    }
  }
}

function initialize_preview() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_preview"));
    var lat = 41.9026266;
    var lng = 12.4712519;
    var zoom = 5;

    map.setCenter(new GLatLng(lat , lng), zoom);
    map.setMapType(G_NORMAL_MAP );

    return map;
  }
}

function disable_save(){
  $("#can-save-msg").show();
  $("#submit").attr("disabled",true);
}

function enable_save(){
  $("#can-save-msg").hide();
  $("#submit").attr("disabled",false);
}

function set_city_coord(){
  var city=$.trim($("#city").val());
  if(!city){
    return false;
  }

  geocoder = new GClientGeocoder();
  if (geocoder) {
    var address = city+", italia";
    geocoder.getLatLng(address,
      function(point) {
        if (point) {
          $("#citta_lat").val(point.lat());
          $("#citta_lng").val(point.lng());
        }else{
          disable_save();
        }
      }
      )
  }
}

function set_preview(){
  var city=$.trim($("#city").val());
  var street=$.trim($("#street").val());
  var number=$.trim($("#number").val());

  if(!city ){
    return;
  }
  var zoom_level=10;
  if(street){
    zoom_level=14;
  }
  if(number){
    zoom_level=17;
  }

  geocoder = new GClientGeocoder();
  if (geocoder) {
    var address = city+", "+street+", "+number+", italia";
    geocoder.getLatLng(address,
      function(point) {
        if (point) {
          prev_map.clearOverlays();
          var marker = new GMarker(point);
          prev_map.setCenter(point, zoom_level);
          prev_map.addOverlay(marker);
          $("#lat").val(point.lat());
          $("#lng").val(point.lng());
        }else{
          disable_save();
        }
      }
      )
  }

  //verifico se è stato inserito un indirizzo completo e abbilito il salvattaggio
  var lat =  $("#lat").val();
  var lng =  $("#lng").val();
  if(city && street && number && lat && lng){
    enable_save();
  }
}