function getNombreMes(iNumero,iTipo){
    var wotMes = new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
	var wnSalida;
	var wnIndice;

	wnIndice = Number(iNumero)-1;
    if(wnIndice >= 0 && wnIndice <= 11){
		wnSalida = wotMes[wnIndice]
		if(iTipo){ 
			iTipo = iTipo.toLowerCase(); 
			if(iTipo == 'mon'){
				wnSalida = wnSalida.substring(0,3)
			}                
        }else{
          wnSalida='Indeterminado'
		}                
    }else wnSalida='Indeterminado'
		
	return wnSalida;
	
}

function getNumMes(itNombre,itCeroizq)
{
    var wotMes = new Array("enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre");        
    var wnSalida = 0;
    var i = 0;
	var wtNombreMes;
		
    // si el nombre es un número de 1 a 12 lo deja tal cual
    if(esNumero(itNombre) && Number(itNombre) >= 1 && Number(itNombre) <= 12){
        wnSalida = parseInt(itNombre);
    }else{
        itNombre = itNombre.toLowerCase();
        if(itNombre.length == 3){
            while(i <= 11 && wnSalida == 0){
                wtNombreMes = wotMes[i];
                if(wtNombreMes.substring(0,3) == itNombre) wnSalida = i + 1;
                i++;
            }        
		} else{
            while(i <= 11 && wnSalida == 0){
                if(wotMes[i] == itNombre) wnSalida = i + 1;
                i++;
            }
		}
     }
        
    if(itCeroizq && itCeroizq==true && wnSalida<=10) wnSalida = '0' + wnSalida;
        
    return wnSalida;
}

function separarFecha(itFecha,itSeparador){
    var wobjSalida = itFecha.split(itSeparador);
    return wobjSalida;
}

function esFechaMenor(itDia1, itMes1, itYear1, itDia2, itMes2, itYear2){
    var wnDia1 = Number(itDia1);
    var wnMes1 = getNumMes(itMes1);
    var wnYear1 = Number(itYear1);
		
    var wnDia2 = Number(itDia2);
    var wnMes2 = getNumMes(itMes2);		
    var wnYear2 = Number(itYear2);
    var wlSalida = true;

    if (wnYear1 > wnYear2){
		wlSalida = false;
	}else{
        if (wnYear1 == wnYear2){
            if(wnMes1 > wnMes2){
                wlSalida = false;
            }else{
                if (wnMes1 == wnMes2){
                    if(wnDia1 > wnDia2){
                        wlSalida = false;
                    }
                }
            }
        }
    }
    return wlSalida;
}

function esHoraCorrecta(itHora) {
    var wlResultado = false;
    var wnPos = itHora.indexOf(":");  // posicion de ':'
    var wtHora = itHora.substring(0, wnPos);  // Cadena con hora
    var wtMinuto = itHora.substring(wnPos + 1);	// Cadena con minuto
    var wnHora = Number(wtHora);
    var wnMinuto = Number(wtMinuto);

    if (wnPos > 0) { 

        //hora y minuto deben ser numéricos
        if ((esNumero(wtHora)) && (esNumero(wtMinuto))) {

            // hora debe estar entre 0 y 23, y minuto entre 0 y 59
            if (((wnHora >= 0) && (wnHora <= 23)) && ((wnMinuto >= 0) && (wnMinuto <= 59))) {
                wlResultado = true;
            } else {
                wlResultado = false;
            }
        } else {
            wlResultado = false;
        }
    } else {
        wlResultado = false;
    }
    return wlResultado;
}


function comprobarFecha (itDia, itMes)
{
	var wnResultado = 1;
	var onEstado = 1;
	
	if ((itMes == "Enero" || itMes == '1' || itMes == '01') && (itDia > '31')) {
		wnResultado = 0;
	}
	if ((itMes == "Febrero" || itMes == '2' || itMes == '02') && (itDia > '28')) {
		wnResultado = 0;
	}
	if ((itMes == "Marzo" || itMes == '3' || itMes == '03') && (itDia > '31')) {
		wnResultado = 0;
	}
	if ((itMes == "Abril" || itMes == '4' || itMes == '04') && (itDia > '30')) {
		wnResultado = 0;
	}
	if ((itMes == "Mayo" || itMes == '5' || itMes == '05') && (itDia > '31')) {
		wnResultado = 0;
	}
	if ((itMes == "Junio" || itMes == '6' || itMes == '06') && (itDia > '30')) {
		wnResultado = 0;
	}
	if ((itMes == "Julio" || itMes == '7' || itMes == '07') && (itDia > '30')) {
		wnResultado = 0;
	}
	if ((itMes == "Agosto" || itMes == '8' || itMes == '08') && (itDia > '31')) {
		wnResultado = 0;
	}
	if ((itMes == "Septiembre" || itMes == '9' || itMes == '09') && (itDia > '30')) {
		wnResultado = 0;
	}
	if ((itMes == "Octubre" || itMes == '10') && (itDia > '31')) {
		wnResultado = 0;
	}
	if ((itMes == "Noviembre" || itMes == '11') && (itDia > '30')) {
		wnResultado = 0;
	}
	if ((itMes == "Diciembre" || itMes == '12') && (itDia > '31')) {
		wnResultado = 0;
	}
		
	if (wnResultado == 0) {
		onEstado = 0;
	}
	
	return (onEstado);		
}

function evaluarFecha (itDia, itMes, itYear, inCaso)
{
	var onEstado = 1;
	
	if(inCaso == 1)
	{
		if(itMes == ''  && itYear == '')	{
			onEstado = 0;
		}	
		if(itMes != ''  && itYear == '')	{
			onEstado = -11;
		}
		if(itMes == ''  && itYear != '')	{
			onEstado = -12;
		}
		if(!esNumero(itMes) || !esNumero(itYear))	{
			onEstado = 0;
		}

	}else
	{
		if(inCaso == 2)
		{
			if(itDia == '' && itMes == ''  && itYear == '')	{
				onEstado = -1;
			}	
			if(itDia!='' && itMes=='' && itYear=='')
			{
				onEstado = -2;
			}
			if(itDia!='' && itMes == ''  && itYear != '')	{
				onEstado = -3;
			}
			if(itDia!='' && itMes != ''  && itYear == '')	{
				onEstado = -4;
			}
			if(itDia=='' && itMes!='' && itYear=='')
			{
				onEstado=-5;
			}
			if(itDia=='' && itMes != ''  && itYear != '')	{
				onEstado = -6;
			}
			if(itDia=='' && itMes=='' && itYear!='')
			{
				onEstado=-8;
			}
			if(!esNumero(itDia) || !esNumero(itMes) || !esNumero(itYear))	{
				onEstado = 0;
			}
	
			if(onEstado == 1)
			{
				onEstado = comprobarFecha (itDia, itMes);
			}
		}else{
			onEstado = 0;// si no se pone un caso correcto damos la fecha por invalida
		}
	}
	return (onEstado);
}


function formatearFecha(itDia,itMes,itYear,itTipoDia,itTipoMes,itTipoYear,itSeparador){
	var wtSalida;

    // dia
    itDia=Number(itDia);
    if ( (itTipoDia == "dd") && (Number(itDia) < 10) )  {
        itDia="0" + itDia;
    } 
        
    // mes
    if (!esNumero(itMes)) {
        itMes = getNumMes(itMes,false);
    } 
    itMes=Number(itMes);
  
    if ( (itTipoMes == "mm") && (itMes < 10) ) {
        itMes="0" + itMes;
    } else if (itTipoMes != "m") {
        itMes = getNombreMes(itMes,itTipoMes);
    } 
        
    // año
    if ( (itTipoYear == "yyyy") && (itYear.length == 2) ) {
        if (Number(itYear) > 50) {
            itYear="19" + itYear;
        } else {
            itYear="20" + itYear;
        } 
    } 

    if ( (itTipoYear == "yy") && (itYear.length == 4) ) {
        itYear = itYear.substring(2,4)
    } 
        
    // itSeparador
    if(itSeparador == "de") {
        itSeparador = " de ";
    } 
            
    wtSalida = itDia + itSeparador + itMes + itSeparador + itYear;
    return wtSalida;
}

function fechaActual(itTipoDia,itTipoMes,itTipoYear,itSeparador) {

    var wfActual = new Date();
    var wtSalida;
	var wtDia;
	var wtMes;
	var wtYear;
		
    // dia
    wtDia = wfActual.getDate();
    if( itTipoDia == "dd" && Number(wtDia) < 10) {
        wtDia="0" + wtDia;
    }
		
    // mes
    wtMes = wfActual.getMonth();
    wtMes = Number(wtMes)+1;
    if(itTipoMes == "mm" && Number(wtMes) < 10) {
        wtMes="0" + wtMes;
    } else if(itTipoMes != "m") {
               wtMes = getNombreMes(wtMes,itTipoMes);
    }

    // año
    wtYear = wfActual.getFullYear().toString();
    if ( itTipoYear == "yy" ) {
        wtYear = wtYear.substring(2,4); 
    }
		
    // separador
    if (itSeparador == "de") {
        itSeparador=" de ";
    }		
							
    wtSalida = wtDia + itSeparador + wtMes + itSeparador + wtYear;
    return wtSalida;
} // fechaActual


