// language_selection.js
var LanguageSelection = {
	initialize: function() {
		this.headerLanguageSelector = document.getElementById('header-language-selector');
		if (!this.headerLanguageSelector) return;
		document.body.appendChild(this.headerLanguageSelector);
		this.languageLink = document.getElementById('language-value');
		this.languageLinkMin = document.getElementById('language-value-min');
		this.languageSelectIframe = document.getElementById('language-select-iframe');
		Event.observe(this.languageLink, 'click', this.showLanguages.bindAsEventListener(this));
		Event.observe(this.languageLink, 'mouseout', this.delayedHideLanguages.bindAsEventListener(this));
		if (this.languageLinkMin) {
			Event.observe(this.languageLinkMin, 'click', this.showLanguages.bindAsEventListener(this));
			Event.observe(this.languageLinkMin, 'mouseout', this.delayedHideLanguages.bindAsEventListener(this));
		}
		Event.observe(this.headerLanguageSelector, 'mouseout', this.delayedHideLanguages.bindAsEventListener(this));
		Event.observe(this.headerLanguageSelector, 'mouseover', this.clearHideLanguages.bindAsEventListener(this));
		if (this.languageSelectIframe) {
			Element.setStyle(this.headerLanguageSelector, { visibility: 'hidden', display: '' });
			this.languageSelectIframe.style.width = this.headerLanguageSelector.offsetWidth + 'px';
			this.languageSelectIframe.style.height = this.headerLanguageSelector.offsetHeight +'px';
			Element.setStyle(this.headerLanguageSelector, { visibility: '', display: 'none' });
		}

	},

	showLanguages: function(e) {
		Event.stop(e);
		var languageLink = Event.element(e);
		languageLink.blur();
		this.clearHideLanguages();
		if (this.visible) {
			this.hideLanguages();
		}
		else {
			var leftBorder = Position.cumulativeOffset(languageLink)[0] + languageLink.offsetWidth;
			this.headerLanguageSelector.style.left = (leftBorder - 168) + 'px';
			this.headerLanguageSelector.style.top  = '20px';
			try {
				Effect.Appear(this.headerLanguageSelector, {duration:0.3});
			} catch(e) {
				Element.show(this.headerLanguageSelector);
			}
			this.visible = true;
		}
	},

	hideLanguages: function(){
		if (this.visible) {
			try {
				Effect.Fade(this.headerLanguageSelector, {duration:0.3});
			} catch(e) {
				Element.hide(this.headerLanguageSelector);
			}
			this.visible = false;
		}
	},

	delayedHideLanguages: function(e) {
		if (this.visible){
			this.clearHideLanguages();
			this.delayID = setTimeout(this.hideLanguages.bind(this), 250);
		}
	},

	clearHideLanguages: function(){
		if (this.delayID) {
			clearTimeout(this.delayID);
			this.delayID = null;
		}
	}
};
/*
var Header = {
	toggle: function(){
		if (!this.visible){
			this.header_min = document.getElementById('header-navigation-min');
			this.header_max = document.getElementById('header-navigation-max');
			this.minimize_link = document.getElementById('minimize-link');
			this.maximize_link = document.getElementById('maximize-link');
			this.visible = this.header_min.style.display == 'none' ? this.header_max : this.header_min;
		}
		if (this.visible.id == 'header-navigation-max'){
			new Ajax.Request('/app/network',{parameters:'op=save_header_state.minimize' } );
			this.minimize_link.style.display = 'none';
			this.maximize_link.style.display = '';
			Transition.Morph(this.header_max, this.header_min, { duration: 0.5 });
			this.visible = this.header_min;
		}
		else {
			new Ajax.Request('/app/network',{parameters:'op=save_header_state.maximize' } );
			this.maximize_link.style.display = 'none';
			this.minimize_link.style.display = '';
			Transition.Morph(this.header_min, this.header_max, { duration: 0.5 });
			this.visible						= this.header_max;
		}
	}
}
*/
Event.observe(window, 'load', LanguageSelection.initialize.bind(LanguageSelection));