var Knowings = {
	onloadCallList: [],

	observeDocumentLoad: function (callback){
		Knowings.onloadCallList.push(callback);
	},
	onDocumentLoad:function (){

		Knowings.onloadCallList.each(function (callback){
			callback();
		});
	},

	removeTrailingSeparator: function (){
		$$('.list-miniactu').each(function(item){
			var childs = $(item).childElements();

			if(childs[childs.length - 1].hasClassName('fin')){
				childs[childs.length - 1].remove();
			}
		});
	},
	cleanPagersSeparators: function (){
		$$('.pager .separator').each(function (separator){
			if(!separator.previous() || !separator.next() || !separator.previous().visible() || !separator.next().visible()){
				separator.remove();
			} else if(separator.next().hasClassName('separator')){
				separator.remove();
			} else if(separator.next().hasClassName('remove-previous-separator')){
				separator.remove();
			} else if(separator.previous().hasClassName('remove-next-separator')){
				separator.remove();
			}
		});
	}
};



Knowings.LanguageMenu = {
	initialize: function (){
		// Hide on document click
		Event.observe(document.documentElement, 'click', function () {
			$$('.i18n-listoptions').each (function (listOption) {
				listOption.hide();
			});
		});

		$$('.i18n-selected').each(Knowings.LanguageMenu.initializeSelector);
	},
	initializeSelector: function (current){
		var listOption = current.next('.i18n-listoptions');

		var selectedItem = listOption.down('.i18n-selected-lang');

		if(selectedItem){
			Knowings.LanguageMenu.changeSelectorValue(current, selectedItem.down('a'));
		}


		current.observe('click', function (event){
			event.stop();

			listOption.setStyle({'display':'block'});
		});

		listOption.select('.i18n-option a').each(function(a){
			a.observe('click', function(event){
				event.stop();
				current.down('.value').innerHTML = a.innerHTML;

				Knowings.LanguageMenu.changeSelectorValue(current, a);

				if(a.href){
					(function(){
						document.location = a.href;
					}).delay(0.5);
				}

				listOption.hide();
			});
		});
	},
	changeSelectorValue: function (current, selected){
		current.down('.value').innerHTML = selected.innerHTML;
	}
};


Knowings.observeDocumentLoad(Knowings.removeTrailingSeparator);
Knowings.observeDocumentLoad(Knowings.cleanPagersSeparators);
Knowings.observeDocumentLoad(Knowings.LanguageMenu.initialize);

Event.observe(window, 'load', Knowings.onDocumentLoad);


