/(function ($) { Drupal.behaviors.upvmCloneMenus = { attach: function (context, settings) { // clone sticky and mobile menu. var $context = $(context); $original = $('.region.region-navigation'); if (!$original.hasClass('navigation-cloned')) { var $clone = $('.region.region-navigation').clone().addClass('navigation-cloned'); var $input = $clone.find('#edit-search-api-views-fulltext-1'); var uri = $clone.find('#edit-search-api-views-fulltext-1-autocomplete').val(); var acdb = []; acdb[uri] = new Drupal.ACDB(uri); new Drupal.jsAC($input, acdb[uri], $context); $clone.appendTo('header.sticky-menu nav'); $clone = $('.region.region-navigation.navigation-cloned').clone(); $input = $clone.find('#edit-search-api-views-fulltext-1'); new Drupal.jsAC($input, acdb[uri], $context); $clone.appendTo('header#header-mobile div.region-navigation'); $('.region.region-header:first').clone().insertAfter('header.sticky-menu header.navbar-default'); $('.region.region-header:first').clone().insertAfter('header#header-mobile > div.wrapper-top-mobile'); // Remove bootstrap dropdown behaviour from Main and sticky menus (Desktop) $('#page-header ul.navbar-nav a.dropdown-toggle').removeAttr('data-toggle'); $('.sticky-menu.desktop-only ul.navbar-nav a.dropdown-toggle').removeAttr('data-toggle'); $('#header-mobile ul.navbar-nav a.dropdown-toggle').removeAttr('data-toggle'); // Set tabindex = -1 on sticky menu $('.sticky-menu.desktop-only a').attr('tabindex', '-1'); } } }; })(jQuery); ;/*})'"*/ ;/*})'"*/ /*! jquery.cookie v1.4.1 | MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); ;/*})'"*/ ;/*})'"*/ /** * Provides Select2 plugin for elements. */ (function ($, window, document) { String.prototype.extTrim = function (char) { var trimRegex = new RegExp('^' + char + '+|' + char + '+$', "g"); if (trimRegex.test(this)) { return this.replace(trimRegex, ''); } return this.toString(); }; String.prototype.quote_trim = function () { var trimRegex = new RegExp('^"(.*)?"$', "g"), resultString = this; while (trimRegex.test(resultString)) { resultString = this.replace(trimRegex, '$1'); } return resultString.toString(); }; String.prototype.regExpReplace = function (rule, replaceValue, ruleFlags) { ruleFlags = ruleFlags || 'g'; var trimRegex = new RegExp(rule, ruleFlags), resultString = this; resultString = this.replace(trimRegex, replaceValue); return resultString.toString(); }; String.prototype.trimDotes = function() { return this.extTrim('\\.'); } Drupal.select2functions = Drupal.select2functions || {}; /** * @constructor * @this {Drupal.Select2} * @param {DOM} context The context. */ Drupal.Select2 = function(context) { /** * Current context. * @public */ this.context = context; this.contextSettings = null; this.Defaults = Drupal.Select2.Defaults; this.functionsScopesNames = [ 'Drupal.Select2.functionsScope', 'Drupal.select2functions' ]; function setSelect2Defaults () { $.extend(true, $.fn.select2.defaults, Drupal.Select2.Defaults); $.extend(true, $.fn.select2.defaults, Drupal.settings.select_2.default_settings); } setSelect2Defaults(); }; /** * Default options for the Select2. * @public */ Drupal.Select2.Defaults = Drupal.Select2.Defaults || { 'adaptContainerCssClass': function (className) { if (!Drupal.Select2.Defaults.classesListForCopyFromElement && !Drupal.Select2.Defaults.classesExcludedForCopy) { return clazz; } switch (typeof Drupal.Select2.Defaults.classesListForCopyFromElement) { case 'string': if (className == Drupal.Select2.Defaults.classesListForCopyFromElement) { return className; } break; case 'object': if ($.inArray(className, Drupal.Select2.Defaults.classesListForCopyFromElement) >= 0) { return className; } break; } return false; }, 'classesListForCopyFromElement': ['error'], 'width': 'copy', 'predefineExcludions': [ '.tabledrag-hide select' ], }; Drupal.Select2.prototype.attachBehaviors = function(element) { $.each(Drupal.behaviors, function () { if ($.isFunction(this.select2attach)) { this.select2attach(element); } }); } Drupal.Select2.functionsScope = Drupal.Select2.functionsScope || {}; Drupal.Select2.functionsScope.formatSelectionTaxonomyTermsItem = function (term) { if (term.hover_title) { return term.hover_title; } return term.text; }; Drupal.Select2.functionsScope.formatSelection_taxonomy_terms_item = Drupal.Select2.functionsScope.formatSelectionTaxonomyTermsItem; Drupal.Select2.functionsScope.formatResultTaxonomyTermsItem = function (term) { var attributes = ''; var prefix = ''; if (term.hover_title != undefined) { attributes = 'title="' + term.hover_title + '" '; prefix = '' + term.hover_title + ''; } return '' + term.text + ' ' + prefix; }; Drupal.Select2.functionsScope.formatResult_taxonomy_terms_item = Drupal.Select2.functionsScope.formatResultTaxonomyTermsItem; Drupal.Select2.functionsScope.acFormatResult = function (result) { return result.text; }; Drupal.Select2.functionsScope.ac_format_result = Drupal.Select2.functionsScope.acFormatResult; Drupal.Select2.functionsScope.acFielsFormatSelection = function (item) { return item.text; }; Drupal.Select2.functionsScope.ac_fiels_FormatSelection = Drupal.Select2.functionsScope.acFielsFormatSelection; Drupal.Select2.functionsScope.acS2InitSelecttion = function (element, callback) { var def_values = $(element).select2('val'); callback({ id: def_values, text: def_values }); }; Drupal.Select2.functionsScope.entityReferenceInitSelecttion = function (element, callback) { var def_values = $(element).select2('val'), select2 = $(element).data('select2'), select2Options = select2 ? select2.opts : false, hideIds = select2Options ? select2Options.hideEntityIds : false, comaReplacement = select2Options ? select2Options.comma_replacement : false; if (typeof def_values == 'string') { var label = def_values; label = label.quote_trim().replace(/"{2,}/g, '"'); if (hideIds) { label = label.replace(/\([0-9]+\)$/g, ''); } if (comaReplacement) { label = label.regExpReplace('{' + comaReplacement + '}', ','); } callback({ id: def_values, text: label }); } else if (typeof (def_values) == 'object') { data = []; for (var i = 0; i < def_values.length; i++) { var label = def_values[i]; label = label.quote_trim().replace(/"{2,}/g, '"'); if (hideIds) { label = label.replace(/\([0-9]+\)$/g, ''); } if (comaReplacement) { label = label.regExpReplace('{' + comaReplacement + '}', ','); } data.push({ id: def_values[i], text: label }); } callback(data); } }; Drupal.Select2.functionsScope.ac_s2_init_selecttion = Drupal.Select2.functionsScope.acS2InitSelecttion; Drupal.Select2.functionsScope.taxonomyTermRefAcS2InitSelecttion = function (element, callback) { var def_values = $(element).select2('val'); if (typeof def_values == 'string') { var label = def_values; label = label.quote_trim().replace(/{{;}}/g, ',').replace(/"{2,}/g, '"'); callback({ id: def_values, text: label }); } else if (typeof (def_values) == 'object') { data = []; for (var i = 0; i < def_values.length; i++) { var label = def_values[i]; label = label.quote_trim().replace(/{{;}}/g, ',').replace(/"{2,}/g, '"'); data.push({ id: def_values[i], text: label }); } callback(data); } }; Drupal.Select2.functionsScope.taxonomy_term_ref_ac_s2_init_selecttion = Drupal.Select2.functionsScope.taxonomyTermRefAcS2InitSelecttion; Drupal.Select2.functionsScope.getAjaxObjectForAcElement = function (options) { return { url: function (term) { if (options.path_is_absolute) { return options.autocomplete_path + Drupal.encodePath(term); } return Drupal.settings.basePath + options.autocomplete_path + '/' + Drupal.encodePath(term); }, dataType: 'json', quietMillis: 100, results: function (data) { // notice we return the value of more so Select2 knows if more results can be loaded var results_out = []; $.each(data, function (id, title) { results_out.push({ id: id, text: title }); }); return { results: results_out }; }, params: { error: function (jqXHR, textStatus, errorThrown) { if (textStatus == 'abort') { } } } }; }; Drupal.Select2.functionsScope.ac_element_get_ajax_object = Drupal.Select2.functionsScope.getAjaxObjectForAcElement; Drupal.Select2.prototype.setContext = function(context, settings) { this.context = context; this.processElements(); } Drupal.Select2.prototype.processElements = function() { this.markExcludedElements(); this.attachSelect2(); } Drupal.Select2.prototype.markExcludedElements = function() { if (!this.context) return; $.each(this.Defaults.predefineExcludions, function(index, selector) { $(selector, this.context).once('select2-predefined-excludions').addClass('no-select2'); }) if (Drupal.settings.select_2.excludes.by_selectors.length > 0) { for (i = 0; i < Drupal.settings.select_2.excludes.by_selectors.length; ++i) { $(Drupal.settings.select_2.excludes.by_selectors[i], this.context) .once('select2-excluded-by-selectors').addClass('no-select2'); } } if (Drupal.settings.select_2.excludes.by_class.length > 0) { var byClassSelector = Drupal.settings.select_2.excludes.by_class.join(', .'); byClassSelector = '.' + byClassSelector; try { $(byClassSelector, this.context).once('select2-excluded-by-classes').addClass('no-select2'); } catch (e) { throw 'ERROR while setting exlution classes by classes list: ' + e.message; } } } Drupal.Select2.prototype.attachSelect2 = function() { if (!this.context) return; if (Drupal.settings.select_2.process_all_selects_on_page) { $('select', this.context).once('select2-attach').atachSelect2(); } $('select.use-select-2, input[type="text"].use-select-2, input[type="hidden"].use-select-2', this.context) .once('select2-attach').atachSelect2(); } Drupal.Select2.prototype.attachSelect2ToElement = function($element) { if ($element.hasClass('no-select2')) return; var self = this, id = $element.attr('id'); $element.id = id; if (this.checkElementForExclusions($element)) { $element.addClass('no-select2'); return; } var options = Drupal.settings.select_2.elements[id] ? Drupal.settings.select_2.elements[id] : {}; options = this.prepareElementOptions(options, $element); $(document).trigger('select2.alterElementOptions', [$element, options]); try { $element.select2(options); } catch (e) { if (typeof window.console == "object" && typeof console.error == "function") { console.error('Error: ' + e); return; } } Drupal.Select2Processor.attachBehaviors($element); var select2Container = false; if (options.events_hadlers) { $.each(options.events_hadlers, function (eventName, handlerName) { var handler = self.getObjectOrFunctionByName(handlerName); if (handler && typeof handler == 'function') { $element.on(eventName, handler); } }) } if ($element.data('select2') != undefined) { if ($element.data('select2').$container != undefined) { select2Container = $element.data('select2').$container; } else if ($element.data('select2').container != undefined) { select2Container = $element.data('select2').container; } } if (select2Container) { // need fix select2 container width var stylesForFixWidth = ['element', 'copy'], cur_width = select2Container.outerWidth(); if (options.width && $.inArray(options.width, stylesForFixWidth) && cur_width <= 6) { select2Container.width('auto'); } } if (select2Container && options.jqui_sortable && $.fn.sortable) { select2Container.find("ul.select2-choices").sortable({ containment: 'parent', start: function () { $element.select2("onSortStart"); }, update: function () { $element.select2("onSortEnd"); } }); } }; Drupal.Select2.prototype.searchFunctionInScope = function(functionName) { var self = this, func = false; functionName = functionName.toString().trimDotes(); if (functionName.indexOf('.') > -1) { if (func = this.getObjectOrFunctionByName(functionName)) { return func; } } $.each(this.functionsScopesNames, function (index, scopeName) { if (func = self.getObjectOrFunctionByName(scopeName + '.' + functionName)) { return false; } }); return func; } Drupal.Select2.prototype.getObjectPropertyByName = function (obj, prop) { if (typeof obj === 'undefined') { return false; } var _index = prop.indexOf('.'); if (_index > -1) { return this.getObjectPropertyByName(obj[prop.substring(0, _index)], prop.substr(_index + 1)); } return obj[prop]; } Drupal.Select2.prototype.getObjectOrFunctionByName = function (name) { return this.getObjectPropertyByName(window, name); } Drupal.Select2.prototype.prepareElementOptions = function(options, $element) { var self = this, optionsForStringToFunctionConversion = [ 'data', 'ajax', 'query', 'formatResult', 'formatSelection', 'initSelection' ], elementTagName = $element.prop("tagName"); $.each(optionsForStringToFunctionConversion, function (index, propertyName) { if (options[propertyName] && typeof options[propertyName] == 'string') { var func = self.searchFunctionInScope(options[propertyName]); if (func) { if (propertyName == 'ajax' && typeof func == 'function') { options[propertyName] = func(options); } else { options[propertyName] = func; } } } }); if (options.selectedOnNewLines != undefined && options.selectedOnNewLines) { options.containerCssClass += ' one-option-per-line'; } if ($element.hasClass('filter-list')) { options.allowClear = false; } if (options.allowClear || $('option[value=""]', $element).length > 0) { if ($('option[value=""]', $element).length > 0) { // Checking for empty option exist and set placeholder by its value if // placeholder does not setted if (options.placeholder == undefined) { options.placeholder = $('option[value=""]', $element).text(); } // Clear empty option text $('option[value=""]', $element).html(''); } if (options.placeholder == undefined && $element.attr('placeholder') == undefined) { // If placeholder not defined set allowClear option to false options.allowClear = false; } else if (options.allowClear == undefined) { options.allowClear = true; } } if (options.allow_add_onfly) { options.createSearchChoice = function (term, data) { if ($(data).filter( function () { return this.text.localeCompare(term) === 0; } ).length === 0) { return { id: term, text: term }; } }; } if (options.taxonomy_ref_ac_allowed) { options.createSearchChoice = function (term, data) { if ($(data).filter( function () { //return this.text.localeCompare(term) === 0; } ).length === 0) { return { id: term, text: term }; } }; } if (options.comma_replacement) { var cur_val = "" + $element.val(); cur_val = cur_val.replace(/".*?"/g, function (match) { return match.replace(/,/g, '{{;}}'); }); $element.val(cur_val); } if (elementTagName == 'SELECT') { // disabled_options process if (options.disabled_options) { $.each(options.disabled_options, function (index, value) { $('option[value="' + value + '"]', $element).prop('disabled', true); }); } options.jqui_sortable = false; } return options; } /** * Check element for matching exclusions rules. * @public * @param {jQuery object} $element The element that must be checked according to the rules exceptions. * @return {Bool} true if element must be skipped and false otherwise. */ Drupal.Select2.prototype.checkElementForExclusions = function($element) { if (!$element.id) return false; var excludeIds = Drupal.settings.select_2.excludes.by_id.values; if ($.inArray($element.id, excludeIds) >= 0) { return true; } else if (Drupal.settings.select_2.excludes.by_id.reg_exs.length > 0) { // check by regexs for ids for (i = 0; i < Drupal.settings.select_2.excludes.by_id.reg_exs.length; ++i) { var regex = new RegExp(Drupal.settings.select_2.excludes.by_id.reg_exs[i], "ig"); if (regex.test($element.id)) { return true; } } } return false; } $.fn.atachSelect2 = function () { return this.each(function (index) { if (!Drupal.Select2Processor) return; var $element = $(this); Drupal.Select2Processor.attachSelect2ToElement($element); }); } Drupal.behaviors.select2 = { attach: function (context, settings) { if (typeof ($.fn.select2) == 'undefined') return; Drupal.Select2Processor = Drupal.Select2Processor || new Drupal.Select2(); if (Drupal.settings.select_2.settings_updated) { Drupal.Select2Processor.setContext(context); } else { Drupal.settings.select_2.settings_updated = true; var setting_update_url = Drupal.settings.basePath + 'select2/ajax/get_settings', jqxhr = $.ajax(setting_update_url) .done(function (data) { //merging with element defined settings try { Drupal.settings.select_2.excludes = data[0].settings.select_2.excludes; } catch (e) { throw 'ERROR while updating settings for select2: ' + e.message; } }) .fail(function () { throw 'Select2 setting update ajax request failed.'; }) .always(function () { Drupal.Select2Processor.setContext(context); }); } } }; })(jQuery, window, document); ;/*})'"*/ ;/*})'"*/