	var tooltipHandler = {
		fadeIn : null,
		
		overHandler : function( e ) {

			if (!e) var e = window.event;

			var view = tooltipHandler.getView( e );
			if ( $( view ) != null ) {
				e.target.style.cursor = 'hand';
				e.target.style.cursor = 'pointer';

				$( view ).show();				
				$( view ).style.opacity = '1';
			}
		},
		
		moveHandler: function( e ) {
			
			if (!e) var e = window.event;
			
			var view = tooltipHandler.getView( e );
			if ( $( view ) != null ) {
				var posx = 0;
				var posy = 0;
				
				if ( e.pageX || e.pageY ) {
					posx = e.pageX;
					posy = e.pageY;
				}
				else if ( e.clientX || e.clientY ) {
					posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
					posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
				}
				
				var width = 0;
				var height = 0;
				
				width = window.innerWidth - 50;	//I added 50 to account for scrollbar
				height = window.innerHeight + window.pageYOffset;

				if ( document.all ) {
					width = document.body.clientWidth - 20;
					height = document.body.clientHeight - 20;
				}

			
				if ( (posx + 20 + parseInt($(view).style.width)) >= width ) {
					posx -= 40;
					posx -= parseInt($(view).style.width);
				}
				else {
					posx += 20;
				}
				
				var eHeight = $(view).offsetHeight;
				if ( document.implementation.hasFeature( "CSS", "2.0")) {
					eHeight = document.defaultView.getComputedStyle($(view), null).getPropertyCSSValue("height").getFloatValue(5);
				}
				
				if ( (posy + 40 + eHeight) >= height ) {
					posy -= 20;
					posy -= eHeight;
				}
				else {
					posy += 20;
				}
				
				$( view ).style.top = posy + 'px';
				$( view ).style.left = posx + 'px';

			}
		},
		
		outHandler : function( e ) {
			if (!e) var e = window.event;
			
			var view = tooltipHandler.getView( e );
			if ( $( view ) != null ) {
				$( view ).hide();
			}			
		},
		
		getView : function( e ) {
			var view = e.target.readAttribute( 'view' );
			var result = null;
			if ( view != null && view != '' ) {
				result = view;
			}
			return result;
		}
		
	}

	Event.observe( window, 'load', function() {
		var tooltips = $$( '.tooltip' );
		for ( var i = 0; i < tooltips.length; i++ ) {
			var tooltip = tooltips[i];
			tooltip.observe( 'mouseover', tooltipHandler.overHandler );
			tooltip.observe( 'mousemove', tooltipHandler.moveHandler );
			tooltip.observe( 'mouseout', tooltipHandler.outHandler );
		}
	});
