﻿var FotoVideo = 0;
var itemArray = new Array();

jQuery(function() {
    var p = jQuery("#ajaxFormRegistro").validate({
        submitHandler: function(form) {
            sendForm.endSend();
        },
        errorLabelContainer: null
    });
    // show a simple loading indicator
    var loader = jQuery('<div id="loader">Accediendo al siguiente paso...</div>')
			    .css({ position: "fixed", top: "1em", textAlign: "center" })
			    .appendTo("body")
			    .hide();
    jQuery().ajaxStart(function() {
        var backItem = $("#BackAlertLay");
        backItem.show();
        loader.show();
    }).ajaxStop(function() {
        loader.hide();
        p.resetForm();
    }).ajaxError(function(a, b, e) {
        throw e;
    });
});

var paintForm = {
    setLayContent: function(idItem, obligatorio) {
        var itemLay = document.getElementById("Lay" + idItem);
        var htmlLay = "";

        if ((("Lay" + idItem == "LayVideo") || ("Lay" + idItem == "LayFoto")) ||
            (("Lay" + idItem == "LayVideo2") || ("Lay" + idItem == "LayFoto2")) ||
            (("Lay" + idItem == "LayVideo3") || ("Lay" + idItem == "LayFoto3")) ||
            (("Lay" + idItem == "LayVideo4") || ("Lay" + idItem == "LayFoto4")) ||
            (("Lay" + idItem == "LayVideo5") || ("Lay" + idItem == "LayFoto5"))) {
            FotoVideo = 1;
        }

        if ((obligatorio == 'True') && ($("#Lay" + idItem + " span").length == 0)) {

            $("#Lay" + idItem).append("<span>*</span>");

            if ($("#Lay" + idItem + " input").length != 0) { $("#Lay" + idItem + " input").addClass("required"); }
            if ($("#Lay" + idItem + " select").length != 0) { $("#Lay" + idItem + " select").addClass("required"); }
            if ($("#Lay" + idItem + " textarea").length != 0) { $("#Lay" + idItem + " textarea").addClass("required"); }
            if ($("#Lay" + idItem + " textarea").length != 0) { $("#Lay" + idItem + " textarea").addClass("required"); }
        }

        if ((obligatorio == 'False') && $("#Lay" + idItem + " span").length != 0) {

            if ($("#Lay" + idItem + " span").length == 1) { $("#Lay" + idItem + " span").remove(); }
            else { $("#Lay" + idItem + " span:first").remove(); }

            /*            if ($("#Lay" + idItem + " input").length != 0) { $("#Lay" + idItem + " input").get(0).className = ""; }
            if ($("#Lay" + idItem + " select").length != 0) { $("#Lay" + idItem + " select").get(0).className = ""; }
            if ($("#Lay" + idItem + " textarea").length != 0) { $("#Lay" + idItem + " textarea").get(0).className = ""; }*/

        }
        if (idItem != "") {
            htmlLay = $("#Lay" + idItem).html();
        }

        return htmlLay;
    }
}

function campos(id, val) {
    this.IdItem = id;
    this.Valor = val;
}

function CastingItem (id, TipoCasting, Campos) {
    this.Id = id;
    this.TipoCasting = TipoCasting;
    this.Campos = Campos;
}

var sendForm = {
    getArrCampos: function() {
        var objCasting,
            item,
            itemType,
            itemField,
            arrCampos = new Array();

        if ($("#DNI").length > 0) {
            var dni = $("#DNI").val();
            dni = dni.split("-").join("");
            dni = dni.split("/").join("");
            dni = dni.split(" ").join("");

            $("#DNI").val(dni);
        }

        for (var i = 0; i < jsonRegistro.Campos.length; i++) {
            itemField = jsonRegistro.Campos[i].IdItem;
            item = $("#" + itemField);

            if (typeof item.get(0) != "undefined") {
                itemType = item.get(0).tagName;

                //itemArray
                if (itemType == "INPUT") {

                    if (item.attr("type") == "file") {
                        var splittedVal = item.val().split("\\");
                        jsonRegistro.Campos[i].Valor = splittedVal[splittedVal.length - 1];

                    } else if ($("input[name$='" + ArrCastingAply[i] + "']").length > 1) {
                        for (var rb = 0; rb < $("input[name$='" + ArrCastingAply[i] + "']").length; rb++) {
                            if ($("input[name$='" + ArrCastingAply[i] + "']").get(rb).checked) {
                                jsonRegistro.Campos[i].Valor = $("input[name$='" + ArrCastingAply[i] + "']").get(rb).value;
                            }
                        }
                    } else {
                        jsonRegistro.Campos[i].Valor = item.val();
                    }
                } else if (itemType == "SELECT" || itemType == "TEXTAREA") {
                    var itemVal = item.val().split("\n").join(" ");
                    itemVal = itemVal.split("\r").join("");

                    jsonRegistro.Campos[i].Valor = itemVal;
                } else { }
            }

        }

        /*

        var idCasting = $("input[name$='code']").val();
        var tipoCasting = $("input[name$='typeCasting']").val();

        if ($("#DNI").length > 0) {
        var dni = $("#DNI").val();
        dni = dni.split("-").join("");
        dni = dni.split("/").join("");
        dni = dni.split(" ").join("");

            $("#DNI").val(dni);
        }

        var arrCampos = new Array();

        for (var i = 0; i < ArrCastingAply.length; i++) {
        var item = $("#" + ArrCastingAply[i]);
        var itemType = item.get(0).tagName;

            //itemArray
        if (itemType == "INPUT") {

                if (item.attr("type") == "file") {
        var splittedVal = item.val().split("\\");
        var itemCamposFile = new campos("" + ArrCastingAply[i] + "", splittedVal[splittedVal.length - 1]);

                    arrCampos.push(itemCamposFile);
        } else if ($("input[name$='" + ArrCastingAply[i] + "']").length > 1) {
        for (var rb = 0; rb < $("input[name$='" + ArrCastingAply[i] + "']").length; rb++) {
        if ($("input[name$='" + ArrCastingAply[i] + "']").get(rb).checked) {
        var itemCampos1 = new campos("" + ArrCastingAply[i] + "", $("input[name$='" + ArrCastingAply[i] + "']").get(rb).value);
        arrCampos.push(itemCampos1);
        }
        }
        } else {
        var itemCampos2 = new campos("" + ArrCastingAply[i] + "", item.val());
        arrCampos.push(itemCampos2);
        }
        } else if (itemType == "SELECT" || itemType == "TEXTAREA") {
        var itemVal = item.val().split("\n").join(" ");
        itemVal = itemVal.split("\r").join("");
        var itemCampos3 = new campos("" + ArrCastingAply[i] + "", itemVal);
        arrCampos.push(itemCampos3);
        } else { }
        }
        var objCasting = new CastingItem(idCasting, tipoCasting, arrCampos);
        return objCasting;
        */

    },
    nextStep: function() {
        var f = $("#ajaxFormRegistro");

        sendForm.getArrCampos();
        $("input[name$='JsonItem']").val($.toJSON(jsonRegistro));

        /*
        var f = $("#ajaxFormRegistro");
        var serializedForm = f.serialize();
        */
        var idCasting = $("input[name$='code']").val();
        var url = "";




        if (FotoVideo == 1) {
            //$("#RegisterStep").hide();

            if ($(".PostRequired").length > 0) {
                $(".PostRequired").addClass("required");
            }

            //$("#SendStep").show();
        } else { sendForm.endSend(); }


        /*
        $.post("/Castings/CheckRegistro", serializedForm, function(data) {
        if (data == 'true') {
        if (location.href.split("/Programas/").length > 1) {
        if (FotoVideo == 1) {

                        alert("serializedForm: " + serializedForm);
        //open("/Programas/Envio/" + idPrograma + "/" + idEdicion, "_self");
        } else {
        url = "/Programas/InfoGeneral/" + idPrograma + "/" + idEdicion;
        openWin.init(['alertOK', 'Envio', 'Los datos han sido enviados correctamente.', url]);
        }
        }
        else {
        if (FotoVideo == 1) {
        alert("Aqui: serializedForm: " + serializedForm);
        open("/Castings/Envio/" + idCasting, "_self");
        } else {
        url = "/Home";
        openWin.init(['alertOK', 'Envio', 'Los datos han sido enviados correctamente.', url]);
        }
        }
        } else { openWin.init(['alertKO', 'Error', 'Error en la validación de los códigos', ""]); }
        });*/

        return false;
    },
    endSend: function() {
        var f = $("#ajaxFormRegistro");

        sendForm.getArrCampos();

        $("input[name$='JsonItem']").val($.toJSON(jsonRegistro));

        var backItem = $("#BackAlertLay");
        backItem.show();

        var loader = jQuery('<div id="loader">Enviando...</div>')
        .css({ position: "fixed", top: "1em", textAlign: "center" })
        .appendTo("body")
        .hide();
        loader.show();

        var params = (typeof urlParams["code1"] != "undefined" && typeof urlParams["code2"] != "undefined") ? "?code1=" + urlParams["code1"] + "&code2=" + urlParams["code2"] : "";
        f.get(0).action = f.get(0).action + params;
        f.get(0).submit();

    }
}

var urlParams = {};
(function () {
    var e,
        a = /\+/g,  // Regex for replacing addition symbol with a space
        r = /([^&=]+)=?([^&]*)/g,
        d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
        q = window.location.search.substring(1);

    while (e = r.exec(q))
       urlParams[d(e[1])] = d(e[2]);
})();


function VerifyDNI(dni) {

    if ($("#Tipo_documento").length != 0) {
        if ($("#Tipo_documento").get(0).checked) {

            dni = dni.split("-").join("");
            dni = dni.split("/").join("");

            if (dni.testNIE()) {
                return true;
            }

            if (dni.testDNI()) {
                return true;
            }

            return false;

            /*numero = dni.substr(0, dni.length - 1);
            let = dni.substr(dni.length - 1, 1);
            numero = numero % 23;
            letra = 'TRWAGMYFPDXBNJZSQVHLCKET';
            letra = letra.substring(numero, numero + 1);
            if (letra.toLowerCase() != let.toLowerCase()) {
                return false;
            }*/
        }
        else {
            dni = dni.split("-").join("");
            dni = dni.split("/").join("");
            dni = dni.split(" ").join("");
            if (dni.length < 8) {
                return false;
            }
        }
    }

    return true;
}

function IntegerNum(val) {
    if (val.indexOf(".") != -1) {
        return false;
    }
    return true;
}

String.prototype.testNIE = function() {
    var dni = this.toUpperCase();
    var pre = dni.substr(0, 1);
    var prev = '0';
    if (pre == 'X')
        prev = '0';
    else if (pre == 'Y')
        prev = '1';
    else if (pre == 'Z')
        prev = '2';
    numero = prev + dni.substr(1, dni.length - 1);
    return numero.testDNI();
}

String.prototype.testDNI = function() {
    dni = this.toUpperCase();
    numero = dni.substr(0, dni.length - 1);
    let = dni.substr(dni.length - 1, 1);
    let = let.toUpperCase();
    numero = numero % 23;
    letra = 'TRWAGMYFPDXBNJZSQVHLCKET';
    lletra = letra.charAt(numero);

    return (lletra == let)
}

function VerifyDate(fecha) {
    try {
        var fecha = fecha.split("/"),
            estado = true;
        
        if (fecha.length == 3) {

            var dia = fecha[0],
                mes = fecha[1],
                ano = fecha[2],
                dmax,
                minYear = "1900";            

            if ((dia.length == 2) && (mes.length == 2) && (ano.length == 4)) {

                if (mes.substr(0, 1) == "0") {
                    mes = mes.substr(1, 1);
                }

                if (dia.substr(0, 1) == "0") {
                    dia = dia.substr(1, 1);
                }

                if (parseFloat(ano) < parseFloat(minYear)) {return false; }

                switch (parseInt(mes)) {
                    case 1: dmax = 31; break;
                    case 2: if (ano % 4 == 0) dmax = 29;
                        else dmax = 28;
                        break;
                    case 3: dmax = 31; break;
                    case 4: dmax = 30; break;
                    case 5: dmax = 31; break;
                    case 6: dmax = 30; break;
                    case 7: dmax = 31; break;
                    case 8: dmax = 31; break;
                    case 9: dmax = 30; break;
                    case 10: dmax = 31; break;
                    case 11: dmax = 30; break;
                    case 12: dmax = 31; break;
                }
                dmax != "" ? dmax : dmax = -1;

                if ((dia >= 1) && (dia <= dmax) && (mes >= 1) && (mes <= 12)) {
                    for (var i = 0; i < fecha[0].length; i++) {
                        diaC = fecha[0].charAt(i).charCodeAt(0);
                        (!((diaC > 47) && (diaC < 58))) ? estado = false : '';
                        mesC = fecha[1].charAt(i).charCodeAt(0);
                        (!((mesC > 47) && (mesC < 58))) ? estado = false : '';
                    }
                }
                else {
                    estado = false;
                }

                for (var i = 0; i < fecha[2].length; i++) {
                    anoC = fecha[2].charAt(i).charCodeAt(0);
                    (!((anoC > 47) && (anoC < 58))) ? estado = false : '';
                }
            }
            else { estado = false; }

            if (estado) {

                var compareDate = new Date(parseInt(ano) + 18, parseInt(mes - 1), dia);

                if (compareDate > new Date()) {

                    if (document.activeElement.id != "Fecha_nacimiento") {
                        alert("Tienes que ser mayor de edad para poder registrarte en este casting.");
                    }
                    estado = false;
                }
            }
        } else {
            estado = false;
        }
        return estado;
    }
    catch (err) {
        alert(err)
        return false;
    }
}

$(document).ready(function() {
    jQuery.validator.addMethod("integer", function(value, element) {
        return IntegerNum(value);
    }, "");

    jQuery.validator.addMethod("verifyDNI", function(value, element) {
        return VerifyDNI(value);
    }, "");

    $('#DNI').addClass("verifyDNI");

    jQuery.validator.addMethod("verifyDate", function(value, element) {
        return VerifyDate(value);
    }, "");

    $('#Fecha_nacimiento').addClass("verifyDate");

    if ($(".contentLayCasting .chk").length > 0) {
        if ($("#Otras_aficiones").length > 0) {
            if ($("#Otras_aficiones").attr("class") != "required") {
                $("#Otras_aficiones").parent().hide();
            }
        }
    }
    $(".contentLayCasting .chk").click(function() {
        $("#Id_aficion").val("");
        var value = $(this).val();
        var arrChk = "";
        $.each($(".contentLayCasting").find(".chk"), function(index, value) {
            var status = $(this).attr("checked");

            if (status) {
                arrChk += $(this).val() + ";";
            }

        });
        if ($("#Otras_aficiones").length > 0) {
            if (value == "12" || value == 12) {
                if ($("#Otras_aficiones").attr("class") != "required") {
                    $("#Otras_aficiones").parent().toggle();
                }
            }
        }
        arrChk = arrChk.slice(0, arrChk.length - 1);
        $("#Id_aficion").val(arrChk);
    })
});
