(function(jQuery) {
 
 jQuery.fn.extend({
	AvanoidTooltip : function(options) {

	 var defaults = {
		left : -6,
		top  : 20,
		backgroundColor : '#000000',
		textColor : '#FFFFFF',
		fontSize : 14,
		textAlign : 'left',
		arrowImage : 'http://static.verinmuebles.com/arrow_dn_tooltip.png',
		arrowPosition : 'left',
		borderColor : '#000000',
		arrowHeight : 7,
		arrowBottom : 0,
		right : 0,
		center : 0,
		tooltipWidth : 0
	 };

	 var options = jQuery.extend(defaults, options);
	 
	 return this.each(function() {
	  var _o = options;
	  var _hover = function() {
		var _th  = jQuery(this);
		var _txt = (typeof(jQuery(_th).attr("tipmessage")) != 'undefined') ? jQuery(_th).attr("tipmessage") : 'Enter type using attribute tipmessage.';
		var _dcw = document.documentElement ? document.documentElement.clientWidth : document.body.clientWidth;

		var _off = jQuery(this).offset();
		var _str = '<div id="__avtooltip" style="display:none; width:'+((_o.tooltipWidth!==0) ? _o.tooltipWidth+'px' : 'auto')+'; position:absolute; z-index:10000;"><div style="position:relative;"><div style="position:relative; z-index:99; background:'+_o.backgroundColor+'; color:'+_o.textColor+'; font-size:'+_o.fontSize+'px; padding:5px; text-align:'+_o.textAlign+'; border: solid 1px '+_o.borderColor+';">'+_txt+'</div><div id="__avtooltip_arrow" style="position:absolute; z-index:100; width:10px; height:'+_o.arrowHeight+'px; background:url('+_o.arrowImage+') no-repeat;"></div></div></div>';
		jQuery("body").append(_str);

		/* Calculate exact left and top */
		var _pst = (_off.top - jQuery(_th).height()) + _o.top;
		
		if(_o.right!==0) {
		 var _psl = _off.left + _o.left - 40;
		 jQuery("#__avtooltip_arrow").css('right','10px');
		 if(_o.arrowBottom!==0) {
		  jQuery("#__avtooltip_arrow").css('bottom' , _o.arrowBottom+'px');
		 };
		} else if(_o.center!==0) {
		 var _psl = _off.left + _o.left - 40;
		 jQuery("#__avtooltip_arrow").css({
		  'left':($("#__avtooltip").width()/2),
		  'bottom':_o.arrowBottom+'px'
		 });
		} else {
		 var _psl = _off.left + _o.left;
		 jQuery("#__avtooltip_arrow").css('left','10px');
		 if(_o.arrowBottom!==0) {
		  jQuery("#__avtooltip_arrow").css('bottom' , _o.arrowBottom+'px');
		 };
		};

		if(_o.right!==0) {
		 jQuery("#__avtooltip").css({
		  left 		: (_psl - 40)+'px',
		  top  		: _pst+'px',
		  display 	: 'block'
		 });
		} else {
		 jQuery("#__avtooltip").css({
		  left 		: _psl+'px',
		  top  		: _pst+'px',
		  display 	: 'block'
		 });
		};
	  };
	  var _hover_out = function() {
		jQuery("#__avtooltip").remove();
	  };
	  
	  jQuery(this).hover(_hover,_hover_out);

	 });
		
   }
 })
 
})(jQuery);