﻿// JScript File

function seleccionFecha(name) {
    if (name) {
        this.name = name;
    }
    else {
        this.name = "seleccionFecha";
    }
    this.fIni  = null;
    this.fFin  = null;
    this.noches = null;
    this.CambiandoFecha = 0;
}

seleccionFecha.prototype.CalcularDiasFecha = function (origen, inicial) {
    if ((this.CambiandoFecha == 0) && this.fFin) {
        this.CambiandoFecha = 1;
        if (origen == "fecha") {
            var arrayFEnt = this.fIni.value.split("/");
            var fEnt = new Date(arrayFEnt[2], arrayFEnt[1] - 1, arrayFEnt[0]);
            var arrayFSal = this.fFin.value.split("/");
            var fSal = new Date(arrayFSal[2], arrayFSal[1] - 1, arrayFSal[0]);
            if (inicial) {
                var dias = this.noches.options[this.noches.selectedIndex].value;
                fSal = fEnt;
                for (i = 0;i < dias;i++) {
                    fSal = anadirDia(fSal);
                }
                this.fFin.value = ((fSal.getDate() < 10) ? '0' + fSal.getDate() : fSal.getDate()) + "/" + (fSal.getMonth() + 1) + "/" + fSal.getFullYear();
            }
            else {
                var dias = 0;
                while (dias < 30 && fEnt < fSal) {
                    dias++;
                    fSal = quitarDia(fSal);
                }
                if (this.noches) {
                    this.noches.value = dias;
                }
                if (dias == 30) {
                    this.fIni.value = ((fSal.getDate() < 10) ? '0' + fSal.getDate() : fSal.getDate()) + "/" + (fSal.getMonth() + 1) + "/" + fSal.getFullYear();
                }
            }
        }
        else if (origen == "dias") {
            var dias = this.noches.selectedIndex;
            var arrayFEnt = this.fIni.value.split("/");
            var fEnt = new Date(arrayFEnt[2], arrayFEnt[1] - 1, arrayFEnt[0]);
            var fSal = new Date(fEnt.getTime() + (dias + 1)*24*60*60*1000);
            var d = fSal.getDate();
            var year = fEnt.getYear();

            if (year < 1900) {
                year += 1900;
            }
            if ((d >= 1) && (fSal.getMonth() == 0)) {
                if (!fEnt.getMonth() == 0) {
                    year += 1;
                }
            }
            this.fFin.value = ((d < 10) ? '0' + d : d) + "/" + (fSal.getMonth() + 1) + "/" + year;
        }
        this.CambiandoFecha = 0;
    }
}



function anadirDia(fecha){
    var dia = fecha.getDate();
    var mes = fecha.getMonth()+1;
    var ano = fecha.getFullYear();
    dia++;
    if (dia>diasMes(mes,ano)){
        dia=1;
        mes++;
        if (mes>12) {
            mes=1;
            ano++;
        }
    }
    return new Date(ano,mes-1,dia)
}

function diasMes(mes,ano){
    switch(mes){
        case 1:
            return 31;
            break;
        case 3:
            return 31;
            break;
        case 5:
            return 31;
            break;
        case 7:
            return 31;
            break;
        case 8:
            return 31;
            break;
        case 10:
            return 31;
            break;
        case 12:
            return 31;
            break;
        case 4:
            return 30
            break;
        case 6:
            return 30
            break;
        case 9:
            return 30
            break;
        case 11:
            return 30
            break;
        case 2:
            if (Math.floor(ano/4)==(ano/4)){
                return 29
            }else{
                return 28
            }
            break;
   }
}

function quitarDia(fecha){
    var dia = fecha.getDate();
    var mes = fecha.getMonth()+1;
    var ano = fecha.getFullYear();
    dia--;
    if (dia<1){
        mes--;
        if (mes<1) {
            mes=12;
            ano--;
        }
        dia=diasMes(mes,ano);
    }
    return new Date(ano,mes-1,dia)
}
