﻿// ------ Login ---------------
loginClick = function() {
    var container = $('#ajax-html-form');
    clearPreviousErrors(container);
    //validate
    if (!checkRequiredFields(container))
        return false;

    // collect data for ajax
    var url = $('#url', container).val();

    if (url == null || url == '')
        return false;

    var inputs = $('input:text, input:password', container);

    var postData = new Object();

    inputs.each(function() {
        postData[$(this).attr('name')] = $(this).val();
    });


    // sent data
    $.ajax({
            url: url,
            type: 'post',
            data: postData,
        //        error: function(request, error) {
        //            $('a.error', container).html('error');
        //            $('a.error', container).show();
        //        },
            success: function(data) {
                container.html('');

                if ($('#status', data).val() == 'success') {
                    $.modal.close();
                    window.location.href = $('#closed-section-url', data).val();
                    return false;
                }

                container.html(data);
                container.modal();

                return false;
            },
            dataType: 'html'
        });

    return false;
};
// ------ Change password ----------
changePasswordClick = function() {
    var container = $('#ajax-html-form');
    clearPreviousErrors(container);
    //validate
    if (!checkRequiredFields(container))
        return false;

    if (!checkEqualFields(container))
        return false;

    // collect data for ajax
    var url = $('#url', container).val();

    if (url == null || url == '')
        return false;

    var inputs = $('input:text, input:password', container);

    var postData = new Object();

    inputs.each(function() {
        postData[$(this).attr('name')] = $(this).val();
    });


    // sent data
    $.ajax({
            url: url,
            type: 'post',
            data: postData,
        //        error: function(request, error) {
        //            $('a.error', container).html('error');
        //            $('a.error', container).show();
        //        },
            success: function(data) {
                container.html('');


                if ($('#status', data).val() == 'success') {
                    var message = '<h2>' + $('h2', data).html() + '</h2><p>' + $('#success-message', data).val() + '</p>';
                    var timeout = $('#timeout', data).val();

                    container.html(message);
                    container.modal();

                    setTimeout(function() { $.modal.close(); }, timeout);

                    return false;
                }

                container.html(data);
                container.modal();

                return false;
            },
            dataType: 'html'
        });

    return false;
};
// ------ Registration ----------
showRegistrationForm = function() {
    var container = $('#ajax-html-form ');
    var url = $('#registration-url', container).val();

    $.ajax({
            url: url,
        //        error: function(request, error) {
        //            container.html(error);
        //            container.modal();
        //        },
            success: function(data) {
                container.html(data);
                container.modal();
            },
            dataType: 'html'
        });

    return false;
};
registrationClick = function() {
    var container = $('#ajax-html-form');
    clearPreviousErrors(container);
    //validate
    if (!checkRequiredFields(container))
        return false;

    // collect data for ajax
    var url = $('#url', container).val();

    if (url == null || url == '')
        return false;

    var inputs = $('input:text, input:password', container);

    var postData = new Object();

    inputs.each(function() {
        postData[$(this).attr('name')] = $(this).val();
    });


    // sent data
    $.ajax({
            url: url,
            type: 'post',
            data: postData,
        //        error: function(request, error) {
        //            $('a.error', container).html('error');
        //            $('a.error', container).show();
        //        },
            success: function(data) {
                container.html('');


                if ($('#status', data).val() == 'success') {
                    var message = '<h2>' + $('h2', data).html() + '</h2><p>' + $('#success-message', data).val() + '</p>';
                    var timeout = $('#timeout', data).val();

                    container.html(message);
                    container.modal();

                    setTimeout(function() { $.modal.close(); }, timeout);

                    return false;
                }

                container.html(data);
                container.modal();

                return false;
            },
            dataType: 'html'
        });

    return false;
};
// ------ Restore password----------
showRestorePasswordForm = function() {
    var container = $('#ajax-html-form ');
    var url = $('#restore-url', container).val();

    $.ajax({
            url: url,
            error: function(request, error) {
                container.html(error);
                container.modal();
            },
            success: function(data) {
                container.html(data);
                container.modal();
            },
            dataType: 'html'
        });

    return false;
};
restoreClick = function() {
    var container = $('#ajax-html-form');
    clearPreviousErrors(container);
    //validate
    if (!checkRequiredFields(container))
        return false;

    // collect data for ajax
    var url = $('#url', container).val();

    if (url == null || url == '')
        return false;

    var inputs = $('input:text, input:password', container);

    var postData = new Object();

    inputs.each(function() {
        postData[$(this).attr('name')] = $(this).val();
    });


    // sent data
    $.ajax({
            url: url,
            type: 'post',
            data: postData,
//            error: function(request, error) {
//                $('a.error', container).html('error');
//                $('a.error', container).show();
//            },
            success: function(data) {
                container.html('');


                if ($('#status', data).val() == 'success') {
                    var message = '<h2>' + $('h2', data).html() + '</h2><p>' + $('#success-message', data).val() + '</p>';
                    var timeout = $('#timeout', data).val();

                    container.html(message);
                    container.modal();

                    setTimeout(function() { $.modal.close(); }, timeout);

                    return false;
                }

                container.html(data);
                container.modal();

                return false;
            },
            dataType: 'html'
        });

    return false;
};
// ------ Validations ----------
checkRequiredFields = function(container) {
    var valid = true;

    var toValidate = $('input.required', container);
    toValidate.each(function() {
        var res = $(this).val() != null && $(this).val() != '';
        if (!res)
            $('label[for="' + $(this).attr('id') + '"]', container).attr('class', 'error');

        valid = valid && res;
    });

    return valid;
};
checkEqualFields = function(container) {
    var valid = true;
    var value = '';

    var toValidate = $('input.equal', container);
    toValidate.each(function() {
        if (value == '')
            value = $(this).val();
        else
            valid = valid && (value == $(this).val());
    });

    if (!valid)
        toValidate.each(function() {
            $('label[for="' + $(this).attr('id') + '"]', container).attr('class', 'error');
        });

    return valid;
};
clearPreviousErrors = function(container) {
    $('.error_warning', container).html('');
};
