(function(f){var c,i=this,n=document,e=f(n);var m=false,j=navigator.userAgent.toLowerCase(),d=i.location.hash.replace(/#\//,""),k=function(){return Galleria.TOUCH?"touchstart":"click"},h=(function(){var p=3,q=n.createElement("div");while(q.innerHTML="<!--[if gt IE "+(++p)+"]><i></i><![endif]-->",q.getElementsByTagName("i")[0]){}return p>4?p:c}()),o=function(){return{html:n.documentElement,body:n.body,head:n.getElementsByTagName("head")[0],title:n.title}},b={trunk:{},add:function(t,s,r,q){q=q||false;this.clear(t);if(q){var p=s;s=function(){p();b.add(t,s,r)}}this.trunk[t]=i.setTimeout(s,r)},clear:function(r){var p=function(s){i.clearTimeout(this.trunk[s]);delete this.trunk[s]};if(!!r&&r in this.trunk){p.call(b,r)}else{if(typeof r=="undefined"){for(var q in this.trunk){p.call(b,q)}}}}},a=[],l={fade:function(q,p){f(q.next).css("opacity",0).show().animate({opacity:1},q.speed,p);if(q.prev){f(q.prev).css("opacity",1).show().animate({opacity:0},q.speed)}},flash:function(q,p){f(q.next).css("opacity",0);if(q.prev){f(q.prev).animate({opacity:0},(q.speed/2),function(){f(q.next).animate({opacity:1},q.speed,p)})}else{f(q.next).animate({opacity:1},q.speed,p)}},pulse:function(q,p){if(q.prev){f(q.prev).hide()}f(q.next).css("opacity",0).animate({opacity:1},q.speed,p)},slide:function(v,r){var u=f(v.next).parent(),q=this.$("images"),s=this._stageWidth,t=v.speed,p=this._active,w=this.getOptions("easing");if(p>0){f("#youtube_video").hide(0);q.show(0)}else{q.hide()}u.css({left:s*(v.rewind?-1:1)});q.animate({left:s*(v.rewind?1:-1)},{duration:t,queue:false,easing:w,complete:function(){q.css("left",0);u.css("left",0);if(p==0){f("#youtube_video").show(0)}r()}})},fadeslide:function(r,q){var p=0,t=this.getOptions("easing"),s=this.getStageWidth();if(r.prev){p=g.parseValue(f(r.prev).css("left"));f(r.prev).css({opacity:1,left:p}).animate({opacity:0,left:p+(s*(r.rewind?1:-1))},{duration:r.speed,queue:false,easing:t})}p=g.parseValue(f(r.next).css("left"));f(r.next).css({left:p+(s*(r.rewind?-1:1)),opacity:0}).animate({opacity:1,left:p},{duration:r.speed,complete:q,queue:false,easing:t})}},g=(function(){return{array:function(p){return Array.prototype.slice.call(p)},create:function(p,r){r=r||"div";var q=n.createElement(r);q.className=p;return q},forceStyles:function(q,p){q=f(q);if(q.attr("style")){q.data("styles",q.attr("style")).removeAttr("style")}q.css(p)},revertStyles:function(){f.each(g.array(arguments),function(p,q){q=f(q).removeAttr("style");if(q.data("styles")){q.attr("style",q.data("styles")).data("styles",null)}})},moveOut:function(p){g.forceStyles(p,{position:"absolute",left:-10000})},moveIn:function(){g.revertStyles.apply(g,g.array(arguments))},hide:function(q,r,s){q=f(q);if(!q.data("opacity")){q.data("opacity",q.css("opacity"))}var p={opacity:0};if(r){q.stop().animate(p,r,s)}else{q.css(p)}},show:function(r,s,t){r=f(r);var q=parseFloat(r.data("opacity"))||1,p={opacity:q};if(q==1){r.data("opacity",null)}if(s){r.stop().animate(p,s,t)}else{r.css(p)}},addTimer:function(){b.add.apply(b,g.array(arguments));return this},clearTimer:function(){b.clear.apply(b,g.array(arguments));return this},wait:function(r){r=f.extend({until:function(){return false},success:function(){},error:function(){Galleria.raise("Could not complete wait function.")},timeout:3000},r);var s=g.timestamp(),p,q;i.setTimeout(function(){q=g.timestamp();p=q-s;if(r.until(p)){r.success();return false}if(q>=s+r.timeout){r.error();return false}i.setTimeout(arguments.callee,2)},2)},toggleQuality:function(p,q){if(!(h==7||h==8)||!!p===false){return}if(typeof q==="undefined"){q=p.style.msInterpolationMode=="nearest-neighbor"}p.style.msInterpolationMode=q?"bicubic":"nearest-neighbor"},insertStyleTag:function(r){var q=n.createElement("style");o().head.appendChild(q);if(q.styleSheet){q.styleSheet.cssText=r}else{var p=n.createTextNode(r);q.appendChild(p)}},loadScript:function(r,u){var p=false,q=f("<script>").attr({src:r,async:true}).get(0);q.onload=q.onreadystatechange=function(){if(!p&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){p=true;if(typeof u=="function"){u.call(this,this)}q.onload=q.onreadystatechange=null}};var t=n.getElementsByTagName("script")[0];t.parentNode.insertBefore(q,t)},parseValue:function(q){if(typeof q=="number"){return q}else{if(typeof q=="string"){var p=q.match(/\-?\d/g);return p&&p.constructor==Array?p.join("")*1:0}else{return 0}}},timestamp:function(){return new Date().getTime()},loadCSS:function(p,u,t){var s,q=false,r;f("link[rel=stylesheet]").each(function(){if(new RegExp(p).test(this.href)){s=this;return false}});if(typeof u=="function"){t=u;u=c}t=t||function(){};if(s){t.call(s,s);return s}r=n.styleSheets.length;if(m){p+="?"+g.timestamp()}if(f("#"+u).length){f("#"+u).attr("href",p);r--;q=true}else{s=f("<link>").attr({rel:"stylesheet",href:p,id:u}).get(0);i.setTimeout(function(){var v=f('link[rel="stylesheet"], style');if(v.length){v.get(0).parentNode.insertBefore(s,v[0])}else{o().head.appendChild(s)}if(h){s.attachEvent("onreadystatechange",function(w){if(s.readyState=="complete"){q=true}})}else{q=true}},10)}if(typeof t=="function"){g.wait({until:function(){return q&&n.styleSheets.length>r},success:function(){g.addTimer("css",function(){t.call(s,s)},100)},error:function(){Galleria.raise("Theme CSS could not load")},timeout:1000})}return s}}})();Galleria=function(){var x=this;this._theme=c;this._options={};this._playing=false;this._playtime=5000;this._active=null;this._queue={length:0};this._data=[];this._dom={};this._thumbnails=[];this._initialized=false;this._stageWidth=0;this._stageHeight=0;this._target=c;this._id=g.timestamp();var t="container stage images image-nav image-nav-left image-nav-right info info-text info-title info-description info-author thumbnails thumbnails-list thumbnails-container thumb-nav-left thumb-nav-right loader counter tooltip",s="current total";f.each(t.split(" "),function(z,A){x._dom[A]=g.create("galleria-"+A)});f.each(s.split(" "),function(z,A){x._dom[A]=g.create("galleria-"+A,"span")});var r=this._keyboard={keys:{UP:38,DOWN:40,LEFT:37,RIGHT:39,RETURN:13,ESCAPE:27,BACKSPACE:8,SPACE:32},map:{},bound:false,press:function(A){var z=A.keyCode||A.which;if(z in r.map&&typeof r.map[z]=="function"){r.map[z].call(x,A)}},attach:function(B){for(var A in B){var z=A.toUpperCase();if(z in r.keys){r.map[r.keys[z]]=B[A]}}if(!r.bound){r.bound=true;e.bind("keydown",r.press)}},detach:function(){r.bound=false;e.unbind("keydown",r.press)}};var v=this._controls={0:c,1:c,active:0,swap:function(){v.active=v.active?0:1},getActive:function(){return v[v.active]},getNext:function(){return v[1-v.active]}};var w=this._carousel={next:x.$("thumb-nav-right"),prev:x.$("thumb-nav-left"),width:0,current:0,max:0,hooks:[],update:function(){var A=0,B=0,z=[0];f.each(x._thumbnails,function(D,C){if(C.ready){A+=C.outerWidth||f(C.container).outerWidth(true);z[D+1]=A;B=Math.max(B,C.outerHeight||f(C.container).outerHeight(true))}});x.$("thumbnails-container").toggleClass("galleria-carousel",A>x._stageWidth);x.$("thumbnails").css({width:A,height:B});w.max=A;w.hooks=z;w.width=x.$("thumbnails-list").width();w.setClasses()},bindControls:function(){w.next.bind(k(),function(A){A.preventDefault();if(x._options.carousel_steps=="auto"){for(var z=w.current;z<w.hooks.length;z++){if(w.hooks[z]-w.hooks[w.current]>w.width){w.set(z-2);break}}}else{w.set(w.current+x._options.carousel_steps)}});w.prev.bind(k(),function(A){A.preventDefault();if(x._options.carousel_steps=="auto"){for(var z=w.current;z>=0;z--){if(w.hooks[w.current]-w.hooks[z]>w.width){w.set(z+2);break}else{if(z==0){w.set(0);break}}}}else{w.set(w.current-x._options.carousel_steps)}})},set:function(z){z=Math.max(z,0);while(w.hooks[z-1]+w.width>w.max&&z>=0){z--}w.current=z;w.animate()},getLast:function(z){return(z||w.current)-1},follow:function(z){if(z==0||z==w.hooks.length-2){w.set(z);return}var A=w.current;while(w.hooks[A]-w.hooks[w.current]<w.width&&A<=w.hooks.length){A++}if(z-1<w.current){w.set(z-1)}else{if(z+2>A){w.set(z-A+w.current+2)}}},setClasses:function(){w.prev.toggleClass("disabled",!w.current);w.next.toggleClass("disabled",w.hooks[w.current]+w.width>w.max)},animate:function(A){w.setClasses();var z=w.hooks[w.current]*-1;if(isNaN(z)){return}x.$("thumbnails").animate({left:z},{duration:x._options.carousel_speed,easing:x._options.easing,queue:false})}};var y=this._tooltip={initialized:false,active:null,open:false,init:function(){y.initialized=true;var z=".galleria-tooltip{padding:3px 8px;max-width:50%;background:#ffe;color:#000;z-index:3;position:absolute;font-size:11px;line-height:1.3opacity:0;box-shadow:0 0 2px rgba(0,0,0,.4);-moz-box-shadow:0 0 2px rgba(0,0,0,.4);-webkit-box-shadow:0 0 2px rgba(0,0,0,.4);}";g.insertStyleTag(z);x.$("tooltip").css("opacity",0.8);g.hide(x.get("tooltip"))},move:function(G){var F=x.getMousePosition(G).x,E=x.getMousePosition(G).y,C=x.$("tooltip"),I=F,H=E,J=C.outerHeight(true)+1,B=C.outerWidth(true),D=J+15;var A=x._stageWidth-B,z=x._stageHeight-J;if(!isNaN(I)&&!isNaN(H)){I+=15;H-=35;I=Math.max(0,Math.min(A,I));H=Math.max(0,Math.min(z,H));if(E<D){H=D}C.css({left:I,top:H})}},bind:function(A,B){if(!y.initialized){y.init()}var z=function(C,D){y.define(C,D);f(C).hover(function(){y.active=C;g.clearTimer("switch_tooltip");x.$("container").unbind("mousemove",y.move).bind("mousemove",y.move).trigger("mousemove");y.show(C);Galleria.utils.addTimer("tooltip",function(){x.$("tooltip").stop();g.show(x.get("tooltip"),400);y.open=true},y.open?0:1000)},function(){y.active=null;x.$("container").unbind("mousemove",y.move);g.clearTimer("tooltip");g.hide(x.get("tooltip"),200,function(){g.addTimer("switch_tooltip",function(){y.open=false},1000)})})};if(typeof B=="string"){z((A in x._dom?x.get(A):A),B)}else{f.each(A,function(C,D){z(x.get(C),D)})}},show:function(z){var A=f(z).data("tt");if(!A){return}A=typeof A=="function"?A():A;x.$("tooltip").html(A.replace(/\s/,"&nbsp;"))},define:function(A,B){if(typeof B!=="function"){var z=B;B=function(){return z}}if(A in x._dom){A=x.get(A)}f(A).data("tt",B);y.show(A)},refresh:function(){f.each(arguments,function(z,A){if(y.active==A){y.show(A)}})}};var u=this._fullscreen={scrolled:0,enter:function(A){g.hide(x.getActiveImage());x.$("container").addClass("fullscreen");u.scrolled=f(i).scrollTop();g.forceStyles(x.get("container"),{position:"fixed",top:0,left:0,width:"100%",height:"100%",zIndex:10000});var z={height:"100%",overflow:"hidden",margin:0,padding:0};g.forceStyles(o().html,z);g.forceStyles(o().body,z);x.attachKeyboard({escape:x.exitFullscreen,right:x.next,left:x.prev});x.rescale(function(){g.addTimer("fullscreen_enter",function(){g.show(x.getActiveImage());if(typeof A=="function"){A.call(x)}},100);x.trigger(Galleria.FULLSCREEN_ENTER)});f(i).resize(function(){u.scale()})},scale:function(){x.rescale()},exit:function(z){g.hide(x.getActiveImage());x.$("container").removeClass("fullscreen");g.revertStyles(x.get("container"),o().html,o().body);i.scrollTo(0,u.scrolled);x.detachKeyboard();x.rescale(function(){g.addTimer("fullscreen_exit",function(){g.show(x.getActiveImage());if(typeof z=="function"){z.call(x)}},50);x.trigger(Galleria.FULLSCREEN_EXIT)});f(i).unbind("resize",u.scale)}};var q=this._idle={trunk:[],bound:false,add:function(A,C){if(!A){return}if(!q.bound){q.addEvent()}A=f(A);var B={};for(var z in C){B[z]=A.css(z)}A.data("idle",{from:B,to:C,complete:true,busy:false});q.addTimer();q.trunk.push(A)},remove:function(z){z=jQuery(z);f.each(q.trunk,function(A,B){if(B.length&&!B.not(z).length){x._idle.show(z);x._idle.trunk.splice(A,1)}});if(!q.trunk.length){q.removeEvent();g.clearTimer("idle")}},addEvent:function(){q.bound=true;x.$("container").bind("mousemove click",q.showAll)},removeEvent:function(){q.bound=false;x.$("container").unbind("mousemove click",q.showAll)},addTimer:function(){g.addTimer("idle",function(){x._idle.hide()},x._options.idle_time)},hide:function(){x.trigger(Galleria.IDLE_ENTER);f.each(q.trunk,function(z,A){var B=A.data("idle");if(!B){return}A.data("idle").complete=false;A.stop().animate(B.to,{duration:600,queue:false,easing:"swing"})})},showAll:function(){g.clearTimer("idle");f.each(x._idle.trunk,function(z,A){x._idle.show(A)})},show:function(z){var A=z.data("idle");if(!A.busy&&!A.complete){A.busy=true;x.trigger(Galleria.IDLE_EXIT);g.clearTimer("idle");z.stop().animate(A.from,{duration:300,queue:false,easing:"swing",complete:function(){f(this).data("idle").busy=false;f(this).data("idle").complete=true}})}q.addTimer()}};var p=this._lightbox={width:0,height:0,initialized:false,active:null,image:null,elems:{},init:function(){x.trigger(Galleria.LIGHTBOX_OPEN);if(p.initialized){return}p.initialized=true;var z="overlay box content shadow title info close prevholder prev nextholder next counter image",C={},E=x._options,A="",D={overlay:"position:fixed;display:none;opacity:"+E.overlay_opacity+";top:0;left:0;width:100%;height:100%;background:"+E.overlay_background+";z-index:99990",box:"position:fixed;display:none;width:400px;height:400px;top:50%;left:50%;margin-top:-200px;margin-left:-200px;z-index:99991",shadow:"position:absolute;background:#000;width:100%;height:100%;",content:"position:absolute;background-color:#fff;top:10px;left:10px;right:10px;bottom:10px;overflow:hidden",info:"position:absolute;bottom:10px;left:10px;right:10px;color:#444;font:11px/13px arial,sans-serif;height:13px",close:"position:absolute;top:10px;right:10px;height:20px;width:20px;background:#fff;text-align:center;cursor:pointer;color:#444;font:16px/22px arial,sans-serif;z-index:99999",image:"position:absolute;top:10px;left:10px;right:10px;bottom:30px;overflow:hidden",prevholder:"position:absolute;width:50%;height:100%;cursor:pointer",nextholder:"position:absolute;width:50%;height:100%;right:0;cursor:pointer",prev:"position:absolute;top:50%;margin-top:-20px;height:40px;width:30px;background:#fff;left:20px;display:none;line-height:40px;text-align:center;color:#000",next:"position:absolute;top:50%;margin-top:-20px;height:40px;width:30px;background:#fff;right:20px;left:auto;display:none;line-height:40px;text-align:center;color:#000",title:"float:left",counter:"float:right;margin-left:8px"},B=function(F){return F.hover(function(){f(this).css("color","#bbb")},function(){f(this).css("color","#444")})};f.each(D,function(F,G){A+=".galleria-lightbox-"+F+"{"+G+"}"});g.insertStyleTag(A);f.each(z.split(" "),function(F,G){x.addElement("lightbox-"+G);C[G]=p.elems[G]=x.get("lightbox-"+G)});p.image=new Galleria.Picture();x.append({"lightbox-box":["lightbox-shadow","lightbox-content","lightbox-close","lightbox-prevholder","lightbox-nextholder"],"lightbox-info":["lightbox-title","lightbox-counter"],"lightbox-content":["lightbox-info","lightbox-image"],"lightbox-prevholder":"lightbox-prev","lightbox-nextholder":"lightbox-next"});f(C.image).append(p.image.container);f(o().body).append(C.overlay,C.box);B(f(C.close).bind(k(),p.hide).html("&#215;"));f.each(["Prev","Next"],function(H,F){var G=f(C[F.toLowerCase()]).html(/v/.test(F)?"???&nbsp;":"&nbsp;???");f(C[F.toLowerCase()+"holder"]).hover(function(){G.show()},function(){G.fadeOut(200)}).bind(k(),function(){p["show"+F]()})});f(C.overlay).bind(k(),p.hide)},rescale:function(D){var C=Math.min(f(i).width()-40,p.width),z=Math.min(f(i).height()-60,p.height),B=Math.min(C/p.width,z/p.height),A=(p.width*B)+40,F=(p.height*B)+60,E={width:A,height:F,marginTop:Math.ceil(F/2)*-1,marginLeft:Math.ceil(A/2)*-1};if(D){f(p.elems.box).css(E)}else{f(p.elems.box).animate(E,x._options.lightbox_transition_speed,x._options.easing,function(){var H=p.image,G=x._options.lightbox_fade_speed;x.trigger({type:Galleria.LIGHTBOX_IMAGE,imageTarget:H.image});H.show();g.show(H.image,G);g.show(p.elems.info,G)})}},hide:function(){p.image.image=null;f(i).unbind("resize",p.rescale);f(p.elems.box).hide();g.hide(p.elems.info);g.hide(p.elems.overlay,200,function(){f(this).hide().css("opacity",x._options.overlay_opacity);x.trigger(Galleria.LIGHTBOX_CLOSE)})},showNext:function(){p.show(x.getNext(p.active))},showPrev:function(){p.show(x.getPrev(p.active))},show:function(z){p.active=z=typeof z=="number"?z:x.getIndex();if(!p.initialized){p.init()}f(i).unbind("resize",p.rescale);var B=x.getData(z),A=x.getDataLength();g.hide(p.elems.info);p.image.load(B.image,function(C){p.width=C.original.width;p.height=C.original.height;f(C.image).css({width:"100.5%",height:"100.5%",top:0,zIndex:99998,opacity:0});p.elems.title.innerHTML=B.title;p.elems.counter.innerHTML=(z+1)+" / "+A;f(i).resize(p.rescale);p.rescale()});f(p.elems.overlay).show();f(p.elems.box).show()}};return this};Galleria.prototype={init:function(r,q){var p=this;a.push(this);this._original={target:r,options:q,data:null};this._target=this._dom.target=r.nodeName?r:f(r).get(0);if(!this._target){Galleria.raise("Target not found.");return}this._options={autoplay:false,carousel:true,carousel_follow:true,carousel_speed:400,carousel_steps:"auto",clicknext:false,data_config:function(s){return{}},data_selector:"img",data_source:this._target,debug:c,easing:"galleria",extend:function(s){},height:"auto",idle_time:3000,image_crop:false,image_margin:0,image_pan:false,image_pan_smoothness:12,image_position:"50%",keep_source:false,lightbox_fade_speed:200,lightbox_transition_speed:500,link_source_images:true,max_scale_ratio:c,min_scale_ratio:c,on_image:function(t,s){},overlay_opacity:0.85,overlay_background:"#0b0b0b",pause_on_interaction:true,popup_links:false,preload:2,queue:true,show:0,show_info:false,show_counter:false,show_imagenav:true,thumb_crop:true,thumb_event_type:k(),thumb_fit:false,thumb_margin:0,thumb_quality:"auto",thumbnails:true,transition:"slide",transition_initial:c,transition_speed:400,width:"auto"};if(q&&q.debug===true){m=true}f(this._target).children().hide();if(Galleria.theme){this._init()}else{g.addTimer("themeload",function(){},2000);e.one(Galleria.THEMELOAD,function(){g.clearTimer("themeload");p._init.call(p)})}},_init:function(){var p=this;if(this._initialized){Galleria.raise("Init failed: Gallery instance already initialized.");return this}this._initialized=true;if(!Galleria.theme){Galleria.raise("Init failed: No theme found.");return this}f.extend(true,this._options,Galleria.theme.defaults,this._original.options);this.bind(Galleria.DATA,function(){this._original.data=this._data;this.get("total").innerHTML=this.getDataLength();var t=this.$("container");var s={width:0,height:0};var r=g.create("galleria-image");g.wait({until:function(){f.each(["width","height"],function(w,v){if(p._options[v]&&typeof p._options[v]=="number"){s[v]=p._options[v]}else{s[v]=g.parseValue(p.$("target").css(v))||g.parseValue(t.css(v))||p.$("target")[v]()||t[v]()}});var u=function(){return true};if(p._options.thumbnails){p.$("thumbnails").append(r);u=function(){return !!f(r).height()}}return u()&&s.width&&s.height>50},success:function(){f(r).remove();t.width(s.width);t.height(s.height);if(Galleria.WEBKIT){i.setTimeout(function(){p._run()},1)}else{p._run()}},error:function(){Galleria.raise("Width & Height not found.",true)},timeout:2000})});var q=false;this.bind(Galleria.READY,function(){g.show(this.get("counter"));if(this._options.clicknext){f.each(this._data,function(r,s){delete s.link});this.$("stage").css({cursor:"pointer"}).bind(k(),function(r){p.next()})}if(this._options.carousel){this._carousel.bindControls()}if(this._options.autoplay){this.pause();if(typeof this._options.autoplay=="number"){this._playtime=this._options.autoplay}this.trigger(Galleria.PLAY);this._playing=true}if(q){if(typeof this._options.show=="number"){this.show(this._options.show)}return}q=true;if(Galleria.History){Galleria.History.change(function(r){var s=parseInt(r.value.replace(/\//,""));if(isNaN(s)){i.history.go(-1)}else{p.show(s,c,true)}})}Galleria.theme.init.call(this,this._options);this._options.extend.call(this,this._options);if(/^[0-9]{1,4}$/.test(d)&&Galleria.History){this.show(d,c,true)}else{this.show(this._options.show)}});this.append({"info-text":["info-title","info-description","info-author"],info:["info-text"],"image-nav":["image-nav-right","image-nav-left"],stage:["images","loader","counter","image-nav"],"thumbnails-list":["thumbnails"],"thumbnails-container":["thumb-nav-left","thumbnails-list","thumb-nav-right"],container:["stage","thumbnails-container","info","tooltip"]});g.hide(this.$("counter").append(this.get("current")," / ",this.get("total")));this.setCounter("&#8211;");f.each(new Array(2),function(r){var s=new Galleria.Picture();f(s.container).css({position:"absolute",top:0,left:0});p.$("images").append(s.container);p._controls[r]=s});this.$("images").css({position:"relative",top:0,left:0,width:"100%",height:"100%"});this.$("thumbnails, thumbnails-list").css({overflow:"hidden",position:"relative"});this.$("image-nav-right, image-nav-left").bind(k(),function(s){if(p._options.clicknext){s.stopPropagation()}if(p._options.pause_on_interaction){p.pause()}var r=/right/.test(this.className)?"next":"prev";p[r]()});f.each(["info","counter","image-nav"],function(r,s){if(p._options["show_"+s.replace(/-/,"")]===false){g.moveOut(p.get(s))}});this.load();if(!this._options.keep_source&&!h){this._target.innerHTML=""}this.$("target").append(this.get("container"));if(this._options.carousel){this.bind(Galleria.THUMBNAIL,function(){this.updateCarousel()})}this.bind(Galleria.IMAGE,function(r){this._options.on_image.call(this,r.imageTarget,r.thumbTarget)});return this},_run:function(){var z=this,s=this._options,r=0,x=0,t=typeof s.thumbnails=="string"?s.thumbnails.toLowerCase():null;for(var v=0;this._data[v];v++){var q,u=this._data[v],y;if(s.thumbnails===true){q=new Galleria.Picture(v);var p=u.thumb||u.image;this.$("thumbnails").append(q.container);y=f(q.container);var w=function(A){return n.defaultView&&n.defaultView.getComputedStyle?n.defaultView.getComputedStyle(q.container,null)[A]:y.css(A)};q.data={width:g.parseValue(w("width")),height:g.parseValue(w("height")),order:v};y.css((s.thumb_fit&&s.thumb_crop!==true)?{width:0,height:0}:{width:q.data.width,height:q.data.height});q.load(p,function(A){A.scale({width:A.data.width,height:A.data.height,crop:s.thumb_crop,margin:s.thumb_margin,complete:function(C){var D=["left","top"];var B=["Width","Height"];f.each(B,function(G,H){var E=H.toLowerCase();if((s.thumb_crop!==true||s.thumb_crop==E)&&s.thumb_fit){var F={};F[E]=C[E];f(C.container).css(F);F={};F[D[G]]=0;f(C.image).css(F)}C["outer"+H]=f(C.container)["outer"+H](true)});g.toggleQuality(C.image,s.thumb_quality===true||(s.thumb_quality=="auto"&&C.original.width<C.width*3));z.trigger({type:Galleria.THUMBNAIL,thumbTarget:C.image,index:C.data.order})}})});if(s.preload=="all"){q.add(u.image)}}else{if(t=="empty"||t=="numbers"){q={container:g.create("galleria-image"),image:g.create("img","span"),ready:true};if(t=="numbers"){f(q.image).text(v+1)}this.$("thumbnails").append(q.container);i.setTimeout((function(C,B,A){return function(){f(A).append(C);z.trigger({type:Galleria.THUMBNAIL,thumbTarget:C,index:B})}})(q.image,v,q.container),50+(v*20))}else{q={container:null,image:null}}}f(q.container).add(s.keep_source&&s.link_source_images?u.original:null).data("index",v).bind(s.thumb_event_type,function(B){if(s.pause_on_interaction){z.pause()}var A=f(B.currentTarget).data("index");if(z.getIndex()!==A){z.show(A)}B.preventDefault()});this._thumbnails.push(q)}g.wait({until:function(){z._stageWidth=z.$("stage").width();z._stageHeight=z.$("stage").height();return(z._stageWidth&&z._stageHeight>50)},success:function(){z.trigger(Galleria.READY)},error:function(){Galleria.raise("stage meassures not found")}})},load:function(s,p,r){var q=this;this._data=[];this._thumbnails=[];this.$("thumbnails").empty();if(typeof p=="function"){r=p;p=null}s=s||this._options.data_source;p=p||this._options.data_selector;r=r||this._options.data_config;if(s.constructor==Array){if(this.validate(s)){this._data=s;this.trigger(Galleria.DATA)}else{Galleria.raise("Load failed: JSON Array not valid.")}return this}f(s).find(p).each(function(v,u){var x={},u=f(u),w=u.parent(),t=w.attr("href");if(/\.(png|gif|jpg|jpeg)$/i.test(t)){x.image=t}else{if(t){x.link=t}}q._data.push(f.extend({title:u.attr("title"),thumb:u.attr("src"),image:u.attr("src"),description:u.attr("alt"),link:u.attr("longdesc"),original:u.get(0)},x,r(u)))});if(this.getDataLength()){this.trigger(Galleria.DATA)}else{Galleria.raise("Load failed: no data found.")}return this},_getActive:function(){return this._controls.getActive()},validate:function(p){return true},bind:function(q,p){this.$("container").bind(q,this.proxy(p));return this},unbind:function(p){this.$("container").unbind(p);return this},trigger:function(p){p=typeof p=="object"?f.extend(p,{scope:this}):{type:p,scope:this};this.$("container").trigger(p);return this},addIdleState:function(q,p){this._idle.add.apply(this._idle,g.array(arguments));return this},removeIdleState:function(p){this._idle.remove.apply(this._idle,g.array(arguments));return this},enterIdleMode:function(){this._idle.hide();return this},exitIdleMode:function(){this.idle._show();return this},enterFullscreen:function(p){this._fullscreen.enter.apply(this,g.array(arguments));return this},exitFullscreen:function(p){this._fullscreen.exit.apply(this,g.array(arguments));return this},bindTooltip:function(p,q){this._tooltip.bind.apply(this._tooltip,g.array(arguments));return this},defineTooltip:function(p,q){this._tooltip.define.apply(this._tooltip,g.array(arguments));return this},refreshTooltip:function(){this._tooltip.refresh.apply(this._tooltip,g.array(arguments));return this},openLightbox:function(){this._lightbox.show.apply(this._lightbox,g.array(arguments));return this},closeLightbox:function(){this._lightbox.hide.apply(this._lightbox,g.array(arguments));return this},getActiveImage:function(){return this._getActive().image||c},getActiveThumb:function(){return this._thumbnails[this._active].image||c},getMousePosition:function(p){return{x:p.pageX-this.$("stage").offset().left,y:p.pageY-this.$("stage").offset().top}},addPan:function(v){if(this._options.image_crop===false){return}v=f(v||this.getActiveImage());var F=this,E=v.width()/2,C=v.height()/2,r=destX=parseInt(v.css("left"))||0,q=destY=parseInt(v.css("top"))||0,D=0,B=0,t=false,A=g.timestamp(),p=0,s=0,z=function(G,y,H){if(G>0){s=Math.round(Math.max(G*-1,Math.min(0,y)));if(p!=s){p=s;if(h==8){v.parent()["scroll"+H](s*-1)}else{var x={};x[H.toLowerCase()]=s;v.css(x)}}}},u=function(x){if(g.timestamp()-A<50){return}t=true;E=F.getMousePosition(x).x;C=F.getMousePosition(x).y},w=function(x){if(!t){return}D=v.width()-F._stageWidth;B=v.height()-F._stageHeight;destX=E/F._stageWidth*D*-1;destY=C/F._stageHeight*B*-1;r+=(destX-r)/F._options.image_pan_smoothness;q+=(destY-q)/F._options.image_pan_smoothness;z(B,q,"Top");z(D,r,"Left")};if(h==8){v.parent().scrollTop(q*-1).scrollLeft(r*-1);v.css({top:0,left:0})}this.$("stage").unbind("mousemove",u).bind("mousemove",u);g.addTimer("pan",w,50,true);return this},proxy:function(q,p){if(typeof q!=="function"){return function(){}}p=p||this;return function(){return q.apply(p,g.array(arguments))}},removePan:function(){if(h==8){}this.$("stage").unbind("mousemove");g.clearTimer("pan");return this},addElement:function(q){var p=this._dom;f.each(g.array(arguments),function(s,r){p[r]=g.create("galleria-"+r)});return this},attachKeyboard:function(p){this._keyboard.attach.apply(this._keyboard,g.array(arguments));return this},detachKeyboard:function(){this._keyboard.detach.apply(this._keyboard,g.array(arguments));return this},appendChild:function(q,p){this.$(q).append(this.get(p)||p);return this},prependChild:function(q,p){this.$(q).prepend(this.get(p)||p);return this},remove:function(p){this.$(g.array(arguments).join(",")).remove();return this},append:function(r){for(var q in r){if(r[q].constructor==Array){for(var p=0;r[q][p];p++){this.appendChild(q,r[q][p])}}else{this.appendChild(q,r[q])}}return this},_scaleImage:function(q,p){p=f.extend({width:this._stageWidth,height:this._stageHeight,crop:this._options.image_crop,max:this._options.max_scale_ratio,min:this._options.min_scale_ratio,margin:this._options.image_margin,position:this._options.image_position},p);(q||this._controls.getActive()).scale(p);return this},updateCarousel:function(){this._carousel.update();return this},rescale:function(s,p,q){var r=this;if(typeof s=="function"){q=s;s=c}var t=function(){var u=r._options;r._stageWidth=s||r.$("stage").width();r._stageHeight=p||r.$("stage").height();r._scaleImage();if(r._options.carousel){r.updateCarousel()}r.trigger(Galleria.RESCALE);if(typeof q=="function"){q.call(r)}};if(Galleria.WEBKIT&&!s&&!p){g.addTimer("scale",t,5)}else{t.call(r)}return this},refreshImage:function(){this._scaleImage();if(this._options.image_pan){this.addPan()}return this},show:function(q,p,r){if(q===false||!this._options.queue&&this._queue.stalled){return}q=Math.max(0,Math.min(parseInt(q),this.getDataLength()-1));p=typeof p!="undefined"?!!p:q<this.getIndex();r=r||false;if(!r&&Galleria.History){Galleria.History.value(q.toString());return}this._active=q;Array.prototype.push.call(this._queue,{index:q,rewind:p});if(!this._queue.stalled){this._show()}return this},_show:function(){var C=this,A=this._queue[0],y=this.getData(A.index);if(!y){return}var q=y.image,w=this._controls.getActive(),z=this._controls.getNext(),v=z.isCached(q),r=this._thumbnails[A.index];var t=function(){C._queue.stalled=false;g.toggleQuality(z.image,C._options.image_quality);f(w.container).css({zIndex:0,opacity:0});f(z.container).css({zIndex:1,opacity:1});C._controls.swap();if(C._options.image_pan){C.addPan(z.image)}if(y.link){f(z.image).css({cursor:"pointer"}).bind(k(),function(){if(C._options.popup_links){var p=i.open(y.link,"_blank")}else{i.location.href=y.link}})}Array.prototype.shift.call(C._queue);if(C._queue.length){C._show()}C._playCheck();C.trigger({type:Galleria.IMAGE,index:A.index,imageTarget:z.image,thumbTarget:r.image})};if(this._options.carousel&&this._options.carousel_follow){this._carousel.follow(A.index)}if(this._options.preload){var s,u=this.getNext();try{for(var x=this._options.preload;x>0;x--){s=new Galleria.Picture();s.add(C.getData(u).image);u=C.getNext(u)}}catch(B){}}g.show(z.container);f(C._thumbnails[A.index].container).addClass("active").siblings(".active").removeClass("active");C.trigger({type:Galleria.LOADSTART,cached:v,index:A.index,imageTarget:z.image,thumbTarget:r.image});z.load(q,function(p){C._scaleImage(p,{complete:function(D){g.show(D.container);if("image" in w){g.toggleQuality(w.image,false)}g.toggleQuality(D.image,false);C._queue.stalled=true;C.removePan();C.setInfo(A.index);C.setCounter(A.index);C.trigger({type:Galleria.LOADFINISH,cached:v,index:A.index,imageTarget:D.image,thumbTarget:C._thumbnails[A.index].image});var F=w.image===null&&C._options.transition_initial?C._options.transition_initial:C._options.transition;if(F in l===false){t()}else{var E={prev:w.image,next:D.image,rewind:A.rewind,speed:C._options.transition_speed||400};l[F].call(C,E,t)}}})})},getNext:function(p){p=typeof p=="number"?p:this.getIndex();return p==this.getDataLength()-1?0:p+1},getPrev:function(p){p=typeof p=="number"?p:this.getIndex();return p===0?this.getDataLength()-1:p-1},next:function(){if(this.getDataLength()>1){this.show(this.getNext(),false)}return this},prev:function(){if(this.getDataLength()>1){this.show(this.getPrev(),true)}return this},get:function(p){return p in this._dom?this._dom[p]:null},getData:function(p){return p in this._data?this._data[p]:this._data[this._active]},getDataLength:function(){return this._data.length},getIndex:function(){return typeof this._active==="number"?this._active:false},getStageHeight:function(){return this._stageHeight},getStageWidth:function(){return this._stageWidth},getOptions:function(p){return typeof p=="undefined"?this._options:this._options[p]},setOptions:function(p,q){if(typeof p=="object"){f.extend(this._options,p)}else{this._options[p]=q}return this},play:function(p){this.trigger(Galleria.PLAY);this._playing=true;this._playtime=p||this._playtime;this._playCheck();return this},pause:function(){this.trigger(Galleria.PAUSE);this._playing=false;return this},playToggle:function(p){return(this._playing)?this.pause():this.play(p)},_playCheck:function(){var q=this,t=0,p=20,r=g.timestamp();if(this._playing){g.clearTimer("play");var s=function(){t=g.timestamp()-r;if(t>=q._playtime&&q._playing){g.clearTimer("play");q.next();return}if(q._playing){q.trigger({type:Galleria.PROGRESS,percent:Math.ceil(t/q._playtime*100),seconds:Math.floor(t/1000),milliseconds:t});g.addTimer("play",s,p)}};g.addTimer("play",s,p)}},setIndex:function(p){this._active=p;return this},setCounter:function(q){if(typeof q=="number"){q++}else{if(typeof q=="undefined"){q=this.getIndex()+1}}this.get("current").innerHTML=q;if(h==8){var p=this.$("counter").css("opacity");this.$("counter").css("opacity",p)}return this},setInfo:function(q){var p=this,r=this.getData(q);f.each(["title","description","author"],function(s,t){var u=p.$("info-"+t);if(!!r[t]){u[r[t].length?"show":"hide"]().html(r[t])}else{u.empty().hide()}});return this},hasInfo:function(q){var s=this.getData(q);var p="title description".split(" ");for(var r=0;p[r];r++){if(!!this.getData(q)[p[r]]){return true}}return false},jQuery:function(s){var p=this,q=[];f.each(s.split(","),function(t,u){u=f.trim(u);if(p.get(u)){q.push(u)}});var r=f(p.get(q.shift()));f.each(q,function(t,u){r=r.add(p.get(u))});return r},$:function(){return this.jQuery.apply(this,g.array(arguments))}};f.extend(Galleria,{DATA:"g_data",READY:"g_ready",THUMBNAIL:"g_thumbnail",LOADSTART:"g_loadstart",LOADFINISH:"g_loadfinish",IMAGE:"g_image",THEMELOAD:"g_themeload",PLAY:"g_play",PAUSE:"g_pause",PROGRESS:"g_progress",FULLSCREEN_ENTER:"g_fullscreen_enter",FULLSCREEN_EXIT:"g_fullscreen_exit",IDLE_ENTER:"g_idle_enter",IDLE_EXIT:"g_idle_exit",RESCALE:"g_rescale",LIGHTBOX_OPEN:"g_lightbox_open",LIGHTBOX_CLOSE:"g_lightbox_close",LIGHTBOX_IMAGE:"g_lightbox_image",IE9:h==9,IE8:h==8,IE7:h==7,IE6:h==6,IE:!!h,WEBKIT:/webkit/.test(j),SAFARI:/safari/.test(j),CHROME:/chrome/.test(j),QUIRK:(h&&n.compatMode&&n.compatMode=="BackCompat"),MAC:/mac/.test(navigator.platform.toLowerCase()),OPERA:!!i.opera,IPHONE:/iphone/.test(j),IPAD:/ipad/.test(j),ANDROID:/android/.test(j),TOUCH:!!(/iphone/.test(j)||/ipad/.test(j)||/android/.test(j))});Galleria.addTheme=function(q){if(!!q.name===false){}if(typeof q.defaults!="object"){q.defaults={}}if(typeof q.css=="string"){var p;f("script").each(function(s,r){var t=new RegExp("galleria\\."+q.name.toLowerCase()+"\\.");if(t.test(r.src)){p=r.src.replace(/[^\/]*$/,"")+q.css;g.addTimer("css",function(){g.loadCSS(p,"galleria-theme",function(){Galleria.theme=q;e.trigger(Galleria.THEMELOAD)})},1)}});if(!p){Galleria.raise("No theme CSS loaded")}}return q};Galleria.loadTheme=function(s,q){var p=false,r=a.length;Galleria.theme=c;g.loadScript(s,function(){p=true});g.wait({until:function(){return p},error:function(){Galleria.raise("Theme at "+s+" could not load, check theme path.",true)},success:function(){if(r){var t=[];f.each(Galleria.get(),function(v,u){var x=f.extend(u._original.options,{data_source:u._data},q);u.$("container").remove();var w=new Galleria();w._id=u._id;w.init(u._original.target,x);t.push(w)});a=t}},timeout:2000})};Galleria.get=function(p){if(!!a[p]){return a[p]}else{if(typeof p!=="number"){return a}else{Galleria.raise("Gallery index "+p+" not found")}}};Galleria.addTransition=function(p,q){l[p]=q};Galleria.utils=g;Galleria.log=function(){try{i.console.log.apply(i.console,g.array(arguments))}catch(p){try{opera.postError.apply(opera,arguments)}catch(q){alert(g.array(arguments).split(", "))}}};Galleria.raise=function(r,q){if(m||q){var p=q?"Fatal error":"Error";throw new Error(p+": "+r)}};Galleria.Picture=function(p){this.id=p||null;this.image=null;this.container=g.create("galleria-image");f(this.container).css({overflow:"hidden",position:"relative"});this.original={width:0,height:0};this.ready=false;this.loaded=false};Galleria.Picture.prototype={cache:{},add:function(r){var p=this;var q=new Image();f(q).css("display","block");if(p.cache[r]){q.src=r;p.loaded=true;p.original={height:q.height,width:q.width};return q}q.onload=function(){p.original={height:this.height,width:this.width};p.cache[r]=r;p.loaded=true};q.src=r;return q},show:function(){g.show(this.image)},hide:function(){g.moveOut(this.image)},clear:function(){this.image=null},isCached:function(p){return !!this.cache[p]},load:function(q,r){var p=this;f(this.container).empty(true);this.image=this.add(q);g.hide(this.image);f(this.container).append(this.image);g.wait({until:function(){return p.loaded&&p.image.complete&&p.image.width},success:function(){i.setTimeout(function(){r.call(p,p)},50)},error:function(){i.setTimeout(function(){r.call(p,p)},50);Galleria.raise("image not loaded in 10 seconds: "+q)},timeout:10000});return this.container},scale:function(r){r=f.extend({width:0,height:0,min:c,max:c,margin:0,complete:function(){},position:"center",crop:false},r);if(!this.image){return this.container}var s,p,q=this,t=f(q.container);g.wait({until:function(){s=r.width||t.width()||g.parseValue(t.css("width"));p=r.height||t.height()||g.parseValue(t.css("height"));return s&&p},success:function(){var y=(s-r.margin*2)/q.original.width,u=(p-r.margin*2)/q.original.height,A={"true":Math.max(y,u),width:y,height:u,"false":Math.min(y,u)},w=A[r.crop.toString()];if(r.max){w=Math.min(r.max,w)}if(r.min){w=Math.max(r.min,w)}f(q.container).width(s).height(p);f.each(["width","height"],function(D,C){f(q.image)[C](q[C]=Math.ceil(q.original[C]*w))});var B={},v={},x=function(E,F,D){var C=0;if(/\%/.test(E)){var G=parseInt(E)/100;C=Math.ceil(f(q.image)[F]()*-1*G+D*G)}else{C=g.parseValue(E)}return C},z={top:{top:0},left:{left:0},right:{left:"100%"},bottom:{top:"100%"}};f.each(r.position.toLowerCase().split(" "),function(C,D){if(D=="center"){D="50%"}B[C?"top":"left"]=D});f.each(B,function(C,D){if(z.hasOwnProperty(D)){f.extend(v,z[D])}});B=B.top?f.extend(B,v):v;B=f.extend({top:"50%",left:"50%"},B);f(q.image).css({position:"relative",top:x(B.top,"height",p)-r.margin,left:x(B.left,"width",s)-r.margin});q.show();q.ready=true;r.complete.call(q,q)},error:function(){Galleria.raise("Could not scale image: "+q.image.src)},timeout:1000});return this}};f.extend(f.easing,{galleria:function(q,r,p,u,s){if((r/=s/2)<1){return u/2*r*r*r*r+p}return -u/2*((r-=2)*r*r*r-2)+p},galleriaIn:function(q,r,p,u,s){return u*(r/=s)*r*r*r+p},galleriaOut:function(q,r,p,u,s){return -u*((r=r/s-1)*r*r*r-1)+p}});f.fn.galleria=function(p){return this.each(function(){var q=new Galleria();q.init(this,p)})};i.Galleria=Galleria})(jQuery);
