var Tooltip = Class.create();
Tooltip.prototype = {
	initialize : function(cssClassName, containingObject) {
		this.tooltipCounter = 1;
		this.itemClassName = cssClassName;
		this.tooltipClassName = 'tooltip';
		this.bodyObj = document.getElementsByTagName("body").item(0);
		this.torsoObj = containingObject;
		this.itemArr = this.torsoObj.getElementsByClassName(this.itemClassName);
		this.itemArr.each(this.setupTooltips.bind(this));
	},

	setupTooltips : function(itemObj){
		this.createTooltip(itemObj);
		Event.observe(itemObj, 'mouseover', this.showTooltip.bindAsEventListener(this), false);
		Event.observe(itemObj, 'mouseout', this.hideTooltip.bindAsEventListener(this), false);
		Event.observe(itemObj, 'mousemove', this.moveTooltip.bindAsEventListener(this), false);
	},

	createTooltip : function(itemObj){
	    tooltipObj = document.createElement('div');
	    Element.extend(tooltipObj);


	    var itemId = itemObj.id.split('_')[1];

//	    var itemId = this.tooltipCounter;
//	    itemObj.setAttribute('id', this.itemClassName + '_' + itemId);

	    tooltipObj.setAttribute('id', this.tooltipClassName + '_' + itemId);
	    tooltipObj.className = this.tooltipClassName;
	    tooltipObj.setStyle({display: 'none' });
	    tooltipObj.innerHTML = itemObj.title
	    itemObj.title = '';

	    this.bodyObj.appendChild(tooltipObj);
	    this.tooltipCounter++;    

	},

	showTooltip : function(ev){
//		Event.stop(ev);
		var itemObj = Event.findElement(ev, 'div');
		var itemId = itemObj.id.split('_')[1];
		var tooltipObj = $(this.tooltipClassName + '_' + itemId);
		var top = Event.pointerY(ev);
		var left = Event.pointerX(ev);
		tooltipObj.setStyle({top: top + 'px', left: left + 'px'});
		Element.show(tooltipObj);
	},

	moveTooltip : function(ev){
//		Event.stop(ev);
		var itemObj = Event.findElement(ev, 'div');
		var itemId = itemObj.id.split('_')[1];
		var tooltipObj = $(this.tooltipClassName + '_' + itemId);
		var top = Event.pointerY(ev);
		var left = Event.pointerX(ev);
		tooltipObj.setStyle({top: top + 'px', left: left + 'px'});
	},

	hideTooltip : function(ev){
		Event.stop(ev);
		var itemObj = Event.findElement(ev, 'div');
		var itemId = itemObj.id.split('_')[1];
		var tooltipObj = $(this.tooltipClassName + '_' + itemId);
		Element.hide(tooltipObj);
	}

}
