PageSourceSearch

https://muveszetekhazamiskolc.hu/sites/default/files/js/js_ScArx-NhTqCasUQsn9Bi830yTi_lqFR55q0BMgmAMXs.js

js muveszetekhazamiskolc.hu collected 2026-10-02 23:07:33 UTC 35,782 bytes, 731 lines download raw bytes

1Drupal.locale = { 'pluralFormula': function ($n) { return Number(($n!=1)); }, 'strings': {"":{"An AJAX HTTP error occurred.":"Egy AJAX HTTP hiba k\u00f6vetkezett be.","HTTP Result Code: !status":"HTTP eredm\u00e9nyk\u00f3d: !status","An AJAX HTTP request terminated abnormally.":"Az AJAX HTTP k\u00e9r\u00e9s rendellenesen megszakadt.","Debugging information follows.":"A hibakeres\u00e9si inform\u00e1ci\u00f3k k\u00f6vetkeznek.","Path: !uri":"\u00datvonal: !uri","StatusText: !statusText":"\u00c1llapot\u00fczenet: !statusText","ResponseText: !responseText":"V\u00e1lasz\u00fczenet: !responseText","ReadyState: !readyState":"K\u00e9sz\u00fclts\u00e9g: !readyState","CustomMessage: !customMessage":"Egy\u00e9ni \u00fczenet: !customMessage","Loading":"Bet\u00f6lt\u00e9s","(active tab)":"(akt\u00edv f\u00fcl)","No results":"Nincs eredm\u00e9ny","clear":"t\u00f6rl\u00e9s","All":"Mind","New":"\u00daj","Modules installed within the last week.":"Az elm\u00falt h\u00e9ten telep\u00edtett modulok.","No modules added within the last week.":"Az elm\u00falt h\u00e9ten nem voltak modulok telep\u00edtve.","Recent":"Friss","Modules enabled\/disabled within the last week.":"Az elm\u00falt h\u00e9ten telep\u00edtett vagy elt\u00e1vol\u00edtott modulok.","No modules were enabled or disabled within the last week.":"Az elm\u00falt h\u00e9ten nem voltak modulok telep\u00edtve vagy elt\u00e1vol\u00edtva.","@enabled of @total":"@enabled \/ @total","@title dialog":"@title p\u00e1rbesz\u00e9dablak","Resume":"Folytat\u00e1s","Pause":"Sz\u00fcnet","There was no action specified.":"Nem lett m\u0171velet meghat\u00e1rozva.","This slideshow is forced paused.":"A diavet\u00edt\u00e9s sz\u00fcneteltet\u00e9se k\u00e9nyszer\u00edtett.","An invalid integer was specified for slideNum.":"Egy \u00e9rv\u00e9nytelen eg\u00e9sz sz\u00e1m lett megadva \u003Cem\u003EslideNum\u003C\/em\u003E-nak.","An invalid action \u0022!action\u0022 was specified.":"\u00c9rv\u00e9nytelen \u201e!action\u201d m\u0171velet lett megadva.","Please wait...":"Egy pillanat...","The response failed verification so will not be processed.":"A v\u00e1laszt nem siker\u00fclt hiteles\u00edteni, ez\u00e9rt nem lesz feldolgozva.","The callback URL is not local and not trusted: !url":"!url visszah\u00edv\u00e1si URL nem e webhelyr\u0151l val\u00f3, ez\u00e9rt nem megb\u00edzhat\u00f3.","Configure":"Be\u00e1ll\u00edt\u00e1s","Re-order rows by numerical weight instead of dragging.":"A sorok \u00fajrarendez\u00e9se h\u00faz\u00e1s helyett numerikus s\u00falyuk alapj\u00e1n.","Show row weights":"Sorok s\u00faly\u00e1nak mutat\u00e1sa","Hide row weights":"A sorok s\u00faly\u00e1nak elrejt\u00e9se","Drag to re-order":"\u00c1trendez\u00e9s h\u00faz\u00e1ssal","Changes made in this table will not be saved until the form is submitted.":"A t\u00e1bl\u00e1zaton v\u00e9grehajtott v\u00e1ltoztat\u00e1sok az \u0171rlap bek\u00fcld\u00e9s\u00e9ig nem lesznek elmentve.","Hide":"Elrejt\u00e9s","Show":"Megjelen\u00edt\u00e9s","Also allow !name role to !permission?":"!name szerepk\u00f6rt is enged\u00e9lyezze !permission jogosults\u00e1ghoz?","Edit":"Szerkeszt\u00e9s","Add":"Hozz\u00e1ad\u00e1s","Upload":"Felt\u00f6lt\u00e9s","Done":"K\u00e9sz","Breadcrumbs":"Morzs\u00e1k","Tooltips":"Eszk\u00f6ztippek","@number comments per page":"@number hozz\u00e1sz\u00f3l\u00e1s egy oldalon","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"%filename kiv\u00e1lasztott f\u00e1jl nem t\u00f6lthet\u0151 fel. Csak a k\u00f6vetkez\u0151 kiterjeszt\u00e9sek egyik\u00e9vel rendelkez\u0151 f\u00e1jlok t\u00f6lthet\u0151ek fel: %extensions.","Autocomplete popup":"Automatikusan kieg\u00e9sz\u00edt\u0151 felugr\u00f3 ablak","Searching for matches...":"Egyez\u00e9sek keres\u00e9se...","Responsive Images":"Alkalmazkod\u00f3 k\u00e9pek","Anchors":"Horgonyok","Responsive Tables":"Reszponz\u00edv t\u00e1bl\u00e1zatok","Inverse":"Ford\u00edtott","Popovers":"Felugr\u00f3 \u00fczenetek","@size Buttons":"@size Gombok","@shape Images":"@shape K\u00e9pek","CDN provider: %provider":"CDN sz\u00e1ll\u00edt\u00f3: %provider","Preview of the Bootstrap theme":"A \u003Cem\u003EBootstrap\u003C\/em\u003E smink el\u0151n\u00e9zete","Preview of the @title Bootswatch theme":"@title \u003Cem\u003EBootswatch\u003C\/em\u003E smink el\u0151n\u00e9zete","Disabled":"Tiltott","Enabled":"Enged\u00e9lyezett","Other":"Egy\u00e9b","@count year from now":"@count \u00e9v mostant\u00f3l","@count years from now":"@count \u00e9v mostant\u00f3l","Next":"K\u00f6vetkez\u0151","Sunday":"vas\u00e1rnap","Monday":"h\u00e9tf\u0151","Tuesday":"kedd","Wednesday":"szerda","Thursday":"cs\u00fct\u00f6rt\u00f6k","Frid
1ay":"p\u00e9ntek","Saturday":"szombat","This field is required.":"Sz\u00fcks\u00e9ges mez\u0151.","Prev":"El\u0151z\u0151","Mon":"h","Tue":"k","Wed":"sze","Thu":"cs","Fri":"p","Sat":"szo","Sun":"v","January":"janu\u00e1r","February":"febru\u00e1r","March":"m\u00e1rcius","April":"\u00e1prilis","May":"m\u00e1j","June":"j\u00fanius","July":"j\u00falius","August":"augusztus","September":"szeptember","October":"okt\u00f3ber","November":"november","December":"december","Select all rows in this table":"A t\u00e1bl\u00e1zat minden sor\u00e1nak kiv\u00e1laszt\u00e1sa","Deselect all rows in this table":"A kiv\u00e1laszt\u00e1s megsz\u00fcntet\u00e9se a t\u00e1bl\u00e1zat minden sor\u00e1ban","Today":"Ma","Jan":"jan","Mar":"m\u00e1r","Apr":"\u00e1pr","Jun":"j\u00fan","Jul":"j\u00fal","Aug":"aug","Sep":"szep","Oct":"okt","Nov":"nov","Dec":"dec","Su":"Va","Mo":"H\u00e9","Tu":"Ke","We":"Sz","Th":"Cs","Fr":"P\u00e9","Sa":"Sz","Not published":"Rejtett","mm\/dd\/yy":"hh\/nn\/\u00e9\u00e9","Only files with the following extensions are allowed: %files-allowed.":"Csak a k\u00f6vetkez\u0151 kiterjeszt\u00e9sek egyik\u00e9vel rendelkez\u0151 f\u00e1jlok t\u00f6lthet\u0151ek fel: %files-allowed.","By @name on @date":"Szerz\u0151: @name (@date)","By @name":"Szerz\u0151: @name","Not in menu":"Nincs men\u00fcben","Alias: @alias":"\u00c1ln\u00e9v: @alias","No alias":"Nincs \u00e1ln\u00e9v","New revision":"\u00daj v\u00e1ltozat","The changes to these blocks will not be saved until the \u003Cem\u003ESave blocks\u003C\/em\u003E button is clicked.":"A blokkok v\u00e1ltoz\u00e1sai nem lesznek elmentve a \u003Cem\u003EBlokk ment\u00e9se\u003C\/em\u003E nyom\u00f3gombra kattint\u00e1sig.","This permission is inherited from the authenticated user role.":"Ezt a szerepk\u00f6rt minden azonos\u00edtott felhaszn\u00e1l\u00f3 megkapja.","No revision":"Nincs v\u00e1ltozat","Requires a title":"Sz\u00fcks\u00e9ges egy c\u00edm","Not restricted":"Nem korl\u00e1tozott","Not customizable":"Nem testreszabhat\u00f3","Restricted to certain pages":"Bizonyos oldalakra korl\u00e1tozva","The block cannot be placed in this region.":"A blokk nem helyezhet\u0151 el ebbe a r\u00e9gi\u00f3ba.","Customize dashboard":"Ir\u00e1ny\u00edt\u00f3pult testreszab\u00e1sa","Hide summary":"\u00d6sszefoglal\u00f3 elrejt\u00e9se","Edit summary":"\u00d6sszefoglal\u00f3 szerkeszt\u00e9se","Don\u0027t display post information":"Ne jelen\u00edtse meg a bek\u00fcld\u00e9si inform\u00e1ci\u00f3t","Show description":"Le\u00edr\u00e1s megjelen\u00edt\u00e9se","Hide description":"Le\u00edr\u00e1s elrejt\u00e9se","Ignored from settings":"Friss\u00edt\u00e9s figyel\u00e9s letiltva","Remove group":"Csoport t\u00f6rl\u00e9se","Apply (all displays)":"Alkalmaz\u00e1s (minden megjelen\u00edt\u00e9sre)","Apply (this display)":"Alkalmaz\u00e1s (erre a megjelen\u00edt\u00e9sre)","Revert to default":"Visszat\u00e9r\u00e9s az alap\u00e9rtelmez\u00e9shez","Update Advanced Option":"Halad\u00f3 lehet\u0151s\u00e9gek friss\u00edt\u00e9se","Applied Options":"Felhaszn\u00e1lt lehet\u0151s\u00e9gek","Select None":"Kijel\u00f6l\u00e9s megsz\u00fcntet\u00e9se","List additional actions":"Tov\u00e1bbi akci\u00f3k list\u00e1z\u00e1sa","Available tokens":"El\u00e9rhet\u0151 vez\u00e9rjelek","Insert this token into your form":"A vez\u00e9rjel besz\u00far\u00e1sa az \u0171rlapba","First click a text field to insert your tokens into.":"El\u0151sz\u00f6r r\u00e1 kell kattintani egy sz\u00f6veges mez\u0151re, ahov\u00e1 a vez\u00e9rjelet be kell sz\u00farni.","Loading token browser...":"Vez\u00e9rjel b\u00f6ng\u00e9sz\u0151 bet\u00f6lt\u00e9se...","Translatable":"Ford\u00edthat\u00f3","Not translatable":"Nem ford\u00edthat\u00f3","Restricted to certain languages":"Bizonyos nyelvekre korl\u00e1tozva","Inclusion: @value":"Bele\u00e9rtve: @value","Priority: @value":"Fontoss\u00e1g: @value","Automatic alias":"Automatikus \u00e1ln\u00e9v","required":"sz\u00fcks\u00e9ges","Insert Teaser Break":"Bevezet\u0151 elv\u00e1laszt\u00f3 besz\u00far\u00e1sa","Insert Page Break":"Oldalt\u00f6r\u00e9s besz\u00far\u00e1sa","Please select a file.":"Ki kell v\u00e1lasztani egy f\u00e1jlt.","You are not allowed to operate on more than %num files.":"Egyidej\u0171leg maximum %num f\u00e1jllal v\u00e9gezhet\u0151 el a m\u0171velet.","Please specify dimensions within the allowed range that is from 1x1 to @dimensions.":"M\u00e9retek be\u00e1ll\u00edt\u00e1sa az enged\u00e9lyezett tartom\u00e1nyon bel\u00fcl (1x1 - @dimensions).","%filename is not an image.":"%filename nem k\u00e9p.","Insert file":"F\u00e1jl beilleszt\u00e9se","Change view":"N\u00e9zetv\u00e1lt\u00e1s","Directory":"K\u00f6nyvt\u00e1r","%dirname is not a valid directory name. It should contain only alphanumeric characters, hyphen and underscore.":"%dirname nem \u00e9rv\u00e9nyes k\u00f6nyvt\u00e1rn\u00e9v. A k\u00f6nyvt\u00e1rn\u00e9v csak bet\u0171ket, sz\u00e1mokat \u00e9s al\u00e1h\u00faz\u00e1s jelet tartalmazhat.","Subdirectory %dir already exists.":"%dir alk\u00f6nyvt\u00e1r m\u00e1r l\u00e9tezik.","Subdirectory %dir does not exist.":"%dir alk\u00f6nyvt\u00e1r nem l\u00e9tezik.","You are not alllowed to create more than %num directories.":"Legfeljebb %num k\u00f6nyvt\u00e1r l\u00e9trehoz\u00e1sa enged\u00e9lyezett.","Are you sure want to delete this subdirectory with all directories and files in it?":"Biztosan t\u00f6r\u00f6lhet\u0151 ez az alk\u00f6nyvt\u00e1r \u00e9s az \u00f6sszes benne tal\u00e1lhat\u00f3 k\u00f6nyvt\u00e1r \u00e9s f\u00e1jl?","Close":"Bez\u00e1r","Colorbox":"Colorbox","show":"megjelen\u00edt\u00e9s"}} };;
2jQuery(document).ready(function($) {
3    var state = $.cookie('themekey_redirect_state');
4    if (state === null) {
5        // Cookie not set => state 0.
6        state = 0;
7    }
8    if (state == 0) {
9        // Check if the user has to be redirected.
10        $.ajax({
11            // add the current path and query to the url for ThemeKey's rule matching
12            url: Drupal.settings.basePath.replace(/\/$/, "") + '/index.php?q=themekey/redirect_callback' + window.location.pathname + window.location.search.replace(/^\?/, "&"),
13            dataType: 'json',
14            type: 'GET',
15            success: function(target) {
16                if (target) {
17                    if (Drupal.settings.ThemeKeyRedirect.redirectOnce) {
18                        // Set Domain A state to 2.
19                        $.cookie('themekey_redirect_state', 2, { path: '/'});
20                    }
21                    window.location.href = target;
22                    // If the targeted page runs ThemeKey Redirect it sets the
23                    // state to 1 or 2.
24                }
25            }
26        });
27        if (Drupal.settings.ThemeKeyRedirect.checkOnce) {
28            // Set Domain A state to 2.
29            $.cookie('themekey_redirect_state', 2, { path: '/'});
30        }
31    }
32    else if (state == 1) {
33        // The user has been redirected but is optionally allowed once to switch
34        // back manually.
35        $('#block-themekey-redirect-domain-selector').show();
36        // Set Domain B state to 2.
37        $.cookie('themekey_redirect_state', 2, { path: '/'});
38    }
39    // State 2 indicates that the user has been redirected and no further redirects will happen.
40});
41;
42/**
43 * @file
44 * Some basic behaviors and utility functions for Views.
45 */
46(function ($) {
47
48  Drupal.Views = {};
49
50  /**
51   * JQuery UI tabs, Views integration component.
52   */
53  Drupal.behaviors.viewsTabs = {
54    attach: function (context) {
55      if ($.viewsUi && $.viewsUi.tabs) {
56        $('#views-tabset').once('views-processed').viewsTabs({
57          selectedClass: 'active'
58        });
59      }
60
61      $('a.views-remove-link').once('views-processed').click(function(event) {
62        var id = $(this).attr('id').replace('views-remove-link-', '');
63        $('#views-row-' + id).hide();
64        $('#views-removed-' + id).attr('checked', true);
65        event.preventDefault();
66      });
67      /**
68    * Here is to handle display deletion
69    * (checking in the hidden checkbox and hiding out the row).
70    */
71      $('a.display-remove-link')
72        .addClass('display-processed')
73        .click(function() {
74          var id = $(this).attr('id').replace('display-remove-link-', '');
75          $('#display-row-' + id).hide();
76          $('#display-removed-' + id).attr('checked', true);
77          return false;
78        });
79    }
80  };
81
82  /**
83 * Helper function to parse a querystring.
84 */
85  Drupal.Views.parseQueryString = function (query) {
86    var args = {};
87    var pos = query.indexOf('?');
88    if (pos != -1) {
89      query = query.substring(pos + 1);
90    }
91    var pairs = query.split('&');
92    for (var i in pairs) {
93      if (typeof(pairs[i]) == 'string') {
94        var pair = pairs[i].split('=');
95        // Ignore the 'q' path argument, if present.
96        if (pair[0] != 'q' && pair[1]) {
97          args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] = decodeURIComponent(pair[1].replace(/\+/g, ' '));
98        }
99      }
100    }
101    return args;
102  };
103
104  /**
105 * Helper function to return a view's arguments based on a path.
106 */
107  Drupal.Views.parseViewArgs = function (href, viewPath) {
108
109    // Provide language prefix.
110    if (Drupal.settings.pathPrefix) {
111      var viewPath = Drupal.settings.pathPrefix + viewPath;
112    }
113    var returnObj = {};
114    var path = Drupal.Views.getPath(href);
115    // Ensure we have a correct path.
116    if (viewPath && path.substring(0, viewPath.length + 1) == viewPath + '/') {
117      var args = decodeURIComponent(path.substring(viewPath.length + 1, path.length));
118      returnObj.view_args = args;
119      returnObj.view_path = path;
120    }
121    return returnObj;
122  };
123
124  /**
125 * Strip off the protocol plus domain from an href.
126 */
127  Drupal.Views.pathPortion = function (href) {
128    // Remove e.g. http://example.com if present.
129    var protocol = window.location.protocol;
130    if (href.substring(0, protocol.length) == protocol) {
131      // 2 is the length of the '//' that normally follows the protocol.
132      href = href.substring(href.indexOf('/', protocol.length + 2));
133    }
134    return href;
135  };
136
137  /**
138 * Return the Drupal path portion of an href.
139 */
140  Drupal.Views.getPath = function (href) {
141    href = Drupal.Views.pathPortion(href);
142    href = href.substring(Drupal.settings.basePath.length, href.length);
143    // 3 is the length of the '?q=' added to the url without clean urls.
144    if (href.substring(0, 3) == '?q=') {
145      href = href.substring(3, href.length);
146    }
147    var chars = ['#', '?', '&'];
148    for (var i in chars) {
149      if (href.indexOf(chars[i]) > -1) {
150        href = href.substr(0, href.indexOf(chars[i]));
151      }
152    }
153    return href;
154  };
155
156})(jQuery);
157;
158(function ($) {
159
160/**
161 * A progressbar object. Initialized with the given id. Must be inserted into
162 * the DOM afterwards through progressBar.element.
163 *
164 * method is the function which will perform the HTTP request to get the
165 * progress bar state. Either "GET" or "POST".
166 *
167 * e.g. pb = new progressBar('myProgressBar');
168 *      some_element.appendChild(pb.element);
169 */
170Drupal.progressBar = function (id, updateCallback, method, errorCallback) {
171  var pb = this;
172  this.id = id;
173  this.method = method || 'GET';
174  this.updateCallback = updateCallback;
175  this.errorCallback = errorCallback;
176
177  // The WAI-ARIA setting aria-live="polite" will announce changes after users
178  // have completed their current activity and not interrupt the screen reader.
179  this.element = $('<div class="progress-wrapper" aria-live="polite"></div>');
180  this.element.html('<div id ="' + id + '" class="progress progress-striped active">' +
181                    '<div class="progress-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">' +
182                    '<div class="percentage sr-only"></div>' +
183                    '</div></div>' +
184                    '</div><div class="percentage pull-right"></div>' +
185                    '<div class="message">&nbsp;</div>');
186};
187
188/**
189 * Set the percentage and status message for the progressbar.
190 */
191Drupal.progressBar.prototype.setProgress = function (percentage, message) {
192  if (percentage >= 0 && percentage <= 100) {
193    $('div.progress-bar', this.element).css('width', percentage + '%');
194    $('div.progress-bar', this.element).attr('aria-valuenow', percentage);
195    $('div.percentage', this.element).html(percentage + '%');
196  }
197  $('div.message', this.element).html(message);
198  if (this.updateCallback) {
199    this.updateCallback(percentage, message, this);
200  }
201};
202
203/**
204 * Start monitoring progress via Ajax.
205 */
206Drupal.progressBar.prototype.startMonitoring = function (uri, delay) {
207  this.delay = delay;
208  this.uri = uri;
209  this.sendPing();
210};
211
212/**
213 * Stop monitoring progress via Ajax.
214 */
215Drupal.progressBar.prototype.stopMonitoring = function () {
216  clearTimeout(this.timer);
217  // This allows monitoring to be stopped from within the callback.
218  this.uri = null;
219};
220
221/**
222 * Request progress data from server.
223 */
224Drupal.progressBar.prototype.sendPing = function () {
225  if (this.timer) {
226    clearTimeout(this.timer);
227  }
228  if (this.uri) {
229    var pb = this;
230    // When doing a post request, you need non-null data. Otherwise a
231    // HTTP 411 or HTTP 406 (with Apache mod_security) error may result.
232    $.ajax({
233      type: this.method,
234      url: this.uri,
235      data: '',
236      dataType: 'json',
237      success: function (progress) {
238        // Display errors.
239        if (progress.status == 0) {
240          pb.displayError(progress.data);
241          return;
242        }
243        // Update display.
244        pb.setProgress(progress.percentage, progress.message);
245        // Schedule next timer.
246        pb.timer = setTimeout(function () { pb.sendPing(); }, pb.delay);
247      },
248      error: function (xmlhttp) {
249        pb.displayError(Drupal.ajaxError(xmlhttp, pb.uri));
250      }
251    });
252  }
253};
254
255/**
256 * Display errors on the page.
257 */
258Drupal.progressBar.prototype.displayError = function (string) {
259  var error = $('<div class="alert alert-block alert-error"><a class="close" data-dismiss="alert" href="#">&times;</a><h4>Error message</h4></div>').append(string);
260  $(this.element).before(error).hide();
261
262  if (this.errorCallback) {
263    this.errorCallback(this);
264  }
265};
266
267})(jQuery);
268;
269(function ($) {
270
271  Drupal.form_placeholder = {};
272
273  Drupal.form_placeholder.elementIsSupported = function ($element) {
274    return $element.is('input[type=text], input[type=date], input[type=email], input[type=url], input[type=tel], input[type=password], textarea');
275  };
276
277  Drupal.form_placeholder.placeholderIsSupported = function () {
278    // Opera Mini v7 doesn’t support placeholder although its DOM seems to
279    // indicate so.
280    var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';
281    return 'placeholder' in document.createElement('input') && !isOperaMini;
282  };
283
284  Drupal.behaviors.form_placeholder = {
285    attach: function (context, settings) {
286      // In some cases settings after ajax form submit could contain only
287      // settings from response but not all Drupal.settings data.
288      if (!settings.hasOwnProperty('form_placeholder')) {
289        settings = Drupal.settings;
290      }
291      var include = settings.form_placeholder.include;
292      if (include) {
293        include += ', ';
294      }
295      include += '.form-placeholder-include-children *';
296      include += ', .form-placeholder-include';
297      var exclude = settings.form_placeholder.exclude;
298      if (exclude) {
299        exclude += ', ';
300      }
301      exclude += '.form-placeholder-exclude-children *';
302      exclude += ', .form-placeholder-exclude';
303      exclude += ', .form-placeholder-processed';
304
305      var required_indicator = settings.form_placeholder.required_indicator;
306
307      $(include).not(exclude).each(function () {
308        var $textfield = $(this);
309        var elementSupported = Drupal.form_placeholder.elementIsSupported($textfield);
310        var placeholderSupported = Drupal.form_placeholder.placeholderIsSupported();
311
312        // Check if element support placeholder attribute.
313        if (!elementSupported) {
314          return;
315        }
316        // Placeholder is supported.
317        else if (placeholderSupported || settings.form_placeholder.fallback_support) {
318          var $form = $textfield.closest('form');
319          var $label = $form.find('label[for=' + this.id + ']');
320
321          if (required_indicator === 'append') {
322            $label.find('.form-required').insertAfter($textfield).prepend('&nbsp;');
323          }
324          else if (required_indicator === 'remove') {
325            $label.find('.form-required').remove();
326          }
327          else if (required_indicator === 'text') {
328            $label.find('.form-required').text('(' + Drupal.t('required') + ')');
329          }
330
331          if (!$textfield.attr('placeholder')) {
332            $textfield.attr('placeholder', $.trim($label.text()));
333            $label.addClass('element-invisible');
334          }
335
336          // Fallback support for older browsers.
337          if (!placeholderSupported && settings.form_placeholder.fallback_support) {
338            $textfield.placeholder();
339          }
340          $textfield.addClass('form-placeholder-processed');
341        }
342      });
343    }
344  };
345
346})(jQuery);
347;
348/**
349 * @file views_load_more.js
350 *
351 * Handles the AJAX pager for the view_load_more plugin.
352 */
353(function ($) {
354
355  /**
356   * Provide a series of commands that the server can request the client perform.
357   */
358  Drupal.ajax.prototype.commands.viewsLoadMoreAppend = function (ajax, response, status) {
359    // Get information from the response. If it is not there, default to
360    // our presets.
361    var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
362    var method = response.method || ajax.method;
363    var targetList = response.targetList || '';
364    var effect = ajax.getEffect(response);
365    var pager_selector = response.options.pager_selector ? response.options.pager_selector : '.pager-load-more';
366
367    // We don't know what response.data contains: it might be a string of text
368    // without HTML, so don't rely on jQuery correctly iterpreting
369    // $(response.data) as new HTML rather than a CSS selector. Also, if
370    // response.data contains top-level text nodes, they get lost with either
371    // $(response.data) or $('<div></div>').replaceWith(response.data).
372    var new_content_wrapped = $('<div></div>').html(response.data);
373    var new_content = new_content_wrapped.contents();
374
375    // For legacy reasons, the effects processing code assumes that new_content
376    // consists of a single top-level element. Also, it has not been
377    // sufficiently tested whether attachBehaviors() can be successfully called
378    // with a context object that includes top-level text nodes. However, to
379    // give developers full control of the HTML appearing in the page, and to
380    // enable Ajax content to be inserted in places where DIV elements are not
381    // allowed (e.g., within TABLE, TR, and SPAN parents), we check if the new
382    // content satisfies the requirement of a single top-level element, and
383    // only use the container DIV created above when it doesn't. For more
384    // information, please see http://drupal.org/node/736066.
385    if (new_content.length != 1 || new_content.get(0).nodeType != 1) {
386      new_content = new_content_wrapped;
387    }
388    // If removing content from the wrapper, detach behaviors first.
389    var settings = response.settings || ajax.settings || Drupal.settings;
390    Drupal.detachBehaviors(wrapper, settings);
391    if ($.waypoints != undefined) {
392      $.waypoints('refresh');
393    }
394
395    // Set up our default query options. This is for advance users that might
396    // change there views layout classes. This allows them to write there own
397    // jquery selector to replace the content with.
398    // Provide sensible defaults for unordered list, ordered list and table
399    // view styles.
400    var content_query = targetList && !response.options.content ? '> .view-content ' + targetList : response.options.content || '> .view-content';
401
402    // If we're using any effects. Hide the new content before adding it to the DOM.
403    if (effect.showEffect != 'show') {
404      new_content.find(content_query).children().hide();
405    }
406
407    // Update the pager
408    // Find both for the wrapper as the newly loaded content the direct child
409    // .item-list in case of nested pagers
410    wrapper.find(pager_selector).replaceWith(new_content.find(pager_selector));
411
412    // Add the new content to the page.
413    wrapper.find(content_query)[method](new_content.find(content_query).children());
414
415    // Re-class the loaded content.
416    // @todo this is faulty in many ways.  first of which is that user may have configured view to not have these classes at all.
417    wrapper.find(content_query).children()
418      .removeClass('views-row-first views-row-last views-row-odd views-row-even')
419      .filter(':first')
420        .addClass('views-row-first')
421        .end()
422      .filter(':last')
423        .addClass('views-row-last')
424        .end()
425      .filter(':even')
426        .addClass('views-row-odd')
427        .end()
428      .filter(':odd')
429        .addClass('views-row-even')
430        .end();
431
432    if (effect.showEffect != 'show') {
433      wrapper.find(content_query).children(':not(:visible)')[effect.showEffect](effect.showSpeed);
434    }
435
436    // Additional processing over new content
437    wrapper.trigger('views_load_more.new_content', new_content.clone());
438
439    // Attach all JavaScript behaviors to the new content
440    // Remove the Jquery once Class, TODO: There needs to be a better
441    // way of doing this, look at .removeOnce() :-/
442    var classes = wrapper.attr('class');
443    var onceClass = classes.match(/jquery-once-[0-9]*-[a-z]*/);
444    wrapper.removeClass(onceClass[0]);
445    settings = response.settings || ajax.settings || Drupal.settings;
446    Drupal.attachBehaviors(wrapper, settings);
447  };
448
449  /**
450   * Attaches the AJAX behavior to Views Load More waypoint support.
451   */
452  Drupal.behaviors.ViewsLoadMore = {
453    attach: function (context, settings) {
454      var default_opts = {
455          offset: '100%'
456        };
457
458      if (settings && settings.viewsLoadMore && settings.views && settings.views.ajaxViews) {
459        $.each(settings.viewsLoadMore, function(i, setting) {
460          var view = '.view-id-' + setting.view_name + '.view-display-id-' + setting.view_display_id + ' .pager-next a',
461            opts = {};
462
463          $.extend(opts, default_opts, settings.viewsLoadMore[i].opts);
464
465          $(view).waypoint('destroy');
466          $(view).waypoint(function(event, direction) {
467            $(view).click();
468          }, opts);
469        });
470      }
471    },
472    detach: function (context, settings, trigger) {
473      if (settings && settings.viewsLoadMore && settings.views && settings.views.ajaxViews) {
474        $.each(settings.viewsLoadMore, function(i, setting) {
475          var view = '.view-id-' + setting.view_name + '.view-display-id-' + setting.view_display_id;
476          if ($(context).is(view)) {
477            $('.pager-next a', view).waypoint('destroy');
478          }
479          else {
480            $(view, context).waypoint('destroy');
481          }
482        });
483      }
484    }
485  };
486})(jQuery);
487;
488/**
489 * @file
490 * Handles AJAX fetching of views, including filter submission and response.
491 */
492(function ($) {
493
494  /**
495   * Attaches the AJAX behavior to exposed filter forms and key views links.
496   */
497  Drupal.behaviors.ViewsAjaxView = {};
498  Drupal.behaviors.ViewsAjaxView.attach = function() {
499    if (Drupal.settings && Drupal.settings.views && Drupal.settings.views.ajaxViews) {
500      $.each(Drupal.settings.views.ajaxViews, function(i, settings) {
501        Drupal.views.instances[i] = new Drupal.views.ajaxView(settings);
502      });
503    }
504  };
505
506  Drupal.views = {};
507  Drupal.views.instances = {};
508
509  /**
510   * JavaScript object for a certain view.
511   */
512  Drupal.views.ajaxView = function(settings) {
513    var selector = '.view-dom-id-' + settings.view_dom_id;
514    this.$view = $(selector);
515
516    // Retrieve the path to use for views' ajax.
517    var ajax_path = Drupal.settings.views.ajax_path;
518
519    // If there are multiple views this might've ended up showing up multiple
520    // times.
521    if (ajax_path.constructor.toString().indexOf("Array") != -1) {
522      ajax_path = ajax_path[0];
523    }
524
525    // Check if there are any GET parameters to send to views.
526    var queryString = window.location.search || '';
527    if (queryString !== '') {
528      // Remove the question mark and Drupal path component if any.
529      var queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
530      if (queryString !== '') {
531        // If there is a '?' in ajax_path, clean url are on and & should be
532        // used to add parameters.
533        queryString = ((/\?/.test(ajax_path)) ? '&' : '?') + queryString;
534      }
535    }
536
537    this.element_settings = {
538      url: ajax_path + queryString,
539      submit: settings,
540      setClick: true,
541      event: 'click',
542      selector: selector,
543      progress: {
544        type: 'throbber'
545      }
546    };
547
548    this.settings = settings;
549
550    // Add the ajax to exposed forms.
551    this.$exposed_form = $('#views-exposed-form-' + settings.view_name.replace(/_/g, '-') + '-' + settings.view_display_id.replace(/_/g, '-'));
552    this.$exposed_form.once(jQuery.proxy(this.attachExposedFormAjax, this));
553
554    // Store Drupal.ajax objects here for all pager links.
555    this.links = [];
556
557    // Add the ajax to pagers.
558    this.$view
559      .once(jQuery.proxy(this.attachPagerAjax, this));
560
561    // Add a trigger to update this view specifically. In order to trigger a
562    // refresh use the following code.
563    //
564    // @code
565    // jQuery('.view-name').trigger('RefreshView');
566    // @endcode
567    // Add a trigger to update this view specifically.
568    var self_settings = this.element_settings;
569    self_settings.event = 'RefreshView';
570    var self = this;
571    this.$view.once('refresh', function () {
572      self.refreshViewAjax = new Drupal.ajax(self.selector, self.$view, self_settings);
573    });
574  };
575
576  Drupal.views.ajaxView.prototype.attachExposedFormAjax = function() {
577    var button = $('input[type=submit], button[type=submit], input[type=image]', this.$exposed_form);
578    button = button[0];
579
580    // Call the autocomplete submit before doing AJAX.
581    $(button).click(function () {
582      if (Drupal.autocompleteSubmit) {
583        Drupal.autocompleteSubmit();
584      }
585    });
586
587    this.exposedFormAjax = new Drupal.ajax($(button).attr('id'), button, this.element_settings);
588  };
589
590  /**
591   * Attach the ajax behavior to each link.
592   */
593  Drupal.views.ajaxView.prototype.attachPagerAjax = function() {
594    this.$view.find('ul.pager > li > a, ol.pager > li > a, th.views-field a, .attachment .views-summary a')
595      .each(jQuery.proxy(this.attachPagerLinkAjax, this));
596  };
597
598  /**
599   * Attach the ajax behavior to a single link.
600   */
601  Drupal.views.ajaxView.prototype.attachPagerLinkAjax = function(id, link) {
602    var $link = $(link);
603    var viewData = {};
604    var href = $link.attr('href');
605    // Don't attach to pagers inside nested views.
606    if ($link.closest('.view')[0] !== this.$view[0] &&
607      $link.closest('.view').parent().hasClass('attachment') === false) {
608      return;
609    }
610
611    // Provide a default page if none has been set. This must be done
612    // prior to merging with settings to avoid accidentally using the
613    // page landed on instead of page 1.
614    if (typeof(viewData.page) === 'undefined') {
615      viewData.page = 0;
616    }
617
618    // Construct an object using the settings defaults and then overriding
619    // with data specific to the link.
620    $.extend(
621      viewData,
622      this.settings,
623      Drupal.Views.parseQueryString(href),
624      // Extract argument data from the URL.
625      Drupal.Views.parseViewArgs(href, this.settings.view_base_path)
626    );
627
628    // For anchor tags, these will go to the target of the anchor rather
629    // than the usual location.
630    $.extend(viewData, Drupal.Views.parseViewArgs(href, this.settings.view_base_path));
631
632    this.element_settings.submit = viewData;
633    this.pagerAjax = new Drupal.ajax(false, $link, this.element_settings);
634    this.links.push(this.pagerAjax);
635  };
636
637  Drupal.ajax.prototype.commands.viewsScrollTop = function (ajax, response, status) {
638    // Scroll to the top of the view. This will allow users
639    // to browse newly loaded content after e.g. clicking a pager
640    // link.
641    var offset = $(response.selector).offset();
642    // We can't guarantee that the scrollable object should be
643    // the body, as the view could be embedded in something
644    // more complex such as a modal popup. Recurse up the DOM
645    // and scroll the first element that has a non-zero top.
646    var scrollTarget = response.selector;
647    while ($(scrollTarget).scrollTop() == 0 && $(scrollTarget).parent()) {
648      scrollTarget = $(scrollTarget).parent();
649    }
650    // Only scroll upward.
651    if (offset.top - 10 < $(scrollTarget).scrollTop()) {
652      $(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500);
653    }
654  };
655
656})(jQuery);
657;
658/**
659 * Timepicker plugin & override helper.
660 * Adds attach behaviour to drupal settings for timepicker plugin.
661 */
662
663Drupal.settings.stanfordDateTimepicker = typeof(Drupal.settings.stanfordDateTimepicker) == 'undefined' ? [] : Drupal.settings.stanfordDateTimepicker;
664
665(function($){
666
667  Drupal.behaviors.stanford_date_timepicker = {
668    attach: function (context, settings) {
669
670      // @todo: Attach the timepicker to configured selector.
671      // $(".stanford-timepicker").timepicker({
672      //   controlType: 'select',
673      //   timeFormat: 'hh:mm tt'
674      // });
675
676      // Each time the page changes the field array is rebild as well as
677      // Drupal.settings... We need to add the pop up functionality back to
678      // those elements.
679      $.each(Drupal.settings.stanfordDateTimepicker, function(i, opts) {
680
681        // Add the timepicker to the time field.
682        var elem = $('#' + opts.id + ' ' + opts.selector, context).filter(":not(.su-proccessed)");
683        elem.timepicker(opts.opt_settings);
684        elem.addClass('su-proccessed');
685
686        // Add a yellow highlight to the time field on change.
687        elem.change(function(e) {
688          $(this).highlight();
689        });
690
691      });
692
693      // Add a yellow highlight to the date field on change.
694      $('.stanford-datepicker', context)
695      .filter(":not(.su-proccessed)")
696      .change(function(e){
697          $(this).highlight();
698      })
699      .addClass('su-proccessed');
700
701    }
702  };
703
704/**
705 * A quick yellow highlight that fades out.
706 */
707$.fn.highlight = function() {
708
709  $(this).each(function () {
710
711      var el = $(this);
712      el.css({position:"relative",zIndex:'1',background:"transparent"});
713
714      $("<div/>")
715      .width(el.outerWidth())
716      .height(el.outerHeight())
717      .css({
718          "position": "absolute",
719          "left": el.offset().left,
720          "top": el.offset().top,
721          "background-color": "#ffff99",
722          "opacity": ".7",
723          "z-index": "0"
724      }).appendTo('body').fadeOut(1000).queue(function () { $(this).remove(); });
725    el.focus();
726  });
727
728};
729
730})(jQuery);
731;

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.