/*
 * Gayet.Net balloon popup hint script
 * author   : Harun R. Gunes
 * created  : 28/07/2010
 * 
 */

(function($) {
	$.fn.gytballoon = function(o) {
        return this.each(function() {
            new $gb(this, o);
        });
    };
    var defaults = {
    	// button: null,
    	delay : 1000,
    	speed : 'fast',
    	action: 'click',
    	overlay: false
    };
    /*
     * e : element
     * o : options
     */
    $.gytballoon = function(e, o){
    	opts = $.extend(defaults, o);
    	button = $(opts.button);
    	$.extend($gb,{
    		'button': button,
    		'options': opts,
    		'element': $(e)
    	});
    	$(e).addClass('gyt-balloon');
    	if(opts.action == 'hover'){
        	button.mouseenter(function(){
        		window.clearTimeout(button.data('timeoutId'));
        		button.data('timeoutId',window.setTimeout(function(){$('.gyt-balloon').hide(); $(e).fadeIn(opts.speed);$(document).trigger('ready.gytballoon');}, opts.delay));
        	});
        	button.mouseleave(function(){
        		window.clearTimeout(button.data('timeoutId'));
        		button.data('timeoutId',window.setTimeout(function(){$(e).fadeOut(opts.speed);}, opts.delay));
        	});
        	button.bind('closeballoon',function(){
        		window.clearTimeout(button.data('timeoutId'));
        		button.data('timeoutId',window.setTimeout(function(){$(e).fadeOut(opts.speed);}, opts.delay));
        	});
        	$(e).mouseleave(function(){
        		window.clearTimeout(button.data('timeoutId'));
        		button.data('timeoutId',window.setTimeout(function(){$(e).fadeOut(opts.speed);}, opts.delay));    		
        	});
        	$(e).mouseenter(function(){
        		window.clearTimeout(button.data('timeoutId'));
        	});    		
    	};
    	if(opts.action == 'click'){
    		button.click(function(){
        	    if ($('#facebox_overlay').length == 0) $("body").append('<div id="facebox_overlay" class="facebox_hide"></div>');
    			$('#facebox_overlay').hide().addClass("facebox_overlayBG")
				.css('opacity', 0.5)
				.click(function() {$(document).trigger('close.gytballoon');}).fadeIn(opts.speed);
        		$(e).css({'z-index':100}).fadeIn(opts.speed);
        		$(document).trigger('ready.gytballoon');
    		});
    	}
    };
    $.extend($.gytballoon, {
    	close:function(){
    		$(document).trigger('close.gytballoon');
    	}
    });
    $(document).bind('close.gytballoon',function(){
    	var o = $.gytballoon.options;
    	var e = $.gytballoon.element;
		e.fadeOut(o.speed);
		$('#facebox_overlay').fadeOut(o.speed, function(){
			$("#facebox_overlay").removeClass("facebox_overlayBG");
			$("#facebox_overlay").addClass("facebox_hide");
			$("#facebox_overlay").remove();
		});
    });
    $gb = $.gytballoon;
    
})(jQuery);
