PageSourceSearch

https://www.ville-gravelines.fr/sites/default/files/js/js_ottY7cKnyKm9RrD3CihHuMeryzGk8JVZnzKAguWTFOA.js

js ville-gravelines.fr collected 2026-10-02 07:56:01 UTC 44,452 bytes, 485 lines download raw bytes

1(function ($) {
2  Drupal.behaviors.eu_cookie_compliance_popup = {
3    attach: function(context, settings) {
4      $('body').not('.cookies-processed').addClass('cookies-processed').each(function() {
5        try {
6          var enabled = Drupal.settings.eu_cookie_compliance.popup_enabled;
7          if (!enabled) {
8            return;
9          }
10          if (!Drupal.eu_cookie_compliance.cookiesEnabled()) {
11            return;
12          }
13          var status = Drupal.eu_cookie_compliance.getCurrentStatus();
14          var clicking_confirms = Drupal.settings.eu_cookie_compliance.popup_clicking_confirmation;
15          var scroll_confirms = Drupal.settings.eu_cookie_compliance.popup_scrolling_confirmation;
16          var agreed_enabled = Drupal.settings.eu_cookie_compliance.popup_agreed_enabled;
17          var popup_hide_agreed = Drupal.settings.eu_cookie_compliance.popup_hide_agreed;
18          if (status == 0) {
19            var next_status = 1;
20            if (clicking_confirms) {
21              $('a, input[type=submit]').bind('click.eu_cookie_compliance', function() {
22                if (!agreed_enabled) {
23                  Drupal.eu_cookie_compliance.setStatus(1);
24                  next_status = 2;
25                }
26                Drupal.eu_cookie_compliance.changeStatus(next_status);
27              });
28            }
29
30            if (scroll_confirms) {
31              $(window).bind('scroll', function() {
32                if(!agreed_enabled) {
33                  Drupal.eu_cookie_compliance.setStatus(1);
34                  next_status = 2;
35                }
36                Drupal.eu_cookie_compliance.changeStatus(next_status);
37              });
38            }
39
40            $('.agree-button').click(function() {
41              if (!agreed_enabled) {
42                Drupal.eu_cookie_compliance.setStatus(1);
43                next_status = 2;
44              }
45              Drupal.eu_cookie_compliance.changeStatus(next_status);
46            });
47
48            Drupal.eu_cookie_compliance.createPopup(Drupal.settings.eu_cookie_compliance.popup_html_info);
49          } else if (status == 1) {
50            Drupal.eu_cookie_compliance.createPopup(Drupal.settings.eu_cookie_compliance.popup_html_agreed);
51            if (popup_hide_agreed) {
52              $('a, input[type=submit]').bind('click.eu_cookie_compliance_hideagreed', function() {
53                Drupal.eu_cookie_compliance.changeStatus(2);
54              });
55            }
56
57          } else {
58            return;
59          }
60        }
61        catch(e) {
62          return;
63        }
64      });
65    }
66  }
67
68  Drupal.eu_cookie_compliance = {};
69
70  Drupal.eu_cookie_compliance.createPopup = function(html) {
71    var popup = $(html)
72      .attr({"id": "cookies"})
73      .height(Drupal.settings.eu_cookie_compliance.popup_height)
74      .hide();
75    if (Drupal.settings.eu_cookie_compliance.popup_position) {
76      popup.prependTo("header");
77      var height = popup.height();
78      popup.show()
79        .attr({"class": "cookies-top clearfix"})
80    } else {
81      popup.appendTo("body");
82      height = popup.height();
83      popup.show()
84        .attr({"class": "cookies-bottom"})
85    }
86    Drupal.eu_cookie_compliance.attachEvents();
87  }
88
89  Drupal.eu_cookie_compliance.attachEvents = function() {
90    var clicking_confirms = Drupal.settings.eu_cookie_compliance.popup_clicking_confirmation;
91    var scroll_confirms = Drupal.settings.eu_cookie_compliance.popup_scrolling_confirmation;
92    var agreed_enabled = Drupal.settings.eu_cookie_compliance.popup_agreed_enabled;
93    $('.find-more-button').click(function() {
94      if (Drupal.settings.eu_cookie_compliance.popup_link_new_window) {
95        window.open(Drupal.settings.eu_cookie_compliance.popup_link);
96      }
97      else {
98        window.location.href = Drupal.settings.eu_cookie_compliance.popup_link;
99      }
100    });
101    $('.agree-button').click(function() {
102      var next_status = 1;
103      if(!agreed_enabled) {
104        Drupal.eu_cookie_compliance.setStatus(1);
105        next_status = 2;
106      }
107      if (clicking_confirms) {
108        $('a, input[type=submit]').unbind('click.eu_cookie_compliance');
109      }
110      Drupal.eu_cookie_compliance.changeStatus(next_status);
111    });
112    $('.hide-popup-button').click(function() {
113      Drupal.eu_cookie_compliance.changeStatus(2);
114    });
115  }
116
117  Drupal.eu_cookie_compliance.getCurrentStatus = function() {
118    return Drupal.eu_cookie_compliance.getCookie('cookie-agreed');
119  }
120
121  Drupal.eu_cookie_compliance.changeStatus = function(value) {
122    var status = Drupal.eu_cookie_compliance.getCurrentStatus();
123    if (status == value) return;
124    if (Drupal.settings.eu_cookie_compliance.popup_position) {
125      $(".cookies-top").animate({top: $("#cookies").height() * -1}, Drupal.settings.eu_cookie_compliance.popup_delay, function () {
126        if (status == 0) {
127          $("#cookies").addClass('agreed').html(Drupal.settings.eu_cookie_compliance.popup_html_agreed);
128          Drupal.eu_cookie_compliance.attachEvents();
129        }
130        if (status == 1) {
131          $("#cookies").remove();
132        }
133      });
134    } else {
135      $(".cookies-bottom").animate({bottom: $("#cookies").height() * -1}, Drupal.settings.eu_cookie_compliance.popup_delay, function () {
136        if (status == 0) {
137          $("#cookies").addClass('agreed').html(Drupal.settings.eu_cookie_compliance.popup_html_agreed);
138          Drupal.eu_cookie_compliance.attachEvents();
139        }
140        if (status == 1) {
141          $("#cookies").remove();
142        }
143      });
144    }
145    Drupal.eu_cookie_compliance.setStatus(value);
146  }
147
148  Drupal.eu_cookie_compliance.setStatus = function(status) {
149    var date = new Date();
150    date.setDate(date.getDate() + parseInt(Drupal.settings.eu_cookie_compliance.cookie_lifetime));
151    var cookie = "cookie-agreed=" + status + ";expires=" + date.toUTCString() + ";path=" + Drupal.settings.basePath;
152    if (Drupal.settings.eu_cookie_compliance.domain) {
153      cookie += ";domain="+Drupal.settings.eu_cookie_compliance.domain;
154    }
155    document.cookie = cookie;
156  }
157
158  Drupal.eu_cookie_compliance.hasAgreed = function() {
159    var status = Drupal.eu_cookie_compliance.getCurrentStatus();
160    if (status == 1 || status == 2) {
161      return true;
162    }
163    return false;
164  }
165
166
167  /**
168   * Verbatim copy of Drupal.comment.getCookie().
169   */
170  Drupal.eu_cookie_compliance.getCookie = function(name) {
171    var search = name + '=';
172    var returnValue = '';
173
174    if (document.cookie.length > 0) {
175      offset = document.cookie.indexOf(search);
176      if (offset != -1) {
177        offset += search.length;
178        var end = document.cookie.indexOf(';', offset);
179        if (end == -1) {
180          end = document.cookie.length;
181        }
182        returnValue = decodeURIComponent(document.cookie.substring(offset, end).replace(/\+/g, '%20'));
183      }
184    }
185
186    return returnValue;
187  }
188
189  Drupal.eu_cookie_compliance.cookiesEnabled = function() {
190    var cookieEnabled = (navigator.cookieEnabled) ? true : false;
191      if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
192        document.cookie="testcookie";
193        cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
194      }
195    return (cookieEnabled);
196  }
197
198})(jQuery);
199;
200var AccessConfig=function(){"use strict ";var e={Setup:{id:"accessconfig"},Setting:{useExtendContrast:!0},BodyActive:{classSetting:"active"},Overlay:{classSetting:"overlay"},ModalButton:{id:"button"},ModalContainer:{classSetting:"modal",titleLang:{en:"Accessibility setting",fr:"Paramètres d’accessibilité"},titleId:"title",titleClass:"title"},CloseButton:{id:"close",classSetting:"close",lang:{en:"close",fr:"fermer"},hiddenTextClass:"sr-only"},InlineContentContainer:{id:"inline-c"},FormFieldsetContent:{classSetting:"content"},FormFieldset:{classSetting:"fieldset"},LegendFieldset:{classSetting:"legend"},FormRadio:{classSetting:"radio"},ContrastFieldset:{id:"contrast"},ContrastLegend:{lang:{en:"Contrast",fr:"Contrastes"}},DefaultContrastCheckbox:{id:"default-contrast",value:"default-contrast",groupName:"contrast",lang:{en:"Default",fr:"Défaut"}},HighContrastCheckbox:{id:"high-contrast",value:"high-contrast",groupName:"contrast",lang:{en:"Reinforce",fr:"Renforcer"}},InvertContrastCheckbox:{id:"inv-contrast",value:"inv-contrast",groupName:"contrast",lang:{en:"Reverse",fr:"Inverser"}},DyslexiaFieldset:{id:"font"},DyslexiaLegend:{lang:{en:"Font (dyslexia)",fr:"Police (dyslexie)"}},DefaultFontCheckbox:{id:"default-font",value:"default-font",groupName:"font",lang:{en:"Default",fr:"Défaut"}},DyslexiaFontCheckbox:{id:"dys-font",value:"dys-font",groupName:"font",lang:{en:"Adapt",fr:"Adapter"}},LineSpacingFieldset:{id:"line-spacing"},LineSpacingLegend:{lang:{en:"Line spacing",fr:"Interlignage"}},DefaultLineSpacingCheckbox:{id:"default-spacing",value:"default-spacing",groupName:"line-spacing",lang:{en:"Default",fr:"Défaut"}},DyslexiaLineSpacingCheckbox:{id:"dys-spacing",value:"dys-spacing",groupName:"line-spacing",lang:{en:"Increase",fr:"Augmenter"}},JustificationFieldset:{id:"justification"},JustificationLegend:{lang:{en:"Justification",fr:"Justification"}},DefaultJustificationCheckbox:{id:"default-justification",value:"default-justification",groupName:"justification",lang:{en:"Default",fr:"Défaut"}},DyslexiaJustificationCheckbox:{id:"cancel-justification",value:"cancel-justification",groupName:"justification",lang:{en:"Remove",fr:"Supprimer"}},ImageReplacementFieldset:{id:"image"},ImageReplacementCSS:{replacementCss:"replace-img",replacementStyle:"replace-style"},ImageReplacementLegend:{lang:{en:"Images",fr:"Images"}},DefaultImageReplacementCheckbox:{id:"default-img",value:"default-img",groupName:"image",lang:{en:"Default",fr:"Défaut"}},ImageReplacementCheckbox:{id:"text-img",value:"text-img",groupName:"image",lang:{en:"Replace with text",fr:"Remplacer par du texte"}}},a={mode:null,cookieName:null,openObj:null,imgTab:null,imgSpan:null};function t(){var t=document.querySelector("body"),s=document.getElementById(a.mode).querySelectorAll("input");for(i=0,len=s.length;i<len;i++)s[i].addEventListener("click",function(){n(this)},!1);var o=function(e){for(var a=userPrefix+"-"+e+"=",t=document.cookie.split(";"),i=0;i<t.length;i++){for(var n=t[i];" "==n.charAt(0);)n=n.substring(1,n.length);if(0==n.indexOf(a))return n.substring(a.length,n.length)}return null}(a.cookieName);if(o){for(t.classList.add(o),i=0,len=s.length;i<len;i++)s[i].removeAttribute("checked");document.getElementById(o).setAttribute("checked","checked")}t.classList.contains(userPrefix+"-"+e.DefaultImageReplacementCheckbox.value)&&l(),t.classList.contains(userPrefix+"-"+e.ImageReplacementCheckbox.value)&&r()}function n(t){a.mode=t.getAttribute("name"),a.cookieName=t.getAttribute("name");var n=document.getElementById(a.mode).querySelectorAll("input"),s=document.querySelector("body");for(i=0,lenx=n.length;i<lenx;i++){var o=n[i].getAttribute("value");n[i].removeAttribute("checked"),o===userPrefix+"-"+e.DefaultImageReplacementCheckbox.value&&l(),s.classList.remove(o)}var c=t.getAttribute("value");t.setAttribute("checked","checked"),(o=t.getAttribute("value"))===userPrefix+"-"+e.ImageReplacementCheckbox.value&&r(),s.classList.add(c),d(a.cookieName,c,"180")}function r(){for(j=0,len=a.imgTab.length;j<len;
200j++)if(a.imgTab[j].parentNode){var e=a.imgTab[j].parentNode;a.imgTab[j]=e.replaceChild(a.imgSpan[j],a.imgTab[j])}}function l(){for(j=0,len=a.imgSpan.length;j<len;j++)if(a.imgSpan[j].parentNode){var e=a.imgSpan[j].parentNode;a.imgSpan[j]=e.replaceChild(a.imgTab[j],a.imgSpan[j])}}function s(t){document.body.classList.add(userPrefix+"-"+e.BodyActive.classSetting);var i=document.createElement("div");i.classList.add(userPrefix+"-"+e.Overlay.classSetting),document.body.appendChild(i),a.openObj=document.getElementById(userPrefix),a.openObj.style.display="block",document.getElementById(userPrefix+"-"+e.CloseButton.id).focus(),document.addEventListener("keydown",function i(n){if(27===n.keyCode){a.openObj.style.display="none",t.focus(),document.removeEventListener("keydown",i,!1),document.body.classList.remove(userPrefix+"-"+e.BodyActive.classSetting);var r=document.querySelector("."+userPrefix+"-"+e.Overlay.classSetting);r&&r.remove()}},!1);var n=document.getElementById(userPrefix+"-"+e.CloseButton.id);n.addEventListener("click",function i(){a.openObj.style.display="none";t.focus();n.removeEventListener("click",i,!1);document.body.classList.remove(userPrefix+"-"+e.BodyActive.classSetting);var r=document.querySelector("."+userPrefix+"-"+e.Overlay.classSetting);r&&r.remove()},!1),document.addEventListener("focus",o,!0)}function o(e){a.openObj&&!a.openObj.contains(e.target)&&(e.stopPropagation(),a.openObj.focus())}function d(e,a,t){if(t){var i=new Date;i.setTime(i.getTime()+24*t*60*60*1e3);var n="; expires="+i.toGMTString()}else n="";document.cookie=e+"="+a+n+"; path=/"}window.onload=function(){if(document.querySelector("[data-accessconfig-params]")){var n=document.querySelector("[data-accessconfig-params]");if(a.userParams=JSON.parse(n.getAttribute("data-accessconfig-params")),a.userParams.Prefix?userPrefix=a.userParams.Prefix:userPrefix="a42-ac",function(){function t(e){var a=e.tagName,t=document.createElement(a);for(var i in e)"tagName"!=i&&"function"!=typeof e[i]&&t.setAttribute(i,e[i]);return t}var n=(s=document.querySelector("html").getAttribute("lang"),s?(o=s.indexOf("-")>0?s.indexOf("-"):3,s.substring(0,o)):"en"),r=t({tagName:"div",id:userPrefix,class:userPrefix}),l=t({tagName:"div",class:userPrefix+"-"+e.FormFieldsetContent.classSetting});var s,o;if(1==a.userParams.Modal||void 0===a.userParams.Modal){r.setAttribute("role","dialog"),r.setAttribute("aria-labelledby",userPrefix+"-"+e.ModalContainer.titleId),r.setAttribute("tabindex","-1"),a.userParams.ContainerClass?r.classList.add(userPrefix+"-"+a.userParams.ContainerClass):r.classList.add(userPrefix+"-"+e.ModalContainer.classSetting);var d=t({tagName:"h1",id:userPrefix+"-"+e.ModalContainer.titleId});a.userParams.ModalTitle?d.classList.add(userPrefix+a.userParams.ModalTitle):d.classList.add(userPrefix+"-"+e.ModalContainer.titleClass);var c=document.createTextNode(e.ModalContainer.titleLang[n]);d.appendChild(c),r.appendChild(d);var u=t({tagName:"button",type:"button",id:userPrefix+"-"+e.CloseButton.id});a.userParams.ModalCloseButton?u.classList.add(userPrefix+a.userParams.ModalCloseButton):u.classList.add(userPrefix+"-"+e.CloseButton.classSetting);var m=t({tagName:"span",class:e.CloseButton.hiddenTextClass}),f=document.createTextNode(e.CloseButton.lang[n]);m.appendChild(f),u.appendChild(m),r.appendChild(u),r.appendChild(l)}else{var g=document.getElementById(e.Setup.id);g.appendChild(r),r.classList.add(userPrefix+"accessconfig-inline"),r.appendChild(l)}if(0!=a.userParams.Contrast){var p=t({tagName:"fieldset",id:userPrefix+"-"+e.ContrastFieldset.id}),x=document.createElement("legend"),C=document.createTextNode(e.ContrastLegend.lang[n]);x.appendChild(C),p.appendChild(x);var h=t({tagName:"input",type:"radio",checked:"checked",id:userPrefix+"-"+e.DefaultContrastCheckbox.id,value:userPrefix+"-"+e.DefaultContrastCheckbox.value,name:userPrefix+"-"+e.DefaultContrastCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DefaultContrastCheckbox.id}),v=document.createTextNode(e.DefaultContrastCheckbox.lang[n]);if(b.appendChild(v),p.appendChild(h),p.appendChild(b),e.Setting.useExtendContrast){var h=t({tagName:"input",type:"radio",id:userPrefix+"-"+e.HighContrastCheckbox.id,value:userPrefix+"-"+e.HighContrastCheckbox.value,name:userPrefix+"-"+e.HighContrastCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.HighContrastCheckbox.id}),v=document.createTextNode(e.HighContrastCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b)}var h=t({tagName:"input",type:"radio",id:userPrefix+"-"+e.InvertContrastCheckbox.id,value:userPrefix+"-"+e.InvertContrastCheckbox.value,name:userPrefix+"-"+e.InvertContrastCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.InvertContrastCheckbox.id}),v=document.createTextNode(e.InvertContrastCheckbox.lang[n]);
200b.appendChild(v),p.appendChild(h),p.appendChild(b),l.appendChild(p)}if(0!=a.userParams.Font){var p=t({tagName:"fieldset",id:userPrefix+"-"+e.DyslexiaFieldset.id}),x=document.createElement("legend"),C=document.createTextNode(e.DyslexiaLegend.lang[n]);x.appendChild(C),p.appendChild(x);var h=t({tagName:"input",type:"radio",checked:"checked",id:userPrefix+"-"+e.DefaultFontCheckbox.id,value:userPrefix+"-"+e.DefaultFontCheckbox.value,name:userPrefix+"-"+e.DefaultFontCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DefaultFontCheckbox.id}),v=document.createTextNode(e.DefaultFontCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b);var h=t({tagName:"input",type:"radio",id:userPrefix+"-"+e.DyslexiaFontCheckbox.id,value:userPrefix+"-"+e.DyslexiaFontCheckbox.value,name:userPrefix+"-"+e.DyslexiaFontCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DyslexiaFontCheckbox.id}),v=document.createTextNode(e.DyslexiaFontCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b),l.appendChild(p)}if(0!=a.userParams.LineSpacing){var p=t({tagName:"fieldset",id:userPrefix+"-"+e.LineSpacingFieldset.id}),x=document.createElement("legend"),C=document.createTextNode(e.LineSpacingLegend.lang[n]);x.appendChild(C),p.appendChild(x);var h=t({tagName:"input",type:"radio",checked:"checked",id:userPrefix+"-"+e.DefaultLineSpacingCheckbox.id,value:userPrefix+"-"+e.DefaultLineSpacingCheckbox.value,name:userPrefix+"-"+e.DefaultLineSpacingCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DefaultLineSpacingCheckbox.id}),v=document.createTextNode(e.DefaultLineSpacingCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b);var h=t({tagName:"input",type:"radio",id:userPrefix+"-"+e.DyslexiaLineSpacingCheckbox.id,value:userPrefix+"-"+e.DyslexiaLineSpacingCheckbox.value,name:userPrefix+"-"+e.DyslexiaLineSpacingCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DyslexiaLineSpacingCheckbox.id}),v=document.createTextNode(e.DyslexiaLineSpacingCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b),l.appendChild(p)}if(0!=a.userParams.Justification){var p=t({tagName:"fieldset",id:userPrefix+"-"+e.JustificationFieldset.id}),x=document.createElement("legend"),C=document.createTextNode(e.JustificationLegend.lang[n]);x.appendChild(C),p.appendChild(x);var h=t({tagName:"input",type:"radio",checked:"checked",id:userPrefix+"-"+e.DefaultJustificationCheckbox.id,value:userPrefix+"-"+e.DefaultJustificationCheckbox.value,name:userPrefix+"-"+e.DefaultJustificationCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DefaultJustificationCheckbox.id}),v=document.createTextNode(e.DefaultJustificationCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b);var h=t({tagName:"input",type:"radio",id:userPrefix+"-"+e.DyslexiaJustificationCheckbox.id,value:userPrefix+"-"+e.DyslexiaJustificationCheckbox.value,name:userPrefix+"-"+e.DyslexiaJustificationCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DyslexiaJustificationCheckbox.id}),v=document.createTextNode(e.DyslexiaJustificationCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b),l.appendChild(p)}if(0!=a.userParams.ImageReplacement){var p=t({tagName:"fieldset",id:userPrefix+"-"+e.ImageReplacementFieldset.id}),x=document.createElement("legend"),C=document.createTextNode(e.ImageReplacementLegend.lang[n]);x.appendChild(C),p.appendChild(x);var h=t({tagName:"input",type:"radio",checked:"checked",id:userPrefix+"-"+e.DefaultImageReplacementCheckbox.id,value:userPrefix+"-"+e.DefaultImageReplacementCheckbox.value,name:userPrefix+"-"+e.DefaultImageReplacementCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.DefaultImageReplacementCheckbox.id}),v=document.createTextNode(e.DefaultImageReplacementCheckbox.lang[n]);b.appendChild(v),p.appendChild(h),p.appendChild(b);var h=t({tagName:"input",type:"radio",id:userPrefix+"-"+e.ImageReplacementCheckbox.id,value:userPrefix+"-"+e.ImageReplacementCheckbox.value,name:userPrefix+"-"+e.ImageReplacementCheckbox.groupName}),b=t({tagName:"label",for:userPrefix+"-"+e.ImageReplacementCheckbox.id}),v=document.createTextNode(e.ImageReplacementCheckbox.lang[n]);
200b.appendChild(v),p.appendChild(h),p.appendChild(b),l.appendChild(p)}for(allFieldset=r.querySelectorAll("fieldset"),i=0,len=allFieldset.length;i<len;i++)a.userParams.FormFieldset?allFieldset[i].classList.add(userPrefix+a.userParams.FormFieldset):allFieldset[i].classList.add(userPrefix+"-"+e.FormFieldset.classSetting);for(allLegend=r.querySelectorAll("legend"),i=0,len=allLegend.length;i<len;i++)a.userParams.FormFieldsetLegend?allLegend[i].classList.add(userPrefix+a.userParams.FormFieldsetLegend):allLegend[i].classList.add(userPrefix+"-"+e.LegendFieldset.classSetting);for(allRadio=r.querySelectorAll('input[type="radio"]'),i=0,len=allRadio.length;i<len;i++)a.userParams.FormRadio?allRadio[i].classList.add(userPrefix+a.userParams.FormRadio):allRadio[i].classList.add(userPrefix+"-"+e.FormRadio.classSetting);var P=document.querySelector("body"),k=P.firstChild;1!=a.userParams.Modal&&void 0!==a.userParams.Modal||P.insertBefore(r,k)}(),1==a.userParams.Modal||void 0===a.userParams.Modal){var r=document.createElement("button");r.setAttribute("id",userPrefix+"-"+e.ModalButton.id),r.setAttribute("data-accessconfig-button","true");var l=document.querySelector("[data-accessconfig-buttonname]");l=document.createTextNode(l.getAttribute("data-accessconfig-buttonname"));r.appendChild(l),document.getElementById(e.Setup.id).appendChild(r);var o=document.querySelectorAll('[data-accessconfig-button="true"]');for(i=0,len=o.length;i<len;i++)o[i].addEventListener("click",function(){s(this)},!1)}0!=a.userParams.Contrast&&(a.mode=userPrefix+"-"+e.ContrastFieldset.id,a.cookieName="contrast",t()),0!=a.userParams.Font&&(a.mode=userPrefix+"-"+e.DyslexiaFieldset.id,a.cookieName="font",t()),0!=a.userParams.LineSpacing&&(a.mode=userPrefix+"-"+e.LineSpacingFieldset.id,a.cookieName="line-spacing",t()),0!=a.userParams.Justification&&(a.mode=userPrefix+"-"+e.JustificationFieldset.id,a.cookieName="justification",t()),0!=a.userParams.ImageReplacement&&(a.mode=userPrefix+"-"+e.ImageReplacementFieldset.id,a.cookieName="image",function(){a.imgSpan=new Array;var t="."+userPrefix+"-"+e.ImageReplacementCSS.replacementCss;for(a.imgTab=document.querySelectorAll(t),j=0,len=a.imgTab.length;j<len;j++){var i=document.createElement("span"),n=a.imgTab[j].getAttribute("alt"),r=document.createTextNode(n);i.appendChild(r),i.classList.add(userPrefix+"-"+e.ImageReplacementCSS.replacementCss),i.classList.add(userPrefix+"-"+e.ImageReplacementCSS.replacementStyle),a.imgSpan[j]=i}}(),t())}else console.log("AccessConfig warning : HTML missing")}}();[Element.prototype,CharacterData.prototype,DocumentType.prototype].forEach(function(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!==this.parentNode&&this.parentNode.removeChild(this)}})});;
201Drupal.locale = { 'pluralFormula': function ($n) { return Number(($n>1)); }, 'strings': {"":{"An AJAX HTTP error occurred.":"Une erreur HTTP AJAX s\u0027est produite.","HTTP Result Code: !status":"Code de statut HTTP : !status","An AJAX HTTP request terminated abnormally.":"Une requ\u00eate HTTP AJAX s\u0027est termin\u00e9e anormalement.","Debugging information follows.":"Informations de d\u00e9bogage ci-dessous.","Path: !uri":"Chemin : !uri","StatusText: !statusText":"StatusText: !statusText","ResponseText: !responseText":"ResponseText : !responseText","ReadyState: !readyState":"ReadyState : !readyState","CustomMessage: !customMessage":"Message personalis\u00e9 : !customMessage","Next":"Suivant","Status":"Statut","Remove":"Retirer","Disabled":"D\u00e9sactiv\u00e9","Enabled":"Activ\u00e9","Edit":"Modifier","Size":"Taille","Search":"Rechercher","None":"Aucun(e)","Link":"Lien","Center":"Centre","Required":"Requis","Parent":"Parent","Default":"Par d\u00e9faut","Sunday":"Dimanche","Monday":"Lundi","Tuesday":"Mardi","Wednesday":"Mercredi","Thursday":"Jeudi","Friday":"Vendredi","Saturday":"Samedi","Add":"Ajouter","View":"Voir","Filename":"Nom du fichier","Configure":"Configurer","All":"Tout","Done":"Termin\u00e9","N\/A":"N\/A","This field is required.":"Ce champ est requis.","Prev":"Pr\u00e9c.","Mon":"lun","Tue":"mar","Wed":"mer","Thu":"jeu","Fri":"ven","Sat":"sam","Sun":"dim","January":"janvier","February":"F\u00e9vrier","March":"mars","April":"avril","May":"mai","June":"juin","July":"juillet","August":"ao\u00fbt","September":"septembre","October":"octobre","November":"novembre","December":"d\u00e9cembre","Optional":"Facultatif","Operation":"Op\u00e9ration","Show":"Afficher","Key":"Clef","Select all rows in this table":"S\u00e9lectionner toutes les lignes du tableau","Deselect all rows in this table":"D\u00e9s\u00e9lectionner toutes les lignes du tableau","Today":"Aujourd\u0027hui","Jan":"jan","Feb":"f\u00e9v","Mar":"mar","Apr":"avr","Jun":"juin","Jul":"juil","Aug":"ao\u00fb","Sep":"sep","Oct":"oct","Nov":"nov","Dec":"d\u00e9c","Su":"Di","Mo":"Lu","Tu":"Ma","We":"Me","Th":"Je","Fr":"Ve","Sa":"Sa","Not published":"Non publi\u00e9","Shortcuts":"Raccourcis","Please wait...":"
201Veuillez patienter...","Hide":"Masquer","Loading":"En cours de chargement","mm\/dd\/yy":"dd\/mm\/yy","By @name on @date":"Par @name le @date","By @name":"Par @name","Not in menu":"Pas dans le menu","Alias: @alias":"Alias : @alias","No alias":"Aucun alias","New revision":"Nouvelle r\u00e9vision","Drag to re-order":"Cliquer-d\u00e9poser pour r\u00e9-organiser","Changes made in this table will not be saved until the form is submitted.":"Les changements effectu\u00e9s dans ce tableau ne seront pris en compte que lorsque la configuration aura \u00e9t\u00e9 enregistr\u00e9e.","The changes to these blocks will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E button is clicked.":"N\u0027oubliez pas de cliquer sur \u003Cem\u003EEnregistrer les blocs\u003C\/em\u003E pour confirmer les modifications apport\u00e9es ici.","Show shortcuts":"Afficher les raccourcis","This permission is inherited from the authenticated user role.":"Ce droit est h\u00e9rit\u00e9e du r\u00f4le de l\u0027utilisateur authentifi\u00e9.","No revision":"Aucune r\u00e9vision","@number comments per page":"@number commentaires par page","Requires a title":"Titre obligatoire","Not restricted":"Non restreint","(active tab)":"(onglet actif)","Not customizable":"Non personnalisable","Restricted to certain pages":"R\u00e9serv\u00e9 \u00e0 certaines pages","The block cannot be placed in this region.":"Le bloc ne peut pas \u00eatre plac\u00e9 dans cette r\u00e9gion.","Customize dashboard":"Personnaliser le tableau de bord","Hide summary":"Masquer le r\u00e9sum\u00e9","Edit summary":"Modifier le r\u00e9sum\u00e9","Don\u0027t display post information":"Ne pas afficher les informations de la contribution","@title dialog":"dialogue de @title","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"Le fichier s\u00e9lectionn\u00e9 %filename ne peut pas \u00eatre transf\u00e9r\u00e9. Seulement les fichiers avec les extensions suivantes sont permis : %extensions.","Re-order rows by numerical weight instead of dragging.":"R\u00e9-ordonner les lignes avec des poids num\u00e9riques plut\u00f4t qu\u0027en les d\u00e9pla\u00e7ant.","Show row weights":"Afficher le poids des lignes","Hide row weights":"Cacher le poids des lignes","Autocomplete popup":"Popup d\u0027auto-compl\u00e9tion","Searching for matches...":"Recherche de correspondances...","Hide shortcuts":"Cacher les raccourcis","The response failed verification so will not be processed.":"La v\u00e9rification de la r\u00e9ponse \u00e0 \u00e9chou\u00e9e, elle ne sera pas trait\u00e9e.","The callback URL is not local and not trusted: !url":"L\u0027URL de retour n\u0027est pas locale et n\u0027est pas de confiance : !url","Other":"Autre","Coordinates":"Coordonn\u00e9es","Value":"Valeur","Advanced":"Avanc\u00e9","Loading token browser...":"Chargement de l\u0027explorateur de jetons...","Available tokens":"Jetons (tokens) disponibles","Insert this token into your form":"Ins\u00e9rer ce jeton (\u003Cem\u003Etoken\u003C\/em\u003E) dans votre formulaire","First click a text field to insert your tokens into.":"Cliquez d\u0027abord sur un champ de texte pour ins\u00e9rer vos jetons (\u003Cem\u003Etokens\u003C\/em\u003E) dans celui -ci.","Content can only be inserted into CKEditor in the WYSIWYG mode.":"Le contenu peut seulement \u00eatre ins\u00e9r\u00e9 dans CKEditor en mode WYSIWYG.","Automatic alias":"Alias automatique","@label: @value":"@label: @value","Using defaults":"Utiliser les param\u00e8tres par d\u00e9faut.","Edit atom properties":"Modifier les propri\u00e9t\u00e9s du m\u00e9dia","Link Target":"Cible du Lien","Blank":"Vide","Copy":"Copier","Cut":"Couper","Paste":"Coller","CSS Classes":"Classes CSS","Alignment":"Alignement","Left":"Gauche","Right":"Droit","Back":"Pr\u00e9c\u00e9dent","Select files":"S\u00e9lectionner des fichiers","Add files":"Ajouter des fichiers","Stop current upload":"Arr\u00eater le transfert en cours","Start uploading queue":"Commencer le transfert de la file","Uploaded %d\/%d files":"%d\/%d fichiers transf\u00e9r\u00e9s","Drag files here.":"Glisser des fichiers ici.","Init error.":"Erreur lors de l\u0027initialisation.","HTTP Error.":"Erreur HTTP.","Security error.":"Erreur de s\u00e9curit\u00e9.","Generic error.":"Erreur g\u00e9n\u00e9rique.","IO error.":"Erreur d\u0027entr\u00e9es\/sorties.","Start upload":"D\u00e9marrer le transfert","Stop upload":"Arr\u00eater le transfert","%d files queued":"%d fichiers ajout\u00e9s dans la file","Close":"Fermer","Please wait while your files are being uploaded.":"Veuillez patienter pendant le transfert de vos fichiers.","Drop a resource from Scald media library here.":"Glisser-d\u00e9poser un m\u00e9dia ici pour l\u0027ajouter","You can\u0027t drop a resource of type %type in this field":"Vous ne pouvez pas d\u00e9poser une ressource du type %type dans ce champ","Remove group":"Supprimer le groupe","Apply (all displays)":"Appliquer (tous les affichages)","Revert to default":"R\u00e9tablir par d\u00e9faut","Apply (this display)":"Appliquer (cet affichage)","@count year from now":"@count ann\u00e9e \u00e0 partir de maintenant","@count years from now":"@count ann\u00e9es \u00e0 partir de maintenant","Submit":"Soumettre","Hide description":"Masquer la description","Show description":"Afficher la description","Ignored from settings":"Ignor\u00e9 volontairement","Also allow !name role to !permission?":"Autoriser \u00e9galement le r\u00f4le !name \u00e0 !permission ?","Translatable":"Traduisible","Not translatable":"Intraduisible","Restricted to certain languages":"Restreint \u00e0 certaines langues","No results":"Aucun r\u00e9sultat","Select all":"Tout s\u00e9lectionner","Query":"Requ\u00eate","Scheduled for publishing":"Planifi\u00e9 pour publication","Scheduled for unpublishing":"Planifi\u00e9 pour d\u00e9publication","Not scheduled":"Non planifi\u00e9","Publishing enabled":"Publication activ\u00e9e","Unpublishing enabled":"D\u00e9publication activ\u00e9e","Click update to save the configuration":"Cliquer sur \u0022Mettre \u00e0 jour\u0022 pour enregistrer la configuration","Inclusion: @value":"Inclusion : @value","Priority: @value":"Priorit\u00e9 : @value","One domain with multiple subdomains":"Un domaine avec plusieurs sous-domaines","Multiple top-level domains":"Plusieurs domaines de premier niveau","Universal web tracking opt-out":"Refus global du suivi sur le web","All pages with exceptions":"Toutes les pages avec exceptions","Excepted: @roles":"Except\u00e9 : @roles","On by default with opt out":"Activ\u00e9 par d\u00e9faut avec le refus du suivi","Off by default with opt in":"D\u00e9sactiv\u00e9 par d\u00e9faut avec l\u0027acceptation du suivi","Outbound links":"Liens sortants","Mailto links":"Liens mailto","Downloads":"T\u00e9l\u00e9chargements","Colorbox":"Colorbox","URL fragments":"Fragments d\u0027URL","Not tracked":"Non suivi","@items enabled":"@items activ\u00e9(s)","Site search":"Recherche du site","AdSe
201nse ads":"Annonces AdSense","Display features":"Fonctions d\u0027affichage","A single domain":"Un seul domaine","Anonymize IP":"Rendre l\u0027IP anonyme","No privacy":"Pas de confidentialit\u00e9","Read more":"Lire la suite","New":"Nouveau","Add item":"Ajouter un \u00e9l\u00e9ment","Remove selection":"Retirer l\u0027ic\u00f4ne s\u00e9lectionn\u00e9e","Select all children":"S\u00e9lectionner tous les enfants","Insert the entered address":"Ins\u00e9rer l\u0027adresse renseign\u00e9e","Loading Linkit dashboard...":"Chargement de l\u0027outil de lien interne","Open file browser":"Ouvrir le navigateur de fichiers","clear":"effacer","Recent":"R\u00e9cent","@enabled of @total":"@enabled sur @total","Normal entry":"Saisie normale","Manual entry":"Saisie manuelle","Add new option":"Ajouter une nouvelle option","Remove option":"Retirer l\u0027option","No default":"Aucune valeur par d\u00e9faut","no icon selected":"Pas d\u0027ic\u00f4ne s\u00e9lectionn\u00e9e","No redirects":"Aucune redirection","1 enabled redirect":"1 redirection activ\u00e9e","@count enabled redirects":"@count redirections activ\u00e9es","No parent":"Pas de parent","Associated with @name":"Associ\u00e9 \u00e0 @name","Destination: @scheme":"Destination : @scheme","Select All":"Tout s\u00e9lectionner","Select None":"Aucun","Itinerary":"Itin\u00e9raire","Search points of interest around it":"A proximit\u00e9","Please select a starting point and destination":"Veuillez s\u00e9lectionner un point de d\u00e9part et d\u0027arriv\u00e9e","List of points":"Liste des lieux","Type an address":"Saisissez une adresse","Deselect all":"Tout d\u00e9s\u00e9lectionner","List additional actions":"Lister les actions suppl\u00e9mentaires"}} };;
202
203/**
204 * Adds the autocomplete widget behavior to specified elements.
205 *
206 * This uses the jQuery UI Autocomplete widget included with Drupal core.
207 */
208Drupal.apachesolr_autocomplete = {
209  processOne: function(key, settings, context) {
210    // Look for items with the data-apachesolr-autocomplete-id attribute.
211    var jquery_version = jQuery.fn.jquery.split('.');
212    var apachesolr_autocomplete_selector = ((jquery_version[0] == 1 && jquery_version[1] >= 7) || jquery_version[0] > 1) ? 'ui-autocomplete' : 'autocomplete';
213    var apachesolr_autocomplete_search = jQuery(".apachesolr-autocomplete[data-apachesolr-autocomplete-id='"+ key +"']", context);
214    apachesolr_autocomplete_search.autocomplete({
215        // TODO: source should be a function, which should add any client-side filters to autocomplete request.
216        source: settings.path,
217        // TODO: autocomplete select event should handle more actions on select: filling/submitting the textfield, jumping to URL... others?
218        select: function(event, ui) {
219            console.log("autocomplete.select: " + ui.item.value); //TODO: Debug
220            // ui.item.label, ui.item.value, ui.item.count, etc.
221            // Handle selection of an element in the autocomplete widget.
222            jQuery(this).get(0).value = ui.item.value;
223            // We should submit the widget's parent form.
224            jQuery(this).closest("form").submit()
225        },
226        search: function(event, ui) {
227            jQuery(this).addClass('throbbing');
228        },
229        // The following doesn't fire--why??
230        response: function( event, ui ) {
231            console.log('autoccomplete.response fired');
232            jQuery(this).removeClass('throbbing');
233        },
234        open: function(event,ui) {
235            jQuery(this).removeClass('throbbing');
236        },
237        minLength: 2,
238        delay: 400
239    })
240    .addClass('form-autocomplete');
241    if (apachesolr_autocomplete_search.data(apachesolr_autocomplete_selector)) {
242      apachesolr_autocomplete_search.data(apachesolr_autocomplete_selector)._renderItem = Drupal.apachesolr_autocomplete.renderItem;
243    }
244  },
245    // TODO: USe JS-side theming. See http://engineeredweb.com/blog/11/5/javascript-theme-functions-drupal/
246  renderItem: function (ul, item) {
247      var theme_function = 'apachesolr_autocomplete_default';
248      if (item.theme) {
249          theme_function = item.theme;
250      }
251      theme_function = theme_function;
252      var html = Drupal.theme(theme_function, item);
253      return jQuery("<li>")
254          .data("item.autocomplete", item)
255          .append(html)
256          .appendTo(ul);
257  }
258};
259
260/**
261 * Implements the Drupal behavior functions that trigger on page load.
262 *
263 * Uses the JS Drupal.settings.apachesolr_autocomplete object set by the
264 * apachesolr_autocomplete module to change any relevant form elements currently
265 * on the page to be autocomplete-enabled.
266 */
267Drupal.behaviors.apachesolr_autocomplete = {
268  attach: function(context) {
269    // Check that settings exist.
270    if (!Drupal.settings.apachesolr_autocomplete || !Drupal.settings.apachesolr_autocomplete.forms) {
271      return;
272    }
273    // Cycle thru the settings array which contains:
274    //   key => settingsArray
275    // where
276    //   key: the data-apachesolr-autocomplete-id HTML attribute to look for
277    //        (which was added on the form_alter)
278    //   settings: and
279    jQuery.each(Drupal.settings.apachesolr_autocomplete.forms, function(key, settings) {
280      Drupal.apachesolr_autocomplete.processOne(key, settings, context);
281    });
282  }
283};
284
285/**
286 * Default theming function.
287 * @param item
288 *   The item object.
289 * @returns {string}
290 */
291Drupal.theme.prototype.apachesolr_autocomplete_default = function(item) {
292    return item.label;
293};
294;
295/**
296 *  CONFIGURATION
297 * 
298 * id: ID de la gmap
299 * infoWindow: boolean, true => custom infowindow, false => pas d'infowindow et marker non clickable
300 * infos_front: Tableaux de données à remonter en front (name, address, desc, link)
301 * default_marker: path to marker par défaut
302 * pois: [],
303 * styles : [],
304 * zoom : int, s'applique que s'il n'y a qu'un seul marker sur la map, sinon calculé automatiquement pour englober tous les markers
305 * hasCluster: bool
306 */
307
308function init_GMAP(gmap_conf){
309
310    (function($){
311
312        if(!gmap_conf){
313            console.log('Erreur: Pas de paramètres passés à la fonction init_GMAP');
314        }
315
316        var mapMarkers = [];
317        var mapId = gmap_conf.id;
318        var pois = gmap_conf.pois;
319        var map = new google.maps.Map( document.getElementById( mapId ), { center: new google.maps.LatLng(37.4419, -122.1419), zoom : gmap_conf.zoom, mapTypeId: google.maps.MapTypeId.ROADMAP, styles: gmap_conf.style}); 
320        
321    // Création de l'infoWindow et fonction de Toggle
322
323        var infowindow = new google.maps.InfoWindow();
324        function toggleInfowindow(i){
325            var $window = $('#'+mapId).parents('.media-ratio').find('.gmap-infowindow');
326            var $window_text = $window.find('.infowindow-text');
327            var attributes = gmap_conf.infos_front;
328
329            // Reset l'infowindow
330            $window_text.html('');
331
332            attributes.forEach(function(element, index){
333                if(element == 'address'){
334                    if(pois[i][element] != "" && pois[i][element] != ' '){
335                        $window_text.append('<div class="gmap-loc"><strong>Coordonnées :</strong><span class="gmap-address"></span></div>')
336                        .find('.gmap-address')
337                        .html(pois[i]['address']);
338                    }
339                }else if(element == 'link'){
340                    if( pois[i].has_link){
341                        $window_text.append('<div class="gmap-link"></div>')
342                        .find('.gmap-link')
343                        .html('<a href="'+pois[i].url+'">'+pois[i].url_title+'</a>');
344                    }
345                }else{
346                    if(pois[i][element] != "" && pois[i][element] != ' '){
347                        $window_text.append('<div class="gmap-'+element+'"></div>').find('.gmap-'+element).html(pois[i][element])
348                    }
349                }
350            });
351            $window.addClass('opened');
352        }
353
354        // Listener pour fermer l'infowindow Custom (générique)
355        $('.gmap-infowindow .gmap-close').on('click', function(){
356            $(this).parents('.gmap-infowindow').removeClass('opened');
357        });
358
359        //   Boucle sur chaque POI pour lui assigner un marker
360            for (i = 0; i < pois.length; i++){
361                var marker_icon = gmap_conf.default_marker;
362                if(pois[i].marker && pois[i].marker !== '' && pois[i].marker != ' '){
363                    marker_icon = pois[i].marker;
364                }
365                marker = new google.maps.Marker({
366                    position: new google.maps.LatLng( pois[i].latitude, pois[i].longitude ),
367                    map: map,
368                    icon: marker_icon,
369                    clickable: gmap_conf.infoWindow
370                });
371                if(gmap_conf.infoWindow){
372                    google.maps.event.addListener( marker, 'click', (function ( marker, i ) {
373                        return function() {
374                            toggleInfowindow(i);
375                        };
376                    })( marker, i ));
377                }
378                mapMarkers.push( marker );
379            }
380        
381        // Placement des points et gestion de l'affichage de la gmap (zoom, centrage, limites)
382        var bounds = new google.maps.LatLngBounds();
383        for( i=0; i < mapMarkers.length; i++ ){
384            bounds.extend( mapMarkers[i].getPosition() );
385        } 
386        map.setCenter( bounds.getCenter() );
387        if( mapMarkers.length > 1 ){
388            map.fitBounds( bounds );
389            var zoom = map.getZoom() - 1;
390            map.setZoom( zoom );
391            if(gmap_conf.hasCluster){
392                var options = {
393                    gridSize: 20,
394                    imagePath: gmap_conf.clusterImagePath
395                };
396			    var markerCluster = new MarkerClusterer(map, mapMarkers, options );
397            }
398        }else{
399            map.setZoom(13);
400        }
401
402        // Si page event, gmap a besoin que la map s'affiche naturellement pour init son center
403        if($('.btn-event-map').length){
404            $('.event-gmap').addClass('visible');
405            $(document).ready(function(){
406                $('.btn-event-map').click();
407            });
408        }
409
410    }(jQuery));
411};
412(function ($) {
413
414Drupal.behaviors.textarea = {
415  attach: function (context, settings) {
416    $('.form-textarea-wrapper.resizable', context).once('textarea', function () {
417      var staticOffset = null;
418      var textarea = $(this).addClass('resizable-textarea').find('textarea');
419      var grippie = $('<div class="grippie"></div>').mousedown(startDrag);
420
421      grippie.insertAfter(textarea);
422
423      function startDrag(e) {
424        staticOffset = textarea.height() - e.pageY;
425        textarea.css('opacity', 0.25);
426        $(document).mousemove(performDrag).mouseup(endDrag);
427        return false;
428      }
429
430      function performDrag(e) {
431        textarea.height(Math.max(32, staticOffset + e.pageY) + 'px');
432        return false;
433      }
434
435      function endDrag(e) {
436        $(document).unbind('mousemove', performDrag).unbind('mouseup', endDrag);
437        textarea.css('opacity', 1);
438      }
439    });
440  }
441};
442
443})(jQuery);
444;
445
446function addCaptcha () {
447
448  $ = jQuery;
449
450  $('form.google-recaptcha').each(
451      function () {
452
453        var frm = $(this);
454        var $element = $(frm).find('.recaptcha');
455        if ($element) {
456          var $id = $element.attr('id');
457          var $widget_id = grecaptcha.render($id,
458              {
459                'sitekey': Drupal.settings.google_recaptcha.options.sitekey,
460                'size': Drupal.settings.google_recaptcha.options.size,
461                'badge': Drupal.settings.google_recaptcha.options.badge,
462                'callback' : function (recaptchaToken) {
463                  $(frm).submit();
464                }
465              }
466          );
467
468          $(frm).find('button[type="submit"]').click(function (e) {
469            e.preventDefault();
470            grecaptcha.execute($widget_id);
471
472            $('<input />').attr('type', 'hidden')
473                .attr('name', $(this).attr('name'))
474                .attr('value', $(this).attr('value'))
475                .appendTo($(this).parent());
476          });
477
478
479        }
480      }
481  );
482
483}
484
485;

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.