vendor: 6,040 bytes, lines 1-123
1if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); + function(a) { 2 "use strict"; 3 var b = a.fn.jquery.split(" ")[0].split("."); 4 if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher") 5}(jQuery), + function(a) { 6 "use strict"; 7 8 function b() { 9 var a = document.createElement("bootstrap"), 10 b = { 11 WebkitTransition: "webkitTransitionEnd", 12 MozTransition: "transitionend", 13 OTransition: "oTransitionEnd otransitionend", 14 transition: "transitionend" 15 }; 16 for (var c in b) 17 if (void 0 !== a.style[c]) return { 18 end: b[c] 19 }; 20 return !1 21 } 22 a.fn.emulateTransitionEnd = function(b) { 23 var c = !1, 24 d = this; 25 a(this).one("bsTransitionEnd", function() { 26 c = !0 27 }); 28 var e = function() { 29 c || a(d).trigger(a.support.transition.end) 30 }; 31 return setTimeout(e, b), this 32 }, a(function() { 33 a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = { 34 bindType: a.support.transition.end, 35 delegateType: a.support.transition.end, 36 handle: function(b) { 37 return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0 38 } 39 }) 40 }) 41}(jQuery), + function(a) { 42 "use strict"; 43 44 function b(b) { 45 return this.each(function() { 46 var c = a(this), 47 e = c.data("bs.alert"); 48 e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c) 49 }) 50 } 51 var c = '[data-dismiss="alert"]', 52 d = function(b) { 53 a(b).on("click", c, this.close) 54 }; 55 d.VERSION = "3.3.5", d.TRANSITION_DURATION = 150, d.prototype.close = function(b) { 56 function c() { 57 g.detach().trigger("closed.bs.alert").remove() 58 } 59 var e = a(this), 60 f = e.attr("data-target"); 61 f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); 62 var g = a(f); 63 b && b.preventDefault(), g.length || (g = e.closest(".alert")), g.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) : c()) 64 }; 65 var e = a.fn.alert; 66 a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function() { 67 return a.fn.alert = e, this 68 }, a(document).on("click.bs.alert.data-api", c, d.prototype.close) 69}(jQuery), + function(a) { 70 "use strict"; 71 72 function b(b) { 73 return this.each(function() { 74 var d = a(this), 75 e = d.data("bs.button"), 76 f = "object" == typeof b && b; 77 e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b) 78 }) 79 } 80 var c = function(b, d) { 81 this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1 82 }; 83 c.VERSION = "3.3.5", c.DEFAULTS = { 84 loadingText: "loading..." 85 }, c.prototype.setState = function(b) { 86 var c = "disabled", 87 d = this.$element, 88 e = d.is("input") ? "val" : "html", 89 f = d.data(); 90 b += "Text", null == f.resetText && d.data("resetText", d[e]()), setTimeout(a.proxy(function() { 91 d[e](null == f[b] ? this.options[b] : f[b]), "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)) 92 }, this), 0) 93 }, c.prototype.toggle = function() { 94 var a = !0, 95 b = this.$element.closest('[data-toggle="buttons"]'); 96 if (b.length) { 97 var c = this.$element.find("input"); 98 "radio" == c.prop("type") ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), c.prop("checked", this.$element.hasClass("active")), a && c.trigger("change") 99 } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active") 100 }; 101 var d = a.fn.button; 102 a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function() { 103 return a.fn.button = d, this 104 }, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(c) { 105 var d = a(c.target); 106 d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), a(c.target).is('input[type="radio"]') || a(c.target).is('input[type="checkbox"]') || c.preventDefault() 107 }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(b) { 108 a(b.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(b.type)) 109 }) 110}(jQuery), + function(a) { 111 "use strict"; 112 113 function b(b) { 114 return this.each(function() { 115 var d = a(this), 116 e = d.data("bs.carousel"), 117 f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), 118 g = "string" == typeof b ? b : f.slide; 119 e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle() 120 }) 121 } 122 var c = function(b, c) { 123 this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("key
vendor: 4,450 bytes, lines 123-204
123down.bs.carousel", a.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) 124 }; 125 c.VERSION = "3.3.5", c.TRANSITION_DURATION = 600, c.DEFAULTS = { 126 interval: 5e3, 127 pause: "hover", 128 wrap: !0, 129 keyboard: !0 130 }, c.prototype.keydown = function(a) { 131 if (!/input|textarea/i.test(a.target.tagName)) { 132 switch (a.which) { 133 case 37: 134 this.prev(); 135 break; 136 case 39: 137 this.next(); 138 break; 139 default: 140 return 141 } 142 a.preventDefault() 143 } 144 }, c.prototype.cycle = function(b) { 145 return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this 146 }, c.prototype.getItemIndex = function(a) { 147 return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active) 148 }, c.prototype.getItemForDirection = function(a, b) { 149 var c = this.getItemIndex(b), 150 d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; 151 if (d && !this.options.wrap) return b; 152 var e = "prev" == a ? -1 : 1, 153 f = (c + e) % this.$items.length; 154 return this.$items.eq(f) 155 }, c.prototype.to = function(a) { 156 var b = this, 157 c = this.getItemIndex(this.$active = this.$element.find(".item.active")); 158 return a > this.$items.length - 1 || 0 > a ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function() { 159 b.to(a) 160 }) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a)) 161 }, c.prototype.pause = function(b) { 162 return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this 163 }, c.prototype.next = function() { 164 return this.sliding ? void 0 : this.slide("next") 165 }, c.prototype.prev = function() { 166 return this.sliding ? void 0 : this.slide("prev") 167 }, c.prototype.slide = function(b, d) { 168 var e = this.$element.find(".item.active"), 169 f = d || this.getItemForDirection(b, e), 170 g = this.interval, 171 h = "next" == b ? "left" : "right", 172 i = this; 173 if (f.hasClass("active")) return this.sliding = !1; 174 var j = f[0], 175 k = a.Event("slide.bs.carousel", { 176 relatedTarget: j, 177 direction: h 178 }); 179 if (this.$element.trigger(k), !k.isDefaultPrevented()) { 180 if (this.sliding = !0, g && this.pause(), this.$indicators.length) { 181 this.$indicators.find(".active").removeClass("active"); 182 var l = a(this.$indicators.children()[this.getItemIndex(f)]); 183 l && l.addClass("active") 184 } 185 var m = a.Event("slid.bs.carousel", { 186 relatedTarget: j, 187 direction: h 188 }); 189 return a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function() { 190 f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), i.sliding = !1, setTimeout(function() { 191 i.$element.trigger(m) 192 }, 0) 193 }).emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), g && this.cycle(), this 194 } 195 }; 196 var d = a.fn.carousel; 197 a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function() { 198 return a.fn.carousel = d, this 199 }; 200 var e = function(c) { 201 var d, e = a(this), 202 f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); 203 if (f.hasClass("carousel")) { 204 var g = a.extend({}, f.data(), e.data()),
vendor: 11,199 bytes, lines 205-403
205 h = e.attr("data-slide-to"); 206 h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault() 207 } 208 }; 209 a(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), a(window).on("load", function() { 210 a('[data-ride="carousel"]').each(function() { 211 var c = a(this); 212 b.call(c, c.data()) 213 }) 214 }) 215}(jQuery), + function(a) { 216 "use strict"; 217 218 function b(b) { 219 var c, d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); 220 return a(d) 221 } 222 223 function c(b) { 224 return this.each(function() { 225 var c = a(this), 226 e = c.data("bs.collapse"), 227 f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); 228 !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), e || c.data("bs.collapse", e = new d(this, f)), "string" == typeof b && e[b]() 229 }) 230 } 231 var d = function(b, c) { 232 this.$element = a(b), this.options = a.extend({}, d.DEFAULTS, c), this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle() 233 }; 234 d.VERSION = "3.3.5", d.TRANSITION_DURATION = 350, d.DEFAULTS = { 235 toggle: !0 236 }, d.prototype.dimension = function() { 237 var a = this.$element.hasClass("width"); 238 return a ? "width" : "height" 239 }, d.prototype.show = function() { 240 if (!this.transitioning && !this.$element.hasClass("in")) { 241 var b, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); 242 if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { 243 var f = a.Event("show.bs.collapse"); 244 if (this.$element.trigger(f), !f.isDefaultPrevented()) { 245 e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); 246 var g = this.dimension(); 247 this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; 248 var h = function() { 249 this.$element.removeClass("collapsing").addClass("collapse in")[g](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") 250 }; 251 if (!a.support.transition) return h.call(this); 252 var i = a.camelCase(["scroll", g].join("-")); 253 this.$element.one("bsTransitionEnd", a.proxy(h, this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) 254 } 255 } 256 } 257 }, d.prototype.hide = function() { 258 if (!this.transitioning && this.$element.hasClass("in")) { 259 var b = a.Event("hide.bs.collapse"); 260 if (this.$element.trigger(b), !b.isDefaultPrevented()) { 261 var c = this.dimension(); 262 this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; 263 var e = function() { 264 this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") 265 }; 266 return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(e, this)).emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this) 267 } 268 } 269 }, d.prototype.toggle = function() { 270 this[this.$element.hasClass("in") ? "hide" : "show"]() 271 }, d.prototype.getParent = function() { 272 return a(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function(c, d) { 273 var e = a(d); 274 this.addAriaAndCollapsedClass(b(e), e) 275 }, this)).end() 276 }, d.prototype.addAriaAndCollapsedClass = function(a, b) { 277 var c = a.hasClass("in"); 278 a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c) 279 }; 280 var e = a.fn.collapse; 281 a.fn.collapse = c, a.fn.collapse.Constructor = d, a.fn.collapse.noConflict = function() { 282 return a.fn.collapse = e, this 283 }, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(d) { 284 var e = a(this); 285 e.attr("data-target") || d.preventDefault(); 286 var f = b(e), 287 g = f.data("bs.collapse"), 288 h = g ? "toggle" : e.data(); 289 c.call(f, h) 290 }) 291}(jQuery), + function(a) { 292 "use strict"; 293 294 function b(b) { 295 var c = b.attr("data-target"); 296 c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); 297 var d = c && a(c); 298 return d && d.length ? d : b.parent() 299 } 300 301 function c(c) { 302 c && 3 === c.which || (a(e).remove(), a(f).each(function() { 303 var d = a(this), 304 e = b(d), 305 f = { 306 relatedTarget: this 307 }; 308 e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger("hidden.bs.dropdown", f)))) 309 })) 310 } 311 312 function d(b) { 313 return this.each(function() { 314 var c = a(this), 315 d = c.data("bs.dropdown"); 316 d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c) 317 }) 318 } 319 var e = ".dropdown-backdrop", 320 f = '[data-toggle="dropdown"]', 321 g = function(b) { 322 a(b).on("click.bs.dropdown", this.toggle) 323 }; 324 g.VERSION = "3.3.5", g.prototype.toggle = function(d) { 325 var e = a(this); 326 if (!e.is(".disabled, :disabled")) { 327 var f = b(e), 328 g = f.hasClass("open"); 329 if (c(), !g) { 330 "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", c); 331 var h = { 332 relatedTarget: this 333 }; 334 if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return; 335 e.trigger("focus").attr("aria-expanded", "true"), f.toggleClass("open").trigger("shown.bs.dropdown", h) 336 } 337 return !1 338 } 339 }, g.prototype.keydown = function(c) { 340 if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { 341 var d = a(this); 342 if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { 343 var e = b(d), 344 g = e.hasClass("open"); 345 if (!g && 27 != c.which || g && 27 == c.which) return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click"); 346 var h = " li:not(.disabled):visible a", 347 i = e.find(".dropdown-menu" + h); 348 if (i.length) { 349 var j = i.index(c.target); 350 38 == c.which && j > 0 && j--, 40 == c.which && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus") 351 } 352 } 353 } 354 }; 355 var h = a.fn.dropdown; 356 a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function() { 357 return a.fn.dropdown = h, this 358 }, a(document).on("click.bs.dropdown.data-api", c).on("click.bs.dropdown.data-api", ".dropdown form", function(a) { 359 a.stopPropagation() 360 }).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f, g.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) 361}(jQuery), + function(a) { 362 "use strict"; 363 364 function b(b, d) { 365 return this.each(function() { 366 var e = a(this), 367 f = e.data("bs.modal"), 368 g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); 369 f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d) 370 }) 371 } 372 var c = function(b, c) { 373 this.options = c, this.$body = a(document.body), this.$element = a(b), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function() { 374 this.$element.trigger("loaded.bs.modal") 375 }, this)) 376 }; 377 c.VERSION = "3.3.5", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = { 378 backdrop: !0, 379 keyboard: !0, 380 show: !0 381 }, c.prototype.toggle = function(a) { 382 return this.isShown ? this.hide() : this.show(a) 383 }, c.prototype.show = function(b) { 384 var d = this, 385 e = a.Event("show.bs.modal", { 386 relatedTarget: b 387 }); 388 this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function() { 389 d.$element.one("mouseup.dismiss.bs.modal", function(b) { 390 a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) 391 }) 392 }), this.backdrop(function() { 393 var e = a.support.transition && d.$element.hasClass("fade"); 394 d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass("in"), d.enforceFocus(); 395 var f = a.Event("shown.bs.modal", { 396 relatedTarget: b 397 }); 398 e ? d.$dialog.one("bsTransitionEnd", function() { 399 d.$element.trigger("focus").trigger(f) 400 }).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f) 401 })) 402 }, c.prototype.hide = function(b) { 403 b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("
vendor: 14,748 bytes, lines 403-656
403click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()) 404 }, c.prototype.enforceFocus = function() { 405 a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function(a) { 406 this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus") 407 }, this)) 408 }, c.prototype.escape = function() { 409 this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function(a) { 410 27 == a.which && this.hide() 411 }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal") 412 }, c.prototype.resize = function() { 413 this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal") 414 }, c.prototype.hideModal = function() { 415 var a = this; 416 this.$element.hide(), this.backdrop(function() { 417 a.$body.removeClass("modal-open"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger("hidden.bs.modal") 418 }) 419 }, c.prototype.removeBackdrop = function() { 420 this.$backdrop && this.$backdrop.remove(), this.$backdrop = null 421 }, c.prototype.backdrop = function(b) { 422 var d = this, 423 e = this.$element.hasClass("fade") ? "fade" : ""; 424 if (this.isShown && this.options.backdrop) { 425 var f = a.support.transition && e; 426 if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function(a) { 427 return this.ignoreBackdropClick ? void(this.ignoreBackdropClick = !1) : void(a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())) 428 }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return; 429 f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b() 430 } else if (!this.isShown && this.$backdrop) { 431 this.$backdrop.removeClass("in"); 432 var g = function() { 433 d.removeBackdrop(), b && b() 434 }; 435 a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g() 436 } else b && b() 437 }, c.prototype.handleUpdate = function() { 438 this.adjustDialog() 439 }, c.prototype.adjustDialog = function() { 440 var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; 441 this.$element.css({ 442 paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", 443 paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" 444 }) 445 }, c.prototype.resetAdjustments = function() { 446 this.$element.css({ 447 paddingLeft: "", 448 paddingRight: "" 449 }) 450 }, c.prototype.checkScrollbar = function() { 451 var a = window.innerWidth; 452 if (!a) { 453 var b = document.documentElement.getBoundingClientRect(); 454 a = b.right - Math.abs(b.left) 455 } 456 this.bodyIsOverflowing = document.body.clientWidth < a, this.scrollbarWidth = this.measureScrollbar() 457 }, c.prototype.setScrollbar = function() { 458 var a = parseInt(this.$body.css("padding-right") || 0, 10); 459 this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth) 460 }, c.prototype.resetScrollbar = function() { 461 this.$body.css("padding-right", this.originalBodyPad) 462 }, c.prototype.measureScrollbar = function() { 463 var a = document.createElement("div"); 464 a.className = "modal-scrollbar-measure", this.$body.append(a); 465 var b = a.offsetWidth - a.clientWidth; 466 return this.$body[0].removeChild(a), b 467 }; 468 var d = a.fn.modal; 469 a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function() { 470 return a.fn.modal = d, this 471 }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(c) { 472 var d = a(this), 473 e = d.attr("href"), 474 f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), 475 g = f.data("bs.modal") ? "toggle" : a.extend({ 476 remote: !/#/.test(e) && e 477 }, f.data(), d.data()); 478 d.is("a") && c.preventDefault(), f.one("show.bs.modal", function(a) { 479 a.isDefaultPrevented() || f.one("hidden.bs.modal", function() { 480 d.is(":visible") && d.trigger("focus") 481 }) 482 }), b.call(f, g, this) 483 }) 484}(jQuery), + function(a) { 485 "use strict"; 486 487 function b(b) { 488 return this.each(function() { 489 var d = a(this), 490 e = d.data("bs.tooltip"), 491 f = "object" == typeof b && b; 492 !e && /destroy|hide/.test(b) || (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) 493 }) 494 } 495 var c = function(a, b) { 496 this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", a, b) 497 }; 498 c.VERSION = "3.3.5", c.TRANSITION_DURATION = 150, c.DEFAULTS = { 499 animation: !0, 500 placement: "top", 501 selector: !1, 502 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 503 trigger: "hover focus", 504 title: "", 505 delay: 0, 506 html: !1, 507 container: !1, 508 viewport: { 509 selector: "body", 510 padding: 0 511 } 512 }, c.prototype.init = function(b, c, d) { 513 if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = { 514 click: !1, 515 hover: !1, 516 focus: !1 517 }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); 518 for (var e = this.options.trigger.split(" "), f = e.length; f--;) { 519 var g = e[f]; 520 if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); 521 else if ("manual" != g) { 522 var h = "hover" == g ? "mouseenter" : "focusin", 523 i = "hover" == g ? "mouseleave" : "focusout"; 524 this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) 525 } 526 } 527 this.options.selector ? this._options = a.extend({}, this.options, { 528 trigger: "manual", 529 selector: "" 530 }) : this.fixTitle() 531 }, c.prototype.getDefaults = function() { 532 return c.DEFAULTS 533 }, c.prototype.getOptions = function(b) { 534 return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { 535 show: b.delay, 536 hide: b.delay 537 }), b 538 }, c.prototype.getDelegateOptions = function() { 539 var b = {}, 540 c = this.getDefaults(); 541 return this._options && a.each(this._options, function(a, d) { 542 c[a] != d && (b[a] = d) 543 }), b 544 }, c.prototype.enter = function(b) { 545 var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); 546 return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), c.tip().hasClass("in") || "in" == c.hoverState ? void(c.hoverState = "in") : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void(c.timeout = setTimeout(function() { 547 "in" == c.hoverState && c.show() 548 }, c.options.delay.show)) : c.show()) 549 }, c.prototype.isInStateTrue = function() { 550 for (var a in this.inState) 551 if (this.inState[a]) return !0; 552 return !1 553 }, c.prototype.leave = function(b) { 554 var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); 555 return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), c.isInStateTrue() ? void 0 : (clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void(c.timeout = setTimeout(function() { 556 "out" == c.hoverState && c.hide() 557 }, c.options.delay.hide)) : c.hide()) 558 }, c.prototype.show = function() { 559 var b = a.Event("show.bs." + this.type); 560 if (this.hasContent() && this.enabled) { 561 this.$element.trigger(b); 562 var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); 563 if (b.isDefaultPrevented() || !d) return; 564 var e = this, 565 f = this.tip(), 566 g = this.getUID(this.type); 567 this.setContent(), f.attr("id", g), this.$element.attr("aria-describedby", g), this.options.animation && f.addClass("fade"); 568 var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement, 569 i = /\s?auto?\s?/i, 570 j = i.test(h); 571 j && (h = h.replace(i, "") || "top"), f.detach().css({ 572 top: 0, 573 left: 0, 574 display: "block" 575 }).addClass(h).data("bs." + this.type, this), this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); 576 var k = this.getPosition(), 577 l = f[0].offsetWidth, 578 m = f[0].offsetHeight; 579 if (j) { 580 var n = h, 581 o = this.getPosition(this.$viewport); 582 h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h, f.removeClass(n).addClass(h) 583 } 584 var p = this.getCalculatedOffset(h, k, l, m); 585 this.applyPlacement(p, h); 586 var q = function() { 587 var a = e.hoverState; 588 e.$element.trigger("shown.bs." + e.type), e.hoverState = null, "out" == a && e.leave(e) 589 }; 590 a.support.transition && this.$tip.hasClass("fade") ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) : q() 591 } 592 }, c.prototype.applyPlacement = function(b, c) { 593 var d = this.tip(), 594 e = d[0].offsetWidth, 595 f = d[0].offsetHeight, 596 g = parseInt(d.css("margin-top"), 10), 597 h = parseInt(d.css("margin-left"), 10); 598 isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top += g, b.left += h, a.offset.setOffset(d[0], a.extend({ 599 using: function(a) { 600 d.css({ 601 top: Math.round(a.top), 602 left: Math.round(a.left) 603 }) 604 } 605 }, b), 0), d.addClass("in"); 606 var i = d[0].offsetWidth, 607 j = d[0].offsetHeight; 608 "top" == c && j != f && (b.top = b.top + f - j); 609 var k = this.getViewportAdjustedDelta(c, b, i, j); 610 k.left ? b.left += k.left : b.top += k.top; 611 var l = /top|bottom/.test(c), 612 m = l ? 2 * k.left - e + i : 2 * k.top - f + j, 613 n = l ? "offsetWidth" : "offsetHeight"; 614 d.offset(b), this.replaceArrow(m, d[0][n], l) 615 }, c.prototype.replaceArrow = function(a, b, c) { 616 this.arrow().css(c ? "left" : "top", 50 * (1 - a / b) + "%").css(c ? "top" : "left", "") 617 }, c.prototype.setContent = function() { 618 var a = this.tip(), 619 b = this.getTitle(); 620 a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right") 621 }, c.prototype.hide = function(b) { 622 function d() { 623 "in" != e.hoverState && f.detach(), e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), b && b() 624 } 625 var e = this, 626 f = a(this.$tip), 627 g = a.Event("hide.bs." + this.type); 628 return this.$element.trigger(g), g.isDefaultPrevented() ? void 0 : (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) : d(), this.hoverState = null, this) 629 }, c.prototype.fixTitle = function() { 630 var a = this.$element; 631 (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") 632 }, c.prototype.hasContent = function() { 633 return this.getTitle() 634 }, c.prototype.getPosition = function(b) { 635 b = b || this.$element; 636 var c = b[0], 637 d = "BODY" == c.tagName, 638 e = c.getBoundingClientRect(); 639 null == e.width && (e = a.extend({}, e, { 640 width: e.right - e.left, 641 height: e.bottom - e.top 642 })); 643 var f = d ? { 644 top: 0, 645 left: 0 646 } : b.offset(), 647 g = { 648 scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() 649 }, 650 h = d ? { 651 width: a(window).width(), 652 height: a(window).height() 653 } : null; 654 return a.extend({}, e, g, h, f) 655 }, c.prototype.getCalculatedOffset = function(a, b, c, d) { 656 return "bottom" == a ? {
vendor: 6,253 bytes, lines 657-781
657 top: b.top + b.height, 658 left: b.left + b.width / 2 - c / 2 659 } : "top" == a ? { 660 top: b.top - d, 661 left: b.left + b.width / 2 - c / 2 662 } : "left" == a ? { 663 top: b.top + b.height / 2 - d / 2, 664 left: b.left - c 665 } : { 666 top: b.top + b.height / 2 - d / 2, 667 left: b.left + b.width 668 } 669 }, c.prototype.getViewportAdjustedDelta = function(a, b, c, d) { 670 var e = { 671 top: 0, 672 left: 0 673 }; 674 if (!this.$viewport) return e; 675 var f = this.options.viewport && this.options.viewport.padding || 0, 676 g = this.getPosition(this.$viewport); 677 if (/right|left/.test(a)) { 678 var h = b.top - f - g.scroll, 679 i = b.top + f - g.scroll + d; 680 h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i) 681 } else { 682 var j = b.left - f, 683 k = b.left + f + c; 684 j < g.left ? e.left = g.left - j : k > g.right && (e.left = g.left + g.width - k) 685 } 686 return e 687 }, c.prototype.getTitle = function() { 688 var a, b = this.$element, 689 c = this.options; 690 return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) 691 }, c.prototype.getUID = function(a) { 692 do a += ~~(1e6 * Math.random()); while (document.getElementById(a)); 693 return a 694 }, c.prototype.tip = function() { 695 if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); 696 return this.$tip 697 }, c.prototype.arrow = function() { 698 return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") 699 }, c.prototype.enable = function() { 700 this.enabled = !0 701 }, c.prototype.disable = function() { 702 this.enabled = !1 703 }, c.prototype.toggleEnabled = function() { 704 this.enabled = !this.enabled 705 }, c.prototype.toggle = function(b) { 706 var c = this; 707 b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), b ? (c.inState.click = !c.inState.click, c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c) 708 }, c.prototype.destroy = function() { 709 var a = this; 710 clearTimeout(this.timeout), this.hide(function() { 711 a.$element.off("." + a.type).removeData("bs." + a.type), a.$tip && a.$tip.detach(), a.$tip = null, a.$arrow = null, a.$viewport = null 712 }) 713 }; 714 var d = a.fn.tooltip; 715 a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function() { 716 return a.fn.tooltip = d, this 717 } 718}(jQuery), + function(a) { 719 "use strict"; 720 721 function b(b) { 722 return this.each(function() { 723 var d = a(this), 724 e = d.data("bs.popover"), 725 f = "object" == typeof b && b; 726 !e && /destroy|hide/.test(b) || (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) 727 }) 728 } 729 var c = function(a, b) { 730 this.init("popover", a, b) 731 }; 732 if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); 733 c.VERSION = "3.3.5", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { 734 placement: "right", 735 trigger: "click", 736 content: "", 737 template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' 738 }), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function() { 739 return c.DEFAULTS 740 }, c.prototype.setContent = function() { 741 var a = this.tip(), 742 b = this.getTitle(), 743 c = this.getContent(); 744 a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide() 745 }, c.prototype.hasContent = function() { 746 return this.getTitle() || this.getContent() 747 }, c.prototype.getContent = function() { 748 var a = this.$element, 749 b = this.options; 750 return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) 751 }, c.prototype.arrow = function() { 752 return this.$arrow = this.$arrow || this.tip().find(".arrow") 753 }; 754 var d = a.fn.popover; 755 a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function() { 756 return a.fn.popover = d, this 757 } 758}(jQuery), + function(a) { 759 "use strict"; 760 761 function b(c, d) { 762 this.$body = a(document.body), this.$scrollElement = a(a(c).is(document.body) ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), this.refresh(), this.process() 763 } 764 765 function c(c) { 766 return this.each(function() { 767 var d = a(this), 768 e = d.data("bs.scrollspy"), 769 f = "object" == typeof c && c; 770 e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]() 771 }) 772 } 773 b.VERSION = "3.3.5", b.DEFAULTS = { 774 offset: 10 775 }, b.prototype.getScrollHeight = function() { 776 return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) 777 }, b.prototype.refresh = function() { 778 var b = this, 779 c = "offset", 780 d = 0; 781 this.offsets = [], this.targets = [], this.scrollHeight = this.get
vendor: 7,107 bytes, lines 781-917
781ScrollHeight(), a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function() { 782 var b = a(this), 783 e = b.data("target") || b.attr("href"), 784 f = /^#./.test(e) && a(e); 785 return f && f.length && f.is(":visible") && [ 786 [f[c]().top + d, e] 787 ] || null 788 }).sort(function(a, b) { 789 return a[0] - b[0] 790 }).each(function() { 791 b.offsets.push(this[0]), b.targets.push(this[1]) 792 }) 793 }, b.prototype.process = function() { 794 var a, b = this.$scrollElement.scrollTop() + this.options.offset, 795 c = this.getScrollHeight(), 796 d = this.options.offset + c - this.$scrollElement.height(), 797 e = this.offsets, 798 f = this.targets, 799 g = this.activeTarget; 800 if (this.scrollHeight != c && this.refresh(), b >= d) return g != (a = f[f.length - 1]) && this.activate(a); 801 if (g && b < e[0]) return this.activeTarget = null, this.clear(); 802 for (a = e.length; a--;) g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) 803 }, b.prototype.activate = function(b) { 804 this.activeTarget = b, this.clear(); 805 var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', 806 d = a(c).parents("li").addClass("active"); 807 d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), 808 d.trigger("activate.bs.scrollspy") 809 }, b.prototype.clear = function() { 810 a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active") 811 }; 812 var d = a.fn.scrollspy; 813 a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function() { 814 return a.fn.scrollspy = d, this 815 }, a(window).on("load.bs.scrollspy.data-api", function() { 816 a('[data-spy="scroll"]').each(function() { 817 var b = a(this); 818 c.call(b, b.data()) 819 }) 820 }) 821}(jQuery), + function(a) { 822 "use strict"; 823 824 function b(b) { 825 return this.each(function() { 826 var d = a(this), 827 e = d.data("bs.tab"); 828 e || d.data("bs.tab", e = new c(this)), "string" == typeof b && e[b]() 829 }) 830 } 831 var c = function(b) { 832 this.element = a(b) 833 }; 834 c.VERSION = "3.3.5", c.TRANSITION_DURATION = 150, c.prototype.show = function() { 835 var b = this.element, 836 c = b.closest("ul:not(.dropdown-menu)"), 837 d = b.data("target"); 838 if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { 839 var e = c.find(".active:last a"), 840 f = a.Event("hide.bs.tab", { 841 relatedTarget: b[0] 842 }), 843 g = a.Event("show.bs.tab", { 844 relatedTarget: e[0] 845 }); 846 if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { 847 var h = a(d); 848 this.activate(b.closest("li"), c), this.activate(h, h.parent(), function() { 849 e.trigger({ 850 type: "hidden.bs.tab", 851 relatedTarget: b[0] 852 }), b.trigger({ 853 type: "shown.bs.tab", 854 relatedTarget: e[0] 855 }) 856 }) 857 } 858 } 859 }, c.prototype.activate = function(b, d, e) { 860 function f() { 861 g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu").length && b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), e && e() 862 } 863 var g = d.find("> .active"), 864 h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); 865 g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), g.removeClass("in") 866 }; 867 var d = a.fn.tab; 868 a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function() { 869 return a.fn.tab = d, this 870 }; 871 var e = function(c) { 872 c.preventDefault(), b.call(a(this), "show") 873 }; 874 a(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', e).on("click.bs.tab.data-api", '[data-toggle="pill"]', e) 875}(jQuery), + function(a) { 876 "use strict"; 877 878 function b(b) { 879 return this.each(function() { 880 var d = a(this), 881 e = d.data("bs.affix"), 882 f = "object" == typeof b && b; 883 e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b]() 884 }) 885 } 886 var c = function(b, d) { 887 this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition() 888 }; 889 c.VERSION = "3.3.5", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = { 890 offset: 0, 891 target: window 892 }, c.prototype.getState = function(a, b, c, d) { 893 var e = this.$target.scrollTop(), 894 f = this.$element.offset(), 895 g = this.$target.height(); 896 if (null != c && "top" == this.affixed) return c > e ? "top" : !1; 897 if ("bottom" == this.affixed) return null != c ? e + this.unpin <= f.top ? !1 : "bottom" : a - d >= e + g ? !1 : "bottom"; 898 var h = null == this.affixed, 899 i = h ? e : f.top, 900 j = h ? g : b; 901 return null != c && c >= e ? "top" : null != d && i + j >= a - d ? "bottom" : !1 902 }, c.prototype.getPinnedOffset = function() { 903 if (this.pinnedOffset) return this.pinnedOffset; 904 this.$element.removeClass(c.RESET).addClass("affix"); 905 var a = this.$target.scrollTop(), 906 b = this.$element.offset(); 907 return this.pinnedOffset = b.top - a 908 }, c.prototype.checkPositionWithEventLoop = function() { 909 setTimeout(a.proxy(this.checkPosition, this), 1) 910 }, c.prototype.checkPosition = function() { 911 if (this.$element.is(":visible")) { 912 var b = this.$element.height(), 913 d = this.options.offset, 914 e = d.top, 915 f = d.bottom, 916 g = Math.max(a(document).height(), a(document.body).height()); 917 "object" != typeof d && (f = e = d), "function" == typeof e && (e = d.top(this.$element)), "function" == typeof f && (f = d.bottom(this.$element));
918 var h = this.getState(g, b, e, f); 919 if (this.affixed != h) { 920 null != this.unpin && this.$element.css("top", ""); 921 var i = "affix" + (h ? "-" + h : ""), 922 j = a.Event(i + ".bs.affix"); 923 if (this.$element.trigger(j), j.isDefaultPrevented()) return; 924 this.affixed = h, this.unpin = "bottom" == h ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix", "affixed") + ".bs.affix") 925 } 926 "bottom" == h && this.$element.offset({ 927 top: g - b - f 928 }) 929 } 930 }; 931 var d = a.fn.affix; 932 a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function() { 933 return a.fn.affix = d, this 934 }, a(window).on("load", function() { 935 a('[data-spy="affix"]').each(function() { 936 var c = a(this), 937 d = c.data(); 938 d.offset = d.offset || {}, null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), null != d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d) 939 }) 940 }) 941}(jQuery), 942function(a) { 943 "use strict"; 944 945 function b(b) { 946 var c = [{ 947 re: /[\xC0-\xC6]/g, 948 ch: "A" 949 }, { 950 re: /[\xE0-\xE6]/g, 951 ch: "a" 952 }, { 953 re: /[\xC8-\xCB]/g, 954 ch: "E" 955 }, { 956 re: /[\xE8-\xEB]/g, 957 ch: "e" 958 }, { 959 re: /[\xCC-\xCF]/g, 960 ch: "I" 961 }, { 962 re: /[\xEC-\xEF]/g, 963 ch: "i" 964 }, { 965 re: /[\xD2-\xD6]/g, 966 ch: "O" 967 }, { 968 re: /[\xF2-\xF6]/g, 969 ch: "o" 970 }, { 971 re: /[\xD9-\xDC]/g, 972 ch: "U" 973 }, { 974 re: /[\xF9-\xFC]/g, 975 ch: "u" 976 }, { 977 re: /[\xC7-\xE7]/g, 978 ch: "c" 979 }, { 980 re: /[\xD1]/g, 981 ch: "N" 982 }, { 983 re: /[\xF1]/g, 984 ch: "n" 985 }]; 986 return a.each(c, function() { 987 b = b.replace(this.re, this.ch) 988 }), b 989 } 990 991 function c(a) { 992 var b = { 993 "&": "&", 994 "<": "<", 995 ">": ">", 996 '"': """, 997 "'": "'", 998 "`": "`" 999 }, 1000 c = "(?:" + Object.keys(b).join("|") + ")", 1001 d = new RegExp(c), 1002 e = new RegExp(c, "g"), 1003 f = null == a ? "" : "" + a; 1004 return d.test(f) ? f.replace(e, function(a) { 1005 return b[a] 1006 }) : f 1007 } 1008 1009 function d(b, c) { 1010 var d = arguments, 1011 f = b, 1012 g = c; 1013 [].shift.apply(d); 1014 var h, i = this.each(function() { 1015 var b = a(this); 1016 if (b.is("select")) { 1017 var c = b.data("selectpicker"), 1018 i = "object" == typeof f && f; 1019 if (c) { 1020 if (i) 1021 for (var j in i) i.hasOwnProperty(j) && (c.options[j] = i[j]) 1022 } else { 1023 var k = a.extend({}, e.DEFAULTS, a.fn.selectpicker.defaults || {}, b.data(), i); 1024 b.data("selectpicker", c = new e(this, k, g)) 1025 } 1026 "string" == typeof f && (h = c[f] instanceof Function ? c[f].apply(c, d) : c.options[f]) 1027 } 1028 }); 1029 return "undefined" != typeof h ? h : i 1030 } 1031 String.prototype.includes || ! function() { 1032 var a = {}.toString, 1033 b = function() { 1034 try { 1035 var a = {}, 1036 b = Object.defineProperty, 1037 c = b(a, a, a) && b 1038 } catch (d) {} 1039 return c 1040 }(), 1041 c = "".indexOf, 1042 d = function(b) { 1043 if (null == this) throw TypeError(); 1044 var d = String(this); 1045 if (b && "[object RegExp]" == a.call(b)) throw TypeError(); 1046 var e = d.length, 1047 f = String(b), 1048 g = f.length, 1049 h = arguments.length > 1 ? arguments[1] : void 0, 1050 i = h ? Number(h) : 0; 1051 i != i && (i = 0); 1052 var j = Math.min(Math.max(i, 0), e); 1053 return g + j > e ? !1 : -1 != c.call(d, f, i) 1054 }; 1055 b ? b(String.prototype, "includes", { 1056 value: d, 1057 configurable: !0, 1058 writable: !0 1059 }) : String.prototype.includes = d 1060 }(), String.prototype.startsWith || ! function() { 1061 var a = function() { 1062 try { 1063 var a = {}, 1064 b = Object.defineProperty, 1065 c = b(a, a, a) && b 1066 } catch (d) {} 1067 return c 1068 }(), 1069 b = {}.toString, 1070 c = function(a) { 1071 if (null == this) throw TypeError(); 1072 var c = String(this); 1073 if (a && "[object RegExp]" == b.call(a)) throw TypeError(); 1074 var d = c.length, 1075 e = String(a), 1076 f = e.length, 1077 g = arguments.length > 1 ? arguments[1] : void 0, 1078 h = g ? Number(g) : 0; 1079 h != h && (h = 0); 1080 var i = Math.min(Math.max(h, 0), d); 1081 if (f + i > d) return !1; 1082 for (var j = -1; ++j < f;) 1083 if (c.charCodeAt(i + j) != e.charCodeAt(j)) return !1; 1084 return !0 1085 }; 1086 a ? a(String.prototype, "startsWith", { 1087 value: c, 1088 configurable: !0, 1089 writable: !0 1090 }) : String.prototype.startsWith = c 1091 }(), Object.keys || (Object.keys = function(a, b, c) { 1092 c = []; 1093 for (b in a) c.hasOwnProperty.call(a, b) && c.push(b); 1094 return c 1095 }), a.expr[":"].icontains = function(b, c, d) { 1096 var e = a(b), 1097 f = (e.data("tokens") || e.text()).toUpperCase(); 1098 return f.includes(d[3].toUpperCase()) 1099 }, a.expr[":"].ibegins = function(b, c, d) { 1100 var e = a(b), 1101 f = (e.data("tokens") || e.text()).toUpperCase(); 1102 return f.startsWith(d[3].toUpperCase()) 1103 }, a.expr[":"].aicontains = function(b, c, d) { 1104 var e = a(b), 1105 f = (e.data("tokens") || e.data("normalizedText") || e.text()).toUpperCase(); 1106 return f.includes(d[3].toUpperCase()) 1107 }, a.expr[":"].aibegins = function(b, c, d) { 1108 var e = a(b), 1109 f = (e.data("tokens") || e.data("normalizedText") || e.text()).toUpperCase(); 1110 return f.startsWith(d[3].toUpperCase()) 1111 }; 1112 var e = function(b, c, d) { 1113 d && (d.stopPropagation(), d.preventDefault()), this.$element = a(b), this.$newElement = null, this.$button = null, this.$menu = null, this.$lis = null, this.options = c, null === this.options.title && (this.options.title = this.$element.attr("title")), this.val = e.prototype.val, this.render = e.prototype.render, this.refresh = e.prototype.refresh, this.setStyle = e.prototype.setStyle, this.selectAll = e.prototype.selectAll, this.deselectAll = e.prototype.deselectAll, this.destroy = e.prototype.remove, this.remove = e.prototype.remove, this.show = e.prototype.show, this.hide = e.prototype.hide, this.init() 1114 }; 1115 e.VERSION = "1.7.2", e.DEFAULTS = { 1116 noneSelectedText: "Nothing selected", 1117 noneResultsText: "No results matched {0}", 1118 countSelectedText: function(a, b) { 1119 return 1 == a ? "{0} item selected" : "{0} items selected" 1120 }, 1121 maxOptionsText: function(a, b) { 1122 return [1 == a ? "Limit reached ({n} item max)" : "Limit reached ({n} items max)", 1 == b ? "Group limit reached ({n} item max)" : "Group limit reached ({n} items max)"] 1123 }, 1124 selectAllText: "Select All", 1125 deselectAllText: "Deselect All", 1126 doneButton: !1, 1127 doneButtonText: "Close", 1128 multipleSeparator: ", ", 1129 styleBase: "btn", 1130 style: "btn-default", 1131 size: "auto", 1132 title: null, 1133 selectedTextFormat: "values", 1134 width: !1, 1135 container: !1, 1136 hideDisabled: !1, 1137 showSubtext: !1, 1138 showIcon: !0, 1139 showContent: !0, 1140 dropupAuto: !0, 1141 header: !1, 1142 liveSearch: !1, 1143 liveSearchPlaceholder: null, 1144 liveSearchNormalize: !1, 1145 liveSearchStyle: "contains", 1146 actionsBox: !1, 1147 iconBase: "glyphicon", 1148 tickIcon: "glyphicon-ok", 1149 maxOptions: !1, 1150 mobile: !1, 1151 selectOnTab: !1, 1152 dropdownAlignRight: !1 1153 }, e.prototype = { 1154 constructor: e, 1155 init: function() { 1156 var b = this, 1157 c = this.$element.attr("id"); 1158 this.$element.addClass("bs-select-hidden"), this.liObj = {}, this.multiple = this.$element.prop("multiple"), this.autofocus = this.$element.prop("autofocus"), this.$newElement = this.createView(), this.$element.after(this.$newElement), this.$button = this.$newElement.children("button"), this.$menu = this.$newElement.children(".dropdown-menu"), this.$menuInner = this.$menu.children(".inner"), this.$searchbox = this.$menu.find("input"), this.options.dropdownAlignRight && this.$menu.addClass("dropdown-menu-right"), "undefined" != typeof c && (this.$button.attr("data-id", c), a('label[for="' + c + '"]').click(function(a) { 1159 a.preventDefault(), b.$button.focus() 1160 })), this.checkDisabled(), this.clickListener(), this.options.liveSearch && this.liveSearchListener(), this.render(), this.setStyle(), this.setWidth(), this.options.container && this.selectPosition(), this.$menu.data("this", this), this.$newElement.data("this", this), this.options.mobile && this.mobile(), this.$newElement.on("hide.bs.dropdown", function(a) { 1161 b.$element.trigger("hide.bs.select", a) 1162 }), this.$newElement.on("hidden.bs.dropdown", function(a) { 1163 b.$element.trigger("hidden.bs.select", a) 1164 }), this.$newElement.on("show.bs.dropdown", function(a) { 1165 b.$element.trigger("show.bs.select", a) 1166 }), this.$newElement.on("shown.bs.dropdown", function(a) { 1167 b.$element.trigger("shown.bs.select", a) 1168 }), setTimeout(function() { 1169 b.$element.trigger("loaded.bs.select") 1170 }) 1171 }, 1172 createDropdown: function() { 1173 var b = this.multiple ? " show-tick" : "", 1174 d = this.$element.parent().hasClass("input-group") ? " input-group-btn" : "", 1175 e = this.autofocus ? " autofocus" : "", 1176 f = this.options.header ? '<div class="popover-title"><button type="button" class="close" aria-hidden="true">×</button>' + this.options.header + "</div>" : "", 1177 g = this.options.liveSearch ? '<div class="bs-searchbox"><input type="text" class="form-control" autocomplete="off"' + (null === this.options.liveSearchPlaceholder ? "" : ' placeholder="' + c(this.options.liveSearchPlaceholder) + '"') + "></div>" : "", 1178 h = this.multiple && this.options.actionsBox ? '<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn btn-default">' + this.options.selectAllText + '</button><button type="button" class="actions-btn bs-deselect-all btn btn-default">' + this.options.deselectAllText + "</button></div></div>" : "", 1179 i = this.multiple && this.options.doneButton ? '<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm btn-default">' + this.options.doneButtonText + "</button></div></div>" : "", 1180 j = '<div class="btn-group bootstrap-select' + b + d + '"><button type="button" class="' + this.options.styleBase + ' dropdown-toggle" data-toggle="dropdown"' + e + '><span class="filter-option pull-left"></span> <span class="caret"></span></button><div class="dropdown-menu open">' + f + g + h + '<ul class="dropdown-menu inner" role="menu"></ul>' + i + "</div></div>"; 1181 return a(j) 1182 }, 1183 createView: function() { 1184 var a = this.createDropdown(), 1185 b = this.createLi(); 1186 return a.find("ul")[0].innerHTML = b, a 1187 }, 1188 reloadLi: function() { 1189 this.destroyLi(); 1190 var a = this.createLi(); 1191 this.$menuInner[0].innerHTML = a 1192 }, 1193 destroyLi: function() { 1194 this.$menu.find("li").remove() 1195 }, 1196 createLi: function() { 1197 var d = this, 1198 e = [], 1199 f = 0, 1200 g = document.createElement("option"), 1201 h = -1, 1202 i = function(a, b, c, d) { 1203 return "<li" + ("undefined" != typeof c & "" !== c ? ' class="' + c + '"' : "") + ("undefined" != typeof b & null !== b ? ' data-original-index="' + b + '"' : "") + ("undefined" != typeof d & null !== d ? 'data-optgroup="' + d + '"' : "") + ">" + a + "</li>" 1204 }, 1205 j = function(a, e, f, g) { 1206 return '<a tabindex="0"' + ("undefined" != typeof e ? ' class="' + e + '"' : "") + ("undefined" != typeof f ? ' style="' + f + '"' : "") + (d.options.liveSearchNormalize ? ' data-normalized-text="' + b(c(a)) + '"' : "") + ("undefined" != typeof g || null !== g ? ' data-tokens="' + g + '"' : "") + ">" + a + '<span class="' + d.options.iconBase + " " + d.options.tickIcon + ' check-mark"></span></a>' 1207 }; 1208 if (this.options.title && !this.multiple && (h--, !this.$element.find(".bs-title-option").length)) { 1209 var k = this.$element[0]; 1210 g.className = "bs-title-option", g.appendChild(document.createTextNode(this.options.title)), g.value = "", k.insertBefore(g, k.firstChild), null === k.options[k.selectedIndex].getAttribute("selected") && (g.selected = !0) 1211 } 1212 return this.$element.find("option").each(function(b) { 1213 var c = a(this); 1214 if (h++, !c.hasClass("bs-title-option")) { 1215 var g = this.className || "", 1216 k = this.style.cssText,
1217 l = c.data("content") ? c.data("content") : c.html(), 1218 m = c.data("tokens") ? c.data("tokens") : null, 1219 n = "undefined" != typeof c.data("subtext") ? '<small class="text-muted">' + c.data("subtext") + "</small>" : "", 1220 o = "undefined" != typeof c.data("icon") ? '<span class="' + d.options.iconBase + " " + c.data("icon") + '"></span> ' : "", 1221 p = this.disabled || "OPTGROUP" === this.parentElement.tagName && this.parentElement.disabled; 1222 if ("" !== o && p && (o = "<span>" + o + "</span>"), d.options.hideDisabled && p) return void h--; 1223 if (c.data("content") || (l = o + '<span class="text">' + l + n + "</span>"), "OPTGROUP" === this.parentElement.tagName && c.data("divider") !== !0) { 1224 if (0 === c.index()) { 1225 f += 1; 1226 var q = this.parentElement.label, 1227 r = "undefined" != typeof c.parent().data("subtext") ? '<small class="text-muted">' + c.parent().data("subtext") + "</small>" : "", 1228 s = c.parent().data("icon") ? '<span class="' + d.options.iconBase + " " + c.parent().data("icon") + '"></span> ' : "", 1229 t = " " + this.parentElement.className || ""; 1230 q = s + '<span class="text">' + q + r + "</span>", 0 !== b && e.length > 0 && (h++, e.push(i("", null, "divider", f + "div"))), h++, e.push(i(q, null, "dropdown-header" + t, f)) 1231 } 1232 e.push(i(j(l, "opt " + g + t, k, m), b, "", f)) 1233 } else c.data("divider") === !0 ? e.push(i("", b, "divider")) : c.data("hidden") === !0 ? e.push(i(j(l, g, k, m), b, "hidden is-hidden")) : (this.previousElementSibling && "OPTGROUP" === this.previousElementSibling.tagName && (h++, e.push(i("", null, "divider", f + "div"))), e.push(i(j(l, g, k, m), b))); 1234 d.liObj[b] = h 1235 } 1236 }), this.multiple || 0 !== this.$element.find("option:selected").length || this.options.title || this.$element.find("option").eq(0).prop("selected", !0).attr("selected", "selected"), e.join("") 1237 }, 1238 findLis: function() { 1239 return null == this.$lis && (this.$lis = this.$menu.find("li")), this.$lis 1240 }, 1241 render: function(b) { 1242 var c, d = this; 1243 b !== !1 && this.$element.find("option").each(function(a) { 1244 var b = d.findLis().eq(d.liObj[a]); 1245 d.setDisabled(a, this.disabled || "OPTGROUP" === this.parentElement.tagName && this.parentElement.disabled, b), d.setSelected(a, this.selected, b) 1246 }), this.tabIndex(); 1247 var e = this.$element.find("option").map(function() { 1248 if (this.selected) { 1249 if (d.options.hideDisabled && (this.disabled || "OPTGROUP" === this.parentElement.tagName && this.parentElement.disabled)) return !1; 1250 var b, c = a(this), 1251 e = c.data("icon") && d.options.showIcon ? '<i class="' + d.options.iconBase + " " + c.data("icon") + '"></i> ' : ""; 1252 return b = d.options.showSubtext && c.data("subtext") && !d.multiple ? ' <small class="text-muted">' + c.data("subtext") + "</small>" : "", "undefined" != typeof c.attr("title") ? c.attr("title") : c.data("content") && d.options.showContent ? c.data("content") : e + c.html() + b 1253 } 1254 }).toArray(), 1255 f = this.multiple ? e.join(this.options.multipleSeparator) : e[0]; 1256 if (this.multiple && this.options.selectedTextFormat.indexOf("count") > -1) { 1257 var g = this.options.selectedTextFormat.split(">"); 1258 if (g.length > 1 && e.length > g[1] || 1 == g.length && e.length >= 2) { 1259 c = this.options.hideDisabled ? ", [disabled]" : ""; 1260 var h = this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]' + c).length, 1261 i = "function" == typeof this.options.countSelectedText ? this.options.countSelectedText(e.length, h) : this.options.countSelectedText; 1262 f = i.replace("{0}", e.length.toString()).replace("{1}", h.toString()) 1263 } 1264 } 1265 void 0 == this.options.title && (this.options.title = this.$element.attr("title")), "static" == this.options.selectedTextFormat && (f = this.options.title), f || (f = "undefined" != typeof this.options.title ? this.options.title : this.options.noneSelectedText), this.$button.attr("title", a.trim(f.replace(/<[^>]*>?/g, ""))), this.$button.children(".filter-option").html(f), this.$element.trigger("rendered.bs.select") 1266 }, 1267 setStyle: function(a, b) { 1268 this.$element.attr("class") && this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, "")); 1269 var c = a ? a : this.options.style; 1270 "add" == b ? this.$button.addClass(c) : "remove" == b ? this.$button.removeClass(c) : (this.$button.removeClass(this.options.style), this.$button.addClass(c)) 1271 }, 1272 liHeight: function(b) { 1273 if (b || this.options.size !== !1 && !this.sizeInfo) { 1274 var c = document.createElement("div"), 1275 d = document.createElement("div"), 1276 e = document.createElement("ul"), 1277 f = document.createElement("li"), 1278 g = document.createElement("li"), 1279 h = document.createElement("a"), 1280 i = document.createElement("span"), 1281 j = this.options.header ? this.$menu.find(".popover-title")[0].cloneNode(!0) : null, 1282 k = this.options.liveSearch ? document.createElement("div") : null, 1283 l = this.options.actionsBox && this.multiple ? this.$menu.find(".bs-actionsbox")[0].cloneNode(!0) : null, 1284 m = this.options.doneButton && this.multiple ? this.$menu.find(".bs-donebutton")[0].cloneNode(!0) : null; 1285 if (i.className = "text", c.className = this.$menu[0].parentNode.className + " open", d.className = "dropdown-menu open", e.className = "dropdown-menu inner", f.className = "divider", i.appendChild(document.createTextNode("Inner text")), h.appendChild(i), g.appendChild(h), e.appendChild(g), e.appendChild(f), j && d.appendChild(j), k) { 1286 var n = document.createElement("span"); 1287 k.className = "bs-searchbox", n.className = "form-control", k.appendChild(n), d.appendChild(k) 1288 } 1289 l && d.appendChild(l), d.appendChild(e), m && d.appendChild(m), c.appendChild(d), document.body.appendChild(c); 1290 var o = h.offsetHeight, 1291 p = j ? j.offsetHeight : 0, 1292 q = k ? k.offsetHeight : 0, 1293 r = l ? l.offsetHeight : 0, 1294 s = m ? m.offsetHeight : 0, 1295 t = a(f).outerHeight(!0), 1296 u = getComputedStyle ? getComputedStyle(d) : !1, 1297 v = u ? a(d) : null, 1298 w = parseInt(u ? u.paddingTop : v.css("paddingTop")) + parseInt(u ? u.paddingBottom : v.css("paddingBottom")) + parseInt(u ? u.borderTopWidth : v.css("borderTopWidth")) + parseInt(u ? u.borderBottomWidth : v.css("borderBottomWidth")), 1299 x = w + parseInt(u ? u.marginTop : v.css("marginTop")) + parseInt(u ? u.marginBottom : v.css("marginBottom")) + 2; 1300 document.body.removeChild(c), this.sizeInfo = { 1301 liHeight: o, 1302 headerHeight: p, 1303 searchHeight: q, 1304 actionsHeight: r, 1305 doneButtonHeight: s, 1306 dividerHeight: t, 1307 menuPadding: w, 1308 menuExtras: x 1309 } 1310 } 1311 }, 1312 setSize: function() { 1313 this.findLis(), this.liHeight(); 1314 var b, c, d, e, f = this, 1315 g = this.$menu, 1316 h = this.$menuInner,
1317 i = a(window), 1318 j = this.$newElement[0].offsetHeight, 1319 k = this.sizeInfo.liHeight, 1320 l = this.sizeInfo.headerHeight, 1321 m = this.sizeInfo.searchHeight, 1322 n = this.sizeInfo.actionsHeight, 1323 o = this.sizeInfo.doneButtonHeight, 1324 p = this.sizeInfo.dividerHeight, 1325 q = this.sizeInfo.menuPadding, 1326 r = this.sizeInfo.menuExtras, 1327 s = this.options.hideDisabled ? ".disabled" : "", 1328 t = function() { 1329 d = f.$newElement.offset().top - i.scrollTop(), e = i.height() - d - j 1330 }; 1331 if (t(), this.options.header && g.css("padding-top", 0), "auto" === this.options.size) { 1332 var u = function() { 1333 var i, j = function(b, c) { 1334 return function(d) { 1335 return c ? d.classList ? d.classList.contains(b) : a(d).hasClass(b) : !(d.classList ? d.classList.contains(b) : a(d).hasClass(b)) 1336 } 1337 }, 1338 p = f.$menuInner[0].getElementsByTagName("li"), 1339 s = Array.prototype.filter ? Array.prototype.filter.call(p, j("hidden", !1)) : f.$lis.not(".hidden"), 1340 u = Array.prototype.filter ? Array.prototype.filter.call(s, j("dropdown-header", !0)) : s.filter(".dropdown-header"); 1341 t(), b = e - r, f.options.container ? (g.data("height") || g.data("height", g.height()), c = g.data("height")) : c = g.height(), f.options.dropupAuto && f.$newElement.toggleClass("dropup", d > e && c > b - r), f.$newElement.hasClass("dropup") && (b = d - r), i = s.length + u.length > 3 ? 3 * k + r - 2 : 0, g.css({ 1342 "max-height": b + "px", 1343 overflow: "hidden", 1344 "min-height": i + l + m + n + o + "px" 1345 }), h.css({ 1346 "max-height": b - l - m - n - o - q + "px", 1347 "overflow-y": "auto", 1348 "min-height": Math.max(i - q, 0) + "px" 1349 }) 1350 }; 1351 u(), this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize", u), i.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize", u) 1352 } else if (this.options.size && "auto" != this.options.size && this.$lis.not(s).length > this.options.size) { 1353 var v = this.$lis.not(".divider").not(s).children().slice(0, this.options.size).last().parent().index(), 1354 w = this.$lis.slice(0, v + 1).filter(".divider").length; 1355 b = k * this.options.size + w * p + q, f.options.container ? (g.data("height") || g.data("height", g.height()), c = g.data("height")) : c = g.height(), f.options.dropupAuto && this.$newElement.toggleClass("dropup", d > e && c > b - r), g.css({ 1356 "max-height": b + l + m + n + o + "px", 1357 overflow: "hidden", 1358 "min-height": "" 1359 }), h.css({ 1360 "max-height": b - q + "px", 1361 "overflow-y": "auto", 1362 "min-height": "" 1363 }) 1364 } 1365 }, 1366 setWidth: function() { 1367 if ("auto" === this.options.width) { 1368 this.$menu.css("min-width", "0"); 1369 var a = this.$menu.parent().clone().appendTo("body"), 1370 b = this.options.container ? this.$newElement.clone().appendTo("body") : a, 1371 c = a.children(".dropdown-menu").outerWidth(), 1372 d = b.css("width", "auto").children("button").outerWidth(); 1373 a.remove(), b.remove(), this.$newElement.css("width", Math.max(c, d) + "px") 1374 } else "fit" === this.options.width ? (this.$menu.css("min-width", ""), this.$newElement.css("width", "").addClass("fit-width")) : this.options.width ? (this.$menu.css("min-width", ""), this.$newElement.css("width", this.options.width)) : (this.$menu.css("min-width", ""), this.$newElement.css("width", "")); 1375 this.$newElement.hasClass("fit-width") && "fit" !== this.options.width && this.$newElement.removeClass("fit-width") 1376 }, 1377 selectPosition: function() { 1378 var b, c, d = this, 1379 e = "<div />", 1380 f = a(e), 1381 g = function(a) { 1382 f.addClass(a.attr("class").replace(/form-control|fit-width/gi, "")).toggleClass("dropup", a.hasClass("dropup")), b = a.offset(), c = a.hasClass("dropup") ? 0 : a[0].offsetHeight, f.css({ 1383 top: b.top + c, 1384 left: b.left, 1385 width: a[0].offsetWidth, 1386 position: "absolute" 1387 }) 1388 }; 1389 this.$newElement.on("click", function() { 1390 d.isDisabled() || (g(a(this)), f.appendTo(d.options.container), f.toggleClass("open", !a(this).hasClass("open")), f.append(d.$menu)) 1391 }), a(window).on("resize scroll", function() { 1392 g(d.$newElement) 1393 }), this.$element.on("hide.bs.select", function() { 1394 d.$menu.data("height", d.$menu.height()), f.detach() 1395 }) 1396 }, 1397 setSelected: function(a, b, c) { 1398 if (!c) var c = this.findLis().eq(this.liObj[a]); 1399 c.toggleClass("selected", b) 1400 }, 1401 setDisabled: function(a, b, c) { 1402 if (!c) var c = this.findLis().eq(this.liObj[a]); 1403 b ? c.addClass("disabled").children("a").attr("href", "#").attr("tabindex", -1) : c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex", 0) 1404 }, 1405 isDisabled: function() { 1406 return this.$element[0].disabled 1407 }, 1408 checkDisabled: function() { 1409 var a = this; 1410 this.isDisabled() ? (this.$newElement.addClass("disabled"), this.$button.addClass("disabled").attr("tabindex", -1)) : (this.$button.hasClass("disabled") && (this.$newElement.removeClass("disabled"), this.$button.removeClass("disabled")), -1 != this.$button.attr("tabindex") || this.$element.data("tabindex") || this.$button.removeAttr("tabindex")), this.$button.click(function() { 1411 return !a.isDisabled() 1412 }) 1413 }, 1414 tabIndex: function() { 1415 this.$element.is("[tabindex]") && (this.$element.data("tabindex", this.$element.attr("tabindex")), this.$button.attr("tabindex", this.$element.data("tabindex"))) 1416 }, 1417 clickListener: function() { 1418 var b = this, 1419 c = a(document); 1420 this.$newElement.on("touchstart.dropdown", ".dropdown-menu", function(a) { 1421 a.stopPropagation() 1422 }), c.data("spaceSelect", !1), this.$button.on("keyup", function(a) { 1423 /(32)/.test(a.keyCode.toString(10)) && c.data("spaceSelect") && (a.preventDefault(), c.data("spaceSelect", !1)) 1424 }), this.$newElement.on("click", function() { 1425 b.setSize(), b.$element.on("shown.bs.select", function() { 1426 if (b.options.liveSearch || b.multiple) { 1427 if (!b.multiple) { 1428 var a = b.liObj[b.$element[0].selectedIndex]; 1429 if ("number" != typeof a) return; 1430 var c = b.$lis.eq(a)[0].offsetTop - b.$menuInner[0].offsetTop; 1431 c = c - b.$menuInner[0].offsetHeight / 2 + b.sizeInfo.liHeight / 2, b.$menuInner[0].scrollTop = c 1432 } 1433 } else b.$menu.find(".selected a").focus() 1434 }) 1435 }), this.$menu.on("click", "li a", function(c) { 1436 var d = a(this), 1437 e = d.parent().data("originalIndex"), 1438 f = b.$element.val(), 1439 g = b.$element.prop("selectedIndex"); 1440 if (b.multiple && c.stopPropagation(), c.preventDefault(), !b.isDisabled() && !d.parent().hasClass("disabled")) { 1441 var h = b.$element.find("option"), 1442 i = h.eq(e), 1443 j = i.prop("selected"), 1444 k = i.parent("optgroup"), 1445 l = b.options.maxOptions, 1446 m = k.data("maxOptions") || !1; 1447 if (b.multiple) { 1448 if (i.prop("selected", !j), b.setSelected(e, !j), d.blur(), l !== !1 || m !== !1) { 1449 var n = l < h.filter(":selected").length, 1450 o = m < k.find("option:selected").length; 1451 if (l && n || m && o) 1452 if (l && 1 == l) h.prop("selected", !1), i.prop("selected", !0), b.$menu.find(".selected").removeClass("selected"), b.setSelected(e, !0); 1453 else if (m && 1 == m) { 1454 k.find("option:selected").prop("selected", !1), i.prop("selected", !0); 1455 var p = d.parent().data("optgroup"); 1456 b.$menu.find('[data-optgroup="' + p + '"]').removeClass("selected"), b.setSelected(e, !0) 1457 } else { 1458 var q = "function" == typeof b.options.maxOptionsText ? b.options.maxOptionsText(l, m) : b.options.maxOptionsText, 1459 r = q[0].replace("{n}", l), 1460 s = q[1].replace("{n}", m), 1461 t = a('<div class="notify"></div>'); 1462 q[2] && (r = r.replace("{var}", q[2][l > 1 ? 0 : 1]), s = s.replace("{var}", q[2][m > 1 ? 0 : 1])), i.prop("selected", !1), b.$menu.append(t), l && n && (t.append(a("<div>" + r + "</div>")), b.$element.trigger("maxReached.bs.select")), m && o && (t.append(a("<div>" + s + "</div>")), b.$element.trigger("maxReachedGrp.bs.select")), setTimeout(function() { 1463 b.setSelected(e, !1) 1464 }, 10), t.delay(750).fadeOut(300, function() { 1465 a(this).remove() 1466 }) 1467 } 1468 } 1469 } else h.prop("selected", !1), i.prop("selected", !0), b.$menu.find(".selected").removeClass("selected"), b.setSelected(e, !0); 1470 b.multiple ? b.options.liveSearch && b.$searchbox.focus() : b.$button.focus(), (f != b.$element.val() && b.multiple || g != b.$element.prop("selectedIndex") && !b.multiple) && (b.$element.change(), b.$element.trigger("changed.bs.select", [e, i.prop("selected"), j])) 1471 } 1472 }), this.$menu.on("click", "li.disabled a, .popover-title, .popover-title :not(.close)", function(c) { 1473 c.currentTarget == this && (c.preventDefault(), c.stopPropagation(), b.options.liveSearch && !a(c.target).hasClass("close") ? b.$searchbox.focus() : b.$button.focus()) 1474 }), this.$menu.on("click", "li.divider, li.dropdown-header", function(a) { 1475 a.preventDefault(), a.stopPropagation(), b.options.liveSearch ? b.$searchbox.focus() : b.$button.focus() 1476 }), this.$menu.on("click", ".popover-title .close", function() { 1477 b.$button.click() 1478 }), this.$searchbox.on("click", function(a) { 1479 a.stopPropagation() 1480 }), this.$menu.on("click", ".actions-btn", function(c) { 1481 b.options.liveSearch ? b.$searchbox.focus() : b.$button.focus(), c.preventDefault(), c.stopPropagation(), a(this).hasClass("bs-select-all") ? b.selectAll() : b.deselectAll(), b.$element.change() 1482 }), this.$element.change(function() { 1483 b.render(!1) 1484 }) 1485 }, 1486 liveSearchListener: function() { 1487 var d = this, 1488 e = a('<li class="no-results"></li>'); 1489 this.$newElement.on("click.dropdown.data-api touchstart.dropdown.data-api", function() { 1490 d.$menuInner.find(".active").removeClass("active"), d.$searchbox.val() && (d.$searchbox.val(""), d.$lis.not(".is-hidden").removeClass("hidden"), e.parent().length && e.remove()), d.multiple || d.$menuInner.find(".selected").addClass("active"), setTimeout(function() { 1491 d.$searchbox.focus() 1492 }, 10) 1493 }), this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api", function(a) { 1494 a.stopPropagation() 1495 }), this.$searchbox.on("input propertychange", function() { 1496 if (d.$searchbox.val()) { 1497 var f = d.$lis.not(".is-hidden").removeClass("hidden").children("a"); 1498 f = d.options.liveSearchNormalize ? f.not(":a" + d._searchStyle() + "(" + b(d.$searchbox.val()) + ")") : f.not(":" + d._searchStyle() + "(" + d.$searchbox.val() + ")"), f.parent().addClass("hidden"), d.$lis.filter(".dropdown-header").each(function() { 1499 var b = a(this), 1500 c = b.data("optgroup"); 1501 0 === d.$lis.filter("[data-optgroup=" + c + "]").not(b).not(".hidden").length && (b.addClass("hidden"), d.$lis.filter("[data-optgroup=" + c + "div]").addClass("hidden")) 1502 }); 1503 var g = d.$lis.not(".hidden"); 1504 g.each(function(b) { 1505 var c = a(this); 1506 c.hasClass("divider") && (c.index() === g.eq(0).index() || c.index() === g.last().index() || g.eq(b + 1).hasClass("divider")) && c.addClass("hidden") 1507 }), d.$lis.not(".hidden, .no-results").length ? e.parent().length && e.remove() : (e.parent().length && e.remove(), e.html(d.options.noneResultsText.replace("{0}", '"' + c(d.$searchbox.val()) + '"')).show(), d.$menuInner.append(e)) 1508 } else d.$lis.not(".is-hidden").removeClass("hidden"), e.parent().length && e.remove(); 1509 d.$lis.filter(".active").removeClass("active"), d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(), a(this).focus() 1510 }) 1511 }, 1512 _searchStyle: function() { 1513 var a = "icontains"; 1514 switch (this.options.liveSearchStyle) { 1515 case "begins": 1516 case "startsWith": 1517 a = "ibegins"; 1518 break; 1519 case "contains": 1520 } 1521 return a 1522 }, 1523 val: function(a) { 1524 return "undefined" != typeof a ? (this.$element.val(a), this.render(), this.$element) : this.$element.val() 1525 }, 1526 selectAll: function() { 1527 this.findLis(), this.$element.find("option:enabled").not("[data-divider], [data-hidden]").prop("selected", !0), this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").addClass("selected"), this.render(!1) 1528 }, 1529 deselectAll: function() { 1530 this.findLis(), this.$element.find("option:enabled").not("[data-divider], [data-hidden]").prop("selected", !1), this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").removeClass("selected"), this.render(!1) 1531 }, 1532 keydown: function(c) { 1533 var d, e, f, g, h, i, j, k, l, m = a(this), 1534 n = m.is("input") ? m.parent().parent() : m.parent(), 1535 o = n.data("this"), 1536 p = ":not(.disabled, .hidden, .dropdown-header, .divider)", 1537 q = { 1538 32: " ", 1539 48: "0", 1540 49: "1", 1541 50: "2", 1542 51: "3", 1543 52: "4", 1544 53: "5", 1545 54: "6", 1546 55: "7", 1547 56: "8", 1548 57: "9", 1549 59: ";", 1550 65: "a", 1551 66: "b", 1552 67: "c", 1553 68: "d", 1554 69: "e", 1555 70: "f", 1556
1556 71: "g", 1557 72: "h", 1558 73: "i", 1559 74: "j", 1560 75: "k", 1561 76: "l", 1562 77: "m", 1563 78: "n", 1564 79: "o", 1565 80: "p", 1566 81: "q", 1567 82: "r", 1568 83: "s", 1569 84: "t", 1570 85: "u", 1571 86: "v", 1572 87: "w", 1573 88: "x", 1574 89: "y", 1575 90: "z", 1576 96: "0", 1577 97: "1", 1578 98: "2", 1579 99: "3", 1580 100: "4", 1581 101: "5", 1582 102: "6", 1583 103: "7", 1584 104: "8", 1585 105: "9" 1586 }; 1587 if (o.options.liveSearch && (n = m.parent().parent()), o.options.container && (n = o.$menu), d = a("[role=menu] li a", n), l = o.$menu.parent().hasClass("open"), !l && (c.keyCode >= 48 && c.keyCode <= 57 || event.keyCode >= 65 && event.keyCode <= 90) && (o.options.container ? o.$newElement.trigger("click") : (o.setSize(), o.$menu.parent().addClass("open"), l = !0), o.$searchbox.focus()), o.options.liveSearch && (/(^9$|27)/.test(c.keyCode.toString(10)) && l && 0 === o.$menu.find(".active").length && (c.preventDefault(), o.$menu.parent().removeClass("open"), o.options.container && o.$newElement.removeClass("open"), o.$button.focus()), d = a("[role=menu] li:not(.disabled, .hidden, .dropdown-header, .divider)", n), m.val() || /(38|40)/.test(c.keyCode.toString(10)) || 0 === d.filter(".active").length && (d = o.$newElement.find("li"), d = o.options.liveSearchNormalize ? d.filter(":a" + o._searchStyle() + "(" + b(q[c.keyCode]) + ")") : d.filter(":" + o._searchStyle() + "(" + q[c.keyCode] + ")"))), d.length) { 1588 if (/(38|40)/.test(c.keyCode.toString(10))) e = d.index(d.filter(":focus")), g = d.parent(p).first().data("originalIndex"), h = d.parent(p).last().data("originalIndex"), f = d.eq(e).parent().nextAll(p).eq(0).data("originalIndex"), i = d.eq(e).parent().prevAll(p).eq(0).data("originalIndex"), j = d.eq(f).parent().prevAll(p).eq(0).data("originalIndex"), o.options.liveSearch && (d.each(function(b) { 1589 a(this).hasClass("disabled") || a(this).data("index", b) 1590 }), e = d.index(d.filter(".active")), g = d.first().data("index"), h = d.last().data("index"), f = d.eq(e).nextAll().eq(0).data("index"), i = d.eq(e).prevAll().eq(0).data("index"), j = d.eq(f).prevAll().eq(0).data("index")), k = m.data("prevIndex"), 38 == c.keyCode ? (o.options.liveSearch && (e -= 1), e != j && e > i && (e = i), g > e && (e = g), e == k && (e = h)) : 40 == c.keyCode && (o.options.liveSearch && (e += 1), -1 == e && (e = 0), e != j && f > e && (e = f), e > h && (e = h), e == k && (e = g)), m.data("prevIndex", e), o.options.liveSearch ? (c.preventDefault(), m.hasClass("dropdown-toggle") || (d.removeClass("active").eq(e).addClass("active").children("a").focus(), 1591 m.focus())) : d.eq(e).focus(); 1592 else if (!m.is("input")) { 1593 var r, s, t = []; 1594 d.each(function() { 1595 a(this).parent().hasClass("disabled") || a.trim(a(this).text().toLowerCase()).substring(0, 1) == q[c.keyCode] && t.push(a(this).parent().index()) 1596 }), r = a(document).data("keycount"), r++, a(document).data("keycount", r), s = a.trim(a(":focus").text().toLowerCase()).substring(0, 1), s != q[c.keyCode] ? (r = 1, a(document).data("keycount", r)) : r >= t.length && (a(document).data("keycount", 0), r > t.length && (r = 1)), d.eq(t[r - 1]).focus() 1597 } 1598 if ((/(13|32)/.test(c.keyCode.toString(10)) || /(^9$)/.test(c.keyCode.toString(10)) && o.options.selectOnTab) && l) { 1599 if (/(32)/.test(c.keyCode.toString(10)) || c.preventDefault(), o.options.liveSearch) /(32)/.test(c.keyCode.toString(10)) || (o.$menu.find(".active a").click(), m.focus()); 1600 else { 1601 var u = a(":focus"); 1602 u.click(), u.focus(), c.preventDefault(), a(document).data("spaceSelect", !0) 1603 } 1604 a(document).data("keycount", 0) 1605 }(/(^9$|27)/.test(c.keyCode.toString(10)) && l && (o.multiple || o.options.liveSearch) || /(27)/.test(c.keyCode.toString(10)) && !l) && (o.$menu.parent().removeClass("open"), o.options.container && o.$newElement.removeClass("open"), o.$button.focus()) 1606 } 1607 }, 1608 mobile: function() { 1609 this.$element.addClass("mobile-device").appendTo(this.$newElement), this.options.container && this.$menu.hide() 1610 }, 1611 refresh: function() { 1612 this.$lis = null, this.reloadLi(), this.render(), this.checkDisabled(), this.liHeight(!0), this.setStyle(), this.setWidth(), this.$lis && this.$searchbox.trigger("propertychange"), this.$element.trigger("refreshed.bs.select") 1613 }, 1614 hide: function() { 1615 this.$newElement.hide() 1616 }, 1617 show: function() { 1618 this.$newElement.show() 1619 }, 1620 remove: function() { 1621 this.$newElement.remove(), this.$element.remove() 1622 } 1623 }; 1624 var f = a.fn.selectpicker; 1625 a.fn.selectpicker = d, a.fn.selectpicker.Constructor = e, a.fn.selectpicker.noConflict = function() { 1626 return a.fn.selectpicker = f, this 1627 }, a(document).data("keycount", 0).on("keydown", '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', e.prototype.keydown).on("focusin.modal", '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', function(a) { 1628 a.stopPropagation() 1629 }), a(window).on("load.bs.select.data-api", function() { 1630 a(".selectpicker").each(function() { 1631 var b = a(this); 1632 d.call(b, b.data()) 1633 }) 1634 }) 1635}(jQuery), 1636function(a) { 1637 function b(a) { 1638 return new RegExp("^" + a + "$") 1639 } 1640 1641 function c(a, b) { 1642 for (var c = Array.prototype.slice.call(arguments).splice(2), d = a.split("."), e = d.pop(), f = 0; f < d.length; f++) b = b[d[f]]; 1643 return b[e].apply(this, c) 1644 } 1645 var d = [], 1646 e = { 1647 options: { 1648 prependExistingHelpBlock: !1, 1649 sniffHtml: !0, 1650 preventSubmit: !0, 1651 submitError: function(a, b, c) { 1652 a.find('input[name="' + Object.keys(c)[0] + '"]').focus() 1653 }, 1654 submitSuccess: !1, 1655 semanticallyStrict: !1, 1656 autoAdd: { 1657 helpBlocks: !0 1658 }, 1659 filter: function() { 1660 return a(this).is(":visible") 1661 } 1662 }, 1663 methods: { 1664 init: function(b) { 1665 var c = a.extend(!0, {}, e); 1666 c.options = a.extend(!0, c.options, b); 1667 var h = this, 1668 i = a.unique(h.map(function() { 1669 return a(this).parents("form")[0] 1670 }).toArray()); 1671 return a(i).bind("submit", function(b) { 1672 var d = a(this), 1673 e = 0, 1674 f = d.find("input,textarea,select").not("[type=submit],[type=image]").filter(c.options.filter); 1675 f.trigger("submit.validation").trigger("validationLostFocus.validation"), f.each(function(b, c) { 1676 var d = a(c), 1677 f = d.parents(".form-group").first(); 1678 f.hasClass("text-warning") && (f.removeClass("text-warning").addClass("text-danger"), e++) 1679 }), f.trigger("validationLostFocus.validation"), e ? (c.options.preventSubmit && b.preventDefault(), a.isFunction(c.options.submitError) && c.options.submitError(d, b, f.jqBootstrapValidation("collectErrors", !0))) : a.isFunction(c.options.submitSuccess) && c.options.submitSuccess(d, b) 1680 }), this.each(function() { 1681 var b = a(this), 1682 e = b.parents(".form-group").first(), 1683 h = e.find(".help-block").first(), 1684 i = b.parents("form").first(), 1685 j = []; 1686 if (!h.length && c.options.autoAdd && c.options.autoAdd.helpBlocks && (h = a('<div class="help-block" />'), e.find(".controls").append(h), d.push(h[0])), c.options.sniffHtml) { 1687 var k = ""; 1688 if (void 0 !== b.attr("pattern") && (k = "Not in the expected format<!-- data-validation-pattern-message to override -->", b.data("validationPatternMessage") && (k = b.data("validationPatternMessage")), b.data("validationPatternMessage", k), b.data("validationPatternRegex", b.attr("pattern"))), void 0 !== b.attr("max") || void 0 !== b.attr("aria-valuemax")) { 1689 var l = void 0 !== b.attr("max") ? b.attr("max") : b.attr("aria-valuemax"); 1690 k = "Too high: Maximum of '" + l + "'<!-- data-validation-max-message to override -->", b.data("validationMaxMessage") && (k = b.data("validationMaxMessage")), b.data("validationMaxMessage", k), b.data("validationMaxMax", l) 1691 } 1692 if (void 0 !== b.attr("min") || void 0 !== b.attr("aria-valuemin")) { 1693 var m = void 0 !== b.attr("min") ? b.attr("min") : b.attr("aria-valuemin"); 1694 k = "Too low: Minimum of '" + m + "'<!-- data-validation-min-message to override -->", b.data("validationMinMessage") && (k = b.data("validationMinMessage")), b.data("validationMinMessage", k), b.data("validationMinMin", m) 1695 } 1696 void 0 !== b.attr("maxlength") && (k = "Too long: Maximum of '" + b.attr("maxlength") + "' characters<!-- data-validation-maxlength-message to override -->", b.data("validationMaxlengthMessage") && (k = b.data("validationMaxlengthMessage")), b.data("validationMaxlengthMessage", k), b.data("validationMaxlengthMaxlength", b.attr("maxlength"))), void 0 !== b.attr("minlength") && (k = "Too short: Minimum of '" + b.attr("minlength") + "' characters<!-- data-validation-minlength-message to override -->", b.data("validationMinlengthMessage") && (k = b.data("validationMinlengthMessage")), b.data("validationMinlengthMessage", k), b.data("validationMinlengthMinlength", b.attr("minlength"))), void 0 === b.attr("required") && void 0 === b.attr("aria-required") || (k = c.builtInValidators.required.message, b.data("validationRequiredMessage") && (k = b.data("validationRequiredMessage")), b.data("validationRequiredMessage", k)), void 0 !== b.attr("type") && "number" === b.attr("type").toLowerCase() && (k = c.builtInValidators.number.message, b.data("validationNumberMessage") && (k = b.data("validationNumberMessage")), b.data("validationNumberMessage", k)), void 0 !== b.attr("type") && "email" === b.attr("type").toLowerCase() && (k = oFlow.i18n.DD_FORM_VALIDATION_VALIDEMAIL, b.data("validationValidemailMessage") ? k = b.data("validationValidemailMessage") : b.data("validationEmailMessage") && (k = b.data("validationEmailMessage")), b.data("validationValidemailMessage", k)), void 0 !== b.attr("minchecked") && (k = "Not enough options checked; Minimum of '" + b.attr("minchecked") + "' required<!-- data-validation-minchecked-message to override -->", b.data("validationMincheckedMessage") && (k = b.data("validationMincheckedMessage")), b.data("validationMincheckedMessage", k), b.data("validationMincheckedMinchecked", b.attr("minchecked"))), void 0 !== b.attr("maxchecked") && (k = "Too many options checked; Maximum of '" + b.attr("maxchecked") + "' required<!-- data-validation-maxchecked-message to override -->
1696", b.data("validationMaxcheckedMessage") && (k = b.data("validationMaxcheckedMessage")), b.data("validationMaxcheckedMessage", k), b.data("validationMaxcheckedMaxchecked", b.attr("maxchecked"))) 1697 } 1698 void 0 !== b.data("validation") && (j = b.data("validation").split(",")), a.each(b.data(), function(a, b) { 1699 var c = a.replace(/([A-Z])/g, ",$1").split(","); 1700 "validation" === c[0] && c[1] && j.push(c[1]) 1701 }); 1702 var n = j, 1703 o = []; 1704 do a.each(j, function(a, b) { 1705 j[a] = f(b) 1706 }), j = a.unique(j), o = [], a.each(n, function(d, e) { 1707 if (void 0 !== b.data("validation" + e + "Shortcut")) a.each(b.data("validation" + e + "Shortcut").split(","), function(a, b) { 1708 o.push(b) 1709 }); 1710 else if (c.builtInValidators[e.toLowerCase()]) { 1711 var g = c.builtInValidators[e.toLowerCase()]; 1712 "shortcut" === g.type.toLowerCase() && a.each(g.shortcut.split(","), function(a, b) { 1713 b = f(b), o.push(b), j.push(b) 1714 }) 1715 } 1716 }), n = o; while (n.length > 0); 1717 var p = {}; 1718 a.each(j, function(d, e) { 1719 var g = b.data("validation" + e + "Message"), 1720 h = void 0 !== g, 1721 i = !1; 1722 if (g = g ? g : "'" + e + "' validation failed <!-- Add attribute 'data-validation-" + e.toLowerCase() + "-message' to input to change this message -->", a.each(c.validatorTypes, function(c, d) { 1723 void 0 === p[c] && (p[c] = []), i || void 0 === b.data("validation" + e + f(d.name)) || (p[c].push(a.extend(!0, { 1724 name: f(d.name), 1725 message: g 1726 }, d.init(b, e))), i = !0) 1727 }), !i && c.builtInValidators[e.toLowerCase()]) { 1728 var j = a.extend(!0, {}, c.builtInValidators[e.toLowerCase()]); 1729 h && (j.message = g); 1730 var k = j.type.toLowerCase(); 1731 "shortcut" === k ? i = !0 : a.each(c.validatorTypes, function(c, d) { 1732 void 0 === p[c] && (p[c] = []), i || k !== c.toLowerCase() || (b.data("validation" + e + f(d.name), j[d.name.toLowerCase()]), p[k].push(a.extend(j, d.init(b, e))), i = !0) 1733 }) 1734 } 1735 i || a.error("Cannot find validation info for '" + e + "'") 1736 }), h.data("original-contents", h.data("original-contents") ? h.data("original-contents") : h.html()), h.data("original-role", h.data("original-role") ? h.data("original-role") : h.attr("role")), e.data("original-classes", e.data("original-clases") ? e.data("original-classes") : e.attr("class")), b.data("original-aria-invalid", b.data("original-aria-invalid") ? b.data("original-aria-invalid") : b.attr("aria-invalid")), b.bind("validation.validation", function(d, e) { 1737 var f = g(b), 1738 h = []; 1739 return a.each(p, function(d, g) { 1740 (f || f.length || e && e.includeEmpty || c.validatorTypes[d].blockSubmit && e && e.submitting) && a.each(g, function(a, e) { 1741 c.validatorTypes[d].validate(b, f, e) && h.push(e.message) 1742 }) 1743 }), h 1744 }), b.bind("getValidators.validation", function() { 1745 return p 1746 }), b.bind("submit.validation", function() { 1747 return b.triggerHandler("change.validation", { 1748 submitting: !0 1749 }) 1750 }), b.bind(["keyup", "focus", "blur", "click", "keydown", "keypress", "change"].join(".validation ") + ".validation", function(d, f) { 1751 var j = g(b), 1752 k = []; 1753 e.find("input,textarea,select").each(function(c, d) { 1754 var e = k.length; 1755 if (a.each(a(d).triggerHandler("validation.validation", f), function(a, b) { 1756 k.push(b) 1757 }), k.length > e) a(d).attr("aria-invalid", "true"); 1758 else { 1759 var g = b.data("original-aria-invalid"); 1760 a(d).attr("aria-invalid", void 0 !== g ? g : !1) 1761 } 1762 }), i.find("input,select,textarea").not(b).not('[name="' + b.attr("name") + '"]').trigger("validationLostFocus.validation"), k = a.unique(k.sort()), k.length ? (e.removeClass("text-success text-danger").addClass("text-warning"), c.options.semanticallyStrict && 1 === k.length ? h.html(k[0] + (c.options.prependExistingHelpBlock ? h.data("original-contents") : "")) : h.html('<ul class="list-unstyled text-danger" role="alert"><li>' + k.join("</li><li>") + "</li></ul>" + (c.options.prependExistingHelpBlock ? h.data("original-contents") : ""))) : (e.removeClass("text-warning text-danger text-success"), j.length > 0 && e.addClass("text-success"), h.html(h.data("original-contents"))), "blur" === d.t
1762ype && e.removeClass("text-success") 1763 }), b.bind("validationLostFocus.validation", function() { 1764 e.removeClass("text-success") 1765 }) 1766 }) 1767 }, 1768 destroy: function() { 1769 return this.each(function() { 1770 var b = a(this), 1771 c = b.parents(".form-group").first(), 1772 e = c.find(".help-block").first(); 1773 b.unbind(".validation"), e.html(e.data("original-contents")), c.attr("class", c.data("original-classes")), b.attr("aria-invalid", b.data("original-aria-invalid")), e.attr("role", b.data("original-role")), d.indexOf(e[0]) > -1 && e.remove() 1774 }) 1775 }, 1776 collectErrors: function(b) { 1777 var c = {}; 1778 return this.each(function(b, d) { 1779 var e = a(d), 1780 f = e.attr("name"), 1781 g = e.triggerHandler("validation.validation", { 1782 includeEmpty: !0 1783 }); 1784 c[f] = a.extend(!0, g, c[f]) 1785 }), a.each(c, function(a, b) { 1786 0 === b.length && delete c[a] 1787 }), c 1788 }, 1789 hasErrors: function() { 1790 var b = []; 1791 return this.each(function(c, d) { 1792 b = b.concat(a(d).triggerHandler("getValidators.validation") ? a(d).triggerHandler("validation.validation", { 1793 submitting: !0 1794 }) : []) 1795 }), b.length > 0 1796 }, 1797 override: function(b) { 1798 e = a.extend(!0, e, b) 1799 } 1800 }, 1801 validatorTypes: { 1802 callback: { 1803 name: "callback", 1804 init: function(a, b) { 1805 return { 1806 validatorName: b, 1807 callback: a.data("validation" + b + "Callback"), 1808 lastValue: a.val(), 1809 lastValid: !0, 1810 lastFinished: !0 1811 } 1812 }, 1813 validate: function(a, b, d) { 1814 if (d.lastValue === b && d.lastFinished) return !d.lastValid; 1815 if (d.lastFinished === !0) { 1816 d.lastValue = b, d.lastValid = !0, d.lastFinished = !1; 1817 var e = d, 1818 f = a; 1819 c(d.callback, window, a, b, function(a) { 1820 e.lastValue === a.value && (e.lastValid = a.valid, a.message && (e.message = a.message), e.lastFinished = !0, f.data("validation" + e.validatorName + "Message", e.message), setTimeout(function() { 1821 f.trigger("change.validation") 1822 }, 1)) 1823 }) 1824 } 1825 return !1 1826 } 1827 }, 1828 ajax: { 1829 name: "ajax", 1830 init: function(a, b) { 1831 return { 1832 validatorName: b, 1833 url: a.data("validation" + b + "Ajax"), 1834 lastValue: a.val(), 1835 lastValid: !0, 1836 lastFinished: !0 1837 } 1838 }, 1839 validate: function(b, c, d) { 1840 return "" + d.lastValue == "" + c && d.lastFinished === !0 ? d.lastValid === !1 : (d.lastFinished === !0 && (d.lastValue = c, d.lastValid = !0, d.lastFinished = !1, a.ajax({ 1841 url: d.url, 1842 data: "value=" + c + "&field=" + b.attr("name"), 1843 dataType: "json", 1844 success: function(a) { 1845 "" + d.lastValue == "" + a.value && (d.lastV
1845alid = !!a.valid, a.message && (d.message = a.message), d.lastFinished = !0, b.data("validation" + d.validatorName + "Message", d.message), setTimeout(function() { 1846 b.trigger("change.validation") 1847 }, 1)) 1848 }, 1849 failure: function() { 1850 d.lastValid = !0, d.message = "ajax call failed", d.lastFinished = !0, b.data("validation" + d.validatorName + "Message", d.message), setTimeout(function() { 1851 b.trigger("change.validation") 1852 }, 1) 1853 } 1854 })), !1) 1855 } 1856 }, 1857 regex: { 1858 name: "regex", 1859 init: function(a, c) { 1860 return { 1861 regex: b(a.data("validation" + c + "Regex")) 1862 } 1863 }, 1864 validate: function(a, b, c) { 1865 return !c.regex.test(b) && !c.negative || c.regex.test(b) && c.negative 1866 } 1867 }, 1868 required: { 1869 name: "required", 1870 init: function(a, b) { 1871 return {} 1872 }, 1873 validate: function(a, b, c) { 1874 return !(0 !== b.length || c.negative) || !!(b.length > 0 && c.negative) 1875 }, 1876 blockSubmit: !0 1877 }, 1878 match: { 1879 name: "match", 1880 init: function(a, b) { 1881 var c = a.parents("form").first().find('[name="' + a.data("validation" + b + "Match") + '"]').first(); 1882 return c.bind("validation.validation", function() { 1883 a.trigger("change.validation", { 1884 submitting: !0 1885 }) 1886 }), { 1887 element: c 1888 } 1889 }, 1890 validate: function(a, b, c) { 1891 return b !== c.element.val() && !c.negative || b === c.element.val() && c.negative 1892 }, 1893 blockSubmit: !0 1894 }, 1895 max: { 1896 name: "max", 1897 init: function(a, b) { 1898 return { 1899 max: a.data("validation" + b + "Max") 1900 } 1901 }, 1902 validate: function(a, b, c) { 1903 return parseFloat(b, 10) > parseFloat(c.max, 10) && !c.negative || parseFloat(b, 10) <= parseFloat(c.max, 10) && c.negative 1904 } 1905 }, 1906 min: { 1907 name: "min", 1908 init: function(a, b) { 1909 return { 1910 min: a.data("validation" + b + "Min") 1911 } 1912 }, 1913 validate: function(a, b, c) { 1914 return parseFloat(b) < parseFloat(c.min) && !c.negative || parseFloat(b) >= parseFloat(c.min) && c.negative 1915 } 1916 }, 1917 maxlength: { 1918 name: "maxlength", 1919 init: function(a, b) { 1920 return { 1921 maxlength: a.data("validation" + b + "Maxlength") 1922 } 1923 }, 1924 validate: function(a, b, c) { 1925 return b.length > c.maxlength && !c.negative || b.length <= c.maxlength && c.negative 1926 } 1927 }, 1928 minlength: { 1929 name: "minlength", 1930 init: function(a, b) { 1931 return { 1932 minlength: a.data("validation" + b + "Minlength") 1933 } 1934 }, 1935 validate: function(a, b, c) { 1936 return b.length < c.minlength && !c.negative || b.length >= c.minlength && c.negative 1937 } 1938 }, 1939 maxchecked: { 1940 name: "maxchecked", 1941 init: function(a, b) { 1942 var c = a.parents("form").first().find('[name="' + a.attr("name") + '"]'); 1943 return c.bind("click.validation", function() { 1944 a.trigger("change.validation", { 1945 includeEmpty: !0 1946 }) 1947 }), { 1948 maxchecked: a.data("validation" + b + "Maxchecked"), 1949 elements: c 1950 } 1951 }, 1952 validate: function(a, b, c) { 1953 return c.elements.filter(":checked").length > c.maxchecked && !c.negative || c.elements.filter(":checked").length <= c.maxchecked && c.negative 1954 }, 1955 blockSubmit: !0 1956 }, 1957 minchecked: { 1958 name: "minchecked", 1959 init: function(a, b) { 1960 var c = a.parents("form").first().find('[name="' + a.attr("name") + '"]'); 1961 return c.bind("click.validation", function() { 1962 a.trigger("change.validation", { 1963 includeEmpty: !0 1964 }) 1965 }), { 1966 minchecked: a.data("validation" + b + "Minchecked"), 1967 elements: c 1968 } 1969 }, 1970 validate: function(a, b, c) { 1971 return c.elements.filter(":checked").length < c.minchecked && !c.negative || c.elements.filter(":checked").length >= c.minchecked && c.negative 1972 }, 1973 blockSubmit: !0 1974 } 1975 }, 1976 builtInValidators: { 1977 email: { 1978 name: "Email", 1979 type: "shortcut", 1980 shortcut: "validemail" 1981 }, 1982 validemail: { 1983 name: "Validemail", 1984 type: "regex", 1985 regex: "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}", 1986 message: oFlow.i18n.DD_FORM_VALIDATION_VALIDEMAIL 1987 }, 1988 passwordagain: { 1989 name: "Passwordagain", 1990 type: "match", 1991 match: "password", 1992 message: oFlow.i18n.DD_FORM_VALIDATION_PASSWORDAGAIN 1993 }, 1994 positive: { 1995 name: "Positive", 1996 type: "shortcut", 1997 shortcut: "number,positivenumber" 1998 }, 1999 negative: { 2000 name: "Negative", 2001 type: "shortcut", 2002 shortcut: "number,negativenumber" 2003 }, 2004 number: { 2005 name: "Number", 2006 type: "regex", 2007 regex: "([+-]?\\d+(\\.\\d*)?([eE][+-]?[0-9]+)?)?", 2008 message: oFlow.i18n.DD_FORM_VALIDATION_NUMBER 2009 }, 2010 integer: { 2011 name: "Integer", 2012 type: "regex", 2013 regex: "[+-]?\\d+", 2014 message: oFlow.i18n.DD_FORM_VALIDATION_INTEGER 2015 }, 2016 positivenumber: { 2017 name: "Positivenumber", 2018 type: "min", 2019 min: 0, 2020 message: oFlow.i18n.DD_FORM_VALIDATION_POSITIVENUMBER 2021 }, 2022 negativenumber: { 2023 name: "Negativenumber", 2024 type: "max", 2025 max: 0, 2026 message: oFlow.i18n.DD_FORM_VALIDATION_NEGATIVENUMBER 2027 }, 2028 required: { 2029 name: "Required", 2030 type: "required", 2031 message: oFlow.i18n.DD_FORM_VALIDATION_REQUIRED 2032 }, 2033 checkone: { 2034 name: "Checkone", 2035 type: "minchecked", 2036 minchecked: 1, 2037 message: oFlow.i18n.DD_FORM_VALIDATION_CHECKONE 2038 } 2039 } 2040 }, 2041 f = function(a) { 2042 return a.toLowerCase().replace(/(^|\s)([a-z])/g, function(a, b, c) { 2043 return b + c.toUpperCase() 2044 }) 2045 }, 2046 g = function(b) { 2047 var c = b.val(), 2048 d = b.attr("type"); 2049 return "checkbox" === d && (c = b.is(":checked") ? c : ""), "radio" === d && (c = a('input[name="' + b.attr("name") + '"]:checked').length > 0 ? c : ""), c 2050 }; 2051 a.fn.jqBootstrapValidation = function(b) { 2052 return e.methods[b] ? e.methods[b].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof b && b ? (a.error("Method " + b + " does not exist on jQuery.jqBootstrapValidation"), null) : e.methods.init.apply(this, arguments) 2053 }, a.jqBootstrapValidation = function(b) { 2054 a(":input").not("[type=image],[type=submit]").jqBootstrapValidation.apply(this, arguments) 2055 } 2056}(jQuery), 2057function(a) { 2058 a.fn.unveil = function(b, c) { 2059 function d() { 2060 var b = j.filter(function() { 2061 var b = a(this); 2062 if (!b.is(":hidden")) { 2063 var c = f.scrollTop(),
2064 d = c + f.height(), 2065 e = b.offset().top, 2066 h = e + b.height(); 2067 return h >= c - g && d + g >= e 2068 } 2069 }); 2070 e = b.trigger("unveil"), j = j.not(e) 2071 } 2072 var e, f = a(window), 2073 g = b || 0, 2074 h = window.devicePixelRatio > 1, 2075 i = h ? "data-src-retina" : "data-src", 2076 j = this; 2077 return this.one("unveil", function() { 2078 var a = this.getAttribute(i); 2079 a = a || this.getAttribute("data-src"), a && (this.setAttribute("src", a), "function" == typeof c && c.call(this)) 2080 }), f.on("scroll.unveil resize.unveil lookup.unveil", d), d(), this 2081 } 2082}(window.jQuery || window.Zepto), 2083function() { 2084 if ("-ms-user-select" in document.documentElement.style && navigator.userAgent.match(/IEMobile\/10\.0/)) { 2085 var a = document.createElement("style"); 2086 a.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")), document.getElementsByTagName("head")[0].appendChild(a) 2087 } 2088}(), Flow = {}, $(function() { 2089 function a() { 2090 var a = $("#mainnav").find(".navbar-collapse"), 2091 c = $("#navigation"), 2092 d = c.find(".moreLinks"); 2093// if (b.width() <= 755) return d.before(d.find("> ul > li")), void d.remove(); 2094// if (d.length) d.before(d.find("> ul > li")); 2095// else { 2096// var e = document.createElement("li"), 2097// f = document.createElement("a"), 2098// g = document.createElement("ul"); 2099// e.className = "dropdown moreLinks", f.className = "dropdown-toggle", f.innerHTML = 'Mehr <span class="caret"></span>', f.setAttribute("data-toggle", "dropdown"), g.className = "dropdown-menu", g.setAttribute("role", "menu"), e.appendChild(f), e.appendChild(g), c.append(e), d = $(e) 2100// } 2101 var h = a.width(), 2102 i = c.find("> li").not(".moreLinks"), 2103 j = 0, 2104 k = []; 2105 h -= d.width(), i.each(function() { 2106 var a = $(this); 2107 j += a.outerWidth(), j > h && k.push(a) 2108 }), k.length ? d.find("> ul").append(k) : d.remove() 2109 } 2110 var b = $(window), 2111 c = $("body"), 2112 d = $("#header"), 2113 e = $("#basket_list"), 2114 f = $("#jumptotop"), 2115 g = $("#econdaRecommendations"), 2116 h = $("input.oxValidate_enterPass"), 2117 i = $("#searchParam"), 2118 j = parseInt(d.height()), 2119 k = c.hasClass("is-checkout"); 2120 window.isMobileDevice = function() { 2121 var a = !1; 2122 return function(b) { 2123 (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(b) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
2123sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(b.substr(0, 4))) && (a = !0) 2124 }(navigator.userAgent || navigator.vendor || window.opera), a 2125 }, b.scroll(function(a) { 2126 var b = $(this), 2127 d = $("#mainnav"); 2128 k || isMobileDevice() && i.is(":focus") || (b.scrollTop() > j ? c.hasClass("fixed-header") || (/*c.addClass("fixed-header"), */this.setTimeout(function() { 2129// d.addClass("fadeIn") 2130 }, 100)) : c.hasClass("fixed-header") && (c.removeClass("fixed-header"), d.removeClass("fadeIn"))), f.toggleClass("show", b.scrollTop() >= 300) 2131 }).trigger("scroll"), $(".search-toggle").click(function(a) { 2132 a.preventDefault(), $("html, body").animate({ 2133 scrollTop: i.position().top - 10 || 0 2134 }, 300, function() { 2135 i.focus() 2136 }) 2137 }), $('a[data-toggle="tab"]').on("shown.bs.tab", function(a) { 2138 $(this.getAttribute("href")).find("img").unveil() 2139 }), f.click(function() { 2140 $("html, body").animate({ 2141 scrollTop: 0 2142 }, 300) 2143 }), $("#header .dropdown-menu input, #header .dropdown-menu label, #header .dropdown-menu button, #header .dropdown-menu").click(function(a) { 2144 a.stopPropagation() 2145 }), $(".nav").on("mouseenter", "li.dropdown", function(a) { 2146 b.width() >= 760 && $(this).addClass("open") 2147 }).on("mouseleave", "li.dropdown", function(a) { 2148 b.width() >= 760 && $(this).removeClass("open") 2149 }).on("click", "li.dropdown", function(a) { 2150 a.stopPropagation() 2151 }), d.find(".menu-dropdowns button[data-href]").click(function(a) { 2152 var b = $(this); 2153 $(window).width() <= 767 && (a.stopPropagation(), document.location.href = b.attr("data-href")) 2154 }), g.length && $.get(window.sBaseUrl + "cl=tpl&tpl=ajax_econda_recommendations.tpl&actcl=" + sActCl, function(a, b, c) { 2155 g.html(a), g.find("img").unveil() 2156 }); 2157 var l = $("#filterList"); 2158 l.length && l.find(".dropdown-menu li").click(function() { 2159 var a = $(this); 2160 a.parent().prev().val(a.children().first().data("selection-id")), a.closest("form").submit() 2161 }); 2162// var m = $("#sidebar"), 2163// n = m.find(".box.categorytree"); 2164// n.length && n.find(".toggleTree").on("click touch", function() { 2165// var a = $(this), 2166// b = a.parents(".categorytree").find(".categoryBox"); 2167// a.hasClass("fa-caret-down") ? (a.removeClass("fa-caret-down"), a.attr("class", "fa-caret-up " + a.attr("class")), b.attr("style", "display:block!important")) : (a.removeClass("fs-caret-up"), a.attr("class", "fs-caret-down " + a.attr("class")), b.removeAttr("style")) 2168// }); 2169 var o = $(".selectorsBox"); 2170 if (o.length && o.find(".dropdown-menu li").click(function(a) { 2171 a.preventDefault(); 2172 var b = $(this); 2173 b.parent().prev().val(b.children().first().data("selection-id")), b.closest("form").submit() 2174 }), Flow.initEvents = function() { 2175 $("img").unveil(), $(".selectpicker").selectpicker(), $(".hasTooltip").tooltip(), $(".hasPopover").popover() 2176 }, Flow.initEvents(), a(), b.resize(function() { 2177 a() 2178 }), e.length && ($("#basket_form").on("submit", function(a) { 2179 var b = $(this), 2180 c = b.find(".hidden-xs"), 2181 d = b.find(".visible-xs"); 2182 c.is(":hidden") && c.remove(), d.is(":hidden") && d.remove() 2183 }), e.find(".toggle-actions").click(function(a) { 2184 a.preventDefault(); 2185 var b = $(this), 2186 c = b.parents("li").first().find(".row.toggable"); 2187 c.slideToggle(150, function() { 2188 b.find("i").attr("class", c.is(":visible") ? "fa fa-chevron-up" : "fa fa-chevron-down") 2189 }) 2190 })), h.length) { 2191 var p = h.val(), 2192 q = $(".oxValidate_pwd"); 2193 h.keyup(function(a) { 2194 q.length && (p != a.target.value ? q.slideDown("fast") : q.is(":visible") && q.slideUp("fast")) 2195 }) 2196 } 2197 $("#private-sales-login input.agb-check").click(function() { 2198 this.checked ? $("#private-sales-login button.submitButton").removeAttr("disabled") : $("#private-sales-login button.submitButton").attr("disabled", "disabled") 2199 }) 2200}), $(window).load(function() { 2201 window.setTimeout(function() { 2202 $("img").unveil() 2203 }, 500) 2204});
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.