/**
 * Calendar base class
 * 
 * @class Calendar
 * @author Rocco Janse <a href="rocco@efocus.nl">rocco@efocus.nl</a>
 * @version 1.0
 * @date 08/04/2011
 * @requires MooTools core 1.3.1
 */
var Calendar = new Class({
	
	Implements: [Options],
	
	options: {
		'days': 'span',
		'tooltip': {
			'el': 'div.popup',
			'pointer': 'div.arrow',
			'pos': 'lock_y',
			'displace': 10
		}
	},
	
	initialize: function(container, options) {
		
		// config
		this.setOptions(options);
		this.container = document.id(container);
		this.days = this.container.getElements(this.options.days);
		
		// init
		this.initDays();

	},
	
	initDays: function() {
		this.days.each(function(day) {
			if (day.getElement(this.options.tooltip.el)) {
				var tooltip = day.getElement(this.options.tooltip.el);
				var pointer = day.getElement(this.options.tooltip.pointer);
				
				tooltip.fade('hide');
				tooltip.setStyle('display', 'block');
				day.addEvents({
					'mouseenter': function(e) {
						pointer.setStyle('left', day.getPosition(this.container).x)+Math.ceil(pointer.getWidth()/2+2);
						tooltip.setStyle('top', -((tooltip.getHeight()+pointer.getHeight())-day.getPosition(this.container).y)-this.options.tooltip.displace);
						tooltip.fade(1);
				}.bind(this),
				'mouseleave': function(e) {
					tooltip.fade(0);
				}.bind(this)
				});
			}
		}.bind(this));
	}
});
