$.widget("ui.customToolTip",{
	
	_create : function(){
		if(this.element){

			this._bindMouseEvents();
			
			return this.element;
		}
	},
	
	options : {
		autoOpen : false,
		tooltipContainerClass : 'tooltip-content',
		clickElementx : 0,
		clickElementy : 0
	},
	
	_bindMouseEvents : function(){
		this.element.hover(
				function() {
					var de = document.documentElement;
					var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
					var hasArea = w - $.fn.getAbsoluteLeftObject(this);
					var clickElementy = $.fn.getAbsoluteTopObject(this) - 3; //set y position
					
					var toolTipDiv = '<div id="NT">';
						toolTipDiv += '<div id="NT_copy">';
						toolTipDiv += '<div>';
						toolTipDiv += $(this).parent('a').siblings('.tooltip-content').html(); 
						toolTipDiv += '</div>';
						toolTipDiv += '</div>';
						toolTipDiv += '</div>';
						
					
					$("body").append(toolTipDiv);//right side
					var arrowOffset =  this.offsetWidth + 11;
					var clickElementx = $.fn.getAbsoluteLeftObject(this) + arrowOffset;
                    
                    if(clickElementx > 750) {
                        clickElementx = clickElementx - 480;
                    }
					$('#NT').css({left: clickElementx+"px", top: clickElementy+"px"});
					$('#NT').css({width: "200px"});
					$('#NT').css({position: "absolute"});
					$('#NT').css("z-index", "100");
					$('#NT').show();
					
					return false;
				} ,
				function() {
					$("#NT").remove();
					
					return false;
				}
		);
	},
	
	_findLeftPosition : function (){
		var oleft  = this.element.offset().left;
		
		return oleft;
		
	},
	
	_findTopPosition : function (){
		var otop  = this.element.offset().top;
		
		return otop;
		
	},
	
	destroy : function (){
		this.element.unbind('mouseover mouseout');
		this.element.unbind('mouseenter mouseleave');  // For i.e.
		this.element.unbind('focus');
		
		this.element.data('customToolTip', null);
		
		return this.element;
	}
	
	
	
});

$.fn.getAbsoluteLeftObject=function(o) {
	oLeft = o.offsetLeft;            
	while(o.offsetParent!=null) {   
		oParent = o.offsetParent;   
		oLeft += oParent.offsetLeft;
		o = oParent;
	}
	return oLeft;
}

$.fn.getAbsoluteTopObject=function (o) {
	
	oTop = o.offsetTop;            
	while(o.offsetParent!=null) { 
		oParent = o.offsetParent;  
		oTop += oParent.offsetTop;
		o = oParent;
	}
	return oTop;
}

