var Dates = Class.create();
Dates.prototype = {
	// ******************************************************************************
	// Constants
	// ******************************************************************************
	Version : '0.2',


	// ******************************************************************************
	// vars
	// ******************************************************************************

	dates : {},

	initialize: function(options) {
	    this.options = Object.extend({
	    	
			quicknav : {}, // carousel element eg div
		    duration : 0.4,
			
		    // selectors
			selectors : {
				dates : '.juwidates',
				
				filterForm : '.filter form',
				filterSelect : '.filter select',
				filterButton : '.filter .buttonWrap',

				calendar : '.calendar', 
				calendarDays : 'td.date span',
				
				dummy : '#dummy'
			},
			classNames : {
				dummy : '#dummy'
			},
			dummy : '#dummy'
		}, options || {});
		
		document.observe('dom:loaded', this.start.bind(this));
	},

	start : function(){

		this.dates = $$(this.options.selectors.dates).first();
		this.calendar = $$(this.options.selectors.calendar).first();
		
		if (this.calendar) {
			this.calendar.select(this.options.selectors.calendarDays).each(function(day) {
				var content = day.getElementsBySelector('div ul').first();
				new Tip(day, content, {
					fixed: true,
					hook: {target: 'topMiddle', tip: 'bottomLeft'},
					style: 'juwi'
				});
			});
		}

		if (this.dates) {
			// filter funktionen
			this.dates.select(this.options.selectors.filterButton).first().hide();
			var filterForm = this.dates.select(this.options.selectors.filterForm).first();
			this.dates.select(this.options.selectors.filterSelect).invoke('observe', 'change', function(ev) {
				filterForm.submit();
			});
		}
	},
	
	dummy : function() {
	}
}

new Dates();
