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