// Funciones genericas (independientes del formato) para manejo de fechas

/*
function conv_date2sfecha(dia){
// Convierte Date a String con formato dd/mm/yyyy
     return dia.getDate()+"/"+(dia.getMonth()+1)+"/"+(dia.getYear() < 1900 ? dia.getYear()+1900 :dia.getYear());
}

function conv_fecha(s_fec){
   s_fecha = new String(s_fec);
// Convierte String con fecha en formato dd/mm/yyyy a Date
        if ((s_fecha.length!=0) && checkCharFechaValido(s_fecha)) {
                dia=s_fecha.substring(0, s_fecha.indexOf('/'));
                s_fecha=s_fecha.substring(s_fecha.indexOf('/')+1,s_fecha.length);
                mes=s_fecha.substring(0, s_fecha.indexOf('/'));
                anio=s_fecha.substring(s_fecha.indexOf('/')+1,s_fecha.length);
// alert("DIA "+dia+" MES "+mes+" ANIO "+anio);
                if ((dia.length!=0) && (mes.length!=0) && (anio.length!=0)
                  &&  (mes.valueOf()<13) && (dia<=getDays(mes,anio)) ){
                        var fecha = new Date(anio,mes-1,dia);
                        var n = fecha.getTime();
                        fecha = null;
                        return n;
                }
                else{
                        alert("Fecha invalida (El formato debe ser un dd/mm/yyyy)");
                        return NaN;
                }
        }else
                alert("Fecha invalida (Vacia o caracter invalido)");
        return NaN;
}

// Convierte String con fecha en formato dd/mm/yyyy a Date
function parseDate(s_fec) {
    s_fecha = new String(s_fec);
    if ((s_fecha.length!=0) && checkCharFechaValido(s_fecha)) {
        dia=s_fecha.substring(0, s_fecha.indexOf('/'));
        s_fecha=s_fecha.substring(s_fecha.indexOf('/')+1,s_fecha.length);
        mes=s_fecha.substring(0, s_fecha.indexOf('/'));
        anio=s_fecha.substring(s_fecha.indexOf('/')+1,s_fecha.length);
        if ((dia.length!=0) && (mes.length!=0) && (anio.length!=0)
                &&  (mes.valueOf()<13) && (dia<=getDays(mes,anio)) ){
            var fecha = new Date(anio,mes-1,dia);
            var n = fecha.getTime();
            fecha = null;
            return n;
        } else {
            return NaN;
        }
    }
    return NaN;
}

*/

function daysBetween(fecdesde,fechasta) {
        fecdesde.setHours(0);
        fecdesde.setMinutes(0);
        fechasta.setHours(0);
        fechasta.setMinutes(0);
        var bTime = fechasta - fecdesde;  // time difference
        return Math.round(bTime / (1000*60*60*24));
}

function comp_fechas(s_fecdesde,s_fechasta) {
// Compara dos fechas, pero convirtiendolas desde un string
var fec1=new Date();
var fec2=new Date();
fec1.setTime(conv_fecha(s_fecdesde));
fec2.setTime(conv_fecha(s_fechasta));
// alert(daysBetween(fec1,fec2));
return daysBetween(fec1,fec2);
}

function daysBetweenTimes(fecdesde,fechasta) {
// Compara dos fechas, pero convirtiendolas desde un string
var fec1=new Date();
var fec2=new Date();
fec1.setTime(fecdesde);
fec2.setTime(fechasta);
// alert(daysBetween(fec1,fec2));
return daysBetween(fec1,fec2);
}


function leapYear(year) {
	return (year % 4 == 0);
}

function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12);
ar[0] = 31; // January
ar[1] = (leapYear(year)) ? 29 : 28; // February
ar[2] = 31; // March
ar[3] = 30; // April
ar[4] = 31; // May
ar[5] = 30; // June
ar[6] = 31; // July
ar[7] = 31; // August
ar[8] = 30; // September
ar[9] = 31; // October
ar[10] = 30; // November
ar[11] = 31; // December

// return number of days in the specified month (parameter)
return ar[month-1];
}

function checkCharFechaValido(data) {      // checks if all characters
var valid = "0123456789/-";     // are valid numbers or a "/"
var checktemp;
for (var i=0; i<data.length; i++) {
	checktemp = "" + data.substring(i, i+1);
	if (valid.indexOf(checktemp) == "-1")
		return false;}
return true;
}

function checkNum(data) {      // checks if all characters
var valid = "0123456789.";     // are valid numbers or a "."
var checktemp;
for (var i=0; i<data.length; i++) {
	checktemp = "" + data.substring(i, i+1);
	if (valid.indexOf(checktemp) == "-1")
		return 0;}
return 1;
}
