(function($){
$.fn.validateWithTooltips = function(options) {
	var defaults = {
		errorElement: "div",
		wrapper: "div",
		errorPlacement: function(error, element) {
			error.insertAfter(element)
			error.addClass('formError');

			var offset = element.position();
			var fieldWidth = element.width();
			var promptHeight = error.height();
			var promptTopPosition = offset.top;
			var promptleftPosition = offset.left;
			promptleftPosition += fieldWidth - 20;
			promptTopPosition += -promptHeight -2;

			error.css('left', promptleftPosition);
			error.css('top', promptTopPosition);
			error.click( function() {
				$(this).fadeOut(150, function() {
					$(this).remove();
				});
			});

			var arrow = $('<div>').addClass("formErrorArrow");
			arrow.html('<div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div>');
			error.append(arrow);
		},
		showErrors: function(errorMap, errorList) {
			$(this.currentForm).find(".formError").remove();
			this.defaultShowErrors();
		},
		onfocusout: function(element) { $(element).valid(); }
//		onfocusout: function(element) {
//			if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) {
//				this.element(element);
//			}
//		}
	}

	var options = $.extend(defaults, options);
	return this.validate(options);

};
})(jQuery);

