﻿Type.registerNamespace('casapadova.company');

casapadova.company.register = {
    blockingUI: {
        css: {
            width: "250px",
            border: '2px solid #FF8D34',
            padding: "5px"
        },
        overlayCSS: {
            backgroundColor: '#F0F0F0',
            opacity: '0.9'
        }
    },
    errorMessages: {
        "Company.Name": "Nome Agenzia obbligatorio",
        "User.Username": "Login obbligatorio",
        "User.Password": "Password obbligatoria",
        "User.FirstName": "Nome obbligatorio",
        "User.LastName": "Cognome obbligatorio",
        "Company.City": "Comune / provincia obbligatorio",
        "Company.Address": "Indirizzo obbligatorio",
        "Company.Zip": "Cap obbligatorio",
        "Company.PhoneNumber": "Telefono obbligatorio",
        "Company.Email": {
            required: "Email obbligatoria",
            email: "Email non valida"
        },
        "Company.PrivacyCheck": "Devi accettare l\'informativa sulla privacy"
    },
    send: function(submittedForm) {
        var validatedForm = $(submittedForm).validate({
            onkeyup: false,
            errorLabelContainer: "#errorList",
            wrapper: "li",
            showErrors: function(errorMap, errorList) {
                $("#serverErrorList").html();
                $("#messageBox").html("");
                var nums = this.numberOfInvalids()
                if (nums > 0) {
                    $(errorList).each(function(index, obj) {
                        $(obj.element).effect("pulsate", { times: 1 }, 300);
                    });
                    $("<a href='javascript:' onclick='casapadova.company.register.showErrors();' >" + "Ci sono "
                                       + this.numberOfInvalids()
                                       + " errori di compilazione." + "</a>").appendTo("#messageBox")
                    $("#messageBox").show();
                } else {
                    $("#messageBox").hide();
                }
                this.defaultShowErrors();
            },
            messages: casapadova.company.register.errorMessages
        });
        if ($(submittedForm).valid()) {
            $("#infoRequestBox").block({
                message: "<h4>Inviando...</h4>",
                css: casapadova.company.register.blockingUI.css,
                overlayCSS: casapadova.company.register.blockingUI.overlayCSS
            });
            var data = $(submittedForm).serialize();
            $.ajax({
                type: "POST",
                url: "/Secured/CompanyRegister",
                data: data,
                success: function(result) {
                    if (result.success) {
                        validatedForm.resetForm();
                        $("#infoRequestBox").unblock();
                        document.location = "/Account/Login?created=true";
                    } else {
                        if (result.reason == "ValidationError") {
                            $("#serverErrorList").html("");
                            $(result.errors).each(function(index, error) {
                                var errorMessage = error.Message;
                                $("<li></li>").html(errorMessage).appendTo("#serverErrorList");
                            });
                            $("#serverErrorList").show();
                            $("#infoRequestBox").block({
                                message: $('#errorsBox'),
                                css: casapadova.company.register.blockingUI.css,
                                overlayCSS: casapadova.company.register.blockingUI.overlayCSS,
                                onUnblock: function() {
                                    $("#serverErrorList").html();
                                }
                            });
                        }
                        else {
                            $("#infoRequestBox").unblock();
                            $.growlUI('Errore', 'E\' avvenuto un errore nell\'invio del messaggio (' + result.reason + ')');
                        }
                    }

                },
                error: function(req, status, error) {
                    $("#infoRequestBox").unblock();
                    $.growlUI('Errore', 'E\' avvenuto un errore nell\'invio del messaggio (' + error + ')');
                },
                dataType: "json"
            });
        }
    },
    showErrors: function() {
        $("#infoRequestBox").block({
            message: $('#errorsBox'),
            css: casapadova.company.register.blockingUI.css,
            overlayCSS: casapadova.company.register.blockingUI.overlayCSS
        });
    },
    hideErrors: function() {
        $("#infoRequestBox").unblock();
    }
}

casapadova.company.showPrivacy = function() {
    $.blockUI({ message: $('#privacyStatement'), css: { width: "550px", centerY: false, top: "30px", focusInput: false} });
}

casapadova.company.hidePrivacy = function() {
    $.unblockUI(function() {
        alert("Unblocked");
    });
}