(function(c,e,h){c.fn.adGallery=function(l){var n={loader_image:"loader.gif",start_at_index:0,description_wrapper:false,thumb_opacity:0.7,animate_first_image:false,animation_speed:400,width:false,height:false,display_next_and_prev:true,display_back_and_forward:true,scroll_jump:0,slideshow:{enable:true,autostart:false,speed:5000,start_label:"Start",stop_label:"Stop",stop_on_scroll:true,countdown_prefix:"(",countdown_sufix:")",onStart:false,onStop:false},effect:"slide-hori",enable_keyboard_move:true,cycle:true,callbacks:{init:false,afterImageVisible:false,beforeImageVisible:false}};var m=c.extend(false,n,l);if(l&&l.slideshow){m.slideshow=c.extend(false,n.slideshow,l.slideshow)}if(!m.slideshow.enable){m.slideshow.autostart=false}var k=[];c(this).each(function(){var o=new j(this,m);k[k.length]=o});return k};function g(l,m,n){var o=parseInt(l.css("top"),10);if(m=="left"){var k="-"+this.image_wrapper_height+"px";l.css("top",this.image_wrapper_height+"px")}else{var k=this.image_wrapper_height+"px";l.css("top","-"+this.image_wrapper_height+"px")}if(n){n.css("bottom","-"+n[0].offsetHeight+"px");n.animate({bottom:0},this.settings.animation_speed*2)}if(this.current_description){this.current_description.animate({bottom:"-"+this.current_description[0].offsetHeight+"px"},this.settings.animation_speed*2)}return{old_image:{top:k},new_image:{top:o}}}function i(l,m,o){var n=parseInt(l.css("left"),10);if(m=="left"){var k="-"+this.image_wrapper_width+"px";l.css("left",this.image_wrapper_width+"px")}else{var k=this.image_wrapper_width+"px";l.css("left","-"+this.image_wrapper_width+"px")}if(o){o.css("bottom","-"+o[0].offsetHeight+"px");o.animate({bottom:0},this.settings.animation_speed*2)}if(this.current_description){this.current_description.animate({bottom:"-"+this.current_description[0].offsetHeight+"px"},this.settings.animation_speed*2)}return{old_image:{left:k},new_image:{left:n}}}function a(m,n,p){var l=m.width();var k=m.height();var o=parseInt(m.css("left"),10);var q=parseInt(m.css("top"),10);m.css({width:0,height:0,top:this.image_wrapper_height/2,left:this.image_wrapper_width/2});return{old_image:{width:0,height:0,top:this.image_wrapper_height/2,left:this.image_wrapper_width/2},new_image:{width:l,height:k,top:q,left:o}}}function f(k,l,m){k.css("opacity",0);return{old_image:{opacity:0},new_image:{opacity:1}}}function b(k,l,m){k.css("opacity",0);return{old_image:{opacity:0},new_image:{opacity:1},speed:0}}function j(l,k){this.init(l,k)}j.prototype={wrapper:false,image_wrapper:false,gallery_info:false,nav:false,loader:false,preloads:false,thumbs_wrapper:false,scroll_back:false,scroll_forward:false,next_link:false,prev_link:false,slideshow:false,image_wrapper_width:0,image_wrapper_height:0,current_index:0,current_image:false,current_description:false,nav_display_width:0,settings:false,images:false,in_transition:false,animations:false,init:function(o,n){var m=this;this.wrapper=c(o);this.settings=n;this.setupElements();this.setupAnimations();if(this.settings.width){this.image_wrapper_width=this.settings.width;this.image_wrapper.width(this.settings.width);this.wrapper.width(this.settings.width)}else{this.image_wrapper_width=this.image_wrapper.width()}if(this.settings.height){this.image_wrapper_height=this.settings.height;this.image_wrapper.height(this.settings.height)}else{this.image_wrapper_height=this.image_wrapper.height()}this.nav_display_width=this.nav.width();this.current_index=0;this.current_image=false;this.current_description=false;this.in_transition=false;this.findImages();if(this.settings.display_next_and_prev){this.initNextAndPrev()}var k=function(p){return m.nextImage(p)};this.slideshow=new d(k,this.settings.slideshow);this.controls.append(this.slideshow.create());if(this.settings.slideshow.enable){this.slideshow.enable()}else{this.slideshow.disable()}if(this.settings.display_back_and_forward){this.initBackAndForward()}if(this.settings.enable_keyboard_move){this.initKeyEvents()}var l=parseInt(this.settings.start_at_index,10);if(e.location.hash&&e.location.hash.indexOf("#adi-mage")===0){l=e.location.hash.replace(/[^0-9]+/g,"");if((l*1)!=l){l=this.settings.start_at_index}}this.loading(true);this.showImage(l,function(){if(m.settings.slideshow.autostart){m.preloadImage(l+1);m.slideshow.start()}});this.fireCallback(this.settings.callbacks.init)},setupAnimations:function(){this.animations={"slide-vert":g,"slide-hori":i,resize:a,fade:f,none:b}},setupElements:function(){this.controls=this.wrapper.find(".ad-controls");this.gallery_info=c('<p class="ad-info"></p>');this.controls.append(this.gallery_info);this.image_wrapper=this.wrapper.find(".ad-image-wrapper");this.image_wrapper.empty();this.nav=this.wrapper.find(".ad-nav");this.thumbs_wrapper=this.nav.find(".ad-thumbs");this.preloads=c('<div class="ad-preloads"></div>');this.loader=c('<img class="ad-loader" src="'+this.settings.loader_image+'">');this.image_wrapper.append(this.loader);this.loader.hide();c(h.body).append(this.preloads)},loading:function(k){if(k){this.loader.show()}else{this.loader.hide()}},addAnimation:function(k,l){if(c.isFunction(l)){this.animations[k]=l}},findImages:function(){var p=this;this.images=[];var o=0;var n=0;var m=this.thumbs_wrapper.find("a");var l=m.length;if(this.settings.thumb_opacity<1){m.find("img").css("opacity",this.settings.thumb_opacity)}m.each(function(r){var t=c(this);var s=t.attr("href");var q=t.find("img");if(!p.isImageLoaded(q[0])){q.load(function(){o+=this.parentNode.parentNode.offsetWidth;n++})}else{o+=q[0].parentNode.parentNode.offsetWidth;n++}t.addClass("ad-thumb"+r);t.click(function(){p.showImage(r);p.slideshow.stop();return false}).hover(function(){if(!c(this).is(".ad-active")&&p.settings.thumb_opacity<1){c(this).find("img").fadeTo(300,1)}p.preloadImage(r)},function(){if(!c(this).is(".ad-active")&&p.settings.thumb_opacity<1){c(this).find("img").fadeTo(300,p.settings.thumb_opacity)}});var t=false;if(q.data("ad-link")){t=q.data("ad-link")}else{if(q.attr("longdesc")&&q.attr("longdesc").length){t=q.attr("longdesc")}}var v=false;if(q.data("ad-desc")){v=q.data("ad-desc")}else{if(q.attr("alt")&&q.attr("alt").length){v=q.attr("alt")}}var u=false;if(q.data("ad-title")){u=q.data("ad-title")}else{if(q.attr("title")&&q.attr("title").length){u=q.attr("title")}}p.images[r]={thumb:q.attr("src"),image:s,error:false,preloaded:false,desc:v,title:u,size:false,link:t}});var k=setInterval(function(){if(l==n){o-=100;var s=p.nav.find(".ad-thumb-list");s.css("width",o+"px");var r=1;var q=s.height();while(r<201){s.css("width",(o+r)+"px");if(q!=s.height()){break}q=s.height();r++}clearInterval(k)}},100)},initKeyEvents:function(){var k=this;c(h).keydown(function(l){if(l.keyCode==39){k.nextImage();k.slideshow.stop()}else{if(l.keyCode==37){k.prevImage();k.slideshow.stop()}}})},initNextAndPrev:function(){this.next_link=c('<div class="ad-next"><div class="ad-next-image"></div></div>');this.prev_link=c('<div class="ad-prev"><div class="ad-prev-image"></div></div>');this.image_wrapper.append(this.next_link);this.image_wrapper.append(this.prev_link);var k=this;this.prev_link.add(this.next_link).mouseover(function(l){c(this).css("height",k.image_wrapper_height);c(this).find("div").show()}).mouseout(function(l){c(this).find("div").hide()}).click(function(){if(c(this).is(".ad-next")){k.nextImage();k.slideshow.stop()}else{k.prevImage();k.slideshow.stop()}}).find("div").css("opacity",0.7)},initBackAndForward:function(){var m=this;this.scroll_forward=c('<div class="ad-forward"></div>');this.scroll_back=c('<div class="ad-back"></div>');this.nav.append(this.scroll_forward);this.nav.prepend(this.scroll_back);var l=0;var k=false;c(this.scroll_back).add(this.scroll_forward).click(function(){var n=m.nav_display_width-50;if(m.settings.scroll_jump>0){var n=m.settings.scroll_jump}if(c(this).is(".ad-forward")){var o=m.thumbs_wrapper.scrollLeft()+n}else{var o=m.thumbs_wrapper.scrollLeft()-n}if(m.settings.slideshow.stop_on_scroll){m.slideshow.stop()}m.thumbs_wrapper.animate({scrollLeft:o+"px"});return false}).css("opacity",0.6).hover(function(){var n="left";if(c(this).is(".ad-forward")){n="right"}k=setInterval(function(){l++;if(l>30&&m.settings.slideshow.stop_on_scroll){m.slideshow.stop()}var o=m.thumbs_wrapper.scrollLeft()+1;if(n=="left"){o=m.thumbs_wrapper.scrollLeft()-1}m.thumbs_wrapper.scrollLeft(o)},10);c(this).css("opacity",1)},function(){l=0;clearInterval(k);c(this).css("opacity",0.6)})},_afterShow:function(){this.gallery_info.html((this.current_index+1)+" / "+this.images.length);if(!this.settings.cycle){this.prev_link.show().css("height",this.image_wrapper_height);this.next_link.show().css("height",this.image_wrapper_height);if(this.current_index==(this.images.length-1)){this.next_link.hide()}if(this.current_index==0){this.prev_link.hide()}}this.fireCallback(this.settings.callbacks.afterImageVisible)},_getContainedImageSize:function(l,k){if(k>this.image_wrapper_height){var m=l/k;k=this.image_wrapper_height;l=this.image_wrapper_height*m}if(l>this.image_wrapper_width){var m=k/l;l=this.image_wrapper_width;k=this.image_wrapper_width*m}return{width:l,height:k}},_centerImage:function(n,l,k){n.css("top","0px");if(k<this.image_wrapper_height){var m=this.image_wrapper_height-k;n.css("top",(m/2)+"px")}n.css("left","0px");if(l<this.image_wrapper_width){var m=this.image_wrapper_width-l;n.css("left",(m/2)+"px")}},_getDescription:function(k){var m=false;if(k.desc.length||k.title.length){var l="";if(k.title.length){l='<strong class="ad-description-title">'+k.title+"</strong>"}var m="";if(k.desc.length){m="<span>"+k.desc+"</span>"}m=c('<p class="ad-image-description">'+l+m+"</p>")}return m},showImage:function(k,n){if(this.images[k]&&!this.in_transition){var l=this;var m=this.images[k];this.in_transition=true;if(!m.preloaded){this.loading(true);this.preloadImage(k,function(){l.loading(false);l._showWhenLoaded(k,n)})}else{this._showWhenLoaded(k,n)}}},_showWhenLoaded:function(s,y){if(this.images[s]){var l=this;var n=this.images[s];var o=c(h.createElement("div")).addClass("adi-mage");var q=c(new Image()).attr("src",n.image);if(n.link){var v=c('<a href="'+n.link+'" target="_blank"></a>');v.append(q);o.append(v)}else{o.append(q)}this.image_wrapper.prepend(o);var z=this._getContainedImageSize(n.size.width,n.size.height);q.attr("width",z.width);q.attr("height",z.height);o.css({width:z.width+"px",height:z.height+"px"});this._centerImage(o,z.width,z.height);var r=this._getDescription(n,o);if(r){if(!this.settings.description_wrapper){o.append(r);var k=z.width-parseInt(r.css("padding-left"),10)-parseInt(r.css("padding-right"),10);r.css("width",k+"px")}else{this.settings.description_wrapper.append(r)}}this.highLightThumb(this.nav.find(".ad-thumb"+s));var w="right";if(this.current_index<s){w="left"}this.fireCallback(this.settings.callbacks.beforeImageVisible);if(this.current_image||this.settings.animate_first_image){var x=this.settings.animation_speed;var u="swing";var p=this.animations[this.settings.effect].call(this,o,w,r);if(typeof p.speed!="undefined"){x=p.speed}if(typeof p.easing!="undefined"){u=p.easing}if(this.current_image){var m=this.current_image;var t=this.current_description;m.animate(p.old_image,x,u,function(){m.remove();if(t){t.remove()}})}o.animate(p.new_image,x,u,function(){l.current_index=s;l.current_image=o;l.current_description=r;l.in_transition=false;l._afterShow();l.fireCallback(y)})}else{this.current_index=s;this.current_image=o;l.current_description=r;this.in_transition=false;l._afterShow();this.fireCallback(y)}}},nextIndex:function(){if(this.current_index==(this.images.length-1)){if(!this.settings.cycle){return false}var k=0}else{var k=this.current_index+1}return k},nextImage:function(l){var k=this.nextIndex();if(k===false){return false}this.preloadImage(k+1);this.showImage(k,l);return true},prevIndex:function(){if(this.current_index==0){if(!this.settings.cycle){return false}var k=this.images.length-1}else{var k=this.current_index-1}return k},prevImage:function(l){var k=this.prevIndex();if(k===false){return false}this.preloadImage(k-1);this.showImage(k,l);return true},preloadAll:function(){var l=this;var k=0;function m(){if(k<l.images.length){k++;l.preloadImage(k,m)}}l.preloadImage(k,m)},preloadImage:function(l,o){if(this.images[l]){var n=this.images[l];if(!this.images[l].preloaded){var k=c(new Image());k.attr("src",n.image);if(!this.isImageLoaded(k[0])){this.preloads.append(k);var m=this;k.load(function(){n.preloaded=true;n.size={width:this.width,height:this.height};m.fireCallback(o)}).error(function(){n.error=true;n.preloaded=false;n.size=false})}else{n.preloaded=true;n.size={width:k[0].width,height:k[0].height};this.fireCallback(o)}}else{this.fireCallback(o)}}},isImageLoaded:function(k){if(typeof k.complete!="undefined"&&!k.complete){return false}if(typeof k.naturalWidth!="undefined"&&k.naturalWidth==0){return false}return true},highLightThumb:function(k){this.thumbs_wrapper.find(".ad-active").removeClass("ad-active");k.addClass("ad-active");if(this.settings.thumb_opacity<1){this.thumbs_wrapper.find("a:not(.ad-active) img").fadeTo(300,this.settings.thumb_opacity);k.find("img").fadeTo(300,1)}var l=k[0].parentNode.offsetLeft;l-=(this.nav_display_width/2)-(k[0].offsetWidth/2);this.thumbs_wrapper.animate({scrollLeft:l+"px"})},fireCallback:function(k){if(c.isFunction(k)){k.call(this)}}};function d(k,l){this.init(k,l)}d.prototype={start_link:false,stop_link:false,countdown:false,controls:false,settings:false,nextimage_callback:false,enabled:false,running:false,countdown_interval:false,init:function(k,m){var l=this;this.nextimage_callback=k;this.settings=m},create:function(){this.start_link=c('<span class="ad-slideshow-start">'+this.settings.start_label+"</span>");this.stop_link=c('<span class="ad-slideshow-stop">'+this.settings.stop_label+"</span>");this.countdown=c('<span class="ad-slideshow-countdown"></span>');this.controls=c('<div class="ad-slideshow-controls"></div>');this.controls.append(this.start_link).append(this.stop_link).append(this.countdown);this.countdown.hide();var k=this;this.start_link.click(function(){k.start()});this.stop_link.click(function(){k.stop()});c(h).keydown(function(l){if(l.keyCode==83){if(k.running){k.stop()}else{k.start()}}});return this.controls},disable:function(){this.enabled=false;this.stop();this.controls.hide()},enable:function(){this.enabled=true;this.controls.show()},toggle:function(){if(this.enabled){this.disable()}else{this.enable()}},start:function(){if(this.running||!this.enabled){return false}var k=this;this.running=true;this.controls.addClass("ad-slideshow-running");this._next();this.fireCallback(this.settings.onStart);return true},stop:function(){if(!this.running){return false}this.running=false;this.countdown.hide();this.controls.removeClass("ad-slideshow-running");clearInterval(this.countdown_interval);this.fireCallback(this.settings.onStop);return true},_next:function(){var m=this;var n=this.settings.countdown_prefix;var l=this.settings.countdown_sufix;clearInterval(m.countdown_interval);this.countdown.show().html(n+(this.settings.speed/1000)+l);var k=0;this.countdown_interval=setInterval(function(){k+=1000;if(k>=m.settings.speed){var p=function(){if(m.running){m._next()}k=0};if(!m.nextimage_callback(p)){m.stop()}k=0}var o=parseInt(m.countdown.text().replace(/[^0-9]/g,""),10);o--;if(o>0){m.countdown.html(n+o+l)}},1000)},fireCallback:function(k){if(c.isFunction(k)){k.call(this)}}}})(jQuery,this,this.document);
