(function(){/*
 boxplus: a versatile lightweight pop-up window engine for MooTools
 @author  Levente Hunyadi
 @version 0.9.3
 @remarks Copyright (C) 2009-2011 Levente Hunyadi
 @remarks Licensed under GNU/GPLv3, see http://www.gnu.org/licenses/gpl-3.0.html
 @see     http://hunyadi.info.hu/projects/boxplus
*/
var l=null;
(function(m){function q(a){var b={};a.length>1&&a.substr(1).split("&").each(function(a){var c=a.indexOf("=");b[unescape(c>=0?a.substr(0,c):a)]=unescape(c>=0?a.substr(c+1):"")});return b}function o(a){a.retrieve("boxplus-href")||(a.store("boxplus-href",a.get("href")),a.set("href","javascript:void(0);"))}function r(a){var b=a.retrieve("boxplus-href");b&&(a.set("href",b),a.eliminate("boxplus-href"))}$extend(Element.NativeEvents,{dragstart:2});var s=new Class({Implements:[Events,Options],options:{theme:!1,navigation:!0,
autocenter:!0,autofit:!0,duration:"long",transition:"sine",protection:!0,scrollspeed:200,scrollfactor:5,width:800,height:600},N:"",i:l,v:l,w:l,L:0,initialize:function(a){function b(a,b){var c=new Element("div",{"class":typeof a=="string"?"boxplus-"+a:a.map(function(a){return"boxplus-"+a}).join(" ")});b&&c.set(b);for(var d=2;d<arguments.length;d++)c.adopt(arguments[d]);return c}function e(a){return new Element("span",{"class":"boxplus-"+a})}function c(a,b,c){c||(c="click");d.h(a).addEvent(c,b.bind(d))}
this.setOptions(a);var d=this;d.z();a=b("thumbs",{},new Element("ul"),b("rewind"),b("forward"));var g=b("caption",{},b("title"),b("text")),f=b("controls",{},b("prev"),b("next"),b("start"),b(["stop","unavailable"]),b("close"),b("download"),b("metadata"));d.qa=b([],{id:"boxplus"},d.B=b(["background","hidden"]).addEvent("click",function(){d.close()}),d.c=b(["dialog","hidden"],{},b("progress"),b("sideways",{},a.clone(),f.clone(),g.clone()),b("title"),b("main",{},d.Z=b("center",{},d.C=b(["viewer","hidden"],
{},d.t=new Element("img"),b("prev"),b("next"),b("resizer",{},b("enlarge").addEvent("click",function(){d.Q()}),b(["shrink","unavailable"]).addEvent("click",function(){d.Q()})),d.Ea=a.clone(),d.q=new Element("iframe",{frameborder:0}),d.m=new Element("video",{autoplay:!0,controls:!0}),d.l=b("object"),d.e=b("content"),b("progress"))),b("bottom",{},a.clone(),f.clone(),g.clone())),b("lt"),b("t"),b("rt"),b("l"),b(["m","hidden"]),b("r"),b("lb"),b("b"),b("rb")),d.p=b(["dialog","hidden"],{},d.ja=b("sideways",
{},a.clone(),g.clone(),f.clone()),b("title"),b("main",{},d.Ga=b("center",{},d.D=b(["viewer","hidden"],{},d.ma=new Element("div"))),d.oa=b("bottom",{},a.clone(),g.clone(),f.clone()))),e("unknown-type"),e("not-found")).inject(document.body);d.u=function(a){return!d.options.protection||!d.C.getElements("*").contains(a.target)};d.U=function(a){if(!["input","textarea"].contains(m(a.target).get("tag"))&&(a=[37,39,36,35,13,27].indexOf(a.code),a>=(d.options.navigation?0:4)))return[d.ca,d.next,d.sa,d.va,d.Q,
d.close][a].bind(d)(),!1};var j;d.V=function(){window.clearTimeout(j);d.da||(j=window.setTimeout(function(){d.A.bind(d)()},10))};c("prev",d.ca);c("next",d.next);c("start",d.start);c("stop",d.stop);c("close",d.close);c("download",d.ra);c("metadata",d.Fa);c("rewind",d.Da,"mouseover");c("rewind",d.ka,"mouseout");c("rewind",d.Y,"mousedown");c("rewind",d.z,"mouseup");c("forward",d.Ca,"mouseover");c("forward",d.ka,"mouseout");c("forward",d.Y,"mousedown");c("forward",d.z,"mouseup");d.k()},F:function(a){return $splat(a).map(function(a){return a.replace(/\b([\w-]+)/g,
".boxplus-$1")}).join(", ")},T:function(a){return this.c.getElement(this.F(a))},h:function(a){return this.c.getElements(this.F(a))},G:function(a){return this.p.getElements(this.F(a))},o:function(a,b,e){this.h(a)[e?"addClass":"removeClass"](b)},M:function(a,b,e){this.G(a)[e?"addClass":"removeClass"](b)},b:function(a,b){this.o(a,"boxplus-unavailable",!b)},s:function(a,b){this.o(a,"boxplus-unavailable",!b);this.M(a,"boxplus-unavailable",!b)},ha:function(a,b){this.o(a,"boxplus-disabled",!b)},j:function(a,
b){this.o(a,"boxplus-disabled",!b);this.M(a,"boxplus-disabled",!b)},a:function(a,b){this.o(a,"boxplus-hidden",!b)},Ia:function(a,b){this.o(a,"boxplus-hidden",!b);this.M(a,"boxplus-hidden",!b)},S:function(a,b){for(var e in a)window[b?"addEvent":"removeEvent"](e,a[e])},d:function(a,b){this.fireEvent(a,b)},aa:function(a){return this.qa.getElement(".boxplus-"+a).get("html")},show:function(a){this.setOptions(a);(a=this.options.theme)&&$$("link[rel=stylesheet][title^=boxplus]").set("disabled",!0).filter('[title="boxplus-'+
a+'"]').set("disabled",!1);this.ha(["prev","next","start","stop"],this.options.navigation);this.a("bottom",!1);this.a("sideways",!1);this.O(this.c);$$([this.B,this.c]).removeClass("boxplus-hidden");this.B.fade("hide").fade("in");this.S({contextmenu:this.u,dragstart:this.u,keydown:this.U,resize:this.V},!0)},P:function(){this.S({contextmenu:this.u,dragstart:this.u,keydown:this.U,resize:this.V},!1);this.B.fade("out");$$([this.B,this.c]).addClass("boxplus-hidden")},close:function(){var a=this;a.k();a.A(function(){a.d("close")})},
sa:function(){this.d("first")},ca:function(){this.d("previous")},next:function(){this.d("next")},va:function(){this.d("last")},start:function(){this.d("start")},stop:function(){this.d("stop")},Q:function(){this.h("shrink").toggleClass("boxplus-unavailable");this.h("enlarge").toggleClass("boxplus-unavailable");this.X();this.A()},Da:function(){this.R(-1)},Ca:function(){this.R(1)},R:function(a){function b(){var b=!0,d=!0;g-=a*e.L;g<=f&&(g=f,b=!1);g>=0&&(g=0,d=!1);j===b||e.a("forward",j=b);i===d||e.a("rewind",
i=d);c.setStyle("left",g+"px")}var e=this,c=e.h("thumbs").getElement("ul"),d=e.Ea.getElement("ul"),g=d.getStyle("left").toInt();g=isNaN(g)?0:g;var f=e.C.getSize().x-d.getSize().x,j,i;e.a("forward",!0);e.a("rewind",!0);b();if(a)e.w=window.setInterval(b,10)},ka:function(){this.z();if(this.w)window.clearInterval(this.w),this.w=l},Y:function(){this.L=this.options.scrollspeed*10*this.options.scrollfactor/1E3},z:function(){this.L=this.options.scrollspeed*10/1E3},ra:function(){window.location.href=this.N},
ia:function(a){a=!a;this.a("resizer",a);this.a("thumbs",a);this.a("viewer prev",a);this.a("viewer next",a);var b=$$([this.t,this.m,this.l,this.q]);a?(b.removeClass("boxplus-hidden"),this.e.addClass("boxplus-hidden")):(b.addClass("boxplus-hidden"),this.e.removeClass("boxplus-hidden"))},Fa:function(){this.ia(!this.ua())},ua:function(){return!this.e.hasClass("boxplus-hidden")},za:function(a,b,e){this.k();if(a){this.i={width:a.width,height:a.height};this.t.set("src",m(a).get("src")).removeClass("boxplus-unavailable");
this.N=b;this.b("download",b);if(e){switch(typeof e){case "string":this.e.set("html",e);break;default:(e=m(e))&&this.e.adopt(e.clone())}this.e.removeClass("boxplus-unavailable")}this.b("metadata",e)}},fa:function(a){this.k();this.a("resizer",!1);this.a("thumbs",!1);this.a("viewer prev",!1);this.a("viewer next",!1);this.e.adopt(a.clone()).removeClass("boxplus-unavailable").removeClass("boxplus-hidden");this.i={width:this.options.width,height:this.options.height}},ga:function(a){a=q(a.search);this.i=
a={width:a.width?a.width.toInt():this.options.width,height:a.height?a.height.toInt():this.options.height}},Aa:function(a){this.k();this.ga(a);var b=this.i,e=a.href,c=a.pathname;if(/\.(ogg|webM)$/i.test(c))this.m.set(b).set("src",e).setStyles(b).removeClass("boxplus-unavailable");else if(this.l.setStyles(b).removeClass("boxplus-unavailable"),/\.(pdf|mov)$/i.test(c)){var d,g;a={src:e};/\.pdf$/i.test(c)?(d="CA8A9780-280D-11CF-A24D-444553540000",g="application/pdf"):/\.mov$/i.test(c)?(d="02BF25D5-8C17-4B23-BC80-D3488ABDDC6B",
g="video/quicktime"):/\.mpe?g/i.test(c)&&(d="22d6f312-b0f6-11d0-94ab-0080c74c7e95",g="video/mpeg");c=function(a){var b="",c;for(c in a)b+=" "+c+'="'+a[c]+'"';return b};this.l.set("html","<object"+c($merge({classid:"clsid:"+d},b))+">"+function(a){var b="",c;for(c in a)b+='<param name="'+c+'" value="'+a[c]+'" />';return b}(a)+"<\!--[if lt IE 9]><\!--\><object"+c($merge({type:g,data:e},b))+">"+f.aa("unknown-type").replace("%s",g)+"</object><\!--<![endif]--\></object>")}else new Swiff(e,$merge({container:this.l,
params:{allowFullScreen:!0}},b))},ya:function(a){this.k();this.ga(a);this.q.set("src",a.href).setStyles(this.i).removeClass("boxplus-unavailable")},k:function(){$$([this.e,this.t,this.m,this.l,this.q]).addClass("boxplus-unavailable");this.e.empty();this.t.erase("src");!this.m.pause||this.m.pause();this.m.erase("src");this.l.empty();this.q.set("src","about:blank").erase("src");this.C.setStyles(this.i={width:150,height:150});this.N="";this.b("download",!1);this.b("metadata",!1);this.ea()},ea:function(a,
b){this.h("title").set("html",a);this.h("text").set("html",b);this.G("title").set("html",a);this.G("text").set("html",b);this.s("title",a);this.s("text",b);this.s("caption",a||b)},xa:function(a){this.j("bottom",!1);this.j("sideways",!1);switch(a){case "bottom":this.j("bottom",!0);break;case "sideways":this.j("sideways",!0)}},Ba:function(a){this.j("thumbs",!1);switch(a){case "inside":this.j("viewer thumbs",!0);break;case "outside":this.j("bottom thumbs",!0),this.j("sideways thumbs",!0)}},na:function(a){var b=
this;b.h("thumbs").each(function(e){a.each(function(a){(new Element("li")).adopt(a.clone().addEvent("click",function(){var a=m(this).getParent();b.d("change",a.getParent().getChildren().indexOf(a))})).inject(e.getElement("ul"))})});b.b("thumbs",a.length>1)},pa:function(){this.h("thumbs").each(function(a){a.getElement("ul").empty()})},ba:function(){return this.m.get("src")||this.l.getChildren().length?!1:this.T("shrink").hasClass("boxplus-unavailable")},ta:function(a){var b=window.getSize(),e=a.getSize();
a=(0).max((b.x-e.x)/2);b=(0).max((b.y-e.y)/2);this.c.getStyle("position")!="fixed"&&(e=window.getScroll(),a+=e.x,b+=e.y);return{x:a,y:b}},O:function(a){a.setPosition(this.ta(a))},wa:function(){this.O(this.p);this.c.set("morph",{duration:this.options.duration,link:"cancel"}).morph(this.p.getStyles(["left","top"]))},X:function(){var a=this.options.autocenter&&this.ba(),b=a?"fixed":"absolute",e=this.c.getStyle("position"),c=this.c.getPosition(),d=c.x;c=c.y;e!=b&&(e=window.getScroll(),a?(d-=e.x,c-=e.y):
(d+=e.x,c+=e.y));this.c.setStyle("position",b);this.c.setPosition({x:d,y:c})},A:function(a){function b(a,b){c.D.setStyles({width:a,height:b});return c.p.getSize()}function e(){return c.p.getStyles(["left","top","width","height"])}var c=this;c.da=!0;c.a("bottom",!1);c.a("sideways",!1);c.a("viewer",!1);var d=!c.t.get("src")&&!c.m.get("src")&&!c.l.getChildren().length&&!c.q.get("src");c.ia(d);c.a("thumbs",c.T("thumbs").getChildren().length>1);var g=c.i.width,f=c.i.height;c.D.setStyle("margin-right",
c.ja.getSize().x);var j=window.getSize();if(d){d=b(g,"auto");c.ma.empty();var i=c.e.getChildren();i.length&&c.ma.adopt(i);f=c.D.getSize().y;d=b(g,f);d=b(Math.min(j.x,d.x)-(d.x-g),Math.min(j.y,d.y)-(d.y-f));i.length&&c.e.adopt(i)}else{d=b(g,f);if((i=c.options.autofit&&(j.x<d.x||j.y<d.y))&&c.ba()){var h;if((h=j.x/d.x)<1)g*=h,f*=h,d=b(g,f);for(;(h=j.y/d.y)<1;)g*=h,f*=h,d=b(g,f)}c.b("resizer",i)}c.X();c.O(c.p);c.s("bottom",!1);c.s("sideways",!1);c.Z.setStyle("height","100%");g=e();var p={duration:c.options.duration,
link:"cancel",transition:c.options.transition};(new Fx.Morph(c.c,$merge(p,{onComplete:function(){c.Z.setStyle("height","auto");var b=c.D.getStyles(["width","height"]);c.q.setStyles(b);c.C.setStyles(b);c.e.scrollTo(0,0);c.a("viewer",!0);c.R(0);a&&a();(new Fx.Morph(c.c,$merge(p,{onComplete:function(){c.b("bottom",!0);c.b("sideways",!0);c.a("bottom",!0);c.a("sideways",!0);c.da=!1;c.wa()}}))).start(e())}}))).start(g);c.oa.removeClass("boxplus-unavailable");c.ja.removeClass("boxplus-unavailable")},la:function(a){var b=
this.h("progress");this.v&&window.clearInterval(this.v);if(b.length&&a){var e=b[0].getStyle("background-position"),c=e?e.toInt():0;this.v=window.setInterval(function(){b.setStyle("background-position",(c=(c-32)%384)+"px 0")},150)}else this.v=l;this.a("progress",a)}}),f;window.addEvent("domready",function(){f=new s});var n=new Class({Implements:[Events,Options],f:-1,g:$$([]),n:l,K:function(a){var b=a.getElement("img");return a.retrieve("title")||(b?b.getProperty("alt"):"")},J:function(a){return a.retrieve("summary")||
a.getProperty("title")},H:function(a){return a.retrieve("download")},I:function(){},options:{theme:!1,navigation:!0,autocenter:!0,autofit:!0,slideshow:0,autostart:!1,duration:"short",transition:"sine",loop:!1,contextmenu:!0,captions:"bottom",thumbs:"inside",cloak:!1},initialize:function(a,b){var e=this,c,d=a.get("tag");if(a.each)if(d.every(function(a){return a=="a"}))c=a,e.f=0;else return;else if(d=="a"){if(n.extenders.each(function(b){c=b.bind(e)(a)}),!c)d=a.get("rel"),c=$$(d&&d.test(/^boxplus\b(?!$)/)?
'a[rel="'+d+'"]':a),e.f=c.indexOf(a)}else if(/^[udo]l$/.test(d))c=$$(a.getChildren("li,dt").map(function(a){return a.getElement("a")}).filter(function(a){return a})),e.f=c.length>0?0:-1;else{e.Ha(a.getElement("ul,ol,dl"),b);return}e.setOptions(b);if(b)e.K=$pick(b.getTitle,e.K),e.J=$pick(b.getText,e.J),e.H=$pick(b.getDownloadUrl,e.H),e.I=$pick(b.getMetadata,e.I);c.addEvent("click",function(){e.show(this);return!1});e.options.cloak&&c.each(o);e.g=c},show:function(a){var b=this;if(a)b.f=(0).max(b.g.get("href").indexOf(a.get("href")));
f.P();f.la(!0);f.xa(b.options.captions);f.Ba(b.options.thumbs);f.na($$(b.g.map(function(a){if(a=$pick(a.retrieve("thumb"),a.getElement("img"))){var b=a.get("data-thumb");return new Element("img",{src:b?b:a.get("src")})}else return l})));a=["previous","next","first","last","start","stop","change","close"];var e=a.map(function(a){return b[a].bind(b)});b.$=e.associate(a);f.addEvents(b.$);f.show(b.options);a=b.options.slideshow&&b.g.length>1;f.ha("start",a);b.W(b.f);a&&b.options.autostart&&b.start();
b.d("open")},close:function(){f.k();f.removeEvents(this.$);f.P();f.pa();this.d("close")},previous:function(){this.r(this.f-1)},next:function(){this.r(this.f+1)},first:function(){this.r(0)},last:function(){this.r(this.g.length-1)},change:function(a){this.r(a)},start:function(){if(!this.n)this.n=setTimeout(this.next.bind(this),this.options.slideshow);f.b("start",!1);f.b("stop",!0)},stop:function(){if(this.n)clearTimeout(this.n),this.n=l;f.b("stop",!1);f.b("start",!0)},r:function(a){if(a!=this.f&&(this.options.loop||
a>=0&&a<this.g.length))this.W(a),this.d("change")},d:function(a,b){this.fireEvent(a,b)},W:function(a){function b(){f.A(function(){f.la(!1);g||j||d.start()})}function e(a){f.ea(d.K(a),d.J(a))}function c(a,c){f.za(c,d.H(a),d.I(a));e(a);b()}var d=this,g=!d.n;d.stop();f.k();var k=d.g.length,j=a>=k-1;f.a("viewer",!1);f.b("start",!j);var i=d.options.loop;f.b("prev",i&&k>1||a>0);f.b("next",i&&k>1||!j);if(k>0){d.f=(a+k)%k;var h=d.g[d.f];r(h);a=h.get("href");k=h.href;i=h.pathname;if(/^#/.test(a))switch(a=
m(a.substr(1)),a.get("tag")){case "img":c(h,a);break;default:f.fa(a),b()}else/\.(txt|html?)$/i.test(i)&&h.host==window.location.host?(new Request.HTML({url:k,onSuccess:function(a){a=$$(a);f.fa(a);b()},onFailure:function(){alert(f.aa("not-found"));f.P()}})).get():/\.(gif|jpe?g|png)$/i.test(i)?m(new Image).addEvent("load",function(){c(h,this)}).set("src",k):/\.(pdf|mov|mpe?g|ogg|swf|webM|wmv)$/i.test(i)||/(viddler|vimeo|youtube)\.com$/.test(h.hostname)?(f.Aa(h),e(h),b()):h.protocol!="javascript:"&&
(f.ya(h),e(h),b());d.options.cloak&&o(h)}}});$extend(window.boxplus=n,{extenders:[function(a){var b=this,e;if(Request.JSONP&&(e=a.href.match(/https?:\/\/picasaweb.google.com\/data\/feed\/(?:api|base)\/user\/([^\/?#]+)\/albumid\/([^\/?#]+)/)))return(new Request.JSONP({url:"http://picasaweb.google.com/data/feed/api/user/"+e[1]+"/albumid/"+e[2],data:{alt:"json",imgmax:800,kind:"photo",thumbsize:"64u"},onComplete:function(a){b.g=$$([]);a.feed.entry.each(function(a){var c=a.media$group.media$thumbnail[0];
b.g.include((new Element("a",{href:a.content.src,title:a.summary.$t})).adopt(new Element("img",{width:c.width,height:c.height,alt:a.title.$t,src:c.url})))});b.f=0}})).send(),$$(a)}],autodiscover:function(a,b){window.addEvent("domready",function(){var e=[];$$("a[rel^=boxplus]:not([rel=boxplus])").each(function(a){e.include(a.get("rel"))});e.each(function(a){new n($$('a[rel="'+a+'"]'),b)});$$("a[rel=boxplus]").each(function(a){new n(a,b)});a||$$("a[href]:not([rel^=boxplus])").filter(function(a){return/\.(gif|jpe?g|png|swf)$/i.test(a.pathname)&&
!/_(blank|parent|self|top)/.test(a.get("target"))}).each(function(a){new n(a,b)})})}})})(document.id);})();

