/*
 * 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) || "";
			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");
				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);
