// JavaScript Document

var Newslist = new Class({
	
	lines: [],
	sourceHeight: [],
	dates: [],
	lis: [],
	selected: [],
	
	initialize: function() {
		$$('ol .wrapper li.datum').each(function(item, index) {
			
			dat = item.getText().split('-').getLast().toInt();
			if (!this.dates.contains(dat)) this.dates.push(dat);
			
			this.lines[index] = {
				val: dat,
				fx: new Fx.Style(item.getParent().getParent(), 'height', {duration: 200}),
				el:	item.getParent().getParent().addEvents({

					mouseenter: function() {						
						this.linehover(index);
					}.bind(this),

					mouseleave: function() {
						this.lineremove(index);
					}.bind(this)

				}),
				active: false
			};
			this.lines[index].el.setStyle('cursor', 'pointer').addEvent('click', function() {
				location.href = item.getParent().getElement('a').href;
			});
			
		}, this);
		this.makeBox();
	},
	
	makeBox: function() {
		
		var bx = new Element('ul').injectAfter($('datum-current'));
		bx.getPrevious().addEvent('click', function() {
			bx.getParent().toggleClass('visible');										   
		}).getParent().getParent().addEvent('mouseleave', function() {
			bx.getParent().removeClass('visible');	
		});
		
		for (i=0; i<this.dates.length; i++) {
			this.lis[i] = new Element('li').setText(this.dates[i]).injectInside(bx).addEvent('click', function(e) {
				e = new Event(e).target.toggleClass('active');
				this.showLines();														   
			}.bind(this));
		};
		
	},
	
	showLines: function(clicked) {
		this.selected = [];
		$('datum-current').getParent().getElements('li').each(function(el, i) {
			it = el.getText().toInt();
			if(el.hasClass('active') && !this.selected.contains(it)) this.selected.push(it);
		}, this);
		this.lines.each(function(item) {
			if (0 < this.selected.length) {
				this.showGiven();
			} else {
				this.showAll();				
			}
		}, this);
	},
	
	showAll: function() {
		for (var i=0; i<this.lines.length; i++)
			this.show(i);
	},
	
	showGiven: function(d) {
		for (var i=0; i<this.lines.length; i++) {
			if (this.selected.contains(this.lines[i].val))
				this.show(i);
				
			else
				this.hide(i);
		}
	},
	
	show: function(i) {
		if (this.lines[i].el.getStyle('height') < 40)
			this.lines[i].fx.stop().start(40);
	},
	
	hide: function(i) {
		if (this.lines[i].el.getStyle('height') > 0)
			this.lines[i].fx.stop().start(0);
	},
	
	linehover: function(i) {
	
		var proj = [];
		
		this.lines[i].el.removeClass('active').removeClass('hover').addClass('hover');
		this.lines[i].active = true;
		
		(function() {
			this.lineactive(i);
		}.bind(this)).delay(100);
		
	},
	
	lineactive: function(i) {
		if (this.lines[i].active) this.lines[i].el.removeClass('active').removeClass('hover').addClass('active');
	},
	
	lineremove: function(i) {
		this.lines[i].el.removeClass('active').removeClass('hover').addClass('hover');
		(function() {
			this.lines[i].el.removeClass('active').removeClass('hover');
		}.bind(this)).delay(100);
	}
	
	
});

var news_list = new Newslist();