

	/////////////////////////////////////////////////////////////////////////////////////////////////////////
	//
	//	N i c k  C l a r k s o n
	//	h t t p : / / c v . r o b o t n i c . c o . u k /
	//	n i c k _ c l a r k s o n [ a h t ] h o t m a i l [ d t ] c o m
	//


	var tool_tip2 = function(c)
	{
		
		
		//alert(":: tool-tip ::");
		
		var tip = function()
		{
		
			document.body.innerHTML += '<div id="' + c.id + '"></div>';
			
			this.el = new YAHOO.util.Element(c.id);
			
			this.follow_mode = false;
			
			this.delay;
		
			this.rst = function()
			{
			
				this.el.setStyle('left', '-500px');
				this.el.setStyle('top', '-500px');
				
				//this.el.setStyle('left', '0px');
				//this.el.setStyle('top', '0px');				
					
			};
			
			this.el.setStyle('display', 'block');
		
			this.rst();
			
			this.srt = function()
			{
			
				clearInterval(this.delay);
				
				this.follow_mode = true;
									
				this.follow();
				
		  				
			};
		
			this.shw = function(inst)
			{
				
				inst.title_text = inst.get('title');
				inst.set('title', '');
				
				var o = '';
				
				o += '<div id="point-top"></div>';
					o += '<div class="text">' + inst.title_text + '</div>';
					//o += '<div class="url">benmoulden.tv</div>';
				o += '<div id="point-bottom"></div>';
						
				this.el.get('element').innerHTML = o;
				
				this.delay = window.setInterval(function()
				{
					
					tip.srt();
					
				
				}, c.delay);				
				
				
			};
			

			this.hde = function(inst)
			{
		
				clearInterval(this.delay);
				
				this.follow_mode = false;
				
				inst.set('title', inst.title_text);
		
				this.rst();
		
			};			
		
		
			this.follow = function()
			{

				if(this.follow_mode)
				{

					
					var X = document.Xmouse;
					var Y = document.Ymouse;
					
					var Y_off = 25;
					var X_off = 30;

					var viewport_W = YAHOO.util.Dom.getViewportWidth();
					var viewport_H = YAHOO.util.Dom.getDocumentScrollTop();

					var W = parseFloat(this.el.getStyle('width'));
					var H;

					if(YAHOO.env.ua.ie) 
					{

						H = this.el.get('element').offsetHeight;

					} else {

						H = parseFloat(this.el.getStyle('height'));

					};


					Y -= H;


					var top_bottom_class;
					var left_right_class;
					

					// pop up/down
					
					if((Y-(Y_off/2)) < viewport_H)
					{

						Y += H+Y_off;
						
						top_bottom_class = "top";

					} else {
					
						Y -= (Y_off/2);
						
						top_bottom_class = "bottom";
						
					};

					// pop left/right

					if((X+W) > viewport_W)
					{

						X -= W-X_off;
						
						left_right_class = "right"

					} else {
					
						X -= X_off;
					
						left_right_class = "left"
					
					}; 
					
					
					new YAHOO.util.Element('point-bottom').get('element').className = "";
					new YAHOO.util.Element('point-top').get('element').className = "";
						
					YAHOO.util.Dom.addClass('point-' + top_bottom_class, top_bottom_class + "-" + left_right_class);

					this.el.setStyle('left', X+"px");
					this.el.setStyle('top', Y+"px");
					
				};

			};		
		
		};

		/////////////////////////////////////////////////////////////////
		
		var tip = new tip();
		
		// override os tooltip for img alt tags
		
		var imgs = document.getElementsByTagName('img');
		
		//alert(imgs.length);
		
		for(var i = 0; i < imgs.length; i++)
		{
		
			var el = new YAHOO.util.Element(imgs[i]);
		
			el.set('alt', '');
			
		};
		
		
		/////////////////////////////////////////////////////////////////
		
		this.set = function(inst)
		{
		
			//alert("in set");

			for(var i = 0; i < c.tgs.length; i++)
			{

				var els = inst.getElementsByTagName(c.tgs[i]);

				for(var j = 0; j < els.length; j++)
				{

					var el = new YAHOO.util.Element(els[j]);

					if(el.get('title'))
					{

						el.on('mouseover', function(){ tip.shw(this) });
						el.on('mouseout', function(){ tip.hde(this) });


					};


				};


			};
		
		};
		
		
		
		
		// attach events
		
		YAHOO.util.Event.on(document.body, 'mousemove', function(e)
		{
		
			document.Ymouse = YAHOO.util.Event.getPageY(e); 
			document.Xmouse = YAHOO.util.Event.getPageX(e);
			
			tip.follow();
			
		}); 		
		

		
		
	};
