window.addEvent('domready', function() {
	/** Rollover sur home corp des produits **/
	var prodTopic = $('prod_topic');
	if ( prodTopic != undefined ) {
		var actionEl = prodTopic.getElements('li');
		actionEl.each(function(e){
			e.addEvents({
				'mouseenter': function(){
					prodTopic.addClass(this.get('id'));
				},
				'mouseleave': function(){
					prodTopic.removeClass(this.get('id'));
				}
			});
		});
	}
	
	/** Taille du conteneur du titre (haut gauche) **/
	if( $('sidebar-left-title') != undefined )
	{
		if( $('breadcrumb') != undefined )
		{
			var breadcrumbHeight = $('breadcrumb').getSize().y;
		}
		else
		{
			var breadcrumbHeight = 0;
		}
		if( $('front-title') != undefined )
		{
			var titleHeight = $('front-title').getSize().y;
		}
		else
		{
			var titleHeight = 0;
		}
		
		var sidebarTitleHeight = breadcrumbHeight + titleHeight + 10;
		
		if(sidebarTitleHeight > 50)
		{
			$('sidebar-left-title').setStyle('height',sidebarTitleHeight);
		}
	}
	
	
	/** Accordéon d'articles **/
	if ( $('article-scroll') != undefined )
	{
		$('article-scroll').getFirst().getAllNext().addClass('close');
		var scrollTitle = $$('#article-scroll .edito-texts-title');
		scrollTitle.setStyle('cursor','pointer');
		scrollTitle.each(function(e){
			e.addEvent('click',function(){
				scrollTitle.getParent().addClass('close');
				this.getParent().removeClass('close');
			});
		});
	}
	
	/** Liste déroulante : moteur produits, critères sauvegardés **/
	if ( $('save_criters_menu') != undefined && $('save_criters_toggle') != undefined)
	{
		var saveCritersToggle = new Fx.Slide('save_criters_menu');
		saveCritersToggle.hide(); 
		$('save_criters_toggle').addEvent('click', function(e){
			e = new Event(e);
			saveCritersToggle.toggle();
			e.stop();
		});
	}
	
	/** Liste déroulante : autres sites Roquette **/
	if ( $('othersites-menu') != undefined && $('othersites-toggle') != undefined)
	{
		var othersitesSlide = new Fx.Slide('othersites-menu');
		othersitesSlide.hide(); 
		$('othersites-toggle').addEvent('click', function(e){
			e = new Event(e);
			othersitesSlide.toggle();
			e.stop();
		});
	}
	
	/** Liste déroulante : Menu principal **/
	if ( $('drop-down-navigation-menu') != undefined && $('current-article-title') != undefined)
	{
		var navigationOverArticleSlide = new Fx.Slide('drop-down-navigation-menu');
		navigationOverArticleSlide.hide(); 
		$('current-article-title').addEvent('click', function(e){
			e = new Event(e);
			navigationOverArticleSlide.toggle();
			e.stop();
		});
	}
	
	/** Liste déroulante : recherche **/
	if ( $('search-selector') != undefined && $('search-toggle') != undefined)
	{
		var searchSlide = new Fx.Slide('search-selector');
		searchSlide.hide(); 
		$('search-toggle').addEvent('click', function(e){
			e = new Event(e);
			searchSlide.toggle();
			e.stop();
		});
	}
	
	/** Liste déroulante :  sites produits**/
	if ( $('productwebsites-menu') != undefined && $('productwebsites-toggle') != undefined)
	{
		var productwebsitesSlide = new Fx.Slide('productwebsites-menu');
		productwebsitesSlide.hide(); 
		$('productwebsites-toggle').addEvent('click', function(e){
			e = new Event(e);
			productwebsitesSlide.toggle();
			e.stop();
		});
	}
	
	/** Liste déroulante : liste des uc **/
	if ( $('ucs-list') != undefined && $('ucs-list-toggle') != undefined)
	{
		var ucslistSlide = new Fx.Slide('ucs-list');
		ucslistSlide.hide(); 
		$('ucs-list-toggle').addEvent('click', function(e){
			e = new Event(e);
			ucslistSlide.toggle();
			e.stop();
		});
	}
	
	
	/** Effacement des valeurs par defaut des input **/
	$$('input.clear_default_text').each(function(e) {
		if(e.type == 'text' || e.type == "password")
		{
			e.addEvent("focus", function(){
				this.value='';
			});
		}
	});
	
	
	/** Select Filter on List **/
	if ( $('ucs-list') != undefined)
	{
		$('ucs-list').getElements('a').each(function(e) {
			e.addEvent("click", function(){
				$('qualification_field').setProperty('value',e.getProperty('class'));
				$('qualification-select').submit();
			});
		});
	}
	if ( $('drop-down-nav') != undefined)
	{
		$('drop-down-nav').setStyle('display', 'inline');
	}
	if ( $$('a.hover-effect') != null)
	{
		$$('a.hover-effect').each(function(e) {
			e.addEvent("mouseenter", function(){
				e.getNext().setStyle('display', 'block');
				e.getFirst().setProperty('src', '/defaultSites/roquette_uc/images/common/list/liste1_links_detail_on.gif');
			});
			e.addEvent("mouseleave", function(){
				e.getNext().setStyle('display', 'none');
				e.getFirst().setProperty('src', '/defaultSites/roquette_uc/images/common/list/liste1_links_detail_off.gif');
			});
		});
	}
	
	
	/** Accordeon homepage News **/
	var newsaccordion = new Fx.Accordion('h3.front_news_togglers', 'div.front_news_content', {
		/* opacity: false,
		display: 0,
		alwaysHide: true, */
		onActive: function(toggler, element){ toggler.addClass('front_news_current')},
		onBackground: function(toggler, element){ toggler.removeClass('front_news_current')}
	});
	
	
	/** Accordion for left menu **/
	sublevelmenu_ul = new Array;
	sublevelmenu_li = new Array;
	$$('li.sub_level').each(function(item,index) {
		sublevelmenu_li[index] = item;
		sublevelmenu_ul[index] = new Fx.Slide(item.getLast(), {
			'onComplete':function() {
				if(item.hasClass('open') == false) {
					this.wrapper.setStyle('height', 'auto');
				}
				else {
					item.removeClass('open'); 
					item.getFirst().removeClass('dlink_sub_level');
				}
			}
		});
		if(item.hasClass('open') == false)
		{
			sublevelmenu_ul[index].hide();
		}
		item.getFirst().addEvent('click', function(e) {
			e = new Event(e);
			if(item.getFirst().getProperty('href') == null || (window.ie && item.getFirst().getProperty('href') == ''))
			{
				if(item.hasClass('open') == false)
				{
					item.getFirst().addClass('dlink_sub_level');
					sublevelmenu_ul.each(function(ul_item, ul_index){
						if(ul_index==index)
						{
							ul_item.slideIn().chain(function() {
								item.addClass('open');
							});
						}
						else if((item.getParent().getParent().getParent().hasClass('open') == false) || (sublevelmenu_li[ul_index].getParent() == item.getParent()))
						{
							ul_item.slideOut().chain(function() {
								if(sublevelmenu_li[ul_index].getLast().getStyle('height') == '0px')
								{
									sublevelmenu_li[ul_index].removeClass('open');
									sublevelmenu_li[ul_index].getFirst().removeClass('dlink_sub_level');
								}
							})
						}
					});
				}
				else
				{
					sublevelmenu_ul[index].slideOut();
				}
			}
			else
			{
				window.location.href=item.getFirst().getProperty('href');
			}
			e.stop();
		});
	});
	
	
	/** Tab Slide **/
	if ( $('edito-navigation-tabs') != undefined)
	{
		var toto = new mooRoquetteSlidingTabs('edito-navigation-tabs', 'edito-navigation-tabs-content', 'edito-navigation-tabs-item', {
			duration    : 200,
			progressBy  : 1,
			transition  : Fx.Transitions.Elastic.easeOut
		});

	}
	/**  **/
	
	/** HomePage SlideShow **/
	if ( $('homepage-pushes') != undefined || $('pushSlideShow') != undefined)
	{
		if(currentSlideShow || currentSlideShowNavigation) {
			var itemsHolder = $(currentSlideShow);
			var myItems = $$(itemsHolder.getElements('.slideshowItem'));
			
			//controls for slider
			var theControls = $(currentSlideShowNavigation);
			var numNavHolder = $(theControls.getElement('ul'));
			var thePlayBtn = $(theControls.getElement('.play_btn'));
			var thePrevBtn = $(theControls.getElement('.prev_btn'));
			var theNextBtn = $(theControls.getElement('.next_btn'));
			
			//create instance of the slider, and start it up		
			mySlider = new SL_Slider({
				slideTimer: 8000,
				orientation: 'none',
				fade: true,
				isPaused: false,
				container: itemsHolder,
				items: myItems,
				numNavActive: true,
				numNavHolder: numNavHolder,
				playBtn: thePlayBtn,
				prevBtn: thePrevBtn,
				nextBtn: theNextBtn
			});
			mySlider.start();			
		}
	}
	/**  **/
	
	/** SqueezeBox **/
		SqueezeBox.assign($$('a[rel=boxed]'));
	/**  **/
	/** Go Top **/
	/* scroll spy plugin / class */
	var ScrollSpy = new Class({
		
		/* implements */
		Implements: [Options,Events],
	
		/* options */
		options: {
			min: 0,
			mode: 'vertical',
			max: 0,
			container: window,
			onEnter: $empty,
			onLeave: $empty,
			onTick: $empty
		},
		
		/* initialization */
		initialize: function(options) {
			/* set options */
			this.setOptions(options);
			this.container = $(this.options.container);
			this.enters = this.leaves = 0;
			this.max = this.options.max;
			
			/* fix max */
			if(this.max == 0) 
			{ 
				var ss = this.container.getScrollSize();
				this.max = this.options.mode == 'vertical' ? ss.y : ss.x;
			}
			this.addListener();
		},
		
		addListener: function() {
			this.inside = false;
			this.container.addEvent('scroll',function() {
				var position = this.container.getScroll();
				var xy = this.options.mode == 'vertical' ? position.y : position.x;
				if(xy >= this.options.min && xy <= this.max) {
						if(!this.inside) {
							this.inside = true;
							this.enters++;
							this.fireEvent('enter',[position,this.enters]);
						}
						this.fireEvent('tick',[position,this.inside,this.enters,this.leaves]);
				}
				else {
					if(this.inside) 
					{
						this.inside = false;
						this.leaves++;
						this.fireEvent('leave',[position,this.leaves]);
					}
				}
			}.bind(this));
		}
	});
	
	if ( $('articles-slide') != undefined)
	{		
		var accordion2 = new Fx.Accordion( $$('dt.article-list-title'), $$('dd.article-list-content'), {
			opacity: false,
			onActive: function(toggler, element){
				toggler.removeClass('close');
				toggler.addClass('open');
			}.bind(this),
			onBackground: function(toggler, element){
				toggler.removeClass('open');
				toggler.addClass('close');
			}
		});
	}

	
	if ( $('gototop') != undefined)
	{		
		new SmoothScroll({duration:500});
		
		$('gototop').set('opacity','0').setStyle('display','block');
		
		var ss = new ScrollSpy({
			min: 20,
			onEnter: function(position,enters) {
				$('gototop').fade('in');
			},
			onLeave: function(position,leaves) {
				$('gototop').fade('out');
			},
			onTick: function(position,state,enters,leaves) {
			},
			container: window
		});
	}
	if ( $('form_subject') != undefined)
	{
		new FormCheck('form_contact');
	}
	if ( $('send-friend-form-tag') != undefined)
	{
		new FormCheck('send-friend-form-tag');
	}
	if ( $('form_documentationRequest') != undefined)
	{
		new FormCheck('form_documentationRequest');
	}
	/**  **/
	/** Affichage rollover sur liste news **/
	$$('.desc').setStyles({
		opacity: 0,
		display: 'block'
	});
	$$('.checkpoints li').each(function(el,i) {
		el.addEvents({
			'mouseenter': function() {
				el.getElement('div').fade('in');
			},
			'mouseleave': function() {
				el.getElement('div').fade('out');
			}
		});
	});
	
	/** Debug draggable popup **/
	if(typeof(showDebugPopup) != 'undefined')
	{
		var myContainer = $('page');
		
		var myDebugElement  = new Element('div', {id: 'debug_container'});
		var myDebugElementHandle  = new Element('div', {id: 'debug_container_handle'});
		var myDebugElementContent  = new Element('div', {id: 'debug_container_content'});
		
		
		myContainer.adopt(myDebugElement);
		myDebugElement.adopt(myDebugElementHandle);
		myDebugElement.adopt(myDebugElementContent);
		
		myDebugElementHandle.set('html', '<p class="clearfix"><span id="closeDebugBox"></span><span class="title">Roquette Debug Box</span></p>');
		
		$('closeDebugBox').addEvent('click', function(){
			myDebugElement.hide();
		});
		
		var index = 0;
		for (var i in debugArrayId) {
			if (index < 8){
				var myDebugObject  = new Element('p', {'class': 'object'});
				
				myDebugObject.set('html', '<span class="target">Cible :</span> ' + i + '<br /> <span class="value">Valeur :</span> ' + debugArrayId[i] + '<br />');
				myDebugElementContent.adopt(myDebugObject);
				index += 1;
			}
		}
		
		var dragElement = myDebugElement;
		var dragContainer = myContainer;
		var dragHandle = myDebugElementHandle;
		
		var myDrag = new Drag.Move(dragElement, { 
			container: dragContainer,
			handle: dragHandle
		});
	}
});
