﻿// Fancy form validation error messages
// Also include the stylesheet

$(function () {

    var error_fields = [];
    var form = $('.Site form.ewXform > fieldset > ol');

    // Is there a form in this page?
    if (form[0] != null) {

        if ($('.Site form.ewXform span.alert')[0] == null) {
            return;
        }
        if ($('.Site form.ewXform > li > span.alert').text() == "Message Sent") {
            var success_element = $('body').append('<div class="success_message">' + 'Message sent.' + '</div>').children('div.success_message');
            success_element.hide().delay(100).slideDown(500).delay(5000).slideUp(300);
            return;
        }

        var num_errors = 0;
        var error_messages = "Please check these fields: ";

        var items = form.children();

        items.each(function () {
            var input = $(this).children('input, textarea');
            var error = $(this).children('span.alert');

            // Does this field have an error element associated with it?
            if (error[0] != null) {
                input.addClass('field_with_error');
                num_errors++;
                error_fields[error_fields.length] = input.attr('name').toLowerCase();
            }
        });

        // Fancy wording
        if (num_errors == 1) {
            error_messages = "Please check the " + error_fields[0] + " field.";
        }
        else if (num_errors == 2) {
            error_messages = "Please check the " + error_fields[0] + " and " + error_fields[1] + " fields.";
        }
        else if (num_errors == 3) {
            error_messages = "Please check the " + error_fields[0] + ", " + error_fields[1] + " and " + error_fields[2] + " fields.";
        }
        else {
            error_messages = "Please check these fields: ";
            for (var i in error_fields) {
                error_messages += error_fields[i] + ', ';
            }
            error_messages = error_messages.substring(0, error_messages.length - 2) + '.';
        }

        error_string = num_errors + ' error';
        if (num_errors > 1) {
            error_string += 's';
        }
        error_string += ' in form.  ' + error_messages;

        var error_element = $('body').append('<div class="error_message">' + error_string + '</div>').children('div.error_message');
        error_element.hide().delay(100).slideDown(500).delay(5000).slideUp(300);
    }

});
