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 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');
	Cufon.replace('#endirect 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 .list_filters .title');
	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)+6 + 'px');
				});
				elem.addEvent('mouseleave', function(){
					$clear(timer);
					timer = hideTooltip.delay(1000, aTooltip[i]);
				});
			});
		}
	}
	oEventsManager.fireEvent('nextStep');
}

var displayEndirect = function ( oEventsManager )
{
	// Disappear first time on site
	if( $('displayDirect') )
	{
		$('endirect').setStyle('height', $('slide_onglet').getSize().y.toInt()+'px');
		var time = setTimeout(moveRight, 5000);
	}
	else
		moveRight();

	// (Dis)Appear on click
	$('onglet_direct').addEvent('click', function() {
		if( $('slide_onglet').getStyle('right').toInt() == 0 )
			moveRight();
		else
			moveLeft();
	});

	// Move with scroll
	var iEndirectPosition = $('endirect').getPosition();
	var oEndirectSize = $('endirect').getSize();
	var iEndirectContainer = $('page').getStyle('height');

	// Rechargement de la page
	var iScrollY = window.getScroll().y;
	if ( iScrollY > (iEndirectPosition.y-50) )
	{
		var iNewPos =  (iScrollY.toInt() + 50);
		if ( iNewPos + oEndirectSize.y < iEndirectContainer.toInt() - 15 )
			$('endirect').setStyles({
				'top' : iNewPos + 'px',
				'margin-top' : '15px'
			});
	}

	window.addEvent('scroll', function()
	{
		if ( window.getScroll() )
		{
			iScrollY = window.getScroll().y;
			if ( iScrollY > (iEndirectPosition.y-50) )
			{
				iNewPos =  (iScrollY.toInt() + 50);
				if ( iNewPos + oEndirectSize.y < iEndirectContainer.toInt() - 15 )
					$('endirect').setStyles({ 'top' : iNewPos + 'px', 'margin-top' : '15px'});
			}
			else
				$('endirect').setStyles({'top' : 50+'px', 'margin-top' : 0});
		}
	});

	// add tips on picto
	if( $$('.map_content') )
	{
		$$('.endirect_picto_tips').each( function(el){
			var oParent = el.getParent();

			//split
			var sSplit = el.alt.split(':');
			el.alt = "";
			if ( sSplit.length > 1 )
			{
				oParent.store('tip:title', sSplit[0].trim());
				oParent.store('tip:text', sSplit[1].trim())
			} else {
				oParent.store('tip:title', sSplit[0].trim());
				oParent.store('tip:text', ' ');
			}

			oTips = new Tips(oParent);
		});
	}

	oEventsManager.fireEvent('nextStep');
}

// Movements for the endirect bloc
function moveRight()
{
	var oFxDirect = new Fx.Tween($('slide_onglet'), {
		onComplete : function()
		{
			$('img_direct').set('src','img/'+$('langDirect').value+'/onglet_open.png');
			$('endirect').addClass('hide');
			$('endirect').setStyle('height',$('onglet_direct').getSize().y.toInt()+'px');
		}
	});

	oFxDirect.start( 'right', -238 );
}

function moveLeft()
{
	var oFxDirect = new Fx.Tween($('slide_onglet'));

	$('endirect').removeClass('hide');
	$('endirect').setStyle('height',$('slide_onglet').getSize().y.toInt()+'px');
	$('img_direct').set('src','img/'+$('langDirect').value+'/onglet_close.png');
	oFxDirect.start( 'right', 0 );
}

var manageEndirect = function ( oEventsManager )
{
	// Slideshow de pictos
    if( $('slideshow_direct') )
    {
		new HorizontalSlideshow(
		    'slideshow_direct',
		    'content_direct',
		    'block_direct',
		    '',
		    {
				css:
				{
				    element		: 'display_picto'
				},
				navigation : {
				    active:false
				},
				auto_scrolling : {
				    active:true,
					period: 3000,
					period_restart: 10000
				}
		    }
		);
    }

    // Ajout du clic sur la map complète la première fois
	// Plus de blocs pour la météo, donc clic sur ces blocs
	if( $$('.map_content.on .day_content.on')[0] )
		$$('.day_content.on')[0].addEvent('click', sendPage);
	// La vérification finale est pour le cas où aucune météo n'est affichée
	else if( $$('.map_content.on')[0] && $$('.map_content.on .content_detail a')[0] && !$$('.map_content.on .day')[0] )
		$$('.map_content.on')[0].addEvent('click', sendPage);
	// Clic on lake weather
	else if( $$('.map_content.meteo_lake') )
		$$('.map_content.meteo_lake').addEvent('click', sendPage);

    // Suppression de l'évènement lors du changement de bloc
	$$('.onglet_info .info').addEvent('click', function( element ) {
		if( !this.hasClass('on') )
		{
			$$('.map_content.on').removeEvents();
			$$('.map_content.on').removeClass('on');
			$$('.onglet_info .info').removeClass('on');
			this.addClass('on');
			if( $$('.map_content')[$$('.onglet_info .info').indexOf(this)] )
				$$('.map_content')[$$('.onglet_info .info').indexOf(this)].addClass('on');

			if( $$('.onglet_info .info').indexOf(this) == 0 )
				$$('.map_main').setStyle('background-position', 'left top');
			else
				$$('.map_main').setStyle('background-position', 'left bottom');

			if( $$('.map_content.on .day_content.on')[0] )
				$$('.day_content.on')[0].addEvent('click', sendPage);
			// La vérification finale est pour le cas où aucune météo n'est affichée
			else if( $$('.map_content.on')[0] && $$('.map_content.on .content_detail a')[0] && !$$('.map_content.on .day')[0] )
				$$('.map_content.on')[0].addEvent('click', sendPage);
			// Clic on lake weather
			else if( $$('.map_content.meteo_lake') )
				$$('.map_content.meteo_lake').addEvent('click', sendPage);
		}
	});

    oEventsManager.fireEvent('nextStep');
}

var updateEndirect = function ( oEventsManager )
{
    // Click on weather / info
	$$('.map_content .day a').addEvent('click', function( element ) {
		if( !this.hasClass('on') )
		{
			$$('.map_content .day a').removeClass('on');
			this.addClass('on');
		}

		// hide all content for all days and display selected one
		var oDayContent = $$('.day_content');
		var sIdLink = this.id;
		var sIdContent = sIdLink.replace( 'link_', 'content_' );

		oDayContent.each( function(e){
			if( e.hasClass('on') )
				e.removeClass('on');

			if( e.get('id') == sIdContent )
				e.addClass('on');
		});
	});

    oEventsManager.fireEvent('nextStep');
}

if ( oEventsManager && oEventsManager != null && oEventsManager != undefined )
{
	oEventsManager.registerEvent('addToolsToolTip', addToolsToolTip);
	oEventsManager.registerEvent('addMenuEvents', addMenuEvents);
	oEventsManager.registerEvent('showHideNewsletter', showHideNewsletter);
	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);
	oEventsManager.registerEvent('displayEndirect', displayEndirect);
	oEventsManager.registerEvent('manageEndirect', manageEndirect);
	oEventsManager.registerEvent('updateEndirect', updateEndirect);
}

function sendPage()
{
	var sLink = '';
	if( $$('.map_content.on .content_detail a')[0] )
		sLink = $$('.map_content.on .content_detail a')[0].get('href');
	else
		sLink = $$('.map_content.on .link_lake')[0].get('html');

	// Different behaviour on page carte_interactive
	if( $$('.menu_carto')[0] )
	{
		if( sLink.indexOf('#') > -1 )
		{
			var aLink = sLink.split('#');

			switch( aLink[1] )
			{
				case 'alpin' :
				case 'nordique' :
					$('snow').fireEvent('click');
					break;
				default :
					$(aLink[1]).fireEvent('click');
					break;
			}
		}
		else
			$('meteo').fireEvent('click');

		moveRight();
	}
	else
	{
		var oUrl = new URI(sLink);
		oUrl.go();
	}
}

// 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;
			}
		);
	}

});
