var base_url="/";
var param_lat="-";
var param_lng="-";
var param_zoom="14";
var posicion;

$(document).ready(loadMap);
$(document).unload(GUnload);

var _map;

var oIconBlue = new GIcon();
oIconBlue.image = '../images/g_azul.png';
oIconBlue.shadow = '../images/g_sombra.png';
oIconBlue.iconSize = new GSize(20, 20);
oIconBlue.shadowSize = new GSize(24, 22);
oIconBlue.iconAnchor = new GPoint(10, 20);    
oIconBlue.infoWindowAnchor = new GPoint(5, 1);
			  
var oIconGreen = new GIcon();     
oIconGreen.image = '../images/g_verde.png';    
oIconGreen.shadow = '../images/g_sombra.png';    
oIconGreen.iconSize = new GSize(20, 20);    
oIconGreen.shadowSize = new GSize(24, 22);    
oIconGreen.iconAnchor = new GPoint(10, 20);    
oIconGreen.infoWindowAnchor = new GPoint(5, 1);

var oIconOrange = new GIcon();     
oIconOrange.image = '../images/g_naranja.png';
oIconOrange.shadow = '../images/g_sombra.png';
oIconOrange.shadowSize = new GSize(24, 22);    
oIconOrange.iconSize = new GSize(20, 20);     
oIconOrange.iconAnchor = new GPoint(10, 20);    
oIconOrange.infoWindowAnchor = new GPoint(5, 1);

var oIconRed = new GIcon();     
oIconRed.image = '../images/g_rojo.png';
oIconRed.shadow = '../images/g_sombra.png';
oIconRed.shadowSize = new GSize(24, 22);    
oIconRed.iconSize = new GSize(20, 20);     
oIconRed.iconAnchor = new GPoint(10, 20);    
oIconRed.infoWindowAnchor = new GPoint(5, 1); 
			  
var customIcons = [];    
customIcons[0] = oIconOrange;    
customIcons[1] = oIconBlue;
customIcons[2] = oIconGreen;
customIcons[3] = oIconRed;

function loadMap() 
{
	if (GBrowserIsCompatible()) 
	{
		//Se obtiene el control del mapa
		m = $("#divMapa").get(0);
		_map = new GMap2(m);
		_map.addControl(new GLargeMapControl());
		_map.addControl(new GMapTypeControl());
		_map.addControl(new GOverviewMapControl());
		_map.enableContinuousZoom();
		_map.enableDoubleClickZoom();
		_map.enableScrollWheelZoom();

		posicion = G_NORMAL_MAP.getProjection();
		
		//Ajustamos el centro del mapa
		//if ((param_lat!="-") && (param_lng!="-"))
		//{
		//	if(param_zoom=="-") param_zoom=15; //Default zoom level
		//	_map.setCenter(new GLatLng(parseFloat(param_lat), parseFloat(param_lng)), parseFloat(param_zoom));
		//}
		//else
		//{
		//	//Valores por defecto
			//param_lat=41.604150;
			//param_lng=2.288375;
			param_lat=41.60793415404437;
			param_lng=2.2878170013427734;
			param_zoom=14;
			_map.setCenter(new GLatLng(param_lat, param_lng), param_zoom);
		//}

		GEvent.addListener(_map, 'moveend', function() 
		{
			mapChangedListener();
		});

		//Disable mouse wheel page scroll
		GEvent.addDomListener(_map.getContainer(), "DOMMouseScroll", wheelevent);
		_map.getContainer().onmousewheel = wheelevent;

		//Se cargan los expendedores
		var sDisponibles = $("#chkDisponibles").get(0).checked; //Estaciones con bicicletas disponibles
		var sLibres = $("#chkLibres").get(0).checked;	//Estaciones con peanas libres para estacionamiento
		
		GDownloadUrl("../estaciones/estacionesXML.aspx?dis=" + sDisponibles + "&lib=" + sLibres, function(data)
		{
			var sXML = data;
			var xml = GXml.parse(sXML);
			if (xml.documentElement != null)
			{		
				var markers = xml.documentElement.getElementsByTagName("marker");  
				for (var i = 0; i < markers.length; i++) 
				{   
					//Se recogen los valores para el marcador
					var titulo = markers[i].getAttribute("nombre");
					var libres = markers[i].getAttribute("libres");  
					var ocupadas = markers[i].getAttribute("ocupadas");    
					var point = new GLatLng(parseFloat(markers[i].getAttribute("latitud")),parseFloat(markers[i].getAttribute("longitud")));
					//Se crea un marcador con los datos obtenidos
					var marker = createMarker(point, titulo, ocupadas, libres);
					_map.addOverlay(marker);
				}
				//var center = xml.documentElement.getElementsByTagName("center"); 
				//if (center != null)
				//{
				//	var centroLatitud = center[0].getAttribute("latitud");   
				//	var centroLongitud = center[0].getAttribute("longitud");
				//	var centroPunto = new GLatLng(parseFloat(centroLatitud),parseFloat(centroLongitud));
				//	var zoom = _map.getZoom();
				//	
				//	//var punto1 = new GLatLng(parseFloat(center[0].getAttribute("maxlatitud")),parseFloat(center[0].getAttribute("maxlongitud")));
				//	//var centroPt = posicion.fromLatLngToPixel(centroPunto, zoom);
				//	//var radiusPt = posicion.fromLatLngToPixel(punto1, zoom);
				//	//var radius = Math.sqrt(Math.pow((centroPt.x-radiusPt.x),2) + Math.pow((centroPt.y-radiusPt.y),2));
				//	//radius = (radius*2);
				//	//if (radius>360)
				//	//{
				//	//	zoom = zoom - 1;
				//	//}
				//	
				//	_map.setCenter(centroPunto, zoom);
				//	mapChangedListener();
				//}
			}
		});
	}
}

function wheelevent(e)
{
	if (!e)
	{
		e = window.event;
	}
	if (e.preventDefault)
	{
		e.preventDefault();
    }
	e.returnValue = false;
}

function mapChangedListener()
{
	//Se obtienen los parámetros actuales
	param_lat=_map.getCenter().lat();
	param_lng=_map.getCenter().lng();
	param_zoom=_map.getZoom();
}

function createMarker(punto,titulo,disponibles,libres)
{
	//Selección del icono a mostrar como marcador
	var icon;
	if ((disponibles>0) && (libres>0))
		icon = customIcons[2];
	else if ((disponibles==0) && (libres==0))
		icon = customIcons[3];
	else if (disponibles>0)
		icon = customIcons[1];
	else
		icon = customIcons[0];
	
	//Se crea el marcador añadiéndole estilo	
	//var marker = new GMarker(punto, customIcons[1]);
	var marker = new GMarker(punto, icon);
	var html = '<div style="text-align: left; font-family: verdana, sans-serif; font-size: 11px;"><font color=blue>' + titulo + '</font><br/><br/>';
	html = html + 'Bicicletes disponibles: <font color="blue">' + disponibles + '</font><br/>';
	html = html + 'Suports lliures: <font color="green">' + libres + '</font></div>';
	//Se añade la ventana de información al marcador para el evento 'click'
	GEvent.addListener(marker,'click',function(){marker.openInfoWindowHtml(html);});
	return marker;
}

/*function createPolygon()
{
	var puntos = []; 
	puntos[0] = new GLatLng(41.599719,2.291068);
	puntos[1] = new GLatLng(41.600208,2.287774);
	puntos[2] = new GLatLng(41.605632,2.288096);
	puntos[3] = new GLatLng(41.600537,2.285178);
	puntos[4] = new GLatLng(41.599719,2.291068);
	
	//var polygon = new GPolygon(puntos, "#f33f00", 3, 25, "#ff0000", 45);
	var polygon = new GPolygon(puntos, "#f33f00", 3);
								
	_map.addOverlay(polygon); 
}*/

