/**
 * @author maxime
 */
if (!Edge) var Edge = {};
Edge.Tooltip = Class.create();
Edge.Tooltip.prototype = {
	
	initialize: function(el, msg, params) {
		this.el = $(el);
		this.msg = msg;
		this.align = params.align || 'mouse';
		this.maxWidth = params.maxWidth || 0;
		this.dropShadow = params.dropShadow || false;
		this.style = params.style;
		this.shadowStyle = params.shadowStyle;
		this.visible = false;
	},
	
	show: function() {
		if (this.visible) return;
		
		new Insertion.Top(document.body, '<div id="'+this.el.name+'_tt" class="'+this.style+'">'+this.msg+'</div>');	//1.5
		this.tt = $(this.el.name+'_tt');
		
		var offset = 0;
		switch (this.align) {
			case 'left':	offset = -this.tt.getWidth() - 10; break;
			case 'right':	offset = this.el.getWidth() + 10; break;
			case 'mouse': 	alert('TODO: implement mouse option'); break;
		}
		
		Position.clone(this.el, this.tt, {setWidth : false, setHeight : false, offsetLeft : offset});
		this.tt.setStyle({display : 'block'});
		
		if (this.dropShadow) {
			new Insertion.Top(document.body, '<div id="'+this.el.name+'_ttShadow" class="'+this.shadowStyle+'">&nbsp;</div>');	//1.5
			this.shadow = $(this.el.name+'_ttShadow');
			Position.clone(this.tt, this.shadow);
			Edge.Tools.Gfx.makeTransparent(this.shadow, 0.4);
			
			var msgDim = this.tt.getDimensions();
			this.shadow.setStyle({display : 'block'});
		}
		this.visible = true;
	},
	
	hide: function() {
		if (!this.visible) return;
		
		this.tt.remove();
		if (this.shadow) this.shadow.remove();
		this.visible = false;
	}
	
}