/*
Author: James Olson
Date: circa 7/1/09
if modifications need to be done please do them in lb_v2_unpacked.js and then repack here!
*/
var Carousel=null;var gallery_carousel=null;Carousel=Class.create({initialize:function(options){this.options=Object.extend({main_image:'photoViewerMainImage',next_button:'nextImage',previous_button:'previousImage',start_lightbox:'carousel_start_lightbox',start_slideshow:'carousel_start_lightbox_show',image_title:'carousel_title',slideshowDelay:5,visible:4,expand:false,scroll:1,mainPhotoResizeMethod:null,thumbPhotoResizeMethod:null},options||{});this.ScrollBlock=new gallery_carousel('carousel',{visible:this.options.visible,scroll:this.options.scroll,expand:this.options.expand});this.Photo_Array=this.ScrollBlock.ul.select('img');this.Main_Image=$(this.options.main_image);if(this.options.mainPhotoResizeMethod!=null){this.Main_Image_Size=this.options.mainPhotoResizeMethod}else{this.Main_Image_Size=this.Main_Image.readAttribute('size')}this.Next=$(this.options.next_button);this.Previous=$(this.options.previous_button);this.image_title=$(this.options.image_title);this.ShowingImage=0;this.titleText='';this.setup();this.startObserving()},setup:function(){var j=0,i=0;try{this.Main_Image.up('a').writeAttribute('rel','gallery[mygallery]')}catch(e){}this.ScrollBlock.ul.select('a').each(function(elem){if(j>0){elem.addClassName('lightview');elem.writeAttribute('rel','gallery[mygallery]')}elem.addClassName('stop_view');j++});this.Photo_Array.each(function(elem){elem.writeAttribute('image_number',i);i++});if(this.image_title!=undefined&&this.image_title!=null){this.titleText=this.Photo_Array[0].readAttribute('title');if(this.titleText!=undefined&&this.titleText!=''){this.image_title.show();this.image_title.update(this.titleText)}else{this.image_title.hide();this.titleText=''}}this.SetActiveImage(this.Photo_Array[0]);if(this.options.slideshowDelay&&Lightview!=undefined){Lightview.options.slideshowDelay=this.options.slideshowDelay}this.Buttons()},startObserving:function(){this.ScrollBlock.ul.select('a').each(function(elem){elem.observe('click',this.ImageSwap.bind(this))}.bind(this));if(this.Next!=undefined){this.Next.observe('click',this.NextImage.bind(this))}if(this.Previous!=undefined){this.Previous.observe('click',this.PreviousImage.bind(this))}if($(this.options.start_lightbox)!=undefined){$(this.options.start_lightbox).observe('click',this.StartLightbox.bind(this))}if($(this.options.start_slideshow)!=undefined){$(this.options.start_slideshow).observe('click',this.StartLightboxSlideshow.bind(this))}},ImageSwap:function(e){Event.stop(e);this.StopLightBox();var el=Event.element(e);this.Main_Image.src=this.GetNewImage(el);this.ShowingImage=parseInt(el.readAttribute('image_number'));this.CleanImages();this.SetActiveImage(el);this.Buttons()},GetNewImage:function(el){if(this.image_title!=undefined&&this.image_title!=null){this.titleText=el.readAttribute('title');if(this.titleText!=undefined&&this.titleText!=''){this.image_title.show();this.image_title.update(this.titleText)}else{this.image_title.hide();this.titleText=''}}if(this.options.thumbPhotoResizeMethod!=null){return el.src.replace(this.options.thumbPhotoResizeMethod,this.Main_Image_Size)}else{return el.src.replace(el.readAttribute('size'),this.Main_Image_Size)}},CleanImages:function(){this.Photo_Array.each(function(elem){elem.removeClassName('selected_image')})},SetActiveImage:function(img){img.addClassName('selected_image')},NextImage:function(e){Event.stop(e);if(this.ScrollBlock.running||this.ShowingImage>=(this.ScrollBlock.itemLength-1)){this.Buttons();return}else{this.ShowingImage++;this.Main_Image.src=this.GetNewImage(this.Photo_Array[this.ShowingImage]);this.CleanImages();this.SetActiveImage(this.Photo_Array[this.ShowingImage]);this.ScrollBlock.getImageAt(this.ShowingImage);this.Buttons()}return},PreviousImage:function(e){Event.stop(e);if(this.ScrollBlock.running||this.ShowingImage<=0){this.Buttons();return}else{this.ShowingImage--;this.Main_Image.src=this.GetNewImage(this.Photo_Array[this.ShowingImage]);this.CleanImages();this.SetActiveImage(this.Photo_Array[this.ShowingImage]);this.ScrollBlock.getImageAt(this.ShowingImage);this.Buttons()}return},Buttons:function(){if(this.ShowingImage==0){this.Next.removeClassName('next-previous-off');this.Previous.addClassName('next-previous-off')}else if(this.ShowingImage>=this.ScrollBlock.itemLength-1){this.Next.addClassName('next-previous-off');this.Previous.removeClassName('next-previous-off')}else{this.Next.removeClassName('next-previous-off');this.Previous.removeClassName('next-previous-off')}},StopLightBox:function(){if(Lightview!==undefined){Lightview.hide()}return},StartLightbox:function(e){if(Lightview!==undefined){if(Lightview.sliding==true){Lightview.stopSlideshow()}Lightview.show(this.Main_Image.up())}Event.stop(e)},StartLightboxSlideshow:function(e){if(Lightview!==undefined){Lightview.show(this.Main_Image.up());Lightview.startSlideshow()}Event.stop(e)},StartSlideshowMethod:function(){if(Lightview!==undefined){Lightview.show(this.Main_Image.up());Lightview.startSlideshow()}}});gallery_carousel=Class.create({initialize:function(element,options){this.options=Object.extend({auto:false,speed:2000,vertical:false,visible:4,skin_class:'jcarousel',start:0,expand:false,scroll:1,beforeStart:Prototype.emptyFunction,afterEnd:Prototype.emptyFunction},options||{});this.running=false;this.nextButton=null;this.prevButton=null;this.animCss=this.options.vertical?"top":"left";this.direction=this.options.vertical?"vertical":"horizontal";this.sizeCss=this.options.vertical?"height":"width";this.div=$(element);this.ul=this.div;this.tLi=this.div.select("li");this.tl=this.tLi.length;this.v=this.options.visible;this.li=this.div.select("li");this.itemLength=this.li.length;this.curr=this.options.start;this.div.wrap('div',{'class':this.options.skin_class+'-skin'});this.div.wrap('div',{'class':this.options.skin_class+'-container '+this.options.skin_class+'-container-'+this.direction});this.div.wrap('div',{'class':this.options.skin_class+'-clip '+this.options.skin_class+'-clip-'+this.direction});this.div.addClassName(this.options.skin_class+'-list '+this.options.skin_class+'-list-'+this.direction);this.div.up(1).insert({'top':'<div class="'+this.options.skin_class+'-prev '+this.options.skin_class+'-prev-'+this.direction+'"></div><div class="'+this.options.skin_class+'-next '+this.options.skin_class+'-next-'+this.direction+'"></div>'});if(this.options.expand)this.div.up(1).insert({'after':'<div class="'+this.options.skin_class+'-expand '+this.options.skin_class+'-expand-closed"></div>'});this.li.each(function(el){el.addClassName(this.options.skin_class+'-item')}.bind(this));this.div.setStyle({overflow:"hidden",position:"relative","z-index":"2",left:"0px"});this.btnPrev=this.div.up(1).select('.'+this.options.skin_class+'-prev')[0];this.btnNext=this.div.up(1).select('.'+this.options.skin_class+'-next')[0];this.liSize=this.options.vertical?this.height(this.li):this.width(this.li);this.ulSize=this.liSize*this.itemLength;this.divSize=this.liSize*this.v;this.ul.setStyle({width:this.ulSize+"px"});if(this.btnPrev){this.btnPrev.observe('click',this.previous.bind(this))}if(this.btnNext){this.btnNext.observe('click',this.next.bind(this))}if(this.options.auto){this.setTimer()}if(this.options.expand){$$('.'+this.options.skin_class+'-expand')[0].observe('click',this.expandThumbs.bind(this))}this.vis();this.setButtons()},width:function(el){var tempW=el[0].getWidth();if(tempW==0){tempW=this.css(el[0],'width')}return tempW+this.css(el[0],'marginLeft')+this.css(el[0],'marginRight')},height:function(el){var tempH=el[0].getHeight();if(tempH==0){tempH=this.css(el[0],'height')}return tempH+this.css(el[0],'marginTop')+this.css(el[0],'marginBottom')},previous:function(e){this.go(this.curr-this.options.scroll)},next:function(e){this.go(this.curr+this.options.scroll)},css:function(el,prop){return parseInt($(el).getStyle(prop))||0},vis:function(){return this.li.slice(this.curr).slice(0,this.v)},setTimer:function(){if(this.options.auto){this.timer=setTimeout(this.next.bind(this),this.options.speed)}return},getImageAt:function(pos){this.go(pos)},clearTimer:function(){clearTimeout(this.timer);return},go:function(to){if(this.options.auto){this.clearTimer()}if(!this.running){if(this.options.beforeStart){this.options.beforeStart(this,this.vis())}if(to<0||to>this.itemLength-this.v){return}else{this.curr=to}this.running=true;new Effect.Move(this.ul,{x:-(this.curr*this.liSize),mode:'absolute',afterFinish:function(){this.options.afterEnd(this,this.vis());this.running=false;this.setTimer()}.bind(this)});this.setButtons()}return},expandThumbs:function(e){var el=Event.element(e);if(el.hasClassName(this.options.skin_class+'-expand-closed')){el.removeClassName(this.options.skin_class+'-expand-closed');this.btnPrev.hide();this.btnNext.hide();this.div.up().addClassName(this.options.skin_class+'-expand-style')}else{el.addClassName(this.options.skin_class+'-expand-closed');this.btnPrev.show();this.btnNext.show();this.div.up().removeClassName(this.options.skin_class+'-expand-style')}},setButtons:function(){this.btnPrev.removeClassName(this.options.skin_class+'-prev-disabled-'+this.direction);this.btnNext.removeClassName(this.options.skin_class+'-next-disabled-'+this.direction);if(this.curr-this.options.scroll<0&&this.btnPrev){this.btnPrev.addClassName(this.options.skin_class+'-prev-disabled-'+this.direction)}if(this.curr+this.options.scroll>this.itemLength-this.v&&this.btnNext){this.btnNext.addClassName(this.options.skin_class+'-next-disabled-'+this.direction)}}});
