﻿var sepFila = "|";
var sepValor = ":";
var contador = 0;
var contadorDest = 0;
var hDestinos = [];
var hninos = [];
var num = 1;
var idestinos = 0;

function InitParticular() {
    var selmeses = $("selFechaMes") != null;
    var seldias = $("selFechaDia") != null;
    var selanios = $("selFechaAnio") != null;
    var selCaducidadames = $("selCaducidadTarMes") != null;
    var selCaducidadanio = $("selCaducidadTarAnio") != null;
    if (selmeses) {
        Funciones.Tools.CargaMeses($("selFechaMes"));
        $("selFechaMes").selectedIndex = 0;
        //$("selFechaMes").onchange = Funciones.Tools.CambiaDias;
    }
    if (seldias) {
        Funciones.Tools.CargaDias($("selFechaDia"));
    }
    if (selanios) {
        Funciones.Tools.CargaAnios($("selFechaAnio"));
    }
    if (selCaducidadames) {
        Funciones.Tools.CargaMesesNum($("selCaducidadTarMes"));
        $("selCaducidadTarMes").selectedIndex = 0;
    }
    if (selCaducidadanio) {
        Funciones.Tools.CargaAniosTarjeta($("selCaducidadTarAnio"));
        $("selCaducidadTarAnio").selectedIndex = 0;
    }
    $("sNinos").onchange = Fecha_ninos;
    // $("btnAdd").onclick = RegistroPart.Formulario.CopiaFechas;

    /* Propiedades de los Inputs */
    $("txtNtarjeta").onkeypress = Funciones.Tools.numeros;
    $("txtFrecuencia").onkeypress = Funciones.Tools.numeros;
    $("txtTelefono").onkeypress = Funciones.Tools.telefono;
    $("txtMovil").onkeypress = Funciones.Tools.telefono;
    $("txtNtarjeta").onkeypress = Funciones.Tools.numeros;
    $("txtFax").onkeypress = Funciones.Tools.telefono;
    //$("txtPresupuesto").onkeypress = Funciones.Tools.numeros;
    $("txtPassword").onkeypress = Funciones.Tools.AlfaNumericos;
    $("txtRepetirPws").onkeypress = Funciones.Tools.AlfaNumericos;
    $("txtCiudad").onkeypress = Funciones.Tools.SoloCaracteres;
    //   $("txtApellido1").onkeypress  = Funciones.Tools.SoloCaracteres;
    //   $("txtApellido2").onkeypress  = Funciones.Tools.SoloCaracteres;
    $("txtPEmail").onkeypress = soloTextoMail;
    Funciones.Eventos.initChecklist();
    $("txtPEmail").onkeydown = function() {

        $("txtUsuario").value = $("txtPEmail").value;
    }
    $("txtPEmail").onkeyup = function() {
        $("txtUsuario").value = $("txtPEmail").value;
    }
    var opt = new Option(" ", "0");
    var opt = document.createElement("option");
    opt.value = "0";
    var nOpt = document.createTextNode(" ");
    opt.appendChild(nOpt);
    $("selProvincias").appendChild(opt);
    $("selProvincias").selectedIndex = 0;
    $("btEnviar").onclick = ValidaCampos;
    $("selProvincias").onchange = CopiaDestino;
    //LoadPaises();
    //LoadDestinos();
    getCtl("hidParamsAjax").value = "RegistroParticular" + sepGra + "inicio" + sepBloc;
    getCtl("hidFunctionAjax").value = "inicio";
    petiAjaxMain(getCtl("hidParamsAjax").value, iniciaVuelta);
}

/* Carga tantos controles dinamicos como niÃ±os se seleccionan en la select */
function Fecha_ninos() {
    var sel = document.createElement("select");
    var _divncidos = $("divnacidos");
    var etiqueta = $("lblNacidos");
    var numero = this.options[this.selectedIndex].value;
    var bSalir = false;
    var controles = 8;
    var contador = 0;
    var fechasninos = "";
    var nNino = "";
    if (numero != "") {

        if (numero == 0) {
            for (var h = 0; h < controles; h++) {
                var Iscontenedor = $("div_" + h) != null;
                if (Iscontenedor) {
                    var contenedor = $("div_" + h);
                    contenedor.parentNode.removeChild(contenedor);
                    etiqueta.style.display = "none"
                    contador -= 1;
                    bSalir = true;

                }

            }
        }
        else if (controles >= numero) {
            for (var h = 0; h < 8; h++) {
                var Iscontenedor = $("div_" + h) != null;
                if (Iscontenedor) {
                    var contenedor = $("div_" + h);
                    contenedor.parentNode.removeChild(contenedor);
                    etiqueta.style.display = "none"
                    contador -= 1;
                    bSalir = false;
                }
            }

        }

        if (!bSalir) {
            etiqueta.style.display = "inline"
            var theNumero = parseInt(numero);
            var id = 0;
            for (var i = 0; i < numero; i++) {
                if (contador <= 7) {
                    var div = document.createElement("div");
                    var seldia = document.createElement("select");
                    var selmes = document.createElement("select");
                    var selanio = document.createElement("select");
                    div.setAttribute("id", "div_" + i);
                    seldia.setAttribute("id", "sel_0" + i);
                    seldia.className = "espaiLlistaDates";
                    selmes.setAttribute("id", "sel_1" + i);
                    selmes.className = "espaiLlistaDates";
                    selanio.setAttribute("id", "sel_2" + i);
                    selanio.className = "espaiLlistaDates";
                    Funciones.Tools.CargaDias($(seldia));
                    Funciones.Tools.CargaMeses($(selmes));
                    Funciones.Tools.CargaAnios($(selanio));
                    div.appendChild(seldia);
                    div.appendChild(selmes);
                    div.appendChild(selanio);
                    _divncidos.appendChild(div);
                }
                contador++;
            }
        }
    }
}



function ValidaCampos() {
    verCtl("divLoading");
    ocultaCtl("tblBotonEnviar");
    var destinos = "";
    var ninos = "";
    var todos = [];
    var especiales = [];
    var camposRequeridos = [];
    var camposCheck = [];
    var camposRadio = [];
    var bCorrecto = false;
    var bSaltar = false;
    var form = $("fparticular");
    var datos = "";
    var contador = 0;
    var tempAttr = "";
    todos = form.getInputs('text');
    especiales = form.getInputs('password');
    camposRadio = form.getInputs('radio');
    camposCheck = form.getInputs('checkbox', 'est_tipoviaje');
    var opciones = [todos, especiales, camposRadio, camposCheck];
    var sel = document.getElementsByTagName("select");


    for (var i = 0; i < opciones.length; i++) {
        for (ii = 0; ii < opciones[i].length; ii++) {
            var attr = opciones[i][ii].getAttribute("name");
            var requiered = opciones[i][ii].getAttribute("user");
            bSaltar = false;
            if (attr != null && attr != "") {
                if (requiered != null) {
                    var txt = $(opciones[i][ii].id);
                    camposRequeridos[contador++] = txt.id;
                    requiered = "";
                }
                var value = $F(opciones[i][ii].id);
                if (value != null && value != "") {

                    if (attr.indexOf("wc") == -1 && attr != "txt") {
                        //datos += attr.toUpperCase() + sepValor + value + sepFila;
                        switch (attr) {
                            case "sexo":
                                datos += attr.toUpperCase() + sepValor + value + sepFila;
                                bSaltar = true;
                                break;

                            case "est_tipoviaje":
                                datos += value + sepValor + "true" + sepFila;
                                bSaltar = true;
                                break;
                        }

                        if (!bSaltar) {
                            if (attr.indexOf("presupuesto") == -1)
                                datos += attr.toUpperCase() + sepValor + value + sepFila;
                            else datos += attr.toUpperCase() + sepValor + value.replace(",", ".") + sepFila;
                            bSaltar = false;
                        }
                    }
                }
                else {
                    switch (attr) {
                        case "sexo":                     /* campos que no son necesarios enviar */
                        case "tipodocumento":
                        case "txt":
                            break;
                        case "est_tipoviaje":
                            if (value == null) {
                                var campo = $(opciones[i][ii].id);
                                datos += campo.value + sepValor + "false" + sepFila;
                            }
                            break;
                        default:
                            datos += attr.toUpperCase() + sepValor + "" + sepFila;
                            tempAttr = attr.toUpperCase();
                            break;
                    }
                }
            }
        }
    }
    datos += "LOPD:true" + sepFila;
    if ($F("selFechaDia") != "" && $F("selFechaMes") != "" && $F("selFechaAnio") != "") {
        var diaNac = $F("selFechaDia");
        if (diaNac.length == 1) diaNac = "0" + diaNac
        var mesNac = $F("selFechaMes");
        if (mesNac.length == 1) mesNac = "0" + mesNac
        datos += " FECHANAC" + sepValor + diaNac + "/" + mesNac + "/" + $F("selFechaAnio") + sepFila;
    }
    if ($F("selCaducidadTarMes") != "" && $F("selCaducidadTarAnio") != "") {
        var mesCad = $F("selCaducidadTarMes");
        if (mesCad.length == 1) mesCad = "0" + mesCad;
        datos += " FECHA_CADUCIDAD" + sepValor + mesCad + "/" + $F("selCaducidadTarAnio") + sepFila;
    }

    for (var j = 0; j < sel.length; j++) {
        var attr = sel[j].getAttribute("attributo");
        var requiered = sel[j].getAttribute("user");
        if (attr != null && attr != "") {
            var opcion = $F(sel[j].id)
            if (attr == "trato" && opcion == "") {
                if (opcion == "") {
                    opcion = "";
                }
                //datos += attr.toUpperCase() + sepValor + opcion + sepFila;
            }
            if (opcion != "" && opcion != null) {
                if (attr.indexOf(":") == -1) {
                    if (requiered != null) {
                        var _select = $(sel[j].id);
                        camposRequeridos[contador++] = _select.id;
                        requiered = "";
                    }
                    datos += attr.toUpperCase() + sepValor + opcion + sepFila;

                }
            }
        }
    }

    var provincia = "";
    for (var k = 0; k < hDestinos.length; k++) {
        if (hDestinos[k].Provincia == "0" || hDestinos[k].Provincia == 0) {
            provincia = "";
        } else {
            provincia = hDestinos[k].Provincia
        }
        destinos += "CODPAIS:" + hDestinos[k].Pais + "(#)" + "CODIGOPROV:" + provincia + "|";
    }
    var num = $F("sNinos");
    var selninos = [];
    for (var n = 0; n < num; n++) {
        // número de bucles por cada niño
        var Fninos = "FECHANAC:";
        for (var nn = 0; nn < 3; nn++) {
            // este for es para recorrer las tres selects dia / mes / año
            if ((nn == 0 && $F("sel_" + nn + n) < 10) || (nn == 1 && $F("sel_" + nn + n) < 10)) Fninos += "0";
            Fninos += $F("sel_" + nn + n) + "/";
        }
        Fninos = Fninos.substr(0, Fninos.length - 1);
        if (Fninos.length != 19)
            Fninos = "";
        else
            Fninos = Fninos + "|";

        ninos += Fninos;
    }
    
    if (verifDatos(camposRequeridos)) {
        var parametros = "RegistroParticular" + sepGra + "NuevoParticular" + sepBloc + datos + sepGra + destinos + sepGra + ninos;
        var resp;
        verCtl("divLoading");
        //ocultaCtl("caixa");
        peticionAjax('main(_)' + parametros, RespuestaReg);
    } else {
        verCtl("tblBotonEnviar");
        ocultaCtl("divLoading");
    }
}

function verifDatos(campos) {
    var esValido = false;
    var bSelect = false;
    var IdAlert = "";
    if ($F(campos[0]) == "") {
        IdAlert += "27,";
    }
    // Nombre
    if ($F(campos[1]) == "") {
        IdAlert += "55,";
    }
    // telefono
    if ($F(campos[4]) == "") {
        IdAlert += "40,";
    }
    // poblacion
    if ($F(campos[3]) == "") {
        IdAlert += "85,";
    }
    // email
    if ($F(campos[5]) == "") {
        IdAlert += "32,";
    }
    // password
    if ($F("txtRepetirPws") == "") {
        IdAlert += "79,";
    }
    // repetir password
    if (!getCtl("chklopd").checked) {
        IdAlert += "80,";
    }
    // LOPD
    if ($F("txtNtarjeta") != "") {
        if ($F("selCaducidadTarMes") == "" || $F("selCaducidadTarAnio") == "") {
            IdAlert += "90,";
        }
        else {
            var mensaje = verify($F("txtNtarjeta"), "000", "1", $F("selCaducidadTarMes") + "/" + $F("selCaducidadTarAnio"));
            if (mensaje != 0) {
                if (mensaje == -1) IdAlert += "90,"; //Fecha de caducidad
                else IdAlert += "89,"; //Número incorrecto
            }
        }
    }
    // Selects
    if (getCtl("selPais").value == "undefined" || getCtl("selPais").value == " " || getCtl("selPais").value == "") {
        IdAlert += "81,";
    }

    // Password
    if ($F("txtPassword").toUpperCase() != $F("txtRepetirPws").toUpperCase()) {
        IdAlert += "82,";

    }
    if (getCtl("txtNdocumento").value == "") {
        IdAlert += "173,";
    }
    if (IdAlert != "") {
        esValido = false;
        multiAlertAjax(IdAlert.substring(0, IdAlert.length - 1));
    }
    else {
        esValido = true;

    }

    return esValido;
}

function RespuestaReg(res) {
    var filas = [];
    ocultaCtl("divLoading");
    filas = res.split(sepBloc);
    if (filas[0] != "true") {
        alert(filas[1]);
        verCtl("tblBotonEnviar");
        ocultaCtl("divLoading");
    } else {
        window.location.href = "respuesta.aspx";
    }
}

function addZero(vNumero) {
    return ((vNumero < 10) ? "0" : "") + vNumero
}

function CopiaDestino() {
    var _selects = "selProvincias" + sepElem + "selPaisPrefe" + sepElem + "seldestinos";
    CopiaProvincia(_selects);
}

function LoadPaises() {
    var TodosHoteles = true;
    var parametros = "Comun" + sepGra + "LoadPaises" + sepBloc + "selPais" + sepParams + TodosHoteles;
    peticionAjax('main(_)' + parametros, HandlePaises);
}

function LoadDestinos() {
    var TodosHoteles = true;
    var parametros = "Comun" + sepGra + "LoadPaises" + sepBloc + "selPaisPrefe" + sepParams + TodosHoteles;
    peticionAjax('main(_)' + parametros, HandleDestinos);
}

function HandleDestinos(res) {
    var selpais = $("selPaisPrefe");
    var filas = [];
    filas = res.split("#");
    for (var i = 0; i < filas.length; i++) {
        Funciones.Tools._AddOpcion(selpais, filas[i].substr(0, filas[i].indexOf(":")), filas[i].substr(filas[i].indexOf(":") + 1, filas[i].length));
    }
}

function HandlePaises(res) {
    var selpaises = $("selPais");
    var selpais = $("selPaisPrefe");
    var filas = [];
    filas = res.split("#");
    for (var i = 0; i < filas.length; i++) {
        Funciones.Tools._AddOpcion(selpaises, filas[i].substr(0, filas[i].indexOf(":")), filas[i].substr(filas[i].indexOf(":") + 1, filas[i].length));
    }
}

function LoadProvincias() {
    var parametros = "Comun" + sepGra + "LoadProvincias" + sepBloc + "selProvincias";
    peticionAjax('main(_)' + parametros, HandleProvincias);
}

function HandleProvincias(res) {
    var selprovincia = $(_provincia);
    var lblprovincia = $("lblProvincia");
    var filas = [];
    filas = res.split("#");
    for (var i = 0; i < filas.length; i++) {
        Funciones.Tools._AddOpcion(selprovincia, filas[i].substr(0, filas[i].indexOf(":")), filas[i].substr(filas[i].indexOf(":") + 1, filas[i].length));
    }

    selprovincia.style.display = "inline";
    lblprovincia.style.display = "inline";
}

function LoadProv(pais, provincia) {
    _pais = pais;
    _provincia = provincia;
    var _selprov = $("selProvincias")
    var _selpais = $("selPaisPrefe");
    if ($F(pais) == "E") {
        LoadProvincias(provincia);
    }
    else {
        $(provincia).innerHTML = "";
        var lblprovincia = $("lblProvincia");
        $(provincia).style.display = "none";
        lblprovincia.style.display = "none";
    }
}

window.onload = init;

function init() {
    InitParticular();
    CalendarioLib.GestionPet.InitFechas();
    //pintarListboxesCombinaciones();
}


function iniciaVuelta(res) {
    var resul = res.split(sepBloc);

    if (resul[0] == "ok") {
        cargaSels("selPais,selProvincia,selFechaDia,selFechaMes,selFechaAnio,selPaisPrefe", resul[1]);
    }
    iniciaLoginWeb();
    ocultaCtl("divLoading");
}

function cambioIdiomaRegistroParticular() {
    switch (getCtl("hidFunctionAjax").value) {
        case "inicio":
            petiAjaxMain(getCtl("hidParamsAjax").value, iniciaVuelta);
            break;
    }
}
