// JavaScript Document
var sErrores = "";
var bError = false;


function activar_representante(){
	/*	var representante = document.getElementById("representante_1");
		representante.style.display = 'block';
		
		representante = document.getElementById("representante_2");
		representante.style.display = 'block';
	*/	
	}
	
	function desactivar_representante(){
	/*	var representante = document.getElementById("representante_1");
		representante.style.display = 'none';
		
		representante = document.getElementById("representante_2");
		representante.style.display = 'none';
	*/	
	}
	
	
	function activar_equipos(){
		var span = document.getElementById("cuantos_pc");
		
		if(span.style.display == "" || span.style.display == "none"){
			span.style.display = "block";	
		}else{
			span.style.display = "none";	
		}
		
	}
	
	
	function otros_especificar(){
		var span = document.getElementById("campo_personal_otros");	
		
		if(span.style.display == "" || span.style.display == "none"){
			span.style.display = "block";	
		}else{
			span.style.display = "none";	
		}
		
	}
	
	
	function comprobar_persona_juridica(){
		var radio = document.getElementById("persona_juridica");
		if(radio.checked){
			activar_representante();	
			}
		
		var equipos = document.getElementById("tiene_ordenador");		
		if(equipos.checked){
			activar_equipos();
			}
			
		
		var otros = document.getElementById("personal_otros_check");
		if(otros.checked){
			otros_especificar();
			}
	}

function validar_formulario(formu){
	sErrores = "";
	var formulario = formu;

	sErrores += "\nDatos del solicitante\n----------------------------------------------------------\n";	// CONCATENAMOS EL TITULO DEL GRUPO DE CONTROLES DEL FORM

			var razonsocial = document.getElementById("RazonSocial").value;
				validar_vacio(razonsocial, "Razón Social");
				
			
			var nombrecomercial = document.getElementById("NombreComercial").value;
				validar_vacio(nombrecomercial, "Nombre Comercial");
				
			var nombrecomercial = document.getElementById("CIF").value;
				validar_vacio(razonsocial, "NIF/CIF");
			
			var tipo_empresa = formulario.tipo_empresa;
				validar_radios(tipo_empresa, "'Autónomo' o 'Persona Jurídica'");
			
			var domicilio_social = document.getElementById("direccion").value;
				validar_vacio(domicilio_social, "Domicilio Fiscal");
				
			var cp = document.getElementById("cp").value;
				validar_vacio(cp, "CP");
				
			var poblacion = document.getElementById("poblacion").value;
				validar_vacio(poblacion, "Población");
				
			var telefono = document.getElementById("fijo").value;
				validar_vacio(telefono, "Teléfono");
				
			var email = document.getElementById("email").value;
				validar_vacio(email, "Email");
				
			var repita_email = document.getElementById("email_r").value;
				validar_vacio(repita_email, "Repita email");	
	
	
	validar_repeticion(email, repita_email, "'Email' y 'Repita email'");
	
	
	
	sErrores += "\nDatos del Representante Legal de la Empresa\n----------------------------------------------------------\n";	// CONCATENAMOS EL TITULO DEL GRUPO DE CONTROLES DEL FORM
	
	
		var nombre_representante = document.getElementById("representante").value;
			validar_vacio(nombre_representante, "Nombre y apellidos");
			
		var dni_representante = document.getElementById("nif_representante").value;
			validar_vacio(dni_representante, "DNI");
			
		var direccion_representante = document.getElementById("direccion_representante").value;
			validar_vacio(direccion_representante, "Dirección");
		
		var cp_representante = document.getElementById("cp_representante").value;
			validar_vacio(cp_representante, "CP");
		
		var cargo_representante = document.getElementById("cargo_representante").value;
			validar_vacio(cargo_representante, "Cargo");
			
			
	sErrores += "\nPersona Responsable del Programa\n----------------------------------------------------------\n";	// CONCATENAMOS EL TITULO DEL GRUPO DE CONTROLES DEL FORM
	
		var nombre_responsable = document.getElementById("responsable").value;
			validar_vacio(nombre_responsable, "Nombre y apellidos");
			
		var dni_responsable = document.getElementById("nif_responsable").value;
			validar_vacio(dni_responsable, "DNI");
			
		var cargo_responsable = document.getElementById("cargo_responsable").value;
			validar_vacio(cargo_responsable, "Cargo");
		
		var tlf_responsable = document.getElementById("tlf_responsable").value;
			validar_vacio(tlf_responsable, "Teléfono");
		
		var email_responsable = document.getElementById("email_responsable").value;
			validar_vacio(email_responsable, "Email");

	//validar_cif(document.getElementById("CIF").value,"");	
	
	
	
	
	if(bError){
		
		if(sErrores != ""){
			alert(sErrores);		
			return false;
		}else{
			return true;	
		}
	}else{
		return true;	
	}
	
}


// Funcion para añadir un error a la cadena de errores
// si no está vacia la cadena de errores, le concatena un salto de linea antes de meter el nuevo error
function anadir_error(sCad){
	if(sErrores != ""){		
			sErrores += sCad;
		sErrores += "\n";
	}else{
		sErrores += sCad;	
	}
	bError = true;
}

// Funcion que valida que un campo no esté vacío
function validar_vacio(valor,titulo){
	if(valor!=""){		
		return true;	
	}else{
		anadir_error("El campo '"+titulo+"' no puede estar vacío");	
		return false;
	}
}


// Funcion para validar radios
function validar_radios(radios,titulo){
	var no_escogido = true;
	
	for(var i=0; i<radios.length; i++){
		
		if(radios[i].checked==true){
			no_escogido = false;
		}	
	}
	if(no_escogido==false){		// Esto indica que hay una escogida
		bError = false;
		if(radios[1].checked==true){		// Esto indica que la opcion escogida es PERSONA JURIDICA
				// Como es persona juridica, hay que validar mas campos....
			
				
			var representante = document.getElementById("representante").value;
				validar_vacio(representante,"Representante legal (apellidos y nombre) firmante");			
						
			var nif_rep = document.getElementById("nif_representante").value;
				validar_vacio(nif_rep,"CIF (representante)");	
				
				//validar_cif(nif_rep," (representante)");	
					
			var cargo_rep = document.getElementById("cargo_representante").value;
				validar_vacio(cargo_rep,"Cargo (representante)");	
				
			var telefono_rep= document.getElementById("telefono_representante").value;
				validar_vacio(telefono_rep,"Teléfono (representante)");	
				
			var email_rep = document.getElementById("email_representante").value;
				//validar_email(email_rep,"Email (representante)");	
				
			
		}		
	}else{
		anadir_error("Debes escoger "+titulo);	
	}
}


function validar_repeticion(campo1,campo2,titulo){
	if(campo1==campo2){		
		return true;	
	}else{
		anadir_error("Los campos "+titulo+" introducidos no coinciden");
		return false;
	}
}

// FUNCIONES PARA VALIDAR UN CIF/NIF
function validar_cif(cif,titulo){
	
	var par = 0;
	var non = 0;
	var letras="ABCDEFGHKLMNPQS";
	
	if(cif.length > 0){
		var let=cif.charAt(0);
		var elemNif;
		elemNif = document.getElementById("CIF");
	
	
		if (!isNaN(let)){
		  var nif=cif
		  validar_nif(nif,titulo)
		  return false
		  }
	
		if (cif.length!=9){
		  anadir_error("El CIF debe tener 9 dígitos"+ titulo);			 
		  elemNif.focus();
		  return false
		  }
	
		if (letras.indexOf(let.toUpperCase())==-1){
		   anadir_error("El comienzo del Cif no es válido"+ titulo); 		  
		   elemNif.focus();
		   return false
		   }
	
		for (var zz=2;zz<8;zz+=2){
		  par = par+parseInt(cif.charAt(zz));
		  }
		
		for (zz=1;zz<9;zz+=2){
			  var nn = 2*parseInt(cif.charAt(zz));
			  if (nn > 9){
					nn = 1+(nn-10);
			  }
				non = non+nn;
			  
		  }
		
		var parcial = par + non;
	
		control = (10 - ( parcial % 10))
		if (control==10){
			control=0;
		}
			if (control!=cif.charAt(8))
			  {
			  anadir_error("CIF no válido"+ titulo);		 
			  elemNif.focus();
			  return false
			  }
			  
		
		return true; /// CIF VALIDO
	}else{
		// NO HA INTRODUCIDO VALOR	
		return false;
	}
}

	function validar_nif(abc,titulo)
	{
	var dni=abc.substring(0,abc.length-1);
	var let=abc.charAt(abc.length-1);
	if (!isNaN(let))
	 {
	   anadir_error("Falta la letra del NIF"+ titulo);
	  
	  return false
	 }
	else
	 {
	  var cadena="TRWAGMYFPDXBNJZSQVHLCKET"
	  var posicion = dni % 23
	  var letra = cadena.substring(posicion,posicion+1)
	  if (letra!=let.toUpperCase())
	   {
		anadir_error("NIF no válido"+ titulo);		
		return false
	   }
	 }
	
	return true; 		/// NIF VALIDO
	}