//<![CDATA[

	/****************** VARIABLES GLOBALES *************************************/


	var map;
	
	var centerLatitude=39.472643;
	var centerLongitude=-0.376797;
	
	var startZoom=13;
	
	var zoom_img_on=2;

	
	/***********************************************************************************/
	
	/******************************* FUNCIONES DE ZOOM *********************************/
	
	function zoomIn(){
		
		var zoomActual=map.getZoom();
		if(zoomActual<17){
			map.zoomIn(false,true);
			ChangeZoomImage(zoom_img_on+1);
		}
	
	}
	
	function zoomOut(){
		var zoomActual=map.getZoom();
		if(zoomActual>12){
			map.zoomOut(false,true);
			ChangeZoomImage(zoom_img_on-1);
		}
	}
	
	function zoomLevel(level){
	
		if(level>=12 && level<=17){
			map.setZoom(level);	
			ChangeZoomImage(level-11);
		}
			
	}
	
	/********************************************************************************/
	
	/********************************* FUNCIONES DE DESPLAZAMIENTO **************************/
	
	
	function moveNorth(){
		map.panDirection(0,+3);
	}
	
	function moveSouth(){
		map.panDirection(0,-3);
	}
	
	function moveEast(){
		map.panDirection(-3,0);
	}
	
	function moveWest(){
		map.panDirection(+3,0);
	}
	
	function moveNorthEast(){
		map.panDirection(-3,+3);
	}
	
	function moveNorthWest(){
		map.panDirection(+3,+3);
	}
	
	function moveSouthEast(){
		map.panDirection(-3,-3);
	}
	
	function moveSouthWest(){
		map.panDirection(+3,-3);
	}
	
	/****************************************************************************/

	/********************** FUNCIONES DE MARCADORES ****************************/
	
	function addMarker(latitude,longitude,description){
	
		var point=new GLatLng(latitude,longitude);
		
		
		var icon=new GIcon();
		icon.image="images/chincheta.png";
		icon.shadow="images/shadow_chincheta.png";
		icon.iconSize=new GSize(37,49);
		icon.shadowSize=new GSize(57,49);
		icon.iconAnchor=new GPoint(17,50);
		icon.infoWindowAnchor=new GPoint(5,1);
		
		var marker=new GMarker(point,icon);
		
		GEvent.addListener(marker,'click',
			function(){
				marker.openInfoWindowHtml(description);	
			}
		);
			
		map.addOverlay(marker);
		
	}//function addMarker(latitude,longitude,description)
	
	/***************************************************************************/
	
	
    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("mapa_zoom_area"));
        map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
        
        //Activamos el zoom suave
        map.enableContinuousZoom();
        map.disableDoubleClickZoom();
        //map.enableScrollWheelZoom();
        
        updateMarkers(new GLatLng(centerLatitude,centerLongitude));
        var toActiveIni=document.getElementById("zoom_img"+zoom_img_on);
        toActiveIni.src='images/zoom'+zoom_img_on+'on.gif';

        GEvent.addListener(map, "zoomend", function() {
  			var newcenter = map.getCenter();
  			updateMarkers(newcenter);
		});
        
        GEvent.addListener(map, "moveend", function() {
  			var newcenter = map.getCenter();
  			updateMarkers(newcenter);
		});
        
      }//if (GBrowserIsCompatible())
    }//function load()
	
    //Esta función actualiza los marcadores con ajax en funcion de la cercanía a un punto central que se le pasa como parámetro
    
    function updateMarkers(point){
	 
	    //remove the existing points
	    map.clearOverlays();
	    
	    //create the boundary for the data to provide
	    //initial filtering
	    var bounds=map.getBounds();
	    var southWest=bounds.getSouthWest();
	    var northEast=bounds.getNorthEast();
	    var getVars='ne='+northEast.toUrlValue()+'&sw='+southWest.toUrlValue()+'&known='+point.toUrlValue();
	    
	    //retrieve the points
	    var request = GXmlHttp.create();
	    
	    request.open('GET','includes/ws_call.php?'+getVars,true);
	    request.onreadystatechange=function(){
		    if(request.readyState == 4){
			    
			 	var jscript=request.responseText;
			 	var points;
			 	eval(jscript);
			 	//create each point from the list
			 	for(i in myJSON.points){

				 	addMarker(parseFloat(myJSON.points[i].lat),parseFloat(myJSON.points[i].lng),myJSON.points[i].name);
				 	
			 	}   
		    }else{
			    
		    }
	    }
	    
	    request.send(null);
	       
    }
    
    
	
    window.onload=load;
	window.onunload=GUnload;
	
	
    //]]>