(function($) { //create closure
	var ftimer;

$.fn.adv_exTitles = function(options){
/*
sourceEl:'',  // откуда брать HTML для тултипа
bubble:'#tooltip', // контейнер тултипа (для позиционирования)
bubbleInner:'#tooltiptext', // куда класть HTML в контейнере
eventUp: "mouseenter", // событие для появления тултипа
closeOnOut: true // закрывать ли при mouseleave
fn: false // функция, которая запускается после всплывания 
reverse: false // если поставить в true, то бабл будет сверху, а не снизу
	(например: fn: "getAjaxMailerForm("+email+")"
	попытается запустить функцию getAjaxMailerForm())
*/
	var defaults = {
		sourceEl:'',
		bubble:'#tooltip',
		bubbleInner:'#tooltiptext',
		eventUp: "mouseenter",
		closeOnOut: true,
		fn:false, 
		reverse: false
	};
	var errors = 0; var msg='';
	var opts = $.extend(defaults, options);

	var control = $(this);

	switch (defaults.eventUp) {
		case "click":  // click
			$(control).click(function(){
				showBubbles();
				return false;
			});
		break;
		default: // "mouseenter"
			$(control).mouseenter(function(){
				showBubbles();
			});
			if (defaults.closeOnOut) {
				$(control).mouseleave(function(e){
					hideBubbles();
				});
				
			}
		break;
	}


	function showBubbles() {
		hideBubbles();
		var pos = $(control).offset();
		var html = $(defaults.sourceEl).contents().clone(true);
		$(defaults.bubbleInner).html("");
		$(html).appendTo($(defaults.bubbleInner));
		ftimer = window.setInterval(function(){
			pos = $(control).offset();
			if(defaults.reverse){
				$(defaults.bubble).css({left: pos.left-50+"px", top: pos.top+$(control).height()-$(defaults.bubble).height()-5+"px"});
			}
			else{
				$(defaults.bubble).css({left: pos.left-50+"px", top: pos.top+$(control).height()-5+"px"});
			}
		}, 50);
		$(defaults.bubble).removeClass("off");
		if (defaults.closeOnOut == false) {
			var closeB = $("a.closetooltip",defaults.bubble);
			$(closeB).removeClass("off");
			$(closeB).click(function(){
				hideBubbles();
				$(closeB).addClass("off");
				return false;
			});
		}
		if(defaults.fn) eval(defaults.fn);
	}
	function hideBubbles() {
		if (ftimer) window.clearTimeout(ftimer);
		$(defaults.bubbleInner).html("");
		$(defaults.bubble).css({left: "-1000px", top: "-1000px"});
		$(defaults.bubble).addClass("off");
		$("a.closetooltip",defaults.bubble).addClass("off");
	}

};
//end of closure
})(jQuery);
