/**
 * @author Alejandro Barros Cuetos 13/08/2009
 */
var lista = new Array("nombre","apellidos","fecha","provinciaList","correo","sexo","dni","captcha");
 //----FUNCION INICIAL------
 //Comprobacion DOM cargado
 $(document).ready(function(){
 	establecer_obligatorios(lista);
 	//Rellenar el select provinciaList
	//leemos el xml por ajax
	$.ajax({
		type: "GET",
		url: "xml/provinciasypoblaciones.xml",
		success: function(xml){
			$(xml).find('provincia').each(function(){
				var nombre = $(this).find('nombre').text();
				var id = $(this).find('id').text();
				$('#provinciaList').append('<option value="'+id+'">'+nombre+'</option>');
			});
		}
	})
 });
 
 
 
 /*
  * Recoge la provincia del select y rellena desde el xml
  * las poblaciones correspondientes a esa provincia
  */
 function provinciaListOnChange(){
 	//Icono de carga
 	$('#advice').html("<img src='img/loading.gif' align='absmiddle'>");
	var provincia = $('#provinciaList :selected').text();
	$.ajax({
		type: "GET",
		url: "xml/provinciasypoblaciones.xml",
		success: function(xml){
			$('#localidadList').html("");
			$(xml).find('provincia').each(function(){
				if($(this).find('nombre').text() == provincia){
					$(this).find('localidad').each(function(){
						$('#localidadList').append('<option>'+$(this).text()+'</option>');
					});
				}
			});	
			$('#advice').html("");
		}
	})
 }
 
 /*
  * Funcion para establecer los campos obligatorios
  */
function establecer_obligatorios(lista){
	//A los campos obligatorios les añade el simbolo *
	for (i=0;i<lista.length;i++){
		var cadena = '#'+lista[i]+'Label';
		var auxiliar = $(cadena).html();
		$(cadena).html('<span class="obligatorio">*</span>'+auxiliar);
		//alert($(cadena).html());	
	}
}


/*
 * Funcion para validar los datos
 */
function validar(form){
	var error = new Array();
	for (i = 0; i < lista.length; i++) {
		if(lista[i] == "nombre"){
			//Comprobar nombre
			if(form.nombre.value == ""){
				poner_error("nombre","Debe de introducir su nombre");
				error[0] = true;
			}
			else{
				quitar_error("nombre");
				error[0] = false;
			}
		}
		
		if(lista[i] == "apellidos"){
			//Comprobar apellidos
			if(form.apellidos.value == ""){
				poner_error("apellidos","Debe de introducir sus apellidos");
				error[1] = true;
			}
			else{
				quitar_error("apellidos");
				error[1] = false;
			}
		}
		
		if(lista[i] == "fecha"){
			//Comprobar fecha
			if(!(validar_fecha(form.fecha.value))){
				poner_error("fecha","Debe de introducir correctamente la fecha");
				error[2] = true;
			}
			else{
				quitar_error("fecha");
				error[2] = false;
			}
		}
		
		if(lista[i] == "provinciaList"){
			//Comprobar provincia
			if(form.provinciaList.value == "Seleccione su provincia..."){
				poner_error("provinciaList","Debe de seleccionar una provincia");
				error[3] = true;
			}
			else{
				quitar_error("provinciaList");
				error[3] = false;
			}
		}
		
		if(lista[i] == "codigo"){
			//Comprobar codigo
			if(form.codigo.value == ""){
				poner_error("codigo","Debe de introducir su codigo postal");
				error[4] = true;
			}
			else{
				quitar_error("codigo");
				error[4] = false;
			}
		}
		
		if(lista[i] == "correo"){
			//Comprobar correo
			if(!(validar_mail(form.correo.value))){
				poner_error("correo","Introduzca una direcci&oacute;n de correo valida");
				error[5] = true;
			}
			else{
				quitar_error("correo");
				error[5] = false;
			}
		}
		
		if(lista[i] == "telefono"){
			//Comprobar telefono
			if(form.telefono.value == ""){
				poner_error("telefono","Debe de introducir un telefono");
				error[6] = true;
			}
			else{
				quitar_error("telefono");
				error[6] = false;
			}
		}
		
		if(lista[i] == "calle"){
			//Comprobar calle
			if(form.calle.value == ""){
				poner_error("calle","Debe de introducir su calle");
				error[7] = true;
			}
			else{
				quitar_error("calle");
				error[7] = false;
			}
		}
		
		if(lista[i] == "piso"){
			//Comprobar piso
			if(form.calle.value == ""){
				poner_error("piso","Debe de introducir su piso");
				error[8] = true;
			}
			else{
				quitar_error("piso");
				error[8] = false;
			}
		}
		
		if(lista[i] == "dni"){
			//Comprobar correo
			if(!(validar_nif(form.dni.value))){
				poner_error("dni","Introduzca un D.N.I./N.I.E. valido");
				error[9] = true;
			}
			else{
				quitar_error("dni");
				error[9] = false;
			}
		}
		
		
		
		//Comprobar terminos
		//Esta siempre tiene que estar activada
		if((!(form.terminos.checked))){
			//Clausulas no aceptadas
			poner_error('terminos',"Debe de aceptar las clausulas");
			error[10] = true;
		}
		else{
			quitar_error("terminos");
			error[10] = false;
		}
	}
	
	var errorTotal = false;
	for (i=0;i < error.length;i++)
	{
		if (error[i] == true){
			errorTotal = true;
		}
	}
	if(errorTotal == false){
		//No hay errores, realiza la comprobacion de captcha si la hay, sino envia
		comprobacion_captcha(form.verificacion.value, form);
	}
}

function poner_error(campo,texto){
	var etiqueta = '#error_'+campo;
	var cadena = "<img src='img/error.gif' align='absmiddle'>"+texto;
	$(etiqueta).html(cadena);
}

function quitar_error(campo){
	var etiqueta = '#error_'+campo;
	$(etiqueta).html("");
}

function validar_mail(mail){
	if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(mail)))
		{
			//E-Mail incorrecto
			return false;
		}
		else{
			//E-Mail correcto
			return true;
		}
}

function validar_fecha(fecha){
	if(!(/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(fecha)))
		{
			//Fecha incorrecta
			return false;
		}
		else{
			//Fecha correcta
			return true;
		}

}

function validar_nif(nif) {
	if (!nif) return false;
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	if (nif.length != 9) return false;
	else {
		letra = nif.substr(8, 1); 
		letra = letra.toUpperCase();
		dni = nif.substr(0, 8);
		dni = dni.toUpperCase(); 
		dni = dni.replace('X','0');
		dni -= parseInt(dni/23) * 23;
		//alert (letras.charAt(dni) + " - " + letra);
		if (letras.charAt(dni) != letra) return false; 
		else return true;
		}
	}

function comprobacion_captcha(cadena, datos){
	$(document).ready(function(){
	var texto = "cadena=" +cadena;
	//DOM cargado
	//Llamada SINCRONA al archivo check_captcha.php
	$.ajax({
		type: "POST",
		url: "check_captcha.php",
		data:texto,
		async : false,
		success: function(response){
			if (response == 'success'){
				//Exito
				datos.submit();
			}
			else{
				//Fracaso
				var texto ="Los caracteres no coinciden";
				var cadena = "<img src='img/error.gif' align='absmiddle'>"+texto;
				$("#error_captcha").html(cadena);
			}
			
		}
	})
});
}

function refresh_captcha(){
	$('#imagen').attr("src", "captcha.php?" + Math.random());

}