var loginDynamicOptions = {
    button:             '#ajaxsigninform input[type="submit"]',
    url:                '/api/community/login',
    dataType:           'json',
    labels: {
       enterValue:      'Пожалуйста внеси свою Электронную Почту и Пароль',
       enterUsername:   'Sorry, a valid username is required',
       enterPassword:   'Sorry, a valid password is required',
       logging:         'Пожалуйста ждите...',
       usernameDefault: 'Электронная почта'
    }
};

jQuery(document).ready(function() {
    if(loginDynamicOptions)
    {
        mylingo.form.validate($('#ajaxsigninform'), {
            submitHandler: function(form)
            {
                var loginMainOptions = {
                    clearForm:      false,
                    beforeSubmit:   loginForm.validate,  // pre-submit callback
                    success:        loginForm.showResponse  // post-submit callback
                }

                //Merge dynamic options from HTML with static js options
                loginOptions = jQuery.extend(loginMainOptions, loginDynamicOptions);

                jQuery(form).ajaxSubmit(loginOptions);

                return false;
            }
        });
    }
});

var loginForm = {
    validate: function(formData, jqForm)
    {
        //show loading message and disable submit button
        loginSubmitVal = jQuery(loginOptions.button).val();
        jQuery(loginOptions.button).val(loginOptions.labels.logging);

        return true;
    },
    showResponse: function(responseText, statusText, xhr, $form)
    {
        var obj = responseText;

        switch(obj.status)
        {
            case 'success':
            case 'logged':
                //redirect user
                document.location = obj.url;
            break;

            case 'invalid':
                //restore submit button to previous status
                jQuery(loginOptions.button).val(loginSubmitVal);
                
                //show error tip
                mylingo.ui.tooltip.show($('.login_form'), {
                    overwrite: true,
                    content: obj.message,
                    show:
                    {
                        event: false,
                        ready: true
                    },
                    hide: false,
                    style: {
                        classes: 'ui-tooltip-shadow ui-tooltip-red'
                    }
                }, false);
            break;
        }

        return false;
    }
};
