/* ------------------------------------------------------------------------
	Class: prettyPhoto
	Use: Lightbox clone for jQuery
	Author: Stephane Caron (http://www.no-margin-for-errors.com)
	Version: 2.5.2
------------------------------------------------------------------------- */

(function (a) {
	a.prettyPhoto = {
		version: "2.5"
	};
	a.fn.prettyPhoto = function (t) {
		t = jQuery.extend({
			animationSpeed: "normal",
			padding: 40,
			opacity: 0.8,
			showTitle: true,
			allowresize: true,
			counter_separator_label: "/",
			theme: "light_rounded",
			callback: function () {}
		},
		t);
		if (a.browser.msie && a.browser.version == 6) {
			t.theme = "light_square"
		}
		if (a(".pp_overlay").size() == 0) {
			u()
		} else {
			o = a(".pp_pic_holder");
			x = a(".ppt")
		}
		var d = true,
			h = false,
			s, o, x, t, m, n, r, v, e = "image",
			c = 0,
			j = f();
		a(window).scroll(function () {
			j = f();
			i()
		});
		a(window).resize(function () {
			i();
			q()
		});
		a(document).keydown(function (y) {
			switch (y.keyCode) {
			case 37:
				a.prettyPhoto.changePage("previous");
				break;
			case 39:
				a.prettyPhoto.changePage("next");
				break;
			case 27:
				a.prettyPhoto.close();
				break
			}
		});
		a(this).each(function () {
			a(this).bind("click", function () {
				link = this;
				theRel = a(this).attr("rel");
				galleryRegExp = /\[(?:.*)\]/;
				theGallery = galleryRegExp.exec(theRel);
				var y = new Array(),
					A = new Array(),
					z = new Array();
				if (theGallery) {
					a("a[rel*=" + theGallery + "]").each(function (B) {
						if (a(this)[0] === a(link)[0]) {
							c = B
						}
						y.push(a(this).attr("href"));
						A.push(a(this).find("img").attr("alt"));
						z.push(a(this).attr("title"))
					})
				} else {
					y = a(this).attr("href");
					A = (a(this).find("img").attr("alt")) ? a(this).find("img").attr("alt") : "";
					z = (a(this).attr("title")) ? a(this).attr("title") : ""
				}
				a.prettyPhoto.open(y, A, z);
				return false
			})
		});
		a.prettyPhoto.open = function (A, z, y) {
			if (a.browser.msie && a.browser.version == 6) {
				a("select").css("visibility", "hidden")
			}
			a("object,embed").css("visibility", "hidden");
			images = a.makeArray(A);
			titles = a.makeArray(z);
			descriptions = a.makeArray(y);
			if (a(".pp_overlay").size() == 0) {
				u()
			} else {
				o = a(".pp_pic_holder");
				x = a(".ppt")
			}
			o.attr("class", "pp_pic_holder " + t.theme);
			isSet = (a(images).size() > 0) ? true : false;
			w(images[c]);
			i();
			g(a(images).size());
			a(".pp_loaderIcon").show();
			a("div.pp_overlay").show().fadeTo(t.animationSpeed, t.opacity, function () {
				o.fadeIn(t.animationSpeed, function () {
					o.find("p.currentTextHolder").text((c + 1) + t.counter_separator_label + a(images).size());
					if (descriptions[c]) {
						o.find(".pp_description").show().html(unescape(descriptions[c]))
					} else {
						o.find(".pp_description").hide().text("")
					}
					if (titles[c] && t.showTitle) {
						hasTitle = true;
						x.html(unescape(titles[c]))
					} else {
						hasTitle = false
					}
					if (e == "image") {
						imgPreloader = new Image();
						nextImage = new Image();
						if (isSet && c > a(images).size()) {
							nextImage.src = images[c + 1]
						}
						prevImage = new Image();
						if (isSet && images[c - 1]) {
							prevImage.src = images[c - 1]
						}
						pp_typeMarkup = '<img id="fullResImage" src="" />';
						o.find("#pp_full_res")[0].innerHTML = pp_typeMarkup;
						o.find(".pp_content").css("overflow", "hidden");
						o.find("#fullResImage").attr("src", images[c]);
						imgPreloader.onload = function () {
							s = l(imgPreloader.width, imgPreloader.height);
							_showContent()
						};
						imgPreloader.src = images[c]
					} else {
						movie_width = (parseFloat(b("width", images[c]))) ? b("width", images[c]) : "425";
						movie_height = (parseFloat(b("height", images[c]))) ? b("height", images[c]) : "344";
						if (movie_width.indexOf("%") != -1 || movie_height.indexOf("%") != -1) {
							movie_height = (a(window).height() * parseFloat(movie_height) / 100) - 100;
							movie_width = (a(window).width() * parseFloat(movie_width) / 100) - 100;
							h = true
						}
						movie_height = parseFloat(movie_height);
						movie_width = parseFloat(movie_width);
						if (e == "quicktime") {
							movie_height += 13
						}
						s = l(movie_width, movie_height);
						if (e == "youtube") {
							pp_typeMarkup = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + s.width + '" height="' + s.height + '"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.youtube.com/v/' + b("v", images[c]) + '" /><embed src="http://www.youtube.com/v/' + b("v", images[c]) + '" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + s.width + '" height="' + s.height + '"></embed></object>'
						} else {
							if (e == "quicktime") {
								pp_typeMarkup = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="' + s.height + '" width="' + s.width + '"><param name="src" value="' + images[c] + '"><param name="autoplay" value="true"><param name="type" value="video/quicktime"><embed src="' + images[c] + '" height="' + s.height + '" width="' + s.width + '" autoplay="true" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>'
							} else {
								if (e == "flash") {
									flash_vars = images[c];
									flash_vars = flash_vars.substring(images[c].indexOf("flashvars") + 10, images[c].length);
									filename = images[c];
									filename = filename.substring(0, filename.indexOf("?"));
									pp_typeMarkup = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + s.width + '" height="' + s.height + '"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="' + filename + "?" + flash_vars + '" /><embed src="' + filename + "?" + flash_vars + '" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + s.width + '" height="' + s.height + '"></embed></object>'
								} else {
									if (e == "iframe") {
										movie_url = images[c];
										movie_url = movie_url.substr(0, movie_url.indexOf("iframe") - 1);
										pp_typeMarkup = '<iframe src ="' + movie_url + '" width="' + (s.width - 10) + '" height="' + (s.height - 10) + '" frameborder="no"></iframe>'
									}
								}
							}
						}
						_showContent()
					}
				})
			})
		};
		a.prettyPhoto.changePage = function (y) {
			if (y == "previous") {
				c--;
				if (c < 0) {
					c = 0;
					return
				}
			} else {
				if (a(".pp_arrow_next").is(".disabled")) {
					return
				}
				c++
			}
			if (!d) {
				d = true
			}
			k();
			a("a.pp_expand,a.pp_contract").fadeOut(t.animationSpeed, function () {
				a(this).removeClass("pp_contract").addClass("pp_expand");
				a.prettyPhoto.open(images, titles, descriptions)
			})
		};
		a.prettyPhoto.close = function () {
			o.find("object,embed").css("visibility", "hidden");
			a("div.pp_pic_holder,div.ppt").fadeOut(t.animationSpeed);
			a("div.pp_overlay").fadeOut(t.animationSpeed, function () {
				a("div.pp_overlay,div.pp_pic_holder,div.ppt").remove();
				if (a.browser.msie && a.browser.version == 6) {
					a("select").css("visibility", "visible")
				}
				a("object,embed").css("visibility", "visible");
				c = 0;
				t.callback()
			});
			d = true
		};
		_showContent = function () {
			a(".pp_loaderIcon").hide();
			if (a.browser.opera) {
				windowHeight = window.innerHeight;
				windowWidth = window.innerWidth
			} else {
				windowHeight = a(window).height();
				windowWidth = a(window).width()
			}
			projectedTop = j.scrollTop + ((windowHeight / 2) - (s.containerHeight / 2));
			if (projectedTop < 0) {
				projectedTop = 0 + o.find(".ppt").height()
			}
			o.find(".pp_content").animate({
				height: s.contentHeight
			},
			t.animationSpeed);
			o.animate({
				top: projectedTop,
				left: ((windowWidth / 2) - (s.containerWidth / 2)),
				width: s.containerWidth
			},
			t.animationSpeed, function () {
				o.width(s.containerWidth);
				o.find(".pp_hoverContainer,#fullResImage").height(s.height).width(s.width);
				o.find("#pp_full_res").fadeIn(t.animationSpeed);
				if (isSet && e == "image") {
					o.find(".pp_hoverContainer").fadeIn(t.animationSpeed)
				} else {
					o.find(".pp_hoverContainer").hide()
				}
				o.find(".pp_details").fadeIn(t.animationSpeed);
				if (t.showTitle && hasTitle) {
					x.css({
						top: o.offset().top - 20,
						left: o.offset().left + (t.padding / 2),
						display: "none"
					});
					x.fadeIn(t.animationSpeed)
				}
				if (s.resized) {
					a("a.pp_expand,a.pp_contract").fadeIn(t.animationSpeed)
				}
				if (e != "image") {
					o.find("#pp_full_res")[0].innerHTML = pp_typeMarkup
				}
			})
		};

		function k() {
			o.find(".pp_hoverContainer,.pp_details").fadeOut(t.animationSpeed);
			o.find("#pp_full_res object,#pp_full_res embed").css("visibility", "hidden");
			o.find("#pp_full_res").fadeOut(t.animationSpeed, function () {
				a(".pp_loaderIcon").show()
			});
			x.fadeOut(t.animationSpeed)
		}

		function g(y) {
			if (c == y - 1) {
				o.find("a.pp_next").css("visibility", "hidden");
				o.find("a.pp_arrow_next").addClass("disabled").unbind("click")
			} else {
				o.find("a.pp_next").css("visibility", "visible");
				o.find("a.pp_arrow_next.disabled").removeClass("disabled").bind("click", function () {
					a.prettyPhoto.changePage("next");
					return false
				})
			}
			if (c == 0) {
				o.find("a.pp_previous").css("visibility", "hidden");
				o.find("a.pp_arrow_previous").addClass("disabled").unbind("click")
			} else {
				o.find("a.pp_previous").css("visibility", "visible");
				o.find("a.pp_arrow_previous.disabled").removeClass("disabled").bind("click", function () {
					a.prettyPhoto.changePage("previous");
					return false
				})
			}
			if (y > 1) {
				a(".pp_nav").show()
			} else {
				a(".pp_nav").hide()
			}
		}

		function l(z, y) {
			hasBeenResized = false;
			p(z, y);
			imageWidth = z;
			imageHeight = y;
			windowHeight = a(window).height();
			windowWidth = a(window).width();
			if (((v > windowWidth) || (r > windowHeight)) && d && t.allowresize && !h) {
				hasBeenResized = true;
				notFitting = true;
				while (notFitting) {
					if ((v > windowWidth)) {
						imageWidth = (windowWidth - 200);
						imageHeight = (y / z) * imageWidth
					} else {
						if ((r > windowHeight)) {
							imageHeight = (windowHeight - 200);
							imageWidth = (z / y) * imageHeight
						} else {
							notFitting = false
						}
					}
					r = imageHeight;
					v = imageWidth
				}
				p(imageWidth, imageHeight)
			}
			return {
				width: imageWidth,
				height: imageHeight,
				containerHeight: r,
				containerWidth: v,
				contentHeight: m,
				contentWidth: n,
				resized: hasBeenResized
			}
		}

		function p(z, y) {
			o.find(".pp_details").width(z).find(".pp_description").width(z - parseFloat(o.find("a.pp_close").css("width")));
			m = y + o.find(".pp_details").height() + parseFloat(o.find(".pp_details").css("marginTop")) + parseFloat(o.find(".pp_details").css("marginBottom"));
			n = z;
			r = m + o.find(".ppt").height() + o.find(".pp_top").height() + o.find(".pp_bottom").height();
			v = z + t.padding
		}

		function w(y) {
			if (y.match(/youtube\.com\/watch/i)) {
				e = "youtube"
			} else {
				if (y.indexOf(".mov") != -1) {
					e = "quicktime"
				} else {
					if (y.indexOf("iframe") != -1) {
						e = "iframe"
					} else {
						if (y.indexOf(".swf") != -1) {
							e = "flash"
						} else {
							e = "image"
						}
					}
				}
			}
		}

		function i() {
			if (a.browser.opera) {
				windowHeight = window.innerHeight;
				windowWidth = window.innerWidth
			} else {
				windowHeight = a(window).height();
				windowWidth = a(window).width()
			}
			if (d) {
				$pHeight = o.height();
				$pWidth = o.width();
				$tHeight = x.height();
				projectedTop = (windowHeight / 2) + j.scrollTop - ($pHeight / 2);
				if (projectedTop < 0) {
					projectedTop = 0 + $tHeight
				}
				o.css({
					top: projectedTop,
					left: (windowWidth / 2) + j.scrollLeft - ($pWidth / 2)
				});
				x.css({
					top: projectedTop - $tHeight,
					left: (windowWidth / 2) + j.scrollLeft - ($pWidth / 2) + (t.padding / 2)
				})
			}
		}

		function f() {
			if (self.pageYOffset) {
				scrollTop = self.pageYOffset;
				scrollLeft = self.pageXOffset
			} else {
				if (document.documentElement && document.documentElement.scrollTop) {
					scrollTop = document.documentElement.scrollTop;
					scrollLeft = document.documentElement.scrollLeft
				} else {
					if (document.body) {
						scrollTop = document.body.scrollTop;
						scrollLeft = document.body.scrollLeft
					}
				}
			}
			return {
				scrollTop: scrollTop,
				scrollLeft: scrollLeft
			}
		}

		function q() {
			a("div.pp_overlay").css({
				height: a(document).height(),
				width: a(window).width()
			})
		}

		function u() {
			toInject = "";
			toInject += "<div class='pp_overlay'></div>";
			toInject += '<div class="pp_pic_holder"><div class="pp_top"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div><div class="pp_content"><a href="#" class="pp_expand" title="Expand the image">Expand</a><div class="pp_loaderIcon"></div><div class="pp_hoverContainer"><a class="pp_next" href="#">next</a><a class="pp_previous" href="#">previous</a></div><div id="pp_full_res"></div><div class="pp_details clearfix"><a class="pp_close" href="#">Close</a><p class="pp_description"></p><div class="pp_nav"><a href="#" class="pp_arrow_previous">Previous</a><p class="currentTextHolder">0' + t.counter_separator_label + '0</p><a href="#" class="pp_arrow_next">Next</a></div></div></div><div class="pp_bottom"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div></div>';
			toInject += '<div class="ppt"></div>';
			a("body").append(toInject);
			a("div.pp_overlay").css("opacity", 0);
			o = a(".pp_pic_holder");
			x = a(".ppt");
			a("div.pp_overlay").css("height", a(document).height()).hide().bind("click", function () {
				a.prettyPhoto.close()
			});
			a("a.pp_close").bind("click", function () {
				a.prettyPhoto.close();
				return false
			});
			a("a.pp_expand").bind("click", function () {
				$this = a(this);
				if ($this.hasClass("pp_expand")) {
					$this.removeClass("pp_expand").addClass("pp_contract");
					d = false
				} else {
					$this.removeClass("pp_contract").addClass("pp_expand");
					d = true
				}
				k();
				o.find(".pp_hoverContainer, #pp_full_res, .pp_details").fadeOut(t.animationSpeed, function () {
					a.prettyPhoto.open(images, titles, descriptions)
				});
				return false
			});
			o.find(".pp_previous, .pp_arrow_previous").bind("click", function () {
				a.prettyPhoto.changePage("previous");
				return false
			});
			o.find(".pp_next, .pp_arrow_next").bind("click", function () {
				a.prettyPhoto.changePage("next");
				return false
			});
			o.find(".pp_hoverContainer").css({
				"margin-left": t.padding / 2
			})
		}
	};

	function b(e, d) {
		e = e.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
		var c = "[\\?&]" + e + "=([^&#]*)";
		var g = new RegExp(c);
		var f = g.exec(d);
		if (f == null) {
			return ""
		} else {
			return f[1]
		}
	}
})(jQuery);