var showHideNewsletter = function(oEventsManager)
{
	var displayBloc = function()
	{
		if($("newsletter").getStyle("display") == "none") {
			isOnNewsLetter = true;
			$("newsletter").setStyles({
				"display":"block"
			});
			$("newsletter").addEvent("mouseleave", leaveBlock);
			$("link_news").removeEvent("mouseenter",displayBloc);
 		}
	}

	var hideBlock = function()
	{
		if(inputFocus == false && !isOnNewsLetter) {
			$("newsletter").setStyles({
				"display":"none"
			});
			$("newsletter").removeEvent("mouseleave", leaveBlock);
			$("link_news").addEvent("mouseenter", displayBloc);
		}
	}

	var leaveBlock = function()
	{
		isOnNewsLetter = false;
		hideBlock.delay(200);
	}

	// variable pour vérifier si le champ est focus
	var inputFocus = false;
	// variable pour vérifier si la souris est sur la newsletter
	var isOnNewsLetter = false;
	var hideMsg = function()
	{
		$("top_right_newsletter_text").value = "";
		inputFocus = true;
		isOnNewsLetter = true;
	}

	var inputFalse = function()
	{
		inputFocus = false;
		if(!isOnNewsLetter) {
			leaveBlock();
		}
	}

	$("link_news").addEvent("mouseenter", displayBloc);
	$("top_right_newsletter_text").addEvent("focus",hideMsg);
	$("top_right_newsletter_text").addEvent("blur",inputFalse);
	
	var aRelative = $$('.header_top .access');
	if (aRelative.length == 1)
	{
		var oRelative = aRelative[0];
		
		var oPosition = $("link_news").getPosition(oRelative);
		$('newsletter').setStyle('left', oPosition.x+'px');
	}

	oEventsManager.fireEvent('nextStep');
}

/**
 *	Menu management
 *
**/
var addMenuEvents = function addMenuEvents(oEventsManager)
{
	var menu_timer, mouseEnterTimer;
	var aToggler = $$('.menu .section a.item');
	var aContent = $$('#menu_items .menu_item');
	var bIsMenuItem = false;
	
	var hide = function(iIndex)
	{
		bIsMenuItem = false;
		this.setStyle('display', 'none');
		aToggler.removeClass('selected');
		aToggler.removeClass('item_hover');
		
		aToggler.each(function(elem, index){
			var aImg = elem.getChildren('img');
			if (aImg.length > 0)
			{
				var oImg = aImg[0];
				oImg.src = oImg.src.replace('_hover.png', '.png');
			}
		});
		
	};
	
	if (aToggler.length > 0 && aContent.length > 0 && aToggler.length == aContent.length)
	{
		var aReferer = $$('.content .menu');
		var oReferer = aReferer[0];
		
		aToggler.each(function(elem, index){
			var aImg = elem.getChildren('img');
			var image= '';
			if (aImg.length > 0)
			{
				var oImg = aImg[0];
				image = oImg.src.replace('.png', '_hover.png');
				new Asset.image(image);
			}

			var mouseEnterHandler = function(iIndex)
			{
				$clear(mouseEnterTimer);
				if ( bIsMenuItem && index != iIndex )
				{
					mouseEnterTimer = mouseEnterHandler.delay(100, this, index);
				}
				else 
				{
						aToggler.removeClass('item_hover');
						$clear(menu_timer);
						bIsMenuItem = true;
						aToggler.each(function(elem, index){
							var aImg = elem.getChildren('img');
							if (aImg.length > 0)
							{
								var oImg = aImg[0];
								oImg.src = oImg.src.replace('_hover.png', '.png');
							}
						});
						aContent.setStyle('display', 'none');
						this.addClass('item_hover');
						aToggler.removeClass('selected');

						oContent = aContent[index];
						oContent.setStyle('display', 'block');
						this.addClass('selected');

						var aImg = elem.getChildren('img');
						if (aImg.length > 0)
						{
							var oImg = aImg[0];
							if (oImg.src.indexOf('_hover', 0) == -1)
								oImg.src = oImg.src.replace('.png', '_hover.png');
						}

						var contenu = oContent.getChildren('.contenu');

						if (contenu.length > 0)
						{
							var oSize = contenu[0].getSize();
							var oPosition = elem.getPosition(oReferer);
							oContent.setStyle('top', (oPosition.y-18)+'px');

							var shadow_right = oContent.getChildren('.droit');
							shadow_right.setStyle('height', (oSize.y-10)+'px');

							var shadow_bottom = oContent.getChildren('.bas');
							shadow_bottom.setStyle('width', (oSize.x-10)+'px');
						}
				}

			}

			elem.addEvent('mouseenter', mouseEnterHandler.bind(elem) );
			
			elem.addEvent('mouseleave', function(){
				$clear(menu_timer);
				$clear(mouseEnterTimer);
				menu_timer = hide.delay(500, aContent, index);
			});
		});
		
		aContent.each(
			function(elem, index)
			{
				elem.addEvent('mouseenter', 
					function()
					{
						$clear(menu_timer);
						$clear(mouseEnterTimer);
						bIsMenuItem = true;
					}
				);
				elem.addEvent('mouseleave', 
					function()
					{
						$clear(menu_timer);
						$clear(mouseEnterTimer);
						menu_timer = hide.delay(500, aContent, index);
					}
				);
			}
		);
	}
	
	oEventsManager.fireEvent('nextStep');
}

var addToolsToolTip = function addToolsToolTip( oEventsManager )
{
	var timer;
	var delay_time = 750;
	var hide = function(){
		this.setStyle('display', 'none');
	};
	
	var aToggler = $$('.menu ul.picto a');
	var aContent = $$('#tooltips .tools_tooltip');
	
	if (aToggler.length > 0 && aContent.length > 0 && aToggler.length == aContent.length)
	{
		aToggler.each(
			function(elem, index)
			{
				elem.addEvent('mouseenter', 
					function()
					{
						$clear(timer);
						aContent.setStyle('display', 'none');
						aContent[index].setStyle('display', 'block');
					}
				);
				elem.addEvent('mouseleave', function(){
					timer = hide.delay(delay_time, aContent);
				});
			}
		);
		
		aContent.each(
			function(elem, index)
			{
				elem.addEvent('mouseenter', 
					function()
					{
						$clear(timer);
					}
				);
				elem.addEvent('mouseleave', 
					function()
					{
						timer = hide.delay(delay_time, aContent);
					}
				);
			}
		);
	}
	
	oEventsManager.fireEvent('nextStep');
}

var siteSlideShow = function siteSlideShow( oEventsManager )
{
    if( $('slideshow_discover') )
    {
	new HorizontalSlideshow(
	    'slideshow_discover',
	    'content_discover',
	    'block_discover',
	    '',
	    {
		css:
		{
		    left_arrow		: 'left',
		    right_arrow		: 'right',
		    element		: 'display'
		},
		navigation : {
		    active:false
		},
		auto_scrolling : {
		    active:false
		}
	    }
	);
    }
    
    oEventsManager.fireEvent('nextStep');
}

var formNewsletter = function(oEventsManager)
{
	var aForm = $$('div.form_newsletter .text');
	var aValue = new Array();
	
	if (aForm.length > 0)
	{
		aForm.each(function(elem, index){
			aValue[index] = elem.get('value');
			elem.addEvent('focus', function(){
				if (this.value == aValue[index])
					this.value = '';
			});
			elem.addEvent('blur', function(){
				if (this.value == '')
					this.value = aValue[index];
			});
			elem.getParent().addEvent('submit', function(e)
			{
				window.open ("", "newsletter", "width=630,height=340,status=no,toolbar=no,menubar=no,resizable=yes");
				$('form_newsletter').target = "newsletter";
			});

		});
	}

	oEventsManager.fireEvent('nextStep');
}

var topScroll = function( oEventsManager )
{
	if ( $('top_page') )
	{
		var scroll = new Fx.Scroll(window);
	
		$('top_page').addEvent('click', function(){
			scroll.toTop();
		});
	}
	
	oEventsManager.fireEvent('nextStep');
}

var cufonAdd = function( oEventsManager )
{
	Cufon.replace('.page_content .top_content h2');
	Cufon.replace('.page_content .top_content h3');
	Cufon.replace('.page_content .links h5');
	
	oEventsManager.fireEvent('nextStep');
}

var addFavorites = function( oEventsManager )
{
	if ( $('carnetupdated') )
    {
        $('carnetupdated').setStyle('display','block');
		$('carnetupdated').setStyle('opacity', 0);
    }
		
	var oSave = new CookieCart(
		'add_save',
		{
			delete_link: '.retirer',
			delete_all_link: '.toutretirer',
			delete_container: '.ms-row',
			update_display: 'nb_save',
			update_notifier: 'carnetupdated',
			cookie_name : 'save_smb',
			info_separator : '|',
			nb_infos: 4,
			record_separator : '¤'
		}
	);
	oSave.display_counter();
	
	oEventsManager.fireEvent('nextStep');
}

/**
* newsletter
*
*/
var submitNewsLetter = function( oEventsManager )
{
 if ( $('form_newsletter') )
 {
	 var oForm = $('form_newsletter').getElement('form');
	 oForm.addEvent('submit', function(e)
	 {
		 window.open ("", "newsletter", "width=630,height=340,status=no,toolbar=no,menubar=no,resizable=yes");
		 oForm.target = "newsletter";
	 });
 }
	oEventsManager.fireEvent('nextStep');
}

var fixCopyright = function( oEventsManager )
{
	var aDiv = $$('.imageleft,.imageright,.imagecenter');
	if (aDiv.length > 0)
	{
		aDiv.each(function(elem){
			var aImg = elem.getElements('img');
			if (aImg.length == 1)
			{
				var oImg = aImg[0];
				var oSize = oImg.getSize();
				
				elem.setStyle('width', oSize.x);
			}
		});
	}
	
	oEventsManager.fireEvent('nextStep');
}

var lakeMeteo = function ( oEventsManager )
{
	function displayMeteoLakeTab(idObj)
	{
		idContent = idObj.replace('meteo_lake_', '');
	
		$$('#meteoLac .onglet').removeClass('actif');
		if($(idObj))
		{
			$(idObj).addClass('actif');
		}
		
		$$('#meteoLac .content').setStyle('display', 'none');
		$$('#meteoLac .'+idContent).setStyle('display', 'block');
	}
	
	if($('meteo_lake_today') && $('meteo_lake_tomorrow'))
	{
		$('meteo_lake_today').addEvent('click', function(){
			displayMeteoLakeTab(this.id);
		});
		
		$('meteo_lake_tomorrow').addEvent('click', function(){
			displayMeteoLakeTab(this.id);	
		});
	}
	
	oEventsManager.fireEvent('nextStep');
}

var infoDD = function ( oEventsManager )
{
	var aToggler = $$('.page .info_drilldown');
	var aTooltip = $$('.page .tooltip_DD');
	var timer;
	
	if ($('page'))
	{
		var oReferer = $('page');
			
		var hideTooltip = function (){
			this.setStyle('display', 'none');	
		}
		
		if (aToggler.length > 0 && aTooltip.length > 0 && aToggler.length == aTooltip.length)
		{
			aToggler.each(function(elem, i){
				elem.addEvent('mouseenter', function(){
					$clear(timer);
					var oPosition = elem.getPosition(oReferer);
					aTooltip[i].setStyle('display', 'block');
					var oSize = aTooltip[i].getSize();
					aTooltip[i].setStyle('top', (oPosition.y-oSize.y)-3 + 'px');
				});
				elem.addEvent('mouseleave', function(){
					$clear(timer);
					timer = hideTooltip.delay(1000, aTooltip[i]);
				});
			});
		}
	}
	oEventsManager.fireEvent('nextStep');
}

if ( oEventsManager && oEventsManager != null && oEventsManager != undefined )
{
	oEventsManager.registerEvent('addToolsToolTip', addToolsToolTip);
	oEventsManager.registerEvent('addMenuEvents', addMenuEvents);
	oEventsManager.registerEvent('showHideNewsletter', showHideNewsletter);
	oEventsManager.registerEvent('siteSlideShow', siteSlideShow);
	oEventsManager.registerEvent('formNewsletter', formNewsletter);
	oEventsManager.registerEvent('topScroll', topScroll);
	oEventsManager.registerEvent('cufonAdd', cufonAdd);
	oEventsManager.registerEvent('addFavorites', addFavorites);
	oEventsManager.registerEvent('submitNewsLetter', submitNewsLetter);
	oEventsManager.registerEvent('fixCopyright', fixCopyright);
	oEventsManager.registerEvent('lakeMeteo', lakeMeteo);
	oEventsManager.registerEvent('infoDD', infoDD);
}

// SETFONT FUNCTION
var font_size = 1; //base font-size
var font_size_MAX = 1.4;
var font_size_MIN = 0.8;
function setFontLarger()
{
    font_size = font_size + 0.1;
     if (font_size > font_size_MAX)
	font_size = font_size_MAX;
    SetFontSize();
}

function setFontSmaller()
{
    font_size = font_size - 0.1;
    if (font_size < font_size_MIN)
	font_size = font_size_MIN;
    SetFontSize();
}
function SetFontSize() {
    var oDoc = document.getElementById("page");
    if (oDoc)
	oDoc.style.fontSize = font_size + "em";
}

// POPUP FUNCTION
var zoomwindow;

function deplace(window,width,height) {
	var scr_x = screen.width;
	var scr_y = screen.height;
	if (is.v >= 4) {
		if (is.ns) {
			window.moveTo((scr_x/2)-(width/2), (scr_y/2)-(height/2));
		} else {
			window.moveTo(parent.window.screenLeft+300, parent.window.screenTop+50);
		}
	}
}
	
var movePopup = true;
var scrollPopup = 1;

function popup(url, width, height) {
	if (url != "") {
		var features;
		var windowName = "ZOOMWINDOW";
		
		movePopup = true;
		scrollPopup = 1;
		if (popup.arguments.length >= 4) {
			if (popup.arguments[3]) {
				movePopup = true;
			} else {
				movePopup = false;
			}
		}
		if (popup.arguments.length >= 5) {
			if (popup.arguments[4] == 0 || popup.arguments[4] == 1) {
				scrollPopup = popup.arguments[4];
			}
		}
		if (popup.arguments.length >= 6) {
			zoomwindow = popup.arguments[5];
			windowName = zoomwindow;
		} else {
			if (zoomwindow != null) {
				if (!zoomwindow.closed)
					zoomwindow.close();
			}
		}
		
		features = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=" + scrollPopup + ",resizable=1,width=" + width + ",height=" + height + "'";
		
		zoomwindow = window.parent.open(url,windowName,features);
		
		if (zoomwindow != null) {
			if (is.v >= 3) {
				zoomwindow.focus();
			}
			if (movePopup)
			{
				deplace(zoomwindow,width,height);
			}
		}
	}
}

var i = 0;
var s = 0;
function resizePopup()
{
	if (navigator.appName == 'Netscape')
		i = 40;
	if (window.navigator.userAgent.indexOf("SV1") != -1)
		s = 20; //This browser is Internet Explorer in SP2.
	if (document.images[0])
		window.resizeTo(document.images[0].width + 30, document.images[0].height + 60 - i + s);
	self.focus();
	if (document.images[0])
	{
		imgHeight = document.images[0].height + 120 - i;
		imgWidth = document.images[0].width + 30;
		var height = screen.height;
		var width = screen.width;
		var leftpos = width / 2 - imgWidth / 2;
		var toppos = height / 2 - imgHeight / 2; 
		window.moveTo(leftpos, toppos);  
		window.resizeTo(imgWidth, imgHeight);
	}
}

window.addEvent('domready', function(){
	/**
	 * Cancel onclick Bubble event
	 * @return void;
	 */
	function doSomething(e)
	{
		if (!e) var e = window.event;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
	}
	
	if( $$('a.web') )
	{
		$$('a.web').each(
			function(element)
			{
				element.onclick = doSomething;
			}
		);
	}
	
	if( $$('a.mail') )
	{
		$$('a.mail').each(
			function(element)
			{
				element.onclick = doSomething;
			}
		);
	}
	
});