var myTips = new Class({
	Extends: Tips,
	
	position: function(event){
		this.tip.setStyles({
			'left': event.page.x + this.options.offsets.x,
			'top': event.page.y - this.tip.offsetHeight - this.options.offsets.y
		});
	},
	
	initialize: function(){
		var params = Array.link(arguments, {options: Object.type, elements: $defined});
		this.setOptions(params.options || null);
		
		this.tip = new Element('div').inject(document.body);
		
		if (this.options.className) this.tip.addClass(this.options.className);
		
		var top = new Element('div', {'class': 'tip-top'}).inject(this.tip);
		this.container = new Element('div', {'class': 'tooltip_right'}).inject(this.tip);
		var bottom = new Element('div', {'class': 'tooltip_btm'}).inject(this.tip).adopt(new Element('img',{'src':'images/tooltop_pointer.gif','width':'7','height':'7'}));

		this.tip.setStyles({position: 'absolute', top: 0, left: 0, visibility: 'hidden'});
		
		if (params.elements) this.attach(params.elements);
	},
	
	elementEnter: function(event, element){
		
		$A(this.container.childNodes).each(Element.dispose);
		
		var title = element.retrieve('tip:title');
		
		if (title){
			this.titleElement = new Element('div', {'class': 'tooltip_top'}).inject(this.container);
			this.fill(this.titleElement, title);
		}
		
		var text = element.retrieve('tip:text');
		if (text){
			this.textElement = new Element('div', {'class': 'tip-text'}).inject(this.container);
			this.fill(this.textElement, text);
		}
		
		//this.options.offsets.x = element.offsetWidth / 2;
		
		this.timer = $clear(this.timer);
		this.timer = this.show.delay(this.options.showDelay, this);

		this.position((!this.options.fixed) ? event : {page: element.getPosition()});
	}
});
