function DarAnoActual4Digitos() {
	var dateHoy, nAno;
	dateHoy = new Date();
	nAno = dateHoy.getYear();
	return((nAno < 2000) ? (1900+nAno) : nAno);
}  

function tocadoresidente() { 
  if (document.frmRegistro.chkNORESIDENTE.checked)
  {
     Residente = 0;
     document.frmRegistro.txtDPAISDOM.selectedIndex = 0;
        
  }
  else
  {
     Residente = 1;
     for (i=0 ;i<document.frmRegistro.txtDPAISDOM.length;i++){
		if (document.frmRegistro.txtDPAISDOM.options[i].value=="011")
			document.frmRegistro.txtDPAISDOM.selectedIndex = i;
     }
  }
} 

function validar_contrasena(campo1, campo2,nombreusuario) {
	var cadena1 = Trim(campo1.value);
	var cadena2 = Trim(campo2.value);
	var username = Trim(nombreusuario.value);
        cadena1 = cadena1.toUpperCase();
        cadena2 = cadena2.toUpperCase();
        username = username.toUpperCase();
	if (!StringIguales(cadena1, cadena2)){
		alert(" La contraseña está mal confirmada");
		campo1.focus();
		return false;
	}
	else if (cadena2.length < 6 || cadena2.length > 8){
		alert(" La contraseña deber tener entre 6 y 8 caracteres");
		campo1.focus();
		return false;
	}
	else if (StringIguales(cadena2,username)){
		alert(" Por motivos de seguridad, la contraseña no puede coincidir con el nombre de usuario ");
		campo1.focus();
		return false;
	}
	return true;
}


function validar_mail(cadena) {
	cadenaV = cadena.value;
	if(cadenaV.length==0)
		return true;
	var indice;
	indice = cadenaV.search("@");
	if ( indice == (-1)){
		alert("Valor no válido en e-mail");
		cadena.focus();
		return false;
	}
	
	var longitud = cadenaV.length;
	delnumber = cadenaV.indexOf('@',0);
	if ( delnumber == -1){
		alert("Valor no válido en e-mail");
		cadena.focus();
		return false;
	}
	domain = cadenaV.substring(delnumber +1);
	if( domain.charAt(0) == '.' || domain.charAt(0) == '@'){
		alert("Valor no válido en e-mail");
		cadena.focus();
		return false;
	}
	lastdom = cadenaV.lastIndexOf('.');
	if ( lastdom == -1 || lastdom == longitud -1 ){
		alert("Valor no válido en e-mail");
		cadena.focus();
		return false;
	}
	return true;
}


function validar_nombre_usuario(campo) {
       campo.value = Trim(campo.value);
	if (campo.value == "") return true;
	cadtmp = campo.value + "";
	cadtmp = new String(cadtmp);
	if (cadtmp.length < 6 || cadtmp.length > 8)
	{
		alert ("Por favor, introduzca un nombre de usuario que tenga entre 6 y 8 caracteres");
		campo.focus();
		return false;
	}
	return true;
}

function chequea_dia(campo) {
	if (campo.value == "") return true;
	if (!isInt(campo.value) ||(campo.value < 1 || campo.value > 31))
	{
		campo.focus();
		alert("Valor no válido en DIA Fecha de Nacimiento\n" + "Introduzca un valor entre 1 y 31");
		return false;
	}
	return true;
}

function chequea_mes(campo) {
	if (campo.value == "") return true;
	if (!isInt(campo.value) ||(campo.value < 1 || campo.value > 12))
	{
		alert("Valor no válido en MES Fecha de Nacimiento\n" + "Introduzca un valor entre 1 y 12");
		campo.focus();
		return false;
	}

	return true;
}


function chequea_ano(campo) {
	if (campo.value == "") return true;
	var fecha = new Date();
	var ano=DarAnoActual4Digitos();
	if (!isInt(campo.value) || (campo.value < 1900 || campo.value > ano))
	{
		alert ("Valor no válido en AÑO Fecha de Nacimiento\n" + "Introduzca un valor entre 1900 y " + ano);
		campo.focus();
		return false;
	}
	return true;
}

mesDias = new Array(12);
mesDias[0] = 31;
mesDias[1] = 29;
mesDias[2] = 31;
mesDias[3] = 30;
mesDias[4] = 31;
mesDias[5] = 30;
mesDias[6] = 31;
mesDias[7] = 31;
mesDias[8] = 30;
mesDias[9] = 31;
mesDias[10] = 30;
mesDias[11] = 31;


function Valida_RangoFecha(dia,mes) {
	if ( (dia != "") && (mes != "") && ( dia > mesDias[mes-1])){
		alert(" Día no valido para ese mes \n")
		return false;
	}
	return true;
}

function chequea_CP(campo) {
	if (campo.value == "") return true;

	cadtmp = campo.value + "";

        // El codigo postal no se valida si no es residente 
        if (Residente)
        {
	  if (document.frmRegistro.txtDPAISDOM.options[document.frmRegistro.txtDPAISDOM.selectedIndex].value == "011") 
	  {
		var dosdigitos,cincodigitos
		dosdigitos = cadtmp.substring(0,2);
		cincodigitos=cadtmp.substring(0,5);
		if ((cadtmp.length != 5) || (dosdigitos > 52) || (dosdigitos < 01) || (!SonDigitos(cincodigitos)))
	   {
		 alert ("Por favor, introduzca un número de CODIGO POSTAL correcto para España");
		 campo.focus();
		 return false;
	   }
	  }
	 }
     return true;
}

function chequea_pais(campo) {
	if (document.frmRegistro.txtDPAISDOM.options[document.frmRegistro.txtDPAISDOM.selectedIndex].value == "") return true;
    if (document.frmRegistro.txtDPAISDOM.options[document.frmRegistro.txtDPAISDOM.selectedIndex].value == "011" && !Residente)
       {
          alert ("Usted ha indicado que es residente fuera de España, su pais de residencia no puede ser España");
          document.frmRegistro.txtDPAISDOM.selectedIndex = 0;
          campo.focus();
          return false;	
       }
    if (document.frmRegistro.txtDPAISDOM.options[document.frmRegistro.txtDPAISDOM.selectedIndex].value != "011" && Residente){
		alert ("Usted ha indicado que es residente en España, su pais de residencia debe ser España");
        for (i=0 ;i<document.frmRegistro.txtDPAISDOM.length;i++){
		if (document.frmRegistro.txtDPAISDOM.options[i].value=="011")
			document.frmRegistro.txtDPAISDOM.selectedIndex = i;
		}
        campo.focus();
        return false;	
    }
    return true;	
}


function chequea_tlf(campo) {
	if (campo.value == "") return true;
	if (!isInt(campo.value))
	{
		alert ("Por favor, introduzca un valor numérico en el campo TELEFONO");
		campo.focus();
		return false;	
	}
        // El telefono se valida diferente si es residente
        if (Residente)
        {
	  cadtmp = campo.value + "";
	  if (cadtmp.length != 9)
	  {
		alert ("Por favor, introduzca un número de 9 dígitos en el campo TELEFONO");
		campo.focus();
		return false;	
	  }
	  var cadtmp2 = cadtmp.substring(0,1);
	  var cadtmp3 = document.frmRegistro.txtDPAISDOM.options[document.frmRegistro.txtDPAISDOM.selectedIndex].value;
	  if ( (cadtmp2 != '9') &&  ( cadtmp2 != '6') && (cadtmp3 == '011') )
	  { 
		alert ("El primer dígito del número de teléfono debe ser 9 o un 6");
		campo.focus();
		return false;	
    	  }
        }
        else
        {
	  cadtmp = campo.value + "";
	  if (cadtmp.length < 5)
 	  {
		alert ("El valor del campo TELEFONO es demasiado corto");
		campo.focus();
		return false;	
	  } 
        }	
	  return true;	
}

function SonDigitos(cadena) {
 entero=1;
 for (i=0;i<cadena.length;i++)
 {
    aux=cadena.charAt(i);
    if ((aux<"0") || (aux>"9"))    {
      entero=0;    }     
 }
 
 if (entero==1) {
      return true; 
 }else{
      return false;}     
}

function isInt (texto) {
	for (var i = 0; i != texto.length; i++)
	{
		letra = texto.substring(i, i+1)
		if (letra < '0' || letra > '9')
			return false;
	}
	return true;
}

function Trim(texto) {
    newtext = String(texto) 

    // por la derecha
    letra = newtext.substring(newtext.length-1, newtext.length)
    while(letra == ' ' && newtext.length > 0)
    {
      newtext = newtext.substring(0,newtext.length - 1)
      letra = newtext.substring(newtext.length-1, newtext.length)
    } 

    // por la izda
    letra = newtext.substring(0,1)
    while(letra == ' ' && newtext.length > 0)
    {
      newtext = newtext.substring(1,newtext.length)
      letra = newtext.substring(0,1)
    } 
    return newtext;
}

function StringIguales(cadena1, cadena2) {
	var longitud1 = cadena1.length;
	var longitud2 = cadena2.length;	
	if ( longitud1 != longitud2)
		return false;
	for ( i=0; i<longitud1; i++){
		if ( cadena1.charAt(i) != cadena2.charAt(i))
			return false;
	}
	return true;
}