var chemaGallery = new Class({
	Implements: Options,

  initialize: function(thumbs, images, pages,options) {
		this.setOptions(options);
		this.thumbs = thumbs;
		this.images = images;
		this.pages = pages;
		
		this.category = null;
		
		this.convertThumbs();
		this.showFirst();
		
	},
	
	convertThumbs: function() {
		this.thumbs.each(function(thumbContainer, count) {
			this.convertThumb(thumbContainer, count);
		}, this);
	},
	
	showFirst: function(){
	
		var el = this.images.getElements("."+this.pages)[0].setStyle('display','block');
		this.category = el;
		$$('#gallery_menu ul li a')[0].addClass('current');
	},
		
	/**
	 * Converts one single thumb.
	 * @param {HTMLelement} thumbContainer
	 * @param {Integer} count
	 */
	convertThumb: function(thumbContainer, count) {
		if(!$defined(thumbContainer)) {
			return;
		}
		
		var container = thumbContainer.setProperty('href', 'javascript: void(0);').getFirst().getProperty('rel');
		
		if($defined(container)){
			thumbContainer.getFirst().addEvent('click', this.select.bind(this, [container,thumbContainer.getFirst()]));	
//			container = "lightbox-"+container;
			//thumbContainer.getFirst().setProperty('rel',container);
			this.setThumbs(container);
		}

	},
	
	select: function(container,section){
		
		if(this.images.getElement('.'+container)){
		
			
			if(!$defined(this.category)){
				
				section.addClass('current');
				this.category = this.images.getElement('.'+container).setStyle('display','block');
			}
			
			else if($defined(this.category)) {
				//this prevents an ugly effect if you click on the currently selected item
				
				if(container == this.category) {
					return false;
				}
				
				else {
					this.deselect(this.category);
					this.category = this.images.getElement('.'+container).setStyle('display','block');
					section.addClass('current');
				}
			}
			
		}

	},
	
	deselect: function(container){
		
		if($defined(container))
			container.setStyle('display','none');
		
		$$('#gallery_menu ul li a').each(function (el){
			el.removeClass('current');
		});
	},
	
	setThumbs: function (container){
	
		if($$(container)){
			
			this.images.getElement("."+container).getElements('a').each( function (el){
						
						el.setProperty('rel',"lightbox-"+container);
						
						});
		
		}
	
	}
	
});
