From df041b221411769aef1014d39a2609464547d13d Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sat, 31 Dec 2022 15:42:58 +0100 Subject: [PATCH] Clean code --- core/core.js.php | 822 ++++++++++++++++++++++++----------------------- 1 file changed, 424 insertions(+), 398 deletions(-) diff --git a/core/core.js.php b/core/core.js.php index 01281236..9f3f00a9 100644 --- a/core/core.js.php +++ b/core/core.js.php @@ -17,366 +17,365 @@ var core = {}; * Crée un message d'alerte */ core.alert = function(text) { - var lightbox = lity(function($) { - return $("
") - .addClass("lightbox") - .append( - $("").text(text), - $("
") - .addClass("lightboxButtons") - .append( - $("") - .addClass("button") - .text("Ok") - .on("click", function() { - lightbox.close(); - }) - ) - ) - }(jQuery)); - // Validation de la lightbox avec le bouton entrée - $(document).on("keyup", function(event) { - if(event.keyCode === 13) { - lightbox.close(); - } - }); - return false; + var lightbox = lity(function($) { + return $("
") + .addClass("lightbox") + .append( + $("").text(text), + $("
") + .addClass("lightboxButtons") + .append( + $("") + .addClass("button") + .text("Ok") + .on("click", function() { + lightbox.close(); + }) + ) + ) + }(jQuery)); + // Validation de la lightbox avec le bouton entrée + $(document).on("keyup", function(event) { + if (event.keyCode === 13) { + lightbox.close(); + } + }); + return false; }; /** * Génère des variations d'une couleur */ core.colorVariants = function(rgba) { - rgba = rgba.match(/\(+(.*)\)/); - rgba = rgba[1].split(", "); - return { - "normal": "rgba(" + rgba[0] + "," + rgba[1] + "," + rgba[2] + "," + rgba[3] + ")", - "darken": "rgba(" + Math.max(0, rgba[0] - 15) + "," + Math.max(0, rgba[1] - 15) + "," + Math.max(0, rgba[2] - 15) + "," + rgba[3] + ")", - "veryDarken": "rgba(" + Math.max(0, rgba[0] - 20) + "," + Math.max(0, rgba[1] - 20) + "," + Math.max(0, rgba[2] - 20) + "," + rgba[3] + ")", - "text": core.relativeLuminanceW3C(rgba) > .22 ? "#222" : "#DDD" - }; + rgba = rgba.match(/\(+(.*)\)/); + rgba = rgba[1].split(", "); + return { + "normal": "rgba(" + rgba[0] + "," + rgba[1] + "," + rgba[2] + "," + rgba[3] + ")", + "darken": "rgba(" + Math.max(0, rgba[0] - 15) + "," + Math.max(0, rgba[1] - 15) + "," + Math.max(0, rgba[2] - 15) + "," + rgba[3] + ")", + "veryDarken": "rgba(" + Math.max(0, rgba[0] - 20) + "," + Math.max(0, rgba[1] - 20) + "," + Math.max(0, rgba[2] - 20) + "," + rgba[3] + ")", + "text": core.relativeLuminanceW3C(rgba) > .22 ? "#222" : "#DDD" + }; }; /** * Crée un message de confirmation */ core.confirm = function(text, yesCallback, noCallback) { - var lightbox = lity(function($) { - return $("
") - .addClass("lightbox") - .append( - $("").text(text), - $("
") - .addClass("lightboxButtons") - .append( - $("") - .addClass("button grey") - .text("") - .on("click", function() { - lightbox.options('button', true); - lightbox.close(); - if(typeof noCallback !== "undefined") { - noCallback(); - } - }), - $("") - .addClass("button") - .text("") - .on("click", function() { - lightbox.options('button', true); - lightbox.close(); - if(typeof yesCallback !== "undefined") { - yesCallback(); - } - }) - ) - ) - }(jQuery)); - // Callback lors d'un clic sur le fond et sur la croix de fermeture - lightbox.options('button', false); - $(document).on('lity:close', function(event, instance) { - if( - instance.options('button') === false - && typeof noCallback !== "undefined" - ) { - noCallback(); - } - }); - // Validation de la lightbox avec le bouton entrée - $(document).on("keyup", function(event) { - if(event.keyCode === 13) { - lightbox.close(); - if(typeof yesCallback !== "undefined") { - yesCallback(); - } - } - }); - return false; + var lightbox = lity(function($) { + return $("
") + .addClass("lightbox") + .append( + $("").text(text), + $("
") + .addClass("lightboxButtons") + .append( + $("") + .addClass("button grey") + .text("") + .on("click", function() { + lightbox.options('button', true); + lightbox.close(); + if (typeof noCallback !== "undefined") { + noCallback(); + } + }), + $("") + .addClass("button") + .text("") + .on("click", function() { + lightbox.options('button', true); + lightbox.close(); + if (typeof yesCallback !== "undefined") { + yesCallback(); + } + }) + ) + ) + }(jQuery)); + // Callback lors d'un clic sur le fond et sur la croix de fermeture + lightbox.options('button', false); + $(document).on('lity:close', function(event, instance) { + if ( + instance.options('button') === false && + typeof noCallback !== "undefined" + ) { + noCallback(); + } + }); + // Validation de la lightbox avec le bouton entrée + $(document).on("keyup", function(event) { + if (event.keyCode === 13) { + lightbox.close(); + if (typeof yesCallback !== "undefined") { + yesCallback(); + } + } + }); + return false; }; /** * Scripts à exécuter en dernier */ core.end = function() { - /** - * Modifications non enregistrées du formulaire - */ - var formDOM = $("form"); - // Ignore : - // - TinyMCE car il gère lui même le message - // - Les champs avec data-no-dirty - var inputsDOM = formDOM.find("input:not([data-no-dirty]), select:not([data-no-dirty]), textarea:not(.editorWysiwyg):not([data-no-dirty])"); - var inputSerialize = inputsDOM.serialize(); - $(window).on("beforeunload", function() { - if(inputsDOM.serialize() !== inputSerialize) { - message = ""; - return message; - } - }); - formDOM.submit(function() { - $(window).off("beforeunload"); - }); + /** + * Modifications non enregistrées du formulaire + */ + var formDOM = $("form"); + // Ignore : + // - TinyMCE car il gère lui même le message + // - Les champs avec data-no-dirty + var inputsDOM = formDOM.find("input:not([data-no-dirty]), select:not([data-no-dirty]), textarea:not(.editorWysiwyg):not([data-no-dirty])"); + var inputSerialize = inputsDOM.serialize(); + $(window).on("beforeunload", function() { + if (inputsDOM.serialize() !== inputSerialize) { + message = ""; + return message; + } + }); + formDOM.submit(function() { + $(window).off("beforeunload"); + }); }; $(function() { - core.end(); + core.end(); }); /** * Ajoute une notice */ core.noticeAdd = function(id, notice) { - $("#" + id + "Notice").text(notice).removeClass("displayNone"); - $("#" + id).addClass("notice"); + $("#" + id + "Notice").text(notice).removeClass("displayNone"); + $("#" + id).addClass("notice"); }; /** * Supprime une notice */ core.noticeRemove = function(id) { - $("#" + id + "Notice").text("").addClass("displayNone"); - $("#" + id).removeClass("notice"); + $("#" + id + "Notice").text("").addClass("displayNone"); + $("#" + id).removeClass("notice"); }; /** * Scripts à exécuter en premier */ core.start = function() { - /** - * Remonter en haut au clic sur le bouton - */ - var backToTopDOM = $("#backToTop"); - backToTopDOM.on("click", function() { - $("body, html").animate({scrollTop: 0}, "400"); - }); - /** - * Affiche / Cache le bouton pour remonter en haut - */ - $(window).on("scroll", function() { - if($(this).scrollTop() > 200) { - backToTopDOM.fadeIn(); - } - else { - backToTopDOM.fadeOut(); - } - }); - /** - * Cache les notifications - */ - var notificationTimer; - $("#notification") - .on("mouseenter", function() { - clearTimeout(notificationTimer); - $("#notificationProgress") - .stop() - .width("100%"); - }) - .on("mouseleave", function() { - // Disparition de la notification - notificationTimer = setTimeout(function() { - $("#notification").fadeOut(); - }, 3000); - // Barre de progression - $("#notificationProgress").animate({ - "width": "0%" - }, 3000, "linear"); - }) - .trigger("mouseleave"); - $("#notificationClose").on("click", function() { - clearTimeout(notificationTimer); - $("#notification").fadeOut(); - $("#notificationProgress").stop(); - }); + /** + * Remonter en haut au clic sur le bouton + */ + var backToTopDOM = $("#backToTop"); + backToTopDOM.on("click", function() { + $("body, html").animate({ scrollTop: 0 }, "400"); + }); + /** + * Affiche / Cache le bouton pour remonter en haut + */ + $(window).on("scroll", function() { + if ($(this).scrollTop() > 200) { + backToTopDOM.fadeIn(); + } else { + backToTopDOM.fadeOut(); + } + }); + /** + * Cache les notifications + */ + var notificationTimer; + $("#notification") + .on("mouseenter", function() { + clearTimeout(notificationTimer); + $("#notificationProgress") + .stop() + .width("100%"); + }) + .on("mouseleave", function() { + // Disparition de la notification + notificationTimer = setTimeout(function() { + $("#notification").fadeOut(); + }, 3000); + // Barre de progression + $("#notificationProgress").animate({ + "width": "0%" + }, 3000, "linear"); + }) + .trigger("mouseleave"); + $("#notificationClose").on("click", function() { + clearTimeout(notificationTimer); + $("#notification").fadeOut(); + $("#notificationProgress").stop(); + }); - /** - * Traitement du formulaire cookies - */ - $("#cookieForm").submit(function(event){ + /** + * Traitement du formulaire cookies + */ + $("#cookieForm").submit(function(event) { - // Variables des cookies - var getUrl = window.location; - var domain = "domain=" + getUrl.hostname + ";"; - var e = new Date(); - e.setFullYear(e.getFullYear() + 1); - var expires = "expires=" + e.toUTCString(); + // Variables des cookies + var getUrl = window.location; + var domain = "domain=" + getUrl.hostname + ";"; + var e = new Date(); + e.setFullYear(e.getFullYear() + 1); + var expires = "expires=" + e.toUTCString(); - // Stocke le cookie d'acceptation - document.cookie = "ZWII_COOKIE_CONSENT=true;samesite=strict;" + domain + expires; - }); + // Stocke le cookie d'acceptation + document.cookie = "ZWII_COOKIE_CONSENT=true;samesite=strict;" + domain + expires; + }); - /** - * Fermeture de la popup des cookies - */ - $("#cookieConsent .cookieClose").on("click", function() { - $('#cookieConsent').addClass("displayNone"); - }); + /** + * Fermeture de la popup des cookies + */ + $("#cookieConsent .cookieClose").on("click", function() { + $('#cookieConsent').addClass("displayNone"); + }); - /** - * Commande de gestion des cookies dans le footer - */ + /** + * Commande de gestion des cookies dans le footer + */ - $("#footerLinkCookie").on("click", function() { - $("#cookieConsent").removeClass("displayNone"); - }); + $("#footerLinkCookie").on("click", function() { + $("#cookieConsent").removeClass("displayNone"); + }); - /** - * Affiche / Cache le menu en mode responsive - */ - var menuDOM = $("#menu"); - $("#toggle").on("click", function() { - menuDOM.slideToggle(); - }); - $(window).on("resize", function() { - if($(window).width() > 768) { - menuDOM.css("display", ""); - } - }); + /** + * Affiche / Cache le menu en mode responsive + */ + var menuDOM = $("#menu"); + $("#toggle").on("click", function() { + menuDOM.slideToggle(); + }); + $(window).on("resize", function() { + if ($(window).width() > 768) { + menuDOM.css("display", ""); + } + }); - /** - * Sélection d'une langue du site - */ - $("#barSelectLanguage").on("change", function() { - var lang = $(this).val(); - console.log (lang); - if(lang) { - $(location).attr("href", lang); - } - }); - /** - * Choix de page dans la barre de membre - */ - $("#barSelectPage").on("change", function() { - var pageUrl = $(this).val(); - if(pageUrl) { - $(location).attr("href", pageUrl); - } - }); + /** + * Sélection d'une langue du site + + $("#barSelectLanguage").on("change", function() { + var langUrl = $(this).val(); + var langCookie = getCookie('ZWII_CONTENT'); + if (langUrl !== langCookie) { + $(location).attr("href", langUrl); + } + });*/ + /** + * Choix de page dans la barre de membre + */ + $("#barSelectPage").on("change", function() { + var pageUrl = $(this).val(); + if (pageUrl) { + $(location).attr("href", pageUrl); + } + }); - /** - * Champs d'upload de fichiers - */ - // Mise à jour de l'affichage des champs d'upload - $(".inputFileHidden").on("change", function() { - var inputFileHiddenDOM = $(this); - var fileName = inputFileHiddenDOM.val(); - if(fileName === "") { - fileName = "Choisissez un fichier"; - $(inputFileHiddenDOM).addClass("disabled"); - } - else { - $(inputFileHiddenDOM).removeClass("disabled"); - } - inputFileHiddenDOM.parent().find(".inputFileLabel").text(fileName); - }).trigger("change"); - // Suppression du fichier contenu dans le champ - $(".inputFileDelete").on("click", function() { - $(this).parents(".inputWrapper").find(".inputFileHidden").val("").trigger("change"); - }); - // Suppression de la date contenu dans le champ - $(".inputDateDelete").on("click", function() { - $(this).parents(".inputWrapper").find(".datepicker").val("").trigger("change"); - }); - // Confirmation de mise à jour - $("#barUpdate").on("click", function() { - message = ""; - return core.confirm(message, function() { - $(location).attr("href", $("#barUpdate").attr("href")); - }); - }); - // Confirmation de déconnexion - $("#barLogout").on("click", function() { - message = ""; - return core.confirm(message, function() { - $(location).attr("href", $("#barLogout").attr("href")); - }); - }); - /** - * Bloque la multi-soumission des boutons - */ - $("form").on("submit", function() { - $(this).find(".uniqueSubmission") - .addClass("disabled") - .prop("disabled", true) - .empty() - .append( - $("").addClass("zwiico-spin animate-spin") - ) - }); - /** - * Check adresse email - */ - $("[type=email]").on("change", function() { - var _this = $(this); - var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; - if(pattern.test(_this.val())) { - core.noticeRemove(_this.attr("id")); - } - else { - message = ""; - core.noticeAdd(_this.attr("id"), message); - } - }); + /** + * Champs d'upload de fichiers + */ + // Mise à jour de l'affichage des champs d'upload + $(".inputFileHidden").on("change", function() { + var inputFileHiddenDOM = $(this); + var fileName = inputFileHiddenDOM.val(); + if (fileName === "") { + fileName = "Choisissez un fichier"; + $(inputFileHiddenDOM).addClass("disabled"); + } else { + $(inputFileHiddenDOM).removeClass("disabled"); + } + inputFileHiddenDOM.parent().find(".inputFileLabel").text(fileName); + }).trigger("change"); + // Suppression du fichier contenu dans le champ + $(".inputFileDelete").on("click", function() { + $(this).parents(".inputWrapper").find(".inputFileHidden").val("").trigger("change"); + }); + // Suppression de la date contenu dans le champ + $(".inputDateDelete").on("click", function() { + $(this).parents(".inputWrapper").find(".datepicker").val("").trigger("change"); + }); + // Confirmation de mise à jour + $("#barUpdate").on("click", function() { + message = ""; + return core.confirm(message, function() { + $(location).attr("href", $("#barUpdate").attr("href")); + }); + }); + // Confirmation de déconnexion + $("#barLogout").on("click", function() { + message = ""; + return core.confirm(message, function() { + $(location).attr("href", $("#barLogout").attr("href")); + }); + }); + /** + * Bloque la multi-soumission des boutons + */ + $("form").on("submit", function() { + $(this).find(".uniqueSubmission") + .addClass("disabled") + .prop("disabled", true) + .empty() + .append( + $("").addClass("zwiico-spin animate-spin") + ) + }); + /** + * Check adresse email + */ + $("[type=email]").on("change", function() { + var _this = $(this); + var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; + if (pattern.test(_this.val())) { + core.noticeRemove(_this.attr("id")); + } else { + message = ""; + core.noticeAdd(_this.attr("id"), message); + } + }); + + /** + * Iframes et vidéos responsives + */ + var elementDOM = $("iframe, video, embed, object"); + // Calcul du ratio et suppression de la hauteur / largeur des iframes + elementDOM.each(function() { + var _this = $(this); + _this + .data("ratio", _this.height() / _this.width()) + .data("maxwidth", _this.width()) + .removeAttr("width height"); + }); + // Prend la largeur du parent et détermine la hauteur à l'aide du ratio lors du resize de la fenêtre + $(window).on("resize", function() { + elementDOM.each(function() { + var _this = $(this); + var width = _this.parent().first().width(); + if (width > _this.data("maxwidth")) { width = _this.data("maxwidth"); } + _this + .width(width) + .height(width * _this.data("ratio")); + }); + }).trigger("resize"); + + /* + * Header responsive + */ + $(window).on("resize", function() { + var responsive = "getdata(['theme','header','imageContainer']);?>"; + if (responsive === "cover" || responsive === "contain") { + var widthpx = "getdata(['theme','site','width']);?>"; + var width = widthpx.substr(0, widthpx.length - 2); + var heightpx = "getdata(['theme','header','height']);?>"; + var height = heightpx.substr(0, heightpx.length - 2); + var ratio = width / height; + if (($(window).width() / ratio) <= height) { + $("header").height($(window).width() / ratio); + } + } + }).trigger("resize"); - /** - * Iframes et vidéos responsives - */ - var elementDOM = $("iframe, video, embed, object"); - // Calcul du ratio et suppression de la hauteur / largeur des iframes - elementDOM.each(function() { - var _this = $(this); - _this - .data("ratio", _this.height() / _this.width()) - .data("maxwidth", _this.width()) - .removeAttr("width height"); - }); - // Prend la largeur du parent et détermine la hauteur à l'aide du ratio lors du resize de la fenêtre - $(window).on("resize", function() { - elementDOM.each(function() { - var _this = $(this); - var width = _this.parent().first().width(); - if (width > _this.data("maxwidth")){ width = _this.data("maxwidth");} - _this - .width(width) - .height(width * _this.data("ratio")); - }); - }).trigger("resize"); - /* - * Header responsive - */ - $(window).on("resize", function() { - var responsive = "getdata(['theme','header','imageContainer']);?>"; - if (responsive === "cover" || responsive === "contain" ) { - var widthpx = "getdata(['theme','site','width']);?>"; - var width = widthpx.substr(0,widthpx.length-2); - var heightpx = "getdata(['theme','header','height']);?>"; - var height = heightpx.substr(0,heightpx.length-2); - var ratio = width / height; - if ( ($(window).width() / ratio) <= height) { - $("header").height( $(window).width() / ratio ); - } - } - }).trigger("resize"); }; @@ -385,13 +384,13 @@ core.start(); /** * Confirmation de suppression -*/ + */ $("#pageDelete").on("click", function() { - var _this = $(this); - message = ""; - return core.confirm(message, function() { - $(location).attr("href", _this.attr("href")); - }); + var _this = $(this); + message = ""; + return core.confirm(message, function() { + $(location).attr("href", _this.attr("href")); + }); }); @@ -399,96 +398,123 @@ $("#pageDelete").on("click", function() { * Calcul de la luminance relative d'une couleur */ core.relativeLuminanceW3C = function(rgba) { - // Conversion en sRGB - var RsRGB = rgba[0] / 255; - var GsRGB = rgba[1] / 255; - var BsRGB = rgba[2] / 255; - // Ajout de la transparence - var RsRGBA = rgba[3] * RsRGB + (1 - rgba[3]); - var GsRGBA = rgba[3] * GsRGB + (1 - rgba[3]); - var BsRGBA = rgba[3] * BsRGB + (1 - rgba[3]); - // Calcul de la luminance - var R = (RsRGBA <= .03928) ? RsRGBA / 12.92 : Math.pow((RsRGBA + .055) / 1.055, 2.4); - var G = (GsRGBA <= .03928) ? GsRGBA / 12.92 : Math.pow((GsRGBA + .055) / 1.055, 2.4); - var B = (BsRGBA <= .03928) ? BsRGBA / 12.92 : Math.pow((BsRGBA + .055) / 1.055, 2.4); - return .2126 * R + .7152 * G + .0722 * B; + // Conversion en sRGB + var RsRGB = rgba[0] / 255; + var GsRGB = rgba[1] / 255; + var BsRGB = rgba[2] / 255; + // Ajout de la transparence + var RsRGBA = rgba[3] * RsRGB + (1 - rgba[3]); + var GsRGBA = rgba[3] * GsRGB + (1 - rgba[3]); + var BsRGBA = rgba[3] * BsRGB + (1 - rgba[3]); + // Calcul de la luminance + var R = (RsRGBA <= .03928) ? RsRGBA / 12.92 : Math.pow((RsRGBA + .055) / 1.055, 2.4); + var G = (GsRGBA <= .03928) ? GsRGBA / 12.92 : Math.pow((GsRGBA + .055) / 1.055, 2.4); + var B = (BsRGBA <= .03928) ? BsRGBA / 12.92 : Math.pow((BsRGBA + .055) / 1.055, 2.4); + return .2126 * R + .7152 * G + .0722 * B; }; +// Fonctions +function setCookie(name, value, days) { + var expires = ""; + if (days) { + var date = new Date(); + date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); + expires = "; expires=" + date.toUTCString(); + } + document.cookie = name + "=" + (value || "") + expires + "; path=/; samesite=lax"; +} + +function getCookie(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; +} + +// Define function to capitalize the first letter of a string +function capitalizeFirstLetter(string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} -$(document).ready(function(){ - /** - * Affiche le sous-menu quand il est sticky - */ - $("nav").mouseenter(function(){ - $("#navfixedlogout .navSub").css({ 'pointer-events' : 'auto' }); - $("#navfixedconnected .navSub").css({ 'pointer-events' : 'auto' }); - }); - $("nav").mouseleave(function(){ - $("#navfixedlogout .navSub").css({ 'pointer-events' : 'none' }); - $("#navfixedconnected .navSub").css({ 'pointer-events' : 'none' }); - }); +$(document).ready(function() { + /** + * Affiche le sous-menu quand il est sticky + */ + $("nav").mouseenter(function() { + $("#navfixedlogout .navSub").css({ 'pointer-events': 'auto' }); + $("#navfixedconnected .navSub").css({ 'pointer-events': 'auto' }); + }); + $("nav").mouseleave(function() { + $("#navfixedlogout .navSub").css({ 'pointer-events': 'none' }); + $("#navfixedconnected .navSub").css({ 'pointer-events': 'none' }); + }); - /** - * Chargement paresseux des images et des iframes - */ - $("img,picture,iframe").attr("loading","lazy"); + /** + * Chargement paresseux des images et des iframes + */ + $("img,picture,iframe").attr("loading", "lazy"); - /** - * Effet accordéon - */ - $('.accordion').each(function(e) { - // on stocke l'accordéon dans une variable locale - var accordion = $(this); - // on récupère la valeur data-speed si elle existe - var toggleSpeed = accordion.attr('data-speed') || 100; + /** + * Effet accordéon + */ + $('.accordion').each(function(e) { + // on stocke l'accordéon dans une variable locale + var accordion = $(this); + // on récupère la valeur data-speed si elle existe + var toggleSpeed = accordion.attr('data-speed') || 100; - // fonction pour afficher un élément - function open(item, speed) { - // on récupère tous les éléments, on enlève l'élément actif de ce résultat, et on les cache - accordion.find('.accordion-item').not(item).removeClass('active') - .find('.accordion-content').slideUp(speed); - // on affiche l'élément actif - item.addClass('active') - .find('.accordion-content').slideDown(speed); - } - function close(item, speed) { - accordion.find('.accordion-item').removeClass('active') - .find('.accordion-content').slideUp(speed); - } + // fonction pour afficher un élément + function open(item, speed) { + // on récupère tous les éléments, on enlève l'élément actif de ce résultat, et on les cache + accordion.find('.accordion-item').not(item).removeClass('active') + .find('.accordion-content').slideUp(speed); + // on affiche l'élément actif + item.addClass('active') + .find('.accordion-content').slideDown(speed); + } - // on initialise l'accordéon, sans animation - open(accordion.find('.active:first'), 0); + function close(item, speed) { + accordion.find('.accordion-item').removeClass('active') + .find('.accordion-content').slideUp(speed); + } - // au clic sur un titre... - accordion.on('click', '.accordion-title', function(ev) { - ev.preventDefault(); - // Masquer l'élément déjà actif - if ($(this).closest('.accordion-item').hasClass('active')) { - close($(this).closest('.accordion-item'), toggleSpeed); - } else { - // ...on lance l'affichage de l'élément, avec animation - open($(this).closest('.accordion-item'), toggleSpeed); - } - }); - }); + // on initialise l'accordéon, sans animation + open(accordion.find('.active:first'), 0); - /** - * Icône du Menu Burger - */ - $("#toggle").click(function() { - var changeIcon = $('#toggle').children("span"); - if ( $(changeIcon).hasClass('zwiico-menu') ) { - $(changeIcon).removeClass('zwiico-menu').addClass('zwiico-cancel'); - } - else { - $(changeIcon).addClass('zwiico-menu'); - }; - }); + // au clic sur un titre... + accordion.on('click', '.accordion-title', function(ev) { + ev.preventDefault(); + // Masquer l'élément déjà actif + if ($(this).closest('.accordion-item').hasClass('active')) { + close($(this).closest('.accordion-item'), toggleSpeed); + } else { + // ...on lance l'affichage de l'élément, avec animation + open($(this).closest('.accordion-item'), toggleSpeed); + } + }); + }); - /** - * Remove ID Facebook from URL - */ - if(/^\?fbclid=/.test(location.search)) - location.replace(location.href.replace(/\?fbclid.+/, "")); -}); + /** + * Icône du Menu Burger + */ + $("#toggle").click(function() { + var changeIcon = $('#toggle').children("span"); + if ($(changeIcon).hasClass('zwiico-menu')) { + $(changeIcon).removeClass('zwiico-menu').addClass('zwiico-cancel'); + } else { + $(changeIcon).addClass('zwiico-menu'); + }; + }); + + /** + * Remove ID Facebook from URL + */ + if (/^\?fbclid=/.test(location.search)) + location.replace(location.href.replace(/\?fbclid.+/, "")); + +}); \ No newline at end of file