/**
* ! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license
*/
(function(r, G, f, v) {
var J = f("html"),
n = f(r),
p = f(G),
b = f.fancybox = function() {
b.open.apply(this, arguments)
},
I = navigator.userAgent.match(/msie/i),
B = null,
s = G.createTouch !== v,
t = function(a) {
return a && a.hasOwnProperty && a instanceof f
},
q = function(a) {
return a && "string" === f.type(a)
},
E = function(a) {
return q(a) && 0 < a.indexOf("%")
},
l = function(a, d) {
var e = parseInt(a, 10) || 0;
d && E(a) && (e *= b.getViewport()[d] / 100);
return Math.ceil(e)
},
w = function(a, b) {
return l(a, b) + "px"
};
f.extend(b, {
version: "2.1.5",
defaults: {
padding: 15,
margin: 20,
width: 800,
height: 600,
minWidth: 100,
minHeight: 100,
maxWidth: 9999,
maxHeight: 9999,
pixelRatio: 1,
autoSize: !0,
autoHeight: !1,
autoWidth: !1,
autoResize: !0,
autoCenter: !s,
fitToView: !0,
aspectRatio: !1,
topRatio: 0.5,
leftRatio: 0.5,
scrolling: "auto",
wrapCSS: "",
arrows: !0,
closeBtn: !0,
closeClick: !1,
nextClick: !1,
mouseWheel: !0,
autoPlay: !1,
playSpeed: 3E3,
preload: 3,
modal: !1,
loop: !0,
ajax: {
dataType: "html",
headers: {
"X-fancyBox": !0
}
},
iframe: {
scrolling: "auto",
preload: !0
},
swf: {
wmode: "transparent",
allowfullscreen: "true",
allowscriptaccess: "always"
},
keys: {
next: {
13: "left",
34: "up",
39: "left",
40: "up"
},
prev: {
8: "right",
33: "down",
37: "right",
38: "down"
},
close: [27],
play: [32],
toggle: [70]
},
direction: {
next: "left",
prev: "right"
},
scrollOutside: !0,
index: 0,
type: null,
href: null,
content: null,
title: null,
tpl: {
wrap: '
The requested content cannot be loaded.
Please try again later.
',
closeBtn: '").html(e).find(a.selector) : t(e) && (e.data("fancybox-placeholder") || e.data("fancybox-placeholder", f('
').insertAfter(e).hide()), e = e.show().detach(), a.wrap.bind("onReset", function() {
f(this).find(e).length && e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", !1)
}));
break;
case "image":
e = a.tpl.image.replace("{href}",
g);
break;
case "swf":
e = '
"
}(!t(e) || !e.parent().is(a.inner)) && a.inner.append(e);
b.trigger("beforeShow");
a.inner.css("overflow", "yes" === k ? "scroll" :
"no" === k ? "hidden" : k);
b._setDimension();
b.reposition();
b.isOpen = !1;
b.coming = null;
b.bindEvents();
if (b.isOpened) {
if (d.prevMethod) b.transitions[d.prevMethod]()
} else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();
b.transitions[b.isOpened ? a.nextMethod : a.openMethod]();
b._preloadImages()
}
},
_setDimension: function() {
var a = b.getViewport(),
d = 0,
e = !1,
c = !1,
e = b.wrap,
k = b.skin,
g = b.inner,
h = b.current,
c = h.width,
j = h.height,
m = h.minWidth,
u = h.minHeight,
n = h.maxWidth,
p = h.maxHeight,
s = h.scrolling,
q = h.scrollOutside ?
h.scrollbarWidth : 0,
x = h.margin,
y = l(x[1] + x[3]),
r = l(x[0] + x[2]),
v, z, t, C, A, F, B, D, H;
e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");
x = l(k.outerWidth(!0) - k.width());
v = l(k.outerHeight(!0) - k.height());
z = y + x;
t = r + v;
C = E(c) ? (a.w - z) * l(c) / 100 : c;
A = E(j) ? (a.h - t) * l(j) / 100 : j;
if ("iframe" === h.type) {
if (H = h.content, h.autoHeight && 1 === H.data("ready")) try {
H[0].contentWindow.document.location && (g.width(C).height(9999), F = H.contents().find("body"), q && F.css("overflow-x", "hidden"), A = F.outerHeight(!0))
} catch (G) {}
} else if (h.autoWidth ||
h.autoHeight) g.addClass("fancybox-tmp"), h.autoWidth || g.width(C), h.autoHeight || g.height(A), h.autoWidth && (C = g.width()), h.autoHeight && (A = g.height()), g.removeClass("fancybox-tmp");
c = l(C);
j = l(A);
D = C / A;
m = l(E(m) ? l(m, "w") - z : m);
n = l(E(n) ? l(n, "w") - z : n);
u = l(E(u) ? l(u, "h") - t : u);
p = l(E(p) ? l(p, "h") - t : p);
F = n;
B = p;
h.fitToView && (n = Math.min(a.w - z, n), p = Math.min(a.h - t, p));
z = a.w - y;
r = a.h - r;
h.aspectRatio ? (c > n && (c = n, j = l(c / D)), j > p && (j = p, c = l(j * D)), c < m && (c = m, j = l(c / D)), j < u && (j = u, c = l(j * D))) : (c = Math.max(m, Math.min(c, n)), h.autoHeight &&
"iframe" !== h.type && (g.width(c), j = g.height()), j = Math.max(u, Math.min(j, p)));
if (h.fitToView)
if (g.width(c).height(j), e.width(c + x), a = e.width(), y = e.height(), h.aspectRatio)
for (;
(a > z || y > r) && (c > m && j > u) && !(19 < d++);) j = Math.max(u, Math.min(p, j - 10)), c = l(j * D), c < m && (c = m, j = l(c / D)), c > n && (c = n, j = l(c / D)), g.width(c).height(j), e.width(c + x), a = e.width(), y = e.height();
else c = Math.max(m, Math.min(c, c - (a - z))), j = Math.max(u, Math.min(j, j - (y - r)));
q && ("auto" === s && j < A && c + x + q < z) && (c += q);
g.width(c).height(j);
e.width(c + x);
a = e.width();
y = e.height();
e = (a > z || y > r) && c > m && j > u;
c = h.aspectRatio ? c < F && j < B && c < C && j < A : (c < F || j < B) && (c < C || j < A);
f.extend(h, {
dim: {
width: w(a),
height: w(y)
},
origWidth: C,
origHeight: A,
canShrink: e,
canExpand: c,
wPadding: x,
hPadding: v,
wrapSpace: y - k.outerHeight(!0),
skinSpace: k.height() - j
});
!H && (h.autoHeight && j > u && j < p && !c) && g.height("auto")
},
_getPosition: function(a) {
var d = b.current,
e = b.getViewport(),
c = d.margin,
f = b.wrap.width() + c[1] + c[3],
g = b.wrap.height() + c[0] + c[2],
c = {
position: "absolute",
top: c[0],
left: c[3]
};
d.autoCenter && d.fixed &&
!a && g <= e.h && f <= e.w ? c.position = "fixed" : d.locked || (c.top += e.y, c.left += e.x);
c.top = w(Math.max(c.top, c.top + (e.h - g) * d.topRatio));
c.left = w(Math.max(c.left, c.left + (e.w - f) * d.leftRatio));
return c
},
_afterZoomIn: function() {
var a = b.current;
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) {
!f(d.target).is("a") && !f(d.target).parent().is("a") && (d.preventDefault(),
b[a.closeClick ? "close" : "next"]())
}), a.closeBtn && f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb", function(a) {
a.preventDefault();
b.close()
}), 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.play(!1) : b.opts.autoPlay && !b.player.isActive && (b.opts.autoPlay = !1, b.play()))
},
_afterZoomOut: function(a) {
a =
a || b.current;
f(".fancybox-wrap").trigger("onReset").remove();
f.extend(b, {
group: {},
opts: {},
router: !1,
current: null,
isActive: !1,
isOpened: !1,
isOpen: !1,
isClosing: !1,
wrap: null,
skin: null,
outer: null,
inner: null
});
b.trigger("afterClose", a)
}
});
b.transitions = {
getOrigPosition: function() {
var a = b.current,
d = a.element,
e = a.orig,
c = {},
f = 50,
g = 50,
h = a.hPadding,
j = a.wPadding,
m = b.getViewport();
!e && (a.isDom && d.is(":visible")) && (e = d.find("img:first"), e.length || (e = d));
t(e) ? (c = e.offset(), e.is("img") && (f = e.outerWidth(), g = e.outerHeight())) :
(c.top = m.y + (m.h - g) * a.topRatio, c.left = m.x + (m.w - f) * a.leftRatio);
if ("fixed" === b.wrap.css("position") || a.locked) c.top -= m.y, c.left -= m.x;
return c = {
top: w(c.top - h * a.topRatio),
left: w(c.left - j * a.leftRatio),
width: w(f + j),
height: w(g + h)
}
},
step: function(a, d) {
var e, c, f = d.prop;
c = b.current;
var g = c.wrapSpace,
h = c.skinSpace;
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](l("width" === f ? c : c - g * e)), b.inner[f](l("width" ===
f ? c : c - g * e - h * e))
},
zoomIn: function() {
var a = b.current,
d = a.pos,
e = a.openEffect,
c = "elastic" === e,
k = f.extend({
opacity: 1
}, d);
delete k.position;
c ? (d = this.getOrigPosition(), a.openOpacity && (d.opacity = 0.1)) : "fade" === e && (d.opacity = 0.1);
b.wrap.css(d).animate(k, {
duration: "none" === e ? 0 : a.openSpeed,
easing: a.openEasing,
step: c ? this.step : null,
complete: b._afterZoomIn
})
},
zoomOut: function() {
var a = b.current,
d = a.closeEffect,
e = "elastic" === d,
c = {
opacity: 0.1
};
e && (c = this.getOrigPosition(), a.closeOpacity && (c.opacity = 0.1));
b.wrap.animate(c, {
duration: "none" === d ? 0 : a.closeSpeed,
easing: a.closeEasing,
step: e ? this.step : null,
complete: b._afterZoomOut
})
},
changeIn: function() {
var a = b.current,
d = a.nextEffect,
e = a.pos,
c = {
opacity: 1
},
f = b.direction,
g;
e.opacity = 0.1;
"elastic" === d && (g = "down" === f || "up" === f ? "top" : "left", "down" === f || "right" === f ? (e[g] = w(l(e[g]) - 200), c[g] = "+=200px") : (e[g] = w(l(e[g]) + 200), c[g] = "-=200px"));
"none" === d ? b._afterZoomIn() : b.wrap.css(e).animate(c, {
duration: a.nextSpeed,
easing: a.nextEasing,
complete: b._afterZoomIn
})
},
changeOut: function() {
var a =
b.previous,
d = a.prevEffect,
e = {
opacity: 0.1
},
c = b.direction;
"elastic" === d && (e["down" === c || "up" === c ? "top" : "left"] = ("up" === c || "left" === c ? "-" : "+") + "=200px");
a.wrap.animate(e, {
duration: "none" === d ? 0 : a.prevSpeed,
easing: a.prevEasing,
complete: function() {
f(this).trigger("onReset").remove()
}
})
}
};
b.helpers.overlay = {
defaults: {
closeClick: !0,
speedOut: 200,
showEarly: !0,
css: {},
locked: !s,
fixed: !0
},
overlay: null,
fixed: !1,
el: f("html"),
create: function(a) {
a = f.extend({}, this.defaults, a);
this.overlay && this.close();
this.overlay =
f('
').appendTo(b.coming ? b.coming.parent : a.parent);
this.fixed = !1;
a.fixed && b.defaults.fixed && (this.overlay.addClass("fancybox-overlay-fixed"), this.fixed = !0)
},
open: function(a) {
var d = this;
a = f.extend({}, this.defaults, a);
this.overlay ? this.overlay.unbind(".overlay").width("auto").height("auto") : this.create(a);
this.fixed || (n.bind("resize.overlay", f.proxy(this.update, this)), this.update());
a.closeClick && this.overlay.bind("click.overlay", function(a) {
if (f(a.target).hasClass("fancybox-overlay")) return b.isActive ?
b.close() : d.close(), !1
});
this.overlay.css(a.css).show()
},
close: function() {
var a, b;
n.unbind("resize.overlay");
this.el.hasClass("fancybox-lock") && (f(".fancybox-margin").removeClass("fancybox-margin"), a = n.scrollTop(), b = n.scrollLeft(), this.el.removeClass("fancybox-lock"), n.scrollTop(a).scrollLeft(b));
f(".fancybox-overlay").remove().hide();
f.extend(this, {
overlay: null,
fixed: !1
})
},
update: function() {
var a = "100%",
b;
this.overlay.width(a).height("100%");
I ? (b = Math.max(G.documentElement.offsetWidth, G.body.offsetWidth),
p.width() > b && (a = p.width())) : p.width() > n.width() && (a = p.width());
this.overlay.width(a).height(p.height())
},
onReady: function(a, b) {
var e = this.overlay;
f(".fancybox-overlay").stop(!0, !0);
e || this.create(a);
a.locked && (this.fixed && b.fixed) && (e || (this.margin = p.height() > n.height() ? f("html").css("margin-right").replace("px", "") : !1), b.locked = this.overlay.append(b.wrap), b.fixed = !1);
!0 === a.showEarly && this.beforeShow.apply(this, arguments)
},
beforeShow: function(a, b) {
var e, c;
b.locked && (!1 !== this.margin && (f("*").filter(function() {
return "fixed" ===
f(this).css("position") && !f(this).hasClass("fancybox-overlay") && !f(this).hasClass("fancybox-wrap")
}).addClass("fancybox-margin"), this.el.addClass("fancybox-margin")), e = n.scrollTop(), c = n.scrollLeft(), this.el.addClass("fancybox-lock"), n.scrollTop(e).scrollLeft(c));
this.open(a)
},
onUpdate: function() {
this.fixed || this.update()
},
afterClose: function(a) {
this.overlay && !b.coming && this.overlay.fadeOut(a.speedOut, f.proxy(this.close, this))
}
};
b.helpers.title = {
defaults: {
type: "float",
position: "bottom"
},
beforeShow: function(a) {
var d =
b.current,
e = d.title,
c = a.type;
f.isFunction(e) && (e = e.call(d.element, d));
if (q(e) && "" !== f.trim(e)) {
d = f('
' + e + "
");
switch (c) {
case "inside":
c = b.skin;
break;
case "outside":
c = b.wrap;
break;
case "over":
c = b.inner;
break;
default:
c = b.skin, d.appendTo("body"), I && d.width(d.width()), d.wrapInner('
'), b.current.margin[2] += Math.abs(l(d.css("margin-bottom")))
}
d["top" === a.position ? "prependTo" : "appendTo"](c)
}
}
};
f.fn.fancybox = function(a) {
var d,
e = f(this),
c = this.selector || "",
k = function(g) {
var h = f(this).blur(),
j = d,
k, l;
!g.ctrlKey && (!g.altKey && !g.shiftKey && !g.metaKey) && !h.is(".fancybox-wrap") && (k = a.groupAttr || "data-fancybox-group", l = h.attr(k), l || (k = "rel", l = h.get(0)[k]), l && ("" !== l && "nofollow" !== l) && (h = c.length ? f(c) : e, h = h.filter("[" + k + '="' + l + '"]'), j = h.index(this)), a.index = j, !1 !== b.open(h, a) && g.preventDefault())
};
a = a || {};
d = a.index || 0;
!c || !1 === a.live ? e.unbind("click.fb-start").bind("click.fb-start", k) : p.undelegate(c, "click.fb-start").delegate(c +
":not('.fancybox-item, .fancybox-nav')", "click.fb-start", k);
this.filter("[data-fancybox-start=1]").trigger("click");
return this
};
p.ready(function() {
var a, d;
f.scrollbarWidth === v && (f.scrollbarWidth = function() {
var a = f('
').appendTo("body"),
b = a.children(),
b = b.innerWidth() - b.height(99).innerWidth();
a.remove();
return b
});
if (f.support.fixedPosition === v) {
a = f.support;
d = f('
').appendTo("body");
var e = 20 ===
d[0].offsetTop || 15 === d[0].offsetTop;
d.remove();
a.fixedPosition = e
}
f.extend(b.defaults, {
scrollbarWidth: f.scrollbarWidth(),
fixed: f.support.fixedPosition,
parent: f("body")
});
a = f(r).width();
J.addClass("fancybox-lock-test");
d = f(r).width();
J.removeClass("fancybox-lock-test");
f("").appendTo("head")
})
})(window, document, jQuery);
/**
* Thumbnail helper for fancyBox
* version: 1.0.7 (Mon, 01 Oct 2012)
* @requires fancyBox v2.0 or later
*/
(function ($) {
//Shortcut for fancyBox object
var F = $.fancybox;
//Add helper object
F.helpers.thumbs = {
defaults : {
width : 50, // thumbnail width
height : 50, // thumbnail height
position : 'bottom', // 'top' or 'bottom'
source : function ( item ) { // function to obtain the URL of the thumbnail image
var href;
if (item.element) {
href = $(item.element).find('img').attr('src');
}
if (!href && item.type === 'image' && item.href) {
href = item.href;
}
return href;
}
},
wrap : null,
list : null,
width : 0,
init: function (opts, obj) {
var that = this,
list,
thumbWidth = opts.width,
thumbHeight = opts.height,
thumbSource = opts.source;
//Build list structure
list = '';
for (var n = 0; n < obj.group.length; n++) {
list += '
';
}
this.wrap = $('
').addClass(opts.position).appendTo('body');
this.list = $('
').appendTo(this.wrap);
//Load each thumbnail
$.each(obj.group, function (i) {
var href = thumbSource( obj.group[ i ] );
if (!href) {
return;
}
$("
![]()
").load(function () {
var width = this.width,
height = this.height,
widthRatio, heightRatio, parent;
if (!that.list || !width || !height) {
return;
}
//Calculate thumbnail width/height and center it
widthRatio = width / thumbWidth;
heightRatio = height / thumbHeight;
parent = that.list.children().eq(i).find('a');
if (widthRatio >= 1 && heightRatio >= 1) {
if (widthRatio > heightRatio) {
width = Math.floor(width / heightRatio);
height = thumbHeight;
} else {
width = thumbWidth;
height = Math.floor(height / widthRatio);
}
}
$(this).css({
width : width,
height : height,
top : Math.floor(thumbHeight / 2 - height / 2),
left : Math.floor(thumbWidth / 2 - width / 2)
});
parent.width(thumbWidth).height(thumbHeight);
$(this).hide().appendTo(parent).fadeIn(300);
}).attr('src', href);
});
//Set initial width
this.width = this.list.children().eq(0).outerWidth(true);
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)));
},
beforeLoad: function (opts, obj) {
//Remove self if gallery do not have at least two items
if (obj.group.length < 2) {
obj.helpers.thumbs = false;
return;
}
//Increase bottom margin to give space for thumbs
obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15);
},
afterShow: function (opts, obj) {
//Check if exists and create or update list
if (this.list) {
this.onUpdate(opts, obj);
} else {
this.init(opts, obj);
}
//Set active element
this.list.children().removeClass('active').eq(obj.index).addClass('active');
},
//Center list
onUpdate: function (opts, obj) {
if (this.list) {
this.list.stop(true).animate({
'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))
}, 150);
}
},
beforeClose: function () {
if (this.wrap) {
this.wrap.remove();
}
this.wrap = null;
this.list = null;
this.width = 0;
}
}
}(jQuery));