/* http://pr0digy.com/sandbox/mootools/slide-effect/ */

var Site = {

	start: function(){
		if($('vertical')) Site.vertical();
		if($('horizontal')) Site.horizontal();
		if($('accordion')) Site.accordion();
	},
	
	vertical: function(){
		var list = $$('div.collapse');
		var headings = $$('li a.verthead');
		var collapsibles = new Array();
		headings.each( function(heading, i) {

			var collapsible = new Fx.Slide(list[i], { 
				duration: 500, 
				transition: Fx.Transitions.linear,
				onComplete: function(request){ 
					var open = request.getStyle('margin-top').toInt();
					//if(open >= 0) new Fx.Scroll(window).toElement(headings[i]);
				}
			});
			
			collapsibles[i] = collapsible;
			
			heading.onclick = function(){
				var span = $E('span', heading);

				if(span){
					var newHTML = span.innerHTML == '+' ? '-' : '+';
					span.setHTML(newHTML);
				}
				
				collapsible.toggle();
				return false;
			}
			
			collapsible.hide();
			
		});
/*
		$('collapse-all').onclick = function(){
			headings.each( function(heading, i) {
				collapsibles[i].hide();
				var span = $E('span', heading);
				if(span) span.setHTML('+');
			});
			return false;
		}
		
		$('expand-all').onclick = function(){
			headings.each( function(heading, i) {
				collapsibles[i].show();
				var span = $E('span', heading);
				if(span) span.setHTML('-');
			});
			return false;
		}*/
		
	},
	
	horizontal: function(){
		var list = $$('#horizontal div.collapse');
		var headings = $$('#horizontal li h3');
		var collapsibles = new Array();
		
		headings.each( function(heading, i) {

			var collapsible = new Fx.Slide(list[i], { 
				duration: 500, 
				transition: Fx.Transitions.linear
			});
			
			collapsibles[i] = collapsible;
			
			heading.onclick = function(){
				var span = $E('span', heading);

				if(span){
					var newHTML = span.innerHTML == '+' ? '-' : '+';
					span.setHTML(newHTML);
				}
				
				collapsible.toggle('horizontal');
				return false;
			}
			
		});
		
		$('slideout-all').onclick = function(){
			headings.each( function(heading, i) {
				collapsibles[i].hide('horizontal');
				var span = $E('span', heading);
				if(span) span.setHTML('+');
			});
			return false;
		}
		
		$('slidein-all').onclick = function(){
			headings.each( function(heading, i) {
				collapsibles[i].show('horizontal');
				var span = $E('span', heading);
				if(span) span.setHTML('-');
			});
			return false;
		}
		
	},
	
	accordion: function(){
		var list = $$('#accordion li div.collapse');
		var headings = $$('#accordion li h3');
		var collapsibles = new Array();
		var spans = new Array();
		
		headings.each( function(heading, i) {

			var collapsible = new Fx.Slide(list[i], { 
				duration: 500, 
				transition: Fx.Transitions.quadIn
			});
			
			collapsibles[i] = collapsible;
			spans[i] = $E('span', heading);
			
			heading.onclick = function(){
				var span = $E('span', heading);

				if(span){
					var newHTML = span.innerHTML == '+' ? '-' : '+';
					span.setHTML(newHTML);
				}
				
				for(var j = 0; j < collapsibles.length; j++){
					if(j!=i) {
						collapsibles[j].slideOut();
						if(spans[j]) spans[j].setHTML('+');
					}
				}
				
				collapsible.toggle();
				
				return false;
			}
			
			collapsible.hide();
			
		});
	}
};
window.addEvent('domready', Site.start);
