/*************************************************************
* Tooltip: Create tooltips using a few different functions
*************************************************************/

var viewport = {
  getWinWidth: function () {
    this.width = 0;
    if (window.innerWidth) this.width = window.innerWidth - 18;
    else if (document.documentElement && document.documentElement.clientWidth) 
  		this.width = document.documentElement.clientWidth;
    else if (document.body && document.body.clientWidth) 
  		this.width = document.body.clientWidth;
  },
  
  getWinHeight: function () {
    this.height = 0;
    if (window.innerHeight) this.height = window.innerHeight - 18;
  	else if (document.documentElement && document.documentElement.clientHeight) 
  		this.height = document.documentElement.clientHeight;
  	else if (document.body && document.body.clientHeight) 
  		this.height = document.body.clientHeight;
  },
  
  getScrollX: function () {
    this.scrollX = 0;
  	if (typeof window.pageXOffset == "number") this.scrollX = window.pageXOffset;
  	else if (document.documentElement && document.documentElement.scrollLeft)
  		this.scrollX = document.documentElement.scrollLeft;
  	else if (document.body && document.body.scrollLeft) 
  		this.scrollX = document.body.scrollLeft; 
  	else if (window.scrollX) this.scrollX = window.scrollX;
  },
  
  getScrollY: function () {
    this.scrollY = 0;    
    if (typeof window.pageYOffset == "number") 
	{
		this.scrollY = window.pageYOffset;
	} 
	else if (document.documentElement && document.documentElement.scrollTop) 
	{
  		this.scrollY = document.documentElement.scrollTop;		
	}
  	else if (document.body && document.body.scrollTop)
	{
		this.scrollY = document.body.scrollTop; 
	} 
  	else if (window.scrollY)
	{
		this.scrollY = window.scrollY;
	} 
  },
  
  getAll: function () {
    this.getWinWidth(); this.getWinHeight();
    this.getScrollX();  this.getScrollY();
  }
}

function EventMouseCoords(e) {
	var crd=new Object();
	crd.x=0;
	crd.y=0;
	if (e.pageX || e.pageY)
	{
		crd.x=e.pageX;
		crd.y=e.pageY;
	} 
	else if (e.clientX || e.clientY) 
	{
		crd.x = e.clientX;
		crd.y = e.clientY;
	}
	return crd;
}

var Tooltip = {
	showToolTip: function (el, e) {
		var tooltip = $(el).parent().parent().find("div.ratingTooltip");
	
		viewport.getAll();
		var viewportWidth = viewport.width-2;
		var viewportHeight = viewport.height-2;
		var scrollY = viewport.scrollY;
		var panelOffset = 10;
		var crd = EventMouseCoords(e);
//		var panelobj = tooltip;
//		var panelWidth = panelobj.offsetwidth;
//		var panelHeight = panelobj.offsetheight;
		var $panelObj = tooltip;
		var panelWidth = $panelObj.width();
		var panelHeight = $panelObj.height();
		
		// This is to fix problem in Safari where the mouse corods are based on the docment body height 
		// Not the viewprot height (not sure wht it work with Firefox and IE6+)
		crd.y = crd.y - scrollY;
		
		// Position panel & set panel class
		if ( crd.y+scrollY > viewportHeight-panelHeight-panelOffset )
		{
			// Above 
			var panelY = crd.y+scrollY-panelOffset-panelHeight;
			//var vClass = "Top";
		} else {
			// Below
			var panelY = crd.y+scrollY+panelOffset;
			//var vClass = "Bottom";
		}
		if ( crd.x > viewportWidth-panelWidth-panelOffset )
		{
			// To left 
			var panelX = crd.x-panelOffset-panelWidth;
			//var hClass = "Left";
		} else {
			// To right
			var panelX = crd.x+panelOffset;
			//var hClass = "Right";
		}
		
		tooltip.css("position","absolute");
		tooltip.css("left",panelX + "px");
		tooltip.css("top",panelY + "px");
		tooltip.show();
	},
	hideToolTip: function(thisParentDiv) {
		$(this).parent().parent().find("div.ratingTooltip").hide();
	}
	,
	hideToolTip2: function(thisParentDiv) {
		$(this).parent().parent().find("div.ratingTooltip").fadeOut('slow');
	}
}

$(window).load(function () {
	$("a.showRatingToolTip").bind("mouseover", function(event) { Tooltip.showToolTip(this, event); } );
	$("a.showAdvertInfo").bind("mouseover", function(event) { Tooltip.showToolTip(this, event); } );
	
	$("a.showRatingToolTip").bind("mousemove", function(event) { Tooltip.showToolTip(this, event); } );	
	$("a.showRatingToolTip").bind("mousemove", function(event) { Tooltip.showToolTip(this, event); } );	
	
	$("a.showRatingToolTip").bind("click", function(event) { return false; } );	
	$("a.showAdvertInfo").bind("click", function(event) { return false; } );	
	
	$("a.showRatingToolTip").bind("mouseout", Tooltip.hideToolTip);
	
	$("a.closePanel2").bind("click", Tooltip.hideToolTip2);
	
	
	$("div.ratingTooltip").each( function () {
		$(this).hide();
	});
	
	$("div.userReviewPrimaryContent").each ( function () {
		ShowHideText.init(this);
	});
	
});