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