/**
* class ToolTipItem
* singel tooltip for html element
*/
var ToolTipItem = Class.create();
ToolTipItem.prototype = {

	/**
	* init item
	*/
	initialize: function(elem, label){
	
		this.elem = "tooltip_" + elem;
		
		var objBody = document.getElementsByTagName("body").item(0);
		var objTooltip = document.createElement("div");
		objTooltip.setAttribute('id', this.elem);
		objTooltip.setAttribute('class', 'ttstyle');
		objTooltip.setAttribute('className', 'ttstyle');
		objBody.appendChild(objTooltip);
		
		$(this.elem).innerHTML = label;
		Element.hide(this.elem);
		$(this.elem).style.position = 'absolute';
		
		var ref = this;
		Event.observe($(this.elem), "mouseover", function(e){Event.observe(e.target, "mouseout", function(e){ref.stop();}); });     		
	},
	
	/**
	* show tooltip
	*/
	start: function(){
		new Effect.Appear(this.elem, { duration: 0.6, from: 0.0, to: 1.0 });
        var ref = this;
        if(this.a){ window.clearTimeout(this.a);}
        this.a = window.setTimeout(function(e){ref.stop();},3000);
	},
	
	/**
	* hide tooltip
	*/
	stop: function(element){
	    window.clearTimeout(this.a);
		new Effect.Fade(this.elem, { duration: 0.1});
	},
	
	/**
	* render tooltip
	*/
	render: function(x,y){
	
		var obj = $(this.elem).style;
		obj.left = (parseInt(x)) + 'px';
		obj.top = (parseInt(y)) + 'px';
		
	},
	
	/**
	* mouse follow xpoisition
	*/
	mouseX: function(evt) {
	
		if (!evt) evt = window.event;
		if (evt.pageX) return evt.pageX;
		else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
		else return 0;
		
	},
	
	/**
	* mouse follow ypoisition
	*/
	mouseY: function(evt) {
	
		if (!evt) evt = window.event;
		if (evt.pageY) return evt.pageY;
		else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
		else return 0;
		
	}
	
}  