window.addEvent('domready', function() {
var divs = $$('.course-descriptions');

divs.each(function(d){
	var show = d.getElements('div.control > a.toggle-show');
	var hide = d.getElements('div.control > a.toggle-hide');
	var number = d.getElements('div.control > a.toggle-number');
	var classes = d.getElements('li a.course');
	
		classes.each(function(item) {
			var span = item.getNext('p.desc').setStyles({'display':'none','opacity':0});
			var parent = item.getParent('li');
			var mfx = new Fx.Tween(span);
			var pfx = new Fx.Tween(parent);
				item.addEvents({
				'click' : function(e) {
					e = new Event(e).stop();
					
					if(span.hasClass('active') == false) {
						this.fireEvent('reveal');
					}
					else {
						this.fireEvent('conceal');
					}
				},
				'reveal' : function() {
					mfx.cancel();
					pfx.cancel();
					mfx.setOptions({duration:300});
					parent.addClass('expanded')
					pfx.start('background-color','#eef4ff');
					mfx.set('display','block').start('opacity',1);
					span.addClass('active');
				},
				'conceal' : function() {
					mfx.cancel();
					pfx.cancel();
					pfx.start('background-color','#ffffff');
					mfx.setOptions({duration:200});
					mfx.start('opacity',0).chain(function(){
						this.set('display','none');
						parent.removeClass('expanded');
					});
					span.removeClass('active');
				}
			});
		});
	
		show.addEvent('click',function(e) {
			e.stop();
			classes.fireEvent('reveal',classes);
		});

		hide.addEvent('click',function(e) {
			e.stop();
			classes.fireEvent('conceal',classes);
		});
	});
});
