// JavaScript Document
jQuery(document).ready(function(){  

	// Para el control de errores
	var error = false;
	var imprimir = false;
	var imprimirr = false;	
	
	// Imprimir.
	jQuery("#imprimir").click(function(){
		imprimir = true;
	});
	jQuery("#imprimiruta").click(function(){
		imprimirr = true;
	});	
	
	// Imprimir.
	jQuery("#signupsubmit").click(function(){
		imprimir = false;
	});
	jQuery("#signupsubmitr").click(function(){
		imprimirr = false;
	});	

	// Ocultamos la zona de Rutas y de Errores y el boton imprimir
	jQuery("#frmRuta").hide();
	jQuery('#errores').hide();	
	jQuery('#errores').hide();

	// Ocultamos los campos que nos sirven para el control del callejero de la página de inicio.
	jQuery("#frmCallejero").hide();

	// Funciones
	// Plugin para controlar la carga de imagenes. En este caso la imagen ajax-loader.gif.
	jQuery.fn.cargador = function(src, f){
		return this.each(function(){
			var i = new Image();
			i.src = src;
			i.onload = f;
			this.appendChild(i);
		});
	}
	
	// Validar Formulario Callejero
	var validator = jQuery("#frmCallejero").validate({
		rules: {
			nombrevia: "required",
			numerovia: "number"
		},
		messages: {
			nombrevia: " Campo Obligatorio.",
			numerovia: " N&uacute;mero de v&iacute;a inv&aacute;lido."			
		},
		submitHandler: function() {
			if (imprimir == true){
				var nombrevia = jQuery("#nombrevia").val();
				var numerovia = jQuery("#numerovia").val();	
				var datos = "nombrevia=" +  nombrevia + "&numerovia=" + numerovia;
				
				var printWindow;
				var enlace;
				enlace ="http://www.ayuncordoba.es/callejero/callejero_print.php?" + datos;
				
				ventana=window.open(enlace); 
				ventana.focus(); 
				return false;				
				/*
				printWindow = window.open(enlace, "Callejero", "fullscreen=no,toolbar=no,status=no,menubar=yes,scrollbars=yes,resizable=no,directories=no,location=no,width=640,height=480,top=0,left=0");				
				*/
			}else{
				// Cargamos el mapa si el formulario esta correcto
				var nombrevia = jQuery("#nombrevia").val();
				var numerovia = jQuery("#numerovia").val();			
				var rectificado = jQuery("#rectificado").val();							
				CargaMapa(nombrevia,numerovia,rectificado);
				return false;
			}
		},
		success: function(label) {
			label.html("&nbsp;").addClass("checked");
		}
	})
	
/*	submitHandler: function() {
		// Enviamos el formulario
		jQuery("#frmCallejeroFrontal")[0].submit();   
	}	
*/	
	
	// Control del nombre de via primer control del formulario
	var nombre = $("#nombrevia");
	nombre.blur(function(){
    	if (validator.element(nombre)) {}
	});
	
	
	// Validar Formulario Rutas
	var validatorr = jQuery("#frmRuta").validate({
		rules: {
			nombreviad: "required",
			numeroviad: "number",
			nombreviah: "required",
			numeroviah: "number"			
		},
		messages: {
			nombreviad: " Campo Obligatorio.",
			numeroviad: " N&uacute;mero de v&iacute;a inv&aacute;lido.",
			nombreviah: " Campo Obligatorio.",
			numeroviah: " N&uacute;mero de v&iacute;a inv&aacute;lido."			
		},
		submitHandler: function() {
			
			if (imprimirr == true){
				// Cargamos el mapa si el formulario esta correcto
				var nombreviad = jQuery("#nombreviad").val();
				var numeroviad = jQuery("#numeroviad").val();
				var nombreviah = jQuery("#nombreviah").val();
				var numeroviah = jQuery("#numeroviah").val();
				var tipo = jQuery("#travelMode").val();	
				var datos = "nombreviad=" +  nombreviad + "&numeroviad=" + numeroviad + "&nombreviah=" +  nombreviah + "&numeroviah=" + numeroviah + "&travelMode=" + tipo;
				
				var printWindow;
				var enlace;

				var printWindow;
				var enlace;
				enlace ="http://www.ayuncordoba.es/callejero/callejero_print.php?" + datos;
				
				ventana=window.open(enlace); 
				ventana.focus(); 
				return false;

			}else{			
			
				var nombreviad = jQuery("#nombreviad").val();				
				var numeroviad = jQuery("#numeroviad").val();
				var nombreviah = jQuery("#nombreviah").val();
				var numeroviah = jQuery("#numeroviah").val();
				var tipo = jQuery("#travelMode").val();
				
				CargaMapaRuta(nombreviad,numeroviad,nombreviah,numeroviah,tipo);
				
				return false;
			}
		},
		success: function(label) {
			label.html("&nbsp;").addClass("checked");
		}
	})
	
	// Control del nombre de via desde primer control del formulario
	var nombred = $("#nombreviad");
	nombred.blur(function(){
    	if (validatorr.element(nombred)) {}
	});
	
	// Control del nombre de via hasta primer control del formulario
	var nombreh = $("#nombreviah");
	nombreh.blur(function(){
    	if (validatorr.element(nombreh)) {}
	});	
	
	// Activar formulario de rutas.
	jQuery("#ruta").click(function(){

		// Capturamos la calle a llegar
		var nombrevia = jQuery("#nombrevia").val();
		var numerovia = jQuery("#numerovia").val();

		jQuery("#nombreviah").attr("value",nombrevia);
		jQuery("#numeroviah").attr("value",numerovia);		

		// Reinicia el mapa    	
		ReiniciarMapa();

		// Ocultamos el formulario del callejero
		jQuery("#frmCallejero").hide();
		jQuery("#directions").hide();				 


		// Reseteamos el formulario.
		validator.resetForm();
		
		// Mostramos el formulario de Rutas
		jQuery("#frmRuta").show();

	});	
	
	// Activar formulario de callejero.
	jQuery("#callejero").click(function()
	{ 
		// Reinicia el mapa    	
		ReiniciarMapa();
		
		// Ocultamos el formulario del callejero
		jQuery("#frmRuta").hide();		

		//Reseteamos el formulario.
		validatorr.resetForm();
		// Ponemos los campos desde en blanco
		jQuery("#nombreviad").attr("value","");
		jQuery("#numeroviad").attr("value","");		

		// Mostramos el formulario de Rutas
		jQuery("#frmCallejero").show();
	});		
	
	
	// Si venimos de la página de inicio
	if(jQuery('#nombreviaio').val() != ""){	
		// Ponemos los campos a vacio y cambiamos la calle
		var nombrevia = jQuery("#nombreviaio").val();
		var numerovia = jQuery("#numeroviaio").val();
		jQuery("#nombrevia").attr("value",nombrevia);
		jQuery("#numerovia").attr("value",numerovia);
	}
	
	
	// Mostramos el formulario
	jQuery("#frmCallejero").show();
	
	// Botón Reiniciar Callejero
	jQuery('#reiniciar').click(function(){
		ReiniciarMapa();
	});	
	
	// Botón Reiniciar Ruta	
	jQuery('#reiniciarr').click(function(){
		ReiniciarMapaRuta();
	});	

	// Reinicia el mapa callejero
	function ReiniciarMapa()
	{
		// Creamos el mapa con las coordenatas del Ayuntamiento Capitulares 1.																		
		jQuery('#map').jmap('init', {'mapType':'hybrid', 'mapCenter':[37.885396, -4.77607], 'mapZoom':15, 'mapShowjMapsIcon': false, 'mapEnableInfoWindows': true, 'mapEnableType': true, 'language': 'es'}, function(result, options){
			// Añadimos la primera marca
			jQuery('#map').jmap('AddMarker',{
					'pointLatLng':[37.885396, -4.77607],
					'pointHTML':'Calle de los Capitulares, 1, 14002, Córdoba, España'

			});
			validator.resetForm();			
			jQuery('#nombrevia').attr('value','Calle de los Capitulares');			
			jQuery('#numerovia').attr('value','1');
			// Ocultamos Errores y direcciones
			jQuery('#errores').html('');					
			jQuery('#errores').hide();
			jQuery('#directions').html('');					
			jQuery('#directions').hide();
			jQuery('#alternativas1').html('');					
			jQuery('#alternativas1').hide();
			jQuery('#alternativas2').html('');					
			jQuery('#alternativas2').hide();			
		});
	}
	
	// Reinicia el mapa ruta
	function ReiniciarMapaRuta()
	{
		// Creamos el mapa con las coordenatas del Ayuntamiento Capitulares 1.																		
		jQuery('#map').jmap('init', {'mapType':'hybrid', 'mapCenter':[37.885396, -4.77607], 'mapZoom':15, 'mapShowjMapsIcon': false, 'mapEnableInfoWindows': true, 'mapEnableType': true, 'language': 'es'}, function(result, options){
			// Añadimos la primera marca
			jQuery('#map').jmap('AddMarker',{
					'pointLatLng':[37.885396, -4.77607],
					'pointHTML':'Calle de los Capitulares, 1, 14002, Córdoba, España'

			});
			//Reseteamos el formulario.
			validatorr.resetForm();
			// Ponemos los campos como al principio
			jQuery("#nombreviad").attr("value","");
			jQuery("#numeroviad").attr("value","");			
			jQuery('#nombreviah').attr('value','Calle de los Capitulares');			
			jQuery('#numeroviah').attr('value','1');
			jQuery("#directions").hide();
			// Ocultamos Errores y direcciones
			jQuery('#errores').html('');					
			jQuery('#errores').hide();
			jQuery('#directions').html('');					
			jQuery('#directions').hide();
			jQuery('#alternativas1').html('');					
			jQuery('#alternativas1').hide();
			jQuery('#alternativas2').html('');					
			jQuery('#alternativas2').hide();			
		});
	}	
	
	
	// Precarga de la imagen. Cuando la imagen se ha cargado
	jQuery("#cargador").cargador("../../images/stories/ajax-loader.gif",function(){
	//jQuery("#cargador").cargador("http://10.0.0.4/ayuncordoba/images/stories/ajax-loader.gif",function(){																				 

		// Creamos el mapa con las coordenatas del Ayuntamiento Capitulares 1.																		
		jQuery('#map').jmap('init', {'mapType':'hybrid', 'mapCenter':[37.885396, -4.77607], 'mapZoom':15, 'mapShowjMapsIcon': false, 'mapEnableInfoWindows': true, 'mapEnableType': true, 'language': 'es'}, function(result, options){
			
			// Ocultamos el cargador
			jQuery("#cargador").hide();

			if(jQuery('#nombreviaio').val() != ""){	
				// Cargamos el mapa con la nueva dirección
				var nombrevia = jQuery("#nombrevia").val();
				var numerovia = jQuery("#numerovia").val();				
				var rectificado = jQuery("#rectificado").val();								
				CargaMapa(nombrevia,numerovia,rectificado);
			}else{
				// Añadimos la primera marca
				jQuery('#map').jmap('AddMarker',{
						'pointLatLng': [37.885396, -4.77607],
						'pointHTML':'Calle de los Capitulares, 1, 14002, Córdoba, España.<br /><strong>Ayuntamiento de Córdoba.</strong>'
				});			
			}
		});

	});	
	
	// Carga el mapa para el Callejero
	function CargaMapa(via, numero, rectificado){

		var cadenasplit = new String(via);
		var cadena2split = cadenasplit.split(",");
		var cadena3split = "";

		// Si el usuario ha puesto un número en la consulta de búsqueda.
		if (numero != ""){
			
			// si el campo de busqueda tiene varios parametros separados por comas
			if (cadena2split.length > 1)
			{
				cadena3split = cadena2split[0] + ", " + numero;
				for (var i=1; i < cadena2split.length; i++) {
					cadena3split = cadena3split + ", " + cadena2split[i];
				}
				cadena3split = cadena3split + ", España";				

			// Sin comas
			}else{
				cadena3split = cadenasplit + ", " + numero + ", Córdoba, España";
			}
			
		// Sin número
		}else{

			// si el campo de busqueda tiene varios parametros separados por comas
			if (cadena2split.length > 1)
			{
				cadena3split = cadena2split[0];
				for (var i=1; i < cadena2split.length; i++) {
					cadena3split = cadena3split + ", " + cadena2split[i];
				}
				cadena3split = cadena3split + ", España";				

			// Sin comas
			}else{
				cadena3split = cadenasplit + ", Córdoba, España";
			}

		}
		
		direccion = cadena3split;

		// Buscamos en el mapa
        jQuery("#map").jmap("SearchAddress", {
            "query": direccion,
            "returnType": "getLocations"
        }, function(result, options) {
            var valid = Mapifies.SearchCode(result.Status.code);
			var direcciones = "<div id='errores'><strong>¡ATENCIÓN!.</strong><br />No se encuentra la dirección, puede ser relativamente nueva ó incorrecta. Puede cargar alguna de las direcciones sugeridas o añadir más datos como el código postal y la localidad. El formato permitido es el siguiente: nombre de la via, código postal, localidad. Ejemplo: Calle Góngora, 14002, Córdoba. <br /></div><p>Su búsqueda ha generado las siguientes direcciones alternativas:</p>";
            if (valid.success) {
				jQuery.each(result.Placemark, function(i, point){
					if (i==0){
						jQuery("#map").jmap("AddMarker",{
							"pointLatLng":[point.Point.coordinates[1], point.Point.coordinates[0]],
							"pointHTML":point.address
						});
						last = [point.Point.coordinates[1], point.Point.coordinates[0]];
						jQuery('#alternativas1').html('');						
						jQuery('#alternativas1').hide();
					}else{
						
						if (numero != ""){
							var cadenasplit = new String(point.address);
							var cadena2split = cadenasplit.split(",");
							var numinicio = 0;
		
							cadena3split = cadena2split[0];
							if (cadena2split.length == 5){													
								for (var i=2; i < cadena2split.length - 1; i++) {
									cadena3split = cadena3split + ", " + cadena2split[i];
								}
							}
						}else{
							cadena3split = point.address;
						}
						
						var cadenareplace = new String(cadena3split);
						var cadena2replace = "";
	
						cadena2replace = cadenareplace.replace(", España","");
					
						if (direccion != cadena2replace){
							direcciones = direcciones + " - <a href=\"#\" id=\"ennombrevia\" onclick=\"javascript:document.getElementById('nombrevia').value=\'"+ cadena2replace +"\';document.getElementById('rectificado').value='SI';\" title=\"Cargar calle en nombre de via\">" + cadena2replace + "</a><br />";	
						}
						// Mostramos las direcciones
						jQuery('#alternativas1').html(direcciones + "<br />");
						jQuery('#alternativas1').show();
					}
				});
				jQuery('#map').jmap('MoveTo',{'mapType':'hybrid','mapCenter':last,'mapZoom':15});				
				// Ocultamos Errores
				jQuery('#errores').html('');					
				jQuery('#errores').hide();			
            } else {
				jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se encuentra la dirección, puede ser relativamente nueva ó incorrecta. Puede cargar alguna de las direcciones sugeridas o añadir más datos como el código postal y la localidad. El formato permitido es el siguiente: nombre de la via, código postal, localidad. Ejemplo: Calle Góngora, 14002, Córdoba. <br /><br />'); 					
				jQuery('#errores').show();				
				jQuery("#nombrevia").select();
            }

			//  Si no venimos de inicio
			if(jQuery('#nombreviaio').val() != ""){	
				jQuery("#nombreviaio").attr("value","");				
				jQuery("#numeroviaio").attr("value","");								
			}
        });
        return false;
		
	};	
	
	// Carga el mapa para la Ruta
	function CargaMapaRuta(viad,numerod,viah,numeroh,tipo)
	{

		var direcciond = "";
		var direccionh = "";
		
		/* Desde */

		var cadenasplitd = new String(jQuery("#nombreviad").val());
		var cadena2splitd = cadenasplitd.split(",");
		var cadena3splitd = "";

		// Si el usuario ha puesto un número en la consulta de búsqueda.
		if (numerod != ""){
			
			// si el campo de busqueda tiene varios parametros separados por comas
			if (cadena2splitd.length > 1)
			{
				cadena3splitd = cadena2splitd[0] + ", " + numerod;
				for (var i=1; i < cadena2splitd.length; i++) {
					cadena3splitd = cadena3splitd + ", " + cadena2splitd[i];
				}
				cadena3splitd = cadena3splitd + ", España";				

			// Sin comas
			}else{
				cadena3splitd = cadenasplitd + ", " + numerod + ", Córdoba, España";
			}
			
		// Sin número
		}else{

			// si el campo de busqueda tiene varios parametros separados por comas
			if (cadena2splitd.length > 1)
			{
				cadena3splitd = cadena2splitd[0];
				for (var i=1; i < cadena2splitd.length; i++) {
					cadena3splitd = cadena3splitd + ", " + cadena2splitd[i];
				}
				cadena3splitd = cadena3splitd + ", España";				

			// Sin comas
			}else{
				cadena3splitd = cadenasplitd + ", Córdoba, España";
			}

		}
		
		direcciond = cadena3splitd;	

		/* Hasta */

		var cadenasplith = new String(jQuery("#nombreviah").val());
		var cadena2splith = cadenasplith.split(",");
		var cadena3splith = "";

		// Si el usuario ha puesto un número en la consulta de búsqueda.
		if (numeroh != ""){
			
			// si el campo de busqueda tiene varios parametros separados por comas
			if (cadena2splith.length > 1)
			{
				cadena3splith = cadena2splith[0] + ", " + numeroh;
				for (var i=1; i < cadena2splith.length; i++) {
					cadena3splith = cadena3splith + ", " + cadena2splith[i];
				}
				cadena3splith = cadena3splith + ", España";				

			// Sin comas
			}else{
				cadena3splith = cadenasplith + ", " + numeroh + ", Córdoba, España";
			}
			
		// Sin número
		}else{

			// si el campo de busqueda tiene varios parametros separados por comas
			if (cadena2splith.length > 1)
			{
				cadena3splith = cadena2splith[0];
				for (var i=1; i < cadena2splith.length; i++) {
					cadena3splith = cadena3splith + ", " + cadena2splith[i];
				}
				cadena3splith = cadena3splith + ", España";				

			// Sin comas
			}else{
				cadena3splith = cadenasplith + ", Córdoba, España";
			}

		}
		
		direccionh = cadena3splith;

		if (VerSiVariosResultados(direcciond, numerod, "nombreviad", "rectificado1") && VerSiVariosResultados(direccionh, numeroh, "nombreviah", "rectificado2")){
			
			// Si tenemos la opción a pie
			if (tipo == "driving"){
				jQuery('#map').jmap('SearchDirections', {
					'query': 'from: ' +  direcciond + ' to: ' + direccionh,
					'panel':'#directions',
					'local': 'es_ES',
					'travelMode': 'driving',
					'avoidHighways': true,
					'clearLastSearch': true
				}, function(result) {
	/*				
	G_GEO_SUCCESS (200) 	No se han producido errores, la dirección se analizó correctamente y se devolvió su código geográfico. (A partir de la versión 2.55).
	G_GEO_BAD_REQUEST (400) 	No se ha podido analizar correctamente la solicitud de ruta. (A partir de la versión 2.81).
	G_GEO_SERVER_ERROR (500) 	No se ha podido procesar correctamente la solicitud de ruta o de códigos geográficos, sin saberse el motivo exacto del fallo. (A partir de la versión 2.55).
	G_GEO_MISSING_QUERY (601) 	Falta el parámetro HTTP q o no tiene valor alguno. En las solicitudes de códigos geográficos, esto significa que se ha especificado una dirección vacía. En las solicitudes de ruta, esto significa que no se ha especificado ninguna consulta. (A partir de la versión 2.81).
	G_GEO_MISSING_ADDRESS (601) 	Sinónimo de G_GEO_MISSING_QUERY. (A partir de la versión 2.55).
	G_GEO_UNKNOWN_ADDRESS (602) 	No se ha encontrado una ubicación geográfica que se corresponda con la dirección especificada. Esto puede deberse a que la dirección sea relativamente nueva o a que no sea correcta. (A partir de la versión 2.55).
	G_GEO_UNAVAILABLE_ADDRESS (603) 	El código geográfico de la dirección indicada o de la ruta para la consulta de ruta proporcionada no puede devolverse por motivos jurídicos o contractuales. (A partir de la versión 2.55).
	G_GEO_UNKNOWN_DIRECTIONS (604) 	El objeto GDirections no pudo calcular la ruta entre los puntos mencionados en la consulta. Esto suele deberse a que no hay ninguna ruta disponible entre los dos puntos o a que no tenemos datos para extraer rutas en la región en cuestión. (A partir de la versión 2.81).
	G_GEO_BAD_KEY (610) 	La clave proporcionada no es válida o no coincide con el dominio para el cual se ha indicado. (A partir de la versión 2.55).
	G_GEO_TOO_MANY_QUERIES (620) 	La clave proporcionada ha sobrepasado el límite de solicitudes en un período de 24 horas. (A partir de la versión 2.55).
	*/				
					// Si hay errores de direcciones
					if (result.getStatus().code == 400) {
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se ha podido analizar correctamente la solicitud de ruta.<br /><br />'); 					
						jQuery('#errores').show();
						return false;					
					}else if (result.getStatus().code == 500){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se ha podido procesar correctamente la solicitud de ruta o de códigos geográficos, sin saberse el motivo exacto del fallo.<br /><br />'); 					
						jQuery('#errores').show();
						return false;					
					}else if (result.getStatus().code == 601){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />Falta el parámetro HTTP q o no tiene valor alguno. En las solicitudes de códigos geográficos, esto significa que se ha especificado una dirección vacía. En las solicitudes de ruta, esto significa que no se ha especificado ninguna consulta.<br /><br />'); 					
						jQuery('#errores').show();
						return false;					
					}else if (result.getStatus().code == 602){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se puede generar la ruta, la dirección/es pueden ser relativamente nuevas ó incorrectas. Puede cargar alguna de las direcciones sugeridas o añadir más datos como el código postal y la localidad. El formato permitido es el siguiente: nombre de la via, código postal, localidad. Ejemplo: Calle Góngora, 14002, Córdoba. <br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 603){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />El código geográfico de la dirección indicada o de la ruta para la consulta de ruta proporcionada no puede devolverse por motivos jurídicos o contractuales.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 604){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />El objeto GDirections no pudo calcular la ruta entre los puntos mencionados en la consulta. Esto suele deberse a que no hay ninguna ruta disponible entre los dos puntos o a que no tenemos datos para extraer rutas en la región en cuestión.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 610){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />La clave proporcionada no es válida o no coincide con el dominio para el cual se ha indicado.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 620){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />La clave proporcionada ha sobrepasado el límite de solicitudes en un período de 24 horas.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}				
	
						// Ocultamos Errores
					jQuery('#errores').html('');					
					jQuery('#errores').hide();
					// Mostramos direcciones
					jQuery('#directions').show();					
					return true;
										
			   });			
		
			}else{
	
				jQuery('#map').jmap('SearchDirections', {
					'query': 'from: ' +  direcciond + ' to: ' + direccionh,
					'panel':'#directions',
					'local': 'es_ES',
					'travelMode': 'walking',
					'avoidHighways': true,
					'clearLastSearch': true
				}, function(result) {
	/*				
	G_GEO_SUCCESS (200) 	No se han producido errores, la dirección se analizó correctamente y se devolvió su código geográfico. (A partir de la versión 2.55).
	G_GEO_BAD_REQUEST (400) 	No se ha podido analizar correctamente la solicitud de ruta. (A partir de la versión 2.81).
	G_GEO_SERVER_ERROR (500) 	No se ha podido procesar correctamente la solicitud de ruta o de códigos geográficos, sin saberse el motivo exacto del fallo. (A partir de la versión 2.55).
	G_GEO_MISSING_QUERY (601) 	Falta el parámetro HTTP q o no tiene valor alguno. En las solicitudes de códigos geográficos, esto significa que se ha especificado una dirección vacía. En las solicitudes de ruta, esto significa que no se ha especificado ninguna consulta. (A partir de la versión 2.81).
	G_GEO_MISSING_ADDRESS (601) 	Sinónimo de G_GEO_MISSING_QUERY. (A partir de la versión 2.55).
	G_GEO_UNKNOWN_ADDRESS (602) 	No se ha encontrado una ubicación geográfica que se corresponda con la dirección especificada. Esto puede deberse a que la dirección sea relativamente nueva o a que no sea correcta. (A partir de la versión 2.55).
	G_GEO_UNAVAILABLE_ADDRESS (603) 	El código geográfico de la dirección indicada o de la ruta para la consulta de ruta proporcionada no puede devolverse por motivos jurídicos o contractuales. (A partir de la versión 2.55).
	G_GEO_UNKNOWN_DIRECTIONS (604) 	El objeto GDirections no pudo calcular la ruta entre los puntos mencionados en la consulta. Esto suele deberse a que no hay ninguna ruta disponible entre los dos puntos o a que no tenemos datos para extraer rutas en la región en cuestión. (A partir de la versión 2.81).
	G_GEO_BAD_KEY (610) 	La clave proporcionada no es válida o no coincide con el dominio para el cual se ha indicado. (A partir de la versión 2.55).
	G_GEO_TOO_MANY_QUERIES (620) 	La clave proporcionada ha sobrepasado el límite de solicitudes en un período de 24 horas. (A partir de la versión 2.55).
	*/				
					// Si hay errores de direcciones
					if (result.getStatus().code == 400) {
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se ha podido analizar correctamente la solicitud de ruta.<br /><br />'); 					
						jQuery('#errores').show();
						return false;					
					}else if (result.getStatus().code == 500){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se ha podido procesar correctamente la solicitud de ruta o de códigos geográficos, sin saberse el motivo exacto del fallo.<br /><br />'); 					
						jQuery('#errores').show();
						return false;					
					}else if (result.getStatus().code == 601){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />Falta el parámetro HTTP q o no tiene valor alguno. En las solicitudes de códigos geográficos, esto significa que se ha especificado una dirección vacía. En las solicitudes de ruta, esto significa que no se ha especificado ninguna consulta.<br /><br />'); 					
						jQuery('#errores').show();
						return false;					
					}else if (result.getStatus().code == 602){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se puede generar la ruta, la dirección/es pueden ser relativamente nuevas ó incorrectas. Puede cargar alguna de las direcciones sugeridas o añadir más datos como el código postal y la localidad. El formato permitido es el siguiente: nombre de la via, código postal, localidad. Ejemplo: Calle Góngora, 14002, Córdoba, España. <br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 603){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />El código geográfico de la dirección indicada o de la ruta para la consulta de ruta proporcionada no puede devolverse por motivos jurídicos o contractuales.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 604){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />El objeto GDirections no pudo calcular la ruta entre los puntos mencionados en la consulta. Esto suele deberse a que no hay ninguna ruta disponible entre los dos puntos o a que no tenemos datos para extraer rutas en la región en cuestión.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 610){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />La clave proporcionada no es válida o no coincide con el dominio para el cual se ha indicado.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}else if (result.getStatus().code == 620){
						jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />La clave proporcionada ha sobrepasado el límite de solicitudes en un período de 24 horas.<br /><br />'); 					
						jQuery('#errores').show();
						return false;				
					}
					
					// Ocultamos Errores
					jQuery('#errores').html('');					
					jQuery('#errores').hide();
					// Mostramos direcciones
					jQuery('#directions').show();
					return true;
			   });
			
			}
		
		}
		return false;	
	}

	// Control de varios resultados
	function VerSiVariosResultados(direccion, numero, campo, rectificado){

		var contador = 0;

		// Buscamos en el mapa
        jQuery("#map").jmap("SearchAddress", {
            "query": direccion,
            "returnType": "getLocations"
        }, function(result, options) {
            var valid = Mapifies.SearchCode(result.Status.code);
			if (rectificado == "rectificado1"){
				var direcciones = "<p>Su búsqueda ha generado las siguientes direcciones alternativas (Desde):</p>";
			}else{
				var direcciones = "<p>Su búsqueda ha generado las siguientes direcciones alternativas (Hasta):</p>";			
			}
            if (valid.success) {
				var cadena3split = "";
				jQuery.each(result.Placemark, function(i, point){
					
					if (numero != ""){
						var cadenasplit = new String(point.address);
						var cadena2split = cadenasplit.split(",");
						var numinicio = 0;
	
						cadena3split = cadena2split[0];
						if (cadena2split.length == 5){													
							for (var i=2; i < cadena2split.length - 1; i++) {
								cadena3split = cadena3split + ", " + cadena2split[i];
							}
						}
					}else{
						cadena3split = point.address;
					}
					
					var cadenareplace = new String(cadena3split);
					var cadena2replace = "";

					cadena2replace = cadenareplace.replace(", España","");					
					
					if (direccion != cadena2replace){
						direcciones = direcciones + " - <a href=\"#\" id=\"ennombrevia\" onclick=\"javascript:document.getElementById('"+ campo +"').value=\'"+ cadena2replace +"\'\" title=\"Cargar calle en nombre de via\">" + cadena2replace + "</a><br />";					
						contador = contador +1;						
					}
					
				});

				// Ocultamos Errores
				jQuery('#errores').html('');					
				jQuery('#errores').hide();
				
				// Tiene más de 1 dirección conocida
				if (rectificado == "rectificado1"){
					if (contador >1){
						jQuery('#alternativas1').html(direcciones + "<br />");
						jQuery('#alternativas1').show();							
					}else{
						jQuery('#alternativas1').html('');					
						jQuery('#alternativas1').hide();							
					}
				}else if (rectificado == "rectificado2"){
					if (contador >1){						
						jQuery('#alternativas2').html(direcciones + "<br />");					
						jQuery('#alternativas2').show();														
					}else{
						jQuery('#alternativas2').html('');					
						jQuery('#alternativas2').hide();							
					}							
				}

				return false;

	        } else {
				jQuery('#errores').html('<strong>¡ATENCIÓN!.</strong><br />No se han encontrado resultados en el mapa. Por favor introduzca de nuevo la dirección.<br /><br />'); 					
				jQuery('#errores').show();				
            }
        });
		return true;
	};
	
});



