// ColorBox v1.3.15 - a full featured, light-weight, customizable lightbox based on jQuery 1.3+
// Copyright (c) 2010 Jack Moore - jack@colorpowered.com
// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
(function(b, ib) {
	var t = "none", M = "LoadedContent", c = false, v = "resize.", o = "y", q = "auto", e = true, L = "nofollow", m = "x";
	function f(a, c) {
		a = a ? ' id="' + i + a + '"' : "";
		c = c ? ' style="' + c + '"' : "";
		return b("<div" + a + c + "/>")
	}
	function p(a, b) {
		b = b === m ? n.width() : n.height();
		return typeof a === "string" ? Math.round(/%/.test(a) ? b / 100
				* parseInt(a, 10) : parseInt(a, 10)) : a
	}
	function U(b) {
		return a.photo
				|| /\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i
						.test(b)
	}
	function cb(a) {
		for ( var c in a)
			if (b.isFunction(a[c]) && c.substring(0, 2) !== "on")
				a[c] = a[c].call(l);
		a.rel = a.rel || l.rel || L;
		a.href = a.href || b(l).attr("href");
		a.title = a.title || l.title;
		return a
	}
	function w(c, a) {
		a && a.call(l);
		b.event.trigger(c)
	}
	function jb() {
		var b, e = i + "Slideshow_", c = "click." + i, f, k;
		if (a.slideshow && h[1]) {
			f = function() {
				F.text(a.slideshowStop).unbind(c).bind(V, function() {
					if (g < h.length - 1 || a.loop)
						b = setTimeout(d.next, a.slideshowSpeed)
				}).bind(W, function() {
					clearTimeout(b)
				}).one(c + " " + N, k);
				j.removeClass(e + "off").addClass(e + "on");
				b = setTimeout(d.next, a.slideshowSpeed)
			};
			k = function() {
				clearTimeout(b);
				F.text(a.slideshowStart).unbind([ V, W, N, c ].join(" ")).one(
						c, f);
				j.removeClass(e + "on").addClass(e + "off")
			};
			a.slideshowAuto ? f() : k()
		}
	}
	function db(c) {
		if (!O) {
			l = c;
			a = cb(b.extend({}, b.data(l, r)));
			h = b(l);
			g = 0;
			if (a.rel !== L) {
				h = b("." + G).filter(function() {
					return (b.data(this, r).rel || this.rel) === a.rel
				});
				g = h.index(l);
				if (g === -1) {
					h = h.add(l);
					g = h.length - 1
				}
			}
			if (!u) {
				u = D = e;
				j.show();
				if (a.returnFocus)
					try {
						l.blur();
						b(l).one(eb, function() {
							try {
								this.focus()
							} catch (a) {
							}
						})
					} catch (f) {
					}
				x.css({
					opacity : +a.opacity,
					cursor : a.overlayClose ? "pointer" : q
				}).show();
				a.w = p(a.initialWidth, m);
				a.h = p(a.initialHeight, o);
				d.position(0);
				X && n.bind(v + P + " scroll." + P, function() {
					x.css({
						width : n.width(),
						height : n.height(),
						top : n.scrollTop(),
						left : n.scrollLeft()
					})
				}).trigger("scroll." + P);
				w(fb, a.onOpen);
				Y.add(H).add(I).add(F).add(Z).hide();
				ab.html(a.close).show()
			}
			d.load(e)
		}
	}
	var gb = {
		transition : "elastic",
		speed : 300,
		width : c,
		initialWidth : "600",
		innerWidth : c,
		maxWidth : c,
		height : c,
		initialHeight : "450",
		innerHeight : c,
		maxHeight : c,
		scalePhotos : e,
		scrolling : e,
		inline : c,
		html : c,
		iframe : c,
		photo : c,
		href : c,
		title : c,
		rel : c,
		opacity : .9,
		preloading : e,
		current : "image {current} of {total}",
		previous : "previous",
		next : "next",
		close : "close",
		open : c,
		returnFocus : e,
		loop : e,
		slideshow : c,
		slideshowAuto : e,
		slideshowSpeed : 2500,
		slideshowStart : "start slideshow",
		slideshowStop : "stop slideshow",
		onOpen : c,
		onLoad : c,
		onComplete : c,
		onCleanup : c,
		onClosed : c,
		overlayClose : e,
		escKey : e,
		arrowKey : e
	}, r = "colorbox", i = "cbox", fb = i + "_open", W = i + "_load", V = i
			+ "_complete", N = i + "_cleanup", eb = i + "_closed", Q = i
			+ "_purge", hb = i + "_loaded", E = b.browser.msie
			&& !b.support.opacity, X = E && b.browser.version < 7, P = i
			+ "_IE6", x, j, A, s, bb, T, R, S, h, n, k, J, K, Z, Y, F, I, H, ab, B, C, y, z, l, g, a, u, D, O = c, d, G = i
			+ "Element";
	d = b.fn[r] = b[r] = function(c, f) {
		var a = this, d;
		if (!a[0] && a.selector)
			return a;
		c = c || {};
		if (f)
			c.onComplete = f;
		if (!a[0] || a.selector === undefined) {
			a = b("<a/>");
			c.open = e
		}
		a.each(function() {
			b.data(this, r, b.extend({}, b.data(this, r) || gb, c));
			b(this).addClass(G)
		});
		d = c.open;
		if (b.isFunction(d))
			d = d.call(a);
		d && db(a[0]);
		return a
	};
	d.init = function() {
//		var l = "hover", m = "clear:left";
		var l = "hover", m = "float: left";
		n = b(ib);
		j = f().attr({
			id : r,
			"class" : E ? i + "IE" : ""
		});
		x = f("Overlay", X ? "position:absolute" : "").hide();
		A = f("Wrapper");
		s = f("Content").append(k = f(M, "width:0; height:0; overflow:hidden"),
				K = f("LoadingOverlay").add(f("LoadingGraphic")),
				Z = f("Title"), Y = f("Current"), I = f("Next"),
				H = f("Previous"), F = f("Slideshow").bind(fb, jb),
				ab = f("Close"));
		A.append(
				f().append(f("TopLeft"), bb = f("TopCenter"), f("TopRight")),
				f(c, m).append(T = f("MiddleLeft"), s, R = f("MiddleRight")),
				f(c, m).append(f("BottomLeft"), S = f("BottomCenter"),
						f("BottomRight"))).children().children().css({
			"float" : "left"
		});
		J = f(c,
				"position:absolute; width:9999px; visibility:hidden; display:none");
		b("body").prepend(x, j.append(A, J));
		s.children().hover(function() {
			b(this).addClass(l)
		}, function() {
			b(this).removeClass(l)
		}).addClass(l);
		B = bb.height() + S.height() + s.outerHeight(e) - s.height();
		C = T.width() + R.width() + s.outerWidth(e) - s.width();
		y = k.outerHeight(e);
		z = k.outerWidth(e);
		j.css({
			"padding-bottom" : B,
			"padding-right" : C
		}).hide();
		I.click(d.next);
		H.click(d.prev);
		ab.click(d.close);
		s.children().removeClass(l);
		b("." + G).live(
				"click",
				function(a) {
					if (!(a.button !== 0 && typeof a.button !== "undefined"
							|| a.ctrlKey || a.shiftKey || a.altKey)) {
						a.preventDefault();
						db(this)
					}
				});
		x.click(function() {
			a.overlayClose && d.close()
		});
		b(document).bind("keydown", function(b) {
			if (u && a.escKey && b.keyCode === 27) {
				b.preventDefault();
				d.close()
			}
			if (u && a.arrowKey && !D && h[1])
				if (b.keyCode === 37 && (g || a.loop)) {
					b.preventDefault();
					H.click()
				} else if (b.keyCode === 39 && (g < h.length - 1 || a.loop)) {
					b.preventDefault();
					I.click()
				}
		})
	};
	d.remove = function() {
		j.add(x).remove();
		b("." + G).die("click").removeData(r).removeClass(G)
	};
	d.position = function(f, d) {
		function b(a) {
			bb[0].style.width = S[0].style.width = s[0].style.width = a.style.width;
			K[0].style.height = K[1].style.height = s[0].style.height = T[0].style.height = R[0].style.height = a.style.height
		}
		var e, h = Math.max(
				document.documentElement.clientHeight - a.h - y - B, 0)
				/ 2 + n.scrollTop(), g = Math.max(n.width() - a.w - z - C, 0)
				/ 2 + n.scrollLeft();
		e = j.width() === a.w + z && j.height() === a.h + y ? 0 : f;
		A[0].style.width = A[0].style.height = "9999px";
		j.dequeue().animate({
			width : a.w + z,
			height : a.h + y,
			top : h,
			left : g
		}, {
			duration : e,
			complete : function() {
				b(this);
				D = c;
				A[0].style.width = a.w + z + C + "px";
				A[0].style.height = a.h + y + B + "px";
				d && d()
			},
			step : function() {
				b(this)
			}
		})
	};
	d.resize = function(b) {
		if (u) {
			b = b || {};
			if (b.width)
				a.w = p(b.width, m) - z - C;
			if (b.innerWidth)
				a.w = p(b.innerWidth, m);
			k.css({
				width : a.w
			});
			if (b.height)
				a.h = p(b.height, o) - y - B;
			if (b.innerHeight)
				a.h = p(b.innerHeight, o);
			if (!b.innerHeight && !b.height) {
				b = k.wrapInner("<div style='overflow:auto'></div>").children();
				a.h = b.height();
				b.replaceWith(b.children())
			}
			k.css({
				height : a.h
			});
			d.position(a.transition === t ? 0 : a.speed)
		}
	};
	d.prep = function(m) {
		var c = "hidden";
		function l(s) {
			var p, f, m, c, l = h.length, q = a.loop;
			d.position(s, function() {
				function s() {
					E && j[0].style.removeAttribute("filter")
				}
				if (u) {
					E && o && k.fadeIn(100);
					k.show();
					w(hb);
					Z.show().html(a.title);
					if (l > 1) {
						typeof a.current === "string"
								&& Y.html(
										a.current.replace(/\{current\}/, g + 1)
												.replace(/\{total\}/, l))
										.show();
						I[q || g < l - 1 ? "show" : "hide"]().html(a.next);
						H[q || g ? "show" : "hide"]().html(a.previous);
						p = g ? h[g - 1] : h[l - 1];
						m = g < l - 1 ? h[g + 1] : h[0];
						a.slideshow && F.show();
						if (a.preloading) {
							c = b.data(m, r).href || m.href;
							f = b.data(p, r).href || p.href;
							c = b.isFunction(c) ? c.call(m) : c;
							f = b.isFunction(f) ? f.call(p) : f;
							if (U(c))
								b("<img/>")[0].src = c;
							if (U(f))
								b("<img/>")[0].src = f
						}
					}
					K.hide();
					a.transition === "fade" ? j.fadeTo(e, 1, function() {
						s()
					}) : s();
					n.bind(v + i, function() {
						d.position(0)
					});
					w(V, a.onComplete)
				}
			})
		}
		if (u) {
			var o, e = a.transition === t ? 0 : a.speed;
			n.unbind(v + i);
			k.remove();
			k = f(M).html(m);
			k.hide().appendTo(J.show()).css({
				width : function() {
					a.w = a.w || k.width();
					a.w = a.mw && a.mw < a.w ? a.mw : a.w;
					return a.w
				}(),
				overflow : a.scrolling ? q : c
			}).css({
				height : function() {
					a.h = a.h || k.height();
					a.h = a.mh && a.mh < a.h ? a.mh : a.h;
					return a.h
				}()
			}).prependTo(s);
			J.hide();
			b("#" + i + "Photo").css({
				cssFloat : t,
				marginLeft : q,
				marginRight : q
			});
			X && b("select").not(j.find("select")).filter(function() {
				return this.style.visibility !== c
			}).css({
				visibility : c
			}).one(N, function() {
				this.style.visibility = "inherit"
			});
			a.transition === "fade" ? j.fadeTo(e, 0, function() {
				l(0)
			}) : l(e)
		}
	};
	d.load = function(u) {
		var n, c, s, q = d.prep;
		D = e;
		l = h[g];
		u || (a = cb(b.extend({}, b.data(l, r))));
		w(Q);
		w(W, a.onLoad);
		a.h = a.height ? p(a.height, o) - y - B : a.innerHeight
				&& p(a.innerHeight, o);
		a.w = a.width ? p(a.width, m) - z - C : a.innerWidth
				&& p(a.innerWidth, m);
		a.mw = a.w;
		a.mh = a.h;
		if (a.maxWidth) {
			a.mw = p(a.maxWidth, m) - z - C;
			a.mw = a.w && a.w < a.mw ? a.w : a.mw
		}
		if (a.maxHeight) {
			a.mh = p(a.maxHeight, o) - y - B;
			a.mh = a.h && a.h < a.mh ? a.h : a.mh
		}
		n = a.href;
		K.show();
		if (a.inline) {
			f().hide().insertBefore(b(n)[0]).one(Q, function() {
				b(this).replaceWith(k.children())
			});
			q(b(n))
		} else if (a.iframe) {
			j
					.one(
							hb,
							function() {
								var c = b("<iframe frameborder='0' style='width:100%; height:100%; border:0; display:block'/>")[0];
								c.name = i + +new Date;
								c.src = a.href;
								if (!a.scrolling)
									c.scrolling = "no";
								if (E)
									c.allowtransparency = "true";
								b(c).appendTo(k).one(Q, function() {
									c.src = "//about:blank"
								})
							});
			q(" ")
		} else if (a.html)
			q(a.html);
		else if (U(n)) {
			c = new Image;
			c.onload = function() {
				var e;
				c.onload = null;
				c.id = i + "Photo";
				b(c).css({
					border : t,
					display : "block",
					cssFloat : "left"
				});
				if (a.scalePhotos) {
					s = function() {
						c.height -= c.height * e;
						c.width -= c.width * e
					};
					if (a.mw && c.width > a.mw) {
						e = (c.width - a.mw) / c.width;
						s()
					}
					if (a.mh && c.height > a.mh) {
						e = (c.height - a.mh) / c.height;
						s()
					}
				}
				if (a.h)
					c.style.marginTop = Math.max(a.h - c.height, 0) / 2 + "px";
				h[1] && (g < h.length - 1 || a.loop) && b(c).css({
					cursor : "pointer"
				}).click(d.next);
				if (E)
					c.style.msInterpolationMode = "bicubic";
				setTimeout(function() {
					q(c)
				}, 1)
			};
			setTimeout(function() {
				c.src = n
			}, 1)
		} else
			n
					&& J.load(n, function(d, c, a) {
						q(c === "error" ? "Request unsuccessful: "
								+ a.statusText : b(this).children())
					})
	};
	d.next = function() {
		if (!D) {
			g = g < h.length - 1 ? g + 1 : 0;
			d.load()
		}
	};
	d.prev = function() {
		if (!D) {
			g = g ? g - 1 : h.length - 1;
			d.load()
		}
	};
	d.close = function() {
		if (u && !O) {
			O = e;
			u = c;
			w(N, a.onCleanup);
			n.unbind("." + i + " ." + P);
			x.fadeTo("fast", 0);
			j.stop().fadeTo("fast", 0, function() {
				w(Q);
				k.remove();
				j.add(x).css({
					opacity : 1,
					cursor : q
				}).hide();
				setTimeout(function() {
					O = c;
					w(eb, a.onClosed)
				}, 1)
			})
		}
	};
	d.element = function() {
		return b(l)
	};
	d.settings = gb;
	b(d.init)
})(jQuery, this);

