1Drupal.locale = { 'pluralFormula': function ($n) { return Number(($n!=1)); }, 'strings': {"":{"An AJAX HTTP error occurred.":"Hubo un error HTTP AJAX.","HTTP Result Code: !status":"C\u00f3digo de Resultado HTTP: !status","An AJAX HTTP request terminated abnormally.":"Una solicitud HTTP de AJAX termin\u00f3 de manera anormal.","Debugging information follows.":"A continuaci\u00f3n se detalla la informaci\u00f3n de depuraci\u00f3n.","Path: !uri":"Ruta: !uri","StatusText: !statusText":"StatusText: !statusText","ResponseText: !responseText":"ResponseText: !responseText","ReadyState: !readyState":"ReadyState: !readyState","CustomMessage: !customMessage":"CustomMessage: !customMessage","No results":"No hay resultados","clear":"limpiar","All":"Todo","New":"Nuevo","Modules installed within the last week.":"M\u00f3dulos instalados en la \u00faltima semana.","No modules added within the last week.":"No hay m\u00f3dulos adicionados en la \u00faltima semana.","Recent":"Reciente","Modules enabled\/disabled within the last week.":"M\u00f3dulos habilitados\/deshabilitados en la \u00faltima semana.","No modules were enabled or disabled within the last week.":"No hay m\u00f3dulos habilitados o deshabilitados en la \u00faltima semana.","@enabled of @total":"@enabled de @total","Re-order rows by numerical weight instead of dragging.":"Reordenar las filas por peso num\u00e9rico en lugar de arrastrar.","Show row weights":"Mostrar pesos de la fila","Hide row weights":"Ocultar pesos de la fila","Drag to re-order":"Arrastre para reordenar","Changes made in this table will not be saved until the form is submitted.":"Los cambios realizados en esta tabla no se guardar\u00e1n hasta que se env\u00ede el formulario","Hide":"Ocultar","Show":"Mostrar","Show shortcuts":"Mostrar atajos","Also allow !name role to !permission?":"\u00bfTambi\u00e9n permitir al rol !name el permiso !permission?","Disabled":"Desactivado","Enabled":"Activado","Edit":"Editar","Add":"Agregar","Configure":"Configurar","all":"todo","Other":"Otro(s)","Select":"Seleccionar","@count year from now":"@count a\u00f1o desde ahora","@count years from now":"@count a\u00f1os desde ahora","Next":"Siguiente","none":"ninguno","Sunday":"Domingo","Monday":"Lunes","Tuesday":"Martes","Wednesday":"Mi\u00e9rcoles","Thursday":"Jueves","Friday":"Viernes","Saturday":"S\u00e1bado","Upload":"Subir al servidor","Done":"Hecho","OK":"OK","This field is required.":"Este campo es obligatorio.","Prev":"Previo","Mon":"Lun","Tue":"Mar","Wed":"Mi\u00e9","Thu":"Jue","Fri":"Vie","Sat":"S\u00e1b","Sun":"Dom","January":"Enero","February":"Febrero","March":"Marzo","April":"Abril","May":"Mayo","June":"Junio","July":"Julio","August":"Agosto","September":"Septiembre","October":"Octubre","November":"Noviembre","December":"Diciembre","Select all rows in this table":"Seleccionar todas las filas de esta tabla","Deselect all rows in this table":"Quitar la selecci\u00f3n a todas las filas de esta tabla","Today":"Hoy","Jan":"Ene","Mar":"Mar","Apr":"Abr","Jun":"Jun","Jul":"Jul","Aug":"Ago","Sep":"Sep","Oct":"Oct","Nov":"Nov","Dec":"Dic","Su":"Do","Mo":"Lu","Tu":"Ma","We":"Mi","Th":"Ju","Fr":"Vi","Sa":"Sa","Not published":"No publicado","Please wait...":"Espere, por favor...","mm\/dd\/yy":"mm\/dd\/yy","Only files with the following extensions are allowed: %files-allowed.":"S\u00f3lo se permiten archivos con las siguientes extensiones: %files-allowed.","By @name on @date":"Por @name en @date","By @name":"Por @name","Not in menu":"No est\u00e1 en un men\u00fa","Alias: @alias":"Alias: @alias","No alias":"Sin alias","New revision":"Nueva revisi\u00f3n","The changes to these blocks will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E button is clicked.":"Los cambios sobre estos bloques no se guardar\u00e1n hasta que no pulse el bot\u00f3n \u003Cem\u003EGuardar bloques\u003C\/em\u003E.","This permission is inherited from the authenticated user role.":"Este permiso se hereda del rol de usuario registrado.","No revision":"Sin revisi\u00f3n","@number comments per page":"@number comentarios por p\u00e1gina","Requires a title":"Necesita un t\u00edtulo","Not restricted":"Sin restricci\u00f3n","(active tab)":"(solapa activa)","Not customizable":"No personalizable","Restricted to certain pages":"Restringido a algunas p\u00e1ginas","The block cannot be placed in this region.":"El bloque no se puede colocar en esta regi\u00f3n.","Customize dashboard":"Personalizar panel de control","Hide summary":"Ocultar resumen","Edit summary":"Editar resumen","Don\u0027t display post information":"No mostrar informaci\u00f3n del env\u00edo","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"El archivo seleccionado %filename no se puede subir al srvidor. Solo se permiten archivos con las siguientes extensiones: %extensions.","Autocomplete popup":"Ventana emergente con autocompletado","Searching for matches...":"Bu
1scando coincidencias","Hide shortcuts":"Ocultar atajos","The response failed verification so will not be processed.":"La respuesta de verificaci\u00f3n fall\u00f3, por lo que no se procesar\u00e1.","The callback URL is not local and not trusted: !url":"La URL de llamada no es local y no es confiable: !url","Click update to save the configuration":"Pulse actualizar para guardar la configuraci\u00f3n","Please select a file.":"Seleccione un documento, por favor.","You are not allowed to operate on more than %num files.":"No tiene permiso para actuar sobre m\u00e1s de %num documentos.","Please specify dimensions within the allowed range that is from 1x1 to @dimensions.":"Especifique unas dimensiones dentro de las permitidas, por favor. Eso va desde 1 \u00d7 1 a @dimensions.","%filename is not an image.":"%filename no es una imagen.","Insert file":"Insertar archivo","Change view":"Cambiar vista","Ignored from settings":"Ignorado por los ajustes","Colorbox":"Colorbox","Automatic alias":"Alias autom\u00e1tico","Available tokens":"Comodines disponibles","Insert this token into your form":"Inserte este comod\u00edn en su formulario","First click a text field to insert your tokens into.":"Primero haga clic en un campo de texto en el que quiera insertar sus patrones de reemplazo.","Loading token browser...":"Cargando navegador de comodines...","Remove group":"Eliminar grupo","Apply (all displays)":"Aplicar (todas las presentaciones)","Apply (this display)":"Aplicar (esta presentaci\u00f3n)","Revert to default":"Volver al valor inicial","Close":"Cerrar","List additional actions":"Lista adicional de acciones"}} };; 2 3/** 4 * Cookie plugin 1.0 5 * 6 * Copyright (c) 2006 Klaus Hartl (stilbuero.de) 7 * Dual licensed under the MIT and GPL licenses: 8 * http://www.opensource.org/licenses/mit-license.php 9 * http://www.gnu.org/licenses/gpl.html 10 * 11 */ 12jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}}; 13; 14/** 15 * @file 16 * jQuery code. 17 * Based on code: Adrian "yEnS" Mato Gondelle, twitter: @adrianmg 18 * Modifications for Drupal: Grzegorz Bartman [email protected] 19 */ 20 21 22// Setting up popup. 23// 0 means disabled; 1 means enabled. 24var popupStatus = 0; 25 26/** 27 * Loading popup with jQuery. 28 */ 29function popup_message_load_popup() { 30 // Loads popup only if it is disabled. 31 if (popupStatus === 0) { 32 jQuery("#popup-message-background").css({ 33 "opacity": "0.7" 34 }); 35 jQuery("#popup-message-background").fadeIn("slow"); 36 jQuery("#popup-message-window").fadeIn("slow"); 37 popupStatus = 1; 38 } 39} 40 41/** 42 * Disabling popup with jQuery. 43 */ 44function popup_message_disable_popup() { 45 // Disables popup only if it is enabled. 46 if (popupStatus == 1) { 47 jQuery("#popup-message-background").fadeOut("slow"); 48 jQuery("#popup-message-window").fadeOut("slow"); 49 jQuery('#popup-message-content').empty().remove(); 50 popupStatus = 0; 51 } 52} 53 54/** 55 * Centering popup. 56 */ 57function popup_message_center_popup(width, height) { 58 // Request data for centering. 59 var windowWidth = document.documentElement.clientWidth; 60 var windowHeight = document.documentElement.clientHeight; 61 62 var popupWidth = 0; 63 if (typeof width == "undefined") { 64 popupWidth = $("#popup-message-window").width(); 65 } 66 else { 67 popupWidth = width; 68 } 69 var popupHeight = 0; 70 if (typeof width == "undefined") { 71 popupHeight = $("#popup-message-window").height(); 72 } 73 else { 74 popupHeight = height; 75 } 76 77 // Centering. 78 jQuery("#popup-message-window").css({ 79 "position": "absolute", 80 "width" : popupWidth + "px", 81 "height" : popupHeight + "px", 82 "top": windowHeight / 2 - popupHeight / 2, 83 "left": windowWidth / 2 - popupWidth / 2 84 }); 85 // Only need force for IE6. 86 jQuery("#popup-message-background").css({ 87 "height": windowHeight 88 }); 89 90} 91 92/** 93 * Display popup message. 94 */ 95function popup_message_display_popup(popup_message_title, popup_message_body, width, height) { 96 jQuery('body').append("<div id='popup-message-window'><a id='popup-message-close'>X</a><br /><h1 class='popup-message-title'>" + popup_message_title + "</h1><div id='popup-message-content'>" + popup_message_body + "</div></div><div id='popup-message-background'></div>"); 97 98 // Loading popup. 99 popup_message_center_popup(width, height); 100 popup_message_load_popup(); 101 102 // Closing popup. 103 // Click the x event! 104 jQuery("#popup-message-close").click(function() { 105 popup_message_disable_popup(); 106 }); 107 // Click out event! 108 jQuery("#popup-message-background").click(function() { 109 popup_message_disable_popup(); 110 }); 111 // Press Escape event! 112 jQuery(document).keypress(function(e) { 113 if (e.keyCode == 27 && popupStatus == 1) { 114 popup_message_disable_popup(); 115 } 116 }); 117} 118 119/** 120 * Helper function for get last element from object. 121 * Used if on page is loaded more than one message. 122 */ 123function popup_message_get_last_object_item(variable_data) { 124 if (typeof(variable_data) == 'object') { 125 variable_data = variable_data[(variable_data.length - 1)]; 126 } 127 return variable_data; 128} 129 130Drupal.behaviors.popup_message = { 131 attach: function(context) { 132 var timestamp = (+new Date()); 133 var check_cookie = Drupal.settings.popup_message.check_cookie; 134 check_cookie = popup_message_get_last_object_item(check_cookie); 135 var popup_message_cookie = jQuery.cookie("popup_message_displayed"),
136 delay = Drupal.settings.popup_message.delay * 1000, 137 show_popup = false; 138 if (!popup_message_cookie || check_cookie == 0) { 139 // Set cookie. 140 jQuery.cookie("popup_message_displayed", timestamp, {path: '/'}); 141 // Display message. 142 show_popup = true; 143 } 144 else { 145 popup_message_cookie = parseInt(popup_message_cookie, 10); 146 show_popup = timestamp < popup_message_cookie + delay; 147 } 148 149 if (show_popup) { 150 var run_popup = function () { 151 // Get variables. 152 var popup_message_title = Drupal.settings.popup_message.title, 153 popup_message_body = Drupal.settings.popup_message.body, 154 popup_message_width = Drupal.settings.popup_message.width, 155 popup_message_height = Drupal.settings.popup_message.height; 156 157 popup_message_title = popup_message_get_last_object_item(popup_message_title); 158 popup_message_body = popup_message_get_last_object_item(popup_message_body); 159 popup_message_width = popup_message_get_last_object_item(popup_message_width); 160 popup_message_height = popup_message_get_last_object_item(popup_message_height); 161 popup_message_display_popup( 162 popup_message_title, 163 popup_message_body, 164 popup_message_width, 165 popup_message_height); 166 }; 167 168 var trigger_time = delay; 169 setTimeout(run_popup, trigger_time); 170 } 171 } 172}; 173; 174(function($) { 175 Drupal.behaviors.custom_search = { 176 attach: function(context) { 177 178 if (!Drupal.settings.custom_search.solr) { 179 // Check if the search box is not empty on submit 180 $('form.search-form', context).submit(function(){ 181 var $this = $(this); 182 var box = $this.find('input.custom-search-box'); 183 if (box.val() != undefined && box.val() == '') { 184 $this.find('input.custom-search-box').addClass('error'); 185 return false; 186 } 187 // If basic search is hidden, copy or value to the keys 188 if ($this.find('#edit-keys').parents('div.element-invisible').attr('class') == 'element-invisible') { 189 $this.find('#edit-keys').val($this.find('#edit-or').val()); 190 $this.find('#edit-or').val(''); 191 } 192 return true; 193 }); 194 } 195 196 // Search from target 197 $('form.search-form').attr('target', Drupal.settings.custom_search.form_target); 198 199 // Displays Popup. 200 $('form.search-form input.custom-search-box', context).bind('click focus', function(e){ 201 var $parentForm = $(this).parents('form'); 202 // check if there's something in the popup and displays it 203 var popup = $parentForm.find('fieldset.custom_search-popup'); 204 if (popup.find('input,select').length && !popup.hasClass('opened')) { 205 popup.fadeIn().addClass('opened'); 206 } 207 e.stopPropagation(); 208 }); 209 $(document).bind('click focus', function(){ 210 $('fieldset.custom_search-popup').hide().removeClass('opened'); 211 }); 212 213 // Handle checkboxes 214 $('.custom-search-selector input:checkbox', context).each(function(){ 215 var el = $(this); 216 if (el.val() == 'c-all') { 217 el.change(function(){ 218 $(this).parents('.custom-search-selector').find('input:checkbox[value!=c-all]').attr('checked', false); 219 }); 220 } 221 else { 222 if (el.val().substr(0,2) == 'c-') { 223 el.change(function(){ 224 $('.custom-search-selector input:checkbox').each(function(){ 225 if ($(this).val().substr(0,2) == 'o-') { 226 $(this).attr('checked', false); 227 } 228 }); 229 $(this).parents('.custom-search-selector').find('input:checkbox[value=c-all]').attr('checked', false); 230 }); 231 } else { 232 el.change(function(){ 233 $(this).parents('.custom-search-selector').find('input:checkbox[value!=' + el.val() + ']').attr('checked', false); 234 }); 235 } 236 } 237 }); 238 239 // Handle popup. 240 var popup = $('fieldset.custom_search-popup:not(.custom_search-processed)', context).addClass("custom_search-processed"); 241 popup.click(function(e){ 242 e.stopPropagation(); 243 }) 244 popup.append('<a class="custom_search-popup-close" href="#">
244' + Drupal.t('Close') + '</a>'); 245 $('a.custom_search-popup-close').click(function(e){ 246 $('fieldset.custom_search-popup.opened').hide().removeClass('opened'); 247 e.preventDefault(); 248 }); 249 250 } 251 } 252})(jQuery); 253; 254; 255(function ($) { 256 257/** 258 * Toggle the visibility of a fieldset using smooth animations. 259 */ 260Drupal.toggleFieldset = function (fieldset) { 261 var $fieldset = $(fieldset); 262 if ($fieldset.is('.collapsed')) { 263 var $content = $('> .fieldset-wrapper', fieldset).hide(); 264 $fieldset 265 .removeClass('collapsed') 266 .trigger({ type: 'collapsed', value: false }) 267 .find('> legend span.fieldset-legend-prefix').html(Drupal.t('Hide')); 268 $content.slideDown({ 269 duration: 'fast', 270 easing: 'linear', 271 complete: function () { 272 Drupal.collapseScrollIntoView(fieldset); 273 fieldset.animating = false; 274 }, 275 step: function () { 276 // Scroll the fieldset into view. 277 Drupal.collapseScrollIntoView(fieldset); 278 } 279 }); 280 } 281 else { 282 $fieldset.trigger({ type: 'collapsed', value: true }); 283 $('> .fieldset-wrapper', fieldset).slideUp('fast', function () { 284 $fieldset 285 .addClass('collapsed') 286 .find('> legend span.fieldset-legend-prefix').html(Drupal.t('Show')); 287 fieldset.animating = false; 288 }); 289 } 290}; 291 292/** 293 * Scroll a given fieldset into view as much as possible. 294 */ 295Drupal.collapseScrollIntoView = function (node) { 296 var h = document.documentElement.clientHeight || document.body.clientHeight || 0; 297 var offset = document.documentElement.scrollTop || document.body.scrollTop || 0; 298 var posY = $(node).offset().top; 299 var fudge = 55; 300 if (posY + node.offsetHeight + fudge > h + offset) { 301 if (node.offsetHeight > h) { 302 window.scrollTo(0, posY); 303 } 304 else { 305 window.scrollTo(0, posY + node.offsetHeight - h + fudge); 306 } 307 } 308}; 309 310Drupal.behaviors.collapse = { 311 attach: function (context, settings) { 312 $('fieldset.collapsible', context).once('collapse', function () { 313 var $fieldset = $(this); 314 // Expand fieldset if there are errors inside, or if it contains an 315 // element that is targeted by the URI fragment identifier. 316 var anchor = location.hash && location.hash != '#' ? ', ' + location.hash : ''; 317 if ($fieldset.find('.error' + anchor).length) { 318 $fieldset.removeClass('collapsed'); 319 } 320 321 var summary = $('<span class="summary"></span>'); 322 $fieldset. 323 bind('summaryUpdated', function () { 324 var text = $.trim($fieldset.drupalGetSummary()); 325 summary.html(text ? ' (' + text + ')' : ''); 326 }) 327 .trigger('summaryUpdated'); 328 329 // Turn the legend into a clickable link, but retain span.fieldset-legend 330 // for CSS positioning. 331 var $legend = $('> legend .fieldset-legend', this); 332 333 $('<span class="fieldset-legend-prefix element-invisible"></span>') 334 .append($fieldset.hasClass('collapsed') ? Drupal.t('Show') : Drupal.t('Hide')) 335 .prependTo($legend) 336 .after(' '); 337 338 // .wrapInner() does not retain bound events. 339 var $link = $('<a class="fieldset-title" href="#"></a>') 340 .prepend($legend.contents()) 341 .appendTo($legend) 342 .click(function () { 343 var fieldset = $fieldset.get(0); 344 // Don't animate multiple times. 345 if (!fieldset.animating) { 346 fieldset.animating = true; 347 Drupal.toggleFieldset(fieldset); 348 } 349 return false; 350 }); 351 352 $legend.append(summary); 353 }); 354 } 355}; 356 357})(jQuery); 358; 359(function ($) { 360 361/** 362 * Retrieves the summary for the first element. 363 */ 364$.fn.drupalGetSummary = function () { 365 var callback = this.data('summaryCallback'); 366 return (this[0] && callback) ? $.trim(callback(this[0])) : ''; 367}; 368 369/** 370 * Sets the summary for all matched elements. 371 * 372 * @param callback 373 * Either a function that will be called each time the summary is 374 * retrieved or a string (which is returned each time). 375 */ 376$.fn.drupalSetSummary = function (callback) { 377 var self = this; 378 379 // To facilitate things, the callback should always be a function. If it's 380 // not, we wrap it into an anonymous function which just returns the value. 381 if (typeof callback != 'function') { 382 var val = callback; 383 callback = function () { return val; }; 384 } 385 386 return this 387 .data('summaryCallback', callback) 388 // To prevent duplicate events, the handlers are first removed and then 389 // (re-)added. 390 .unbind('formUpdated.summary') 391 .bind('formUpdated.summary', function () { 392 self.trigger('summaryUpdated'); 393 }) 394 // The actual summaryUpdated handler doesn't fire when the callback is 395 // changed, so we have to do this manually. 396 .trigger('summaryUpdated'); 397}; 398 399/** 400 * Sends a 'formUpdated' event each time a form element is modified. 401 */ 402Drupal.behaviors.formUpdated = { 403 attach: function (context) { 404 // These events are namespaced so that we can remove them later. 405 var events = 'change.formUpdated click.formUpdated blur.formUpdated keyup.formUpdated'; 406 $(context) 407 // Since context could be an input element itself, it's added back to 408 // the jQuery object and filtered again. 409 .find(':input').andSelf().filter(':input') 410 // To prevent duplicate events, the handlers are first removed and then 411 // (re-)added. 412 .unbind(events).bind(events, function () { 413 $(this).trigger('formUpdated'); 414 }); 415 } 416}; 417 418/** 419 * Prepopulate form fields with information from the visitor cookie. 420 */ 421Drupal.behaviors.fillUserInfoFromCookie = { 422 attach: function (context, settings) { 423 $('form.user-info-from-cookie').once('user-info-from-cookie', function () { 424 var formContext = this; 425 $.each(['name', 'mail', 'homepage'], function () { 426 var $element = $('[name=' + this + ']', formContext); 427 var cookie = $.cookie('Drupal.visitor.' + this); 428 if ($element.length && cookie) { 429 $element.val(cookie); 430 } 431 }); 432 }); 433 } 434}; 435 436})(jQuery); 437; 438!function(e){"use strict";e.fn.meanmenu=function(n){var a={meanMenuTarget:jQuery(this),meanMenuContainer:"body",meanMenuClose:"X",meanMenuCloseSize:"18px",meanMenuOpen:"<span /><span /><span />",meanRevealPosition:"right",meanRevealPositionDistance:"0",meanRevealColour:"",meanScreenWidth:"480",meanNavPush:"",meanShowChildren:!0,meanExpandableChildren:!0,meanExpand:"+",meanContract:"-",meanRemoveAttrs:!1,onePage:!1,meanDisplay:"block",removeElements:""};n=e.extend(a,n);var t=document.documentElement.clientWidth||document.body.clientWidth;return this.each(function(){var e=n.meanMenuTarget,a=n.meanMenuTarget.clone();a.find(".contextual-links-wrapper").remove().find("ul.contextual-links").remove();var r=n.meanMenuContainer,i=n.meanMenuClose,u=n.meanMenuCloseSize,m=n.meanMenuOpen,s=n.meanRevealPosition,l=n.meanRevealPositionDistance,o=n.meanRevealColour,c=n.meanScreenWidth,d=n.meanNavPush,v=".meanmenu-reveal",h=n.meanShowChildren,y=n.meanExpandableChildren,j=n.meanExpand,Q=n.meanContract,f=n.meanRemoveAttrs,g=n.onePage,p=n.meanDisplay,C=n.removeElements,x=!1;(navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/Blackberry/i)||navigator.userAgent.match(/Windows Phone/i))&&(x=!0),(navigator.userAgent.match(/MSIE 8/i)||navigator.userAgent.match(/MSIE 7/i))&&jQuery("html").css("overflow-y","scroll");var w="",b=function(){if("center"===s){var e=document.documentElement.clientWidth||document.body.clientWidth,n=e/2-22+"px";
438w="left:"+n+";right:auto;",x?jQuery(".meanmenu-reveal").animate({left:n}):jQuery(".meanmenu-reveal").css("left",n)}},A=!1,M=!1;"right"===s&&(w="right:"+l+";left:auto;"),"left"===s&&(w="left:"+l+";right:auto;"),b();var E="",P=function(){E.html(jQuery(E).is(".meanmenu-reveal.meanclose")?i:m)},W=function(){jQuery(".mean-bar,.mean-push").remove(),jQuery(r).removeClass("mean-container"),jQuery(e).css("display",p),A=!1,M=!1,jQuery(C).removeClass("mean-remove")},k=function(){var n="background:"+o+";color:"+o+";"+w;if(c>=t){jQuery(C).addClass("mean-remove"),M=!0,jQuery(r).addClass("mean-container"),jQuery(".mean-container").prepend('<div class="mean-bar"><a href="#nav" class="meanmenu-reveal" style="'+n+'">Show Navigation</a><nav class="mean-nav"></nav></div>');var i=jQuery(a).html();jQuery(".mean-nav").html(i),f&&jQuery("nav.mean-nav ul, nav.mean-nav ul *").each(function(){jQuery(this).is(".mean-remove")?jQuery(this).attr("class","mean-remove"):jQuery(this).removeAttr("class"),jQuery(this).removeAttr("id")}),jQuery(e).before('<div class="mean-push" />'),jQuery(".mean-push").css("margin-top",d),jQuery(e).hide(),jQuery(".meanmenu-reveal").show(),jQuery(v).html(m),E=jQuery(v),jQuery(".mean-nav ul").hide(),h?y?(jQuery(".mean-nav ul ul").each(function(){jQuery(this).children().length&&jQuery(this,"li:first").parent().append('<a class="mean-expand" href="#" style="font-size: '+u+'">'+j+"</a>")}),jQuery(".mean-expand").on("click",function(e){e.preventDefault(),jQuery(this).hasClass("mean-clicked")?(jQuery(this).text(j),jQuery(this).prev("ul").slideUp(300,function(){})):(jQuery(this).text(Q),jQuery(this).prev("ul").slideDown(300,function(){})),jQuery(this).toggleClass("mean-clicked")})):jQuery(".mean-nav ul ul").show():jQuery(".mean-nav ul ul").hide(),jQuery(".mean-nav ul li").last().addClass("mean-last"),E.removeClass("meanclose"),jQuery(E).click(function(e){e.preventDefault(),A===!1?(E.css("text-align","center"),E.css("text-indent","0"),E.css("font-size",u),jQuery(".mean-nav ul:first").slideDown(),A=!0):(jQuery(".mean-nav ul:first").slideUp(),A=!1),E.toggleClass("meanclose"),P(),jQuery(C).addClass("mean-remove")}),g&&jQuery(".mean-nav ul > li > a:first-child").on("click",function(){jQuery(".mean-nav ul:first").slideUp(),A=!1,jQuery(E).toggleClass("meanclose").html(m)})}else W()};x||jQuery(window).resize(function(){t=document.documentElement.clientWidth||document.body.clientWidth,t>c,W(),c>=t?(k(),b()):W()}),jQuery(window).resize(function(){t=document.documentElement.clientWidth||document.body.clientWidth,x?(b(),c>=t?M===!1&&k():W()):(W(),c>=t&&(k(),b()))}),k()})}}(jQuery);; 439/** 440 * @file 441 * Integrate Mean Menu library with Responsive Menus module. 442 */ 443(function ($) { 444 Drupal.behaviors.responsive_menus_mean_menu = { 445 attach: function (context, settings) { 446 settings.responsive_menus = settings.responsive_menus || {}; 447 $.each(settings.responsive_menus, function(ind, iteration) { 448 if (iteration.responsive_menus_style != 'mean_menu') { 449 return true; 450 } 451 if (!iteration.selectors.length) { 452 return; 453 } 454 // Set 1/0 to true/false respectively. 455 $.each(iteration, function(key, value) { 456 if (value == 0) { 457 iteration[key] = false; 458 } 459 if (value == 1) { 460 iteration[key] = true; 461 } 462 }); 463 // Call meanmenu() with our custom settings. 464 $(iteration.selectors).once('responsive-menus-mean-menu', function() { 465 $(this).meanmenu({ 466 meanMenuContainer: iteration.container || "body", 467 meanMenuClose: iteration.close_txt || "X", 468 meanMenuCloseSize: iteration.close_size || "18px", 469 meanMenuOpen: iteration.trigger_txt || "<span /><span /><span />", 470 meanRevealPosition: iteration.position || "right", 471 meanScreenWidth: iteration.media_size || "480", 472 meanExpand: iteration.expand_txt || "+", 473 meanContract: iteration.contract_txt || "-", 474 meanShowChildren: iteration.show_children, 475 meanExpandableChildren: iteration.expand_children, 476 meanRemoveAttrs: iteration.remove_attrs 477 }); 478 }); 479 }); 480 481 } 482 }; 483}(jQuery)); 484; 485/** 486 * @file 487 * SEARCH AUTOCOMPLETE javascript mechanism. 488 * 489 * Sponsored by: 490 * www.axiomcafe.fr 491 */ 492 493(function ($) { 494 495 //Escape characters in html terms. 496 function escapeHtml(text) { 497 return text 498 .replace(/&/g, "&") 499 .replace(/</g, "<") 500 .replace(/>/g, ">") 501 .replace(/"/g, """); 502 } 503 504 // Escape characters in pattern before creating regexp. 505 function escapeRegExp(str) { 506 str = $.trim(str); 507 return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); 508 } 509 510 function strip(html) 511 { 512 var tmp = document.createElement("DIV"); 513 tmp.innerHTML = html; 514 return tmp.textContent || tmp.innerText || ""; 515 } 516 517 // Autocomplete 518 $.ui.autocomplete.prototype._renderItem = function (ul, item) { 519 var term = escapeHtml(this.term); 520 var first = ("group" in item) ? 'first' : ''; 521 var innerHTML = '<div class="ui-autocomplete-fields ' + first + '">'; 522 item.value = strip(item.value); 523 item.label = Drupal.checkPlain(item.label); 524 if (item.fields) { 525 $.each(item.fields, function(key, value) { 526 var regex = new RegExp('(' + escapeRegExp(term) + ')', 'gi'); 527 var output = Drupal.checkPlain(value); 528 if (value.indexOf('src=') == -1 && value.indexOf('href=') == -1) { 529 output = output.replace(regex, "<span class='ui-autocomplete-field-term'>$1</span>"); 530 innerHTML += ('<div class="ui-autocomplete-field-' + key + '">' + output + '</div>'); 531 } else { 532 innerHTML += ('<div class="ui-autocomplete-field-' + key + '">' + value + '</div>'); 533 } 534 }); 535 } else { 536 innerHTML += ('<div class="ui-autocomplete-field">' + item.label + '</div>'); 537 } 538 innerHTML += '</div>'; 539 540 var group = ''; 541 if ("group" in item) { 542 groupId = typeof(item.group.group_id) !== 'undefined' ? item.group.group_id : ''; 543 groupName = typeof(item.group.group_name) !== 'undefined' ? item.group.group_name : ''; 544 group += ('<div class="ui-autocomplete-field-group ' + groupId + '">' + groupName + '</div>'); 545 $(group).appendTo(ul); 546 } 547 var elem = $("<li class=ui-menu-item-" + first + "></li>" ) 548 .append("<a>" + innerHTML + "</a>"); 549 if (item.value == '') { 550 elem = $("<li class='ui-state-disabled ui-menu-item-" + first + " ui-menu-item'>" + item.label + "</li>" ); 551 } 552 elem.data("item.autocomplete", item).appendTo(ul); 553 554 Drupal.attachBehaviors(elem); 555 return elem; 556 }; 557 558 $.ui.autocomplete.prototype._resizeMenu = function() { 559 var ul = this.menu.element; 560 ul.outerWidth(Math.max(ul.width("").outerWidth() + 5, this.options.position.of == null ? this.element.outerWidth() : this.options.position.of.outerWidth())); 561 }; 562 563 Drupal.behaviors.search_autocomplete = { 564 attach: function(context) { 565 if (Drupal.settings.search_autocomplete) { 566 $.each(Drupal.settings.search_autocomplete, function(key, value) { 567 $(Drupal.settings.search_autocomplete[key].selector).bind("mouseover", function() { 568 $(Drupal.settings.search_autocomplete[key].selector).addClass('form-autocomplete ui-autocomplete-processed').attr('data-sa-theme', Drupal.settings.search_autocomplete[key].theme).autocomplete({ 569 minLength: Drupal.settings.search_autocomplete[key].minChars, 570 source: function(request, response) { 571 $(Drupal.settings.search_autocomplete[key].selector).addClass('throbbing'); 572 // External URL: 573 if (Drupal.settings.search_autocomplete[key].type == 'external') { 574 $.getJSON(Drupal.settings.search_autocomplete[key].datas, { q: encodeURIComponent(request.term) }, function (results) { 575 // Only return the number of values set in the settings. 576 if (results.length) { 577 results.slice(0, Drupal.settings.search_autocomplete[key].max_sug); 578 } 579 response(results); 580 }); 581 } 582 // Internal URL: 583 else if (Drupal.settings.search_autocomplete[key].type == 'internal' || Drupal.settings.search_autocomplete[key].type == 'view') { 584 $.getJSON(Drupal.settings.search_autocomplete[key].datas, request, function (results) { 585 // Only return the number of values set in the settings. 586 if (results.length) { 587 results.slice(0, Drupal.settings.search_autocomplete[key].max_sug); 588 } 589 response(results); 590 }); 591 } 592 // Static resources: 593 else if (Drupal.settings.search_autocomplete[key].type == 'static') { 594 var results = $.ui.autocomplete.filter(Drupal.settings.search_autocomplete[key].datas, request.term); 595 if (results.length) { 596 results.slice(0, Drupal.settings.search_autocomplete[key].max_sug); 597 } 598 response(results); 599 } 600 }, 601 open: function(event, ui) { 602 $(".ui-autocomplete li.ui-menu-item:odd").addClass("ui-menu-item-odd"); 603 $(".ui-autocomplete li.ui-menu-item:even").addClass("ui-menu-item-even"); 604 $(Drupal.settings.search_autocomplete[key].selector).removeClass('throbbing'); 605 }, 606 select: function(event, ui) { 607 if (Drupal.settings.search_autocomplete[key].auto_redirect == 1 && ui.item.link) { 608 document.location.href = ui.item.link; 609 } else if (Drupal.settings.search_autocomplete[key].auto_submit == 1 && ui.item.value) { 610 $(this).val(ui.item.value); 611 $(this).closest("form").submit(); 612 } 613 }, 614 focus: function (event, ui) { 615 if (typeof ui.item.group != 'undefined') { 616 if (ui.item.group.group_id == 'no_results' || ui.item.group.group_id == 'all_results') { 617 event.preventDefault(); 618 } 619 } 620 }, 621 appendTo: $(Drupal.settings.search_autocomplete[key].selector).parent() 622 }).autocomplete("widget").attr("data-sa-theme", Drupal.settings.search_autocomplete[key].theme); 623 }); 624 $(Drupal.settings.search_autocomplete[key].selector).trigger('mouseover'); 625 }); 626 } 627 } 628 }; 629})(jQuery); 630; 631(function ($) { 632 633Drupal.googleanalytics = {}; 634 635$(document).ready(function() { 636 637 // Attach mousedown, keyup, touchstart events to document only and catch 638 // clicks on all elements. 639 $(document.body).bind("mousedown keyup touchstart", function(event) { 640 641 // Catch the closest surrounding link of a clicked element. 642 $(event.target).closest("a,area").each(function() { 643 644 // Is the clicked URL internal? 645 if (Drupal.googleanalytics.isInternal(this.href)) { 646 // Skip 'click' tracking, if custom tracking events are bound. 647 if ($(this).is('.colorbox') && (Drupal.settings.googleanalytics.trackColorbox)) {
648 // Do nothing here. The custom event will handle all tracking. 649 //console.info("Click on .colorbox item has been detected."); 650 } 651 // Is download tracking activated and the file extension configured for download tracking? 652 else if (Drupal.settings.googleanalytics.trackDownload && Drupal.googleanalytics.isDownload(this.href)) { 653 // Download link clicked. 654 ga("send", { 655 "hitType": "event", 656 "eventCategory": "Downloads", 657 "eventAction": Drupal.googleanalytics.getDownloadExtension(this.href).toUpperCase(), 658 "eventLabel": Drupal.googleanalytics.getPageUrl(this.href), 659 "transport": "beacon" 660 }); 661 } 662 else if (Drupal.googleanalytics.isInternalSpecial(this.href)) { 663 // Keep the internal URL for Google Analytics website overlay intact. 664 ga("send", { 665 "hitType": "pageview", 666 "page": Drupal.googleanalytics.getPageUrl(this.href), 667 "transport": "beacon" 668 }); 669 } 670 } 671 else { 672 if (Drupal.settings.googleanalytics.trackMailto && $(this).is("a[href^='mailto:'],area[href^='mailto:']")) { 673 // Mailto link clicked. 674 ga("send", { 675 "hitType": "event", 676 "eventCategory": "Mails", 677 "eventAction": "Click", 678 "eventLabel": this.href.substring(7), 679 "transport": "beacon" 680 }); 681 } 682 else if (Drupal.settings.googleanalytics.trackOutbound && this.href.match(/^\w+:\/\//i)) { 683 if (Drupal.settings.googleanalytics.trackDomainMode !== 2 || (Drupal.settings.googleanalytics.trackDomainMode === 2 && !Drupal.googleanalytics.isCrossDomain(this.hostname, Drupal.settings.googleanalytics.trackCrossDomains))) { 684 // External link clicked / No top-level cross domain clicked. 685 ga("send", { 686 "hitType": "event", 687 "eventCategory": "Outbound links", 688 "eventAction": "Click", 689 "eventLabel": this.href, 690 "transport": "beacon" 691 }); 692 } 693 } 694 } 695 }); 696 }); 697 698 // Track hash changes as unique pageviews, if this option has been enabled. 699 if (Drupal.settings.googleanalytics.trackUrlFragments) { 700 window.onhashchange = function() { 701 ga("send", { 702 "hitType": "pageview", 703 "page": location.pathname + location.search + location.hash 704 }); 705 }; 706 } 707 708 // Colorbox: This event triggers when the transition has completed and the 709 // newly loaded content has been revealed. 710 if (Drupal.settings.googleanalytics.trackColorbox) { 711 $(document).bind("cbox_complete", function () { 712 var href = $.colorbox.element().attr("href"); 713 if (href) { 714 ga("send", { 715 "hitType": "pageview", 716 "page": Drupal.googleanalytics.getPageUrl(href) 717 }); 718 } 719 }); 720 } 721 722}); 723 724/** 725 * Check whether the hostname is part of the cross domains or not. 726 * 727 * @param string hostname 728 * The hostname of the clicked URL. 729 * @param array crossDomains 730 * All cross domain hostnames as JS array. 731 * 732 * @return boolean 733 */ 734Drupal.googleanalytics.isCrossDomain = function (hostname, crossDomains) { 735 /** 736 * jQuery < 1.6.3 bug: $.inArray crushes IE6 and Chrome if second argument is 737 * `null` or `undefined`, https://bugs.jquery.com/ticket/10076, 738 * https://github.com/jquery/jquery/commit/a839af034db2bd934e4d4fa6758a3fed8de74174 739 * 740 * @todo: Remove/Refactor in D8 741 */ 742 if (!crossDomains) { 743 return false; 744 } 745 else { 746 return $.inArray(hostname, crossDomains) > -1 ? true : false; 747 } 748}; 749 750/** 751 * Check whether this is a download URL or not. 752 * 753 * @param string url 754 * The web url to check. 755 * 756 * @return boolean 757 */ 758Drupal.googleanalytics.isDownload = function (url) { 759 var isDownload = new RegExp("\\.(" + Drupal.settings.googleanalytics.trackDownloadExtensions + ")([\?#].*)?$", "i"); 760 return isDownload.test(url); 761}; 762 763/** 764 * Check whether this is an absolute internal URL or not. 765 * 766 * @param string url 767 * The web url to check. 768 * 769 * @return boolean 770 */ 771Drupal.googleanalytics.isInternal = function (url) { 772 var isInternal = new RegExp("^(https?):\/\/" + window.location.host, "i"); 773 return isInternal.test(url); 774}; 775 776/** 777 * Check whether this is a special URL or not. 778 * 779 * URL types: 780 * - gotwo.module /go/* links. 781 * 782 * @param string url 783 * The web url to check. 784 * 785 * @return boolean 786 */ 787Drupal.googleanalytics.isInternalSpecial = function (url) { 788 var isInternalSpecial = new RegExp("(\/go\/.*)$", "i"); 789 return isInternalSpecial.test(url); 790}; 791 792/** 793 * Extract the relative internal URL from an absolute internal URL. 794 * 795 * Examples: 796 * - https://mydomain.com/node/1 -> /node/1 797 * - https://example.com/foo/bar -> https://example.com/foo/bar 798 * 799 * @param string url 800 * The web url to check. 801 * 802 * @return string 803 * Internal website URL 804 */ 805Drupal.googleanalytics.getPageUrl = function (url) { 806 var extractInternalUrl = new RegExp("^(https?):\/\/" + window.location.host, "i"); 807 return url.replace(extractInternalUrl, ''); 808}; 809 810/** 811 * Extract the download file extension from the URL. 812 * 813 * @param string url 814 * The web url to check. 815 * 816 * @return string 817 * The file extension of the passed url. e.g. "zip", "txt" 818 */ 819Drupal.googleanalytics.getDownloadExtension = function (url) { 820 var extractDownloadextension = new RegExp("\\.(" + Drupal.settings.googleanalytics.trackDownloadExtensions + ")([\?#].*)?$", "i"); 821 var extension = extractDownloadextension.exec(url); 822 return (extension === null) ? '' : extension[1]; 823}; 824 825})(jQuery); 826;
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.