var News = {
	animSpeed: 500,
	items: new Object()
};

News.init = function() {
	var els = $('news-items').getElements('.news-item');
	els.each(function(item, index) {
		// Use the first paragraph as teaser
		var teaser = item.getElement('p');
		teaser.innerHTML+= '&nbsp;&nbsp;<a href="#news-'+index+'" class="more" id="news-item-'+index+'-more" onclick="News.toggle('+index+');">More</a>';
		
		// Store the full height
		var elinner = item.getElement('.news-item-inner');
		News.items[index] = {
			closedheight: teaser.offsetHeight,
			fullheight: elinner.offsetHeight + 30 // make room for close link
		};
		
		// Hide the rest of the item
		elinner.setStyles({
			'overflow': 'hidden',
			'height': News.items[index].closedheight,
			'color': '#899bbb' 
		});
		
		item.addClass('closed');
		
	});
	
	// Go directly to item via URL
	if(window.location.hash != '') {
		var id = window.location.hash.split('-').pop();
		if($('news-item-'+id)) {
			News.toggle(id);	
		}
	}
};

News.toggle = function(id) {
	var el = $('news-item-'+id);
	var elinner = $('news-item-'+id+'-inner');
	var morelink = $('news-item-'+id+'-more');
	if(el.hasClass('closed')) {
		
		// Open the item
		var fx = new Fx.Styles(elinner, {duration:News.animSpeed, wait:false, onComplete: function(){window.location='#news-'+id}});
		fx.start({
			'height': News.items[id].fullheight,
			'color': '#1c407d'
		});
		el.addClass('open');
		el.removeClass('closed');
		
		morelink.innerHTML = 'Close article';
		morelink.inject(elinner);
		
	}
	else {
		
		// Close the item
		var fx = new Fx.Styles(elinner, {duration:News.animSpeed, wait:false});
		fx.start({
			'height': News.items[id].closedheight,
			'color': '#899bbb'
		});
		el.removeClass('open');
		el.addClass('closed');
		
		morelink.innerHTML = 'More';
		morelink.inject(elinner.getElement('p'));
		
	}
};