/**
  fasttooltip jquery.plugin

  @Author: Christian Gabmeyer 2008


  @features:
   content from
    attribut or
    element or
    ajaxrequest

  @putthisintojqueryready()
   $('.row').fasttooltip();
   override defaults
   $('.row').fasttooltip({contentfrom:'elem',contentname:'overimg'});
   // this loads from path + titlecontent, just put some filename in the title of this
   $('.row').fasttooltip({useremote:'/path/'});

  powered by jQuery (http://www.jquery.com)
 */

(function($){
 $.fn.fasttooltip = function(settings)
 {
  var defaults = {
 		// these 2 variable determine popup's distance from the cursor
 		top:10,
 		left:20,
 		design : 'fasttooltip',
		 // elem | attrib
 		contentfrom:'attrib',
 		contentname:'title',
 		// null or url
 		useremote:null
  };
  var settings = $.extend(defaults, settings);
  var fasttooltipdiv=$('<div></div>').hide();
  $('body').append(fasttooltipdiv);
  fasttooltipdiv.addClass(settings.design);
  fasttooltipdiv.css('position','absolute');
  return this.each(function()
  {
   var obj = $(this);
  	obj.hover(
  	 function(e)
  	 {
  	  switch(settings.contentfrom)
  	  {
   	  case 'attrib':
   	   this.t = $(this).attr(settings.contentname);
    		 this.title = '';
       break;
   	  case 'elem':
   	   this.t=$(settings.contentname,this).html();
   	   break;
   	 }
  	  // fill content
  		 if(settings.useremote) fasttooltipdiv.load(settings.useremote+'/'+this.t);
  		 else fasttooltipdiv.html(this.t);
  		 fasttooltipdiv.css('top',(settings.top + e.pageY) + 'px').css('left',(settings.left + e.pageX) + 'px').show(0);
 		 },
 		 function(e)
 		 {
  	  if(settings.contentfrom=='attrib')
  	  {
   		 this.title = this.t;
   		}
  		 fasttooltipdiv.hide();
  		});

  	obj.mousemove(
  	 function(e)
  	 {
  		 fasttooltipdiv.css('top',(settings.top + e.pageY) + 'px').css('left',(settings.left + e.pageX) + 'px');
   	});
	 });
	};
})(jQuery);
