﻿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 = document.getElementById("Lay" + idItem).innerHTML; }

        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 idCasting = $("input[name$='code']").val();
        var tipoCasting = $("input[name$='typeCasting']").val();

        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");
        var itemForm = sendForm.getArrCampos();
        $("input[name$='JsonItem']").val($.toJSON(itemForm));

        /*
        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");

        var itemForm = sendForm.getArrCampos();
        $("input[name$='JsonItem']").val($.toJSON(itemForm));

        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();

        f.get(0).submit();
    }
}

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;
}


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("/");
        var dia = fecha[0];
        var mes = fecha[1];
        var ano = fecha[2];
        var estado = true;
        var dmax;

        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);
            }

            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;
            }
        }

        return estado;
    } 
    catch (err) {
        alert(err)
        return false;
    }
}


$(document).ready(function() {

    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");
});