(function($) {
	// main tooltips function
	$.fn.tooltips = function (options){
		var tooltips = $("div.tooltip", this);
		var inputs   = $("select, input, textarea", this);
		// options
		tt_options = $.extend({}, $.fn.tooltips.defaults, options);
		// make sure everything is hidden
		tooltips.hide();
		// set up handler
		$(inputs).bind("blur", $.fn.tooltips.hide);
		$(inputs).bind("focus", $.fn.tooltips.show);
	};
	// tooltip hiding function
	$.fn.tooltips.hide = function () {
		var tooltip = $(this).next("div.tooltip");
		tooltip.fadeOut(tt_options.speed/2, function () {$(".bar, .tooltipArrow", tooltip).remove();});
	};
	// tooltip showing function
	$.fn.tooltips.show = function () {
		var element = $(this);
		var parent = $($(this).parent().get(0));
		var tooltip = $(this).next("div.tooltip");
		// add elements for rounded corners/dropshadows
		$.fn.tooltips.corner(tooltip, tt_options);
		tooltip.css({
						left: element[0].offsetLeft,
						zIndex: "99999",
						width: element.width(),
						textAlign: "center",
						bottom: element.height()+10
					});
		tooltip.fadeIn(tt_options.speed);
	};
	// corner/shadow function
	$.fn.tooltips.corner = function (tooltip, tt_options) {
		// create the elements for the rounded corners/shadow
		var top = $("<div class='top bar clearfix'>");
		var bottom = $("<div class='bottom bar clearfix'>");
		top.append("<div class='left'></div><div class='right'></div><div class='middle'></div>");
		bottom.append("<div class='left'></div><div class='right'></div><div class='middle'></div>");
		// add the elements to the tooltip
		$(tooltip).prepend(top).append(bottom).append("<div class='tooltipArrow'></div>");
		if ($(".tooltipContent", tooltip).length == 0){$("p, ul", tooltip).wrap("<div class='tooltipContent clearfix'></div>");}
		// style the elements
		$("div", tooltip).css({height: "15px", margin: 0, padding: 0});
		$("div.bar", tooltip).css({width: "100%"});
		$(".tooltipContent", tooltip).css({height: "auto", background: tt_options.ttBGColor, border: "1px solid #949490", borderWidth: "0 1px"});
		$("div.middle", tooltip).css({margin: "0 10px"});
		$("div.left, div.right", tooltip).css({width: "15px", background: "transparent url("+tt_options.imageDir+"tooltip-trans.png) 0 0 no-repeat"});
		$("div.left", tooltip).css({float: "left"});
		$("div.right", tooltip).css({float: "right"});
		$("div.middle", tooltip).css({background: "transparent url("+tt_options.imageDir+"tooltipVertical-trans.png) 0 0 repeat-x"});
		$(".top div.right", tooltip).css({backgroundPosition: "-15px 0"});
		$(".bottom div.left", tooltip).css({backgroundPosition: "0 -15px"});
		$(".bottom div.right", tooltip).css({backgroundPosition: "-15px -15px"});
		$(".bottom div.middle", tooltip).css({backgroundPosition: "0 -15px"});
		$("div.tooltipArrow", tooltip).css({background: "transparent url("+tt_options.imageDir+"tooltipArrow-trans.png) center bottom no-repeat"});
	}
	// default options
	$.fn.tooltips.defaults = {
		speed: 500,
		imageDir: "/elements/images/tooltips/",
		ttBGColor: "#f3f3e7"
	};
})(jQuery);