793 lines
No EOL
21 KiB
JavaScript
793 lines
No EOL
21 KiB
JavaScript
/*
|
|
* 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("<div/>")[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('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
|
|
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) || "";
|
|
k = k.replace(/</, "<").replace(/>/, ">");
|
|
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('<div class="fancybox-inline-tmp" />').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("<img />").attr({
|
|
id : "fancybox-img",
|
|
src : v.src,
|
|
alt : e.title
|
|
}).appendTo(m);
|
|
Q()
|
|
};
|
|
v.src = c;
|
|
break;
|
|
case "swf":
|
|
e.scrolling = "no";
|
|
C = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'
|
|
+ e.width
|
|
+ '" height="'
|
|
+ e.height
|
|
+ '"><param name="movie" value="'
|
|
+ c
|
|
+ '"></param>';
|
|
P = "";
|
|
b.each(e.swf, function(x, H) {
|
|
C += '<param name="' + x + '" value="' + H
|
|
+ '"></param>';
|
|
P += " " + x + '="' + H + '"'
|
|
});
|
|
C += '<embed src="' + c
|
|
+ '" type="application/x-shockwave-flash" width="'
|
|
+ e.width + '" height="' + e.height + '"' + P
|
|
+ "></embed></object>";
|
|
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('<div style="width:'
|
|
+ a
|
|
+ ";height:"
|
|
+ c
|
|
+ ";overflow: "
|
|
+ (e.scrolling == "auto" ? "auto"
|
|
: e.scrolling == "yes" ? "scroll" : "hidden")
|
|
+ ';position:relative;"></div>');
|
|
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" ? '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">'
|
|
+ s
|
|
+ '</td><td id="fancybox-title-float-right"></td></tr></table>'
|
|
: '<div id="fancybox-title-' + d.titlePosition
|
|
+ '">' + s + "</div>"
|
|
: 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(
|
|
'<iframe id="fancybox-frame" name="fancybox-frame'
|
|
+ (new Date).getTime()
|
|
+ '" frameborder="0" hspace="0" '
|
|
+ (b.browser.msie ? 'allowtransparency="true""'
|
|
: "") + ' scrolling="' + e.scrolling
|
|
+ '" src="' + d.href + '"></iframe>').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 - 20,
|
|
left : c.left - d.padding - 20
|
|
}
|
|
} 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() - 40) * 0.5
|
|
- d.padding))
|
|
}, typeof a == "number" ? a : 200)
|
|
}
|
|
};
|
|
b.fancybox.init = function() {
|
|
if (!b("#fancybox-wrap").length) {
|
|
b("body").append(m = b('<div id="fancybox-tmp"></div>'),
|
|
t = b('<div id="fancybox-loading"><div></div></div>'),
|
|
u = b('<div id="fancybox-overlay"></div>'),
|
|
f = b('<div id="fancybox-wrap"></div>'));
|
|
D = b('<div id="fancybox-outer"></div>')
|
|
.append(
|
|
'<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>')
|
|
.appendTo(f);
|
|
D
|
|
.append(
|
|
j = b('<div id="fancybox-content"></div>'),
|
|
E = b('<a id="fancybox-close"></a>'),
|
|
n = b('<div id="fancybox-title"></div>'),
|
|
z = b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),
|
|
A = b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));
|
|
E.click(b.fancybox.close);
|
|
t.click(b.fancybox.cancel);
|
|
z.click(function(a) {
|
|
a.preventDefault();
|
|
b.fancybox.prev()
|
|
});
|
|
A.click(function(a) {
|
|
a.preventDefault();
|
|
b.fancybox.next()
|
|
});
|
|
b.fn.mousewheel
|
|
&& f.bind("mousewheel.fb", function(a, c) {
|
|
if (h)
|
|
a.preventDefault();
|
|
else if (b(a.target).get(0).clientHeight == 0
|
|
|| b(a.target).get(0).scrollHeight === b(
|
|
a.target).get(0).clientHeight) {
|
|
a.preventDefault();
|
|
b.fancybox[c > 0 ? "prev" : "next"]()
|
|
}
|
|
});
|
|
b.support.opacity || f.addClass("fancybox-ie");
|
|
if (M) {
|
|
t.addClass("fancybox-ie6");
|
|
f.addClass("fancybox-ie6");
|
|
b(
|
|
'<iframe id="fancybox-hide-sel-frame" src="'
|
|
+ (/^https/i.test(window.location.href || "") ? "javascript:void(false)"
|
|
: "about:blank")
|
|
+ '" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>')
|
|
.prependTo(D)
|
|
}
|
|
}
|
|
};
|
|
b.fn.fancybox.defaults = {
|
|
padding : 10,
|
|
margin : 40,
|
|
opacity : false,
|
|
modal : false,
|
|
cyclic : false,
|
|
scrolling : "auto",
|
|
width : 560,
|
|
height : 340,
|
|
autoScale : true,
|
|
autoDimensions : true,
|
|
centerOnScroll : false,
|
|
ajax : {},
|
|
swf : {
|
|
wmode : "transparent"
|
|
},
|
|
hideOnOverlayClick : true,
|
|
hideOnContentClick : false,
|
|
overlayShow : true,
|
|
overlayOpacity : 0.7,
|
|
overlayColor : "#777",
|
|
titleShow : true,
|
|
titlePosition : "float",
|
|
titleFormat : null,
|
|
titleFromAlt : false,
|
|
transitionIn : "fade",
|
|
transitionOut : "fade",
|
|
speedIn : 300,
|
|
speedOut : 300,
|
|
changeSpeed : 300,
|
|
changeFade : "fast",
|
|
easingIn : "swing",
|
|
easingOut : "swing",
|
|
showCloseButton : true,
|
|
showNavArrows : true,
|
|
enableEscapeButton : true,
|
|
enableKeyboardNav : true,
|
|
onStart : function() {
|
|
},
|
|
onCancel : function() {
|
|
},
|
|
onComplete : function() {
|
|
},
|
|
onCleanup : function() {
|
|
},
|
|
onClosed : function() {
|
|
},
|
|
onError : function() {
|
|
}
|
|
};
|
|
b(document).ready(function() {
|
|
b.fancybox.init()
|
|
})
|
|
})(jQuery); |