var Rules = {
  '#nav-main li:mouseenter': function(element) {
		$(element).addClassName('over');
	},
  '#nav-main li:mouseleave': function(element) {
		$(element).removeClassName('over');
	}
}

var YearMonthFilter = Class.create();

YearMonthFilter.prototype = {
	initialize: function(element) {
		this.element = $(element);
		
		this.buildYearList();
		this.hideMonthList();
	},
	
	showYear: 		 function(e) { this._showYear(Event.element(e).textContent || Event.element(e).innerText); },
	hideMonthList: function( ) { var date = new Date(); this._showYear(date.getFullYear()); },
	
	_showYear: function( year ) {
		var month_items = $A(this.element.getElementsByTagName('LI'));
				
		for(i = 0; i<month_items.length; i++) {
			if(month_items[i].innerHTML.stripTags().split('/')[1]!=year) {
				Element.hide(month_items[i]);
			} else {
//				alert(month_items[i].innerHTML.stripTags().split('/')[1]);
				Element.show(month_items[i]);
				new Effect.Highlight(month_items[i], {duration: 0.5});
			}
		}
		
	},
	
	buildYearList: function() {
		var month_items = $A(this.element.getElementsByTagName('LI'));

		this.yearsList = Builder.node('ul', {className: 'multi-column'}, 
			month_items.map(function(item) {
				return item.innerHTML.stripTags().split('/')[1];
			}).inject([], function(array, value) {
				return array.include(value) ? array : array.concat([value]);
			}).map(function(year) {
				return Builder.node('li', {}, [Builder.node('a', { }, year)] );
			})
		);
		
		$A(this.yearsList.getElementsByTagName('A')).each(function(a) {
			Event.observe(a, "click", this.showYear.bindAsEventListener(this));
		}.bind(this));
		
		this.element.parentNode.insertBefore(this.yearsList, this.element);
		
	}
}

Event.observe(window, 'load', function() { 
	EventSelectors.start(Rules);
	
	$$('.months-filter').each(function(monthFilter) {
		new YearMonthFilter(monthFilter);
	});
	
});

