function slideToggle() {
	$$('.accordion h5').each( function(e) {
		
		e.addEvent('click', function(event) {			
			// stupid scope ;)
			var e = this;
			
			// dont reopen
			var wasOpen = e.hasClass('active');
			
			// one is open
			var oneIsOpen = $chk( e.getParent().getElement('h5.active') );
				
			// close and chain
			if ( oneIsOpen )  {
				var closeElement = e.getParent().getElement('.active');
				var closeNext	 = closeElement.getNext('div');
				
				closeFx = new Fx.Tween(closeNext);
				
				closeFx.start('height', 0).chain( function() {
					closeNext.setStyle('display', 'none');
					
					closeElement.removeClass('active');
										
					if ( wasOpen ) {
						jQuery('#pane2').jScrollPane({showArrows:true});
					}
				});
			}
		
			// don't reopen
			if ( !wasOpen ) {
				slideOpen(e);
			}
		});
	});
}

function slideOpen(e) {
	// open properties and next
	var openNext 	= e.getNext('div');
	var openFx  	= new Fx.Tween(openNext);
	
	// set styles
	openNext.setStyle('display', 'block');
	
	// get dimension data
	var h = openNext.getScrollSize().y.toInt();
				
	// open the question, re-init the scrollpane and scroll to the answer
	openFx.start('height',  h).chain( function() {
		e.addClass('active');
							
		jQuery('#pane2').jScrollPane({showArrows:true});

		// get current position
		var y = e.getPosition( $('pane2') ).y.toInt() + 2;
		
		jQuery('#pane2')[0].scrollTo(y);
		return false;
	});
}

slideToggle();
