var gallerySet=gallery.extend({initialize:function(element,options){this.setOptions({manualSetData:[],gallerySelector:"div.galleryElement",galleryTitleSelector:"h2",textGallerySelector:'Galleries',textShowGallerySelector:'Other Galleries',textGalleryInfo:'{0} pictures',startWithSelector:true,textShowCarousel:'{0}/{1} Pictures',carouselPreloader:false},options);this.gallerySet=this.options.manualSetData;this.addEvent('onPopulated',this.createGallerySelectorTab.bind(this));this.addEvent('onPopulated',this.createGallerySelector.bind(this));this.startWithSelectorFn=this.toggleGallerySelector.pass(true,this);if(this.options.startWithSelector)
this.addEvent('onGallerySelectorCreated',this.startWithSelectorFn);this.parent(element,this.options);},populateData:function(){options=this.options;var data=$A(this.gallerySet);this.populateFrom.getElements(options.gallerySelector).each(function(galEl){currentGalArrayPlace=0;galleryDict={title:galEl.getElement(options.galleryTitleSelector).innerHTML,elements:[]}
galleryDict.elements.extend(this.populateGallery(galEl,0));data.extend([galleryDict]);if(this.options.destroyAfterPopulate)
galEl.remove();},this);this.gallerySet=data;this.galleryData=data[0].elements;this.currentGallery=0;this.fireEvent('onPopulated');},changeGallery:function(number)
{if(number!=this.currentGallery)
{this.changeData(this.gallerySet[number].elements);this.maxIter=this.gallerySet[number].elements.length;this.currentGallery=number;this.gallerySelectorBtn.setHTML(this.gallerySet[number].title);this.fireEvent('onGalleryChanged');}
this.toggleGallerySelector(false);},createGallerySelectorTab:function(){this.gallerySelectorBtn=new Element('a').addClass('gallerySelectorBtn').setProperties({title:this.options.textShowGallerySelector}).setHTML(this.options.textShowGallerySelector).addEvent('click',function(){this.toggleGallerySelector(true);}.bind(this)).injectInside(this.galleryElement);this.addEvent('onShowCarousel',function(){this.gallerySelectorBtn.setStyle('zIndex',10)}.bind(this));this.addEvent('onCarouselHidden',function(){this.gallerySelectorBtn.setStyle('zIndex',15)}.bind(this));},createGallerySelector:function(){this.gallerySelector=new Fx.Styles(new Element('div').addClass('gallerySelector').injectInside(this.galleryElement).setStyles({'display':'none','opacity':'0'}));this.gallerySelectorTitle=new Element('h2').setHTML(this.options.textGallerySelector).injectInside(this.gallerySelector.element);var gallerySelectorHeight=this.galleryElement.offsetHeight-50-10-2;this.gallerySelectorWrapper=new Fx.Style(new Element('div').addClass('gallerySelectorWrapper').setStyle('height',gallerySelectorHeight+"px").injectInside(this.gallerySelector.element));this.gallerySelectorInner=new Element('div').addClass('gallerySelectorInner').injectInside(this.gallerySelectorWrapper.element);this.gallerySelectorWrapper.scroller=new Scroller(this.gallerySelectorWrapper.element,{area:100,velocity:0.3}).start();this.createGalleryButtons();this.fireEvent('onGallerySelectorCreated');},createGalleryButtons:function(){var galleryButtonWidth=((this.galleryElement.offsetWidth-30)/2)-14;this.gallerySet.each(function(galleryItem,index){var button=new Element('div').addClass('galleryButton').injectInside(this.gallerySelectorInner).addEvents({'mouseover':function(myself){myself.button.addClass('hover');}.pass(galleryItem,this),'mouseout':function(myself){myself.button.removeClass('hover');}.pass(galleryItem,this),'click':function(myself,number){this.changeGallery.pass(number,this)();}.pass([galleryItem,index],this)}).setStyle('width',galleryButtonWidth);galleryItem.button=button;var thumbnail="";if(this.options.showCarousel)
thumbnail=galleryItem.elements[0].thumbnail;else
thumbnail=galleryItem.elements[0].image;new Element('div').addClass('preview').setStyle('backgroundImage',"url('"+thumbnail+"')").injectInside(button);new Element('h3').setHTML(galleryItem.title).injectInside(button);new Element('p').addClass('info').setHTML(formatString(this.options.textGalleryInfo,galleryItem.elements.length)).injectInside(button);},this);new Element('br').injectInside(this.gallerySelectorInner).setStyle('clear','both');},toggleGallerySelector:function(state){if(state)
this.gallerySelector.start({'opacity':1}).element.setStyle('display','block');else
this.gallerySelector.start({'opacity':0});},initHistory:function(){this.fireEvent('onHistoryInit');this.historyKey=this.galleryElement.id+'-gallery';if(this.options.customHistoryKey)
this.historyKey=this.options.customHistoryKey();this.history=HistoryManager.register(this.historyKey,[1,1],function(values){this.changeGallery.pass(parseInt(values[0])-1,this).delay(10);if(this.gallerySelector)
this.toggleGallerySelector.pass(false,this).delay(500);this.goTo.pass(parseInt(values[1])-1,this).delay(100);}.bind(this),function(values){return[this.historyKey,'(',values[0],')','-picture','(',values[1],')'].join('');}.bind(this),this.historyKey+'\\((\\d+)\\)-picture\\((\\d+)\\)');updateHistory=function(){this.history.setValue(0,this.currentGallery+1);this.history.setValue(1,this.currentIter+1);}.bind(this);this.addEvent('onChanged',updateHistory);this.addEvent('onGalleryChanged',updateHistory);this.fireEvent('onHistoryInited');}});
