/********************************/
/* Buscador Geográfico          */

/********************************/
/********************************/


function showInfoWindow(id)
{
	var mark = markersArray[id-1];
	var contenido = contenidoInfoWindow(id);
	
	mark.setIcon(imageInfo);
	infowindow.close();
  	infowindow.setContent(contenido);
  	infowindow.open(map,mark);
}


function unShowInfoWindow(id)
{
	var mark = markersArray[id-1];
	
	mark.setIcon(imageHome);
	infowindow.close();
}


var map;
var markerActual;
var geocoder;
var markersArray = [];
var imageHome;
var imageInfo;
var infowindow;
var posicionCasa;
var geocoder;
var n_prop;

function contenidoInfoWindow(identificador)
{
	if (!identificador) return "";
	
	var titulo 			= n_prop[identificador-1]['nombre'];
	var foto 			= n_prop[identificador-1]['path_fotoprincipal'];
	var rutaFicha		= n_prop[identificador-1]['ruta_ficha'];
	
	var cadena = '<b>' + '<a href="' + rutaFicha + '">' +titulo + '</a></b>' + '<br>';
	if (foto) cadena += '<img src="http://up.raudo.com'+foto+'" width="100">' ;
	
	return cadena;
}


function addMarker(location) {
  var marker = new google.maps.Marker({
    position: location,
    map: map,
    icon: imageHome
  });
  
  marker.id = markersArray.length + 1;
  
  google.maps.event.addListener(marker, 'mouseover', function() {
  	infowindow.close();
  	this.setIcon(imageInfo);
  	this.content = contenidoInfoWindow(this.id);
  	infowindow.setContent(this.content);
  	infowindow.open(map,this);
  });
  
  
  google.maps.event.addListener(marker, 'mouseout', function() {
  	this.setIcon(imageHome);
  });
  

  markersArray.push(marker);
}


function inicializa()
{ 
  var latitud = 46;
  var longitud = 15;
  var nivelzoom = 3;
  var tipomapa = 'roadmap';
  geocoder = new google.maps.Geocoder();

  var coord = new google.maps.LatLng(latitud,longitud);
  var opcionesMap = {
    navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN},
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
  	zoom: nivelzoom,
    center: coord,
    mapTypeId: tipomapa,
    scrollwheel: false
  }
  map = new google.maps.Map(document.getElementById("mapa"), opcionesMap);
}
  

function situarMapa()
{
	if ((document.getElementById('mapa-geografico')))
	{
		codeAddressBuscador(document.getElementById('direccion_bl').value);
	}
}

function loadScript() {

  if (!$('#mapa').length) return;
	
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.google.com/maps/api/js?sensor=false&language=es&callback=inicializa";
  document.body.appendChild(script);
}
window.onload = loadScript;

function codeAddressBuscador(direccion)
{
	var geocoder = new google.maps.Geocoder();
	  
	  var latlng = new google.maps.LatLng(46,15);
	  
	  var myOptions = {
	      zoom: 3,
	      center: latlng,
	      mapTypeId: google.maps.MapTypeId.ROADMAP,
	      navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN},
	      mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
	      scrollwheel: false
	    };

   var map = new google.maps.Map( document.getElementById("mapa"), myOptions);
   
    var rect = new google.maps.LatLngBounds();
	geocoder.geocode( { 'address': direccion}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK)
      {
        rect = results[0].geometry.viewport;
        map.fitBounds(rect);
        return;
      } 
      return false;
    });
  }
  
  
  function localizarPropiedadesMapa()
  {
  	return(alert('¡¡Hola!! Tenemos desactivadas las búsquedas hasta el día de la inauguración oficial del portal'));
  	
  	var rect = new google.maps.LatLngBounds();
  	  
      var lat_up 	= map.getBounds().getNorthEast().lat();
      var lng_rigth = map.getBounds().getNorthEast().lng();
      var lat_down 	= map.getBounds().getSouthWest().lat();
      var lng_left 	= map.getBounds().getSouthWest().lng();
      
      var variables = new Array();
	  var TT = new TTajax();
	  TT.server = 'carga_propiedades_mapa.html';
      TT.Carga("xml","mapa2",variables,"&lat_up="+lat_up+"&lat_down="+lat_down+"&lng_left="+lng_left+"&lng_rigth="+lng_rigth);
	  return;
  }
  
  
  function mostrarPropiedadesMapa()
  {
	  var script = document.createElement("script");
	  script.type = "text/javascript";
	  script.src = "http://maps.google.com/maps/api/js?sensor=false&language=es&callback=actualiza";
	  document.body.appendChild(script);
  }
  
  function actualiza()
{ 
	markersArray = [];
	coord 		= document.getElementById('coordenadas').value;
	var n_coord = eval("("+coord+")");
	
	propiedades = document.getElementById('datosPropiedades').value;
	n_prop 	= eval("("+propiedades+")");
	
	 // Imágenes de iconos
	var size_24    = new google.maps.Size(24, 24);
	var pOrigin_24 = new google.maps.Point(0,0);
	var pDest_24   = new google.maps.Point(0,24);
	var esc_24     = new google.maps.Size(24,24);
	
	imageInfo 	 = new google.maps.MarkerImage('img/info.gif'		, size_24, pOrigin_24, pDest_24, esc_24);
  	imageHome 	 = new google.maps.MarkerImage('img/home_map.gif'	, size_24, pOrigin_24, pDest_24, esc_24);
	
  	
	var latitud = 46;
	var longitud = 15;
	var nivelzoom = 3;
	var tipomapa = 'roadmap';
	geocoder = new google.maps.Geocoder();
	
	var coord = new google.maps.LatLng(latitud,longitud);
	var rect  = new google.maps.LatLngBounds(new google.maps.LatLng(n_coord['lat_down'],n_coord['lng_left']),new google.maps.LatLng(n_coord['lat_up'],n_coord['lng_rigth']));
	
	
	var opcionesMap = {
	    navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN},
	    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
	  	zoom: nivelzoom,
	    center: coord,
	    mapTypeId: tipomapa,
	    scrollwheel: false
	}
	map = new google.maps.Map(document.getElementById("mapa"), opcionesMap);
	map.fitBounds(rect);
	map.setCenter(rect.getCenter());
	
	if (!document.getElementById('numeropropiedades').value ) return;
	
	infowindow = new google.maps.InfoWindow({maxWidth: 300, disableAutoPan: false});
	  
	for (var i=0; i<document.getElementById('numeropropiedades').value; i++)
  	{
  		latitud  =  n_prop[i]['latitud'];
  		longitud =  n_prop[i]['longitud'];
  		
  		var posicionMarker = new google.maps.LatLng(latitud,longitud);
  		addMarker(posicionMarker);
  	}
}
  

