var map = null;
var jqDealerList = null;

var selectedInfoWindow = null;

function initializeMap() {

  var latlng = null;

  var startCoordinates = $("#coordinates").val();

  if (startCoordinates == undefined || startCoordinates == "") {
    var jsStartCoord = jsStartCoordinates.split(",");
    latlng = new google.maps.LatLng(jsStartCoord[1], jsStartCoord[0]);
  }
  else {
    var startCoord = startCoordinates.split(",");
    latlng = new google.maps.LatLng(startCoord[1], startCoord[0]);
  }

  var radius = $("#radius option:selected").val();
  var zoom = jsStartZoom;
//  if (jsIgnoreZoom != 'Y') {
    switch(radius) {
      case "10":
        zoom = 12;
        break;
      case "25":
        zoom = 9;
        break;
      case "50":
        zoom = 8;
        break;
      default:
        break;
    }
//  }

  var myOptions = {
    zoom: zoom,
    center: latlng,
    mapTypeControl: true,
    panControl: true,
    panControlOptions: {
        position: google.maps.ControlPosition.TOP_LEFT
    },
    zoomControl: true,
    streetViewControl: false,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById("dealer-map"), myOptions);

  $("ul.dealers").toggle();
  $("ul.dealer-regions").toggle();

  jqDealerList = $("ul.found-dealer-list li");

  if(jqDealerList.length > 0) {
    jqDealerList.each(function() {
      var marker = placeMarker($(this));

      $(this).click(function() {
        createInfoWindow(marker, $(this));
      });
      $("span", this).remove();

    });
  }
}

function placeMarker(jqObj) {
  var coordinates = $("span", jqObj).html().split(",");
  var location = new google.maps.LatLng(coordinates[0], coordinates[1]);

  var title = $("strong", jqObj).html();
  var marker = new google.maps.Marker({
    position: location,
    map: map,
    title: title
  });

  google.maps.event.addListener(marker, 'click', function() {
    createInfoWindow(marker, jqObj);
  });

  return marker;
}

function createInfoWindow(marker, jqObj) {

  if (selectedInfoWindow != null) {
    selectedInfoWindow.close();
  }

  var content = "<div style=\"font-size: 11px; line-height: 13px; overflow: visible !important;\">";
  content += jqObj.html();
  content += "</div>";



  $("span", jqObj).remove();
  markerInfoWindow = new google.maps.InfoWindow({
      content: content
  });

  markerInfoWindow.open(map,marker);
  selectedInfoWindow = markerInfoWindow;

}

function resetZoom(zoomLvl) {
  map.setZoom(zoomLvl);
}



