$(document).ready(function() {
	$("form.check-form").visionSubmit();
	$(".js-delete-uimessage").live("click", function() {
		$(this).parent(".message").fadeOut("fast", function() {
			$(this).remove();
			$("#messageWrapper div.message").length == 0 && $("#messageWrapper").hide()
		})
	})
});
$.fn.visionSubmit = function() {
	this.length && this.submit(function() {
		var a = $(this), e = a.hasClass("check-form-suppressMsg");
		a.trigger("beforeSubmit");
		if(a.data("stopSubmit")) {
			return false
		}$("#messageWrapper div.message").remove();
		$("body").append('<div id="loadingMessage">Loading</div>').css("cursor", "wait");
		a.find("button:submit").attr("disabled", "disabled");
		var f = a.serialize(), g = a.data("submitButton");
		if(g) {
			f += (f.length ? "&" : "") + g.name + "=" + g.value;
			a.data("submitButton", false)
		}$.post(a.attr("action"), f, function(c) {
			var i = true, d = new Envelope(c, e);
			c = typeof d.payload.failed == "undefined" ? [] : d.payload.failed;
			for(var h in c) {
				var b = c[h];
				if(b = a.find("input[name=%s],textarea[name=%s],select[name=%s]".replace(/%s/g, b)).attr("id")) {
					a.find("label[for=%s]".replace(/%s/g, b)).addClass("inputFieldError");
					if(i === true) {
						$("#" + b).focus();
						i = false
					}
				}
			}c = typeof d.payload.succeeded == "undefined" ? [] : d.payload.succeeded;
			for(h in c) {
				b = c[h];
				(b = a.find("input[name=%s],textarea[name=%s],select[name=%s]".replace(/%s/g, b)).attr("id")) && a.find("label[for=%s]".replace(/%s/g, b)).removeClass("inputFieldError")
			}$("body").css("cursor", "default").find("#loadingMessage").remove();
			a.find("button:submit").removeAttr("disabled").trigger("afterSubmit", d)
		}, "text");
		return false
	}).find("button:submit").click(function() {
		var a = $(this), e = a.parents("form");
		if(a = a.attr("name")) {
			e.data("submitButton", {name:a, value:$(this).val() || true})
		}return true
	}).removeAttr("disabled");
	return this
};
