PageSourceSearch

https://mpc-efi-production.herokuapp.com/static/js/lib/jquery.address.79354a2c5225.js

js mpc-efi-production.herokuapp.com collected 2026-10-03 14:50:22 UTC 21,270 bytes, 684 lines download raw bytes

1/*! jQuery Address v${version} | (c) 2009, 2013 Rostislav Hristov | jquery.org/license */
2;(function ($) {
3  $.address = (function () {
4    var _trigger = function (name) {
5        var e = $.extend(
6          $.Event(name),
7          function () {
8            var parameters = {},
9              parameterNames = $.address.parameterNames()
10            for (var i = 0, l = parameterNames.length; i < l; i++) {
11              parameters[parameterNames[i]] = $.address.parameter(
12                parameterNames[i]
13              )
14            }
15            return {
16              value: $.address.value(),
17              path: $.address.path(),
18              pathNames: $.address.pathNames(),
19              parameterNames: parameterNames,
20              parameters: parameters,
21              queryString: $.address.queryString(),
22            }
23          }.call($.address)
24        )
25        $($.address).trigger(e)
26        return e
27      },
28      _array = function (obj) {
29        return Array.prototype.slice.call(obj)
30      },
31      _bind = function (value, data, fn) {
32        $().bind.apply($($.address), Array.prototype.slice.call(arguments))
33        return $.address
34      },
35      _unbind = function (value, fn) {
36        $().unbind.apply($($.address), Array.prototype.slice.call(arguments))
37        return $.address
38      },
39      _supportsState = function () {
40        return _h.pushState && _opts.state !== UNDEFINED
41      },
42      _hrefState = function () {
43        return (
44          '/' +
45          _l.pathname.replace(new RegExp(_opts.state), '') +
46          _l.search +
47          (_hrefHash() ? '#' + _hrefHash() : '')
48        ).replace(_re, '/')
49      },
50      _hrefHash = function () {
51        var index = _l.href.indexOf('#')
52        return index != -1 ? _l.href.substr(index + 1) : ''
53      },
54      _href = function () {
55        return _supportsState() ? _hrefState() : _hrefHash()
56      },
57      _window = function () {
58        try {
59          return top.document !== UNDEFINED && top.document.title !== UNDEFINED
60            ? top
61            : window
62        } catch (e) {
63          return window
64        }
65      },
66      _js = function () {
67        return 'javascript'
68      },
69      _strict = function (value) {
70        value = value.toString()
71        return (_opts.strict && value.substr(0, 1) != '/' ? '/' : '') + value
72      },
73      _cssint = function (el, value) {
74        return parseInt(el.css(value), 10)
75      },
76      _listen = function () {
77        if (!_silent) {
78          var hash = _href(),
79            diff = decodeURI(_value) != decodeURI(hash)
80          if (diff) {
81            if (_msie && _version < 7) {
82              _l.reload()
83            } else {
84              if (_msie && !_hashchange && _opts.history) {
85                _st(_html, 50)
86              }
87              _value = hash
88              _update(FALSE)
89            }
90          }
91        }
92      },
93      _update = function (internal) {
94        _st(_track, 10)
95        return (
96          _trigger(CHANGE).isDefaultPrevented() ||
97          _trigger(
98            internal ? INTERNAL_CHANGE : EXTERNAL_CHANGE
99          ).isDefaultPrevented()
100        )
101      },
102      _track = function () {
103        if (_opts.tracker !== 'null' && _opts.tracker !== NULL) {
104          var fn = $.isFunction(_opts.tracker)
105              ? _opts.tracker
106              : _t[_opts.tracker],
107            value = (
108              _l.pathname +
109              _l.search +
110              ($.address && !_supportsState() ? $.address.value() : '')
111            )
112              .replace(/\/\//, '/')
113              .replace(/^\/$/, '')
114          if ($.isFunction(fn)) {
115            fn(value)
116          } else if ($.isFunction(_t.urchinTracker)) {
117            _t.urchinTracker(value)
118          } else if (
119            _t.pageTracker !== UNDEFINED &&
120            $.isFunction(_t.pageTracker._trackPageview)
121          ) {
122            _t.pageTracker._trackPageview(value)
123          } else if (_t._gaq !== UNDEFINED && $.isFunction(_t._gaq.push)) {
124            _t._gaq.push(['_trackPageview', decodeURI(value)])
125          }
126        }
127      },
128      _html = function () {
129        var src =
130          _js() +
131          ':' +
132          FALSE +
133          ";document.open();document.writeln('<html><head><title>" +
134          _d.title.replace(/\'/g, "\\'") +
135          '</title><script>var ' +
136          ID +
137          ' = "' +
138          encodeURIComponent(_href()).replace(/\'/g, "\\'") +
139          (_d.domain != _l.hostname ? '";document.domain="' + _d.domain : '') +
140          '";</' +
141          "script></head></html>');document.close();"
142        if (_version < 7) {
143          _frame.src = src
144        } else {
145          _frame.contentWindow.location.replace(src)
146        }
147      },
148      _options = function () {
149        if (_url && _qi != -1) {
150          var i,
151            param,
152            params = _url.substr(_qi + 1).split('&')
153          for (i = 0; i < params.length; i++) {
154            param = params[i].split('=')
155            if (/^(autoUpdate|history|strict|wrap)$/.test(param[0])) {
156              _opts[param[0]] = isNaN(param[1])
157                ? /^(true|yes)$/i.test(param[1])
158                : parseInt(param[1], 10) !== 0
159            }
160            if (/^(state|tracker)$/.test(param[0])) {
161              _opts[param[0]] = param[1]
162            }
163          }
164          _url = NULL
165        }
166        _value = _href()
167      },
168      _load = function () {
169        if (!_loaded) {
170          _loaded = TRUE
171          _options()
172          $('a[rel*="address:"]').address()
173          if (_opts.wrap) {
174            var body = $('body'),
175              wrap = $('body > *')
176                .wrapAll(
177                  '<div style="padding:' +
178                    (_cssint(body, 'marginTop') + _cssint(body, 'paddingTop')) +
179                    'px ' +
180                    (_cssint(body, 'marginRight') +
181                      _cssint(body, 'paddingRight')) +
182                    'px ' +
183                    (_cssint(body, 'marginBottom') +
184                      _cssint(body, 'paddingBottom')) +
185                    'px ' +
186                    (_cssint(body, 'marginLeft') +
187                      _cssint(body, 'paddingLeft')) +
188                    'px;" />'
189                )
190                .parent()
191                .wrap(
192                  '<div id="' +
193                    ID +
194                    '" style="height:100%;overflow:auto;position:relative;' +
195                    (_webkit && !window.statusbar.visible
196                      ? 'resize:both;'
197                      : '') +
198                    '" />'
199                )
200            $('html, body').css({
201              height: '100%',
202              margin: 0,
203              padding: 0,
204              overflow: 'hidden',
205            })
206            if (_webkit) {
207              $('<style type="text/css" />')
208                .appendTo('head')
209                .text(
210                  '#' + ID + '::-webkit-resizer { background-color: #fff; }'
211                )
212            }
213          }
214          if (_msie && !_hashchange) {
215            var frameset = _d.getElementsByTagName('frameset')[0]
216            _frame = _d.createElement((frameset ? '' : 'i') + 'frame')
217            _frame.src = _js() + ':' + FALSE
218            if (frameset) {
219              frameset.insertAdjacentElement('beforeEnd', _frame)
220              frameset[frameset.cols ? 'cols' : 'rows'] += ',0'
221              _frame.noResize = TRUE
222              _frame.frameBorder = _frame.frameSpacing = 0
223            } else {
224              _frame.style.display = 'none'
225              _frame.style.width = _frame.style.height = 0
226              _frame.tabIndex = -1
227              _d.body.insertAdjacentElement('afterBegin', _frame)
228            }
229            _st(function () {
230              $(_frame).bind('load', function () {
231                var win = _frame.contentWindow
232                _value = win[ID] !== UNDEFINED ? win[ID] : ''
233                if (_value != _href()) {
234                  _update(FALSE)
235                  _l.hash = _value
236                }
237              })
238              if (_frame.contentWindow[ID] === UNDEFINED) {
239                _html()
240              }
241            }, 50)
242          }
243          _st(function () {
244            _trigger('init')
245            _update(FALSE)
246          }, 1)
247          if (!_supportsState()) {
248            if ((_msie && _version > 7) || (!_msie && _hashchange)) {
249              if (_t.addEventListener) {
250                _t.addEventListener(HASH_CHANGE, _listen, FALSE)
251              } else if (_t.attachEvent) {
252                _t.attachEvent('on' + HASH_CHANGE, _listen)
253              }
254            } else {
255              _si(_listen, 50)
256            }
257          }
258          if ('state' in window.history) {
259            $(window).trigger('popstate')
260          }
261        }
262      },
263      _popstate = function () {
264        if (decodeURI(_value) != decodeURI(_href())) {
265          _value = _href()
266          _update(FALSE)
267        }
268      },
269      _unload = function () {
270        if (_t.removeEventListener) {
271          _t.removeEventListener(HASH_CHANGE, _listen, FALSE)
272        } else if (_t.detachEvent) {
273          _t.detachEvent('on' + HASH_CHANGE, _listen)
274        }
275      },
276      _uaMatch = function (ua) {
277        ua = ua.toLowerCase()
278        var match =
279          /(chrome)[ \/]([\w.]+)/.exec(ua) ||
280          /(webkit)[ \/]([\w.]+)/.exec(ua) ||
281          /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
282          /(msie) ([\w.]+)/.exec(ua) ||
283          (ua.indexOf('compatible') < 0 &&
284            /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua)) ||
285          []
286        return {
287          browser: match[1] || '',
288          version: match[2] || '0',
289        }
290      },
291      _detectBrowser = function () {
292        var browser = {},
293          matched = _uaMatch(navigator.userAgent)
294        if (matched.browser) {
295          browser[matched.browser] = true
296          browser.version = matched.version
297        }
298        if (browser.chrome) {
299          browser.webkit = true
300        } else if (browser.webkit) {
301          browser.safari = true
302        }
303        return browser
304      },
305      UNDEFINED,
306      NULL = null,
307      ID = 'jQueryAddress',
308      STRING = 'string',
309      HASH_CHANGE = 'hashchange',
310      INIT = 'init',
311      CHANGE = 'change',
312      INTERNAL_CHANGE = 'internalChange',
313      EXTERNAL_CHANGE = 'externalChange',
314      TRUE = true,
315      FALSE = false,
316      _opts = {
317        autoUpdate: TRUE,
318        history: TRUE,
319        strict: TRUE,
320        wrap: FALSE,
321      },
322      _browser = _detectBrowser(),
323      _version = parseFloat(_browser.version),
324      _webkit = _browser.webkit || _browser.safari,
325      _msie = !$.support.opacity,
326      _t = _window(),
327      _d = _t.document,
328      _h = _t.history,
329      _l = _t.location,
330      _si = setInterval,
331      _st = setTimeout,
332      _re = /\/{2,9}/g,
333      _agent = navigator.userAgent,
334      _hashchange = 'on' + HASH_CHANGE in _t,
335      _frame,
336      _form,
337      _url = $('script:last').attr('src'),
338      _qi = _url ? _url.indexOf('?') : -1,
339      _title = _d.title,
340      _silent = FALSE,
341      _loaded = FALSE,
342      _juststart = TRUE,
343      _updating = FALSE,
344      _listeners = {},
345      _value = _href()
346
347    if (_msie) {
348      _version = parseFloat(_agent.substr(_agent.indexOf('MSIE') + 4))
349      if (_d.documentMode && _d.documentMode != _version) {
350        _version = _d.documentMode != 8 ? 7 : 8
351      }
352      var pc = _d.onpropertychange
353      _d.onpropertychange = function () {
354        if (pc) {
355          pc.call(_d)
356        }
357        if (_d.title != _title && _d.title.indexOf('#' + _href()) != -1) {
358          _d.title = _title
359        }
360      }
361    }
362
363    if (_h.navigationMode) {
364      _h.navigationMode = 'compatible'
365    }
366    if (document.readyState == 'complete') {
367      var interval = setInterval(function () {
368        if ($.address) {
369          _load()
370          clearInterval(interval)
371        }
372      }, 50)
373    } else {
374      _options()
375      $(_load)
376    }
377    $(window).bind('popstate', _popstate).bind('unload', _unload)
378
379    return {
380      bind: function (type, data, fn) {
381        return _bind.apply(this, _array(arguments))
382      },
383      unbind: function (type, fn) {
384        return _unbind.apply(this, _array(arguments))
385      },
386      init: function (data, fn) {
387        return _bind.apply(this, [INIT].concat(_array(arguments)))
388      },
389      change: function (data, fn) {
390        return _bind.apply(this, [CHANGE].concat(_array(arguments)))
391      },
392      internalChange: function (data, fn) {
393        return _bind.apply(this, [INTERNAL_CHANGE].concat(_array(arguments)))
394      },
395      externalChange: function (data, fn) {
396        return _bind.apply(this, [EXTERNAL_CHANGE].concat(_array(arguments)))
397      },
398      baseURL: function () {
399        var url = _l.href
400        if (url.indexOf('#') != -1) {
401          url = url.substr(0, url.indexOf('#'))
402        }
403        if (/\/$/.test(url)) {
404          url = url.substr(0, url.length - 1)
405        }
406        return url
407      },
408      autoUpdate: function (value) {
409        if (value !== UNDEFINED) {
410          _opts.autoUpdate = value
411          return this
412        }
413        return _opts.autoUpdate
414      },
415      history: function (value) {
416        if (value !== UNDEFINED) {
417          _opts.history = value
418          return this
419        }
420        return _opts.history
421      },
422      state: function (value) {
423        if (value !== UNDEFINED) {
424          _opts.state = value
425          var hrefState = _hrefState()
426          if (_opts.state !== UNDEFINED) {
427            if (_h.pushState) {
428              if (hrefState.substr(0, 3) == '/#/') {
429                _l.replace(
430                  _opts.state.replace(/^\/$/, '') + hrefState.substr(2)
431                )
432              }
433            } else if (
434              hrefState != '/' &&
435              hrefState.replace(/^\/#/, '') != _hrefHash()
436            ) {
437              _st(function () {
438                _l.replace(_opts.state.replace(/^\/$/, '') + '/#' + hrefState)
439              }, 1)
440            }
441          }
442          return this
443        }
444        return _opts.state
445      },
446      strict: function (value) {
447        if (value !== UNDEFINED) {
448          _opts.strict = value
449          return this
450        }
451        return _opts.strict
452      },
453      tracker: function (value) {
454        if (value !== UNDEFINED) {
455          _opts.tracker = value
456          return this
457        }
458        return _opts.tracker
459      },
460      wrap: function (value) {
461        if (value !== UNDEFINED) {
462          _opts.wrap = value
463          return this
464        }
465        return _opts.wrap
466      },
467      update: function () {
468        _updating = TRUE
469        this.value(_value)
470        _updating = FALSE
471        return this
472      },
473      title: function (value) {
474        if (value !== UNDEFINED) {
475          _st(function () {
476            _title = _d.title = value
477            if (
478              _juststart &&
479              _frame &&
480              _frame.contentWindow &&
481              _frame.contentWindow.document
482            ) {
483              _frame.contentWindow.document.title = value
484              _juststart = FALSE
485            }
486          }, 50)
487          return this
488        }
489        return _d.title
490      },
491      value: function (value) {
492        if (value !== UNDEFINED) {
493          value = _strict(value)
494          if (value == '/') {
495            value = ''
496          }
497          if (_value == value && !_updating) {
498            return
499          }
500          _value = value
501          if (_opts.autoUpdate || _updating) {
502            if (_update(TRUE)) {
503              return this
504            }
505            if (_supportsState()) {
506              _h[_opts.history ? 'pushState' : 'replaceState'](
507                {},
508                '',
509                _opts.state.replace(/\/$/, '') + (_value === '' ? '/' : _value)
510              )
511            } else {
512              _silent = TRUE
513              if (_webkit) {
514                if (_opts.history) {
515                  _l.hash = '#' + _value
516                } else {
517                  _l.replace('#' + _value)
518                }
519              } else if (_value != _href()) {
520                if (_opts.history) {
521                  _l.hash = '#' + _value
522                } else {
523                  _l.replace('#' + _value)
524                }
525              }
526              if (_msie && !_hashchange && _opts.history) {
527                _st(_html, 50)
528              }
529              if (_webkit) {
530                _st(function () {
531                  _silent = FALSE
532                }, 1)
533              } else {
534                _silent = FALSE
535              }
536            }
537          }
538          return this
539        }
540        return _strict(_value)
541      },
542      path: function (value) {
543        if (value !== UNDEFINED) {
544          var qs = this.queryString(),
545            hash = this.hash()
546          this.value(value + (qs ? '?' + qs : '') + (hash ? '#' + hash : ''))
547          return this
548        }
549        return _strict(_value).split('#')[0].split('?')[0]
550      },
551      pathNames: function () {
552        var path = this.path(),
553          names = path.replace(_re, '/').split('/')
554        if (path.substr(0, 1) == '/' || path.length === 0) {
555          names.splice(0, 1)
556        }
557        if (path.substr(path.length - 1, 1) == '/') {
558          names.splice(names.length - 1, 1)
559        }
560        return names
561      },
562      queryString: function (value) {
563        if (value !== UNDEFINED) {
564          var hash = this.hash()
565          this.value(
566            this.path() + (value ? '?' + value : '') + (hash ? '#' + hash : '')
567          )
568          return this
569        }
570        var arr = _value.split('?')
571        return arr.slice(1, arr.length).join('?').split('#')[0]
572      },
573      parameter: function (name, value, append) {
574        var i, params
575        if (value !== UNDEFINED) {
576          var names = this.parameterNames()
577          params = []
578          value = value === UNDEFINED || value === NULL ? '' : value.toString()
579          for (i = 0; i < names.length; i++) {
580            var n = names[i],
581              v = this.parameter(n)
582            if (typeof v == STRING) {
583              v = [v]
584            }
585            if (n == name) {
586              v =
587                value === NULL || value === ''
588                  ? []
589                  : append
590                  ? v.concat([value])
591                  : [value]
592            }
593            for (var j = 0; j < v.length; j++) {
594              params.push(n + '=' + v[j])
595            }
596          }
597          if ($.inArray(name, names) == -1 && value !== NULL && value !== '') {
598            params.push(name + '=' + value)
599          }
600          this.queryString(params.join('&'))
601          return this
602        }
603        value = this.queryString()
604        if (value) {
605          var r = []
606          params = value.split('&')
607          for (i = 0; i < params.length; i++) {
608            var p = params[i].split('=')
609            if (p[0] == name) {
610              r.push(p.slice(1).join('='))
611            }
612          }
613          if (r.length !== 0) {
614            return r.length != 1 ? r : r[0]
615          }
616        }
617      },
618      parameterNames: function () {
619        var qs = this.queryString(),
620          names = []
621        if (qs && qs.indexOf('=') != -1) {
622          var params = qs.split('&')
623          for (var i = 0; i < params.length; i++) {
624            var name = params[i].split('=')[0]
625            if ($.inArray(name, names) == -1) {
626              names.push(name)
627            }
628          }
629        }
630        return names
631      },
632      hash: function (value) {
633        if (value !== UNDEFINED) {
634          this.value(_value.split('#')[0] + (value ? '#' + value : ''))
635          return this
636        }
637        var arr = _value.split('#')
638        return arr.slice(1, arr.length).join('#')
639      },
640    }
641  })()
642
643  $.fn.address = function (fn) {
644    if (!this.data('address')) {
645      this.on('click', function (e) {
646        if (e.shiftKey || e.ctrlKey || e.metaKey || e.which == 2) {
647          return true
648        }
649        var target = e.currentTarget
650        if ($(target).is('a')) {
651          e.preventDefault()
652          var value = fn
653            ? fn.call(target)
654            : /address:/.test($(target).attr('rel'))
655            ? $(target).attr('rel').split('address:')[1].split(' ')[0]
656            : $.address.state() !== undefined &&
657              !/^\/?$/.test($.address.state())
658            ? $(target)
659                .attr('href')
660                .replace(new RegExp('^(.*' + $.address.state() + '|\\.)'), '')
661            : $(target)
662                .attr('href')
663                .replace(/^(#\!?|\.)/, '')
664          $.address.value(value)
665        }
666      })
667        .on('submit', function (e) {
668          var target = e.currentTarget
669          if ($(target).is('form')) {
670            e.preventDefault()
671            var action = $(target).attr('action'),
672              value = fn
673                ? fn.call(target)
674                : (action.indexOf('?') != -1
675                    ? action.replace(/&$/, '')
676                    : action + '?') + $(target).serialize()
677            $.address.value(value)
678          }
679        })
680        .data('address', true)
681    }
682    return this
683  }
684})(jQuery)

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.