/* Created by jankoatwarpspeed.com */


function validar_menu_empresa_form() {

    // Limpio los mensajes de error
    remove_field_validation_error();

    var is_valid_empresa_form = true;

    // Cargo los valores almacenados
    var Primero_string = $("#Primero" + $('#Primero:checked').val()).val();
    var Segundo_string = $("#Segundo" + $('#Segundo:checked').val()).val();
    var Postre_string = $("#Postre" + $('#Postre:checked').val()).val();
    var NumeroComensales_string = $("#NumeroComensales").val();

    // Compruebo que todos los elementos tienen valor
    if (Primero_string == undefined) { is_valid_empresa_form = false; $("#titulo_primero").append(create_field_error(seleccionar_primero_string)); }
    if (Segundo_string == undefined) { is_valid_empresa_form = false; $("#titulo_segundo").append(create_field_error(seleccionar_segundo_string)); }
    if (Postre_string == undefined) { is_valid_empresa_form = false; $("#titulo_postre").append(create_field_error(seleccionar_postre_string)); }

    if (NumeroComensales_string == undefined) { is_valid_empresa_form = false; $("#modulo_personas").append(create_field_error(campo_obligatorio_string)); }
    if (NumeroComensales_string < 4) { is_valid_empresa_form = false; $("#modulo_personas").append(create_field_error(numero_comensales_string)); }

    return is_valid_empresa_form;
}

function validar_vino_empresa_form() {

    // Limpio los mensajes de error
    remove_field_validation_error();

    var is_valid_empresa_form = true;

    // Cargo los valores almacenados
    //var Vino_string = $("#Vino" + $('#Vino:checked').val()).val();

    // Compruebo que todos los elementos tienen valor
    //if (Vino_string == undefined) { is_valid_empresa_form = false; $("#titulo_vino").append(create_field_error(seleccionar_vino_string)); }

    return is_valid_empresa_form;
}
function validar_datos_personales_empresa_form() {

    // Limpio los mensajes de error
    remove_field_validation_error();

    var is_valid_empresa_form = true;

    // Cargo los valores almacenados
    var Numero_Comensales_string = $("#NumeroComensales").val();

    return is_valid_empresa_form;
}


function validate_current_form(current_form) {

    var formulario_correcto = false;

    switch (parseInt(current_form)) {
        case 0:
            formulario_correcto = validar_menu_empresa_form();
            break;
        case 1:
            formulario_correcto = validar_vino_empresa_form();
            break;
        case 2:
            formulario_correcto = true;
            break;
        default:
            formulario_correcto = false;
            break;
    }

    return formulario_correcto;
}


(function ($) {
    $.fn.formToWizard = function (options) {
        options = $.extend({
            submitButton: "SaveAccount",
            field_step: "Step",
            field_submit: "Send",
            field_next: "Next",
            field_prev: "Prev",
            enable_cookies: false
        }, options);

        var element = this;

        var steps = $(element).find("fieldset");
        var count = steps.size();
        var submmitButtonName = "#" + options.submitButton;
        $(submmitButtonName).hide();


        // Implementación del acordeón
        $(element).before("<div id='accordion'></div>");


        steps.each(function (i) {
            $(this).wrap("<div id='step" + i + "'></div>");
            $(this).append("<p id='step" + i + "commands'></p>");

            // Implementación del acordeón
            var name = $(this).find("legend").html();
            var content = $("#content_accordion_field" + i).html();

            $("#accordion").append("<h3 id='stepDesc" + i + "'><a href='#'>" + options.field_step + " " + (i + 1) + "</a><span class='name_description'>" + name + "</span></h3>");
            $("#accordion").append("<div id='accordion_content" + i + "' class='accordion_content_class' >" + content + "</div>");

            if (i == 0) {
                createNextButton(i);
                selectStep(i);
            }
            else if (i == count - 1) {
                $("#step" + i).hide();
                createPrevButton(i);
                createSubmitButton(i);
            }
            else {
                $("#step" + i).hide();
                createPrevButton(i);
                createNextButton(i);
            }
        });

        function createPrevButton(i) {

            var stepName = "step" + i;

            $("#" + stepName + "commands").append("<button type='button' id='" + stepName + "Prev' class='prev'>< " + options.field_prev + "</button>");

            $("#" + stepName + "Prev").bind("click", function (e) {


                 // Activo el acordeón
                    $("#accordion").accordion("option", "active", i - 1);


                // Validando el formulario
                /*
                if(validate_current_form($.cookie("current_fieldset"))){
                    $.cookie("current_fieldset", i - 1);
                    $("#" + stepName).hide();
                    $("#step" + (i - 1)).show();
                    $(submmitButtonName).hide();
                    selectStep(i - 1);
                }
                */
            });
        }


        function createNextButton(i) {
            var stepName = "step" + i;
            $("#" + stepName + "commands").append("<button type='button' id='" + stepName + "Next' class='next'>" + options.field_next + " ></button>");

            $("#" + stepName + "Next").bind("click", function (e) {

                // Activo el acordeón
                $("#accordion").accordion("option", "active", i + 1);


                // Validando el formulario
                //if(validate_current_form($.cookie("current_fieldset"))){
                /*
                    $.cookie("current_fieldset", i + 1);
                    $("#" + stepName).hide();
                    $("#step" + (i + 1)).show();

                    if (i + 2 == count)
                        $(submmitButtonName).show();
                    selectStep(i + 1);
                    */
                    
                //}
            });
        }

        function createSubmitButton(i) {
            var stepName = "step" + i;
            $("#" + stepName + "commands").append("<button id='" + options.submitButton + "' class='button_submit'  type='submit' value='" + options.field_submit + "'> " + options.field_submit + "</button>");
        }

        function selectStep(i) {

            $("#steps li").removeClass("current");
            $("#stepDesc" + i).addClass("current");
        }

        var index_accordion = 0;


        // Selecciono el fieldset actual
        if (options.enable_cookies) {
            if ($.cookie("current_fieldset") != null) {
                var stepName = "step" + $.cookie("current_fieldset") - 1;
                $("#step0").hide(); $("#step1").hide(); $("#step2").hide();

                $("#step" + $.cookie("current_fieldset")).show();
                selectStep($.cookie("current_fieldset"));

                index_accordion = $.cookie("current_fieldset");
            }
        }

        // Cargo el acordeón
        $("#accordion").accordion({
            fillSpace: true,
            active: parseInt(index_accordion),
            change: function (event, ui) {

                if($.cookie("current_fieldset") == null) $.cookie("current_fieldset", 0 );
                
                var index_accordion_value = $.cookie("current_fieldset");

                // Solo hay que validar cuando se está yendo hacia adelante
                //alert("Actual:" + index_accordion_value + " Futura:" + $(this).accordion("option", "active"));
                if(index_accordion_value < $(this).accordion("option", "active"))
                {
                    // Validar el formulario
                    if(!validate_current_form(index_accordion_value)){
                        $("#accordion").accordion("option","active", parseInt(index_accordion_value));
                    }
                    else{
                        validate_current_form($(this).accordion("option", "active"));
                        $.cookie("current_fieldset", $(this).accordion("option", "active"));
                        $("#step0").hide(); $("#step1").hide(); $("#step2").hide();
                        $("#step" + $.cookie("current_fieldset")).show();
                        selectStep($.cookie("current_fieldset"));
                    }
                }
                else{
                    $.cookie("current_fieldset", $(this).accordion("option", "active"));
                    $("#step0").hide(); $("#step1").hide(); $("#step2").hide();
                    $("#step" + $.cookie("current_fieldset")).show();
                    selectStep($.cookie("current_fieldset"));
                }
            }
        });
    }
})(jQuery); 
