/*
* @file
* @brief    boxplus: a lightweight pop-up window engine shipped with sigplus
* @author   Levente Hunyadi
* @version  1.3.0
* @remarks  Copyright (C) 2009-2010 Levente Hunyadi
* @remarks  Licensed under GNU/GPLv3, see http://www.gnu.org/licenses/gpl-3.0.html
* @see      http://hunyadi.info.hu/projects/sigplus
*/
if(typeof(__jQuery__)=="undefined"){var __jQuery__=jQuery.noConflict()}(function(M){var O={theme:false,autofit:true,duration:"slow",easing:"swing",loop:false,title:a,description:ae,download:z,metadata:c};var am;var S;var ak;var af;var q;var K;var al;var B;var P;var aj;var k;var C;var ao;var j;var u;var m;var W;var E;var ap;var N;var A;var ab;var U;var i;var ac=M(window);var o;var p;var s=-1;var G=0;var l="boxplus";var X=l+"-hidden";var aa=l+"-unavailable";var T=l+"-disabled";M.fn.trueWidth=function(){return this.filter(":visible").size()?this.outerWidth(true):0};M.fn.trueHeight=function(){return this.filter(":visible").size()?this.outerHeight(true):0};M(function(){function aq(aw,ax){return"<div"+(aw?' class="'+l+"-"+(M.isArray(aw)?aw.join(" "):aw)+'"':"")+">"+(ax?ax:"")+"</div>"}var ar=aq("prev")+aq("next");var av=aq("caption",aq("title")+aq("text"));var au=aq("controls",ar+aq("close")+aq("download")+aq("metadata"));var at=M('<div id="'+l+'">'+aq(["background",X])+aq(["dialog",X],aq("main",aq(["viewer",X],aq(["content",X])+"<img />"+ar+aq("resizer",aq("enlarge")+aq(["shrink",X]))+aq("thumbs","<ul />"+aq("rewind")+aq("forward"))+aq("progress"))+aq("bottom",av+au))+aq(["sideways",T],au+av)+aq("lt")+aq("t")+aq("rt")+aq("l")+aq("m")+aq("r")+aq("lb")+aq("b")+aq("rb")+aq("progress"))+"</div>").appendTo("body");S=J("background",at).click(V);ak=J("dialog",at);U=J("caption",ak);i=J("bottom",ak).add(J("sideways",ak));P=J("viewer",ak);aj=M("img:first",P);k=M("div:first",P);W=J("resizer",P).click(h);E=J("shrink",W);A=J("rewind",P).hover(ag,w);ab=J("forward",P).hover(L,w);ap=J("thumbs",P);N=M("ul",ap);C=J("prev",ak).click(f);ao=J("next",ak).click(D);j=J("close",ak).click(V);u=J("download",ak).click(Z);m=J("metadata",ak).click(b);al=y(ak);B=x(ak);P.css({height:0,width:0});q=y(ak);K=x(ak);af=ak.clone().appendTo(at)});M.fn.boxplus=function(aq){return this.boxplusConfigure(aq).click(function(ar){H(ar.currentTarget);return false})};M.fn.boxplusGallery=function(aq){n(this).boxplus(aq);return this};M.fn.boxplusDialog=function(aq){H(this.boxplusConfigure(aq).get(0))};M.fn.boxplusConfigure=function(aq){this.data(l,M.extend({},aq));return this};M.fn.boxplusGalleryConfigure=function(aq){n(this).boxplusConfigure(aq);return this};function a(aq){var ar=M("img:first",aq);return ar.size()?ar.attr("alt"):""}function ae(aq){return aq.attr("title")}function z(aq){return false}function c(aq){return""}function H(au){var ar=M(au);am=M.extend({},O,ar.data(l));var av=am.theme;if(av){var at="disabled";M("link[rel=stylesheet][title^="+l+"]").attr(at,at).filter('[title="'+l+"-"+av+'"]').attr(at,null)}S.removeClass(X);ak.css({width:q,height:K}).css(g(q,K)).removeClass(X);v(ak,true);M(document).bind("keydown",Y);var aq=ar.attr("rel");p=aq?M('a[rel="'+aq+'"]'):ar;N.empty();p.each(function(aw){var ax=M("img:first",this);M("<li />").append((ax.size()?M("<img />").attr("src",ax.attr("src")):M()).click(function(){Q(aw)})).appendTo(N)});ap.css("height",N.trueHeight());Q(M.inArray(au,p.get()))}function V(){M(document).unbind("keydown",Y);ak.stop(true,true);s=-1;i.add(P).add(ak).add(S).addClass(X)}function f(){Q(s-1)}function D(){Q(s+1)}function Q(aq){var ar=p.length;if(aq!=s&&(am.loop||aq>=0&&aq<ar)){s=(aq+ar)%ar;F(true);e()}}function h(){F(!I());e()}function R(){P.addClass(X);v(P,false);v(ak,true);i.addClass(X);var au=am.autofit;var at={};var ar={};var aq={};t(au&&I(),at,ar,aq);P.css(at);aj.attr("src",p.eq(s).attr("href"));W.toggleClass(aa,!au||!o||at.width==o.width&&I());ak.animate(M.extend(aq,ar),am.duration,am.easing,ai)}function Z(){window.location.href=am.download(p.eq(s))}function b(){P.children().slice(0,-1).toggleClass(X)}M.boxplus={change:Q,previous:f,next:D,refresh:R,configure:function(aq){return M.extend(O,aq)}};function n(aq){var ar=aq.attr("id");ar=ar?l+"-"+ar:l;M("li",aq).each(function(){M("a:first",this).attr("rel",ar)});return M("a[rel="+ar+"]",aq)}function e(){ak.stop(true,true);N.stop();i.addClass(X);v(P,true);k.empty();var ar=p.eq(s);var aq=ar.attr("href");if(aq){if(/^#/.test(aq)){k.append(M(aq).clone().children());r()}else{if(/\.(gif|jpe?g|png)(\?|$)/i.test(aq)){k.append(am.metadata(ar));M(o=new Image()).load(R).error(r).attr("src",aq)}else{M.ajax({url:aq,success:function(av,at,au){var aw=au.getResponseHeader("Content-Type");if(/^text\/(plain|html)/.test(aw)||!aw&&/\.(txt|html?)$/i.test(aq)){k.append(av)}r()},dataType:"html"})}}}else{k.append(ar.clone().children());r()}}function r(){o=null;R()}function ai(){N.css("left",-M("li",N).eq(s).position().left);ah();P.removeClass(X);var aq=am.loop;C.toggleClass(aa,!aq&&s==0);ao.toggleClass(aa,!aq&&s>=p.length-1);P.children().toggleClass(X,false);u.toggleClass(aa,!am.download(p.eq(s)));m.toggleClass(aa,!o||k.is(":empty"));k.addClass(X);o||b();v(ak,false);d(U);var ar={width:y(ak)+J("sideways",ak).trueWidth(),height:x(ak)+an(ak)};ak.animate(ar,am.duration,am.easing,function(){i.removeClass(X)})}function Y(aq){if(aq.target.tagName.toLowerCase()!="input"){var ar=M.inArray(aq.which,[27,37,39]);return ar>=0?[V,f,D][ar]():false}}function J(aq,ar){return M("."+l+"-"+aq,ar)}function ad(at,ar){var aq=parseInt(at.css(ar));return isNaN(aq)?at[ar]():aq}function y(aq){return ad(aq,"width")}function x(aq){return ad(aq,"height")}function an(aq){return J("caption",aq).trueHeight()+J("controls",aq).trueHeight()}function ah(){var ar=y(P)-y(N);var aq=N.position().left;A.toggleClass(X,aq>=0);ab.toggleClass(X,ar>0||aq<=ar)}function ag(){N.animate({left:0},-4*N.position().left,"linear",ah)}function L(){var at=y(P);var aq=y(N);var au=N.position().left;var ar=at-aq;if(aq+au<at){ah()}else{N.animate({left:ar},-4*(ar-au),"linear",ah)}}function w(){N.stop();ah()}function g(au,at){var ar=ac.width()/2;var av=ac.height()/2;var aq=Math.max;return{left:aq(0,ac.scrollLeft()+ar-au/2),top:aq(0,ac.scrollTop()+av-at/2)}}function t(ar,aq,ay,au){M.extend(aq,{width:o?o.width:al,height:o?o.height:B});d(J("caption",af));var av=J("sideways",af);var az=J("main",af);var aB=az.trueWidth()-y(az)+av.trueWidth();var aA=J("viewer",af.css("width",aq.width+aB)).css(aq);if(ar){var aD=ac.width();var at=af.outerWidth(true);if(at>aD){var ax=aD/at;aq.width*=ax;aq.height*=ax;aA.css(aq);af.css("width",aq.width+aB)}}var aC=af.outerHeight(true);if(ar){var aw=ac.height();while(aC>aw){ax=aw/aC;aq.width*=ax;aq.height*=ax;aA.css(aq);aC=af.css("width",aq.width+aB).outerHeight(true)}}ay.width=y(af)-av.trueWidth();ay.height=x(af)-an(af);M.extend(au,g(aq.width+aB,aC))}function I(){return E.hasClass(X)}function F(aq){J("enlarge",W).toggleClass(X,!aq);E.toggleClass(X,aq)}function d(aq){var ar=p.eq(s);var au=am.title(ar);var at=am.description(ar);J("title",aq).toggleClass(aa,!au).html(au);J("text",aq).toggleClass(aa,!at).html(at)}function v(at,ar){var aq=J("progress",at).toggleClass(X,!ar);window.clearInterval(aq.data(l));if(ar){aq.data(l,window.setInterval(function(){aq.css("background-position",G=(G-32)%384)},150))}}})(__jQuery__);
