var GalleryCarousel=new Class({initialize:function(d,c,a,b,e){this.root_node=d?$(d):null;this.body_node=document.getElement("body");this.overlay_node=null;this.popin_window_node=null;this.loader_node=null;this.image_viewport_class="mb_gallery_image_viewport";this.image_class="mb_gallery_image";this.image_active_class="mb_gallery_image_active";this.image_hold_class="mb_gallery_image_hold";this.images_class="mb_gallery_images";this.image_prev_class="mb_gallery_image_prev";this.image_next_class="mb_gallery_image_next";this.image_info_class="mb_gallery_image_info";this.image_counter_class="mb_gallery_image_counter";this.image_title_class="mb_gallery_image_title";this.image_description_class="mb_gallery_image_description";this.info_source_class="mb_gallery_info_source";this.info_title_class="mb_gallery_info_title";this.info_description_class="mb_gallery_info_description";this.info_link_class="mb_gallery_info_link";this.info_link_target_class="mb_gallery_info_link_taget";this.controls_class="mb_gallery_controls";this.play_class="mb_gallery_play";this.control_class="mb_gallery_control";this.control_index_class="mb_gallery_control_index";this.blocker_class="mb_gallery_blocker";this.overlay_class="mb_gallery_overlay";this.popin_window_class="mb_gallery_popin_window";this.popin_close_class="mb_gallery_popin_close";this.loader_class="mb_gallery_loader";this.active_class="active";this.pause_class="pause";this.disabled_class="disabled";this.image_prefix="mb_gallery_image_";this.info_prefix="mb_gallery_info_";this.control_prefix="mb_gallery_control_";c=c?parseInt(c):0;a=a?parseInt(a):0;b=b?parseInt(b):500;this.effect_type=isNaN(c)?0:c;this.time_interval=isNaN(a)?0:a;this.time_effect=isNaN(b)?0:b;this.transition=e?e:"quad:in:out";this.full_screen=false;this.play=false;this.timer=null;this.images_amount=0;this.image_viewport_width=0},start:function(){var d=this;if(this.root_node){this.overlay_node=this.root_node.getElement("."+this.overlay_class);this.popin_window_node=this.root_node.getElement("."+this.popin_window_class);this.loader_node=this.root_node.getElement("."+this.loader_class);var j=this.root_node.getElement("."+this.images_class);var e=this.root_node.getElement("."+this.image_viewport_class);if(j){var h=j.getElements("img");if(h){this.images_amount=h.length;if(this.images_amount==1){this.stateHandler(this.image_prev_class,0);this.stateHandler(this.image_next_class,0)}else{if(this.images_amount>1){if(this.time_interval){this.play=true;this.timer=new Fx({duration:this.time_interval,onComplete:function(){d.showImageSibling(1);d.timer.start()}});this.timer.start()}}}}}if(e){var a=e.getCoordinates();this.image_viewport_width=a.width;if(a.right==a.width&&a.bottom==a.height){this.full_screen=true}}}if(this.popin_window_node){var f=this.popin_window_node.getElement("."+this.image_class);var b=this.popin_window_node.getElement("."+this.image_counter_class);if(f){var c=parseInt(f.getStyle("padding"));if(!isNaN(c)){this.image_span=c}}if(b){var g=b.get("text");g=g.replace("#","<span>1</span>");g=g.replace("#",this.images_amount);b.set("html",g)}}if(this.full_screen){this.scaleImages()}this.setEvents()},scaleImages:function(){if(this.root_node){var f=this.root_node.getElement("."+this.image_viewport_class);var h=this.root_node.getElement("."+this.image_class);var m=this.root_node.getElement("."+this.images_class);if(f&&h&&m){var g=h.getElements("img");var l=m.getElements("img");var k=g.append(l);if(k.length){var d=f.getSize();var b=d.x;var c=d.y;var a=new Array();for(i=0;i<k.length;i++){var j=k[i];var e=j.get("src");a.push(e)}new Asset.images(a,{onComplete:function(){for(i=0;i<k.length;i++){var p=k[i];p.setStyles({height:null,width:null});var o=p.getSize();var n=o.x;var q=o.y;if(c>q){p.setStyles({height:"100%",width:"auto"})}else{if(b>n){p.setStyles({height:"auto",width:"100%"})}}}}})}}}},setEvents:function(){var e=this;if(this.root_node){var f=this.root_node.getElement("."+this.image_viewport_class);var h=this.root_node.getElement("."+this.image_prev_class);var k=this.root_node.getElement("."+this.image_next_class);var a=this.root_node.getElement("."+this.controls_class);if(this.full_screen&&f){window.addEvent("resize",function(){e.image_viewport_width=f.getSize().x;e.scaleImages()})}if(h&&k){h.addEvent("click",function(){if(!this.hasClass(e.disabled_class)){e.showImageSibling(2)}});k.addEvent("click",function(){if(!this.hasClass(e.disabled_class)){e.showImageSibling(1)}})}if(a){var j=a.getElement("."+this.play_class);var b=a.getElements("."+this.control_class);if(j){j.addEvent("click",function(){if(this.hasClass(e.pause_class)){e.play=true;e.setTimer(1);this.removeClass(e.pause_class)}else{e.setTimer(0);this.addClass(e.pause_class);e.play=false}})}if(b.length){b.addEvent("click",function(){if(!this.hasClass(e.active_class)){var t=this.getElement("."+e.control_index_class);if(t){var o=t.get("text");var p=parseInt(o);if(!isNaN(p)){var m=e.image_prefix+p;var s=a.getElement("."+e.active_class);var r=1;if(s){var l=s.getElement("."+e.control_index_class);if(l){var q=l.get("text");var n=parseInt(q);if(!isNaN(n)){if(p<n){r=2}}}}e.showImage(m,r);e.showImageInfo(m)}}}})}}}if(this.popin_window_node){var g=this.popin_window_node.getElement("."+this.popin_close_class);var h=this.popin_window_node.getElement("."+this.image_prev_class);var k=this.popin_window_node.getElement("."+this.image_next_class);var d=this.popin_window_node.getElement("."+this.blocker_class);if(this.root_node){var c=this.root_node.getElement("."+this.image_active_class);if(c){c.setStyle("cursor","pointer");c.addEvent("click",function(){var o=this.getElement("img");if(o){var n=o.get("class");var m=parseInt(n.replace(e.image_prefix,""));if(!isNaN(m)){var l=e.info_prefix+m;e.showPopinImage(l)}}})}}if(this.overlay_node){this.overlay_node.addEvent("click",function(){e.displayOverlay(0);e.displayPopinWindow(0);e.displayLoader(0)})}if(g){g.addEvent("click",function(){e.displayOverlay(0);e.displayPopinWindow(0);e.displayLoader(0)})}if(h&&k){h.addEvent("click",function(){if(!this.hasClass(e.disabled_class)){e.showPopinImageSibling(2)}});k.addEvent("click",function(){if(!this.hasClass(e.disabled_class)){e.showPopinImageSibling(1)}})}document.addEvent("keydown",function(m){var l=e.popin_window_node.getStyle("display");var n=d?d.getStyle("display"):"none";if(l=="block"&&n=="none"){switch(m.key){case"left":e.showPopinImageSibling(2);break;case"right":e.showPopinImageSibling(1);break}}})}},showImage:function(o,B){var u=this;if(this.root_node&&o){var y=this.root_node.getElement("."+this.image_class);var j=this.root_node.getElement("."+this.images_class);var g=parseInt(o.replace(this.image_prefix,""));var a=null;if(!isNaN(g)){var m=this.root_node.getElement("."+this.controls_class);var v=this.info_prefix+g;var w=this.root_node.getElement("."+v);if(m){var p=m.getElement("."+this.control_index_class+":contains("+g+")");if(p){var l=p.getParent("."+this.control_class);if(l){if(!l.hasClass(this.active_class)){var k=m.getElement("."+this.active_class);if(k){k.removeClass(this.active_class)}l.addClass(this.active_class)}}}}if(!this.popin_window_node&&w){var s=w.getElement("."+this.info_link_class);if(s){var h=w.getElement("."+this.info_link_target_class);var n=s.get("text");a=new Element("a",{href:n});if(h){var b=h.get("text");a.set("target",b)}}}}if(y&&j){var x=j.getElement("."+o);if(x){var A=x.clone();var d=A.clone();var t=y.getElement("."+this.image_active_class);var r=y.getElement("."+this.image_hold_class);if(t){if(this.effect_type&&r){switch(this.effect_type){case 1:r.setStyle("opacity",0);A.inject(r);var c=new Fx.Tween(t,{duration:this.time_effect,transition:this.transition,onStart:function(){u.displayBlocker(1);u.setTimer(0)},onComplete:function(){t.set("html",null);d.inject(t);t.setStyle("opacity",1);r.set("html",null);if(a){a.wraps(d)}u.displayBlocker(0);u.setTimer(1)}});var f=new Fx.Tween(r,{duration:this.time_effect,transition:this.transition});c.start("opacity",0);f.start("opacity",1);break;case 2:if(this.image_viewport_width){var e=0;var z=-this.image_viewport_width;B=!isNaN(parseInt(B))?B:1;switch(B){case 1:y.setStyle("left",0);t.setStyle("left",0);r.setStyle("left",this.image_viewport_width);break;case 2:e=-this.image_viewport_width;z=0;y.setStyle("left",-this.image_viewport_width);t.setStyle("left",this.image_viewport_width);r.setStyle("left",0);break}A.inject(r);var q=new Fx.Tween(y,{duration:this.time_effect,transition:this.transition,onStart:function(){u.displayBlocker(1);u.setTimer(0)},onComplete:function(){t.set("html",null);d.inject(t);y.setStyle("left",e);r.set("html",null);if(a){a.wraps(d)}u.displayBlocker(0);u.setTimer(1)}});q.start("left",z)}break}}else{this.setTimer(0);this.setTimer(1);t.set("html",null);A.inject(t);if(a){a.wraps(A)}}}}}}},showImageSibling:function(h){if(this.root_node){var e=this.root_node.getElement("."+this.image_active_class);var c=this.root_node.getElement("."+this.images_class);if(e&&c){var g=e.getElement("img");if(g){var a=g.get("class");if(a){var d=c.getElement("."+a);if(d){var b=null;var f=null;h=!isNaN(parseInt(h))?h:1;switch(h){case 1:b=d.getNext("img");if(!b){f=this.image_prefix+1}break;case 2:b=d.getPrevious("img");if(!b){f=this.image_prefix+this.images_amount}break}if(b){var f=b.get("class")}if(f){this.showImage(f,h);this.showImageInfo(f)}}}}}}},showImageInfo:function(c){var h=this;if(this.root_node&&c){var f=parseInt(c.replace(this.image_prefix,""));if(!isNaN(f)){var m=this.info_prefix+f;var b=this.root_node.getElement("."+m);if(b){var l=this.root_node.getElement("."+this.image_info_class);var a=this.root_node.getElement("."+this.image_title_class);var j=this.root_node.getElement("."+this.image_description_class);var e=b.getElement("."+this.info_title_class);var g=b.getElement("."+this.info_description_class);var k=e?e.get("text"):null;var d=g?g.get("text"):null;if(l){if((e||g)&&l.hasClass(this.disabled_class)){l.removeClass(this.disabled_class)}else{if(!e&&!g&&!l.hasClass(this.disabled_class)){l.addClass(this.disabled_class)}}}if(a){a.set("text",k)}if(j){j.set("text",d)}}}}},stateHandler:function(e,d,a){var c=null;a=!isNaN(parseInt(a))?a:0;switch(a){case 0:c=this.root_node;break;case 1:c=this.popin_window_node;break}if(c&&e){var b=c.getElement("."+e);if(b){d=!isNaN(parseInt(d))?d:1;switch(d){case 0:b.addClass(this.disabled_class);break;case 1:b.removeClass(this.disabled_class);break}}}},displayBlocker:function(d,b){var c=null;b=!isNaN(parseInt(b))?b:0;switch(b){case 0:c=this.root_node;break;case 1:c=this.popin_window_node;break}if(c){var a=c.getElement("."+this.blocker_class);if(a){d=!isNaN(parseInt(d))?d:1;switch(d){case 0:a.setStyle("display","none");break;case 1:a.setStyle("display","block");break}}}},setTimer:function(a){if(this.timer&&this.play){a=!isNaN(parseInt(a))?a:1;switch(a){case 0:this.timer.cancel();break;case 1:this.timer.start();break}}},showPopinImage:function(x){var v=this;if(this.root_node&&this.popin_window_node&&x){var y=this.root_node.getElement("."+x);var t=parseInt(x.replace(this.info_prefix,""));if(y&&!isNaN(t)){var A=this.popin_window_node.getElement("."+this.image_class);var m=this.popin_window_node.getElement("."+this.image_info_class);var w=this.popin_window_node.getElement("."+this.image_title_class);var p=this.popin_window_node.getElement("."+this.image_description_class);var h=y.getElement("."+this.info_source_class);var B=y.getElement("."+this.info_title_class);var C=y.getElement("."+this.info_description_class);var u=y.getElement("."+this.info_link_class);var a=null;switch(t){case 1:this.stateHandler(this.image_prev_class,0,1);if(this.images_amount==1){this.stateHandler(this.image_next_class,0,1)}else{this.stateHandler(this.image_next_class,1,1)}break;case this.images_amount:this.stateHandler(this.image_prev_class,1,1);this.stateHandler(this.image_next_class,0,1);break;default:this.stateHandler(this.image_prev_class,1,1);this.stateHandler(this.image_next_class,1,1);break}if(u){var l=y.getElement("."+this.info_link_target_class);var q=u.get("text");a=new Element("a",{href:q});if(l){var b=l.get("text");a.set("target",b)}}if(A&&h){var r=this.image_prefix+t;var d=h.get("text");var c=new Array(d);var z=new Element("img",{"class":r,src:d});A.set("html",null);A.setStyle("opacity",0);z.inject(A);if(a){a.wraps(z)}this.displayOverlay(1);this.displayPopinWindow(1);this.displayHandler(this.image_prev_class,0);this.displayHandler(this.image_next_class,0);this.displayBlocker(1,1);this.displayLoader(1);var k=window.getSize();var f=k.x-20;var s=k.y-20;var o=0;var g=this.popin_window_node.getSize();var e=g.x;var n=g.y;if(m){m.setStyle("opacity",0);this.showPopinImageInfo(x);var j=m.getSize();o=j.y}new Asset.images(c,{onComplete:function(){var I=z.getSize();var N=I.x;var E=I.y;var P=N+(v.image_span*2);var F=E+o+(v.image_span*2);if(P>f){var R=N;P=f;N=P-(v.image_span*2);E=parseInt((N/R)*E);F=E+o+(v.image_span*2)}if(F>s){var O=E;F=s;E=F-o-(v.image_span*2);N=parseInt((E/O)*N);P=N+(v.image_span*2)}z.set({height:E,width:N});var D=-parseInt(P/2);var K=-parseInt(F/2);var H={"margin-left":D,width:P};var J={height:F,"margin-top":K};if(m){var M=new Fx.Tween(m,{duration:500,transition:"quad:in:out"})}var L=new Fx.Tween(A,{duration:500,transition:"quad:in:out",onStart:function(){v.displayLoader(0);v.displayHandler(v.image_prev_class,1);v.displayHandler(v.image_next_class,1);if(m){M.start("opacity",1)}},onComplete:function(){v.displayBlocker(0,1)}});var G=new Fx.Morph(v.popin_window_node,{duration:250,transition:"quad:in:out",onComplete:function(){L.start("opacity",1)}});var Q=new Fx.Morph(v.popin_window_node,{duration:250,transition:"quad:in:out",onComplete:function(){if(P!=e){G.start(H)}else{L.start("opacity",1)}}});if(F!=n){Q.start(J)}else{if(P!=e){G.start(H)}else{L.start("opacity",1)}}}})}}}},showPopinImageSibling:function(f){if(this.root_node&&this.popin_window_node){var g=this.popin_window_node.getElement("."+this.image_class);if(g){var h=g.getElement("img");if(h){var b=h.get("class");var c=parseInt(b.replace(this.image_prefix,""));if(!isNaN(c)){var j=this.info_prefix+c;var a=this.root_node.getElement("."+j);if(a){var d=null;f=!isNaN(parseInt(f))?f:1;switch(f){case 1:d=a.getNext("div");break;case 2:d=a.getPrevious("div");break}if(d){var e=d.get("class");this.showPopinImage(e)}}}}}}},showPopinImageInfo:function(m){if(this.root_node&&this.popin_window_node&&m){var b=this.root_node.getElement("."+m);if(b){var l=this.popin_window_node.getElement("."+this.image_info_class);var d=this.popin_window_node.getElement("."+this.image_counter_class);var a=this.popin_window_node.getElement("."+this.image_title_class);var j=this.popin_window_node.getElement("."+this.image_description_class);var f=b.getElement("."+this.info_title_class);var h=b.getElement("."+this.info_description_class);var k=f?f.get("text"):null;var c=h?h.get("text"):null;if(l){if((f||h)&&l.hasClass(this.disabled_class)){l.removeClass(this.disabled_class)}else{if(!f&&!h&&!l.hasClass(this.disabled_class)){l.addClass(this.disabled_class)}}}if(d){var g=d.getElement("span");if(g){var e=parseInt(m.replace(this.info_prefix,""));g.set("text",e)}}if(a){a.set("text",k)}if(j){j.set("text",c)}}}},displayHandler:function(d,c){if(this.popin_window_node&&d){var b=this.popin_window_node.getElement("."+d);if(b){c=!isNaN(parseInt(c))?c:1;switch(c){case 0:b.setStyle("opacity",0);break;case 1:var a=new Fx.Tween(b,{duration:500,transition:"quad:in:out"});a.start("opacity",1);break}}}},displayOverlay:function(a){if(this.root_node&&this.body_node&&this.overlay_node){a=!isNaN(parseInt(a))?a:1;switch(a){case 0:this.overlay_node.inject(this.root_node);this.overlay_node.setStyle("display","none");break;case 1:var b=this.overlay_node.getStyle("display");if(b=="none"){this.overlay_node.inject(this.body_node);this.overlay_node.setStyle("display","block")}break}}},displayPopinWindow:function(a){if(this.root_node&&this.body_node&&this.popin_window_node){a=!isNaN(parseInt(a))?a:1;switch(a){case 0:this.popin_window_node.inject(this.root_node);this.popin_window_node.setStyles({display:"none",height:null,"margin-left":null,"margin-top":null,width:null});break;case 1:var b=this.popin_window_node.getStyle("display");if(b=="none"){this.popin_window_node.inject(this.body_node);this.popin_window_node.setStyle("display","block")}break}}},displayLoader:function(a){if(this.root_node&&this.body_node&&this.loader_node){a=!isNaN(parseInt(a))?a:1;switch(a){case 0:this.loader_node.inject(this.root_node);this.loader_node.setStyle("display","none");break;case 1:this.loader_node.inject(this.body_node);this.loader_node.setStyle("display","block");break}}}});
