
var bubbleTooltips = Class.create();
bubbleTooltips.prototype = {
	initialize: function(id, offset, deltaX, deltaY) {
		this.id = id; // id del contenitore dei link
		
		this.id_cnt_tooltip = "btc_" + id;
		this.deltaX = parseInt(deltaX);
		this.deltaY = parseInt(deltaY);
		this.offset = parseInt(offset);
		
		this.cnt_tooltip = document.createElement("div");
		this.cnt_tooltip.setAttribute("id", this.id_cnt_tooltip);
		this.cnt_tooltip.style.position = "absolute";
		//document.getElementsByTagName("body")[0].appendChild($(this.cnt_tooltip));
		
		var objBody = document.getElementsByTagName("body").item(0);
		objBody.appendChild($(this.cnt_tooltip));

		var links = $(this.id).getElementsByTagName("a");
		var aForum = $("aForum");
		for (i = 0;i < links.length; i++){
			if ( (i==0) || (aForum!=null) || (offset!=0) ){
				this.prepareLinks(links[i], i, 0);
			}
			else{
				this.prepareLinks(links[i], i, 1);
			}
		}
	},

	prepareLinks: function(elementLink, i, offsetForum){
		/* Adding html for the tooltip */

		var tooltip = document.createElement("div");

		$(tooltip).addClassName("tooltip");
		$(tooltip).addClassName("icon_" + (i + this.offset+offsetForum));
		$(tooltip).style.display = "block";
		
		Event.observe(elementLink, 'mouseover', function (ev) { this.showTooltip(ev, $(tooltip)); }.bind(this));
		Event.observe(elementLink, 'mouseout', function (ev) { this.hideTooltip(); }.bind(this));
		Event.observe(elementLink, 'mousemove', function (ev) { this.locatePositions(ev); }.bind(this));
	}, 
	
	locatePositions: function(event){
	var posX = 0, posY = 0;

	if(event == null) event = window.event;

	if(event.pageX || event.pageY){
		posX = event.pageX; 
		posY = event.pageY;
	}	else if(event.clientX || event.clientY){
    if(document.documentElement.scrollTop){
        posX = event.clientX + document.documentElement.scrollLeft;
        posY = event.clientY + document.documentElement.scrollTop;
		} else {
			posX = event.clientX + document.body.scrollLeft;
			posY = event.clientY + document.body.scrollTop;
		}
	}

	$(this.id_cnt_tooltip).style.top = (posY - this.deltaY) + "px";
	$(this.id_cnt_tooltip).style.left = (posX - this.deltaX) + "px";
},

	showTooltip: function(event, tooltip){
		this.cnt_tooltip.appendChild($(tooltip));
		this.locatePositions(event, this.id_cnt_tooltip);
	},

	hideTooltip: function(){
	$(this.id_cnt_tooltip).removeChild($(this.id_cnt_tooltip).firstChild);
	}
	


}
