//Sidebar - animations for sidebar
var Sidebar = {

	start: function(){
		
		//add programs event listener
		if($('sidebar_programs')) {
			var programsSlide = new Fx.Slide('sidebar_programs').hide();
			Sidebar.subOver('sidebar_programs');
			$('sidebar_program').getFirst().addEvent('click', function(e){
				e = new Event(e);
				programsSlide.toggle();
				e.stop();
			});
		}
		
		//add events event listener
		if($('sidebar_events')) {
			var eventsSlide = new Fx.Slide('sidebar_events').hide();
			Sidebar.subOver('sidebar_events');
			$('sidebar_event').getFirst().addEvent('click', function(e){
				e = new Event(e);
				eventsSlide.toggle();
				e.stop();
			});
		}

 		
 		//start animations
 		Sidebar.appear('sidebar_nav');
	},

	//slide in animation
	appear: function(container){
		var timer = 0;
		var sideblocks = $$('#' + container + ' li');
		var slidefxs = [];
		
		sideblocks.each(function(el, i){
			if(el.getParent().getProperty('id') == $(container).getProperty('id')) {
				el.setStyle('margin-left', '-155px');
				timer += 150;
				slidefxs[i] = new Fx.Style(el, 'margin-left', {
					duration: 400,
					transition: Fx.Transitions.backOut,
					wait: false,
					onComplete: Sidebar.createOver.pass([el, i])
				});
				slidefxs[i].start.delay(timer, slidefxs[i], 0);
			}
		}, this);
	},
	
	//outer sidebar event
	createOver: function(el, i) {
		var first = el.getFirst();
		if (!first || first.getTag() != 'a') return;
		var overfxs = new Fx.Styles(first, {'duration': 300, 'wait': false});
		el.mouseouted = true;
		
		el.addEvent('mouseenter', function(e){
			overfxs.start(settings.sidebarOuterRollover);
		});
		
		el.addEvent('mouseleave', function(e){
			overfxs.start(settings.sidebarOuterRollout);
		});
	},
	
	//inner sidebar event
	createSubOver: function(el, i) {
		var first = el.getFirst();
		if (!first || first.getTag() != 'a') return;
		var overfxs = new Fx.Styles(first, {'duration': 300, 'wait': false});
		el.mouseouted = true;
		
		el.addEvent('mouseenter', function(e){
			overfxs.start(settings.sidebarInnerRollover);
		});
		
		el.addEvent('mouseleave', function(e){
			overfxs.start(settings.sidebarInnerRollout);
		});
	},
	
	//loop through inner elements and add the event
	subOver:function(container){
		var timer = 0;
		var sideblocks = $$('#' + container + ' li');
		var slidefxs = [];
		
		sideblocks.each(function(el, i){
			if(el.getParent().getProperty('id') == $(container).getProperty('id')) {
				el.setStyle('margin-left', '-155px');
				timer += 150;
				slidefxs[i] = new Fx.Style(el, 'margin-left', {
					duration: 400,
					transition: Fx.Transitions.backOut,
					wait: false,
					onComplete: Sidebar.createSubOver.pass([el, i])
				});
				slidefxs[i].start.delay(timer, slidefxs[i], 0);
			}
		}, this);
	}
	
}; //end Sidebar

//observe events
window.addEvent('domready', Sidebar.start);