var sAnterior = null;
function sVisualiza( sValor ) {
	var sObjeto = document.getElementById(sValor);
	
	sObjeto.style.display = 'block';
	sAnterior.style.display = 'none';
	
	sAnterior = sObjeto;
	
}
function sActiva( sValor, sID, sForm ) {
	
	if(sValor.value!="NO") {
		sID.disabled = true;
	} else {
		sID.disabled = false;
	}
		
}

var sMatriz = new Array();
var sFinal = new Array();
var sBoton = null;
var sBol = false;
var sInter = null;
function sMenu( sValor , sTotal , boton , boleano ) {
	
	// alert(sBol);
	
	sMatriz.splice(1,10);
	sFinal.splice(1,10);
	
	if( sMatriz[0]!=document.getElementById(sValor) ) {
		sMatriz.unshift(document.getElementById(sValor));
		sFinal.unshift(sTotal);
	}
	
	if(sBoton!=null) sBoton.className = (sBol==true) ? "aSel" : "aMenu";
	if(boton.className!="aDivS"){
		boton.className = "aDivS";
		sBoton = boton;
	}
	sBol = boleano;
		
	
	if(sInter==null) sInter = setInterval("sAccion()",50);
	
}

function sAccion() {
	var sCount = 0;
	for(var i=0;i<sMatriz.length;i++){
		var sHAY = parseFloat(sMatriz[i].style.marginTop.substr(0,sMatriz[i].style.marginTop.lastIndexOf("px")));
		if( i==0 ) {		
				sHAY += 17;
				if( sHAY >= 0 ){
					sMatriz[i].style.marginTop = "0px";
					sCount++;
				} else sMatriz[i].style.marginTop = sHAY.toString()+"px";
		} else {	
			sMatriz[i].style.marginTop = "-"+sFinal[i].toString()+"px";
			sCount++;
		}
	}
	
	
	if(sCount==sMatriz.length) {
		clearInterval(sInter);
		sInter = null;
		sMatriz.splice(1,10);
		sFinal.splice(1,10);
	}
	
}

function sValida( sForm ){	
	var sFalta = "";
	var sAccion = sForm.formulario.value;
	switch (sAccion) {
		case "NEWSLETTER":
			if( sValidaCorreo( sForm.correo ) == false )
				{sFalta += "\n - Correo electrónico";}
			break;
		case "BUSCADOR":
			if( sForm.busca.value.length < 5 )
				{sFalta += "\n - Inserta una provincia / población válida";}
			break;
		case "REGISTRO":
			if( sForm.nombre.value.length < 2 )
				{sFalta += "\n - Nombre (3 o más caracteres)";}
			if( sForm.apellido1.value.length < 2 )
				{sFalta += "\n - Primer Apellido (2 o más caracteres)";}
			if( valFecha( sForm.dia.value+"-"+sForm.mes.value+"-"+sForm.ano.value ) == false )
				{sFalta += "\n - Fecha de Nacimiento Correcta";}
			if( sForm.nif.value.length < 4 )
				{sFalta += "\n - NIF / NIE";}
			if( sForm.telefono.value.length < 3 )
				{sFalta += "\n - Telefono";}
			if( sValidaCorreo( sForm.correo ) == false )
				{sFalta += "\n - Correo electrónico";}
			if( sForm.cajaID.value == "NO" && sForm.clienteID.value == "NO")
				{sFalta += "\n - Caja Rural a la que perteneces o quieres pertenecer";}
			if( sForm.user.value.length < 5 )
				{sFalta += "\n - Usuario (5 o más caracteres)";}
			if( sForm.condiciones.checked == false )
				{sFalta += "\n - Aceptar las Bases legales";}
			break;
		case "OLVIDO":
			if( sForm.user.value.length < 5 )
				{sFalta += "\n - Usuario (5 o más caracteres)";}
			if( sValidaCorreo( sForm.correo ) == false )
				{sFalta += "\n - Correo electrónico";}
			break;
		case "PERFIL":
			if( sForm.nombre.value.length < 2 )
				{sFalta += "\n - Nombre (3 o más caracteres)";}
			if( sForm.apellido1.value.length < 2 )
				{sFalta += "\n - Primer Apellido (2 o más caracteres)";}
			if( sForm.sexo[0].checked == false && sForm.sexo[1].checked == false )
				{sFalta += "\n - Sexo";}
			if( valFecha( sForm.dia.value+"-"+sForm.mes.value+"-"+sForm.ano.value ) == false )
				{sFalta += "\n - Fecha de Nacimiento Correcta";}
			if( sForm.nif.value.length < 4 )
				{sFalta += "\n - NIF / NIE";}
			if( sForm.nacionalidad.value.length < 3 )
				{sFalta += "\n - Nacionalidad";}
			if( sForm.telefono.value.length < 3 )
				{sFalta += "\n - Telefono";}
			if( sValidaCorreo( sForm.correo ) == false )
				{sFalta += "\n - Correo electrónico";}
			if( sForm.cajaID.value == "NO" && sForm.clienteID.value == "NO")
				{sFalta += "\n - Caja Rural a la que perteneces o quieres pertenecer";}
			if( sForm.user.value.length < 5 )
				{sFalta += "\n - Usuario (5 o más caracteres)";}
			if( sForm.int1.value != sForm.int2.value )
				{sFalta += "\n - Contrasena (Debes repetirla correctamente o dejar vacios las dos cajas de texto)";}
			break;
		case "PAGINA":
			if( sForm.page.value.length == 0 )
				{sFalta += "\n - Introducir un número de página";}
			if( sDigito(sForm.page.value) == false )
				{sFalta += "\n - Introducir un valor numérico";}
			break;
	}
	
	if(sFalta!="")
	{alert("DEBES INSERTAR CORRECTAMENTE LOS SIGUIENTES CAMPOS:\n"+sFalta);return false;}	
	
	sForm.submit();
}

// Para validar FECHAS
function sDigito(valor){
	var sCod = valor.charCodeAt(0);
	return ((sCod > 47) && (sCod < 58));
}
function valSep(valor){
	var bOk = false;
	bOk = bOk || ((valor.charAt(2) == "-") && (valor.charAt(5) == "-"));
	bOk = bOk || ((valor.charAt(2) == "/") && (valor.charAt(5) == "/"));
	return bOk;
}
function finMes(valor){
	var nMes = parseInt(valor.substr(3, 2), 10);
	var nRes = 0;
	switch (nMes){
		case 1: nRes = 31; break;
		case 2: nRes = 29; break;
		case 3: nRes = 31; break;
		case 4: nRes = 30; break;
		case 5: nRes = 31; break;
		case 6: nRes = 30; break;
		case 7: nRes = 31; break;
		case 8: nRes = 31; break;
		case 9: nRes = 30; break;
		case 10: nRes = 31; break;
		case 11: nRes = 30; break;
		case 12: nRes = 31; break;
	}
	return nRes;
}
function valDia(valor){
	var bOk = false;
	var nDia = parseInt(valor.substr(0, 2), 10);
	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(valor)));
	return bOk;
}
function valMes(valor){
	var bOk = false;
	var nMes = parseInt(valor.substr(3, 2), 10);
	bOk = bOk || ((nMes >= 1) && (nMes <= 12));
	return bOk;
}
function valAno(valor){
	var bOk = true;
	var nAno = valor.substr(6);
	bOk = bOk && (nAno.length == 4);
	if (bOk){
		for (var i = 0; i < nAno.length; i++){
			bOk = bOk && sDigito(nAno.charAt(i));
		}
	}
	return bOk;
}
function valFecha(valor){
	var bOk = true;
	if (valor.value != ""){
		bOk = bOk && (valAno(valor));
		bOk = bOk && (valMes(valor));
		bOk = bOk && (valDia(valor));
		bOk = bOk && (valSep(valor));
	}
	return bOk;
}

// Para validar correos
function sValidaCorreo( objeto , valor ) {
	if( valor ) var s = valor;
	else var s = objeto.value;
	var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if ( filter.test(s) ) {
		return true;
	} else {
		return false;
		if( !valor ) s.focus();
	}
}


function esNumerico(x)

{

  var expresionRegularNDigitos = /^(\d*)$/;

  return x.match(expresionRegularNDigitos);

}

 

function esNifNie(x)

{

  var expresionRegularNIE = /^[X-Z0-9]{1}[0-9]{4,7}$/;

  return x.match(expresionRegularNIE);

}

 

function obtenLetraNIF ( dni, destino )

{

	  dni.value = dni.value.toUpperCase();
	
	  if ( esNifNie( dni.value ) )
	
	  {
	
		var nifTmp = '';
	
		if ( esNumerico( dni.value ) )
	
		{
			if(dni.value.length == 6){
				dni.value = "00"+dni.value;
			}else if(dni.value.length == 7){
				dni.value = "0"+dni.value;
			}else if(dni.value.length == 5){
				dni.value = "000"+dni.value;
			}
		
		  nifTmp = dni.value;
	
		}
	
		else
	
		{
	
		  switch( dni.value.charAt(0).toUpperCase() )
	
		  {
	
			case 'X': nifTmp = dni.value.replace(/X/gi, "0");
	
					  break;
	
			case 'Y': nifTmp = dni.value.replace(/Y/gi, "1");
	
					  break;
	
			case 'Z': nifTmp = dni.value.replace(/Z/gi, "2");
	
					  break;
	
			default:  alert('NIF/NIE incorrecto');
	
		  }
		  
		  	var cuantosNros = dni.value.length-1;
			
			if(cuantosNros < 7){
				alert('NIF/NIE incorrecto');
			}
	
		}
	
	 
	
		if ( nifTmp.length == 8 )
	
		{
	
		  var cadena = 'TRWAGMYFPDXBNJZSQVHLCKET';
	
		  var posicion = nifTmp % 23;
	
		  destino.value = cadena.charAt(posicion);
	
		}
	
		else
	
		{
	
		  destino.value = '';
	
		}
	
	  }
	
	  else
	
	  {
	
		alert('NIF/NIE incorrecto');
	
	  }
	  
}