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

(function(a) {
	a.prettyPhoto = {
		version : "2.5.3"
	};
	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",
			hideflash : false,
			modal : false,
			changepicturecallback : function() {
			},
			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();
			q()
		});
		a(window).resize(function() {
			i();
			q()
		});
		a(document).keydown(function(y) {
			if (o.is(":visible")) {
				switch (y.keyCode) {
				case 37:
					a.prettyPhoto.changePage("previous");
					break;
				case 39:
					a.prettyPhoto.changePage("next");
					break;
				case 27:
					if (!t.modal) {
						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")
			}
			if (t.hideflash) {
				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 += 15
														}
														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")
				}
				if (t.hideflash) {
					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
				}
				t.changepicturecallback()
			})
		};
		function k() {
			o.find("#pp_full_res object,#pp_full_res embed").css("visibility",
					"hidden");
			o.find(".pp_hoverContainer,.pp_details").fadeOut(t.animationSpeed);
			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(".swf") != -1) {
						e = "flash"
					} else {
						if (y.indexOf("iframe") != -1) {
							e = "iframe"
						} 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() {
						if (!t.modal) {
							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_details").fadeOut(
								t.animationSpeed);
						o.find("#pp_full_res").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);