var idioma = "";
var parametros = "";
var portal = "";

function load(latitud,longitud,zoom,tipo_mapa,id,p) 
{
	  inicializaPortal(p);
      if (GBrowserIsCompatible()) 
      {
      	
      	
      	var punto_inicial = eval("new GLatLng("+latitud+","+longitud+");");
      	map = new GMap2(document.getElementById("mapa"));
        map.setCenter(punto_inicial, zoom, tipo_mapa);
        
        var icon= new GIcon();
			icon.image="./img/arrow.png";
			icon.iconSize=new GSize(39,34);
			icon.iconAnchor=new GPoint(11,34);
        	
       	ma = new GxMarker(punto_inicial,icon,"");
			GEvent.addListener(ma,'click',function() {
			map.setCenter(punto_inicial,13);});
		
		map.addOverlay(ma);        
        
        map.enableContinuousZoom();
        map.enableDoubleClickZoom();
        map.enableScrollWheelZoom();
        
        //var ovcontrol = new GOverviewMapControl(new GSize(150,150)); 
      	//map.addControl(ovcontrol);
      
     	var escala=new GScaleControl();
      	map.addControl(escala);
      	//map.addControl(new GLargeMapControl(),new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10))); 
      	//map.addControl(new GLargeMapControl()); 
      	//map.addControl(new GMapTypeControl());
      	
      	//ovmap = ovcontrol.getOverviewMap();
      	//setTimeout("ovmap.setMapType(G_HYBRID_MAP);",1);
      	//setTimeout("ovmap.setMapType(G_HYBRID_MAP);",1);
      	      		
      	//GEvent.addListener(map,'click',function(overlay,point){if(!overlay)tratar_punto(point,"");});
		generaClusters();
		
		GEvent.addListener(map,"zoomend",calculaZoomMarcar);
		calculaZoomMarcar(-1,map.getZoom());
		
		if (id!=null && id!=""){
			loadDatosPuntos('./include/puntos_inicio.jsp?idioma='+idioma+'&id='+id,pintarPuntos);
			abrir_bocadillo(id);
		}			
      }
      else 
      {
      	alert('Tu navegador no soporta google maps');
      }
}
function mostrar_puntos_rutas(paramIdioma)
{
	ponerCargandoPuntos();
	limpia_mapa();
	var parametros="";
	var parametros2="";
	var primero=true;
	var idioma = paramIdioma;
	for (var i=0;i < document.formulario.elements.length;i++)
	{
		var elemento = document.formulario.elements[i];
		if (elemento.type == "checkbox" && elemento.checked)
		{
			if (primero)
			{
				parametros = elemento.value;	
				primero=false;
			}
			else
			{
				parametros += ","+elemento.value;
			}
		
		}
	}
	for (var i=0;i < document.formulario.elements.length;i++)
	{
		var elemento = document.formulario.elements[i];
		if (elemento.type == "checkbox")
		{
			if (primero)
			{
				parametros2 = elemento.value;	
				primero=false;
			}
			else
			{
				parametros2 += ","+elemento.value;
			}
		
		}
	}
	loadDatosPuntos('./include/puntosRutas2.jsp?idioma='+paramIdioma+'&parametros='+escape(parametros)+'&parametros2='+escape(parametros2)+ '&soloRuta=' +true,pintarPuntosEnRuta);
}

function mostrar_puntos(paramIdioma)
{
	ponerCargandoPuntos();
	limpia_mapa();
	var parametros="";
	var parametros2="";
	var primero=true;
	var idioma = paramIdioma;
	for (var i=0;i < document.formulario.elements.length;i++)
	{
		var elemento = document.formulario.elements[i];
		if (elemento.type == "checkbox" && elemento.checked)
		{
			if (primero)
			{
				parametros = elemento.value;	
				primero=false;
			}
			else
			{
				parametros += ","+elemento.value;
			}
		
		}
	}
	
	for (var i=0;i < document.formulario.elements.length;i++)
	{
		var elemento = document.formulario.elements[i];
		if (elemento.type == "checkbox")
		{
			if (primero)
			{
				parametros2 = elemento.value;	
				primero=false;
			}
			else
			{
				parametros2 += ","+elemento.value;
			}
		
		}
	}
	
	loadDatosPuntos('./include/puntos.jsp?idioma='+paramIdioma+'&parametros='+escape(parametros)+'&parametros2='+escape(parametros2)+ '&soloRuta=' +false,pintarPuntos);
}

function mostrar_puntos2(paramIdioma)
{
		
	var elemento1 = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
	var elemento2 = document.formulario.op1_select2.options[document.formulario.op1_select2.selectedIndex].value;
	var elemento3 = document.formulario.op1_select3.options[document.formulario.op1_select3.selectedIndex].value;
		
	ponerCargandoPuntos();
	limpia_mapa();
	
	idioma = paramIdioma;
		
	loadDatosPuntos('./include/puntos2.jsp?idioma='+paramIdioma+'&poligono='+escape(elemento2)+'&municipio='+escape(elemento1)+ '&empresa='+escape(elemento3),tratarPuntos);
}

function mostrar_puntos2b(paramIdioma)
{
		
	var elemento1 = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
	var elemento2 = document.formulario.op1_select2.options[document.formulario.op1_select2.selectedIndex].value;
		
	ponerCargandoPuntos();
	limpia_mapa();
	
	idioma = paramIdioma;
		
	loadDatosPuntos('./include/puntos2b.jsp?idioma='+paramIdioma+'&vivero='+escape(elemento2)+'&municipio='+escape(elemento1),tratarPuntosb);
}
function mostrar_puntos2suelo(paramIdioma,inicio, portal)
{
		
	var elemento1 = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
	var elemento2 = document.formulario.op1_select2.options[document.formulario.op1_select2.selectedIndex].value;
	var elemento3 = document.formulario.op1_select3.options[document.formulario.op1_select3.selectedIndex].value;
	var elemento4 = document.formulario.op1_select4.options[document.formulario.op1_select4.selectedIndex].value;
	var elemento5 = document.formulario.op1_select5.options[document.formulario.op1_select5.selectedIndex].value;		
	
	ponerCargandoPuntos();
	limpia_mapa();
	
	idioma = paramIdioma;
		
	loadDatosPuntos('./include/puntos2Suelos.jsp?idioma='+paramIdioma+'&p='+escape(portal)+'&modalidad='+escape(elemento1)+'&direccion='+escape(elemento2)+'&zona='+escape(elemento3)+'&municipio='+escape(elemento4)+'&tipo='+escape(elemento5),function(){tratarPuntos2Suelo(inicio);});
}
function mostrar_puntos3(paramIdioma,inicio)
{
		
	var elemento1 = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
	var elemento2 = document.formulario.op1_select2.options[document.formulario.op1_select2.selectedIndex].value;
	var elemento3 = document.formulario.op1_select3.options[document.formulario.op1_select3.selectedIndex].value;
		
	ponerCargandoPuntos();
	limpia_mapa();
	
	idioma = paramIdioma;
		
	loadDatosPuntos('./include/puntos2.jsp?idioma='+paramIdioma+'&poligono='+escape(elemento2)+'&municipio='+escape(elemento1)+ '&empresa='+escape(elemento3),function(){tratarPuntos2(inicio);});
	
	quitarCargandoPuntos();
}

function mostrar_puntos3b(paramIdioma,inicio)
{
		
	var elemento1 = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
	var elemento2 = document.formulario.op1_select2.options[document.formulario.op1_select2.selectedIndex].value;
		
	ponerCargandoPuntos();
	limpia_mapa();
	
	idioma = paramIdioma;
		
	loadDatosPuntos('./include/puntos2b.jsp?idioma='+paramIdioma+'&vivero='+escape(elemento2)+'&municipio='+escape(elemento1),function(){tratarPuntos2b(inicio);});
	
	quitarCargandoPuntos();
}

function tratarPuntos()
{
	if(req_puntos.readyState==4)
	{
		if(req_puntos.status==200)
		{
    		var arrayDatos = trim(req_puntos.responseText);
    		
    		if (arrayDatos!=null && arrayDatos!="" && arrayDatos!=" "){
    			loadDatosPuntos('./include/puntos3.jsp?idioma='+idioma+'&p='+portal+'&arrayPuntos='+arrayDatos,pintarPuntos);
    		}
    		loadDatosBuscador('./include/buscador3.jsp?idioma='+idioma+'&p='+portal+'&arrayPuntos='+arrayDatos,mostrarResultadosBusqueda);
    		quitarCargandoPuntos();
    		
    	}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}    	    
	}
}

function tratarPuntosb()
{
	if(req_puntos.readyState==4)
	{
		if(req_puntos.status==200)
		{
    		var arrayDatos = trim(req_puntos.responseText);
    		
    		if (arrayDatos!=null && arrayDatos!="" && arrayDatos!=" "){
    			loadDatosPuntos('./include/puntos3.jsp?p='+portal+'&idioma='+idioma+'&arrayPuntos='+arrayDatos,pintarPuntos);
    		}
    		loadDatosBuscador('./include/buscador3.jsp?p='+portal+'&idioma='+idioma+'&arrayPuntos='+arrayDatos,mostrarResultadosBusqueda);
    		quitarCargandoPuntos();
    		
    	}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}
    	
    
	}
}

function tratarPuntos2(inicio)
{
	if(req_puntos.readyState==4)
	{
		if(req_puntos.status==200)
		{
    		var arrayDatos = trim(req_puntos.responseText);
    		loadDatosBuscador('./include/buscador3.jsp?inicio='+inicio+'&p='+portal+'&idioma='+idioma+'&arrayPuntos='+arrayDatos,mostrarResultadosBusqueda);
    	
    	}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}
    	
    
	}
}

function tratarPuntos2b(inicio)
{
	if(req_puntos.readyState==4)
	{
		if(req_puntos.status==200)
		{
    		var arrayDatos = trim(req_puntos.responseText);
    		loadDatosBuscador('./include/buscador3.jsp?p='+portal+'&inicio='+inicio+'&idioma='+idioma+'&arrayPuntos='+arrayDatos,mostrarResultadosBusqueda);
    	
    	}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}
    	
    
	}
}

function tratarPuntos2Suelo(inicio)
{
	if(req_puntos.readyState==4)
	{
		if(req_puntos.status==200)
		{
    		var arrayDatos = trim(req_puntos.responseText);
    		
    		var cadena=eval(arrayDatos);
    		var lista="";
    		for(i=0;i<(cadena.length-1);i++)
    		{
    			lista=lista+cadena[i].pk_rec+",";
    		}
    		if(cadena.length>0)
	   			lista=lista+cadena[i].pk_rec;

    		if (arrayDatos!=null && arrayDatos!="" && arrayDatos!=" "){
    			loadDatosPuntos('./include/puntos3.jsp?idioma='+idioma+'&arrayPuntos='+lista,pintarPuntos);
    		}
    		loadDatosBuscador('./include/buscador2Suelo.jsp?p='+portal+'&inicio='+inicio+'&idioma='+idioma+'&arrayPuntos='+lista,mostrarResultadosBusquedaSuelos);
    		quitarCargandoPuntos();    		
    	}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}    	    
	}
}
function trim(cadena)
{
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)=="\n" || cadena.charAt(i)=="\r")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}

	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}
	
	return cadena;
}

function cambiaOptions(paramIdioma,opcion) {
	//alert('esto es una mierda con comillas');
	if (opcion == '1'){
		var parametro = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
		loadCombo('./include/opciones.jsp?idioma='+paramIdioma+'&opcion='+escape(opcion)+'&parametro='+escape(parametro),function(){cambiarCombos(opcion);});

	} else if (opcion == '2') {
		var parametro = document.formulario.op1_select2.options[document.formulario.op1_select2.selectedIndex].value;
		var parametroAux = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
		
		loadCombo('./include/opciones.jsp?idioma='+paramIdioma+'&opcion='+escape(opcion)+'&parametro='+escape(parametro)+'&parametroAux='+escape(parametroAux),function(){cambiarCombos(opcion);});

	}
	
	
}

function cambiaOptionsb(paramIdioma,opcion) {
	var parametro = document.formulario.op1_select1.options[document.formulario.op1_select1.selectedIndex].value;
	
	loadCombo('./include/opcionesb.jsp?idioma='+paramIdioma+'&opcion='+escape(opcion)+'&parametro='+escape(parametro),function(){cambiarCombosb(opcion);});

}

function cambiarCombos(opcion){
	
	if(req_combo.readyState==4)
    {
		
		// Comprobamos si ha habido exito
    	if(req_combo.status==200)
    	{
    		//alert(req_puntos.responseText);
    		var arrayDatos = eval(req_combo.responseText);
    	    var combo1 = document.formulario.op1_select2.options;
    	    
    	    var combo2 = document.formulario.op1_select3.options;
    	  
    	   
    		if (opcion=='1'){
    			combo1.length=null;
    			combo2.length=null;
    			
    			
    			var indice1 = 1;
    			var indice2 = 1;
    			var option;
    			
    			option = new Option ("Seleccione una opcion","","","");
    			combo1[0] = option;
    			option = new Option ("Seleccione una opcion","","","");
    			combo2[0] = option;
    			for (i=0;i<arrayDatos.length;i++)
        		{
        			if (arrayDatos[i].combo=='poligonos' || arrayDatos[i].combo=='viveros'){
    					
    					option = new Option(arrayDatos[i].nombre,arrayDatos[i].pk_rec,"","");
        			    combo1[indice1] = option;
        			    indice1++;
        			} else if (arrayDatos[i].combo=='empresas'){
        				
        				option = new Option(arrayDatos[i].nombre,arrayDatos[i].pk_rec,"","");
        			    combo2[indice2] = option;
        			    indice2++;
        			} 
        		}
    		} else if (opcion=='2'){
    			combo2.length=null;
    			    			
	 			var option = new Option ("Seleccione una opcion","","","");
	 			combo2[0] = option;
    			for (i=0;i<arrayDatos.length;i++)
        		{
    				option = new Option(arrayDatos[i].nombre,arrayDatos[i].pk_rec,"","");
    			    combo2[i+1] = option;
        		}	
    		}
    	}

    }
}

function cambiarCombosb(opcion){
	
	
	if(req_combo.readyState==4)
    {
		
		// Comprobamos si ha habido exito
    	if(req_combo.status==200)
    	{
    		
    		//alert(req_puntos.responseText);
    		var arrayDatos = eval(req_combo.responseText);
    	    var combo1 = document.formulario.op1_select2.options;
    	    
    	  if (opcion=='1'){
    			combo1.length=null;
    			
    			
    			var indice1 = 1;
    			var indice2 = 1;
    			var option;
    			
    			option = new Option ("Seleccione una opcion","","","");
    			combo1[0] = option;
    			for (i=0;i<arrayDatos.length;i++)
        		{
    				if (arrayDatos[i].combo=='poligonos' || arrayDatos[i].combo=='vivero'){
    					
    					option = new Option(arrayDatos[i].nombre,arrayDatos[i].pk_rec,"","");
        			    combo1[indice1] = option;
        			    indice1++;
        			} else if (arrayDatos[i].combo=='empresas'){
        				
        				option = new Option(arrayDatos[i].nombre,arrayDatos[i].pk_rec,"","");
        			    combo2[indice2] = option;
        			    indice2++;
        			} 
        		}
    		} else if (opcion=='2'){
    			combo2.length=null;
    			    			
	 			var option = new Option ("Seleccione una opcion","","","");
	 			combo2[0] = option;
    			for (i=0;i<arrayDatos.length;i++)
        		{
    				option = new Option(arrayDatos[i].nombre,arrayDatos[i].pk_rec,"","");
    			    combo2[i+1] = option;
        		}	
    		}
    	}

    }
}

function loadDatosPuntos(url,procesoReqCambio)
{    	
	// Puede que no se soporte nativamente el objeto XMLHttpRequest
    if(window.XMLHttpRequest)
    {
    	req_puntos=new XMLHttpRequest();	
    }
    else if(window.ActiveXObject)
    {
    	req_puntos= new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(req_puntos)
    {
    	req_puntos.onreadystatechange=procesoReqCambio;
    	req_puntos.open("POST",url,true);
    	req_puntos.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	req_puntos.send("id=3");
    }
}

function loadCombo(url,procesoReqCambio)
{    	
	// Puede que no se soporte nativamente el objeto XMLHttpRequest
    if(window.XMLHttpRequest)
    {
    	req_combo=new XMLHttpRequest();	
    }
    else if(window.ActiveXObject)
    {
    	req_combo= new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(req_combo)
    {
    	req_combo.onreadystatechange=procesoReqCambio;
    	req_combo.open("POST",url,true);
    	req_combo.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	req_combo.send("id=3");
    }
}

function mostrarPunto(nombrePunto,coordenadaPunto,iconoPunto,iconWidth,iconHeight,pk_rec,fk_cat)
{
	
	variable = 'marker'+pk_rec;
	
	if (typeof(window[variable])=='undefined') 
	{
		//No esta el marker, por tanto lo pintamos
		var icon= new GIcon();
   		icon.image='./img/'+iconoPunto;
   		icon.iconSize=new GSize(iconWidth,iconHeight);
		icon.iconAnchor=new GPoint((iconWidth/2),(iconHeight/2));
		var point=eval('new GLatLng'+coordenadaPunto);
		//eval('marker'+pk_rec+' = new GxMarker(point,icon,nombrePunto)');		
		eval('marker'+pk_rec+' = new GMarker(point,{icon:icon,title:nombrePunto});');
		eval('marker'+pk_rec+'.pk_rec=pk_rec;')
		eval('GEvent.addListener(marker'+pk_rec+',\'click\',function(){abrir_bocadillo(\''+pk_rec+'\')});');
		eval('GEvent.addListener(marker'+pk_rec+',\'remove\',ocultarMarker);');
		//map.addOverlay(marker);
		//clusterer.AddMarker(marker,arrayDatos[i].nombre);
		nombreCluster="clusterer_"+fk_cat;
		eval(nombreCluster+'.AddMarker(marker'+pk_rec+',nombrePunto)');
		
	}
	else
	{
		//Esta el marker, vemos si esta oculto o no
		if (window[variable].isHidden())
		{
			//Si esta oculto, lo ponemos a show y pintamos el punto
			//La function show() no pinta el punto solo pone el isHidden a true;
			window[variable].show();
			var icon= new GIcon();
	   		icon.image='./img/'+iconoPunto;
   			icon.iconSize=new GSize(iconWidth,iconHeight);
			icon.iconAnchor=new GPoint((iconWidth/2),(iconHeight/2));
			var point=eval('new GLatLng'+coordenadaPunto);
			//eval('marker'+pk_rec+' = new GxMarker(point,icon,nombrePunto)');		
			eval('marker'+pk_rec+' = new GMarker(point,{icon:icon,title:nombrePunto});');
			eval('marker'+pk_rec+'.pk_rec=pk_rec;')
			eval('GEvent.addListener(marker'+pk_rec+',\'click\',function(){abrir_bocadillo(\''+pk_rec+'\')});');
			eval('GEvent.addListener(marker'+pk_rec+',\'remove\',ocultarMarker);');
			//map.addOverlay(marker);
			//clusterer.AddMarker(marker,arrayDatos[i].nombre);
			nombreCluster="clusterer_"+fk_cat;
			eval(nombreCluster+'.AddMarker(marker'+pk_rec+',nombrePunto)');
		}		
	}

}
/*function pintarPuntos()
{
	if(req_puntos.readyState==4)
    {
    	// Comprobamos si ha habido exito
    	if(req_puntos.status==200)
    	{
    		//alert(req_puntos.responseText);
    		arrayDatos = eval(req_puntos.responseText);
    		for (i=0;i<arrayDatos.length;i++)
    		{
    			var icon= new GIcon();
		   		icon.image='./img/'+arrayDatos[i].icono;
		   		icon.iconSize=new GSize(arrayDatos[i].iconWidth,arrayDatos[i].iconHeight);
  				icon.iconAnchor=new GPoint((arrayDatos[i].iconWidth/2),(arrayDatos[i].iconHeight/2));
				var point=eval('new GLatLng('+arrayDatos[i].latitud+','+arrayDatos[i].longitud+')');
				var nombre = "";
				
				if (typeof(arrayDatos[i].nombre)!='undefined')
				{
					nombre=arrayDatos[i].nombre
				}
				else
				{
					nombre="";
				}
				//eval('marker'+arrayDatos[i].pk_rec+' = new GxMarker(point,icon,nombre)');
				eval('marker'+arrayDatos[i].pk_rec+' = new GMarker(point,{icon:icon,title:nombre});');
				eval('marker'+arrayDatos[i].pk_rec+'.pk_rec=arrayDatos[i].pk_rec;')
				//eval('GEvent.addListener(marker'+arrayDatos[i].pk_rec+',\'click\',abrir_bocadillo);');
				
				eval('GEvent.addListener(marker'+arrayDatos[i].pk_rec+',\'click\',function(){abrir_bocadillo(\''+arrayDatos[i].pk_rec+'\')});');
				eval('GEvent.addListener(marker'+arrayDatos[i].pk_rec+',\'remove\',ocultarMarker);');
				//map.addOverlay(marker);
				//clusterer.AddMarker(marker,arrayDatos[i].nombre);
				nombreCluster="clusterer_"+arrayDatos[i].fk_cat;
				eval(nombreCluster+'.AddMarker(marker'+arrayDatos[i].pk_rec+',nombre)');
			}
			quitarCargandoPuntos();
		}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}
	}
}*/

function pintarPuntos()
{
	
	if(req_puntos.readyState==4)
    {
		
    	// Comprobamos si ha habido exito
    	if(req_puntos.status==200)
    	{
    		
    		//alert(req_puntos.responseText);
    		var arrayDatos = eval(req_puntos.responseText);
    		var arrayPuntos = new Array();
    		var tam = 0;
    		for (i=0;i<arrayDatos.length;i++)
    		{
    			var icon= new GIcon();
				icon.image='./img/'+arrayDatos[i].icono;
				icon.iconSize=new GSize(arrayDatos[i].iconWidth,arrayDatos[i].iconHeight);
				icon.iconAnchor=new GPoint((arrayDatos[i].iconWidth/2),(arrayDatos[i].iconHeight/2));
				var point=eval('new GLatLng('+arrayDatos[i].latitud+','+arrayDatos[i].longitud+')');
				var nombre = "";
				
				if (typeof(arrayDatos[i].nombre)!='undefined')
				{
					nombre=arrayDatos[i].nombre
				}
				else
				{
					nombre="";
				}
				
				eval('marker' + arrayDatos[i].pk_rec  + ' = new GMarker(point,{icon:icon,title:nombre});');
				eval('marker'+arrayDatos[i].pk_rec+'.pk_rec=arrayDatos[i].pk_rec;')
				
				eval('GEvent.addListener(marker'+arrayDatos[i].pk_rec+',\'click\',function(){abrir_bocadillo(\''+arrayDatos[i].pk_rec+'\')});');
				eval('GEvent.addListener(marker'+arrayDatos[i].pk_rec+',\'remove\',ocultarMarker);');
				map.addOverlay(eval('marker' + arrayDatos[i].pk_rec));
				//clusterer.AddMarker(marker,arrayDatos[i].nombre);
				nombreCluster="clusterer_"+arrayDatos[i].fk_cat;
				eval(nombreCluster+'.AddMarker(marker'+arrayDatos[i].pk_rec+',nombre)');
			}	
			var parametros="";
			var parametros2="";
			var primero=true;
			for (var i=0;i < document.formulario.elements.length;i++)
			{
				var elemento = document.formulario.elements[i];
				if (elemento.type == "checkbox" && elemento.checked)
				{
					if (primero)
					{
						parametros = elemento.value;	
						primero=false;
					}
					else
					{
						parametros += ","+elemento.value;
					}
				
				}
			}		
			for (var i=0;i < document.formulario.elements.length;i++)
			{
				var elemento = document.formulario.elements[i];
				if (elemento.type == "checkbox")
				{
					if (primero)
					{
						parametros2 = elemento.value;	
						primero=false;
					}
					else
					{
						parametros2 += ","+elemento.value;
					}
				
				}
			}	
			loadDatosPuntos('./include/puntos.jsp?idioma='+idioma+'&parametros='+escape(parametros)+ '&parametros2='+escape(parametros2)+ '&soloRuta=' + true,pintarPuntosEnRuta);
		}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}
	}
}
function pintarPuntosEnRuta()
{
	if(req_puntos.readyState==4)
    {
    	// Comprobamos si ha habido exito
    	if(req_puntos.status==200)
    	{
    		var arrayDatos = eval(req_puntos.responseText);
    		var arrayPuntos = new Array();
    		var tam = 0;
    		var pk_rutaAnterior = ""; 
    		for (i=0;i<arrayDatos.length;i++)
    		{
    			if(i == 0){
    				pk_rutaAnterior = arrayDatos[i].pk_ruta;
    			}
				var icon= new GIcon();
				icon.image='./img/'+arrayDatos[i].icono;
				icon.iconSize=new GSize(arrayDatos[i].iconWidth,arrayDatos[i].iconHeight);
				icon.iconAnchor=new GPoint((arrayDatos[i].iconWidth/2),(arrayDatos[i].iconHeight/2));
				var point=eval('new GLatLng('+arrayDatos[i].latitud+','+arrayDatos[i].longitud+')');
				
				if(arrayDatos[i].pk_ruta == pk_rutaAnterior ){
					arrayPuntos[tam] = point;
					tam ++;
				}
			 
				
				var nombre = "";
				
				if (typeof(arrayDatos[i].nombre)!='undefined')
				{
					nombre=arrayDatos[i].nombre
				}
				else
				{
					nombre="";
				}
				
				eval('marker' + arrayDatos[i].pk_rec  + ' = new GMarker(point,{icon:icon,title:nombre});');
				eval('marker'+arrayDatos[i].pk_rec+'.pk_rec=arrayDatos[i].pk_rec;')
				
				eval('GEvent.addListener(marker'+arrayDatos[i].pk_rec+',\'click\',function(){abrir_bocadillo(\''+arrayDatos[i].pk_rec+'\')});');
				eval('GEvent.addListener(marker'+arrayDatos[i].pk_rec+',\'remove\',ocultarMarker);');
				map.addOverlay(eval('marker' + arrayDatos[i].pk_rec));
				nombreCluster="clusterer_"+arrayDatos[i].fk_cat;
				eval(nombreCluster+'.AddMarker(marker'+arrayDatos[i].pk_rec+',nombre)');
				if(arrayDatos[i].pk_ruta != pk_rutaAnterior  && arrayDatos[i].pk_ruta != "0"){
					pk_rutaAnterior = arrayDatos[i].pk_ruta;
					var polyline = new GPolyline(arrayPuntos, "#" + arrayDatos[i-1].color, 6, 0.9);
					map.addOverlay(polyline);
					arrayPuntos = new Array();
					arrayPuntos[0] = point;
					tam = 1;
				}
		
			}
			if(arrayPuntos.length > 0){
				var polyline = new GPolyline(arrayPuntos, "#" + arrayDatos[arrayDatos.length - 1].color, 6, 0.9);
				map.addOverlay(polyline);
			}
			quitarCargandoPuntos();
		}
		else
    	{
    		alert("Problema al recoger los puntos seleccionados:\n"+req_puntos.statusText);
    	}
	}
}
function ocultarMarker()
{
	this.hide();	
}
function abrir_bocadillo(clave)
{
	if (clave==null)
	{
		pk_rec=this.pk_rec;
		panTo=false;		
	}
	else
	{
		pk_rec=clave;
		panTo=true;
	}
	if(portal==null)
	{
		portal=this.portal;
	}
	var idioma = document.formulario.idioma.value;
	loadDatosBocadillo('./include/bocadillo.jsp?idioma='+idioma+'&p='+portal+'&pk_rec='+escape(pk_rec),function(){pinta_bocadillo(panTo);});

}
function abrir_bocadilloRelacion(clave)
{
	if (clave==null)
	{
		pk_rec=this.pk_rec;
		panTo=false;		
	}
	else
	{
		pk_rec=clave;
		panTo=true;
	}
	var idioma = document.formulario.idioma.value;
	loadDatosBocadillo('./include/bocadilloRelacion.jsp?idioma='+idioma+'&p='+portal+'&pk_rec='+escape(pk_rec),function(){pinta_bocadilloRelacion(panTo);});

}


function pinta_bocadillo(panTo)
{
	if(req_bocadillo.readyState==4)
    {
    	// Comprobamos si ha habido exito
    	if(req_bocadillo.status==200)
    	{
			//alert(req_bocadillo.responseText)
			datosBocadillo = eval(req_bocadillo.responseText);
			var point=eval('new GLatLng'+datosBocadillo[0].punto);
  			efectoBocata(point,datosBocadillo[0].codigoHtml,panTo);			
  			
  			//Otras formas de abrir el bocadillo
  			//map.openInfoWindowHtml(point,datosBocadillo[0].codigoHtml);  
  			/* capa_bocadillo = document.getElementById('cuerpo_bocadillo');
  			capa_bocadillo.innerHTML = datosBocadillo[0].codigoHtml;
  			map.openInfoWindow(point,capa_bocadillo);*/
  			
		}
		else
    	{
    		alert("Problema al recoger los datos del bocadillo:\n"+req_bocadillo.statusText);
    	}
	}

}
function loadDatosBocadillo(url,procesoReqCambio)
{    	
	// Puede que no se soporte nativamente el objeto XMLHttpRequest
    if(window.XMLHttpRequest)
    {
    	req_bocadillo=new XMLHttpRequest();	
    }
    else if(window.ActiveXObject)
    {
    	req_bocadillo= new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(req_bocadillo)
    {
    	req_bocadillo.onreadystatechange=procesoReqCambio;
    	//req_bocadillo.onsuccess=procesoReqCambio;
    	req_bocadillo.open("POST",url,true);
    	req_bocadillo.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	req_bocadillo.send("id=3");
    }
}
function zoomMaximo(puntox,puntoy)
{
    	// Ponemos un zoom por cada tipo de mapa 

	var nombre_Actual=map.getCurrentMapType();
    //zooma = nombre_Actual.getMaximumResolution(new GLatLng(puntox,puntoy));
    zooma = 17;
    /*var nombre_Actual=map.getCurrentMapType().getName();
    
    	if(nombre_Actual==G_NORMAL_MAP.getName())
 		{
 			zooma=17;
 		}
 		else if(nombre_Actual==G_HYBRID_MAP.getName())
 		{
 			zooma=15;
 		}
 		else if(nombre_Actual==G_SATELLITE_MAP.getName())
		{
			zooma=15;
		}
	*/
	//alert(zooma);
	map.setCenter(new GLatLng(puntox,puntoy), zooma-2); 	
}
function loadDatosFicha(url,procesoReqCambio)
{    	
	// Puede que no se soporte nativamente el objeto XMLHttpRequest
    if(window.XMLHttpRequest)
    {
    	req_ficha=new XMLHttpRequest();	
    }
    else if(window.ActiveXObject)
    {
    	req_ficha= new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(req_ficha)
    {
    	req_ficha.onreadystatechange=procesoReqCambio;
    	//req_bocadillo.onsuccess=procesoReqCambio;
    	req_ficha.open("POST",url,true);
    	req_ficha.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	req_ficha.send("id=3");
    }
}
function abrirFicha(pk_rec) {

        var idioma = document.formulario.idioma.value;        
        /*
        miPopup = window.open('./include/ficha.jsp?idioma='+idioma+'&pk_rec='+pk_rec,"_blank","width=900,height=700,toolbar=no,directories=no,menubar=no,scrollbars=yes,left=5,top=5");

		if (!miPopup.opener) 
		{
        	miPopup.opener = self;
        }
        */  
        if(portal==null || portal=="")
        	portal=this.portal;
        ponerCargandoPuntos();
        loadDatosFicha('./include/ficha.jsp?idioma='+idioma+'&pk_rec='+pk_rec+'&p='+portal,pintaFicha);

}


function abrirGaleria(pk_rec) {

    var idioma = document.formulario.idioma.value;        
    /*
    miPopup = window.open('./include/ficha.jsp?idioma='+idioma+'&pk_rec='+pk_rec,"_blank","width=900,height=700,toolbar=no,directories=no,menubar=no,scrollbars=yes,left=5,top=5");

	if (!miPopup.opener) 
	{
    	miPopup.opener = self;
    }
    */  
    
    loadDatosFicha('./include/galeria.jsp?idioma='+idioma+'&p='+portal+'&pk_rec='+pk_rec,pintaFicha);

}

function abrirLocalizacion(pk_rec) {

    var idioma = document.formulario.idioma.value;        
    /*
    miPopup = window.open('./include/ficha.jsp?idioma='+idioma+'&pk_rec='+pk_rec,"_blank","width=900,height=700,toolbar=no,directories=no,menubar=no,scrollbars=yes,left=5,top=5");

	if (!miPopup.opener) 
	{
    	miPopup.opener = self;
    }
    */  
    loadDatosFicha('./include/localizacion.jsp?idioma='+idioma+'&p='+portal+'&pk_rec='+pk_rec,pintaFicha);

}

function pintaFicha()
{
	if(req_ficha.readyState==4)
    {
    	// Comprobamos si ha habido exito
    	if(req_ficha.status==200)
    	{
    		quitarCargandoPuntos();
    		datosFicha = eval(req_ficha.responseText);
			var point=eval('new GLatLng'+datosFicha[0].punto);
  			efectoFicha(point,datosFicha[0].codigoHtml);			  			
		}
		else
    	{
    		alert("Problema al recoger los datos del bocadillo:\n"+req_ficha.statusText);
    	}
	}
/* 
         var contenidoFicha=document.getElementById("contenidoFicha");
        
        contenidoFicha*/
}
 function ponerCargandoPuntos()
{
	var obj=document.getElementById('cargandoPuntos');
	obj.style.display='block';

}
function quitarCargandoPuntos()
{
	var obj=document.getElementById('cargandoPuntos');
	obj.style.display='none';
}
function bloquearMapa()
{
	if (map.draggingEnabled())
	{
		map.disableDragging();
	}
}
function desbloquearMapa()
{
	map.enableDragging();	
}
function cambia_tipo_mapa(tipo_mapa)
{
	map.setMapType(tipo_mapa);
	//ovmap.setMapType(tipo_mapa);
	marca_tipo_mapa();
}
function marca_tipo_mapa()
{
	var idioma = document.formulario.idioma.value;
	if(G_NORMAL_MAP.getName()==map.getCurrentMapType().getName())
	{
		document.getElementById('pestana_mapa').src=imgFolder+idioma+'pestana_mapa_selec.gif';
		document.getElementById('pestana_satelite').src=imgFolder+idioma+'pestana_satelite.gif';
		document.getElementById('pestana_mixto').src=imgFolder+idioma+'pestana_mixto.gif';
	}
	else if(G_SATELLITE_MAP.getName()==map.getCurrentMapType().getName())
	{
		document.getElementById('pestana_mapa').src=imgFolder+idioma+'pestana_mapa.gif';
		document.getElementById('pestana_satelite').src=imgFolder+idioma+'pestana_satelite_selec.gif';
		document.getElementById('pestana_mixto').src=imgFolder+idioma+'pestana_mixto.gif';
	}
	else
	{
		document.getElementById('pestana_mapa').src=imgFolder+idioma+'pestana_mapa.gif';
		document.getElementById('pestana_satelite').src=imgFolder+idioma+'pestana_satelite.gif';
		document.getElementById('pestana_mixto').src=imgFolder+idioma+'pestana_mixto_selec.gif';
	}
}



function pinta_bocadilloRelacion(panTo)
{
	if(req_bocadillo.readyState==4)
    {
    	// Comprobamos si ha habido exito
    	if(req_bocadillo.status==200)
    	{
			datosBocadillo = eval(req_bocadillo.responseText);			
			var point=eval('new GLatLng'+datosBocadillo[0].punto);
  			efectoBocata(point,datosBocadillo[0].codigoHtml,panTo);
  			var icon= new GIcon();
			icon.image='./img/'+datosBocadillo[0].icono;
			icon.iconSize=new GSize(datosBocadillo[0].iconWidth,datosBocadillo[0].iconHeight);
			icon.iconAnchor=new GPoint((datosBocadillo[0].iconWidth/2),(datosBocadillo[0].iconHeight/2));
			var nombre = "";
				
				if (typeof(datosBocadillo[0].nombre)!='undefined')
				{
					nombre=datosBocadillo[0].nombre
				}
				else
				{
					nombre="";
				}
				
				eval('marker' + datosBocadillo[0].pk_rec  + ' = new GMarker(point,{icon:icon,title:nombre});');
				eval('marker'+datosBocadillo[0].pk_rec+'.pk_rec=datosBocadillo[0].pk_rec;')
				
				eval('GEvent.addListener(marker'+datosBocadillo[0].pk_rec+',\'click\',function(){abrir_bocadillo(\''+datosBocadillo[0].pk_rec+'\')});');
				eval('GEvent.addListener(marker'+datosBocadillo[0].pk_rec+',\'remove\',ocultarMarker);');
				map.addOverlay(eval('marker' + datosBocadillo[0].pk_rec));
				
				nombreCluster="clusterer_"+datosBocadillo[0].fk_cat;
				eval(nombreCluster+'.AddMarker(marker'+datosBocadillo[0].pk_rec+',nombre)');			
  		}
		else
    	{
    		alert("Problema al recoger los datos del bocadillo:\n"+req_bocadillo.statusText);
    	}
	}

}
function abrirParcelas(id)
{
	newwindow=window.open("parcelas.jsp?id="+id,'name','height=773,width=1079');
	if (window.focus) {newwindow.focus()}
}
function generaPdf(id,idioma)
{
	newwindow=window.open("pdf.jsp?id="+id+"&idioma="+idioma,'name','height=773,width=1079');
	if (window.focus) {newwindow.focus()}
}
function inicializaPortal(p){
	portal = p;
}
