var isMapLoaded = false;
var map;
var hotel;
var x = null;
var y = null;
var markerWindowHtml;

function load( ){
  
  try{
  
    var x = parseFloat( jQuery('div.geo .latitude:first').text() );
    var y = parseFloat( jQuery('div.geo .longitude:first').text() );
    var markerWindowHtml = jQuery('#marker-content').html();
    
    hotel = new google.maps.LatLng(x,y);
    
    var mapOptions = {
      center: hotel,
      zoom: 14,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      disableDoubleClickZoom: false
    };
    map = new google.maps.Map(document.getElementById("map"), mapOptions);
    
    map.setCenter( hotel );
    
    var image = getMarkerImage();
   // var shadow = getMarkerShadowImage();
    
    hotelMarker = new google.maps.Marker({
          position: hotel,
          map: map,
          title: jQuery('h1.hotel_title').text(),
          zIndex: 9999,
         // shadow: shadow,
          icon: image,
          cursor: 'default'
    });
     
    
    var infowindow = new google.maps.InfoWindow({ content: markerWindowHtml, maxWidth: 300 });
    google.maps.event.addListener(hotelMarker, 'click', function() {
      infowindow.open(map,hotelMarker);
    });
    
    jQuery('#map-static').remove();
    
    google.maps.event.addListener(map, 'tilesloaded', function() {
      if( isMapLoaded == false ){
        loadHotelsNear( hotel );
        isMapLoaded = true;
      }
    });
   
    
  }catch( e ){ }
}


function loadHotelsNear( point ){
  
  var west = map.getBounds().getSouthWest();
  var east = map.getBounds().getNorthEast();
  var total = 0;
  
  jQuery.ajax(
  {
    url: "/webservice.php/map/getMarkersBounds?point1="+west.toUrlValue()+"&point2="+east.toUrlValue(),
    dataType:"json",
    cache: false,
    async: false,
    error: function(xhr,err,e){
    },
    complete: function( ){
    },
    success: function( result ){
      
      jQuery.each(result, function(i,hotel){
        
        total++;
        
        try{
          
          if( point.lat() != hotel.lat && point.lng() != hotel.lon ){

            var nearMarker = new google.maps.Marker({
                  position: new google.maps.LatLng(hotel.lat,hotel.lon),
                  map: map,
                  title: hotel.name,
                //  shadow: getMarkerShadowImage(),
                  icon: getMarkerInactiveImage(),
                  cursor: 'default'
            });
            
            var html;
            html = "<div class=hotelbox><div class=top><strong><a href='/" +hotel.url +"'>"+hotel.name+"</a></strong>";
            if( hotel.show_stars )
              html = html + " <span title='Categoria' class='"+hotel.stars+"'>&nbsp;</span>";
            html = html + "</div></div>";

            var infowindow = new google.maps.InfoWindow({ content: html });
            
            google.maps.event.addListener(nearMarker, 'click', function() {
              infowindow.open(map,nearMarker);
            });
            
          }
          
        }catch( e ){
          alert( e );
        }
        
      });
  
    }
  });
  // fim dos marcadores próximos
  
  return total;
}

function createMarker(gLatLog)
{
  if(userMarkerBool)
    userMarker.setMap(null);
  
  userMarkerBool = true;
  
  userMarker = new google.maps.Marker({
      position: gLatLog,
      map: map,
    //  shadow: getMarkerShadowImage(),
      icon: getMarkerImage()
  });
}

function getMarkerImage()
{
  var markerImage = "/images/marker-inactive.png";
  return new google.maps.MarkerImage(markerImage,
  new google.maps.Size(36, 36),
  new google.maps.Point(0,0),
  new google.maps.Point(0, 32));
}

/*function getMarkerShadowImage()
{
  var markerShadow = '/images/icons-hotels-mark-shadow.png';
  return new google.maps.MarkerImage(markerShadow,
  new google.maps.Size(36, 36),
  new google.maps.Point(0,0),
  new google.maps.Point(0, 32));
}
*/
function getMarkerInactiveImage()
{
  var markerImage = "/images/icons-hotels-mark-1.png";
  return new google.maps.MarkerImage(markerImage,
  new google.maps.Size(36, 36),
  new google.maps.Point(0,0),
  new google.maps.Point(0, 32));
}

jQuery(document).ready(function(){
  load();
});

