vendor: 37,121 bytes, lines 1-745
1/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ 2(function (s, H, f, w) { 3 var K = f("html"), q = f(s), p = f(H), b = f.fancybox = function () { 4 b.open.apply(this, arguments) 5 }, J = navigator.userAgent.match(/msie/i), C = null, t = H.createTouch !== w, u = function (a) { 6 return a && a.hasOwnProperty && a instanceof f 7 }, r = function (a) { 8 return a && "string" === f.type(a) 9 }, F = function (a) { 10 return r(a) && 0 < a.indexOf("%") 11 }, m = function (a, d) { 12 var e = parseInt(a, 10) || 0; 13 d && F(a) && (e *= b.getViewport()[d] / 100); 14 return Math.ceil(e) 15 }, x = function (a, b) { 16 return m(a, b) + "px" 17 }; 18 f.extend(b, { 19 version: "2.1.5", 20 defaults: { 21 padding: 15, 22 margin: 20, 23 width: 1000, 24 height: 562, 25 minWidth: 100, 26 minHeight: 100, 27 maxWidth: 9999, 28 maxHeight: 9999, 29 pixelRatio: 1, 30 autoSize: !0, 31 autoHeight: !1, 32 autoWidth: !1, 33 autoResize: !0, 34 autoCenter: !t, 35 fitToView: !0, 36 aspectRatio: !1, 37 topRatio: 0.5, 38 leftRatio: 0.5, 39 scrolling: "auto", 40 wrapCSS: "", 41 arrows: !0, 42 closeBtn: !0, 43 closeClick: !1, 44 nextClick: !1, 45 mouseWheel: !0, 46 autoPlay: !1, 47 playSpeed: 3E3, 48 preload: 3, 49 modal: !1, 50 loop: !0, 51 ajax: {dataType: "html", headers: {"X-fancyBox": !0}}, 52 iframe: {scrolling: "auto", preload: !0}, 53 swf: {wmode: "transparent", allowfullscreen: "true", allowscriptaccess: "always"}, 54 keys: { 55 next: {13: "left", 34: "up", 39: "left", 40: "up"}, 56 prev: {8: "right", 33: "down", 37: "right", 38: "down"}, 57 close: [27], 58 play: [32], 59 toggle: [70] 60 }, 61 direction: {next: "left", prev: "right"}, 62 scrollOutside: !0, 63 index: 0, 64 type: null, 65 href: null, 66 content: null, 67 title: null, 68 tpl: { 69 wrap: '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>', 70 image: '<img class="fancybox-image" src="{href}" alt="" />', 71 iframe: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + 72 (J ? ' allowtransparency="true"' : "") + "></iframe>", 73 error: '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>', 74 closeBtn: '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;">Ã</a>', 75 next: '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>', 76 prev: '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>' 77 }, 78 openEffect: "fade", 79 openSpeed: 250, 80 openEasing: "swing", 81 openOpacity: !0, 82 openMethod: "zoomIn", 83 closeEffect: "fade", 84 closeSpeed: 250, 85 closeEasing: "swing", 86 closeOpacity: !0, 87 closeMethod: "zoomOut", 88 nextEffect: "elastic", 89 nextSpeed: 250, 90 nextEasing: "swing", 91 nextMethod: "changeIn", 92 prevEffect: "elastic", 93 prevSpeed: 250, 94 prevEasing: "swing", 95 prevMethod: "changeOut", 96 helpers: {overlay: !0, title: !0}, 97 onCancel: f.noop, 98 beforeLoad: f.noop, 99 afterLoad: f.noop, 100 beforeShow: f.noop, 101 afterShow: f.noop, 102 beforeChange: f.noop, 103 beforeClose: f.noop, 104 afterClose: f.noop 105 }, 106 group: {}, 107 opts: {}, 108 previous: null, 109 coming: null, 110 current: null, 111 isActive: !1, 112 isOpen: !1, 113 isOpened: !1, 114 wrap: null, 115 skin: null, 116 outer: null, 117 inner: null, 118 player: {timer: null, isActive: !1}, 119 ajaxLoad: null, 120 imgPreload: null, 121 transitions: {}, 122 helpers: {}, 123 open: function (a, d) { 124 if (a && (f.isPlainObject(d) || (d = {}), !1 !== b.close(!0)))return f.isArray(a) || (a = u(a) ? f(a).get() : [a]), f.each(a, function (e, c) { 125 var l = {}, g, h, k, n, m; 126 "object" === f.type(c) && (c.nodeType && (c = f(c)), u(c) ? (l = { 127 href: c.data("fancybox-href") || c.attr("href"), 128 title: f("<div/>").text(c.data("fancybox-title") || c.attr("title")).html(), 129 isDom: !0, 130 element: c 131 }, 132 f.metadata && f.extend(!0, l, c.metadata())) : l = c); 133 g = d.href || l.href || (r(c) ? c : null); 134 h = d.title !== w ? d.title : l.title || ""; 135 n = (k = d.content || l.content) ? "html" : d.type || l.type; 136 !n && l.isDom && (n = c.data("fancybox-type"), n || (n = (n = c.prop("class").match(/fancybox\.(\w+)/)) ? n[1] : null)); 137 r(g) && (n || (b.isImage(g) ? n = "image" : b.isSWF(g) ? n = "swf" : "#" === g.charAt(0) ? n = "inline" : r(c) && (n = "html", k = c)), "ajax" === n && (m = g.split(/\s+/, 2), g = m.shift(), m = m.shift())); 138 k || ("inline" === n ? g ? k = f(r(g) ? g.replace(/.*(?=#[^\s]+$)/, "") : g) : l.isDom && (k = c) : 139 "html" === n ? k = g : n || g || !l.isDom || (n = "inline", k = c)); 140 f.extend(l, {href: g, type: n, content: k, title: h, selector: m}); 141 a[e] = l 142 }), b.opts = f.extend(!0, {}, b.defaults, d), d.keys !== w && (b.opts.keys = d.keys ? f.extend({}, b.defaults.keys, d.keys) : !1), b.group = a, b._start(b.opts.index) 143 }, 144 cancel: function () { 145 var a = b.coming; 146 a && !1 === b.trigger("onCancel") || (b.hideLoading(), a && (b.ajaxLoad && b.ajaxLoad.abort(), b.ajaxLoad = null, b.imgPreload && (b.imgPreload.onload = b.imgPreload.onerror = null), a.wrap && a.wrap.stop(!0, !0).trigger("onReset").remove(), 147 b.coming = null, b.current || b._afterZoomOut(a))) 148 }, 149 close: function (a) { 150 b.cancel(); 151 !1 !== b.trigger("beforeClose") && (b.unbindEvents(), b.isActive && (b.isOpen && !0 !== a ? (b.isOpen = b.isOpened = !1, b.isClosing = !0, f(".fancybox-item, .fancybox-nav").remove(), b.wrap.stop(!0, !0).removeClass("fancybox-opened"), b.transitions[b.current.closeMethod]()) : (f(".fancybox-wrap").stop(!0).trigger("onReset").remove(), b._afterZoomOut()))) 152 }, 153 play: function (a) { 154 var d = function () { 155 clearTimeout(b.player.timer) 156 }, e = function () { 157 d(); 158 b.current && b.player.isActive && 159 (b.player.timer = setTimeout(b.next, b.current.playSpeed)) 160 }, c = function () { 161 d(); 162 p.unbind(".player"); 163 b.player.isActive = !1; 164 b.trigger("onPlayEnd") 165 }; 166 !0 === a || !b.player.isActive && !1 !== a ? b.current && (b.current.loop || b.current.index < b.group.length - 1) && (b.player.isActive = !0, p.bind({ 167 "onCancel.player beforeClose.player": c, 168 "onUpdate.player": e, 169 "beforeLoad.player": d 170 }), e(), b.trigger("onPlayStart")) : c() 171 }, 172 next: function (a) { 173 var d = b.current; 174 d && (r(a) || (a = d.direction.next), b.jumpto(d.index + 1, a, "next")) 175 }, 176 prev: function (a) { 177 var d = 178 b.current; 179 d && (r(a) || (a = d.direction.prev), b.jumpto(d.index - 1, a, "prev")) 180 }, 181 jumpto: function (a, d, e) { 182 var c = b.current; 183 c && (a = m(a), b.direction = d || c.direction[a >= c.index ? "next" : "prev"], b.router = e || "jumpto", c.loop && (0 > a && (a = c.group.length + a % c.group.length), a %= c.group.length), c.group[a] !== w && (b.cancel(), b._start(a))) 184 }, 185 reposition: function (a, d) { 186 var e = b.current, c = e ? e.wrap : null, l; 187 c && (l = b._getPosition(d), a && "scroll" === a.type ? (delete l.position, c.stop(!0, !0).animate(l, 200)) : (c.css(l), e.pos = f.extend({}, e.dim, l))) 188 }, 189 update: function (a) { 190 var d = a && a.originalEvent && a.originalEvent.type, e = !d || "orientationchange" === d; 191 e && (clearTimeout(C), C = null); 192 b.isOpen && !C && (C = setTimeout(function () { 193 var c = b.current; 194 c && !b.isClosing && (b.wrap.removeClass("fancybox-tmp"), (e || "load" === d || "resize" === d && c.autoResize) && b._setDimension(), "scroll" === d && c.canShrink || b.reposition(a), b.trigger("onUpdate"), C = null) 195 }, e && !t ? 0 : 300)) 196 }, 197 toggle: function (a) { 198 b.isOpen && (b.current.fitToView = "boolean" === f.type(a) ? a : !b.current.fitToView, t && (b.wrap.removeAttr("style").addClass("fancybox-tmp"), 199 b.trigger("onUpdate")), b.update()) 200 }, 201 hideLoading: function () { 202 p.unbind(".loading"); 203 f("#fancybox-loading").remove() 204 }, 205 showLoading: function () { 206 var a, d; 207 b.hideLoading(); 208 a = f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body"); 209 p.bind("keydown.loading", function (a) { 210 27 === (a.which || a.keyCode) && (a.preventDefault(), b.cancel()) 211 }); 212 b.defaults.fixed || (d = b.getViewport(), a.css({ 213 position: "absolute", 214 top: 0.5 * d.h + d.y, 215 left: 0.5 * d.w + d.x 216 })); 217 b.trigger("onLoading") 218 }, 219 getViewport: function () { 220 var a = b.current && 221 b.current.locked || !1, d = {x: q.scrollLeft(), y: q.scrollTop()}; 222 a && a.length ? (d.w = a[0].clientWidth, d.h = a[0].clientHeight) : (d.w = t && s.innerWidth ? s.innerWidth : q.width(), d.h = t && s.innerHeight ? s.innerHeight : q.height()); 223 return d 224 }, 225 unbindEvents: function () { 226 b.wrap && u(b.wrap) && b.wrap.unbind(".fb"); 227 p.unbind(".fb"); 228 q.unbind(".fb") 229 }, 230 bindEvents: function () { 231 var a = b.current, d; 232 a && (q.bind("orientationchange.fb" + (t ? "" : " resize.fb") + (a.autoCenter && !a.locked ? " scroll.fb" : ""), b.update), (d = a.keys) && p.bind("keydown.fb", function (e) { 233 var c = 234 e.which || e.keyCode, l = e.target || e.srcElement; 235 if (27 === c && b.coming)return !1; 236 e.ctrlKey || e.altKey || e.shiftKey || e.metaKey || l && (l.type || f(l).is("[contenteditable]")) || f.each(d, function (d, l) { 237 if (1 < a.group.length && l[c] !== w)return b[d](l[c]), e.preventDefault(), !1; 238 if (-1 < f.inArray(c, l))return b[d](), e.preventDefault(), !1 239 }) 240 }), f.fn.mousewheel && a.mouseWheel && b.wrap.bind("mousewheel.fb", function (d, c, l, g) { 241 for (var h = f(d.target || null), 242 k = !1; h.length && !(k || h.is(".fancybox-skin") || h.is(".fancybox-wrap"));)k = h[0] && !(h[0].style.overflow && 243 "hidden" === h[0].style.overflow) && (h[0].clientWidth && h[0].scrollWidth > h[0].clientWidth || h[0].clientHeight && h[0].scrollHeight > h[0].clientHeight), h = f(h).parent(); 244 0 !== c && !k && 1 < b.group.length && !a.canShrink && (0 < g || 0 < l ? b.prev(0 < g ? "down" : "left") : (0 > g || 0 > l) && b.next(0 > g ? "up" : "right"), d.preventDefault()) 245 })) 246 }, 247 trigger: function (a, d) { 248 var e, c = d || b.coming || b.current; 249 if (c) { 250 f.isFunction(c[a]) && (e = c[a].apply(c, Array.prototype.slice.call(arguments, 1))); 251 if (!1 === e)return !1; 252 c.helpers && f.each(c.helpers, function (d, e) { 253 if (e && 254 b.helpers[d] && f.isFunction(b.helpers[d][a])) b.helpers[d][a](f.extend(!0, {}, b.helpers[d].defaults, e), c) 255 }) 256 } 257 p.trigger(a) 258 }, 259 isImage: function (a) { 260 return r(a) && a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i) 261 }, 262 isSWF: function (a) { 263 return r(a) && a.match(/\.(swf)((\?|#).*)?$/i) 264 }, 265 _start: function (a) { 266 var d = {}, e, c; 267 a = m(a); 268 e = b.group[a] || null; 269 if (!e)return !1; 270 d = f.extend(!0, {}, b.opts, e); 271 e = d.margin; 272 c = d.padding; 273 "number" === f.type(e) && (d.margin = [e, e, e, e]); 274 "number" === f.type(c) && (d.padding = [c, c, 275 c, c]); 276 d.modal && f.extend(!0, d, { 277 closeBtn: !1, 278 closeClick: !1, 279 nextClick: !1, 280 arrows: !1, 281 mouseWheel: !1, 282 keys: null, 283 helpers: {overlay: {closeClick: !1}} 284 }); 285 d.autoSize && (d.autoWidth = d.autoHeight = !0); 286 "auto" === d.width && (d.autoWidth = !0); 287 "auto" === d.height && (d.autoHeight = !0); 288 d.group = b.group; 289 d.index = a; 290 b.coming = d; 291 if (!1 === b.trigger("beforeLoad")) b.coming = null; else { 292 c = d.type; 293 e = d.href; 294 if (!c)return b.coming = null, b.current && b.router && "jumpto" !== b.router ? (b.current.index = a, b[b.router](b.direction)) : !1; 295 b.isActive = !0; 296 if ("image" === 297 c || "swf" === c) d.autoHeight = d.autoWidth = !1, d.scrolling = "visible"; 298 "image" === c && (d.aspectRatio = !0); 299 "iframe" === c && t && (d.scrolling = "scroll"); 300 d.wrap = f(d.tpl.wrap).addClass("fancybox-" + (t ? "mobile" : "desktop") + " fancybox-type-" + c + " fancybox-tmp " + d.wrapCSS).appendTo(d.parent || "body"); 301 f.extend(d, { 302 skin: f(".fancybox-skin", d.wrap), 303 outer: f(".fancybox-outer", d.wrap), 304 inner: f(".fancybox-inner", d.wrap) 305 }); 306 f.each(["Top", "Right", "Bottom", "Left"], function (a, b) { 307 d.skin.css("padding" + b, x(d.padding[a])) 308 }); 309 b.trigger("onReady"); 310 if ("inline" === c || "html" === c) { 311 if (!d.content || !d.content.length)return b._error("content") 312 } else if (!e)return b._error("href"); 313 "image" === c ? b._loadImage() : "ajax" === c ? b._loadAjax() : "iframe" === c ? b._loadIframe() : b._afterLoad() 314 } 315 }, 316 _error: function (a) { 317 f.extend(b.coming, { 318 type: "html", 319 autoWidth: !0, 320 autoHeight: !0, 321 minWidth: 0, 322 minHeight: 0, 323 scrolling: "no", 324 hasError: a, 325 content: b.coming.tpl.error 326 }); 327 b._afterLoad() 328 }, 329 _loadImage: function () { 330 var a = b.imgPreload = new Image; 331 a.onload = function () { 332 this.onload = this.onerror = null; 333 b.coming.width = 334 this.width / b.opts.pixelRatio; 335 b.coming.height = this.height / b.opts.pixelRatio; 336 b._afterLoad() 337 }; 338 a.onerror = function () { 339 this.onload = this.onerror = null; 340 b._error("image") 341 }; 342 a.src = b.coming.href; 343 !0 !== a.complete && b.showLoading() 344 }, 345 _loadAjax: function () { 346 var a = b.coming; 347 b.showLoading(); 348 b.ajaxLoad = f.ajax(f.extend({}, a.ajax, { 349 url: a.href, error: function (a, e) { 350 b.coming && "abort" !== e ? b._error("ajax", a) : b.hideLoading() 351 }, success: function (d, e) { 352 "success" === e && (a.content = d, b._afterLoad()) 353 } 354 })) 355 }, 356 _loadIframe: function () { 357 var a = b.coming, 358 d = f(a.tpl.iframe.replace(/\{rnd\}/g, (new Date).getTime())).attr("scrolling", t ? "auto" : a.iframe.scrolling).attr("src", a.href); 359 f(a.wrap).bind("onReset", function () { 360 try { 361 f(this).find("iframe").hide().attr("src", "//about:blank").end().empty() 362 } catch (a) { 363 } 364 }); 365 a.iframe.preload && (b.showLoading(), d.one("load", function () { 366 f(this).data("ready", 1); 367 t || f(this).bind("load.fb", b.update); 368 f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show(); 369 b._afterLoad() 370 })); 371 a.content = d.appendTo(a.inner); 372 a.iframe.preload || 373 b._afterLoad() 374 }, 375 _preloadImages: function () { 376 var a = b.group, d = b.current, e = a.length, c = d.preload ? Math.min(d.preload, e - 1) : 0, f, g; 377 for (g = 1; g <= c; g += 1)f = a[(d.index + g) % e], "image" === f.type && f.href && ((new Image).src = f.href) 378 }, 379 _afterLoad: function () { 380 var a = b.coming, d = b.current, e, c, l, g, h; 381 b.hideLoading(); 382 if (a && !1 !== b.isActive)if (!1 === b.trigger("afterLoad", a, d)) a.wrap.stop(!0).trigger("onReset").remove(), b.coming = null; else { 383 d && (b.trigger("beforeChange", d), d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()); 384 b.unbindEvents(); 385 e = a.content; 386 c = a.type; 387 l = a.scrolling; 388 f.extend(b, {wrap: a.wrap, skin: a.skin, outer: a.outer, inner: a.inner, current: a, previous: d}); 389 g = a.href; 390 switch (c) { 391 case "inline": 392 case "ajax": 393 case "html": 394 a.selector ? e = f("<div>").html(e).find(a.selector) : u(e) && (e.data("fancybox-placeholder") || e.data("fancybox-placeholder", f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()), e = e.show().detach(), a.wrap.bind("onReset", function () { 395 f(this).find(e).length && e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", 396 !1) 397 })); 398 break; 399 case "image": 400 e = a.tpl.image.replace(/\{href\}/g, g); 401 break; 402 case "swf": 403 e = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + g + '"></param>', h = "", f.each(a.swf, function (a, b) { 404 e += '<param name="' + a + '" value="' + b + '"></param>'; 405 h += " " + a + '="' + b + '"' 406 }), e += '<embed src="' + g + '" type="application/x-shockwave-flash" width="100%" height="100%"' + h + "></embed></object>" 407 } 408 u(e) && e.parent().is(a.inner) || a.inner.append(e); 409 b.trigger("beforeShow"); 410 a.inner.css("overflow", "yes" === l ? "scroll" : "no" === l ? "hidden" : l); 411 b._setDimension(); 412 b.reposition(); 413 b.isOpen = !1; 414 b.coming = null; 415 b.bindEvents(); 416 if (!b.isOpened) f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove(); else if (d.prevMethod) b.transitions[d.prevMethod](); 417 b.transitions[b.isOpened ? a.nextMethod : a.openMethod](); 418 b._preloadImages() 419 } 420 }, 421 _setDimension: function () { 422 var a = b.getViewport(), d = 0, e = !1, c = !1, e = b.wrap, l = b.skin, g = b.inner, h = b.current, 423 c = h.width, k = h.height, n = h.minWidth, v = h.minHeight, p = h.maxWidth, 424 q = h.maxHeight, t = h.scrolling, r = h.scrollOutside ? h.scrollbarWidth : 0, y = h.margin, 425 z = m(y[1] + y[3]), s = m(y[0] + y[2]), w, A, u, D, B, G, C, E, I; 426 e.add(l).add(g).width("auto").height("auto").removeClass("fancybox-tmp"); 427 y = m(l.outerWidth(!0) - l.width()); 428 w = m(l.outerHeight(!0) - l.height()); 429 A = z + y; 430 u = s + w; 431 D = F(c) ? (a.w - A) * m(c) / 100 : c; 432 B = F(k) ? (a.h - u) * m(k) / 100 : k; 433 if ("iframe" === h.type) { 434 if (I = h.content, h.autoHeight && 1 === I.data("ready"))try { 435 I[0].contentWindow.document.location && (g.width(D).height(9999), G = I.contents().find("body"), r && G.css("overflow-x", 436 "hidden"), B = G.outerHeight(!0)) 437 } catch (H) { 438 } 439 } else if (h.autoWidth || h.autoHeight) g.addClass("fancybox-tmp"), h.autoWidth || g.width(D), h.autoHeight || g.height(B), h.autoWidth && (D = g.width()), h.autoHeight && (B = g.height()), g.removeClass("fancybox-tmp"); 440 c = m(D); 441 k = m(B); 442 E = D / B; 443 n = m(F(n) ? m(n, "w") - A : n); 444 p = m(F(p) ? m(p, "w") - A : p); 445 v = m(F(v) ? m(v, "h") - u : v); 446 q = m(F(q) ? m(q, "h") - u : q); 447 G = p; 448 C = q; 449 h.fitToView && (p = Math.min(a.w - A, p), q = Math.min(a.h - u, q)); 450 A = a.w - z; 451 s = a.h - s; 452 h.aspectRatio ? (c > p && (c = p, k = m(c / E)), k > q && (k = q, c = m(k * E)), c < n && (c = n, k = m(c / 453 E)), k < v && (k = v, c = m(k * E))) : (c = Math.max(n, Math.min(c, p)), h.autoHeight && "iframe" !== h.type && (g.width(c), k = g.height()), k = Math.max(v, Math.min(k, q))); 454 if (h.fitToView)if (g.width(c).height(k), e.width(c + y), a = e.width(), z = e.height(), h.aspectRatio)for (; (a > A || z > s) && c > n && k > v && !(19 < d++);)k = Math.max(v, Math.min(q, k - 10)), c = m(k * E), c < n && (c = n, k = m(c / E)), c > p && (c = p, k = m(c / E)), g.width(c).height(k), e.width(c + y), a = e.width(), z = e.height(); else c = Math.max(n, Math.min(c, c - (a - A))), k = Math.max(v, Math.min(k, k - (z - s))); 455 r && "auto" === t && k < B && 456 c + y + r < A && (c += r); 457 g.width(c).height(k); 458 e.width(c + y); 459 a = e.width(); 460 z = e.height(); 461 e = (a > A || z > s) && c > n && k > v; 462 c = h.aspectRatio ? c < G && k < C && c < D && k < B : (c < G || k < C) && (c < D || k < B); 463 f.extend(h, { 464 dim: {width: x(a), height: x(z)}, 465 origWidth: D, 466 origHeight: B, 467 canShrink: e, 468 canExpand: c, 469 wPadding: y, 470 hPadding: w, 471 wrapSpace: z - l.outerHeight(!0), 472 skinSpace: l.height() - k 473 }); 474 !I && h.autoHeight && k > v && k < q && !c && g.height("auto") 475 }, 476 _getPosition: function (a) { 477 var d = b.current, e = b.getViewport(), c = d.margin, f = b.wrap.width() + c[1] + c[3], 478 g = b.wrap.height() + c[0] + c[2], c = { 479 position: "absolute", 480 top: c[0], left: c[3] 481 }; 482 d.autoCenter && d.fixed && !a && g <= e.h && f <= e.w ? c.position = "fixed" : d.locked || (c.top += e.y, c.left += e.x); 483 c.top = x(Math.max(c.top, c.top + (e.h - g) * d.topRatio)); 484 c.left = x(Math.max(c.left, c.left + (e.w - f) * d.leftRatio)); 485 return c 486 }, 487 _afterZoomIn: function () { 488 var a = b.current; 489 a && ((b.isOpen = b.isOpened = !0, b.wrap.css("overflow", "visible").addClass("fancybox-opened"), b.update(), (a.closeClick || a.nextClick && 1 < b.group.length) && b.inner.css("cursor", "pointer").bind("click.fb", function (d) { 490 f(d.target).is("a") || f(d.target).parent().is("a") || 491 (d.preventDefault(), b[a.closeClick ? "close" : "next"]()) 492 }), a.closeBtn && f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb", function (a) { 493 a.preventDefault(); 494 b.close() 495 }), a.arrows && 1 < b.group.length && ((a.loop || 0 < a.index) && f(a.tpl.prev).appendTo(b.outer).bind("click.fb", b.prev), (a.loop || a.index < b.group.length - 1) && f(a.tpl.next).appendTo(b.outer).bind("click.fb", b.next)), b.trigger("afterShow"), a.loop || a.index !== a.group.length - 1) ? b.opts.autoPlay && !b.player.isActive && (b.opts.autoPlay = !1, b.play(!0)) : b.play(!1)) 496 }, 497 _afterZoomOut: function (a) { 498 a = a || b.current; 499 f(".fancybox-wrap").trigger("onReset").remove(); 500 f.extend(b, { 501 group: {}, 502 opts: {}, 503 router: !1, 504 current: null, 505 isActive: !1, 506 isOpened: !1, 507 isOpen: !1, 508 isClosing: !1, 509 wrap: null, 510 skin: null, 511 outer: null, 512 inner: null 513 }); 514 b.trigger("afterClose", a) 515 } 516 }); 517 b.transitions = { 518 getOrigPosition: function () { 519 var a = b.current, d = a.element, e = a.orig, c = {}, f = 50, g = 50, h = a.hPadding, k = a.wPadding, 520 n = b.getViewport(); 521 !e && a.isDom && d.is(":visible") && (e = d.find("img:first"), e.length || (e = d)); 522 u(e) ? (c = e.offset(), e.is("img") && 523 (f = e.outerWidth(), g = e.outerHeight())) : (c.top = n.y + (n.h - g) * a.topRatio, c.left = n.x + (n.w - f) * a.leftRatio); 524 if ("fixed" === b.wrap.css("position") || a.locked) c.top -= n.y, c.left -= n.x; 525 return c = { 526 top: x(c.top - h * a.topRatio), 527 left: x(c.left - k * a.leftRatio), 528 width: x(f + k), 529 height: x(g + h) 530 } 531 }, step: function (a, d) { 532 var e, c, f = d.prop; 533 c = b.current; 534 var g = c.wrapSpace, h = c.skinSpace; 535 if ("width" === f || "height" === f) e = d.end === d.start ? 1 : (a - d.start) / (d.end - d.start), b.isClosing && (e = 1 - e), c = "width" === f ? c.wPadding : c.hPadding, c = a - c, b.skin[f](m("width" === 536 f ? c : c - g * e)), b.inner[f](m("width" === f ? c : c - g * e - h * e)) 537 }, zoomIn: function () { 538 var a = b.current, d = a.pos, e = a.openEffect, c = "elastic" === e, l = f.extend({opacity: 1}, d); 539 delete l.position; 540 c ? (d = this.getOrigPosition(), a.openOpacity && (d.opacity = 0.1)) : "fade" === e && (d.opacity = 0.1); 541 b.wrap.css(d).animate(l, { 542 duration: "none" === e ? 0 : a.openSpeed, 543 easing: a.openEasing, 544 step: c ? this.step : null, 545 complete: b._afterZoomIn 546 }) 547 }, zoomOut: function () { 548 var a = b.current, d = a.closeEffect, e = "elastic" === d, c = {opacity: 0.1}; 549 e && (c = this.getOrigPosition(), a.closeOpacity && 550 (c.opacity = 0.1)); 551 b.wrap.animate(c, { 552 duration: "none" === d ? 0 : a.closeSpeed, 553 easing: a.closeEasing, 554 step: e ? this.step : null, 555 complete: b._afterZoomOut 556 }) 557 }, changeIn: function () { 558 var a = b.current, d = a.nextEffect, e = a.pos, c = {opacity: 1}, f = b.direction, g; 559 e.opacity = 0.1; 560 "elastic" === d && (g = "down" === f || "up" === f ? "top" : "left", "down" === f || "right" === f ? (e[g] = x(m(e[g]) - 200), c[g] = "+=200px") : (e[g] = x(m(e[g]) + 200), c[g] = "-=200px")); 561 "none" === d ? b._afterZoomIn() : b.wrap.css(e).animate(c, { 562 duration: a.nextSpeed, 563 easing: a.nextEasing, 564 complete: b._afterZoomIn 565 }) 566 }, 567 changeOut: function () { 568 var a = b.previous, d = a.prevEffect, e = {opacity: 0.1}, c = b.direction; 569 "elastic" === d && (e["down" === c || "up" === c ? "top" : "left"] = ("up" === c || "left" === c ? "-" : "+") + "=200px"); 570 a.wrap.animate(e, { 571 duration: "none" === d ? 0 : a.prevSpeed, easing: a.prevEasing, complete: function () { 572 f(this).trigger("onReset").remove() 573 } 574 }) 575 } 576 }; 577 b.helpers.overlay = { 578 defaults: {closeClick: !0, speedOut: 200, showEarly: !0, css: {}, locked: !t, fixed: !0}, 579 overlay: null, 580 fixed: !1, 581 el: f("html"), 582 create: function (a) { 583 var d; 584 a = f.extend({}, this.defaults, a); 585 this.overlay && 586 this.close(); 587 d = b.coming ? b.coming.parent : a.parent; 588 this.overlay = f('<div class="fancybox-overlay"></div>').appendTo(d && d.lenth ? d : "body"); 589 this.fixed = !1; 590 a.fixed && b.defaults.fixed && (this.overlay.addClass("fancybox-overlay-fixed"), this.fixed = !0) 591 }, 592 open: function (a) { 593 var d = this; 594 a = f.extend({}, this.defaults, a); 595 this.overlay ? this.overlay.unbind(".overlay").width("auto").height("auto") : this.create(a); 596 this.fixed || (q.bind("resize.overlay", f.proxy(this.update, this)), this.update()); 597 a.closeClick && this.overlay.bind("click.overlay", 598 function (a) { 599 if (f(a.target).hasClass("fancybox-overlay"))return b.isActive ? b.close() : d.close(), !1 600 }); 601 this.overlay.css(a.css).show() 602 }, 603 close: function () { 604 q.unbind("resize.overlay"); 605 this.el.hasClass("fancybox-lock") && (f(".fancybox-margin").removeClass("fancybox-margin"), this.el.removeClass("fancybox-lock"), q.scrollTop(this.scrollV).scrollLeft(this.scrollH)); 606 f(".fancybox-overlay").remove().hide(); 607 f.extend(this, {overlay: null, fixed: !1}) 608 }, 609 update: function () { 610 var a = "100%", b; 611 this.overlay.width(a).height("100%"); 612 J ? (b = Math.max(H.documentElement.offsetWidth, H.body.offsetWidth), p.width() > b && (a = p.width())) : p.width() > q.width() && (a = p.width()); 613 this.overlay.width(a).height(p.height()) 614 }, 615 onReady: function (a, b) { 616 var e = this.overlay; 617 f(".fancybox-overlay").stop(!0, !0); 618 e || this.create(a); 619 a.locked && this.fixed && b.fixed && (b.locked = this.overlay.append(b.wrap), b.fixed = !1); 620 !0 === a.showEarly && this.beforeShow.apply(this, arguments) 621 }, 622 beforeShow: function (a, b) { 623 b.locked && !this.el.hasClass("fancybox-lock") && (!1 !== this.fixPosition && f("*").filter(function () { 624 return "fixed" === 625 f(this).css("position") && !f(this).hasClass("fancybox-overlay") && !f(this).hasClass("fancybox-wrap") 626 }).addClass("fancybox-margin"), this.el.addClass("fancybox-margin"), this.scrollV = q.scrollTop(), this.scrollH = q.scrollLeft(), this.el.addClass("fancybox-lock"), q.scrollTop(this.scrollV).scrollLeft(this.scrollH)); 627 this.open(a) 628 }, 629 onUpdate: function () { 630 this.fixed || this.update() 631 }, 632 afterClose: function (a) { 633 this.overlay && !b.coming && this.overlay.fadeOut(a.speedOut, f.proxy(this.close, this)) 634 } 635 }; 636 b.helpers.title = { 637 defaults: { 638 type: "float", 639 position: "bottom" 640 }, beforeShow: function (a) { 641 var d = b.current, e = d.title, c = a.type; 642 f.isFunction(e) && (e = e.call(d.element, d)); 643 if (r(e) && "" !== f.trim(e)) { 644 d = f('<div class="fancybox-title fancybox-title-' + c + '-wrap">' + e + "</div>"); 645 switch (c) { 646 case "inside": 647 c = b.skin; 648 break; 649 case "outside": 650 c = b.wrap; 651 break; 652 case "over": 653 c = b.inner; 654 break; 655 default: 656 c = b.skin, d.appendTo("body"), J && d.width(d.width()), d.wrapInner('<span class="child"></span>'), b.current.margin[2] += Math.abs(m(d.css("margin-bottom"))) 657 } 658 d["top" === a.position ? "prependTo" : 659 "appendTo"](c) 660 } 661 } 662 }; 663 f.fn.fancybox = function (a) { 664 var d, e = f(this), c = this.selector || "", l = function (g) { 665 var h = f(this).blur(), k = d, l, m; 666 g.ctrlKey || g.altKey || g.shiftKey || g.metaKey || h.is(".fancybox-wrap") || (l = a.groupAttr || "data-fancybox-group", m = h.attr(l), m || (l = "rel", m = h.get(0)[l]), m && "" !== m && "nofollow" !== m && (h = c.length ? f(c) : e, h = h.filter("[" + l + '="' + m + '"]'), k = h.index(this)), a.index = k, !1 !== b.open(h, a) && g.preventDefault()) 667 }; 668 a = a || {}; 669 d = a.index || 0; 670 c && !1 !== a.live ? p.undelegate(c, "click.fb-start").delegate(c + ":not('.fancybox-item, .fancybox-nav')", 671 "click.fb-start", l) : e.unbind("click.fb-start").bind("click.fb-start", l); 672 this.filter("[data-fancybox-start=1]").trigger("click"); 673 return this 674 }; 675 p.ready(function () { 676 var a, d; 677 f.scrollbarWidth === w && (f.scrollbarWidth = function () { 678 var a = f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"), 679 b = a.children(), b = b.innerWidth() - b.height(99).innerWidth(); 680 a.remove(); 681 return b 682 }); 683 f.support.fixedPosition === w && (f.support.fixedPosition = function () { 684 var a = f('<div style="position:fixed;top:20px;"></div>').appendTo("body"), 685 b = 20 === a[0].offsetTop || 15 === a[0].offsetTop; 686 a.remove(); 687 return b 688 }()); 689 f.extend(b.defaults, {scrollbarWidth: f.scrollbarWidth(), fixed: f.support.fixedPosition, parent: f("body")}); 690 a = f(s).width(); 691 K.addClass("fancybox-lock-test"); 692 d = f(s).width(); 693 K.removeClass("fancybox-lock-test"); 694 f("<style type='text/css'>.fancybox-margin{margin-right:" + (d - a) + "px;}</style>").appendTo("head") 695 }) 696})(window, document, jQuery); 697/*! 698 * Thumbnail helper for fancyBox 699 * version: 1.0.7 (Mon, 01 Oct 2012) 700 * @requires fancyBox v2.0 or later 701 * 702 * Usage: 703 * $(".fancybox").fancybox({ 704 * helpers : { 705 * thumbs: { 706 * width : 50, 707 * height : 50 708 * } 709 * } 710 * }); 711 * 712 */ 713;(function ($) { 714 //Shortcut for fancyBox object 715 var F = $.fancybox; 716 717 //Add helper object 718 F.helpers.thumbs = { 719 defaults: { 720 width: 50, // thumbnail width 721 height: 50, // thumbnail height 722 position: 'bottom', // 'top' or 'bottom' 723 source: function (item) { // function to obtain the URL of the thumbnail image 724 var href; 725 726 if (item.element) { 727 href = $(item.element).find('img').attr('src'); 728 } 729 730 if (!href && item.type === 'image' && item.href) { 731 href = item.href; 732 } 733 734 return href; 735 } 736 }, 737 738 wrap: null, 739 list: null, 740 width: 0, 741 742 init: function (opts, obj) { 743 var that = this, 744 list, 745 thumbWidth = opts.width,
746 thumbHeight = opts.height, 747 thumbSource = opts.source; 748 749 //Build list structure 750 list = ''; 751 752 for (var n = 0; n < obj.group.length; n++) { 753 list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>'; 754 } 755 this.wrap = $('<div id="fancybox-thumbs" style="right:' + getScrollBarWidth() + 'px;"></div>').addClass(opts.position).appendTo('body'); 756 $('#fancybox-thumbs').prepend('<span>' + jQuery('.product_title').text() + '</span>'); 757 this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap); 758 $('#fancybox-thumbs').append('<em class="close-gallery">close</em>'); 759 $('.close-gallery').click(function (e) { 760 jQuery.fancybox.close(); 761 e.preventDefault(); 762 }); 763 //Load each thumbnail 764 $.each(obj.group, function (i) { 765 var href = thumbSource(obj.group[i]); 766 767 if (!href) { 768 return; 769 } 770 771 $("<img />").load(function () { 772 var width = this.width, 773 height = this.height, 774 widthRatio, heightRatio, parent; 775 776 if (!that.list || !width || !height) { 777 return; 778 } 779 780 //Calculate thumbnail width/height and center it 781 widthRatio = width / thumbWidth; 782 heightRatio = height / thumbHeight; 783 784 parent = that.list.children().eq(i).find('a'); 785 786 if (widthRatio >= 1 && heightRatio >= 1) { 787 if (widthRatio > heightRatio) { 788 width = Math.floor(width / heightRatio); 789 height = thumbHeight; 790 791 } else { 792 width = thumbWidth; 793 height = Math.floor(height / widthRatio); 794 } 795 } 796 797 $(this).css({ 798 width: width, 799 height: height, 800 top: Math.floor(thumbHeight / 2 - height / 2), 801 left: Math.floor(thumbWidth / 2 - width / 2) 802 }); 803 804 parent.width(thumbWidth).height(thumbHeight); 805 if ($('.slider-nav img[data-big="' + href + '"]').length) { 806 $(this).hide().appendTo(parent).fadeIn(300); 807 } else { 808 parent.parent().addClass('hide'); 809 } 810 }).attr('src', href); 811 812 }); 813 814 //Set initial width 815 this.width = this.list.children().eq(0).outerWidth(true); 816 817 this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); 818 }, 819 820 beforeLoad: function (opts, obj) { 821 //Remove self if gallery do not have at least two items 822 // if (obj.group.length < 2) { 823 // obj.helpers.thumbs = false; 824 825 // return; 826 // } 827 828 //Increase bottom margin to give space for thumbs 829 obj.margin[opts.position === 'top' ? 0 : 2] += ((opts.height) + 15); 830 }, 831 832 afterShow: function (opts, obj) { 833 //Check if exists and create or update list 834 if (this.list) { 835 this.onUpdate(opts, obj); 836 837 } else { 838 this.init(opts, obj); 839 } 840 841 //Set active element 842 this.list.children().removeClass('active').eq(obj.index).addClass('active'); 843 }, 844 845 //Center list 846 onUpdate: function (opts, obj) { 847 if (this.list) { 848 this.list.stop(true).animate({ 849 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) 850 }, 150); 851 } 852 }, 853 854 beforeClose: function () { 855 if (this.wrap) { 856 this.wrap.remove(); 857 } 858 859 this.wrap = null; 860 this.list = null; 861 this.width = 0; 862 } 863 } 864 865}(jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.