jQuery(document).ready(function() {
    setTimeout(barter, 0);
});

var barter = function() {
    $("textarea#captcha").closest("li").addClass("captcha");

    $("textarea").each(function() {
        $(this).closest('li').children('span').attr('htmlfor', 'barter_' + $(this).closest('li').children('span').attr('htmlfor'));
        $(this).focus(function() {
            $(this).closest('.input-box').addClass("active");
        });
        $(this).blur(function() {
            if ($(this).val() === "") {
                $(this).closest("li").children(".error").hide();
                $(this).valid();
            }
            $(this).closest('.input-box').removeClass("active");
        });
        var rows = 1;
        if ($(this).attr("id") == "barter_note")
            rows = 3;
        $(this).smartArea(rows);
    });

    if (math_error !== '') {
        $("li.captcha").find("span.error").text(math_error).show();
        $.scrollTo($("span.error[htmlfor='barter_captcha']"),200,-20);
    }

    $("#a_submit").click(function() {
        if ($("#barter_form").valid()) {
            $('#barter_form').get(0).submit();
        } else $.scrollTo('span.error:visible:first', 200, {offset: -20 });
        return false;
    });

    jQuery.validator.setDefaults({
        errorElement: "span"
    });

    jQuery.validator.addMethod("multiemail", function(value, element, param) {
        if (this.optional(element))
            return true;
        var emails = value.split(',');
        valid = true;
        for (var i in emails) {
            value = $.trim(emails[i]);
            if (value !== '')
                valid = valid && jQuery.validator.methods.email.call(this, value, element, param);
        }
        return valid;
    }, jQuery.validator.messages.email);

    jQuery.validator.addMethod("customemail", function(value, element, param) {
        if (this.optional(element))
            return true;
        value = $.trim(value);
        return jQuery.validator.methods.email.call(this, value, element, param);
    }, jQuery.validator.messages.email);

    var validator = $("#barter_form").validate({
        rules: {
            'barter[company_name]': { required: true },
            'barter[company_url]': { required: false, url: true },
            'barter[contact_name]': { required: true },
            'barter[email_to]': { required: true, customemail: true },
            'barter[emails]': { required: false, multiemail: true },
            'barter[note]': { required: true }
        },
        messages: {
            'barter[company_name]': { 'required': "required" },
            'barter[company_url]': { 'required': "required", 'url': "valid url (http://www.yoursitename) required" },
            'barter[contact_name]': { 'required': "required" },
            'barter[email_to]': { 'required': "required", 'customemail': "valid email address required" },
            'barter[emails]': { 'required': "required", 'multiemail': "please enter valid email addresses for each team member you wish to enroll" },
            'barter[note]': { 'required': "required: we need to learn a little about you" }
        }
    });
};
