/*
 * 	Easy Tooltip 1.0 - jQuery plugin
 *	written by Alen Grakalic	
 *	http://cssglobe.com/post/4380/easy-tooltip--jquery-plugin
 *
 *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *
 */
 
(function($) {
	
    $.fn.setTooltip = function(val){
        this[0]._title = val;
    },

    $.fn.getTooltip = function(){
        return this[0]._title;    
    },
            
	$.fn.easyTooltip = function(options){
	  
		// default configuration properties
		var defaults = {	
			xOffset: 2,		
			yOffset: 15,
			tooltipId: "easyTooltip",
			clickRemove: false,
			content: "",
			useElement: ""
		}; 
		var a = 0;	
		var options = $.extend(defaults, options);  
		var content;
				
		this.each(function() {  				
			this._title = this.title;
            this.title = '';
            
			$(this).bind('mouseover', function(e){											 							   
				content = (options.content != "") ? options.content : this._title;
				content = (options.useElement != "") ? $("#" + options.useElement).html() : content;

				if (content != "" && content != undefined){			
					$("body").append("<div id='"+ options.tooltipId +"'>"+ content +"</div>");		
//					$("#" + options.tooltipId).find($('#stateCountBox')).empty();
					$("#" + options.tooltipId).queue("fx", []);
					$("#" + options.tooltipId).stop();
					
					$("#" + options.tooltipId)
						.css("position","absolute")
						.css("top",(e.pageY - options.yOffset) + "px")
						.css("left",(e.pageX + options.xOffset) + "px")		
						.css("z-index","10000")
						.css("display","none")
						.fadeIn("fast");
					$("#" + options.tooltipId).html("<u>"+ content +"</u><div id='stateCountBox'></div>");
					$("#stateCountBox")
						.css("background","url(homepage_images/ajax-loader-2.gif) 0px center no-repeat")
						.css("padding-left","20px")
						.css("padding-top","5px")
						.css("min-height","20px")
						.css("min-width","100px")
						.html("...searching")
						.fadeIn("fast");
					$("#" + options.tooltipId).delay(740).queue(function () {
							$.get("displayMapBoxContent.php", { stateName: content },
								 function(data){
									setTimeout(function() {  
//										$("#" + options.tooltipId).html("<u>"+ content +"</u><div id='stateCountBox'>" + data + " </div>");
										$("#" + options.tooltipId).html("<u>"+ content +"</u><div id='stateCountBox'>" + data + " </div>");
									}, 300); 
								 }
							);
					        $(this).dequeue();
					 });
				}
			});
			$(this).bind('mouseout', function(e){
				$("#" + options.tooltipId).queue("fx", []);
				$("#" + options.tooltipId).stop();
				$("#" + options.tooltipId).remove();
			});	
			$(this).mousemove(function(e){
				$("#" + options.tooltipId)
					.css("top",(e.pageY - options.yOffset) + "px")
					.css("left",(e.pageX + options.xOffset) + "px");				
			});	
			if(options.clickRemove){
				$(this).mousedown(function(e){
					$("#" + options.tooltipId).remove();
				});				
			}else{
				$(this).mousedown(function(e){
					$("#" + options.tooltipId).remove();
				});
			}
		});
	};

})(jQuery);

