﻿var timeoutBackToCurrentMenu;

$(function() {
	//MENU :
	//on cache toutes les sous listes et on les repostionne
	$(".sous_menu").each( function() { $(this).addClass('displayed-none'); $(this).css('top', '70px');} );
	$("#spacer_no_js").remove();
	/* ROLL OVER SUR LE MENU */
	$("#li_presse .sous_menu").each( function() { $(this).css('top', '57px');} );
	// on enregistre le comportement sur le roll over et le focus, pour afficher les listes de niveau 2
	$(".lien-over").focus(
		function() {	showSubnav(this); }
	);
	$(".lien-menu").mouseenter(
		function() {	showSubnav($(this).children('.lien-over')); }
	);
	
	// pour revenir au menu de la rubrique en cours lorsqu'on roll out du menu
	$("#menu").mouseleave(	function() { timeoutBackToCurrentMenu = setTimeout('backToCurrentMenu()', 2000); });

	/************************************
	 * LISTE DES THEMATTIQUES
	*************************************/
	$('#bloc_liste_thematiques').toggle(false);
	//ouverture du bloc
	$('#bt_ouvre_liste_thematiques').click(function(e) {
		e.preventDefault();
		$('#bloc_liste_thematiques').toggle(true);
		//focus sur le premier élément :
		$('#check_cp').focus();
	});
	//fermeture du bloc
	$('#bt_fermer_liste_thematiques').click(function(e) {
		e.preventDefault();
		$('#bloc_liste_thematiques').toggle(false);
		//focus sur le input mail :
		$('#alerte_mail_input').focus();
	});	

	/************************************
	 * CENTRAGE VERTICAL de la vignette des blocs "fiche repères" :
	*************************************/	
	$('.bloc_fiche_repere_vignette').each( function() {
		//le bloc de texte :
		var bloc_texte = $(this).parent().children('.bloc_fiche_repere');
		//hauteur du texte
		var height_bloc_texte = bloc_texte.height();
		height_bloc_texte += parseInt(bloc_texte.css('margin-top')) + parseInt(bloc_texte.css('padding-top'));
		
		//hauteur de la vignette
		var height_bloc_vignette = $(this).height();
		
		//on calcule le margin top :
		var top_vignette = Math.max(0, (height_bloc_texte - height_bloc_vignette) / 2 + 4);
		//modification margin vignette :
		$(this).css('margin-top', top_vignette);
	});


	/************************************
	 * PAGE CONTACT : liste des objets  du message
	*************************************/
	//au chargement on cache le bloc et on affiche  le bouton pour l'ouvrir
	$('#bloc_liste_objets_message').css('position','absolute');
	$('#bloc_liste_objets_message').css('top', '-10000000px');

	$('#bt_ouvre_liste_objets_message').css('position', 'relative');
	$('#bt_ouvre_liste_objets_message').css('top', '0');

	//ouverture du bloc
	$('#bt_ouvre_liste_objets_message').click(function(e) {
		e.preventDefault();
		$('#bloc_liste_objets_message').css('top', '0px');
	
		//au clic d'un des lien on met le "rel" dans le input hidden afin que le form envoie bien l'info
		// et on ferme la liste puis on indique le choix fait dans la liste fermée
		$('#liste-objets-message a').each( function() {
				$(this).click(function(e) {
					e.preventDefault();
					$('#objet_message').val($(this).attr('rel'));
					$('#bloc_liste_objets_message').css('top', '-10000000px');	
					$('#bt_ouvre_liste_objets_message').html($(this).html());	
				});
		});
	});
	//fermeture du bloc
	$('#bt_fermer_liste_objets_message').click(function(e) {
		e.preventDefault();
		$('#bloc_liste_objets_message').css('top', '-10000000px');		
	});

	/************************************
	 * FOCUS ET BLUR SUR LES INPUT 
	*************************************/
	$('#newsletter_mail_input').focus(function(e) { if($(this).val() == 'Adresse email') $(this).val(''); });
	$('#newsletter_mail_input').blur(function(e) { if($(this).val() == '') $(this).val('Adresse email'); });
	$('#alert_mail_input').focus(function(e) { if($(this).val() == 'Adresse email') $(this).val(''); });
	$('#alert_mail_input').blur(function(e) { if($(this).val() == '') $(this).val('Adresse email'); });
	$('#input_euribor').focus(function(e) { if($(this).val() == '(JJ/MM/AAAA)') $(this).val(''); });
	$('#input_euribor').blur(function(e) { if($(this).val() == '') $(this).val('(JJ/MM/AAAA)'); });
	/* DEVOTEAM */
	$('#unsub_mail_input').focus(function(e) { if($(this).val() == 'Adresse email') $(this).val(''); });
	$('#unsub_mail_input').blur(function(e) { if($(this).val() == '') $(this).val('Adresse email'); });
	/* /DEVOTEAM */

	/************************************
	 * ONGLETS COLONNE DE DROITE
	*************************************/
	$('#contenu_onglet2').toggle(false);
	$('#titre_1').attr('title', 'Onglet actif');
	$('.onglet').click( function(e) {
		e.preventDefault();
		$(".contenu_bloc").each(function() { $(this).css('display', 'none'); });
		var id_block = $(this).attr('rel');
		var id = $(this).parent().attr('id');
		//on affiche le bloc voulu
		$('#'+id_block).css('display', 'block');
		//on retire les classes et on ajoute la bonne (pour changer le background des titres)
		$('#titre_js').removeClass('titre_1');
		$('#titre_js').removeClass('titre_2');
		$('#titre_js').addClass(id);
		//on met le title "onglet actif" sur le bon onglet
		$('.onglet').each( function() { $(this).attr('title', '') });
		$(this).attr('title', 'Onglet actif');
	});

	
	/************************************
	 * BARRES COMMUNAUTAIRES
	*************************************/
	//bind l'event sur le lien d'ouverture
	$('.lien_partagez').click(function(e) {
		e.preventDefault();
		$(this).parent().siblings('.barre_partagez_ouvert').toggle(true);
	});
	//bind l'event sur le lien de fermeture
	$('.lien_partagez_fermer').click(function(e) {
		e.preventDefault();
		$(this).parent().toggle(false);
	});
	//on cache les blocs partagez ouverts par défaut au chargement de la page :
	$('.barre_partagez_ouvert').toggle(false);

	
	/************************************
	 * ONGLETS DE NAV DE NIVEAU 4
	*************************************/
	//on ajoute une class au chargement pour cacher la liste si elle est trop longue
	$('.liste_onglets').each( 
			function() { 
				//on regarde le nombre de "li" contenu dans la liste : 
				var lis = $(this).children('li');
				//si plus de 5 c'est trop long 
				if(lis.length > 5)
				{
				//	$(this).parent().addClass('liste_onglets_wrapper');
					//il faut aussi faire apparaitre les flèches :
					var div_fleche = $(this).parent().siblings('.liste_onglets_fleches').first();
					div_fleche.toggle(true);
					//enfin on doit binder les clics sur les flèches :
					var id_liste = $(this).attr('id');
					div_fleche.children('.to_left').click(function(e) { 		e.preventDefault();  	});
					div_fleche.children('.to_right').click(function(e) { 		e.preventDefault();  	});
					div_fleche.children('.to_left').mousedown(function(e) { 	scrollOnglets(id_liste, 1); 	});
					div_fleche.children('.to_right').mousedown(function(e) { 	scrollOnglets(id_liste, -1); 	});
					div_fleche.children('.to_left').mouseup(function(e) { 		scrollOnglets(id_liste,0); 	});
					div_fleche.children('.to_right').mouseup(function(e) { 		scrollOnglets(id_liste, 0); 	});
				}
			}
	);
	

	/************************************
	 * IMAGE MAP présence régionale
	*************************************/
	if($('#carte_france'))
		initMap($('#carte_france'), $('#carte_france_image'), "/library/img/fbf/");

	/************************************
	 * PAGE DE RECHERCHE, clic sur les checkboxes : ajout d'une classe selected
	*************************************/	
	if($('#rechercher_recherche'))
	{
		$('#rechercher_recherche input[type=checkbox]').click( function(e) { 
				if($(this).is(':checked')) 
					$(this).parent().addClass('check_selected');
				else
					$(this).parent().removeClass('check_selected');
			});
	}	
});

/*******************************************
 * Ré affiche le menu de la rubrique active
 *******************************************/
function backToCurrentMenu()
{
	$(".lien-menu").each(function() { $(this).removeClass('selected'); });
	$('#' + current_menu_selected).addClass('selected');
//	$("#" + current_menu_selected + "  a:first").focus();
}

/*******************************************
 * Affiche la sous liste d'un item de menu
 *******************************************/
function showSubnav(object)
{
		//on supprime le retour au menu de la rubrique en cours :
		clearTimeout(timeoutBackToCurrentMenu);
		
		//au roll over de chaque lien on enlève la classe "selected" sur tous les parents et on vide le title
		$(".lien-menu").each(function() { 
			$(this).removeClass('selected'); 
			// DEVOTEAM : pour ne pas vider le title défini $(this).attr('title', ''); 
		});
		//et on l'ajoute au lien survolé + ajout du title Rubrique survolée:
		$(object).parent().addClass('selected');
		/***** DEVOTEAM : laisser le title défini
		if($(object).parent().attr('id') != current_menu_selected)
			$(object).parent().attr('title', 'Rubrique survolée');
		*****/
}

/*******************************************
 * Gère le déplacement horizontal des onglets de niveau 4
 *******************************************/
scrollOngletsTO = 0;
function scrollOnglets(div_id, sens) {
	if (sens == 0) {
		clearTimeout(scrollOngletsTO);
	} else {
		var obj_to_scroll = document.getElementById(div_id);
		var step = 30;
		var max  = 20;
		var lis  = obj_to_scroll.getElementsByTagName('li');
		for (var i=0; i<lis.length; i++) {
			max += lis[i].offsetWidth;
		}
		max = obj_to_scroll.parentNode.offsetWidth - max;
		if (isNaN(parseInt(obj_to_scroll.style.left))) obj_to_scroll.style.left = "0px";
		var nextx = Math.min(0, Math.max(max, parseInt(obj_to_scroll.style.left) + (step*sens)));
		obj_to_scroll.style.left = nextx + "px";
		scrollOngletsTO = setTimeout("scrollOnglets('"+div_id+"',"+sens+")", 50);
	}
}

/*******************************************
 * Gère l'image map de la france sur la page 22
 *******************************************/
//initialise les roll over sur l'image map
var original_map_image = '';
function initMap(map_element, image_element, chemin_images) {
	original_map_image = image_element.attr('src');
	//on supprime le bloc contenant l'alternative aux liens de l'image :
	$('#alternative_map_france').remove();
	//on place les comportements de changement d'image sur les onfocus de chaque area
	map_element.children('area').each( function() {
			//preload
			var image = new Image();
			image.src = chemin_images + '' + $(this).attr('id') + '.jpg';
			//assignement des focus et blur
			$(this).mouseenter(function(e) { changeMap(image_element, chemin_images + '' + $(this).attr('id') + '.jpg'); });
			$(this).mouseleave(function(e) { restoreMap(image_element); });
		});
}
//redonne a la carte son image de départ
function restoreMap(map_element)
{
	map_element.attr('src', original_map_image);
}
//change l'image de la carte, appelé sur les focus des régions
function changeMap(map_element, new_image_path)
{
	map_element.attr('src', new_image_path);
}


/************* ajouter aux favoris ****************/
function bookmark(title,url)
{
	if (window.sidebar) // firefox
		window.sidebar.addPanel(title, url, "");
	else if(window.opera && window.print){ // opera
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',title);
		elem.setAttribute('rel','sidebar');
		elem.click();
	} 
	else if(document.all) // ie
		window.external.AddFavorite(url, title);
}


/******* Cookie *******/
/***
 * create a cookie
 * @param name : cookie's name
 * @param value : cookie's value
 * @param days : expiration
 ***/
function createCookie(name,value,days,path,domain,secure){
	var _expires = "";
	var _path = "";
	var _domain = "";
	var _secure = "";
	// expires
	if (days){
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		_expires = "; expires="+date.toGMTString();
	}
	// path
	if (path){
		_path = "; path="+path;
	}
	// domain
	if (domain){
		_domain = "; domain="+domain;
	}
	// secure
	if (secure){
		_secure = "; secure";
	}
	document.cookie = name+"="+value+_expires+_path+_domain+_secure;
}


/***
 * read a cookie
 * @param name : cookie's name
 * return {string} cookie's value
 ***/
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

/***
 * erase a cookie
 * @param name : cookie's name
 ***/
function eraseCookie(name,path,domain) {
	createCookie(name,"",-1,path,domain);
}

function checkCookie(pollId) {
	if(readCookie("poll_"+pollId) == null ) {
		createCookie("poll_"+pollId,pollId, 365, '/');
	} else {
		return false;
	}
}

/******* validation email newsletter, alerts, contact and unsubscribe ******/
function isValidEmail(emailAddress) {
	var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3} \])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
	return re.test(emailAddress);
}

function validEmail(type, language) {
	// type has to be 'newsletter' or 'alert' or 'contact' or 'unsub'
	var msg = language=='EN' ? 'Invalid email address, please retry.' : 'Adresse email invalide, merci de r&eacute;essayer.';
	if( isValidEmail( $('#'+type+'_mail_input').val() )==false) {
		$('#'+type+'_message').html(msg);
		return false;
	}
	return true;
}

/******* validation emails recommend an article ******/
function validRecommendEmails(type, language) {
	var msg = language=='EN' ? 'Invalid email address, please retry.' : 'Adresse email invalide, merci de r&eacute;essayer.';
	if(isValidEmail($('#EmailSendTo').val())==false) { $('#'+type+'_message').html(msg); $('#EmailSendTo').focus(); return false; }
	if(isValidEmail($('#EmailSentFrom').val())==false) { $('#'+type+'_message').html(msg); $('#EmailSentFrom').focus(); return false; }
	return true;
}

/*************** dernière newsletter en popup ************************/
function popupNewsletter(url) {
	window.open(url,'Pop','width=658, resizable=1, toolbar=0, scrollbars=1, status=0, menubar=0,top=10, left=10');
}

/*********** FF 28/09/2010 Pour recherche Taux*****************/
function checkDate(date) {
      var myDate = document.forms["Taux"].DateChoice.value;
      var amax=2050; // année maxi
      var j=(myDate.substring(0,2));
      var m=(myDate.substring(2,4));
      var a=(myDate.substring(4));
      if ( isNaN(j) |  j < 1 | j > 31 ) return false;
      if (isNaN(m) |  m < 1 | m > 12 ) return false;
      if (isNaN(a) |  a < date | a > amax ) return false;
	return true;
}


function goToNewDateFBF(Masque,date,amin){
	var myDate = document.forms["Taux"].DateChoice.value;
	if( checkDate( date ) == true) location.href='/AFB/Taux.nsf/(TauxWebFBF)/'+myDate+Masque+'?OpenDocument'
	else alert('la date entrée est incorrecte, elle doit être au format JJMMAAAA et supérieure à '+ amin);
}
/******* Fin FF 28/09/2010 ******/
