/* ------------------------------------------------------------------------
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 3.1.6
------------------------------------------------------------------------- */
!function(e) {
function t() {
var e = location.href;
return hashtag = -1 !== e.indexOf("#prettyPhoto") ? decodeURI(e.substring(e.indexOf("#prettyPhoto") + 1, e.length)) : !1,
hashtag && (hashtag = hashtag.replace(/<|>/g, "")),
hashtag
}
function i() {
"undefined" != typeof theRel && (location.hash = theRel + "/" + rel_index + "/")
}
function p() {
-1 !== location.href.indexOf("#prettyPhoto") && (location.hash = "prettyPhoto")
}
function o(e, t) {
e = e.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var i = "[\\?&]" + e + "=([^]*)"
, p = new RegExp(i)
, o = p.exec(t);
return null == o ? "" : o[1]
}
e.prettyPhoto = {
version: "3.1.6"
},
e.fn.prettyPhoto = function(a) {
function s() {
e(".pp_loaderIcon").hide(),
projectedTop = scroll_pos.scrollTop + (I / 2 - f.containerHeight / 2),
projectedTop < 0 && (projectedTop = 0),
$ppt.fadeTo(settings.animation_speed, 1),
$pp_pic_holder.find(".pp_content").animate({
height: f.contentHeight,
width: f.contentWidth
}, settings.animation_speed),
$pp_pic_holder.animate({
top: projectedTop,
left: j / 2 - f.containerWidth / 2 < 0 ? 0 : j / 2 - f.containerWidth / 2,
width: f.containerWidth
}, settings.animation_speed, function() {
$pp_pic_holder.find(".pp_hoverContainer,#fullResImage").height(f.height).width(f.width),
$pp_pic_holder.find(".pp_fade").fadeIn(settings.animation_speed),
isSet && "image" == h(pp_images[set_position]) ? $pp_pic_holder.find(".pp_hoverContainer").show() : $pp_pic_holder.find(".pp_hoverContainer").hide(),
settings.allow_expand && (f.resized ? e("a.pp_expand,a.pp_contract").show() : e("a.pp_expand").hide()),
!settings.autoplay_slideshow || P || v || e.prettyPhoto.startSlideshow(),
settings.changepicturecallback(),
v = !0
}),
m(),
a.ajaxcallback()
}
function n(t) {
$pp_pic_holder.find("#pp_full_res object,#pp_full_res embed").css("visibility", "hidden"),
$pp_pic_holder.find(".pp_fade").fadeOut(settings.animation_speed, function() {
e(".pp_loaderIcon").show(),
t()
})
}
function r(t) {
t > 1 ? e(".pp_nav").show() : e(".pp_nav").hide()
}
function l(e, t) {
if (resized = !1,
d(e, t),
imageWidth = e,
imageHeight = t,
(k > j || b > I) && doresize && settings.allow_resize && !$) {
for (resized = !0,
fitting = !1; !fitting; )
k > j ? (imageWidth = j - 200,
imageHeight = t / e * imageWidth) : b > I ? (imageHeight = I - 200,
imageWidth = e / t * imageHeight) : fitting = !0,
b = imageHeight,
k = imageWidth;
(k > j || b > I) && l(k, b),
d(imageWidth, imageHeight)
}
return {
width: Math.floor(imageWidth),
height: Math.floor(imageHeight),
containerHeight: Math.floor(b),
containerWidth: Math.floor(k) + 2 * settings.horizontal_padding,
contentHeight: Math.floor(y),
contentWidth: Math.floor(w),
resized: resized
}
}
function d(t, i) {
t = parseFloat(t),
i = parseFloat(i),
$pp_details = $pp_pic_holder.find(".pp_details"),
$pp_details.width(t),
detailsHeight = parseFloat($pp_details.css("marginTop")) + parseFloat($pp_details.css("marginBottom")),
$pp_details = $pp_details.clone().addClass(settings.theme).width(t).appendTo(e("body")).css({
position: "absolute",
top: -1e4
}),
detailsHeight += $pp_details.height(),
detailsHeight = detailsHeight <= 34 ? 36 : detailsHeight,
$pp_details.remove(),
$pp_title = $pp_pic_holder.find(".ppt"),
$pp_title.width(t),
titleHeight = parseFloat($pp_title.css("marginTop")) + parseFloat($pp_title.css("marginBottom")),
$pp_title = $pp_title.clone().appendTo(e("body")).css({
position: "absolute",
top: -1e4
}),
titleHeight += $pp_title.height(),
$pp_title.remove(),
y = i + detailsHeight,
w = t,
b = y + titleHeight + $pp_pic_holder.find(".pp_top").height() + $pp_pic_holder.find(".pp_bottom").height(),
k = t
}
function h(e) {
return e.match(/youtube\.com\/watch/i) || e.match(/youtu\.be/i) ? "youtube" : e.match(/vimeo\.com/i) ? "vimeo" : e.match(/\b.mov\b/i) ? "quicktime" : e.match(/\b.swf\b/i) ? "flash" : e.match(/\biframe=true\b/i) ? "iframe" : e.match(/\bajax=true\b/i) ? "ajax" : e.match(/\bcustom=true\b/i) ? "custom" : "#" == e.substr(0, 1) ? "inline" : "image"
}
function c() {
if (doresize && "undefined" != typeof $pp_pic_holder) {
if (scroll_pos = _(),
contentHeight = $pp_pic_holder.height(),
contentwidth = $pp_pic_holder.width(),
projectedTop = I / 2 + scroll_pos.scrollTop - contentHeight / 2,
projectedTop < 0 && (projectedTop = 0),
contentHeight > I)
return;
$pp_pic_holder.css({
top: projectedTop,
left: j / 2 + scroll_pos.scrollLeft - contentwidth / 2
})
}
}
function _() {
return self.pageYOffset ? {
scrollTop: self.pageYOffset,
scrollLeft: self.pageXOffset
} : document.documentElement && document.documentElement.scrollTop ? {
scrollTop: document.documentElement.scrollTop,
scrollLeft: document.documentElement.scrollLeft
} : document.body ? {
scrollTop: document.body.scrollTop,
scrollLeft: document.body.scrollLeft
} : void 0
}
function g() {
I = e(window).height(),
j = e(window).width(),
"undefined" != typeof $pp_overlay && $pp_overlay.height(e(document).height()).width(j)
}
function m() {
isSet && settings.overlay_gallery && "image" == h(pp_images[set_position]) ? (itemWidth = 57,
navWidth = "facebook" == settings.theme || "pp_default" == settings.theme ? 50 : 30,
itemsPerPage = Math.floor((f.containerWidth - 100 - navWidth) / itemWidth),
itemsPerPage = itemsPerPage < pp_images.length ? itemsPerPage : pp_images.length,
totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1,
0 == totalPage ? (navWidth = 0,
$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").hide()) : $pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").show(),
galleryWidth = itemsPerPage * itemWidth,
fullGalleryWidth = pp_images.length * itemWidth,
$pp_gallery.css("margin-left", -(galleryWidth / 2 + navWidth / 2)).find("div:first").width(galleryWidth + 5).find("ul").width(fullGalleryWidth).find("li.selected").removeClass("selected"),
goToPage = Math.floor(set_position / itemsPerPage) < totalPage ? Math.floor(set_position / itemsPerPage) : totalPage,
e.prettyPhoto.changeGalleryPage(goToPage),
$pp_gallery_li.filter(":eq(" + set_position + ")").addClass("selected")) : $pp_pic_holder.find(".pp_content").unbind("mouseenter mouseleave")
}
function u() {
if (settings.social_tools && (facebook_like_link = settings.social_tools.replace("{location_href}", encodeURIComponent(location.href))),
settings.markup = settings.markup.replace("{pp_social}", ""),
e("body").append(settings.markup),
$pp_pic_holder = e(".pp_pic_holder"),
$ppt = e(".ppt"),
$pp_overlay = e("div.pp_overlay"),
isSet && settings.overlay_gallery) {
currentGalleryPage = 0,
toInject = "";
for (var t = 0; t < pp_images.length; t++)
pp_images[t].match(/\b(jpg|jpeg|png|gif)\b/gi) ? (classname = "",
img_src = pp_images[t]) : (classname = "default",
img_src = ""),
toInject += "
";
toInject = settings.gallery_markup.replace(/{gallery}/g, toInject),
$pp_pic_holder.find("#pp_full_res").after(toInject),
$pp_gallery = e(".pp_pic_holder .pp_gallery"),
$pp_gallery_li = $pp_gallery.find("li"),
$pp_gallery.find(".pp_arrow_next").click(function() {
return e.prettyPhoto.changeGalleryPage("next"),
e.prettyPhoto.stopSlideshow(),
!1
}),
$pp_gallery.find(".pp_arrow_previous").click(function() {
return e.prettyPhoto.changeGalleryPage("previous"),
e.prettyPhoto.stopSlideshow(),
!1
}),
$pp_pic_holder.find(".pp_content").hover(function() {
$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeIn()
}, function() {
$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeOut()
}),
itemWidth = 57,
$pp_gallery_li.each(function(t) {
e(this).find("a").click(function() {
return e.prettyPhoto.changePage(t),
e.prettyPhoto.stopSlideshow(),
!1
})
})
}
settings.slideshow && ($pp_pic_holder.find(".pp_nav").prepend('Play'),
$pp_pic_holder.find(".pp_nav .pp_play").click(function() {
return e.prettyPhoto.startSlideshow(),
!1
})),
$pp_pic_holder.attr("class", "pp_pic_holder " + settings.theme),
$pp_overlay.css({
opacity: 0,
height: e(document).height(),
width: e(window).width()
}).bind("click", function() {
settings.modal || e.prettyPhoto.close()
}),
e("a.pp_close").bind("click", function() {
return e.prettyPhoto.close(),
!1
}),
settings.allow_expand && e("a.pp_expand").bind("click", function() {
return e(this).hasClass("pp_expand") ? (e(this).removeClass("pp_expand").addClass("pp_contract"),
doresize = !1) : (e(this).removeClass("pp_contract").addClass("pp_expand"),
doresize = !0),
n(function() {
e.prettyPhoto.open()
}),
!1
}),
$pp_pic_holder.find(".pp_previous, .pp_nav .pp_arrow_previous").bind("click", function() {
return e.prettyPhoto.changePage("previous"),
e.prettyPhoto.stopSlideshow(),
!1
}),
$pp_pic_holder.find(".pp_next, .pp_nav .pp_arrow_next").bind("click", function() {
return e.prettyPhoto.changePage("next"),
e.prettyPhoto.stopSlideshow(),
!1
}),
c()
}
a = jQuery.extend({
hook: "rel",
animation_speed: "fast",
ajaxcallback: function() {},
slideshow: 5e3,
autoplay_slideshow: !1,
opacity: .8,
show_title: !0,
allow_resize: !0,
allow_expand: !0,
default_width: 500,
default_height: 344,
counter_separator_label: "/",
theme: "pp_default",
horizontal_padding: 20,
hideflash: !1,
wmode: "opaque",
autoplay: !0,
modal: !1,
deeplinking: !0,
overlay_gallery: !0,
overlay_gallery_max: 30,
keyboard_shortcuts: !0,
changepicturecallback: function() {},
callback: function() {},
ie6_fallback: !0,
markup: ' ',
gallery_markup: '',
image_markup: '',
flash_markup: '',
quicktime_markup: '',
iframe_markup: '',
inline_markup: '{content}
',
custom_markup: "",
social_tools: ''
}, a);
var f, v, y, w, b, k, P, x = this, $ = !1, I = e(window).height(), j = e(window).width();
return doresize = !0,
scroll_pos = _(),
e(window).unbind("resize.prettyphoto").bind("resize.prettyphoto", function() {
c(),
g()
}),
a.keyboard_shortcuts && e(document).unbind("keydown.prettyphoto").bind("keydown.prettyphoto", function(t) {
if ("undefined" != typeof $pp_pic_holder && $pp_pic_holder.is(":visible"))
switch (t.keyCode) {
case 37:
e.prettyPhoto.changePage("previous"),
t.preventDefault();
break;
case 39:
e.prettyPhoto.changePage("next"),
t.preventDefault();
break;
case 27:
settings.modal || e.prettyPhoto.close(),
t.preventDefault()
}
}),
e.prettyPhoto.initialize = function() {
return settings = a,
"pp_default" == settings.theme && (settings.horizontal_padding = 16),
theRel = e(this).attr(settings.hook),
galleryRegExp = /\[(?:.*)\]/,
isSet = galleryRegExp.exec(theRel) ? !0 : !1,
pp_images = isSet ? jQuery.map(x, function(t) {
return -1 != e(t).attr(settings.hook).indexOf(theRel) ? e(t).attr("href") : void 0
}) : e.makeArray(e(this).attr("href")),
pp_titles = isSet ? jQuery.map(x, function(t) {
return -1 != e(t).attr(settings.hook).indexOf(theRel) ? e(t).find("img").attr("alt") ? e(t).find("img").attr("alt") : "" : void 0
}) : e.makeArray(e(this).find("img").attr("alt")),
pp_descriptions = isSet ? jQuery.map(x, function(t) {
return -1 != e(t).attr(settings.hook).indexOf(theRel) ? e(t).attr("title") ? e(t).attr("title") : "" : void 0
}) : e.makeArray(e(this).attr("title")),
pp_images.length > settings.overlay_gallery_max && (settings.overlay_gallery = !1),
set_position = jQuery.inArray(e(this).attr("href"), pp_images),
rel_index = isSet ? set_position : e("a[" + settings.hook + "^='" + theRel + "']").index(e(this)),
u(this),
settings.allow_resize && e(window).bind("scroll.prettyphoto", function() {
c()
}),
e.prettyPhoto.open(),
!1
}
,
e.prettyPhoto.open = function(t) {
return "undefined" == typeof settings && (settings = a,
pp_images = e.makeArray(arguments[0]),
pp_titles = e.makeArray(arguments[1] ? arguments[1] : ""),
pp_descriptions = e.makeArray(arguments[2] ? arguments[2] : ""),
isSet = pp_images.length > 1 ? !0 : !1,
set_position = arguments[3] ? arguments[3] : 0,
u(t.target)),
settings.hideflash && e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility", "hidden"),
r(e(pp_images).size()),
e(".pp_loaderIcon").show(),
settings.deeplinking && i(),
settings.social_tools && (facebook_like_link = settings.social_tools.replace("{location_href}", encodeURIComponent(location.href)),
$pp_pic_holder.find(".pp_social").html(facebook_like_link)),
$ppt.is(":hidden") && $ppt.css("opacity", 0).show(),
$pp_overlay.show().fadeTo(settings.animation_speed, settings.opacity),
$pp_pic_holder.find(".currentTextHolder").text(set_position + 1 + settings.counter_separator_label + e(pp_images).size()),
"undefined" != typeof pp_descriptions[set_position] && "" != pp_descriptions[set_position] ? $pp_pic_holder.find(".pp_description").show().html(unescape(pp_descriptions[set_position])) : $pp_pic_holder.find(".pp_description").hide(),
movie_width = parseFloat(o("width", pp_images[set_position])) ? o("width", pp_images[set_position]) : settings.default_width.toString(),
movie_height = parseFloat(o("height", pp_images[set_position])) ? o("height", pp_images[set_position]) : settings.default_height.toString(),
$ = !1,
-1 != movie_height.indexOf("%") && (movie_height = parseFloat(e(window).height() * parseFloat(movie_height) / 100 - 150),
$ = !0),
-1 != movie_width.indexOf("%") && (movie_width = parseFloat(e(window).width() * parseFloat(movie_width) / 100 - 150),
$ = !0),
$pp_pic_holder.fadeIn(function() {
switch ($ppt.html(settings.show_title && "" != pp_titles[set_position] && "undefined" != typeof pp_titles[set_position] ? unescape(pp_titles[set_position]) : " "),
imgPreloader = "",
skipInjection = !1,
h(pp_images[set_position])) {
case "image":
imgPreloader = new Image,
nextImage = new Image,
isSet && set_position < e(pp_images).size() - 1 && (nextImage.src = pp_images[set_position + 1]),
prevImage = new Image,
isSet && pp_images[set_position - 1] && (prevImage.src = pp_images[set_position - 1]),
$pp_pic_holder.find("#pp_full_res")[0].innerHTML = settings.image_markup.replace(/{path}/g, pp_images[set_position]),
imgPreloader.onload = function() {
f = l(imgPreloader.width, imgPreloader.height),
s()
}
,
imgPreloader.onerror = function() {
alert("Image cannot be loaded. Make sure the path is correct and image exist."),
e.prettyPhoto.close()
}
,
imgPreloader.src = pp_images[set_position];
break;
case "youtube":
f = l(movie_width, movie_height),
movie_id = o("v", pp_images[set_position]),
"" == movie_id && (movie_id = pp_images[set_position].split("youtu.be/"),
movie_id = movie_id[1],
movie_id.indexOf("?") > 0 && (movie_id = movie_id.substr(0, movie_id.indexOf("?"))),
movie_id.indexOf("&") > 0 && (movie_id = movie_id.substr(0, movie_id.indexOf("&")))),
movie = "https://www.youtube.com/embed/" + movie_id,
movie += o("rel", pp_images[set_position]) ? "?rel=" + o("rel", pp_images[set_position]) : "?rel=1",
settings.autoplay && (movie += "&autoplay=1"),
toInject = settings.iframe_markup.replace(/{width}/g, f.width).replace(/{height}/g, f.height).replace(/{wmode}/g, settings.wmode).replace(/{path}/g, movie);
break;
case "vimeo":
f = l(movie_width, movie_height),
movie_id = pp_images[set_position];
var t = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/
, i = movie_id.match(t);
movie = "http" + i[1] + "://player.vimeo.com/video/" + i[3] + "?title=0&byline=0&portrait=0",
settings.autoplay && (movie += "&autoplay=1;"),
vimeo_width = f.width + "/embed/?moog_width=" + f.width,
toInject = settings.iframe_markup.replace(/{width}/g, vimeo_width).replace(/{height}/g, f.height).replace(/{path}/g, movie);
break;
case "quicktime":
f = l(movie_width, movie_height),
f.height += 15,
f.contentHeight += 15,
f.containerHeight += 15,
toInject = settings.quicktime_markup.replace(/{width}/g, f.width).replace(/{height}/g, f.height).replace(/{wmode}/g, settings.wmode).replace(/{path}/g, pp_images[set_position]).replace(/{autoplay}/g, settings.autoplay);
break;
case "flash":
f = l(movie_width, movie_height),
flash_vars = pp_images[set_position],
flash_vars = flash_vars.substring(pp_images[set_position].indexOf("flashvars") + 10, pp_images[set_position].length),
filename = pp_images[set_position],
filename = filename.substring(0, filename.indexOf("?")),
toInject = settings.flash_markup.replace(/{width}/g, f.width).replace(/{height}/g, f.height).replace(/{wmode}/g, settings.wmode).replace(/{path}/g, filename + "?" + flash_vars);
break;
case "iframe":
f = l(movie_width, movie_height),
frame_url = pp_images[set_position],
frame_url = frame_url.substr(0, frame_url.indexOf("iframe") - 1),
toInject = settings.iframe_markup.replace(/{width}/g, f.width).replace(/{height}/g, f.height).replace(/{path}/g, frame_url);
break;
case "ajax":
doresize = !1,
f = l(movie_width, movie_height),
doresize = !0,
skipInjection = !0,
e.get(pp_images[set_position], function(e) {
toInject = settings.inline_markup.replace(/{content}/g, e),
$pp_pic_holder.find("#pp_full_res")[0].innerHTML = toInject,
s()
});
break;
case "custom":
f = l(movie_width, movie_height),
toInject = settings.custom_markup;
break;
case "inline":
myClone = e(pp_images[set_position]).clone().append('
').css({
width: settings.default_width
}).wrapInner('').appendTo(e("body")).show(),
doresize = !1,
f = l(e(myClone).width(), e(myClone).height()),
doresize = !0,
e(myClone).remove(),
toInject = settings.inline_markup.replace(/{content}/g, e(pp_images[set_position]).html())
}
imgPreloader || skipInjection || ($pp_pic_holder.find("#pp_full_res")[0].innerHTML = toInject,
s())
}),
!1
}
,
e.prettyPhoto.changePage = function(t) {
currentGalleryPage = 0,
"previous" == t ? (set_position--,
set_position < 0 && (set_position = e(pp_images).size() - 1)) : "next" == t ? (set_position++,
set_position > e(pp_images).size() - 1 && (set_position = 0)) : set_position = t,
rel_index = set_position,
doresize || (doresize = !0),
settings.allow_expand && e(".pp_contract").removeClass("pp_contract").addClass("pp_expand"),
n(function() {
e.prettyPhoto.open()
})
}
,
e.prettyPhoto.changeGalleryPage = function(e) {
"next" == e ? (currentGalleryPage++,
currentGalleryPage > totalPage && (currentGalleryPage = 0)) : "previous" == e ? (currentGalleryPage--,
currentGalleryPage < 0 && (currentGalleryPage = totalPage)) : currentGalleryPage = e,
slide_speed = "next" == e || "previous" == e ? settings.animation_speed : 0,
slide_to = currentGalleryPage * itemsPerPage * itemWidth,
$pp_gallery.find("ul").animate({
left: -slide_to
}, slide_speed)
}
,
e.prettyPhoto.startSlideshow = function() {
"undefined" == typeof P ? ($pp_pic_holder.find(".pp_play").unbind("click").removeClass("pp_play").addClass("pp_pause").click(function() {
return e.prettyPhoto.stopSlideshow(),
!1
}),
P = setInterval(e.prettyPhoto.startSlideshow, settings.slideshow)) : e.prettyPhoto.changePage("next")
}
,
e.prettyPhoto.stopSlideshow = function() {
$pp_pic_holder.find(".pp_pause").unbind("click").removeClass("pp_pause").addClass("pp_play").click(function() {
return e.prettyPhoto.startSlideshow(),
!1
}),
clearInterval(P),
P = void 0
}
,
e.prettyPhoto.close = function() {
$pp_overlay.is(":animated") || (e.prettyPhoto.stopSlideshow(),
$pp_pic_holder.stop().find("object,embed").css("visibility", "hidden"),
e("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut(settings.animation_speed, function() {
e(this).remove()
}),
$pp_overlay.fadeOut(settings.animation_speed, function() {
settings.hideflash && e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility", "visible"),
e(this).remove(),
e(window).unbind("scroll.prettyphoto"),
p(),
settings.callback(),
doresize = !0,
v = !1,
delete settings
}))
}
,
!pp_alreadyInitialized && t() && (pp_alreadyInitialized = !0,
hashIndex = t(),
hashRel = hashIndex,
hashIndex = hashIndex.substring(hashIndex.indexOf("/") + 1, hashIndex.length - 1),
hashRel = hashRel.substring(0, hashRel.indexOf("/")),
setTimeout(function() {
e("a[" + a.hook + "^='" + hashRel + "']:eq(" + hashIndex + ")").trigger("click")
}, 50)),
this.unbind("click.prettyphoto").bind("click.prettyphoto", e.prettyPhoto.initialize)
}
}(jQuery);
var pp_alreadyInitialized = !1;