//Valida fecha dd/MM/yyyy
function validaFecha(strValue) {
    var objRegExp = /^\d{2}\/\d{2}\/\d{4}$/
    if (!objRegExp.test(strValue))
        return false;
    else {
        var arrayDate = strValue.split('/');
        var arrayLookup = { '01': 31, '03': 31, '04': 30, '05': 31, '06': 30, '07': 31, '08': 31, '09': 30, '10': 31, '11': 30, '12': 31 }
        var intDay = parseInt(arrayDate[0], 10);
        if (arrayLookup[arrayDate[1]] != null) {
            if (intDay <= arrayLookup[arrayDate[1]] && intDay != 0)
                return true;
        }
        var intMonth = parseInt(arrayDate[1], 10);
        if (intMonth == 2) {
            var intYear = parseInt(arrayDate[2], 10);
            if (((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <= 28)) && intDay != 0)
                return true;
        }
    }
    return false;
}
function refrescarFechaEntrada() {
    document.getElementById("PASO1_FECHADESDE").value = document.getElementById("diaEntrada").value + "/" + document.getElementById("mesEntrada").value + "/" + document.getElementById("anoEntrada").value;
    //document.getElementById("PASO1_FECHASALIDA").value=addDiasAFecha(document.getElementById("PASO1_FECHADESDE").value,1)
}
function irAReservar() {
    document.elForm.submit();
}

//=======================================================================
//Función para formatear los números en javascript
//=======================================================================
//Objeto oNumero
function oNumero(numero) {
    //Propiedades 
    this.valor = numero || 0
    this.dec = -1;
    this.separadorMiles = '.';
    this.separadorDecimales = ',';
    //Métodos 
    this.formato = numFormat;
    this.ponValor = ponValor;
    //Definición de los métodos 

    function ponValor(cad) {
        if (cad == '-' || cad == '+') return
        if (cad.length == 0) return
        if (cad.indexOf('.') >= 0)
            this.valor = parseFloat(cad);
        else
            this.valor = parseInt(cad);
    }

    function numFormat(dec, miles) {
        var num = this.valor, signo = 3, expr;
        var cad = "" + this.valor;
        var ceros = "", pos, pdec, i;
        for (i = 0; i < dec; i++)
            ceros += '0';
        pos = cad.indexOf('.')
        if (pos < 0)
            cad = cad + "." + ceros;
        else {
            pdec = cad.length - pos - 1;
            if (pdec <= dec) {
                for (i = 0; i < (dec - pdec); i++)
                    cad += '0';
            } else {
                num = num * Math.pow(10, dec);
                num = Math.round(num);
                num = num / Math.pow(10, dec);
                cad = new String(num);
            }
        }
        pos = cad.indexOf('.')
        if (pos < 0) pos = cad.lentgh
        if (cad.substr(0, 1) == '-' || cad.substr(0, 1) == '+')
            signo = 4;
        if (miles && (pos > signo))
            do {
            expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
            cad.match(expr)
            cad = cad.replace(expr, RegExp.$1 + ',' + RegExp.$2)
        } while (cad.indexOf(',') > signo)

        if (dec < 0) cad = cad.replace(/\./, '')
        cad = reemplazaTodo(cad, ",", "m");
        cad = reemplazaTodo(cad, ".", ",");
        cad = reemplazaTodo(cad, "m", ".");
        return cad;
    }
} //Fin del objeto oNumero:
//=======================================================================

//==========================================================================================
// Reemplaza un texto dentro de otra cadena. Mejora le funcion replace de JavaScript
//==========================================================================================
function reemplazaTodo(cadena, original, cambio) {
    var strFinal, i, caracter;
    strFinal = cadena;
    while (strFinal.indexOf(original) > -1) {
        strFinal = strFinal.replace(original, cambio);
    }
    return strFinal;
}



//Actualiza los precios cuando elegimos los suplementos.
function actualizarPrecios(spanID, pulsado) {
    //var valor=check.value.split("-");
    var spanAct = document.getElementById("precioTotal");
    var precioAux, numNoches;

    precioTotal = precioTotalInicial;

    for (i = 0; i < document.forms[0].length; i++) {
        //compruebo que sea uno de los check de suplementos
        if (document.forms[0].elements[i].id.indexOf("chkSuplemento") >= 0) {
            var check = document.forms[0].elements[i];
            var valor = check.value.split("-");
            numNoches = parseInt(valor[2]);
            //compruebo que exista el control
            if (check) {
                if (check.checked == true) {
                    precioTotal += parseFloat(valor[1]) * numNoches;
                } else if (check.checked == false && check.id == pulsado.id) {
                    precioTotal += parseFloat(valor[1]) * numNoches;
                    precioTotal -= parseFloat(valor[1]) * numNoches;
                }
            }
        }
    }

    if (precioTotal < precioTotalInicial)
        precioTotal = precioTotalInicial;

    var numero = new oNumero(precioTotal);
    precioAux = numero.formato(2, true);

    if (spanAct) { spanAct.innerText = precioAux; }
}			