/*
* @file
* @brief    boxplus: a lightweight pop-up window engine shipped with sigplus
* @author   Levente Hunyadi
* @version  1.2.8
* @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
*/
(function(E){var Z={autofit:true,duration:"slow",easing:"swing",loop:false};var J;var Y;var V;var u;var m;var H;var A;var c;var x;var ab;var N;var v;var F;var e;var G;var L;var i;var S=E(window);var l;var n;var I;var Q;var B=-1;var k="boxplus";var O=k+"-hide";var K=k+"-disable";E.fn.trueWidth=function(){return this.filter(":visible").size()?this.outerWidth(true):0};E.fn.trueHeight=function(){return this.filter(":visible").size()?this.outerHeight(true):0};E(function(){function ac(ah,ai){return"<div"+(ah?' class="'+k+"-"+ah+'"':"")+">"+(ai?ai:"")+"</div>"}var ad=ac("prev")+ac("next");var ag=ac("caption",ac("title")+ac("text"));var af=ac("controls",ad+ac("close"));var ae=E('<div id="'+k+'">'+ac("background "+O)+ac("dialog "+O,ac("main",ac("viewer "+O,"<img />"+ad+ac("resizer",ac("enlarge")+ac("shrink "+O))+ac("thumbs","<ul />"+ac("rewind")+ac("forward"))+ac("progress"))+ac("bottom",ag+af))+ac("sideways "+K,af+ag)+ac("lt")+ac("t")+ac("rt")+ac("l")+ac("m")+ac("r")+ac("lb")+ac("b")+ac("rb"))+"</div>").appendTo("body");J=C("background",ae).click(M);Y=C("dialog",ae);L=C("caption",Y);i=C("bottom",Y).add(C("sideways",Y));H=C("viewer",Y);N=C("resizer",H).click(h);v=C("shrink",N);ab=C("progress",H);e=C("rewind",H).hover(W,q);G=C("forward",H).hover(D,q);F=E("ul",H);A=C("prev",Y).click(t);c=C("next",Y).click(R);x=C("close",Y).click(M);u=s(Y);m=r(Y);V=Y.clone().appendTo(ae)});E.fn.boxplus=function(ad,ac){E(this).each(function(){E(this).click(function(ae){y(ae.currentTarget,ad,ac);return false})})};E.fn.boxplusGallery=function(ad,ac){var ae=E(this).attr("id");ae=ae?k+"-"+ae:k;E("li",this).each(function(){E("a:first",this).attr("rel",ae).boxplus(ad,ac)})};E.boxplus=function(ac){E.extend(Z,ac)};function U(ac){return E(ac).attr("title")}function b(ac){var ad=E("img:first",ac);return ad.size()?ad.attr("alt"):""}function y(ae,af,ad){if(!E.isFunction(af)){af=U}if(!E.isFunction(ad)){ad=b}J.removeClass(O);Y.css({width:u,height:m}).css(g(u,m)).removeClass(O);E(document).bind("keydown",P);var ac=E(ae).attr("rel");var ag=ac?E('a[rel="'+ac+'"]'):E(ae);n=E.map(ag,function(ah){return E(ah).attr("href")});I=E.map(ag,ad);Q=E.map(ag,af);F.empty();ag.each(function(ah){var ai=E("img:first",this);E("<li />").append((ai.size()?E('<img src="'+ai.attr("src")+'" />'):E()).click(function(){a(ah)})).appendTo(F)});C("thumbs",H).css("height",F.trueHeight());a(E.inArray(E(ae).attr("href"),n))}function M(){E(document).unbind("keydown",P);Y.stop(true,true);B=-1;i.add(H).add(Y).add(J).addClass(O)}function t(){a(B-1)}function R(){a(B+1)}function a(ac){var ad=n.length;if(ac!=B&&(Z.loop||ac>=0&&ac<ad)){B=(ac+ad)%ad;w(true);f()}}function h(){w(!z());f()}function f(){Y.stop(true,true);F.stop();i.add(A).add(c).addClass(O);ab.removeClass(O);l=new Image();l.onload=j;l.src=n[B]}function j(){H.addClass(O);var af=Z.autofit;var ae={};var ad={};var ac={};p(af&&z(),ae,ad,ac);H.css(ae);E("img:first",H).attr("src",n[B]);N.toggleClass(O,!af||ae.width==l.width&&z());Y.animate(E.extend(ac,ad),Z.duration,Z.easing,o)}function o(){F.css("left",-E("li",F).eq(B).position().left);X();H.removeClass(O);x.removeClass(O);var ac=Z.loop;A.toggleClass(O,!ac&&B==0);c.toggleClass(O,!ac&&B>=n.length-1);ab.addClass(O);d(L);var ad={width:s(Y)+C("sideways",Y).trueWidth(),height:r(Y)+aa(Y)};Y.animate(ad,Z.duration,Z.easing,function(){i.removeClass(O)})}function P(ac){var ad=E.inArray(ac.which,[27,37,39]);return ad>=0?[M,t,R][ad]():false}function C(ac,ad){return E("."+k+"-"+ac,ad)}function T(ae,ad){var ac=parseInt(ae.css(ad));return isNaN(ac)?ae[ad]():ac}function s(ac){return T(ac,"width")}function r(ac){return T(ac,"height")}function aa(ac){return C("caption",ac).trueHeight()+C("controls",ac).trueHeight()}function X(){var ad=s(H)-s(F);var ac=F.position().left;e.toggleClass(O,ac>=0);G.toggleClass(O,ad>0||ac<=ad)}function W(){F.animate({left:0},-4*F.position().left,"linear",X)}function D(){var ae=s(H);var ac=s(F);var af=F.position().left;var ad=ae-ac;if(ac+af<ae){X()}else{F.animate({left:ad},-4*(ad-af),"linear",X)}}function q(){F.stop();X()}function g(af,ae){var ad=S.width()/2;var ag=S.height()/2;var ac=Math.max;return{left:ac(0,S.scrollLeft()+ad-af/2),top:ac(0,S.scrollTop()+ag-ae/2)}}function p(ad,ac,aj,af){E.extend(ac,{width:l.width,height:l.height});d(C("caption",V));var ag=C("sideways",V);var ak=C("main",V);var am=ak.trueWidth()-s(ak)+ag.trueWidth();var al=C("viewer",V.css("width",ac.width+am)).css(ac);if(ad){var ao=S.width();var ae=V.outerWidth(true);if(ae>ao){var ai=ao/ae;ac.width*=ai;ac.height*=ai;al.css(ac);V.css("width",ac.width+am)}}var an=V.outerHeight(true);if(ad){var ah=S.height();while(an>ah){ai=ah/an;ac.width*=ai;ac.height*=ai;al.css(ac);an=V.css("width",ac.width+am).outerHeight(true)}}aj.width=s(V)-ag.trueWidth();aj.height=r(V)-aa(V);E.extend(af,g(ac.width+am,an))}function z(){return v.hasClass(O)}function w(ac){C("enlarge",N).toggleClass(O,!ac);v.toggleClass(O,ac)}function d(ac){var ae=I[B];var ad=Q[B];C("title",ac).toggleClass(K,!ae).html(ae);C("text",ac).toggleClass(K,!ad).html(ad)}})(jQuery);
