
function tooltips()
{
	var id = 'jQueryTooltip';
	var offsetX = 17; // X offset of tooltip, may need to further adjust for shadow width
	var offsetY = 15; // Y offset of tooltip, may need to further adjust for shadow height
	var offsetPointerX = 10; // Additional X offset for pointer
	var offsetPointerY = 14; // Additional Y offset for pointer. Tip: Set to (height_of_pointer-1).
	var maxWidth = "250px"; // If not a pixel width, it will be calculated when the page loads (i.e. "10em")
	
	// define styles (alternatively set these in CSS file)
	var border = "1px solid black";
	var padding = "0.25em";
	var background = "lightyellow";
	var boxShadow = "5px 5px 5px #000";
	var pointerImage = "/images/arrow2.gif";
	//var pointerImage = false;
	
	// compile style string (if using CSS file, set this to empty string)
	var style = 'border: '+border+'; padding: '+padding+'; background: '+background+'; filter: progid:DXImageTransform.Microsoft.Shadow(color=black,direction=135); box-shadow: '+boxShadow+'; -moz-box-shadow: '+boxShadow+'; -webkit-box-shadow: '+boxShadow+';';

	// Remove DIV (in case there already was one)
	$('body div#'+id+', body img#'+id+'_pointer').remove();
	$(document).unbind('mousemove');

	// Create DIV
	$('body').append('<div id="'+id+'" style="position: absolute; width: '+maxWidth+'; '+style+'"></div>');
	var obj = $('#'+id);
	var realWidth = obj.innerWidth(); // in case a different unit of measure was used.
	obj.css('width', 'auto').html('').hide();
	if (pointerImage)
	{
		$('body').append('<img id="'+id+'_pointer" src="'+pointerImage+'" style="position:absolute;">');
		var pointer = $('#'+id+'_pointer');
		pointer.hide();
	}

	// Bind Events
	$('[tooltip]').hover(
		function () {
			obj.html($(this).attr('tooltip'));
			if(obj.width() > realWidth)
				obj.css('width', realWidth+"px");
			obj.show();
			if(pointer)
				pointer.show();
		}, 
		function () {
			obj.css('width', 'auto').html('').hide();
			if (pointer)
				pointer.hide();
		}
	);
	$(document).bind('mousemove',function(e)
	{
		if(obj.css('display')!='none')
		{
			var pos = 
			{ 
				left: e.pageX+offsetX, 
				top: e.pageY+offsetY, 
				width: obj.outerWidth()+offsetX,
				height: obj.outerHeight()+offsetY
			};
			var showPointer = true;
			
			// make sure the tooltip isn't beyond the right edge of the window
			if( pos.left + pos.width > $(window).width() + $(window).scrollLeft() + (pointer ? offsetPointerX : 0) )
			{
				pos.left = pos.left - pos.width - offsetX;
				showPointer = false;
			}
			// make sure the tooltip isn't beyond the bottom edge of the window
			if( pos.top + pos.height > $(window).height() + $(window).scrollTop() - (pointer ? offsetPointerY : 0) )
			{
				pos.top = pos.top - pos.height - offsetY;
				showPointer = false;
			}
			// adjust position for pointer if necessary
			if(pointer)
			{
				if (showPointer)
				{
					pointer.css({'left': pos.left, 'top': pos.top});
					pos.left = pos.left - offsetPointerX;
					pos.top = pos.top + offsetPointerY;
					pointer.show();
				}
				else
				{
					pointer.hide();
				}
			}
			// set the position of the tooltip
			obj.css({'left': pos.left, 'top': pos.top});
		}
	});
}

// run tooltips function when page is ready
jQuery(function($) {
	tooltips(); // using separate function so we can call it again (i.e. after an AJAX load)
});

//----------------------------------------------------------------------
// For backwards compatability with older PV pages
function ddrivetip(thetext, thewidth, thecolor) 
{
	var id = 'jQueryTooltip';
	var obj = $('#'+id);
	var pointer = $('#'+id+'_pointer');
	if (typeof thecolor!="undefined" && thecolor!="") 
	{
		obj.data('bg', obj.css('background'));
		obj.css('background',thecolor);
	}
	
	obj.html(thetext);
	if (typeof thewidth!="undefined") 
		obj.css('width', thewidth+"px");
	obj.show();
	if(pointer)
		pointer.show();
}
function hideddrivetip() 
{
	var id = 'jQueryTooltip';
	var obj = $('#'+id);
	var pointer = $('#'+id+'_pointer');
	obj.css('width', 'auto').html('').hide();
	if (pointer)
		pointer.hide();
	if (obj.attr('bg'))
		obj.css('background',obj.data('bg'));
}

