

/**
 * Ha il compito di far comparire un tooltip in una data posizione quando show e' true, altrimenti lo fa scomparire
 */
function displayTooltip(show, top, left, width, height, label) {
	// Se devo mostrarlo
	if (show) {
		// top null e' un trucchetto per consentire l'invocazione del displayTooltip su onmouseover del tooltip stesso
		if (top != null) {
			// Converto da stringa in intero l'altezza e l'ampiezza del riquadro face taggato
			height = parseInt(height);
			width = parseInt(width);

			// Calcolo la posizione verticale del tooltip afficnhe' sia centrata rispetto al riquadro
			top = parseInt(top) + height - height / 2 - 10;

			// Calcolo la posizione orizzontale del tooltip affinche' sia centrato rispetto al riquadro
			left = parseInt(left) + width - width / 2 - label.visualLength() / 2;
			
			// Aggiorno il testo
			$('faceTagTipContentId').update(label);
			// Sono costretto a ripetere lo stile in quanto non conosciamo un modo per aggiornare solo ed unicamente gli attributi left e top
			$('faceTagTipId').setStyle({zIndex: '100', position: 'absolute', display: 'block', top:top + 'px', left:left + 'px'});
		}			
		$('faceTagTipId').show();
	} else {
		$('faceTagTipId').hide();			
	}
}

/**
 * Ritorna la lunghezza in pixel di un testo,
 * non tiene conto del font
 */
String.prototype.visualLength = function() {
    var ruler = $("tooltipRulerId");
    ruler.innerHTML = this;
    return ruler.offsetWidth;
}

