PageSourceSearch

https://www.port-valais.ch/plugin/menu/js/menu.js?_v=4

js port-valais.ch collected 2026-10-02 19:32:18 UTC 20,946 bytes, 589 lines download raw bytes

1function changeMenuInstance(cbo)
2{
3	for(i=0;i<cbo.options.length;i++)
4	{
5		var obj = document.getElementById("map_" + cbo.options[i].value);
6		if(obj.id == "map_" + cbo.value)
7			obj.style.display="";
8		else
9			obj.style.display="none";
10	}
11}
12
13/* Fonction anonyme auto appelée pour déclencher le fonctionnement du menu */
14(function() {
15	function workoutCopy()
16	{
17		$("#leftPanel ul > li > a.copy").each(function(){
18			var $me = $(this);
19			$me.closest("ul").prev("a").css("cursor", "pointer").click(function(evt){ evt.preventDefault(); $me[0].click(); });
20		});
21	}
22	
23	function moveMenu()
24	{
25		var $leftPanel = $("#leftPanel");
26    	var $menuHolderInLeftPanel = $(".menuHolder", $leftPanel);
27    	var $menuHolderInMainPanel = $("#mainPanel .menuHolder").not($menuHolderInLeftPanel);
28    	
29    	if($leftPanel.is(":visible"))
30    	{
31    		if($menuHolderInLeftPanel.is(":empty"))
32    		{
33    			$menuHolderInLeftPanel.append($menuHolderInMainPanel.children().remove()).find("ul").removeAttr("style");
34    			neutralizeLeftPanelLink();
35    			workoutCopy();
36    			responsiveMenuOpen();
37    		}
38    	}
39    	else if($menuHolderInMainPanel.is(":empty"))
40    	{	
41    		$menuHolderInMainPanel.append($menuHolderInLeftPanel.children().remove()).find("ul").removeAttr("style");;
42    		setTimeout(function(){  $menuHolderInMainPanel.trigger("runmenuanim"); }, 200);
43    	}
44    };
45    
46    function neutralizeLeftPanelLink()
47    {
48    	$("#leftPanel .menuHolder li a[href='#']").click(function(e){ e.preventDefault(); }).css("cursor", "default"); //Empeche les liens avec un "#" de se déclencher
49    }
50    
51    function iconeMenu()
52    {
53    	var $leftPanel = $("#leftPanel");
54    	var $mainPanel = $("#mainPanel");
55    	var $menuIcone = $("#menuIcone");
56    	$menuIcone.click(function(evt){
57    		evt.preventDefault();
58    		if($mainPanel.hasClass("open"))
59    		{
60    			$("html, body").removeClass("nooverflow");
61    			$mainPanel.css("left",0).removeClass("open").find(">.neutralizer").remove();
62    			$leftPanel.removeClass("scrolling");
63    			unswipe("body");
64    		}
65    		else
66    		{
67    			$("html, body").addClass("nooverflow");
68    			$("<div class=\"neutralizer\"></div>").click(function(){ $menuIcone.trigger("click"); }).appendTo($mainPanel);
69    			$mainPanel.addClass("open").css("left",$leftPanel.width());
70    			$leftPanel.addClass("scrolling");
71    			swipe("body", function(){ $menuIcone.trigger("click"); });
72    		}
73    	});
74    	
75    	$(window).resize(function(){ if($mainPanel.hasClass("open")) $menuIcone.trigger("click"); });
76    };
77    
78    
79    $(window).resize( moveMenu );
80    $(document).ready( function(){ neutralizeLeftPanelLink(); workoutCopy(); responsiveMenuOpen(); moveMenu(); iconeMenu();  });
81})();
82
83
84/*Fonction qui permet de gérer l'ouverture du menu en version responsive*/
85function responsiveMenuOpen() {
86		
87	/*Met un toogle d'ouverture sur tous les a*/
88	$('#leftPanel ul.menu0 a').click(function(){
89		
90		var lastChar = this.href;
91		lastChar = lastChar.slice(- 1);
92
93		//Rem. Si le UL est déjà ouvert et qu'il y a une URL sur le menu on ne relance pas le toogle
94		if(!($(this).next('ul').is(":visible") && lastChar !="#"))
95			$(this).next('ul').slideToggle();
96	});
97
98	//Réouverture des menus sélectionnés
99	$('#leftPanel a.menuselected').each(function(){
100		
101		$(this).next('ul').css("display","block");
102		
103	});
104}
105
106function fireMenuAnim(psIdMenu, poCallbak)
107{
108	if($(".menuHolder " + psIdMenu).length==1)
109		$(".menuHolder").on("runmenuanim", poCallbak);
110	else
111		poCallbak();
112}
113
114/*------------------------------------------------------------------------------------------------*/
115/*GESTION DU SEPARATOR :																		  */
116/* si on veut supprimer un separator (bordure ou background) du dernier menu                      */
117/* $(nomMenu + " li.menu0:last-child").css("border-right","0px");                                 */
118/* on enlève par style la propriété qui affiche le separator                                      */
119/*------------------------------------------------------------------------------------------------*/
120
121/*--------------------------------------------------------*/
122/*FONCTION POUR L'OUVERTURE DU MENU DEROULANTE VERS LE BAS*/
123/*--------------------------------------------------------*/
124function animeMenu(nomMenu,pi_LevelNot,$pi_nbreLevel)
125{
126	var nomMenu = "#"+nomMenu;
127	var margeDroite = 5;
128	
129	var fAnim = function(){
130		$(nomMenu+" li.menu0").hover(function(){
131			
132				$(nomMenu + " #" + this.id + " > a").addClass("menuHover");
133			
134				//Permet de faire dérouler le menu depuis le début du parent, on crée le décalage
135				var hauteurParent = - ($(this).height()) + "px";
136				var largeurParent = $(this).width() + margeDroite + "px";//5= petite marge sur la droite
137				$(this).not(".menu"+ pi_LevelNot).find(">ul").css("margin-top","0px" );
138				$(this).not(".menu"+ pi_LevelNot).find(">ul").css("margin-left",largeurParent );
139				$(this).not(".menu"+ pi_LevelNot).find(">ul").css("top",$(this).position().top);//On ne met pas "$("#ul" + this.id)" car pour le menu horizontal cela ne déroule pas comme on veut
140				
141				//Permet d'afficher le sous-menu au bon endroit. Ex. ne pas dépasser la fenêtre
142				var alevel =  this.className.split(" ");
143				var level = alevel[0].replace("menu","").trim();
144		
145				var tailleFenetre = $(window).width();
146				var positionParent = parseFloat($(this).offset().left);
147				var tailleparent = (level > 0)?$(this).outerWidth() + margeDroite:0;
148				var tailleEnfant = ($(nomMenu + " #ul" + this.id).outerWidth())?parseFloat($(nomMenu + " #ul" + this.id).outerWidth()):0;
149
150				/*if(positionParent + tailleparent + tailleEnfant > tailleFenetre)
151					{
152						if(level > 0)
153							$(nomMenu + " #ul" + this.id).css("right",largeurParent);
154						else
155							$(nomMenu + " #ul" + this.id).css("right",0);
156					}
157				else
158					$(nomMenu + " #ul" + this.id).css("right","auto");*/
159				//Force à gauche
160				/*var positionPremierMenu = $("#menuMain li.menu0:nth-child(1)").position();
161				positionPremierMenu = positionPremierMenu.left;*/
162				//positionPremierMenu = "calc(50% - 270px)";//540 = 250(col1) + 40(margin)+250(col2)
163				
164				$(nomMenu + " #ul" + this.id).css("padding-left","35%").css("left",0);
165				
166				//Decalage du sous-menu pour éviter que ça ne passe plus sur X colonnes
167				if($pi_nbreLevel > 1)
168					{
169					if($(nomMenu + " #ul" + this.id + " > li").length >= $pi_nbreLevel)
170						{
171						var tailleMaxSousMenu = $(nomMenu + " li.menu1:first").width() * $pi_nbreLevel;
172						if($(nomMenu + " #ul" + this.id).width() < tailleMaxSousMenu)
173							$(nomMenu + " #ul" + this.id).css("right",0);
174						}
175						
176					}
177				
178				//Ajout de l'effet déroulant
179				$(nomMenu +" #ul" + this.id).stop(true,true).delay("200").slideDown("slow");	
180				
181				//Ajout de l'effet déroulant
182				var tailleSousMenu = $(nomMenu +" #ul" + this.id).height();
183			
184				if(tailleSousMenu!=null)
185				{
186				
187					if(tailleSousMenu <= 556)
188						tailleSousMenu = 556;
189					else
190						tailleSousMenu = tailleSousMenu + 50;
191						
192					$("#mainSousMenu").animate( { height : tailleSousMenu+"px" } , 200, function(){
193						$("#mainSousMenu").slideDown("fast");
194						$(".divWidth100Percent.divSousMenu").css("box-shadow","0px 20px 21.6px 2.4px rgba(0, 0, 0, 0.18)");
195					});
196					
197					/*Ancienne version$("#mainSousMenu").css("height",tailleSousMenu+"px");
198					$("#mainSousMenu").stop(true,true).delay("100").slideDown("slow");
199					$(nomMenu +" #ul" + this.id).stop(true,true).delay("100").slideDown("slow");*/
200					
201					//Ajout de l'event pour fermer le sous-menu
202				
203					$(nomMenu + " #ul" + this.id + " > .close").click(function(){
204						$(this).parent().css("display","none");  
205						$("#mainSousMenu").css("height","0px");
206						$(".divWidth100Percent.divSousMenu").css("box-shadow","none");
207					})
208				
209				}
210			else
211				{
212				$("#mainSousMenu").css("height","0px");
213				$(".divWidth100Percent.divSousMenu").css("box-shadow","none");
214				}
215		} , 
216	
217		function(){
218				$(nomMenu + " #ul" + this.id).stop(true,true).delay("200").slideUp("fast");  
219				$(nomMenu + " #" + this.id + " > a").removeClass("menuHover"); 	
220				
221				
222		});
223		
224		$(nomMenu+" li.menu2").hover(function(){
225			
226			$(nomMenu + " #" + this.id + " > a").addClass("menuHover");
227		},function(){
228			$(nomMenu + " #" + this.id + " > a").removeClass("menuHover"); 	
229		});
230		
231		//Empeche les liens avec un "#" de se déclencher	
232		$(nomMenu+' li a[href=\'#\']').click(function(e){ e.preventDefault(); }).css("cursor", "default");
233		
234		//Fermeture du sous-menu
235		$(nomMenu+" ul.menu0").hover(function(){
236			
237		},function(){
238			$("#mainSousMenu").stop(true,true).delay("100").slideUp("fast");
239			$(".divWidth100Percent.divSousMenu").css("box-shadow","none");
240		});
241	};
242	
243	fireMenuAnim(nomMenu, fAnim);
244}
245
246/*--------------------------------------------------------*/
247/*FONCTION POUR L'OUVERTURE DU MENU DEROULANTE VERS LE HAUT*/
248/*--------------------------------------------------------*/
249function animeMenuUp(nomMenu,pi_LevelNot,$pi_nbreLevel)
250{
251	var nomMenu = "#"+nomMenu;
252	var margeDroite = 5;
253	
254	var fAnim = function(){
255		//On lance l'animation que sur le premier niveau
256		$(nomMenu+" li.menu0").hover(function(){
257			
258				//Stop l'effet des autres ouvertures
259				$(this).siblings("li").find("ul").stop(true,true);
260			
261				$("#" + this.id + " > a").addClass("menuHover");
262	
263				//Recherche la hauteur du premier niveau pour faire le décalage
264				h =  $(this).find("ul").first().height();		
265				
266				//On enlève les padding de décalage pour faire mouvement, sinon on doit les prendre aussi en compte dans le calcul de la hauteur
267				$("#ul" + this.id).css("top","0" ).css("padding","0").css("margin","0");
268				
269				//Decalage du sous-menu pour éviter que ça ne passe plus sur X colonnes
270				if($pi_nbreLevel > 1)
271					{
272					if($(nomMenu + " #ul" + this.id + " > li").length >= $pi_nbreLevel)
273						{
274						var tailleMaxSousMenu = $(nomMenu + " li.menu1:first").width() * $pi_nbreLevel;
275						if($(nomMenu + " #ul" + this.id).width() < tailleMaxSousMenu)
276							$(nomMenu + " #ul" + this.id).css("right",0);
277						}
278						
279					}
280				
281				//Lancement de l'animation
282				$("#ul" + this.id).stop(true,true).animate(
283					{       
284						height: 'toggle',
285						top:-h 
286					},  1000);					
287		} , 
288	
289		function(){
290				 
291				$("#" + this.id + " > a").removeClass("menuHover");
292				$("#ul" + this.id).stop(true,true).animate({
293				    height:'toggle',
294				    top:0
295				  }, 1000);
296				
297		}	);
298	
299		//Pour les sous-menu, on laisse le fonctionnement normal du déroulant sur la droite.
300		$(nomMenu+" li").not(".menu"+ pi_LevelNot).hover(function(){
301			
302			$("#" + this.id + " > a").addClass("menuHover");
303		
304			//Permet de faire dérouler le menu depuis le début du parent, on crée le décalage
305			var hauteurParent = - ($(this).height()) + "px";
306			var largeurParent = $(this).width() + margeDroite  + "px";//5= petite marge sur la droite
307			$(this).not(".menu"+ pi_LevelNot).find("ul").css("margin-top","0px" );
308			$(this).not(".menu"+ pi_LevelNot).find("ul").css("margin-left",largeurParent );
309			$(this).not(".menu"+ pi_LevelNot).find("ul").css("top",$(this).position().top);//On ne met pas "$("#ul" + this.id)" car pour le menu horizontal cela ne déroule pas comme on veut
310			
311			//Permet d'afficher le sous-menu au bon endroit. Ex. ne pas dépasser la fenêtre
312			var alevel =  this.className.split(" ");
313			var level = alevel[0].replace("menu","").trim();
314	
315			var tailleFenetre = $(window).width();
316			var positionParent = parseFloat($(this).offset().left);
317			var tailleparent = (level > 0)?$(this).outerWidth() + margeDroite:0;
318			var tailleEnfant = ($(nomMenu + " #ul" + this.id).outerWidth())?parseFloat($(nomMenu + " #ul" + this.id).outerWidth()):0;
319
320			if(positionParent + tailleparent + tailleEnfant > tailleFenetre)
321				{
322					if(level > 0)
323						$(nomMenu + " #ul" + this.id).css("right",largeurParent);
324					else
325						$(nomMenu + " #ul" + this.id).css("right",0);
326				}
327			else
328				$(nomMenu + " #ul" + this.id).css("right","auto");
329
330			
331			//Ajout de l'effet déroulant
332			$("#ul" + this.id).stop(true,true).delay("100").slideDown("slow");			    
333		} , 
334		
335		function(){
336				$("#ul" + this.id).stop(true,true).delay("200").slideUp("fast");  
337				$("#" + this.id + " > a").removeClass("menuHover"); 	
338		});
339		//Empeche les liens avec un "#" de se déclencher	
340		$(nomMenu+' li a[href=\'#\']').click(function(e){ e.preventDefault(); }).css("cursor", "default");
341		
342	};
343	
344	fireMenuAnim(nomMenu, fAnim);
345}
346
347/*--------------------------------------*/
348/*FONCTION POUR L'OUVERTURE DU MENU CLIC*/
349/*--------------------------------------*/
350function animeMenuClic(nomMenu,b_fromMenu2Niveaux)
351{
352	var nomMenu = "#"+nomMenu;
353	
354	var fAnim = function(){
355		// On déclare des variables                    
356		var accordion_head = $(nomMenu + ' li a.HeaderClic');            
357		var accordion_body = $(nomMenu + ' li.contentClic');             
358		
359		//On ouvre tous les menus qui sont menuselected. On ouvre rapidement si c'est un menu 2 niveaux pour ne pas avoir l'effet déroulant
360		if(b_fromMenu2Niveaux==true)
361			$(nomMenu + " li a.menuselected").addClass("menuselected").parent().next().css('display',"block");
362		else
363			$(nomMenu + " li a.menuselected").addClass("menuselected").parent().next().slideDown('normal');
364		
365		accordion_head.click(function(event) { 
366			
367			//Si on a un lien on le suit et on n'ouvre pas le sous-menu
368			if($(this).attr('href') != '#')
369				return;
370			
371			//Pour stopper l'effet du clic et donc par remonter au sommet de la page à cause du #
372			event.preventDefault();
373			event.stopPropagation();
374			
375			//Si on n'a pas de lien et pas de sous-menu on ne fait rien, évite un mini effet d'ouverture
376			if($(this).parent().next().html()=="")
377				return;
378			
379			// On annule l'effet naturel du lien   
380			// On vérifie la présence de la classe "menuselected"
381			if ($(this).attr('class').search('menuselected HeaderClic')>0){                    
382					                    
383				// On ouvre celui qui suit directement le lien (.HeaderClic) sur lequel on a cliqué
384				$(this).parent().next().stop(true,true).slideToggle('normal');     
385				
386				// On enlève la classe .menuselected de tous les liens                    
387				accordion_head.removeClass('menuselected');    
388				
389				// On rajoute la classe .menuselected au lien sur lequel on a cliqué                    
390				$(this).addClass('menuselected');                
391				}    
392			else
393				{
394					//Lance l'ouverture d'un menu qui n'a pas de lien et pas selected 
395					$(this).parent().next().slideToggle('normal'); 
396				}
397			
398		});
399		//Change le style des liens avec un "#" 	
400		$(nomMenu+' li a[href=\'#\']').css("cursor", "default");
401	};
402
403	fireMenuAnim(nomMenu, fAnim);
404}
405
406/*----------------------------------------------------------*/
407/*FONCTION POUR L'OUVERTURE DU MENU DEROULANTE 2 NIVEAUX TOP*/
408/*----------------------------------------------------------*/
409
410function animeMenu2NiveauxTop(nomMenu,pi_nbreLevel,nomSousMenu,typeSousMenu,pi_nbreCol)
411{
412	var nomMenu = "#"+nomMenu;
413	var nomSousMenu = "#"+nomSousMenu;
414	var fAnim = function(){
415		$(nomMenu+" li").hover(function(){
416			
417				$(nomMenu + " #" + this.id + " > a").addClass("menuHover");
418			
419				if(pi_nbreLevel > 1 && $(this).hasClass("menu0"))//Indique qu'il n'y a pas de sous-menu
420					{
421						//Decalage du sous-menu pour éviter que ça ne passe plus sur X colonnes
422						if(pi_nbreCol > 1)
423							{
424							if($(nomMenu + " #ul" + this.id + " > li").length >= pi_nbreCol)
425								{
426								var tailleMaxSousMenu = $(nomMenu + " li.menu1:first").width() * pi_nbreCol;
427								
428								if($(nomMenu + " #ul" + this.id).width() < tailleMaxSousMenu)
429									$(nomMenu + " #ul" + this.id).css("right",0);
430								}
431	
432							}
433					
434						//Ajout de l'effet déroulant
435						$(nomMenu + " #ul" + this.id).stop(true,true).delay("100").slideDown("slow");	
436					}		    
437		} , 
438	
439		function(){
440				if(pi_nbreLevel > 1 && $(this).hasClass("menu0"))//Indique qu'il n'y a pas de sous-menu
441					$(nomMenu + " #ul" + this.id).stop(true,true).delay("200").slideUp("fast");  
442				
443				$(nomMenu + " #" + this.id + " > a").removeClass("menuHover"); 	
444		}	);
445	
446		
447		//Gère l'ouverture du sous-menu si il n'y a pas de lien
448		$(nomMenu+' li a[href=\'#\']').click(function(e){
449			
450			var idParentEnCours = $(this).parent().get(0).id;
451			
452			//Recherche le premier lien qui est != # et != de "javascript..." (menu admin)
453			if(!window.isMobile)
454				var newUrl = $(nomSousMenu + " #ul" + idParentEnCours).find("li a[href!='#']:not([href^='javascript'])").first().attr("href");
455			
456			if(newUrl)
457				$(this).attr("href",newUrl);
458			else//Force l'ouverture du sous-menu
459				{
460					//Pour stopper l'effet du clic et donc par remonter au sommet de la page à cause du #
461					e.preventDefault();
462					e.stopPropagation();
463				
464					var nomParentDisplay = idParentEnCours;
465					
466					while(!$("#"+nomParentDisplay).hasClass("menu0") )
467						{
468							var myULid = $("#"+nomParentDisplay).parent().get(0).id;
469							var aKey = myULid.split("_");
470							var id=aKey[1];
471							
472							//recherch du parent de l'élément suivant
473							nomParentDisplay = "mid_"+id;
474						}
475					
476					if(typeSousMenu=="clic")//Version click
477						{
478							$(nomSousMenu +" #"+nomParentDisplay).siblings("ul > li").css("display","none");//cherche les frères et les cache
479							$(nomSousMenu +" #"+nomParentDisplay).next().css('display',"block");//affichage du sous-menu	
480						}
481					else //Version déroulant
482						{
483							
484							//cache les frères et soeurs
485							$(nomSousMenu).find("ul.menu1").css('display',"none");//affichage du sous-menu	
486							//Affiche le sous-menu
487							$(nomSousMenu +" #ul"+nomParentDisplay).css('display',"block");//affichage du sous-menu
488							
489							//Positionnement du menu en haut
490							$(nomSousMenu +" #ul"+nomParentDisplay).css("top",0);
491							$(nomSousMenu +" #ul"+nomParentDisplay).css("margin",0);
492	
493						}
494					
495					
496				}
497	
498		});
499	};
500	
501	fireMenuAnim(nomMenu, fAnim);
502}
503
504/*---------------------------------------------------------------*/
505/*FONCTION POUR L'OUVERTURE DU MENU DEROULANTE 2 NIVEAUX VERTICAL*/
506/*---------------------------------------------------------------*/
507
508function animeMenu2NiveauxDeroulant(nomMenu,pi_LevelNot)
509{
510	var nomMenu = "#"+nomMenu;
511	
512	var fAnim = function(){
513		//On affecte un style pour cacher les ul du premier niveau si ceux-ci on un style, on le voit encore un peu
514		$(nomMenu + " ul.menu0").addClass("hideLevel");
515	
516		
517		//Réouverture du sous-menu
518		if($(nomMenu + " li a.menuselected").parent().length > 0)
519			{
520				var id = " #ul" + $(nomMenu + " li a.menuselected").parent().get(0).id;
521				$(nomMenu + id).css('display',"block");
522				$(nomMenu +id).css("top",0);
523				$(nomMenu +id).css("margin",0);
524			}
525	
526	
527		$(nomMenu+" li").hover(function(){
528			
529			$(nomMenu + " #" + this.id + " > a").addClass("menuHover");
530		
531			//Permet de faire dérouler le menu depuis le début du parent, on crée le décalage
532			var hauteurParent = - ($(this).height()) + "px";
533			var largeurParent = $(this).width() + 5 + "px";//5= petite marge sur la droite
534			$(this).find("ul").not(".menu"+pi_LevelNot).css("margin-top","0px" );
535			$(this).find("ul").not(".menu"+pi_LevelNot).css("margin-left",largeurParent );
536			$(this).find("ul").not(".menu"+pi_LevelNot).css("top",$(this).position().top);//On ne met pas "$("#ul" + this.id)" car pour le menu horizontal cela ne déroule pas comme on veut
537			
538		
539			//Ajout de l'effet déroulant
540			$(nomMenu +" #ul" + this.id).stop(true,true).delay("100").slideDown("slow");			    
541		} , 
542	
543		function(){
544				$(nomMenu + " #ul" + this.id).not(".menu"+ pi_LevelNot).stop(true,true).delay("200").slideUp("fast");  
545				$(nomMenu + " #" + this.id + " > a").removeClass("menuHover"); 	
546		});
547		
548		//Empeche les liens avec un "#" de se déclencher	
549		$(nomMenu+' li a[href=\'#\']').click(function(e){ e.preventDefault(); }).css("cursor", "default");
550	};
551		
552	fireMenuAnim(nomMenu, fAnim);
553}
554
555/*------------------------------------------*/
556/*FONCTIONS POUR L'OUVERTURE DU MENU D'ADMIN*/
557/*------------------------------------------*/
558function initAdminMenu()
559{
560	$(".myArrowAdmin").each(function(){
561		
562		var idArrow = this.id;
563		var aKey = idArrow.split("-");
564		var pkey=aKey[1];
565		var pDebutID = aKey[0];
566		var sParent = "";
567		
568		//Utilisé si menu 2 niveaux pour éviter le conflit des id
569		if(pDebutID.indexOf("imgMenu_") != -1)
570			{
571				var aParent = pDebutID.split("_");
572				sParent= "#" + aParent[1] + " ";
573			}
574
575		//Permet de faire dérouler
576		$(sParent + "#"+idArrow+", #"+pkey).hover( function(){ 
577			
578			$(sParent + "#"+pkey).stop(true,true).delay(100);//on attend pour permettre de passer sur le div depuis la flèche
579			$(sParent + "#"+pkey).show("fast")
580			
581			}, 
582			function(){ 
583				$(sParent + "#"+pkey).stop(true,true).delay(200);//on attend pour permettre de passer sur le div depuis la flèche
584				$(sParent + "#"+pkey).hide("fast");
585			});
586		
587	});
588	
589}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.