var Site = {

		start: function(){
				if($('vertical')) Site.vertical();
				if($('horizontal')) Site.horizontal();
				if($('accordion')) Site.accordion();
		},
		
		vertical: function(){
				var list = $$('#vertical div.collapse');
				var headings = $$('#vertical h6');
				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;
				}
				
		},
		

		accordion: function(){
				var list = $$('#accordion div.collapse');
				var headings = $$('#accordion h6');
				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);
