
document.observe("dom:loaded", function() {

	$$('#home .newslist .entries a').each(function(item) {
		item.observe('click', function(ev) {
			ev.stop();

			var home = $('home');
			var newlist = $('home').down();
			var homenew = newlist.next();

			if (home.loading || item.up('li').hasClassName('selected')) return;
			home.loading = true;

			Ajax.getUrl(item.href + '#homenew', function(el) {
				var newout = homenew ? homenew.down() : null;
				var newin = el.firstDescendant();

				newlist.removeClassName('loading');

				if (!homenew) {
					home.appendChild(el);
					homenew = el;
				}

				homenew
					.setStyle({ height: newout ? newout.getHeight()+'px' : 0 })
					.appendChild(newin);

				var showNewIn = function() {
					item.up('li')
						.addClassName('selected')
						.adjacent('.selected').each(function(item) { item.removeClassName('selected') });
					$fx(homenew).fxAdd({ type: 'height', to: newin.getHeight(), step: newin.getHeight()/25, delay: 40 }).fxRun(function() {
						home.loading = false;
					});
				};

				if (newout) {
					$fx(homenew).fxAdd({ type: 'height', to: 0, step: -newout.getHeight()/25, delay: 40 }).fxRun(function() {
						newout.remove();
						showNewIn.delay(.1);
					});
				} else {
					showNewIn.delay(.1);
				}
			});

			newlist.addClassName('loading');
		});
	});
});
