var tooltip = function()
{
	var id = 'tt';
	var top = 3;
	var left = 3;
	var maxw = 300;
	var speed = 10;
	var timer = 20;
	var endalpha = 95;
	var alpha = 0;
	var tt, t, c, b, h;
	var ie = document.all ? true : false;
	return {
		show : function(v, obj, w)
		{
			// find obj position

		var curleft = curtop = 0;
		if (obj.offsetParent)
		{
			curleft += obj.offsetWidth;
			do
			{
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			}
			while (obj = obj.offsetParent);
		}
		if (tt == null)
		{
			tt = document.createElement('div');
			tt.setAttribute('id', id);
			t = document.createElement('div');
			t.setAttribute('id', id + 'top');
			c = document.createElement('div');
			c.setAttribute('id', id + 'cont');
			b = document.createElement('div');
			b.setAttribute('id', id + 'bot');
			tt.appendChild(t);
			tt.appendChild(c);
			tt.appendChild(b);
			document.body.appendChild(tt);
			tt.style.opacity = 0;
			tt.style.filter = 'alpha(opacity=0)';
		}
		//var u = ie ? curtop + document.documentElement.scrollTop : curtop;
		var u = curtop;
		var l = ie ? curleft + document.documentElement.scrollLeft : curleft;
		h = 15;

		tt.style.top = (u - h) + 'px';
		tt.style.left = (l + left) + 'px';

		//alert("top: " + tt.style.top + " left: " + tt.style.left + " height: " + h);

		tt.style.display = 'block';
		c.innerHTML = v;
		tt.style.width = w ? w + 'px' : 'auto';
		if (!w && ie)
		{
			t.style.display = 'none';
			b.style.display = 'none';
			tt.style.width = tt.offsetWidth;
			t.style.display = 'block';
			b.style.display = 'block';
		}
		if (tt.offsetWidth > maxw)
		{
			tt.style.width = maxw + 'px'
		}

		clearInterval(tt.timer);
		tt.timer = setInterval( function()
		{
			tooltip.fade(1)
		}, timer);
	},
	pos : function(e)
	{

	},
	fade : function(d)
	{
		var a = alpha;
		if ((a != endalpha && d == 1) || (a != 0 && d == -1))
		{
			var i = speed;
			if (endalpha - a < speed && d == 1)
			{
				i = endalpha - a;
			}
			else if (alpha < speed && d == -1)
			{
				i = a;
			}
			alpha = a + (i * d);
			tt.style.opacity = alpha * .01;
			tt.style.filter = 'alpha(opacity=' + alpha + ')';
		}
		else
		{
			clearInterval(tt.timer);
			if (d == -1)
			{
				tt.style.display = 'none'
			}
		}
	},
	hide : function()
	{
		if (tt)
		{
			clearInterval(tt.timer);
			tt.timer = setInterval( function()
			{
				tooltip.fade(-1)
			}, timer);
		}
	}
	};
}();
