// Ajout d'un message dans une div[aria-live=polite] dans Desjardins Assurance Vie [DAV] lorsque la bannière de Qualtrics apparaît
// Dès que le DOM est prêt, exécuter le code

document.addEventListener('DOMContentLoaded', function () {
	(function () {
		// Fonction qui injecte le script JS de Qualtics à la page
		const addQualtricsToPage = function(){"undefined"===typeof QSI&&(QSI={},
			QSI.config = {
							hostedJSLocation: "https://static.desjardins.com/fw/qualtrics/lastversion/js/",
							zoneId: "ZN_4P0ou9j36T5k501",
							brandId: "desjardins"
			}
		);var g=function(d,h,f,g){this.get=function(a){a+="=";for(var b=document.cookie.split(";"),c=0,d=b.length;c<d;c++){for(var e=b[c];" "==
		e.charAt(0);)e=e.substring(1,e.length);if(0==e.indexOf(a))return e.substring(a.length,e.length)}return null};this.set=function(a,b){var c=new Date;c.setTime(c.getTime()+6048E5);c="; expires="+c.toGMTString();document.cookie=a+"="+b+c+"; path=/; "};this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=d)"visitor"==h&&(d=Math.random()>=d/100?0:100),a=[h,d,0],this.set(f,a.join(":"));else return!0;var b=a[1];if(100==b)return!0;switch(a[0]){case "visitor":return!1;case "pageview":return b=
		a[2]%Math.floor(100/b),a[2]++,this.set(f,a.join(":")),!b}return!0};this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g+"OrchestratorMain.js";document.body&&document.body.appendChild(a)}};this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};try{(new g(0===QSI.config.sampleRate?0:QSI.config.sampleRate||100,QSI.config.sampleType||
		"visitor","QSI_S_"+(QSI.config.interceptId||QSI.config.zoneId),QSI.config.hostedJSLocation)).start()}catch(d){}};

		// Nom de la classe CSS de la bannière de Qualtrics
		const classBannerQualtrics = "QSIInfoBar";

		// <body> de la page
		const body = document.body;
		// Texte qui sera injecté dans la div[aria-live=polite]
		const liveText = document.documentElement.lang === "fr-FR" ? "Bannière, haut de page" : "Banner, top of page";
		// Crée l'élément HTML pour accueillir le texte
		const liveDiv = document.createElement("div");

		// Ajout d'un identifiant à la div
		liveDiv.id = "liveDiv";
		// Ajout de l'attribut aria-live pour les outils d'assistance
		liveDiv.setAttribute("aria-live", "polite");
		// Ajout de la classe CSS sr-only pour les outils d'assistance
		liveDiv.setAttribute("class", "sr-only");
		// Injecter la div dans le body
		body.appendChild(liveDiv);

		// Ajout d'un observateur du DOM pour détecter la bannière de Qualtrics
		const observer = new MutationObserver(function (mutations) {
			const that = this;

			// Pour chaque mutation dans le body...
			mutations.forEach(function (mutation) {
				// ...identifier si la mutation contient des nouveaux éléments injectés dans la page
				if (mutation.addedNodes.length) {
					// Array.prototype.slice.call est utilisé pour convertir la nodeList en Array pour que le forEach fonctionne pour IE11
					// Pour chacun des éléments ajoutés...
					Array.prototype.slice.call(mutation.addedNodes).forEach(function (node) {
						// Valider si l'élément est de type Node.ELEMENT_NODE et qu'il contient la classe CSS
						if (node.nodeType === 1 && node.classList.contains(classBannerQualtrics)) {
							// Injecter le texte pour l'accessibilité à l'intérieur de la div[aria-live=polite]
							liveDiv.textContent = liveText;
							// Déconnecter l'observateur puisque la bannière est apparue
							that.disconnect();
						}
					});
				}
			});
		});

		// Démarrer l'observateur pour écouter les changements dans le DOM
		observer.observe(body, {
			childList: true
		});

		// Ajouter le script de Qualtrics avec un délai d'une seconde
		setTimeout(addQualtricsToPage, 1000);

	})();
});