document.observe("dom:loaded", function() {
	$$('#home #sidebarleft .article', '#home #sidebarright .article').each ( function(accordion) {
		var firstElem = false;
		accordion.select('.newslistitem').each( function(accordionElement) {
			if (!firstElem) {
				firstElem = accordionElement;
			}

			accordionElement.down(0).removeClassName('open');
			accordionElement.down(0).addClassName('close');
			accordionElement.down(0).next().hide();
			accordion.betweenElement = null;
			accordionElement.firstDescendant().observe('click', function(event){
				Event.stop(event);

				var clickElem = Event.element(event);
				while (!clickElem.parentNode.hasClassName('newslistitem')) {
					clickElem = clickElem.parentNode;
				}

				if (accordion.currentElement != clickElem.next() && accordion.betweenElement != clickElem.next()) {
					accordion.betweenElement = clickElem.next();
					var effects = [];
					accordion.newElement = clickElem.next();
					accordion.newElement.setStyle({
						display: 'block',
						overflow: 'hidden',
						height: '0px'
					});
					var options = {

						sync: true,
						scaleFrom: 0,
						scaleContent: false,
						transition: Effect.Transitions.sinoidal,
						scaleMode: {
							originalHeight: accordion.newElement.scrollHeight,
							originalWidth: accordion.newElement.scrollWidth
						},
						scaleX: false,
						scaleY: true
					};

					effects.push(
						new Effect.Scale(accordion.newElement, 100, options)
					);
					if (accordion.currentElement) {

						options = {
							sync: true,
							scaleContent: false,
							transition: Effect.Transitions.sinoidal,
							scaleX: false,
							scaleY: true
						};
						effects.push(
							new Effect.Scale(accordion.currentElement, 0, options)
						);
					}
					new Effect.Parallel(effects, {
						duration: 0.5,
						queue: {
							position: 'end',
							scope: 'accordionAnimation'
						},
						afterFinish: function() {
							accordion.currentElement.setStyle({
								height: 'auto',
								display: 'none'
							});
							accordion.currentElement.previous(0).removeClassName('open');
							accordion.currentElement.previous(0).addClassName('close');
							accordion.newElement.previous(0).addClassName('open');
							accordion.newElement.previous(0).removeClassName('close');
							accordion.currentElement = accordion.newElement;
						}.bind(accordion)
					});
				}
			});
		});

		if (firstElem) {
			accordion.currentElement = firstElem.down(0).next();
			firstElem.down(0).removeClassName('close');
			firstElem.down(0).addClassName('open');
			accordion.currentElement.show();
		}
	});
});