/* jquery.poptrox.js v2.5.2-dev | (c) @ajlkn | github.com/ajlkn/jquery.poptrox | MIT licensed */ !(function (e) { (e.fn.poptrox_disableSelection = function () { return e(this) .css("user-select", "none") .css("-khtml-user-select", "none") .css("-moz-user-select", "none") .css("-o-user-select", "none") .css("-webkit-user-select", "none"); }), (e.fn.poptrox = function (o) { if (0 == this.length) return e(this); if (this.length > 1) { for (var t = 0; t < this.length; t++) e(this[t]).poptrox(o); return e(this); } var p, i, s = e.extend( { preload: !1, baseZIndex: 1e3, fadeSpeed: 300, overlayColor: "#000000", overlayOpacity: 0.6, overlayClass: "poptrox-overlay", windowMargin: 50, windowHeightPad: 0, selector: "a", caption: null, parent: "body", popupSpeed: 300, popupWidth: 200, popupHeight: 100, popupIsFixed: !1, useBodyOverflow: !1, usePopupEasyClose: !0, usePopupForceClose: !1, usePopupLoader: !0, usePopupCloser: !0, usePopupCaption: !1, usePopupNav: !1, usePopupDefaultStyling: !0, popupBackgroundColor: "#FFFFFF", popupTextColor: "#000000", popupLoaderTextSize: "2em", popupCloserBackgroundColor: "#000000", popupCloserTextColor: "#FFFFFF", popupCloserTextSize: "20px", popupPadding: 10, popupCaptionHeight: 60, popupCaptionTextSize: null, popupBlankCaptionText: "(untitled)", popupCloserText: "×", popupLoaderText: "••••", popupClass: "poptrox-popup", popupSelector: null, popupLoaderSelector: ".loader", popupCloserSelector: ".closer", popupCaptionSelector: ".caption", popupNavPreviousSelector: ".nav-previous", popupNavNextSelector: ".nav-next", onPopupClose: null, onPopupOpen: null, }, o ), r = e(this), n = e("body"), a = e('
'), l = e(window), u = [], d = 0, h = !1, g = new Array(), f = function () { (p = l.width()), (i = l.height() + s.windowHeightPad); var e = Math.abs(x.width() - x.outerWidth()), o = Math.abs(x.height() - x.outerHeight()), t = p - 2 * s.windowMargin - e, r = i - 2 * s.windowMargin - o; x.css("min-width", s.popupWidth).css("min-height", s.popupHeight), v.children().css("max-width", t).css("max-height", r); }; s.usePopupLoader || (s.popupLoaderSelector = null), s.usePopupCloser || (s.popupCloserSelector = null), s.usePopupCaption || (s.popupCaptionSelector = null), s.usePopupNav || ((s.popupNavPreviousSelector = null), (s.popupNavNextSelector = null)); var x; x = e( s.popupSelector ? s.popupSelector : '
' + (s.popupLoaderSelector ? '
' + s.popupLoaderText + "
" : "") + '
' + (s.popupCaptionSelector ? '
' : "") + (s.popupCloserSelector ? '' + s.popupCloserText + "" : "") + (s.popupNavPreviousSelector ? '' : "") + (s.popupNavNextSelector ? '' : "") + "
" ); var v = x.find(".pic"), w = e(), b = x.find(s.popupLoaderSelector), m = x.find(s.popupCaptionSelector), C = x.find(s.popupCloserSelector), y = x.find(s.popupNavNextSelector), S = x.find(s.popupNavPreviousSelector), P = y.add(S); if ( s.usePopupDefaultStyling && (x .css("background", s.popupBackgroundColor) .css("color", s.popupTextColor) .css("padding", s.popupPadding + "px"), m.length > 0 && (x.css("padding-bottom", s.popupCaptionHeight + "px"), m .css("position", "absolute") .css("left", "0") .css("bottom", "0") .css("width", "100%") .css("text-align", "center") .css("height", s.popupCaptionHeight + "px") .css("line-height", s.popupCaptionHeight + "px"), s.popupCaptionTextSize && m.css("font-size", popupCaptionTextSize)), C.length > 0 && C.html(s.popupCloserText) .css("font-size", s.popupCloserTextSize) .css("background", s.popupCloserBackgroundColor) .css("color", s.popupCloserTextColor) .css("display", "block") .css("width", "40px") .css("height", "40px") .css("line-height", "40px") .css("text-align", "center") .css("position", "absolute") .css("text-decoration", "none") .css("outline", "0") .css("top", "0") .css("right", "-40px"), b.length > 0 && b .html("") .css("position", "relative") .css("font-size", s.popupLoaderTextSize) .on("startSpinning", function (o) { var t = e("
" + s.popupLoaderText + "
"); t .css("height", Math.floor(s.popupHeight / 2) + "px") .css("overflow", "hidden") .css("line-height", Math.floor(s.popupHeight / 2) + "px") .css("text-align", "center") .css( "margin-top", Math.floor( (x.height() - t.height() + (m.length > 0 ? m.height() : 0)) / 2 ) ) .css("color", s.popupTextColor ? s.popupTextColor : "") .on("xfin", function () { t.fadeTo(300, 0.5, function () { t.trigger("xfout"); }); }) .on("xfout", function () { t.fadeTo(300, 0.05, function () { t.trigger("xfin"); }); }) .trigger("xfin"), b.append(t); }) .on("stopSpinning", function (e) { var o = b.find("div"); o.remove(); }), 2 == P.length) ) { P.css("font-size", "75px") .css("text-align", "center") .css("color", "#fff") .css("text-shadow", "none") .css("height", "100%") .css("position", "absolute") .css("top", "0") .css("opacity", "0.35") .css("cursor", "pointer") .css("box-shadow", "inset 0px 0px 10px 0px rgba(0,0,0,0)") .poptrox_disableSelection(); var k, T; s.usePopupEasyClose ? ((k = "100px"), (T = "100px")) : ((k = "75%"), (T = "25%")), y .css("right", "0") .css("width", k) .html( '
>
' ), S.css("left", "0") .css("width", T) .html( '
<
' ); } return ( l.on("resize orientationchange", function () { f(); }), m.on("update", function (e, o) { (o && 0 != o.length) || (o = s.popupBlankCaptionText), m.html(o); }), C.css("cursor", "pointer").on("click", function (e) { return ( e.preventDefault(), e.stopPropagation(), x.trigger("poptrox_close"), !0 ); }), y.on("click", function (e) { e.stopPropagation(), e.preventDefault(), x.trigger("poptrox_next"); }), S.on("click", function (e) { e.stopPropagation(), e.preventDefault(), x.trigger("poptrox_previous"); }), a .css("position", "fixed") .css("left", 0) .css("top", 0) .css("z-index", s.baseZIndex) .css("width", "100%") .css("height", "100%") .css("text-align", "center") .css("cursor", "pointer") .appendTo(s.parent) .prepend( '
' ) .append( '
' ) .hide() .on("touchmove", function (e) { return !1; }) .on("click", function (e) { e.preventDefault(), e.stopPropagation(), x.trigger("poptrox_close"); }), x .css("display", "inline-block") .css("vertical-align", "middle") .css("position", "relative") .css("z-index", 1) .css("cursor", "auto") .appendTo(a) .hide() .on("poptrox_next", function () { var e = d + 1; e >= u.length && (e = 0), x.trigger("poptrox_switch", [e]); }) .on("poptrox_previous", function () { var e = d - 1; e < 0 && (e = u.length - 1), x.trigger("poptrox_switch", [e]); }) .on("poptrox_reset", function () { f(), x.data("width", s.popupWidth).data("height", s.popupHeight), b.hide().trigger("stopSpinning"), m.hide(), C.hide(), P.hide(), v.hide(), w.attr("src", "").detach(); }) .on("poptrox_open", function (e, o) { return ( !!h || ((h = !0), s.useBodyOverflow && n.css("overflow", "hidden"), s.onPopupOpen && s.onPopupOpen(), x.addClass("loading"), void a.fadeTo(s.fadeSpeed, 1, function () { x.trigger("poptrox_switch", [o, !0]); })) ); }) .on("poptrox_switch", function (o, t, p) { var i; if (!p && h) return !0; if ( ((h = !0), x .addClass("loading") .css("width", x.data("width")) .css("height", x.data("height")), m.hide(), w.attr("src") && w.attr("src", ""), w.detach(), (i = u[t]), (w = i.object), w.off("load"), v.css("text-indent", "-9999px").show().append(w), "ajax" == i.type ? e.get(i.src, function (e) { w.html(e), w.trigger("load"); }) : w.attr("src", i.src), "image" != i.type) ) { var r, n; (r = i.width), (n = i.height), "%" == r.slice(-1) && (r = (parseInt(r.substring(0, r.length - 1)) / 100) * l.width()), "%" == n.slice(-1) && (n = (parseInt(n.substring(0, n.length - 1)) / 100) * l.height()), w .css("position", "relative") .css("outline", "0") .css("z-index", s.baseZIndex + 100) .width(r) .height(n); } b.trigger("startSpinning").fadeIn(300), x.show(), s.popupIsFixed ? (x .removeClass("loading") .width(s.popupWidth) .height(s.popupHeight), w.on("load", function () { w.off("load"), b.hide().trigger("stopSpinning"), m.trigger("update", [i.captionText]).fadeIn(s.fadeSpeed), C.fadeIn(s.fadeSpeed), v .css("text-indent", 0) .hide() .fadeIn(s.fadeSpeed, function () { h = !1; }), (d = t), P.fadeIn(s.fadeSpeed); })) : w.on("load", function () { f(), w.off("load"), b.hide().trigger("stopSpinning"); var e = w.width(), o = w.height(), p = function () { m .trigger("update", [i.captionText]) .fadeIn(s.fadeSpeed), C.fadeIn(s.fadeSpeed), v .css("text-indent", 0) .hide() .fadeIn(s.fadeSpeed, function () { h = !1; }), (d = t), P.fadeIn(s.fadeSpeed), x .removeClass("loading") .data("width", e) .data("height", o) .css("width", "auto") .css("height", "auto"); }; e == x.data("width") && o == x.data("height") ? p() : x.animate( { width: e, height: o }, s.popupSpeed, "swing", p ); }), "image" != i.type && w.trigger("load"); }) .on("poptrox_close", function () { return ( !(!h || s.usePopupForceClose) || ((h = !0), x.hide().trigger("poptrox_reset"), s.onPopupClose && s.onPopupClose(), void a.fadeOut(s.fadeSpeed, function () { s.useBodyOverflow && n.css("overflow", "auto"), (h = !1); })) ); }) .trigger("poptrox_reset"), s.usePopupEasyClose ? (m.on("click", "a", function (e) { e.stopPropagation(); }), x.css("cursor", "pointer").on("click", function (e) { e.stopPropagation(), e.preventDefault(), x.trigger("poptrox_close"); })) : x.on("click", function (e) { e.stopPropagation(); }), l.keydown(function (e) { if (x.is(":visible")) switch (e.keyCode) { case 37: case 32: if (s.usePopupNav) return x.trigger("poptrox_previous"), !1; break; case 39: if (s.usePopupNav) return x.trigger("poptrox_next"), !1; break; case 27: return x.trigger("poptrox_close"), !1; } }), r.find(s.selector).each(function (o) { var t, p, i = e(this), r = i.find("img"), n = i.data("poptrox"); if ("ignore" != n && i.attr("href")) { if ( ((t = { src: i.attr("href"), captionText: r.attr("title"), width: null, height: null, type: null, object: null, options: null, }), s.caption) ) { if ("function" == typeof s.caption) c = s.caption(i); else if ("selector" in s.caption) { var a; (a = i.find(s.caption.selector)), "attribute" in s.caption ? (c = a.attr(s.caption.attribute)) : ((c = a.html()), s.caption.remove === !0 && a.remove()); } } else c = r.attr("title"); if (((t.captionText = c), n)) { var l = n.split(","); 0 in l && (t.type = l[0]), 1 in l && ((p = l[1].match(/([0-9%]+)x([0-9%]+)/)), p && 3 == p.length && ((t.width = p[1]), (t.height = p[2]))), 2 in l && (t.options = l[2]); } if (!t.type) switch ( ((p = t.src.match(/\/\/([a-z0-9\.]+)\/.*/)), (!p || p.length < 2) && (p = [!1]), p[1]) ) { case "api.soundcloud.com": t.type = "soundcloud"; break; case "youtu.be": t.type = "youtube"; break; case "vimeo.com": t.type = "vimeo"; break; case "wistia.net": t.type = "wistia"; break; case "bcove.me": t.type = "bcove"; break; default: t.type = "image"; } switch (((p = t.src.match(/\/\/[a-z0-9\.]+\/(.*)/)), t.type)) { case "iframe": (t.object = e('')), t.object .on("click", function (e) { e.stopPropagation(); }) .css("cursor", "auto"), (t.width && t.height) || ((t.width = "600"), (t.height = "400")); break; case "ajax": (t.object = e('
')), t.object .on("click", function (e) { e.stopPropagation(); }) .css("cursor", "auto") .css("overflow", "auto"), (t.width && t.height) || ((t.width = "600"), (t.height = "400")); break; case "soundcloud": (t.object = e( '' )), (t.src = "//w.soundcloud.com/player/?url=" + escape(t.src) + (t.options ? "&" + t.options : "")), (t.width = "600"), (t.height = "166"); break; case "youtube": (t.object = e( '' )), (t.src = "//www.youtube.com/embed/" + p[1] + (t.options ? "?" + t.options : "")), (t.width && t.height) || ((t.width = "800"), (t.height = "480")); break; case "vimeo": (t.object = e( '' )), (t.src = "//player.vimeo.com/video/" + p[1] + (t.options ? "?" + t.options : "")), (t.width && t.height) || ((t.width = "800"), (t.height = "480")); break; case "wistia": (t.object = e( '' )), (t.src = "//fast.wistia.net/" + p[1] + (t.options ? "?" + t.options : "")), (t.width && t.height) || ((t.width = "800"), (t.height = "480")); break; case "bcove": (t.object = e( '' )), (t.src = "//bcove.me/" + p[1] + (t.options ? "?" + t.options : "")), (t.width && t.height) || ((t.width = "640"), (t.height = "360")); break; default: if ( ((t.object = e( '' )), s.preload) ) { var p = document.createElement("img"); (p.src = t.src), g.push(p); } (t.width = i.attr("width")), (t.height = i.attr("height")); } "file:" == window.location.protocol && t.src.match(/^\/\//) && (t.src = "http:" + t.src), u.push(t), r.removeAttr("title"), i .removeAttr("href") .css("cursor", "pointer") .css("outline", 0) .on("click", function (e) { e.preventDefault(), e.stopPropagation(), x.trigger("poptrox_open", [o]); }); } }), r.prop("_poptrox", s), r ); }); })(jQuery);