1Drupal.locale = { 'pluralFormula': function ($n) { return Number(($n!=1)); }, 'strings': {"":{"An AJAX HTTP error occurred.":"Ein AJAX-HTTP-Fehler ist aufgetreten.","HTTP Result Code: !status":"HTTP-R\u00fcckgabe-Code: !status","An AJAX HTTP request terminated abnormally.":"Eine AJAX-Anfrage ist abnormal beendet worden.","Debugging information follows.":"Im Folgenden finden Sie Debugging-Informationen.","Path: !uri":"Pfad: !uri","StatusText: !statusText":"Statustext: !statusText","ResponseText: !responseText":"Antworttext: !responseText","ReadyState: !readyState":"ReadyState: !readyState","Hide":"Ausblenden","Show":"Anzeigen","Select all rows in this table":"Alle Zeilen dieser Tabelle ausw\u00e4hlen","Deselect all rows in this table":"Alle Zeilen dieser Tabelle abw\u00e4hlen","Autocomplete popup":"Popup zur automatischen Vervollst\u00e4ndigung","Searching for matches...":"Suche \u2026","Edit":"Bearbeiten","Re-order rows by numerical weight instead of dragging.":"Zeilen mittels numerischer Gewichtung ordnen statt mit Drag-and-Drop","Show row weights":"Zeilenreihenfolge anzeigen","Hide row weights":"Zeilenreihenfolge ausblenden","Drag to re-order":"Ziehen, um die Reihenfolge zu \u00e4ndern","Changes made in this table will not be saved until the form is submitted.":"\u00c4nderungen in dieser Tabelle werden nicht gespeichert, bis dieses Formular abgesendet wurde.","(active tab)":"(aktiver Reiter)","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"Die ausgew\u00e4hlte Datei %filename konnte nicht hochgeladen werden. Nur Dateien mit den folgenden Erweiterungen sind zul\u00e4ssig: %extensions.","Configure":"Konfigurieren","Enabled":"Aktiviert","Disabled":"Deaktiviert","Add":"Hinzuf\u00fcgen","Upload":"Hochladen","This field is required.":"Diese Angabe wird ben\u00f6tigt.","Not published":"Nicht ver\u00f6ffentlicht","Please wait...":"Bitte warten...","Only files with the following extensions are allowed: %files-allowed.":"Nur Dateien mit folgenden Erweiterungen sind zul\u00e4ssig: %files-allowed.","By @name on @date":"Von @name am @date","By @name":"Von @name","Not in menu":"Nicht im Men\u00fc","Alias: @alias":"Alias: @alias","No alias":"Kein Alias","New revision":"Neue Version","The changes to these blocks will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E button is clicked.":"Die \u00c4nderungen an diesen Bl\u00f6cken werden nicht gespeichert, bis auf dem \u003Cem\u003EBl\u00f6cke speichern\u003C\/em\u003E-Button geklickt wurde.","This permission is inherited from the authenticated user role.":"Diese Berechtigung wird von der Rolle \u201aAuthentifizierte Benutzer\u2018 ererbt.","No revision":"Keine Version","@number comments per page":"@number Kommentare pro Seite","Requires a title":"Ben\u00f6tigt einen Titel","Not restricted":"Uneingeschr\u00e4nkt","Not customizable":"Nicht anpassbar","Restricted to certain pages":"Auf bestimmte Seiten eingeschr\u00e4nkt","The block cannot be placed in this region.":"Der Block kann nicht in dieser Region abgelegt werden.","Hide summary":"Zusammenfassung verbergen","Edit summary":"Zusammenfassung bearbeiten","Don\u0027t display post information":"Beitragsinformationen nicht anzeigen","Inclusion: @value":"Einbeziehen: @value","Priority: @value":"Priorit\u00e4t: @value","Insert Teaser Break":"Anrisstext-Grenze einf\u00fcgen","Insert Page Break":"Seitenumbruch einf\u00fcgen","The document already contains a teaser break. Do you want to proceed by removing it first?":"Das Dokument enth\u00e4lt bereits eine Anrisstext-Grenze. Soll diese zuerst entfernt werden?","Embed Media Dialog":"Medien-Dialog einbetten","Embed media code":"Medien-Code einbetten","Paste embed code here":"eingebetteten Code hier einf\u00fcgen","Content can only be inserted into CKEditor in the WYSIWYG mode.":"Inhalt kann nur dann in den CKEditor eingegeben werden, wenn der WYSIWYG Modus aktiviert ist.","Close":"Schlie\u00dfen","Log messages":"Logmitteilungen","Please select a file.":"Bitte eine Datei w\u00e4hlen.","You are not allowed to operate on more than %num files.":"Sie d\u00fcrfen nicht mehr als %num Dateien gleichzeitig bearbeiten.","Please specify dimensions within the allowed range that is from 1x1 to @dimensions.":"Die Abmessungen der Bilder sind nur in dem Bereich von 1x1 bis @dimensions zul\u00e4ssig.","%filename is not an image.":"Die Datei %filename ist kein Bild.","Do you want to refresh the current directory?":"Soll das aktuelle Verzeichnis aktualisiert werden?","Delete selected files?":"Ausgew\u00e4hlte Dateien l\u00f6schen?","Please select a thumbnail.":"Bitte w\u00e4hlen Sie ein Miniaturbild aus.","You must select at least %num files.":"Sie m\u00fcssen mindestens %num Dateien ausw\u00e4hlen.","You can not perform this operation.":"Sie k\u00f6nnen diesen Vorgang nicht durchf\u00fchren.","Insert file":"Datei einf\u00fcgen","Change view":"Ansicht \u00e4ndern","Available tokens":"Verf\u00fcgbare Token","Insert this token into your form":"Dieses Token in Ihr Formular einf\u00fcgen","First click a text field to insert your tokens into.":"Klicken Sie zun\u00e4chst auf ein Textfeld, um Ihr Token einzuf\u00fcgen.","Remove group":"Gruppe entfernen","Apply (all displays)":"Anwenden (alle Anzeigen)","Apply (this display)":"Anwenden (diese Anzeige)","Revert to default":"Auf Standardwert zur\u00fccksetzen"}} };; 2/** 3 * @file 4 * Integrate Sidr library with Responsive Menus. 5 */ 6(function ($) { 7 /** 8 * Preparation for each element Sidr will affect. 9 */ 10 function sidr_it(menuElement, ind, iteration, $windowWidth) { 11 // Only apply if window size is correct. 12 var $media_size = iteration.media_size || 768; 13 // Call Sidr with our settings. 14 $(menuElement).once('responsive-menus-sidr', function() { 15 var $id = 'sidr-' + ind; 16 var $wrapper_id = 'sidr-wrapper-' + ind; 17 $(this).before('<div id="' + $wrapper_id + '"><a id="' + $id + '-button" href="#' + $id + '">' + iteration.trigger_txt + '</a></div>'); 18 $('#' + $wrapper_id).hide(); 19 if ($windowWidth <= $media_size) { 20 $('#' + $wrapper_id).show(); 21 $(this).hide(); 22 } 23 // Set 1/0 to true/false respectively. 24 $.each(iteration, function(key, value) { 25 if (value == 0) { 26 iteration[key] = false;
27 } 28 if (value == 1) { 29 iteration[key] = true; 30 } 31 }); 32 // Sidr power go. 33 $('#' + $id + '-button').sidr({ 34 name: $id || "sidr", 35 speed: parseInt(iteration.speed) || 200, 36 side: iteration.side || "left", 37 source: iteration.selectors[ind] || "#main-menu", 38 displace: iteration.displace, 39 renaming: iteration.renaming, 40 onOpen: function() { eval(iteration.onOpen); } || function() {}, 41 onClose: function() { eval(iteration.onClose); } || function() {} 42 }); 43 }); 44 } 45 46 47 /** 48 * Main loop. 49 */ 50 Drupal.behaviors.responsive_menus_sidr = { 51 attach: function (context, settings) { 52 settings.responsive_menus = settings.responsive_menus || {}; 53 var $windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 54 $.each(settings.responsive_menus, function(ind, iteration) { 55 if (iteration.responsive_menus_style != 'sidr') { 56 return true; 57 } 58 if (!iteration.selectors.length) { 59 return; 60 } 61 // Iterate each selector. 62 $.each(iteration.selectors, function(index, value) { 63 // Stop if there is no menu element. 64 if ($(value).length < 1) { 65 return true; 66 } 67 // Multi-level (selector hits multiple ul's). 68 if ($(value).length > 1) { 69 $(value).each(function(val_index) { 70 if (!$(this).parents('ul').length) { 71 sidr_it(this, index, iteration, $windowWidth); 72 } 73 }); 74 } 75 else { 76 // Single level. 77 sidr_it(value, index, iteration, $windowWidth); 78 } 79 }); 80 }); 81 82 // Handle window resizing. 83 $(window).resize(function() { 84 // Window width with legacy browsers. 85 $windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 86 $.each(settings.responsive_menus, function(ind, iteration) { 87 if (iteration.responsive_menus_style != 'sidr') { 88 return true; 89 } 90 if (!iteration.selectors.length) { 91 return; 92 } 93 // Iterate each selector. 94 $.each(iteration.selectors, function(index, value) { 95 // Stop if there is no menu element. 96 if ($(value).length < 1) { 97 return true; 98 } 99 var $wrapper_id = 'sidr-wrapper-' + index; 100 $media_size = iteration.media_size || 768; 101 if ($windowWidth <= $media_size) { 102 if (!$(value).hasClass('sidr-hidden')) { 103 $('#' + $wrapper_id).show(); 104 $(value).hide().addClass('sidr-hidden'); 105 } 106 } 107 else { 108 if ($(value).hasClass('sidr-hidden')) { 109 $('#' + $wrapper_id).hide(); 110 $(value).show().removeClass('sidr-hidden'); 111 } 112 } 113 }); 114 }); 115 }); 116 } 117 }; 118}(jQuery)); 119; 120/*! Sidr - v1.2.1 - 2013-11-06 121 * https://github.com/artberri/sidr 122 * Copyright (c) 2013 Alberto Varela; Licensed MIT */ 123(function(e){var t=!1,i=!1,n={isUrl:function(e){var t=RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");return t.test(e)?!0:!1},loadContent:function(e,t){e.html(t)},addPrefix:function(e){var t=e.attr("id"),i=e.attr("class");"string"==typeof t&&""!==t&&e.attr("id",t.replace(/([A-Za-z0-9_.\-]+)/g,"sidr-id-$1")),"string"==typeof i&&""!==i&&"sidr-inner"!==i&&e.attr("class",i.replace(/([A-Za-z0-9_.\-]+)/g,"sidr-class-$1")),e.removeAttr("style")},execute:function(n,s,a){"function"==typeof s?(a=s,s="sidr"):s||(s="sidr");var r,d,l,c=e("#"+s),u=e(c.data("body")),f=e("html"),p=c.outerWidth(!0),g=c.data("speed"),h=c.data("side"),m=c.data("displace"),v=c.data("onOpen"),y=c.data("onClose"),x="sidr"===s?"sidr-open":"sidr-open "+s+"-open";if("open"===n||"toggle"===n&&!c.is(":visible")){if(c.is(":visible")||t)return;if(i!==!1)return o.close(i,function(){o.open(s)}),void 0;t=!0,"left"===h?(r={left:p+"px"},d={left:"0px"}):(r={right:p+"px"},d={right:"0px"}),u.is("body")&&(l=f.scrollTop(),f.css("overflow-x","hidden").scrollTop(l)),m?u.addClass("sidr-animating").
123css({width:u.width(),position:"absolute"}).animate(r,g,function(){e(this).addClass(x)}):setTimeout(function(){e(this).addClass(x)},g),c.css("display","block").animate(d,g,function(){t=!1,i=s,"function"==typeof a&&a(s),u.removeClass("sidr-animating")}),v()}else{if(!c.is(":visible")||t)return;t=!0,"left"===h?(r={left:0},d={left:"-"+p+"px"}):(r={right:0},d={right:"-"+p+"px"}),u.is("body")&&(l=f.scrollTop(),f.removeAttr("style").scrollTop(l)),u.addClass("sidr-animating").animate(r,g).removeClass(x),c.animate(d,g,function(){c.removeAttr("style").hide(),u.removeAttr("style"),e("html").removeAttr("style"),t=!1,i=!1,"function"==typeof a&&a(s),u.removeClass("sidr-animating")}),y()}}},o={open:function(e,t){n.execute("open",e,t)},close:function(e,t){n.execute("close",e,t)},toggle:function(e,t){n.execute("toggle",e,t)},toogle:function(e,t){n.execute("toggle",e,t)}};e.sidr=function(t){return o[t]?o[t].apply(this,Array.prototype.slice.call(arguments,1)):"function"!=typeof t&&"string"!=typeof t&&t?(e.error("Method "+t+" does not exist on jQuery.sidr"),void 0):o.toggle.apply(this,arguments)},e.fn.sidr=function(t){var i=e.extend({name:"sidr",speed:200,side:"left",source:null,renaming:!0,body:"body",displace:!0,onOpen:function(){},onClose:function(){}},t),s=i.name,a=e("#"+s);if(0===a.length&&(a=e("<div />").attr("id",s).appendTo(e("body"))),a.addClass("sidr").addClass(i.side).data({speed:i.speed,side:i.side,body:i.body,displace:i.displace,onOpen:i.onOpen,onClose:i.onClose}),"function"==typeof i.source){var r=i.source(s);n.loadContent(a,r)}else if("string"==typeof i.source&&n.isUrl(i.source))e.get(i.source,function(e){n.loadContent(a,e)});else if("string"==typeof i.source){var d="",l=i.source.split(",");if(e.each(l,function(t,i){d+='<div class="sidr-inner">'+e(i).html()+"</div>"}),i.renaming){var c=e("<div />").html(d);c.find("*").each(function(t,i){var o=e(i);n.addPrefix(o)}),d=c.html()}n.loadContent(a,d)}else null!==i.source&&e.error("Invalid Sidr Source");return this.each(function(){var t=e(this),i=t.data("sidr");i||(t.data("sidr",s),"ontouchstart"in document.documentElement?(t.bind("touchstart",function(e){e.originalEvent.touches[0],this.touched=e.timeStamp}),t.bind("touchend",function(e){var t=Math.abs(e.timeStamp-this.touched);200>t&&(e.preventDefault(),o.toggle(s))})):t.click(function(e){e.preventDefault(),o.toggle(s)}))})}})(jQuery);; 124(function ($) { 125 126Drupal.googleanalytics = {}; 127 128$(document).ready(function() { 129 130 // Attach mousedown, keyup, touchstart events to document only and catch 131 // clicks on all elements. 132 $(document.body).bind("mousedown keyup touchstart", function(event) { 133 134 // Catch the closest surrounding link of a clicked element. 135 $(event.target).closest("a,area").each(function() { 136 137 // Is the clicked URL internal? 138 if (Drupal.googleanalytics.isInternal(this.href)) { 139 // Skip 'click' tracking, if custom tracking events are bound. 140 if ($(this).is('.colorbox') && (Drupal.settings.googleanalytics.trackColorbox)) { 141 // Do nothing here. The custom event will handle all tracking. 142 //console.info("Click on .colorbox item has been detected."); 143 } 144 // Is download tracking activated and the file extension configured for download tracking? 145 else if (Drupal.settings.googleanalytics.trackDownload && Drupal.googleanalytics.isDownload(this.href)) { 146 // Download link clicked. 147 gtag('event', Drupal.googleanalytics.getDownloadExtension(this.href).toUpperCase(), { 148 event_category: 'Downloads', 149 event_label: Drupal.googleanalytics.getPageUrl(this.href), 150 transport_type: 'beacon' 151 }); 152 } 153 else if (Drupal.googleanalytics.isInternalSpecial(this.href)) { 154 // Keep the internal URL for Google Analytics website overlay intact. 155 // @todo: May require tracking ID 156 var target = this; 157 $.each(Drupal.settings.googleanalytics.account, function () { 158 gtag('config', this, { 159 page_path: Drupal.googleanalytics.getPageUrl(target.href), 160 transport_type: 'beacon' 161 }); 162 }); 163 } 164 } 165 else { 166 if (Drupal.settings.googleanalytics.trackMailto && $(this).is("a[href^='mailto:'],area[href^='mailto:']")) { 167 // Mailto link clicked. 168 gtag('event', 'Click', { 169 event_category: 'Mails', 170 event_label: this.href.substring(7), 171 transport_type: 'beacon' 172 }); 173 } 174 else if (Drupal.settings.googleanalytics.trackOutbound && this.href.match(/^\w+:\/\//i)) { 175 if (Drupal.settings.googleanalytics.trackDomainMode !== 2 || (Drupal.settings.googleanalytics.trackDomainMode === 2 && !Drupal.googleanalytics.isCrossDomain(this.hostname, Drupal.settings.googleanalytics.trackCrossDomains))) { 176 // External link clicked / No top-level cross domain clicked. 177 gtag('event', 'Click', { 178 event_category: 'Outbound links', 179 event_label: this.href, 180 transport_type: 'beacon' 181 }); 182 } 183 } 184 } 185 }); 186 }); 187 188 // Track hash changes as unique pageviews, if this option has been enabled. 189 if (Drupal.settings.googleanalytics.trackUrlFragments) { 190 window.onhashchange = function() { 191 $.each(Drupal.settings.googleanalytics.account, function () { 192 gtag('config', this, { 193 page_path: location.pathname + location.search + location.hash 194 }); 195 }); 196 }; 197 } 198 199 // Colorbox: This event triggers when the transition has completed and the 200 // newly loaded content has been revealed. 201 if (Drupal.settings.googleanalytics.trackColorbox) { 202 $(document).bind("cbox_complete", function () {
203 var href = $.colorbox.element().attr("href"); 204 if (href) { 205 $.each(Drupal.settings.googleanalytics.account, function () { 206 gtag('config', this, { 207 page_path: Drupal.googleanalytics.getPageUrl(href) 208 }); 209 }); 210 } 211 }); 212 } 213 214}); 215 216/** 217 * Check whether the hostname is part of the cross domains or not. 218 * 219 * @param string hostname 220 * The hostname of the clicked URL. 221 * @param array crossDomains 222 * All cross domain hostnames as JS array. 223 * 224 * @return boolean 225 */ 226Drupal.googleanalytics.isCrossDomain = function (hostname, crossDomains) { 227 /** 228 * jQuery < 1.6.3 bug: $.inArray crushes IE6 and Chrome if second argument is 229 * `null` or `undefined`, https://bugs.jquery.com/ticket/10076, 230 * https://github.com/jquery/jquery/commit/a839af034db2bd934e4d4fa6758a3fed8de74174 231 * 232 * @todo: Remove/Refactor in D8 233 */ 234 if (!crossDomains) { 235 return false; 236 } 237 else { 238 return $.inArray(hostname, crossDomains) > -1 ? true : false; 239 } 240}; 241 242/** 243 * Check whether this is a download URL or not. 244 * 245 * @param string url 246 * The web url to check. 247 * 248 * @return boolean 249 */ 250Drupal.googleanalytics.isDownload = function (url) { 251 var isDownload = new RegExp("\\.(" + Drupal.settings.googleanalytics.trackDownloadExtensions + ")([\?#].*)?$", "i"); 252 return isDownload.test(url); 253}; 254 255/** 256 * Check whether this is an absolute internal URL or not. 257 * 258 * @param string url 259 * The web url to check. 260 * 261 * @return boolean 262 */ 263Drupal.googleanalytics.isInternal = function (url) { 264 var isInternal = new RegExp("^(https?):\/\/" + window.location.host, "i"); 265 return isInternal.test(url); 266}; 267 268/** 269 * Check whether this is a special URL or not. 270 * 271 * URL types: 272 * - gotwo.module /go/* links. 273 * 274 * @param string url 275 * The web url to check. 276 * 277 * @return boolean 278 */ 279Drupal.googleanalytics.isInternalSpecial = function (url) { 280 var isInternalSpecial = new RegExp("(\/go\/.*)$", "i"); 281 return isInternalSpecial.test(url); 282}; 283 284/** 285 * Extract the relative internal URL from an absolute internal URL. 286 * 287 * Examples: 288 * - https://mydomain.com/node/1 -> /node/1 289 * - https://example.com/foo/bar -> https://example.com/foo/bar 290 * 291 * @param string url 292 * The web url to check. 293 * 294 * @return string 295 * Internal website URL 296 */ 297Drupal.googleanalytics.getPageUrl = function (url) { 298 var extractInternalUrl = new RegExp("^(https?):\/\/" + window.location.host, "i"); 299 return url.replace(extractInternalUrl, ''); 300}; 301 302/** 303 * Extract the download file extension from the URL. 304 * 305 * @param string url 306 * The web url to check. 307 * 308 * @return string 309 * The file extension of the passed url. e.g. "zip", "txt" 310 */ 311Drupal.googleanalytics.getDownloadExtension = function (url) { 312 var extractDownloadextension = new RegExp("\\.(" + Drupal.settings.googleanalytics.trackDownloadExtensions + ")([\?#].*)?$", "i"); 313 var extension = extractDownloadextension.exec(url); 314 return (extension === null) ? '' : extension[1]; 315}; 316 317})(jQuery); 318;
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.