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