﻿//Comprueba que una fecha sea correcta:

function control_fecha(fecha)
{
    var dma = fecha.split("/");
    
    if (dma[1] == undefined)
    {
        return false;
    }    
    
    if ((dma[2] < 1900) || (dma[2] > 2100))
    {
        return false;
    }
    if ((dma[1] < 1) || (dma[1] > 12))
    {
        return false;
    }
    if ((dma[0] < 1) || (dma[0] > 31))
    {
        return false;
    }    
    if (dma[1] == 2)
    {
        if (es_bisiesto(dma[2]) == true)
        {
            if (dma[0] > 29)
            {
                return false;
            }
        }
        else
        {
            if (dma[0] > 28)
            {
                return false;
            }
        }        
    }
    if ((dma[1] == 4) || (dma[1] == 6) || (dma[1] == 9) || (dma[1] == 11))
    {
        if (dma[0] > 30)
        {
            return false;
        }
    }
    return true;
}


//Controlamos que fecha1 nunca sea inferior a fecha2:

function ctrl_fechas(fecha_ini, fecha_fin) {

    //Transformamos la fecha de entrada para su verificación:
    var ElemFecha = fecha_ini.split('/')
    var dia = ElemFecha[0];
    var mes = ElemFecha[1];
    var any = ElemFecha[2];
    var fini = new Date(mes + "/" + dia + "/" + any)

    //Transformamos la fecha de salida para su verificación:
    ElemFecha = fecha_fin.split('/')
    dia = ElemFecha[0];
    mes = ElemFecha[1];
    any = ElemFecha[2];
    var ffin = new Date(mes + "/" + dia + "/" + any)

    if (fini > ffin) 
    {
        return false;
    }

    return true;
}

function no_menor(fecha1, fecha2)
{
    var dma1 = fecha1.split("/");
    var dma2 = fecha2.split("/");
    var sfecha1 = "" + dma1[2] + dma1[1] + dma1[0];
    var sfecha2 = "" + dma2[2] + dos_digitos(dma2[1]) + dos_digitos(dma2[0]);
    if (sfecha1 < sfecha2)
    {
        return false;
    }
    return true;    
}    

//Comprueba si un año es o no bisiesto:

function es_bisiesto(any)
{
    var dev = false;
    if ((any % 4 == 0) && ((any % 100 != 0) || (any % 400 == 0)))
    {
        dev = true;
    } 
    return dev;
} 

// Suma días a una fecha (dd/mm/yyyy) y devuelve la fecha resultante (en formato dd/mm/yyyy):

function sumar_dias(vfecha, dias)
{
     var dma = vfecha.split("/");
     var milisegundos = parseInt(dias * 24 * 60 * 60 * 1000) + (60 * 60 * 1000);
     var fecha = new Date(dma[2], dma[1] - 1, dma[0]);
     var tiempo = fecha.getTime();
     var total = fecha.setTime(parseInt(tiempo + milisegundos));
     return dos_digitos(fecha.getDate()) + "/" + dos_digitos(fecha.getMonth() + 1) + "/" + fecha.getFullYear();
 }
   
//Devuelve dos digitos en los números inferiores a 10:

function dos_digitos(numero)
{
    var dev;
    if (numero < 10)
    {
        dev = "0" + numero;
    }
    if (numero > 9)
    {
        dev = "" + numero;
    }              
    return dev;
} 

function num_dias_mes(vfecha)
{
    var dma = vfecha.split("/");
    
    switch(dma[1])
    {
       //meses de 31 días
       case "01": 
       case "03":
       case "05":
       case "07":
       case "08":
       case "10":
       case "12":
       {
           return 31;
           break;
        }   
       //meses de 30 días    
       case "04":
       case "06":
       case "09":
       case "11":          
       {
           return 30;
           break;
       }    
       // mes de Febrero    
       case "02":
       {
           if (es_bisiesto(dma[2]))
           {
               return 29;
           }
           else
           {
               return 28;
           }   
        }
    }
}    

// Convertimos el formato fecha dd/mm/yyyy a tipo fecha javascript
function string2date(vfecha)
{
      var dma = vfecha.split("/");
      var fecha = new Date(dma[2], dma[1] - 1, dma[0]);
      return fecha;
}      
                      

function email_check(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}



