﻿function IsNifCorrect(source, args)
{
    dni = args.Value.toUpperCase();
    
    letNie = dni.substr(0,1);
   
    var origen = 0;
    
    if (letNie == 'X' || letNie == 'Y')
    {
        origen = 1;
    }    
    
    numero = dni.substr(origen,dni.length-1-origen);
    let = dni.substr(dni.length-1,1);
    numero = numero % 23;
    letra='TRWAGMYFPDXBNJZSQVHLCKET';
    letra=letra.substr(numero,1);
    args.IsValid = (letra == let );
    return;
}
    
function CheckMobileNumber(source, args)
{
    args.IsValid = true;
     
    p1 = document.getElementById('TlfMovil');
    p2 = document.getElementById('AceptaMovil');
        
    if (p2.checked == true && p1.value == "")
    {
        args.IsValid = false;
    }
    return;   
}

function CheckboxValidatorEmail(source, args)
{
    args.IsValid = document.getElementById('AceptaEmail').checked;
    return;
}

function CheckboxValidatorBases(source, args)
{
    args.IsValid = document.getElementById('AceptaBases').checked;
    return;
}

function SexoSeleccionado(source, args)
{
    var s1 = document.getElementById('Sexo_Hombre');
    var s2 = document.getElementById('Sexo_Mujer');
    
    args.IsValid = (s1.checked == true) || (s2.checked == true);
    return;
}

function EsFechaValida(source, args)
{
	var dia  =  parseInt(document.getElementById('Dia').value, 10);
	var mes  =  parseInt(document.getElementById('Mes').value, 10);
	var anio =  parseInt(document.getElementById('Año').value, 10);
	
	if (dia == 0 || mes == 0 || anio == 0)
	{
	    args.IsValid = false;
	    return;
	}
	
	switch(mes)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			numDias=31;
			break;
		case 4: case 6: case 9: case 11:
			numDias=30;
			break;
		case 2:
			if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
			break;
		default:
		    args.IsValid = false;			
			return;
	}
		
	if (dia > numDias || dia == 0)
	{
	    args.IsValid = false;
		return;
	}
	
	args.IsValid = ComprobarMayorEdad(dia, mes, anio);
	return;
}

function comprobarSiBisisesto(anio)
{
    if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) 
    {
	    return true;
	}
    else 
    {
	    return false;
	}
}

function ComparaValores(uno, dos)
{
    if (uno > dos)
    {
        return 1;
    }
    else if (uno < dos)
    { 
        return -1;
    }
    else
    {
        return 0;
    }
}

function ComprobarMayorEdad(dia, mes, anio)
{
    var now = new Date();
    var diaNow = now.getDate();
    var mesNow = now.getMonth() + 1;
    var anioNow = now.getFullYear();
    
    anioNow = anioNow - 18;
    
    //Ahora las comparamos
    var c1, c2, c3;
    c1 = ComparaValores(anio, anioNow);
    
    switch(c1)
    {
        case 0:
            c2 = ComparaValores(mes, mesNow);
            
            switch(c2)
            {
                case 0:
                    c3 = ComparaValores(dia, diaNow);                    
                    return (c3 != 1);
                default:
                    return (c2 == -1);
            }       
        default:
            return (c1 == -1);
    }
}