1/* JavaScript Document 2script per tutti i menu caricati in defer 3 quando si usa il jquery $(document).ready() si usa il defer */ 4 5 6/* INIZIO MENU CONTENTUALE */ 7var $JQMenuContentuale= jQuery.noConflict(); 8 9$JQMenuContentuale(document).ready(function (){ 10 11 $JQMenuContentuale("nav.menu-verticale-dipendedasezione").each(function(){ 12 13 let moduloMenu=$JQMenuContentuale(this).attr("data-moduloMenu"); 14 15 let paginaDoveSono=$JQMenuContentuale("input[id='phpSelfDoveSono']").val()+"?"+$JQMenuContentuale("input[id='queryStringDoveSono']").val(); 16 let paginaDoveSono2=$JQMenuContentuale("input[id='phpSelfDoveSono2']").val()+"?"+$JQMenuContentuale("input[id='queryStringDoveSono2']").val(); // nel caso di scheda.php 17 let moduloDoveSono=$JQMenuContentuale("input[id='moduloDoveSono']").val(); 18 let array_menu_dedicato_dipendedasezione=new Array() 19 20 if($JQMenuContentuale("input[id='array_menu_dedicato_dipendedasezione']").val()!="") 21 { 22 array_menu_dedicato_dipendedasezione=$JQMenuContentuale("input[id='array_menu_dedicato_dipendedasezione']").val().split("|") 23 } 24 25 $JQMenuContentuale("a", $JQMenuContentuale(this)).each(function(){ 26 27 var trovato=false; 28 29 let urlPulsante=$JQMenuContentuale(this).attr("data-urlpulsante"); 30 31 if(urlPulsante==paginaDoveSono || urlPulsante==paginaDoveSono2) 32 { 33 trovato=true; 34 } 35 36 37 if(array_menu_dedicato_dipendedasezione.length>0) 38 { 39 $JQMenuContentuale.each(array_menu_dedicato_dipendedasezione, function(indice, valore) { 40 if(urlPulsante==valore) 41 { 42 trovato=true; 43 } 44 }); 45 } 46 47 if(trovato) 48 { 49 // tendine antenati 50 $JQMenuContentuale(this).parents(".mv-link-sottotasti").each(function(){ 51 $JQMenuContentuale(this).show(); 52 }); 53 54 // tendina fratello 55 $JQMenuContentuale(this).closest("div").next(".mv-link-sottotasti").show(); 56 } 57 }); 58 59 60 }); 61}); 62/* FINE MENU CONTENTUALE */ 63 64 65 66/* INIZIO TASTO ATTIVO MENU */ 67var $JQMenuTastiAttivi= jQuery.noConflict(); 68 69$JQMenuTastiAttivi(document).ready(function (){ 70 71 $JQMenuTastiAttivi("nav.menu-orizzontale a, nav.menu-burger-nav a, nav.menu-verticale-box a").each(function(){ 72 73 let protocol = location.protocol; 74 let hostname = location.hostname; 75 76 let tipoMenu=$JQMenuTastiAttivi(this).closest("nav").attr("data-tipoMenu"); 77 let text=$JQMenuTastiAttivi(this).html(); 78 let href=$JQMenuTastiAttivi(this).attr("href"); 79 let urlPulsante=$JQMenuTastiAttivi(this).attr("data-urlPulsante"); 80 let moduloPulsante=$JQMenuTastiAttivi(this).attr("data-moduloPulsante"); 81 let requestUriDoveSono=$JQMenuTastiAttivi("input[id='requestUriDoveSono']").val(); 82 let moduloDoveSono=$JQMenuTastiAttivi("input[id='moduloDoveSono']").val(); 83 84 href=href.replace(protocol+"//"+hostname+"/", ""); 85 86 if(href!="javascript:void(0)") 87 { 88 var pulAttivo=false; 89 90 if(requestUriDoveSono==href || requestUriDoveSono==urlPulsante) 91 { 92 pulAttivo=true; 93 } 94 else if(urlPulsante=="" && moduloPulsante==moduloDoveSono) 95 { 96 pulAttivo=true; 97 } 98 99 if(pulAttivo) 100 { 101 var classeTasto=""; 102 103 if(tipoMenu=="verticale") 104 { 105 classeTasto="tasto-acceso"; 106 } 107 else 108 { 109 let classe=$JQMenuTastiAttivi(this).closest("div,li").attr("class").split(" "); 110 classeTasto=classe[0]+"-attivo"; 111 } 112 $JQMenuTastiAttivi(this).closest("div,li").addClass(classeTasto); 113 } 114 } 115 }); 116}); 117/* FINE TASTO ATTIVO MENU */ 118 119 120 121/* INIZIO APERTURA SOTTITASTI MENU */ 122var $jQMenuSottoTasti = jQuery.noConflict(); 123 124$jQMenuSottoTasti(document).ready(function (index){ 125 /* apertura / chiusura tendina sotto */ 126 $jQMenuSottoTasti(".mv-link-piu, .mv-linkA-piu").click(function(e, first){ 127 128 e.preventDefault(); 129 130 var iconaapri="+"; 131 var iconachiudi="-"; 132 133 if($jQMenuSottoTasti(this).attr("data-apri")) 134 { 135 iconaapri=$jQMenuSottoTasti(this).attr("data-apri"); 136 } 137 if($jQMenuSottoTasti(this).attr("data-chiudi")) 138 { 139 iconachiudi=$jQMenuSottoTasti(this).attr("data-chiudi"); 140 } 141 142 var display=$jQMenuSottoTasti("+ div.mv-link-sottotasti", $jQMenuSottoTasti(this).parent()).css("display");
143 $jQMenuSottoTasti("+ div.mv-link-sottotasti", $jQMenuSottoTasti(this).parent()).slideToggle(first ? 0 : 400); 144 145 if($jQMenuSottoTasti(this).attr("class")=="mv-linkA-piu") 146 { 147 $jQMenuSottoTasti("+ .mv-link-piu", $jQMenuSottoTasti(this)).html(display=="none" ? iconachiudi : iconaapri); /* la variabile dipslay è valorizzata prima del cambiamento, quindi la condizione è al contrario */ 148 } 149 else 150 { 151 $jQMenuSottoTasti(this).html(display=="none" ? iconachiudi : iconaapri); /* la variabile dipslay è valorizzata prima del cambiamento, quindi la condizione è al contrario */ 152 } 153 154 return false; 155 }); 156 157 158 /* posizionamento tendina fianco */ 159 $jQMenuSottoTasti(".mv-tendina").each(function(){ 160 161 /* cerco la metà del viewport */ 162 var vW=$jQMenuSottoTasti(window).width(); 163 var meta_vW=vW/2; 164 165 /*cerco la posizione dx finale del tasto */ 166 var offset=$jQMenuSottoTasti(this).closest(".mv-scatola").offset(); 167 var posRight=parseInt(offset.left)+parseInt($jQMenuSottoTasti(this).closest(".mv-scatola").outerWidth(true)); 168 169 if(posRight>=meta_vW) 170 { 171 /* cerco la posizione sx finale del tasto */ 172 var posLeft=offset.left; 173 174 /* se il menu è più a destra rispetto alla meta del viewport */ 175 if( (meta_vW-posLeft) < (posRight-meta_vW) ) 176 { 177 $jQMenuSottoTasti(this).addClass("mv-tendina-sx"); 178 } 179 } 180 }); 181 182}); 183/* FINE APERTURA SOTTITASTI MENU */ 184 185 186 187/* INIZIO MENU BURGER */ 188var $jQBurgerMenu = jQuery.noConflict(); 189 190$jQBurgerMenu(document).ready(function() { 191 192 193 if($jQBurgerMenu(".menu-burger-box").length>0) 194 { 195 196 $jQBurgerMenu(".menu-burger-box").click(function(){ 197 198 var aperturadirezione=$jQBurgerMenu(this).next().attr("data-aperturadirezione"); 199 200 //var proprieta = $jQBurgerMenu(this).next().css("transform"); 201 //alert(proprieta); 202 203 if(aperturadirezione=="sxdx" || aperturadirezione=="dxsx") 204 { 205 $jQBurgerMenu(this).next().css({"transform":"translateX(0%)"}); 206 } 207 if(aperturadirezione=="dxsx") 208 { 209 var width=$jQBurgerMenu(this).next().attr("data-width"); 210 $jQBurgerMenu(this).next().css({"left":"calc(100% - "+width+")"}); 211 } 212 else if(aperturadirezione=="altobasso") 213 { 214 $jQBurgerMenu(this).next().css({"transform":"translateY(0%)"}); 215 } 216 217 }); 218 219 220 $jQBurgerMenu(".menu-burger-nav-chiudi").click(function(){ 221 222 var aperturadirezione=$jQBurgerMenu(this).parent().attr("data-aperturadirezione"); 223 224 if(aperturadirezione=="sxdx") 225 { 226 var val="translateX(-100vw)"; 227 $jQBurgerMenu(this).parent().css({"transform":"translateX(-100vw)"}); 228 } 229 else if(aperturadirezione=="dxsx") 230 { 231 var val="left%"; 232 $jQBurgerMenu(this).parent().css({"left":"100%"}); 233 } 234 else if(aperturadirezione=="altobasso") 235 { 236 $jQBurgerMenu(this).parent().css({"transform":"translateY(-100vh)"}); 237 } 238 239 }); 240 241 242 $jQBurgerMenu(".menu-burger-nav-tasto-aprichiudi").click(function(e, first){ 243 244 e.preventDefault(); 245 246 var iconaapri=$jQBurgerMenu(this).attr("data-apri"); 247 var iconachiudi=$jQBurgerMenu(this).attr("data-chiudi"); 248 249 var display=$jQBurgerMenu("+ ul.menu-burger-nav-tendina", $jQBurgerMenu(this)).css("display"); 250 $jQBurgerMenu("+ ul.menu-burger-nav-tendina", $jQBurgerMenu(this)).slideToggle(first ? 0 : 400); 251 252 $jQBurgerMenu(this).html(display=="none" ? iconachiudi : iconaapri); /* la variabile dipslay è valorizzata prima del cambiamento, quindi la condizione è al contrario */ 253 254 //accessibilità : aggiorna tabindex nei link della tendina 255 if(display=="none"){ 256 // ora la sto aprendo â rendo i link focusabili 257 $jQBurgerMenu(this).next("ul.menu-burger-nav-tendina").find("a,button,input,select,textarea").removeAttr("tabindex"); 258 } 259 else{ 260 // ora la sto chiudendo â blocco il tab 261 $jQBurgerMenu(this).next("ul.menu-burger-nav-tendina").find("a,button,input,select,textarea").attr("tabindex","-1"); 262 } 263 264 265 return false; 266 }); 267 268 269 270 $jQBurgerMenu(".menu-burger-nav a").click(function(){ 271 272 var href = $jQBurgerMenu(this).attr("href"); 273 274 //chiudi SOLO se è una vera ancora 275 if(!href || href.charAt(0) != "#") 276 { 277 return true; 278 } 279 280 var $menu = $jQBurgerMenu(this).closest(".menu-burger-nav"); 281 var aperturadirezione = $menu.attr("data-aperturadirezione"); 282
283 if(aperturadirezione=="sxdx") 284 { 285 $menu.css({"transform":"translateX(-100vw)"}); 286 } 287 else if(aperturadirezione=="dxsx") 288 { 289 $menu.css({"left":"100%"}); 290 } 291 else if(aperturadirezione=="altobasso") 292 { 293 $menu.css({"transform":"translateY(-100vh)"}); 294 } 295 296 $menu.attr("aria-hidden","true"); 297 $menu.prev(".menu-burger-box").attr("aria-expanded","false"); 298 }); 299 300 } 301}); 302 303// ACCESSIBILITA MINIMA MENU BURGER 304$jQBurgerMenu(document).ready(function(){ 305 306 $jQBurgerMenu(".menu-burger-box").each(function(){ 307 308 var $trigger = $jQBurgerMenu(this); 309 var $nav = $trigger.next(".menu-burger-nav"); 310 if(!$nav.length){ return; } 311 312 var $close = $nav.find(".menu-burger-nav-chiudi:first"); 313 314 // semantica base sul trigger (resta DIV) 315 $trigger.attr({ 316 "role":"button", 317 "tabindex":"0", 318 "aria-controls": $nav.attr("id"), 319 "aria-expanded":"false" 320 }); 321 322 // stato iniziale: chiuso (solo ARIA + tab-order) 323 chiudiMenu(); 324 325 function apriMenu(){ 326 $nav.attr("aria-hidden","false"); 327 $trigger.attr("aria-expanded","true"); 328 $nav.find('[tabindex="-1"]').removeAttr("tabindex"); 329 } 330 331 function chiudiMenu(){ 332 $nav.attr("aria-hidden","true"); 333 $trigger.attr("aria-expanded","false"); 334 $nav.find("a,button,input,select,textarea,[tabindex]").attr("tabindex","-1"); 335 } 336 337 // click (apri/chiudi) 338 $jQBurgerMenu(this).keydown(function(e){ 339 if (e.which === 13 || e.which === 32) { 340 e.preventDefault(); 341 apriMenu(); 342 $jQBurgerMenu(this).trigger("click"); 343 } 344 });
345 $jQBurgerMenu(this).find(".menu-burger-nav-chiudi").keydown(function(e){ 346 if (e.which === 13 || e.which === 32) { 347 e.preventDefault(); 348 chiudiMenu(); 349 $jQBurgerMenu(this).trigger("click"); 350 } 351 }); 352 353 354 }); 355 356}); 357 358/* FINE MENU BURGER */ 359 360 361 362/* INIZIO MENU ORIZZONTALE */ 363var $jQOrizzontaleMenu = jQuery.noConflict(); 364 365$jQOrizzontaleMenu(document).ready(function() { 366 367 368 if( is_touch_device() ) 369 { 370 $jQOrizzontaleMenu("body").click(function(e) { 371 if($jQOrizzontaleMenu(e.target).closest(".menu-orizzontale-tasto").length == 0) 372 { 373 $jQOrizzontaleMenu(".menu-orizzontale-tasto .menu-orizzontale-tendina").css({"display":"none", "visibility":"hidden"}); 374 } 375 }); 376 377 378 if($jQOrizzontaleMenu(".menu-orizzontale-tasto .menu-orizzontale-tendina").length>0) 379 { 380 $jQOrizzontaleMenu(".menu-orizzontale-tasto").click(function() { 381 382 $jQOrizzontaleMenu(".menu-orizzontale-tasto .menu-orizzontale-tendina").css({"display":"none", "visibility":"hidden"}); 383 if($jQOrizzontaleMenu(this).find(".menu-orizzontale-tendina").length>0) 384 { 385 $jQOrizzontaleMenu(this).find(".menu-orizzontale-tendina").css({"display":"block", "visibility":"visible"}); 386 } 387 388 }); 389 } 390 } 391 392 393 if($jQOrizzontaleMenu(".menu-orizzontale-con-blocco").length>0) 394 { 395 $jQOrizzontaleMenu(".menu-orizzontale-con-blocco").each(function(){ 396 397 var identificatoreMenu=$jQOrizzontaleMenu(this).attr("id"); 398 399 /* questo serve per riposizionare bene il menu quando non è più in cima al viwevport, altrimenti resterebbe il top associato al blocco-top */ 400 /*larghezza e altezza menu */ 401 402 var MenuWidth=$jQOrizzontaleMenu("#"+identificatoreMenu).outerWidth(); 403 var MenuMarginLeft=$jQOrizzontaleMenu("#"+identificatoreMenu).css("marginLeft").replace("px", ""); 404 var MenuCssTop=$jQOrizzontaleMenu("#"+identificatoreMenu).css("top"); 405 var MenuCssMargin=$jQOrizzontaleMenu("#"+identificatoreMenu).css("margin"); 406 var MenuCssMarginLeft=$jQOrizzontaleMenu("#"+identificatoreMenu).css("margin-left"); 407 var MenuCssMarginTop=$jQOrizzontaleMenu("#"+identificatoreMenu).css("margin-top"); 408 var MenuCssPosition=$jQOrizzontaleMenu("#"+identificatoreMenu).css("position"); /* serve per capire se è un menu che è già fisso da stile, in questo caso non si fanno operazioni */ 409 var viewportOffsetMenuInit = getViewportOffset($jQOrizzontaleMenu("#ancora-"+identificatoreMenu)); 410 411 412 var pcI=getViewportOffset($jQOrizzontaleMenu("#corpo-contenitore")).top; 413 var heightBA=0; 414 var heightAPA=0; 415 var distanzaTop=0; 416 417 if($jQOrizzontaleMenu("#banner-anteprima").length>0) 418 { 419 heightBA=$jQGenerico("#banner-anteprima").outerHeight(true); 420 } 421 if($jQOrizzontaleMenu(".box-barra-alta").length>0) 422 { 423 heightAPA= $jQOrizzontaleMenu(".box-barra-alta").outerHeight(true); 424 } 425 426 distanzaTop=parseFloat(heightBA)+parseFloat(heightAPA); 427 428 $jQOrizzontaleMenu(window).scroll(function() { 429 430 431 if($jQOrizzontaleMenu("#testa").css("position")!="fixed" && MenuCssPosition!="fixed") /* c'è uno stile che ha la testa fissa, questo non va fatto */ 432 { 433 var transition= getTransitionDuration( "#"+identificatoreMenu, true ); 434 435 $jQOrizzontaleMenu(".menu-orizzontale-blocco-top").css({"transition":"unset"}); /* azzero la transizione per evitare i salti */ 436 transition=0; /* azzero la transizione per evitare i salti */ 437 438 setTimeout(function() { 439 440 441 var viewportOffsetMenuScroll = getViewportOffset($jQOrizzontaleMenu("#"+identificatoreMenu)); 442 var viewportOffsetAncoraMenuScroll=getViewportOffset($jQOrizzontaleMenu("#ancora-"+identificatoreMenu)); 443 444 /*guardo quando il menu va sotto non il corpo */ 445 if (viewportOffsetMenuScroll.top<=distanzaTop) 446 { 447 if(strpos($jQOrizzontaleMenu("#"+identificatoreMenu).attr("class"), "menu-orizzontale-blocco-top")===false) 448 { 449 $jQOrizzontaleMenu("#"+identificatoreMenu).addClass("menu-orizzontale-blocco-top"); 450 451 $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"width":MenuWidth+"px"}); 452 453 $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"margin-left":MenuMarginLeft+"px"}); 454 455 $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"margin-top": "0"}); /* annullo i margini se ci sono */ 456 457 $jQOrizzontaleMenu("#"+identificatoreMenu+".menu-orizzontale-blocco-top").css({"margin-top":distanzaTop+"px"}); 458 } 459 460 viewportOffsetMenuScroll = getViewportOffset($jQOrizzontaleMenu("#"+identificatoreMenu)); /* riprendo la posizione del menu */ 461 462 if(viewportOffsetMenuScroll.top<=viewportOffsetAncoraMenuScroll.top) 463 { 464 if(strpos ($jQOrizzontaleMenu("#"+identificatoreMenu).attr("class"), "menu-orizzontale-blocco-top")) 465 { 466 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-left":MenuCssMarginLeft}); 467 if(MenuCssMargin=="auto") 468 { 469 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin":MenuCssMargin}); 470 } 471 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"top":MenuCssTop}); 472 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-top":MenuCssMarginTop}); 473 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"z-index":20}); 474 475 476 $jQOrizzontaleMenu("#corpo-contenitore").addClass("scorrimento-corpo"); 477 478 479 $jQOrizzontaleMenu("#"+identificatoreMenu).removeClass("menu-orizzontale-blocco-top"); 480 481 $jQOrizzontaleMenu("#corpo-contenitore.scorrimento-corpo").css({"top":"-"+pcI+"px"}); 482 483 $jQOrizzontaleMenu("#corpo-contenitore").removeClass("scorrimento-corpo"); 484 } 485 } 486 } 487 else 488 { 489 if(strpos ($jQOrizzontaleMenu("#"+identificatoreMenu).attr("class"), "menu-orizzontale-blocco-top")) 490 { 491 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-left":MenuCssMarginLeft}); 492 if(MenuCssMargin=="auto") 493 { 494 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin":MenuCssMargin}); 495 } 496 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"top":MenuCssTop}); 497 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"margin-top":MenuCssMarginTop}); 498 $jQOrizzontaleMenu("#"+identificatoreMenu).css({"z-index":20}); 499 500 $jQOrizzontaleMenu("#"+identificatoreMenu).removeClass("menu-orizzontale-blocco-top"); 501 } 502 } 503 504 }, transition); 505 506 } 507 }); 508 509 510 var trovatostesso=false; 511 512 /*cerco tutti i .menu-orizzontale-con-blocco prima di questo */ 513 $jQOrizzontaleMenu(".menu-orizzontale-con-blocco").each(function(){ 514 515 if(!trovatostesso) 516 { 517 var identificatoreMenu2=$jQOrizzontaleMenu(this).attr("id"); 518 519 if(identificatoreMenu2 != identificatoreMenu) 520 { 521 var heightMenu2=$jQOrizzontaleMenu("#"+identificatoreMenu2).outerHeight(true); 522 523 distanzaTop=distanzaTop+heightMenu2; 524 } 525 if(identificatoreMenu2 == identificatoreMenu) 526 { 527 trovatostesso=true; 528 } 529 } 530 531 532 $jQOrizzontaleMenu("#"+identificatoreMenu).attr("data-distanzatop",distanzaTop); 533 534 if(!$jQOrizzontaleMenu("#"+identificatoreMenu).isInViewport()) 535 { 536 $jQOrizzontaleMenu(window).trigger("scroll"); 537 } 538 }); 539 540 }); 541 } 542}); 543/*FINE MENU ORIZZONTALE */
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.