var mgr, locations = new Array(), markers_array = new Array();

function locationClass(id,address,image,lat,lng){
  this.id = id;
  this.address = address;
  if(image!=""){
    this.image = image;
  } else {
    this.image = "http://www.fresnoforeclosures.com/images/photo-placeholder.jpg";
  }
  this.lat = parseFloat(lat);
  this.lng = parseFloat(lng);
}

function outputLocations(){
  map.clearOverlays();
  mgr.clearMarkers();
  MapBounds = new GLatLngBounds();

  totalLocations = locations.length;
  var counter = 0;

  var marker_count = 0;
  for(var i=0;i<locations.length;i++){
    var location = locations[i];
    var point = new GLatLng(location.lat,location.lng);
    var marker = new createLocationMarker(point, location,(i+1));
    MapBounds.extend(point);
    markers_array.push(marker);
    counter++;
  }
  mgr.addMarkers(markers_array,0,17);
  mgr.refresh();
  zoomInArea(MapBounds);
}

function createLocationMarker(latlng, location, order) {
  var icon = new GIcon(G_DEFAULT_ICON);
  icon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+order+"|FF0000|FFFFFF";
  icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
  icon.iconSize = new GSize(20, 34);
  icon.shadowSize = new GSize(37, 34);
  icon.iconAnchor = new GPoint(9, 34);
  icon.infoWindowAnchor = new GPoint(9, 2);
  markerOptions = { icon:icon };

  var marker = new GMarker(latlng,markerOptions);
  marker.id = location.id;
  marker.latlng = latlng;
  marker.infoTabs = [new GInfoWindowTab("Info", createLocationDescription(location))];
  GEvent.addListener(marker,"click", function() {
    marker.openInfoWindowTabsHtml(marker.infoTabs, {maxWidth: 250, width:250});
  });
  return marker;
}

function createLocationDescription(location){
  var addressarr = new Array();
  var longaddress = location.address;
  var addressarr = longaddress.split(",");
  var myHtml = "<div class='location-item'>"+
               "<div style='float: right;margin:0px 0px 0px 0px;text-align: left;'><br /><a href='http://www.fresnoforeclosures.com/?MLNumber="+location.id+"'>"+addressarr[0]+"<br />"+addressarr[1]+","+addressarr[2]+"</div>";
               if(location.image){
                 myHtml += "<div style='float:left;margin:5px 5px 5px 0px'><img src='"+location.image+"' border='0' width='100'></div>";
               }
  myHtml +=    "</div>";
  return myHtml;
}

function zoomInArea(MapBounds){
  map.setZoom(map.getBoundsZoomLevel(MapBounds));
  var clat = (MapBounds.getNorthEast().lat() + MapBounds.getSouthWest().lat()) / 2;
  var clng = (MapBounds.getNorthEast().lng() + MapBounds.getSouthWest().lng()) / 2;
  map.setCenter(new GLatLng(clat,clng));
}

function focusLocation(id){
  for(var i=0;i<markers_array.length;i++){
    if(markers_array[i].id==id){
      markers_array[i].openInfoWindowTabsHtml(markers_array[i].infoTabs);
      break;
    }
  }
}

function unfocus(){
  map.closeInfoWindow();
}