window.addEvent('domready', function() {
	initLanguageSelectToggler();
	initFlyoutMenu();
	initFlexiUL();
	initChoiceTable();
	initGallery();
});

function initFlyoutMenu() {

	//// fly-out menu
	
	$$('ul.flyout ul.menu0').addEvents({
		mouseenter: function(){
			if (this.getElement('ul.menu1') != null) this.getElement('ul.menu1').setStyle('visibility','visible');
		},
		mouseleave: function(){
			if (this.getElement('ul.menu1') != null) this.getElement('ul.menu1').setStyle('visibility','hidden');
		}
	});

}

function initLanguageSelectToggler() {

	if ($('language_select') == null) return;

	//// language select
	
	var displayFlagsAmount = 3;
	
	if ($('language_select').getElements('a').length >= displayFlagsAmount-1) {
	
		var LanguageSelectImgWidth = $('language_select').getElement('img').getStyle('width'); // assuming all flags are equal in width
		
		function toggleLanguageSelect(collapse) {
			$('language_select').getElements('a').each(function(item, index){
				if (index >= displayFlagsAmount-1) {
					if (collapse) item.setStyle('display','none');
					else item.setStyle('display','inline');
				}
			});
		}
			
		toggleLanguageSelect(true); // init
		
		var LanguageSelectTimer;
		
		$('language_select').addEvent('mouseenter', function () {
			toggleLanguageSelect(false);
			clearTimeout(LanguageSelectTimer);
		});
		
		$('language_select').addEvent('mouseleave', function () {
			LanguageSelectTimer = (function(){ toggleLanguageSelect(true); }).delay(1000);
		});
	
	}

}

function initGallery() {

	if ($$('.gallery').length == 0) return;

	//// gallery

	// create controls
	$$('.gallery .controls').adopt(new Element('div',{'class':'control'}));
	
	$$('.gallery .images img').each(function() {
		var controlKnob = new Element('img',{'src':'images/gallery_dot.gif','class':'knob'});
		$$('.gallery .control').adopt(controlKnob);
		});
	var controlPrev = new Element('img',{'src':'images/gallery_arrow_left.gif','class':'prev'});
	var controlNext = new Element('img',{'src':'images/gallery_arrow_right.gif','class':'next'});
	$$('.gallery .control').adopt(controlPrev);
	$$('.gallery .control').adopt(controlNext);

	// create accordion

	var galleryAccordion = new Fx.Accordion($$('.gallery .controls .knob'), $$('.gallery .images img'), {
		display: 0,
		initialDisplayFx:true,
		alwaysHide: false,
		height: false,
		fixedHeight: $$('.gallery .images').getStyle('height')
	});

	// link next/prev
	
	controlNext.addEvent('click',function() {
		var i = galleryAccordion.previous;
		var n = galleryAccordion.togglers.length;
		if (i==n-1) i=0;
		else i++;
		galleryAccordion.display((i));
	});
	
	controlPrev.addEvent('click',function() {
		var i = galleryAccordion.previous;
		var n = galleryAccordion.togglers.length;
		if (i==0) i=n-1;
		else i--;
		galleryAccordion.display((i));
	});
	
	// actions: copy captions
	
	galleryAccordion.addEvents({
		active: function(toggler,target){
			toggler.setProperty('src','images/gallery_dot_sel.gif');
			$$('.gallery .captions h6').set('html',target.getProperty('title'));
			$$('.gallery .captions p').set('html',target.getProperty('alt'));
		},
		background: function(toggler,target){
			toggler.setProperty('src','images/gallery_dot.gif');
		}
	});

	galleryAccordion.fireEvent('active', new Array(galleryAccordion.togglers[0],galleryAccordion.elements[0]));


}

function initFlexiUL() {

	if ($$('ul.flexi').length == 0) return;

	//// flexi ul
	
	var ulFlexiAccordion = new Fx.Accordion($$('ul.flexi li h4'), $$('ul.flexi li p'), {
		display: 0,
		initialDisplayFx:false,
		alwaysHide: false
	});

	ulFlexiAccordion.addEvents({
		active: function(toggler,target){
			toggler.setStyle('background-image','url(images/expanded.gif)');
			toggler.setStyle('background-repeat','no-repeat');
			toggler.setStyle('background-position','100% 0');
		},
		background: function(toggler,target){
			toggler.setStyle('background-image','url(images/collapsed.gif)');
			toggler.setStyle('background-repeat','no-repeat');
			toggler.setStyle('background-position','100% 0');
		}
	});
	
}

function initChoiceTable() {

	if ($$('ul.choice').length == 0) return;

	//// courses choice ul
	
	var headerDiv = new Element('div');
	headerDiv.addClass('choice');
	$$('ul.choice').grab(headerDiv,'before');
	
	$$('ul.choice h4').each(function(item, index){
		item.setProperty('class',item.getParent().getProperty('class'));
		headerDiv.adopt(item.dispose());
	}); 

	var ulChoiceAccordion = new Fx.Accordion($$('div.choice h4'), $$('ul.choice li'), {
		display: 0,
		initialDisplayFx:true,
		alwaysHide: false
	});
	
	$$('div.choice h4:first-child').addClass('sel');

	ulChoiceAccordion.addEvents({
		active: function(toggler,target){
			toggler.addClass('sel');
		},
		background: function(toggler,target){
			toggler.removeClass('sel');
		}
	});
	
}

