var GalleryThumbnailSliderHorizontal=new Class({initialize:function(c,b,a){this.root_node=c?$(c):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_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.thumbnails_viewport_class="mb_gallery_thumbnails_viewport";this.thumbnails_class="mb_gallery_thumbnails";this.thumbnail_class="mb_gallery_thumbnail";this.thumbnails_prev_class="mb_gallery_thumbnails_prev";this.thumbnails_next_class="mb_gallery_thumbnails_next";this.blocker_class="mb_gallery_blocker";this.active_class="active";this.disabled_class="disabled";this.image_prefix="mb_gallery_image_";this.info_prefix="mb_gallery_info_";this.thumbnail_prefix="mb_gallery_thumbnail_";b=b?parseInt(b):0;a=a?parseInt(a):0;this.effect_type=isNaN(b)?0:b;this.time_interval=isNaN(a)?0:a;this.timer=null;this.images_amount=0;this.image_viewport_width=0;this.thumbnails_viewport_width=0;this.thumbnail_span=0},start:function(){var h=this;if(this.root_node){var n=this.root_node.getElement("."+this.images_class);var k=this.root_node.getElement("."+this.image_viewport_class);var b=this.root_node.getElement("."+this.image_counter_class);var i=this.root_node.getElement("."+this.thumbnails_viewport_class);var j=this.root_node.getElement("."+this.thumbnail_class);if(n){var m=n.getElements("img");if(m){this.images_amount=m.length;if(this.images_amount>1){this.stateHandler(this.image_next_class,1);if(this.time_interval){this.timer=new Fx({duration:this.time_interval,onComplete:function(){h.showImageSibling(1);h.timer.start()}});this.timer.start()}}}}if(k){var e=k.getSize();this.image_viewport_width=e.x}if(b){var l=b.get("text");l=l.replace("#","<span>1</span>");l=l.replace("#",this.images_amount);b.set("html",l)}if(j){var g=parseInt(j.getStyle("margin-right"));if(!isNaN(g)){this.thumbnail_span=g}}if(i){var d=this.root_node.getElement("."+this.thumbnails_class);var c=i.getSize();this.thumbnails_viewport_width=c.x;if(d&&this.thumbnails_viewport_width){var a=d.getElements("img");if(a){var f=new Array();a.each(function(o){thumbnails_img_src=o.get("src");if(thumbnails_img_src){f.push(thumbnails_img_src)}});if(f.length){new Asset.images(f,{onComplete:function(){var p=d.getSize();var o=p.x-h.thumbnail_span;if(o>h.thumbnails_viewport_width){h.stateHandler(h.thumbnails_next_class,1)}}})}}}}}this.setEvents()},setEvents:function(){var g=this;if(this.root_node){var d=this.root_node.getElement("."+this.image_prev_class);var b=this.root_node.getElement("."+this.image_next_class);var a=this.root_node.getElement("."+this.thumbnails_class);var c=this.root_node.getElement("."+this.thumbnails_prev_class);var f=this.root_node.getElement("."+this.thumbnails_next_class);if(d&&b){d.addEvent("click",function(){if(!this.hasClass(g.disabled_class)){g.showImageSibling(2)}});b.addEvent("click",function(){if(!this.hasClass(g.disabled_class)){g.showImageSibling(1)}})}if(a){var e=a.getElements("."+this.thumbnail_class);if(e){e.addEvent("click",function(){if(!this.hasClass(g.active_class)){var l=this.getElement("img");var o=l.get("class");var k=parseInt(o.replace(g.thumbnail_prefix,""));if(!isNaN(k)){var h=g.image_prefix+k;var i=a.getElement("."+g.active_class);var n=1;if(i){var j=i.getElement("img");var m=j.get("class");var p=parseInt(m.replace(g.thumbnail_prefix,""));if(!isNaN(p)){if(k<p){n=2}}}g.showImage(h,n);g.showImageInfo(h)}}})}}if(c&&f){c.addEvent("click",function(){if(!this.hasClass(g.disabled_class)){g.scrollThumbnails(2)}});f.addEvent("click",function(){if(!this.hasClass(g.disabled_class)){g.scrollThumbnails(1)}})}}},showImage:function(j,y){var p=this;if(this.root_node&&j){var t=this.root_node.getElement("."+this.image_class);var g=this.root_node.getElement("."+this.images_class);var e=parseInt(j.replace(this.image_prefix,""));var b=null;if(!isNaN(e)){var h=this.root_node.getElement("."+this.thumbnails_class);var q=this.info_prefix+e;var r=this.root_node.getElement("."+q);if(h){var n=this.thumbnail_prefix+e;var v=h.getElement("."+n);var u=v.getParent("."+this.thumbnail_class);if(u){if(!u.hasClass(this.active_class)){var z=h.getElement("."+this.active_class);if(z){z.removeClass(this.active_class)}u.addClass(this.active_class)}p.scrollThumbnails(y,u)}}if(r){var m=r.getElement("."+this.info_link_class);if(m){var f=r.getElement("."+this.info_link_target_class);var i=m.get("text");b=new Element("a",{href:i});if(f){var a=f.get("text");b.set("target",a)}}}switch(e){case 1:this.stateHandler(this.image_prev_class,0);if(this.images_amount==1){this.stateHandler(this.image_next_class,0)}else{this.stateHandler(this.image_next_class,1)}break;case this.images_amount:this.stateHandler(this.image_prev_class,1);this.stateHandler(this.image_next_class,0);break;default:this.stateHandler(this.image_prev_class,1);this.stateHandler(this.image_next_class,1);break}}if(t&&g){var s=g.getElement("."+j);if(s){var x=s.clone();var c=x.clone();var o=t.getElement("."+this.image_active_class);var l=t.getElement("."+this.image_hold_class);if(o){if(this.effect_type&&l){switch(this.effect_type){case 1:o.setStyle("z-index",20);l.setStyle("z-index",10);x.inject(l);var k=new Fx.Morph(o,{duration:500,transition:Fx.Transitions.Quad.easeOut,onStart:function(){p.displayBlocker(1);p.setTimer(0)},onComplete:function(){o.set("html",null);c.inject(o);o.setStyle("opacity",1);l.set("html",null);if(b){b.wraps(c)}p.displayBlocker(0);p.setTimer(1)}});k.start({opacity:0});break;case 2:if(this.image_viewport_width){var d=0;var w=-this.image_viewport_width;y=!isNaN(parseInt(y))?y:1;switch(y){case 1:t.setStyle("left",0);o.setStyle("left",0);l.setStyle("left",this.image_viewport_width);break;case 2:d=-this.image_viewport_width;w=0;t.setStyle("left",-this.image_viewport_width);o.setStyle("left",this.image_viewport_width);l.setStyle("left",0);break}x.inject(l);var k=new Fx.Morph(t,{duration:500,transition:Fx.Transitions.Quad.easeOut,onStart:function(){p.displayBlocker(1);p.setTimer(0)},onComplete:function(){o.set("html",null);c.inject(o);t.setStyle("left",d);l.set("html",null);if(b){b.wraps(c)}p.displayBlocker(0);p.setTimer(1)}});k.start({left:w})}break}}else{this.setTimer(0);this.setTimer(1);o.set("html",null);x.inject(o);if(b){b.wraps(x)}}}}}}},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 j=this;if(this.root_node&&c){var h=parseInt(c.replace(this.image_prefix,""));if(!isNaN(h)){var n=this.info_prefix+h;var b=this.root_node.getElement("."+n);if(b){var m=this.root_node.getElement("."+this.image_info_class);var e=this.root_node.getElement("."+this.image_counter_class);var a=this.root_node.getElement("."+this.image_title_class);var k=this.root_node.getElement("."+this.image_description_class);var f=b.getElement("."+this.info_title_class);var i=b.getElement("."+this.info_description_class);var l=f?f.get("text"):null;var d=i?i.get("text"):null;if(m){if((f||i)&&m.hasClass(this.disabled_class)){m.removeClass(this.disabled_class)}else{if(!f&&!i&&!m.hasClass(this.disabled_class)){m.addClass(this.disabled_class)}}}if(e){var g=e.getElement("span");if(g){g.set("text",h)}}if(a){a.set("text",l)}if(k){k.set("text",d)}}}}},scrollThumbnails:function(k,f){var h=this;if(this.root_node&&this.thumbnails_viewport_width){var i=this.root_node.getElement("."+this.thumbnails_viewport_class);var g=this.root_node.getElement("."+this.thumbnails_class);if(i&&g){var a=g.getSize();var e=a.x-this.thumbnail_span;if(e>this.thumbnails_viewport_width){var b=-(e-this.thumbnails_viewport_width);var j=g.getPosition(i);var d=j.x;var c=null;if(f){thumbnails_viewport_center=parseInt(this.thumbnails_viewport_width/2);thumbnail_coords=f.getCoordinates(g);thumbnail_left=thumbnail_coords.left;thumbnail_width=thumbnail_coords.width;thumbnail_center=parseInt(thumbnail_width/2);c=-(thumbnail_left+thumbnail_center-thumbnails_viewport_center)}else{k=!isNaN(parseInt(k))?k:1;switch(k){case 1:if(d>b){c=d-this.thumbnails_viewport_width;if(this.thumbnail_span){c-=this.thumbnail_span}}break;case 2:if(d<0){c=d+this.thumbnails_viewport_width;if(this.thumbnail_span){c+=this.thumbnail_span}}break}}if(!isNaN(parseInt(c))){if(c<b){c=b}else{if(c>0){c=0}}switch(c){case 0:this.stateHandler(this.thumbnails_prev_class,0);this.stateHandler(this.thumbnails_next_class,1);break;case b:this.stateHandler(this.thumbnails_prev_class,1);this.stateHandler(this.thumbnails_next_class,0);break;default:this.stateHandler(this.thumbnails_prev_class,1);this.stateHandler(this.thumbnails_next_class,1);break}var l=new Fx.Morph(g,{duration:500,transition:Fx.Transitions.Quad.easeOut,onStart:function(){h.displayBlocker(1)},onComplete:function(){h.displayBlocker(0)}});l.start({left:c})}}}}},stateHandler:function(c,b){if(this.root_node&&c){var a=this.root_node.getElement("."+c);if(a){b=!isNaN(parseInt(b))?b:1;switch(b){case 0:a.addClass(this.disabled_class);break;case 1:a.removeClass(this.disabled_class);break}}}},displayBlocker:function(b){if(this.root_node){var a=this.root_node.getElement("."+this.blocker_class);if(a){b=!isNaN(parseInt(b))?b:1;switch(b){case 0:a.setStyle("display","none");break;case 1:a.setStyle("display","block");break}}}},setTimer:function(a){if(this.timer){a=!isNaN(parseInt(a))?a:1;switch(a){case 0:this.timer.cancel();break;case 1:this.timer.start();break}}}});
