/* ------------------------------------------------------------------------
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 2.2.6
------------------------------------------------------------------------- */

(function(A) { A.fn.prettyPhoto = function(P) { var M = 0; var D = true; var K = []; var C = 0; A(window).scroll(function() { B(); }); A(window).resize(function() { B(); N(); }); A(document).keyup(function(T) { switch (T.keyCode) { case 377: if (C == 1) { return; } J("previous"); break; case 399: if (C == setCount) { return; } J("next"); break; case 27: I(); break; } }); P = jQuery.extend({ animationSpeed: "normal", padding: 40, opacity: 0.35, showTitle: true, allowresize: true, counter_separator_label: "/", theme: "light_rounded" }, P); A(this).each(function() { var V = false; var U = false; var W = 0; var T = 0; K[K.length] = this; A(this).bind("click", function() { G(this); return false; }); }); function G(T) { M = A(T); theRel = A(M).attr("rel"); galleryRegExp = /\[(?:.*)\]/; theGallery = galleryRegExp.exec(theRel); isSet = false; setCount = 0; for (i = 0; i < K.length; i++) { if (A(K[i]).attr("rel").indexOf(theGallery) != -1) { setCount++; if (setCount > 1) { isSet = true; } if (A(K[i]).attr("href") == A(T).attr("href")) { C = setCount; arrayPosition = i; } } } Q(isSet); A("div.pp_pic_holder p.currentTextHolder").text(C + P.counter_separator_label + setCount); B(); A("div.pp_pic_holder #full_res").hide(); A(".pp_loaderIcon").show(); R(); } showimage = function(W, T, Z, Y, X, U, V) { A(".pp_loaderIcon").hide(); var a = F(); if (A.browser.opera) { windowHeight = window.innerHeight; windowWidth = window.innerWidth; } else { windowHeight = A(window).height(); windowWidth = A(window).width(); } A("div.pp_pic_holder .pp_content").animate({ height: X, width: Z }, P.animationSpeed); projectedTop = a.scrollTop + ((windowHeight / 2) - (Y / 2)); if (projectedTop < 0) { projectedTop = 0 + A("div.ppt").height(); } A("div.pp_pic_holder").animate({ top: projectedTop, left: ((windowWidth / 2) - (Z / 2)), width: Z }, P.animationSpeed, function() { A("#fullResImage").attr({ width: W, height: T }); A("div.pp_pic_holder").width(Z); A("div.pp_pic_holder .hoverContainer").height(T).width(W); A("div.pp_pic_holder #full_res").fadeIn(P.animationSpeed); E(); if (V) { A("a.pp_expand,a.pp_contract").fadeIn(P.animationSpeed); } }); }; function J(T) { if (T == "previous") { arrayPosition--; C--; } else { arrayPosition++; C++; } if (!D) { D = true; } A("div.pp_pic_holder .hoverContainer,div.pp_pic_holder .pp_details").fadeOut(P.animationSpeed); A("div.pp_pic_holder #full_res").fadeOut(P.animationSpeed, function() { A(".pp_loaderIcon").show(); R(); }); S(); A("a.pp_expand,a.pp_contract").fadeOut(P.animationSpeed, function() { A(this).removeClass("pp_contract").addClass("pp_expand"); }); } function I() { A("div.pp_pic_holder,div.ppt").fadeOut(P.animationSpeed, function() { A("div.pp_overlay").fadeOut(P.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"); } }); }); D = true; } function H() { if (C == setCount) { A("div.pp_pic_holder a.pp_next").css("visibility", "hidden"); A("div.pp_pic_holder a.pp_arrow_next").addClass("disabled").unbind("click"); } else { A("div.pp_pic_holder a.pp_next").css("visibility", "visible"); A("div.pp_pic_holder a.pp_arrow_next.disabled").removeClass("disabled").bind("click", function() { J("next"); return false; }); } if (C == 1) { A("div.pp_pic_holder a.pp_previous").css("visibility", "hidden"); A("div.pp_pic_holder a.pp_arrow_previous").addClass("disabled").unbind("click"); } else { A("div.pp_pic_holder a.pp_previous").css("visibility", "visible"); A("div.pp_pic_holder a.pp_arrow_previous.disabled").removeClass("disabled").bind("click", function() { J("previous"); return false; }); } A("div.pp_pic_holder p.currentTextHolder").text(C + P.counter_separator_label + setCount); var T = (isSet) ? A(K[arrayPosition]) : A(M); if (T.attr("title")) { A("div.pp_pic_holder .pp_description").show().html(unescape(T.attr("title"))); } else { A("div.pp_pic_holder .pp_description").hide().text(""); } if (T.find("img").attr("alt") && P.showTitle) { hasTitle = true; A("div.ppt .ppt_content").html(unescape(T.find("img").attr("alt"))); } else { hasTitle = false; } } function L(U, T) { hasBeenResized = false; A("div.pp_pic_holder .pp_details").width(U); A("div.pp_pic_holder .pp_details p.pp_description").width(U - parseFloat(A("div.pp_pic_holder a.pp_close").css("width"))); contentHeight = T + parseFloat(A("div.pp_pic_holder .pp_details").height()) + parseFloat(A("div.pp_pic_holder .pp_details").css("margin-top")) + parseFloat(A("div.pp_pic_holder .pp_details").css("margin-bottom")); contentWidth = U; containerHeight = T + parseFloat(A("div.ppt").height()) + parseFloat(A("div.pp_pic_holder .pp_top").height()) + parseFloat(A("div.pp_pic_holder .pp_bottom").height()); containerWidth = U + P.padding; imageWidth = U; imageHeight = T; windowHeight = A(window).height(); windowWidth = A(window).width(); if (((containerWidth > windowWidth) || (containerHeight > windowHeight)) && D && P.allowresize) { hasBeenResized = true; notFitting = true; while (notFitting) { if ((containerWidth > windowWidth)) { imageWidth = (windowWidth - 200); imageHeight = (T / U) * imageWidth; } else { if ((containerHeight > windowHeight)) { imageHeight = (windowHeight - 200); imageWidth = (U / T) * imageHeight; } else { notFitting = false; } } containerHeight = imageHeight; containerWidth = imageWidth; } contentHeight = imageHeight + parseFloat(A("div.pp_pic_holder .pp_details").height()) + parseFloat(A("div.pp_pic_holder .pp_details").css("margin-top")) + parseFloat(A("div.pp_pic_holder .pp_details").css("margin-bottom")); contentWidth = imageWidth; containerHeight = imageHeight + parseFloat(A("div.ppt").height()) + parseFloat(A("div.pp_pic_holder .pp_top").height()) + parseFloat(A("div.pp_pic_holder .pp_bottom").height()); containerWidth = imageWidth + P.padding; A("div.pp_pic_holder .pp_details").width(contentWidth); A("div.pp_pic_holder .pp_details p.pp_description").width(contentWidth - parseFloat(A("div.pp_pic_holder a.pp_close").css("width"))); } return { width: imageWidth, height: imageHeight, containerHeight: containerHeight, containerWidth: containerWidth, contentHeight: contentHeight, contentWidth: contentWidth, resized: hasBeenResized }; } function B() { if (A("div.pp_pic_holder").size() > 0) { var T = F(); if (A.browser.opera) { windowHeight = window.innerHeight; windowWidth = window.innerWidth; } else { windowHeight = A(window).height(); windowWidth = A(window).width(); } if (D) { projectedTop = (windowHeight / 2) + T.scrollTop - (A("div.pp_pic_holder").height() / 2); if (projectedTop < 0) { projectedTop = 0 + A("div.ppt").height(); } A("div.pp_pic_holder").css({ top: projectedTop, left: (windowWidth / 2) + T.scrollLeft - (A("div.pp_pic_holder").width() / 2) }); A("div.ppt").css({ top: A("div.pp_pic_holder").offset().top - A("div.ppt").height(), left: A("div.pp_pic_holder").offset().left + (P.padding / 2) }); } } } function E() { if (isSet) { A("div.pp_pic_holder .hoverContainer").fadeIn(P.animationSpeed); } A("div.pp_pic_holder .pp_details").fadeIn(P.animationSpeed); O(); } function O() { if (P.showTitle && hasTitle) { A("div.ppt").css({ top: A("div.pp_pic_holder").offset().top - 22, left: A("div.pp_pic_holder").offset().left + (P.padding / 2), display: "none" }); A("div.ppt div.ppt_content").css("width", "auto"); if (A("div.ppt").width() > A("div.pp_pic_holder").width()) { A("div.ppt div.ppt_content").css("width", A("div.pp_pic_holder").width() - (P.padding * 2)); } else { A("div.ppt div.ppt_content").css("width", ""); } A("div.ppt").fadeIn(P.animationSpeed); } } function S() { A("div.ppt").fadeOut(P.animationSpeed); } function R() { H(); imgPreloader = new Image(); nextImage = new Image(); if (isSet && C > setCount) { nextImage.src = A(K[arrayPosition + 1]).attr("href"); } prevImage = new Image(); if (isSet && K[arrayPosition - 1]) { prevImage.src = A(K[arrayPosition - 1]).attr("href"); } A("div.pp_pic_holder .pp_content").css("overflow", "hidden"); if (isSet) { A("div.pp_pic_holder #fullResImage").attr("src", A(K[arrayPosition]).attr("href")); } else { A("div.pp_pic_holder #fullResImage").attr("src", A(M).attr("href")); } imgPreloader.onload = function() { var T = L(imgPreloader.width, imgPreloader.height); imgPreloader.width = T.width; imgPreloader.height = T.height; setTimeout("showimage(imgPreloader.width,imgPreloader.height," + T.containerWidth + "," + T.containerHeight + "," + T.contentHeight + "," + T.contentWidth + "," + T.resized + ")", 500); }; (isSet) ? imgPreloader.src = A(K[arrayPosition]).attr("href") : imgPreloader.src = A(M).attr("href"); } function F() { scrollTop = window.pageYOffset || document.documentElement.scrollTop || 0; scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || 0; return { scrollTop: scrollTop, scrollLeft: scrollLeft }; } function N() { A("div.pp_overlay").css({ height: A(document).height(), width: A(window).width() }); } function Q() { backgroundDiv = "<div class='pp_overlay'></div>"; A("body").append(backgroundDiv); A("div.pp_overlay").css("height", A(document).height()).bind("click", function() { I(); }); pictureHolder = '<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="hoverContainer"><a class="pp_next" href="#">next</a><a class="pp_previous" href="#">previous</a></div><div id="full_res"><img id="fullResImage" src="" /></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' + P.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>'; titleHolder = '<div class="ppt"><div class="ppt_left"></div><div class="ppt_content"></div><div class="ppt_right"></div></div>'; A("body").append(pictureHolder).append(titleHolder); A(".pp_pic_holder,.titleHolder").css({ opacity: 0 }); A(".pp_pic_holder,.ppt").addClass(P.theme); A("a.pp_close").bind("click", function() { I(); return false; }); A("a.pp_expand").bind("click", function() { if (A(this).hasClass("pp_expand")) { A(this).removeClass("pp_expand").addClass("pp_contract"); D = false; } else { A(this).removeClass("pp_contract").addClass("pp_expand"); D = true; } S(); A("div.pp_pic_holder .hoverContainer,div.pp_pic_holder #full_res").fadeOut(P.animationSpeed); A("div.pp_pic_holder .pp_details").fadeOut(P.animationSpeed, function() { R(); }); return false; }); A(".pp_pic_holder .pp_previous,.pp_pic_holder .pp_arrow_previous").bind("click", function() { J("previous"); return false; }); A(".pp_pic_holder .pp_next,.pp_pic_holder .pp_arrow_next").bind("click", function() { J("next"); return false; }); A(".hoverContainer").css({ "margin-left": P.padding / 2 }); if (!isSet) { A(".hoverContainer,.pp_nav").hide(); } if (A.browser.msie && A.browser.version == 6) { A("body").addClass("ie6"); A("select").css("visibility", "hidden"); } A("div.pp_overlay").css("opacity", 0).fadeTo(P.animationSpeed, P.opacity, function() { A("div.pp_pic_holder").css("opacity", 0).fadeIn(P.animationSpeed, function() { A("div.pp_pic_holder").attr("style", "left:" + A("div.pp_pic_holder").css("left") + ";top:" + A("div.pp_pic_holder").css("top") + ";"); }); }); } }; })(jQuery);

