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