/*
* FancyBox - jQuery Plugin
* Simple and fancy lightbox alternative
*
* Examples and documentation at: http://fancybox.net
*
* Copyright (c) 2008 - 2010 Janis Skarnelis
* That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
*
* Version: 1.3.4 (11/11/2010)
* Requires: jQuery v1.3+
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/
;
(function (b) {
var m, t, u, f, D, j, E, n, z, A, q = 0,
e = {}, o = [],
p = 0,
d = {}, l = [],
G = null,
v = new Image,
J = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,
W = /[^\.]\.(swf)\s*$/i,
K, L = 1,
y = 0,
s = "",
r, i, h = false,
B = b.extend(b("
")[0], {
prop: 0
}),
M = b.browser.msie && b.browser.version < 7 && !window.XMLHttpRequest,
N = function () {
t.hide();
v.onerror = v.onload = null;
G && G.abort();
m.empty()
}, O = function () {
if (false === e.onError(o, q, e)) {
t.hide();
h = false
} else {
e.titleShow = false;
e.width = "auto";
e.height = "auto";
m.html('
The requested content cannot be loaded. Please try again later.
');
F()
}
}, I = function () {
var a = o[q],
c, g, k, C, P, w;
N();
e = b.extend({}, b.fn.fancybox.defaults, typeof b(a).data("fancybox") == "undefined" ? e : b(a).data("fancybox"));
w = e.onStart(o, q, e);
if (w === false) h = false;
else {
if (typeof w == "object") e = b.extend(e, w);
k = e.title || (a.nodeName ? b(a).attr("title") : a.title) || "";
if (a.nodeName && !e.orig) e.orig = b(a).children("img:first").length ? b(a).children("img:first") : b(a);
if (k === "" && e.orig && e.titleFromAlt) k = e.orig.attr("alt");
c = e.href || (a.nodeName ? b(a).attr("href") : a.href) || null;
if (/^(?:javascript)/i.test(c) ||
c == "#") c = null;
if (e.type) {
g = e.type;
if (!c) c = e.content
} else if (e.content) g = "html";
else if (c) g = c.match(J) ? "image" : c.match(W) ? "swf" : b(a).hasClass("iframe") ? "iframe" : c.indexOf("#") === 0 ? "inline" : "ajax";
if (g) {
if (g == "inline") {
a = c.substr(c.indexOf("#"));
g = b(a).length > 0 ? "inline" : "ajax"
}
e.type = g;
e.href = c;
e.title = k;
if (e.autoDimensions)
if (e.type == "html" || e.type == "inline" || e.type == "ajax") {
e.width = "auto";
e.height = "auto"
} else e.autoDimensions = false;
if (e.modal) {
e.overlayShow = true;
e.hideOnOverlayClick = false;
e.hideOnContentClick =
false;
e.enableEscapeButton = false;
e.showCloseButton = false
}
e.padding = parseInt(e.padding, 10);
e.margin = parseInt(e.margin, 10);
m.css("padding", e.padding + e.margin);
b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change", function () {
b(this).replaceWith(j.children())
});
switch (g) {
case "html":
m.html(e.content);
F();
break;
case "inline":
if (b(a).parent().is("#fancybox-content") === true) {
h = false;
break
}
b('').hide().insertBefore(b(a)).bind("fancybox-cleanup", function () {
b(this).replaceWith(j.children())
}).bind("fancybox-cancel",
function () {
b(this).replaceWith(m.children())
});
b(a).appendTo(m);
F();
break;
case "image":
h = false;
b.fancybox.showActivity();
v = new Image;
v.onerror = function () {
O()
};
v.onload = function () {
h = true;
v.onerror = v.onload = null;
e.width = v.width;
e.height = v.height;
b("").attr({
id: "fancybox-img",
src: v.src,
alt: e.title
}).appendTo(m);
Q()
};
v.src = c;
break;
case "swf":
e.scrolling = "no";
C = '";
m.html(C);
F();
break;
case "ajax":
h = false;
b.fancybox.showActivity();
e.ajax.win = e.ajax.success;
G = b.ajax(b.extend({}, e.ajax, {
url: c,
data: e.ajax.data || {},
error: function (x) {
x.status > 0 && O()
},
success: function (x, H, R) {
if ((typeof R == "object" ? R : G).status == 200) {
if (typeof e.ajax.win ==
"function") {
w = e.ajax.win(c, x, H, R);
if (w === false) {
t.hide();
return
} else if (typeof w == "string" || typeof w == "object") x = w
}
m.html(x);
F()
}
}
}));
break;
case "iframe":
Q()
}
} else O()
}
}, F = function () {
var a = e.width,
c = e.height;
a = a.toString().indexOf("%") > -1 ? parseInt((b(window).width() - e.margin * 2) * parseFloat(a) / 100, 10) + "px" : a == "auto" ? "auto" : a + "px";
c = c.toString().indexOf("%") > -1 ? parseInt((b(window).height() - e.margin * 2) * parseFloat(c) / 100, 10) + "px" : c == "auto" ? "auto" : c + "px";
m.wrapInner('');
e.width = m.width();
e.height = m.height();
Q()
}, Q = function () {
var a, c;
t.hide();
if (f.is(":visible") && false === d.onCleanup(l, p, d)) {
b.event.trigger("fancybox-cancel");
h = false
} else {
h = true;
b(j.add(u)).unbind();
b(window).unbind("resize.fb scroll.fb");
b(document).unbind("keydown.fb");
f.is(":visible") && d.titlePosition !== "outside" && f.css("height", f.height());
l = o;
p = q;
d = e;
if (d.overlayShow) {
u.css({
"background-color": d.overlayColor,
opacity: d.overlayOpacity,
cursor: d.hideOnOverlayClick ? "pointer" : "auto",
height: b(document).height()
});
if (!u.is(":visible")) {
M && b("select:not(#fancybox-tmp select)").filter(function () {
return this.style.visibility !== "hidden"
}).css({
visibility: "hidden"
}).one("fancybox-cleanup", function () {
this.style.visibility = "inherit"
});
u.show()
}
} else u.hide();
i = X();
s = d.title || "";
y = 0;
n.empty().removeAttr("style").removeClass();
if (d.titleShow !== false) {
if (b.isFunction(d.titleFormat)) a = d.titleFormat(s, l, p, d);
else a = s && s.length ?
d.titlePosition == "float" ? '
' + s + '
' : '
' + s + "
" : false;
s = a;
if (!(!s || s === "")) {
n.addClass("fancybox-title-" + d.titlePosition).html(s).appendTo("body").show();
switch (d.titlePosition) {
case "inside":
n.css({
width: i.width - d.padding * 2,
marginLeft: d.padding,
marginRight: d.padding
});
y = n.outerHeight(true);
n.appendTo(D);
i.height += y;
break;
case "over":
n.css({
marginLeft: d.padding,
width: i.width - d.padding * 2,
bottom: d.padding
}).appendTo(D);
break;
case "float":
n.css("left", parseInt((n.width() - i.width - 40) / 2, 10) * -1).appendTo(f);
break;
default:
n.css({
width: i.width - d.padding * 2,
paddingLeft: d.padding,
paddingRight: d.padding
}).appendTo(f)
}
}
}
n.hide();
if (f.is(":visible")) {
b(E.add(z).add(A)).hide();
a = f.position();
r = {
top: a.top,
left: a.left,
width: f.width(),
height: f.height()
};
c = r.width == i.width && r.height ==
i.height;
j.fadeTo(d.changeFade, 0.3, function () {
var g = function () {
j.html(m.contents()).fadeTo(d.changeFade, 1, S)
};
b.event.trigger("fancybox-change");
j.empty().removeAttr("filter").css({
"border-width": d.padding,
width: i.width - d.padding * 2,
height: e.autoDimensions ? "auto" : i.height - y - d.padding * 2
});
if (c) g();
else {
B.prop = 0;
b(B).animate({
prop: 1
}, {
duration: d.changeSpeed,
easing: d.easingChange,
step: T,
complete: g
})
}
})
} else {
f.removeAttr("style");
j.css("border-width", d.padding);
if (d.transitionIn == "elastic") {
r = V();
j.html(m.contents());
f.show();
if (d.opacity) i.opacity = 0;
B.prop = 0;
b(B).animate({
prop: 1
}, {
duration: d.speedIn,
easing: d.easingIn,
step: T,
complete: S
})
} else {
d.titlePosition == "inside" && y > 0 && n.show();
j.css({
width: i.width - d.padding * 2,
height: e.autoDimensions ? "auto" : i.height - y - d.padding * 2
}).html(m.contents());
f.css(i).fadeIn(d.transitionIn == "none" ? 0 : d.speedIn, S)
}
}
}
}, Y = function () {
if (d.enableEscapeButton || d.enableKeyboardNav) b(document).bind("keydown.fb", function (a) {
if (a.keyCode == 27 && d.enableEscapeButton) {
a.preventDefault();
b.fancybox.close()
} else if ((a.keyCode ==
37 || a.keyCode == 39) && d.enableKeyboardNav && a.target.tagName !== "INPUT" && a.target.tagName !== "TEXTAREA" && a.target.tagName !== "SELECT") {
a.preventDefault();
b.fancybox[a.keyCode == 37 ? "prev" : "next"]()
}
});
if (d.showNavArrows) {
if (d.cyclic && l.length > 1 || p !== 0) z.show();
if (d.cyclic && l.length > 1 || p != l.length - 1) A.show()
} else {
z.hide();
A.hide()
}
}, S = function () {
if (!b.support.opacity) {
j.get(0).style.removeAttribute("filter");
f.get(0).style.removeAttribute("filter")
}
e.autoDimensions && j.css("height", "auto");
f.css("height", "auto");
s && s.length && n.show();
d.showCloseButton && E.show();
Y();
d.hideOnContentClick && j.bind("click", b.fancybox.close);
d.hideOnOverlayClick && u.bind("click", b.fancybox.close);
b(window).bind("resize.fb", b.fancybox.resize);
d.centerOnScroll && b(window).bind("scroll.fb", b.fancybox.center);
if (d.type == "iframe") b('').appendTo(j);
f.show();
h = false;
b.fancybox.center();
d.onComplete(l, p, d);
var a, c;
if (l.length - 1 > p) {
a = l[p + 1].href;
if (typeof a !== "undefined" && a.match(J)) {
c = new Image;
c.src = a
}
}
if (p > 0) {
a = l[p - 1].href;
if (typeof a !== "undefined" && a.match(J)) {
c = new Image;
c.src = a
}
}
}, T = function (a) {
var c = {
width: parseInt(r.width + (i.width - r.width) * a, 10),
height: parseInt(r.height + (i.height - r.height) * a, 10),
top: parseInt(r.top + (i.top - r.top) * a, 10),
left: parseInt(r.left + (i.left - r.left) * a, 10)
};
if (typeof i.opacity !== "undefined") c.opacity = a < 0.5 ? 0.5 : a;
f.css(c);
j.css({
width: c.width - d.padding * 2,
height: c.height - y * a - d.padding * 2
})
}, U = function () {
return [b(window).width() - d.margin * 2, b(window).height() - d.margin * 2, b(document).scrollLeft() + d.margin, b(document).scrollTop() + d.margin]
}, X = function () {
var a = U(),
c = {}, g = d.autoScale,
k = d.padding * 2;
c.width = d.width.toString().indexOf("%") > -1 ? parseInt(a[0] * parseFloat(d.width) / 100, 10) : d.width + k;
c.height = d.height.toString().indexOf("%") > -1 ? parseInt(a[1] * parseFloat(d.height) / 100, 10) : d.height + k;
if (g && (c.width > a[0] || c.height > a[1]))
if (e.type ==
"image" || e.type == "swf") {
g = d.width / d.height;
if (c.width > a[0]) {
c.width = a[0];
c.height = parseInt((c.width - k) / g + k, 10)
}
if (c.height > a[1]) {
c.height = a[1];
c.width = parseInt((c.height - k) * g + k, 10)
}
} else {
c.width = Math.min(c.width, a[0]);
c.height = Math.min(c.height, a[1])
}
c.top = parseInt(Math.max(a[3] - 20, a[3] + (a[1] - c.height - 40) * 0.5), 10);
c.left = parseInt(Math.max(a[2] - 20, a[2] + (a[0] - c.width - 40) * 0.5), 10);
return c
}, V = function () {
var a = e.orig ? b(e.orig) : false,
c = {};
if (a && a.length) {
c = a.offset();
c.top += parseInt(a.css("paddingTop"),
10) || 0;
c.left += parseInt(a.css("paddingLeft"), 10) || 0;
c.top += parseInt(a.css("border-top-width"), 10) || 0;
c.left += parseInt(a.css("border-left-width"), 10) || 0;
c.width = a.width();
c.height = a.height();
c = {
width: c.width + d.padding * 2,
height: c.height + d.padding * 2,
top: c.top - d.padding,
left: c.left - d.padding
}
} else {
a = U();
c = {
width: d.padding * 2,
height: d.padding * 2,
top: parseInt(a[3] + a[1] * 0.5, 10),
left: parseInt(a[2] + a[0] * 0.5, 10)
}
}
return c
}, Z = function () {
if (t.is(":visible")) {
b("div", t).css("top", L * -40 + "px");
L = (L + 1) % 12
} else clearInterval(K)
};
b.fn.fancybox = function (a) {
if (!b(this).length) return this;
b(this).data("fancybox", b.extend({}, a, b.metadata ? b(this).metadata() : {})).unbind("click.fb").bind("click.fb", function (c) {
c.preventDefault();
if (!h) {
h = true;
b(this).blur();
o = [];
q = 0;
c = b(this).attr("rel") || "";
if (!c || c == "" || c === "nofollow") o.push(this);
else {
o = b("a[rel=" + c + "], area[rel=" + c + "]");
q = o.index(this)
}
I()
}
});
return this
};
b.fancybox = function (a, c) {
var g;
if (!h) {
h = true;
g = typeof c !== "undefined" ? c : {};
o = [];
q = parseInt(g.index, 10) || 0;
if (b.isArray(a)) {
for (var k =
0, C = a.length; k < C; k++)
if (typeof a[k] == "object") b(a[k]).data("fancybox", b.extend({}, g, a[k]));
else a[k] = b({}).data("fancybox", b.extend({
content: a[k]
}, g));
o = jQuery.merge(o, a)
} else {
if (typeof a == "object") b(a).data("fancybox", b.extend({}, g, a));
else a = b({}).data("fancybox", b.extend({
content: a
}, g));
o.push(a)
} if (q > o.length || q < 0) q = 0;
I()
}
};
b.fancybox.showActivity = function () {
clearInterval(K);
t.show();
K = setInterval(Z, 66)
};
b.fancybox.hideActivity = function () {
t.hide()
};
b.fancybox.next = function () {
return b.fancybox.pos(p +
1)
};
b.fancybox.prev = function () {
return b.fancybox.pos(p - 1)
};
b.fancybox.pos = function (a) {
if (!h) {
a = parseInt(a);
o = l;
if (a > -1 && a < l.length) {
q = a;
I()
} else if (d.cyclic && l.length > 1) {
q = a >= l.length ? 0 : l.length - 1;
I()
}
}
};
b.fancybox.cancel = function () {
if (!h) {
h = true;
b.event.trigger("fancybox-cancel");
N();
e.onCancel(o, q, e);
h = false
}
};
b.fancybox.close = function () {
function a() {
u.fadeOut("fast");
n.empty().hide();
f.hide();
b.event.trigger("fancybox-cleanup");
j.empty();
d.onClosed(l, p, d);
l = e = [];
p = q = 0;
d = e = {};
h = false
}
if (!(h || f.is(":hidden"))) {
h =
true;
if (d && false === d.onCleanup(l, p, d)) h = false;
else {
N();
b(E.add(z).add(A)).hide();
b(j.add(u)).unbind();
b(window).unbind("resize.fb scroll.fb");
b(document).unbind("keydown.fb");
j.find("iframe").attr("src", M && /^https/i.test(window.location.href || "") ? "javascript:void(false)" : "about:blank");
d.titlePosition !== "inside" && n.empty();
f.stop();
if (d.transitionOut == "elastic") {
r = V();
var c = f.position();
i = {
top: c.top,
left: c.left,
width: f.width(),
height: f.height()
};
if (d.opacity) i.opacity = 1;
n.empty().hide();
B.prop = 1;
b(B).animate({
prop: 0
}, {
duration: d.speedOut,
easing: d.easingOut,
step: T,
complete: a
})
} else f.fadeOut(d.transitionOut == "none" ? 0 : d.speedOut, a)
}
}
};
b.fancybox.resize = function () {
u.is(":visible") && u.css("height", b(document).height());
b.fancybox.center(true)
};
b.fancybox.center = function (a) {
var c, g;
if (!h) {
g = a === true ? 1 : 0;
c = U();
!g && (f.width() > c[0] || f.height() > c[1]) || f.stop().animate({
top: parseInt(Math.max(c[3] - 20, c[3] + (c[1] - j.height() - 40) * 0.5 - d.padding)),
left: parseInt(Math.max(c[2] - 20, c[2] + (c[0] - j.width()) * 0.5 -
d.padding))
}, typeof a == "number" ? a : 200)
}
};
b.fancybox.init = function () {
if (!b("#fancybox-wrap").length) {
b("body").append(m = b(''), t = b('