/**
  * Author Md. Jahangir Alam
  * Date March 01 03 2010
  **/

jQuery.fn.tooltip = function( options) 
{

    var defaults = {
        cssClass: "",     
		delay : 0,        
        duration : 500,   
        xOffset : 15,     
        yOffset : 15,     
		opacity : 0,      
		fadeDuration: 400, 
		serviceid: "",
		baseUrl: "",
		clientXPos:0,
		clientYPos:0,
		id : 0,
	};
  	var options = $j.extend(defaults, options);
	return this.each(function() {
		$tooltip=$j("#divTooltip");
		if($tooltip.length == 0){
			$tooltip = $j('<div id="divTooltip"></div>');			
			$j('body').append($tooltip);
			$tooltip.hide();
		}
		clearTimeout($tooltip.data("hideTimeoutId"));
		$tooltip.removeClass($tooltip.attr("class"));
		$tooltip.css("width","");
		$tooltip.css("height","");
		$tooltip.addClass(options.cssClass);
		$tooltip.css("opacity",1-options.opacity/100);
		$tooltip.css("position","absolute");			

		$tooltip.html('Loading...'); //<img src="'+options.baseUrl+'/skin/images/anim_loading_sm_082208.gif" alt="Loading..." />
		var href= options.baseUrl;//+'/index/search-tooltip';//$this.attr("href"); Edit By Jahangir
		id1 = options.serviceid;
	    $j.get(href, { code: id1 }, function(result) {
			if (result != "") {
				$tooltip.html(result);                           
            }
        });
		
		winw = $j(window).width();
		w = $tooltip.width();
		xOffset = options.xOffset;
		if(w+xOffset+50 < winw-options.clientXPos)
		  $tooltip.css("left", $j(document).scrollLeft() + options.clientXPos+xOffset);
		else if(w+xOffset+50 < options.clientXPos)
		  $tooltip.css("left", $j(document).scrollLeft() + options.clientXPos-(w+xOffset));
		else{
		  if(options.clientXPos > winw/2){
			$tooltip.width(options.clientXPos-50);
			$tooltip.css("left", $j(document).scrollLeft() + 25);
		  } else{
			$tooltip.width((winw-options.clientXPos)-50);
			$tooltip.css("left", $j(document).scrollLeft() + options.clientXPos+xOffset);
		  }
		}
			
		winh = $j(window).height();
		h = $tooltip.height();
		yOffset = options.yOffset;
		if(h+yOffset + 50 < options.clientYPos)
		  $tooltip.css("top", $j(document).scrollTop() + options.clientYPos-(h+yOffset));
		else if(h+yOffset + 50 < winh-options.clientYPos)
		  $tooltip.css("top", $j(document).scrollTop() + options.clientYPos+yOffset);
		else 
		  $tooltip.css("top", $j(document).scrollTop() + 10);
		  $tooltip.data("showTimeoutId", setTimeout("$tooltip.fadeIn("+options.fadeDuration+")",options.delay));
		
		$j(this).mouseout(function(){
			clearTimeout($tooltip.data("showTimeoutId"));
			$tooltip.data("hideTimeoutId", setTimeout("$tooltip.fadeOut("+options.fadeDuration+")",options.duration));
		});
	});
};