var PhotoAlbum = new Class(

	{
	
		initialize : function(container, nav) {
			
			this.container = container ;
			this.images = container.getChildren() ;
			this.images.each(
				function(image) {
					
					image.setStyle('top', (this.container.offsetHeight - image.get('height').toInt()) / 2) ;
					image.setStyle('left', (this.container.offsetWidth - image.get('width').toInt()) / 2) ;

				},
				this
			)

			if(this.images.length > 1) {
			
				this.nav = nav.getElement('.TabContent') ;
				this.currentImage = 0 ;
				this.images[this.currentImage].setStyle('display', 'block') ;
				this.nav.getFirst('.NavButton.NBFirst').addClass('Inactive') ;
				this.nav.getFirst('.NavButton.NBPrevious').addClass('Inactive') ;
				var button = this.nav.getFirst('.NavButton.NBNext') ;
				button.addEvents({
				
					'click' : this.clickHandler.bind(this).pass([button]),
					'mouseover' : this.overHandler.bind(this).pass([button]),
					'mouseout' : this.outHandler.bind(this).pass([button])
				
				}) ;
				button = this.nav.getFirst('.NavButton.NBLast') ;
				button.addEvents({
				
					'click' : this.clickHandler.bind(this).pass([button]),
					'mouseover' : this.overHandler.bind(this).pass([button]),
					'mouseout' : this.outHandler.bind(this).pass([button])
				
				}) ;
			
			} else if(this.images.length == 1) {
			
				this.images[0].setStyle('display', 'block') ;

			}
			
		},
		
		activateButtons : function(button1, button2) {
		
			button1.removeClass('Inactive') ;
			button2.removeClass('Inactive') ;
			button1.addEvents(
				{
					'click' : this.clickHandler.bind(this).pass([button1]),
					'mouseover' : this.overHandler.bind(this).pass([button1]),
					'mouseout' : this.outHandler.bind(this).pass([button1])
				}
			) ;
			button2.addEvents(
				{
					'click' : this.clickHandler.bind(this).pass([button2]),
					'mouseover' : this.overHandler.bind(this).pass([button2]),
					'mouseout' : this.outHandler.bind(this).pass([button2])
				}
			) ;
			
		},
		
		deactivateButtons : function(button1, button2) {
		
			button1.addClass('Inactive') ;
			button2.addClass('Inactive') ;
			button1.removeEvents() ;
			button2.removeEvents() ;
			
		},

		clickHandler : function(button) {
		
			if(button.hasClass('NBFirst')) {
			
				if(this.nav.getFirst('.NavButton.NBNext').hasClass('Inactive'))	
					this.activateButtons(this.nav.getFirst('.NavButton.NBNext'), this.nav.getFirst('.NavButton.NBLast')) ;
				
				this.images[this.currentImage].setStyle('display', '') ;
				this.currentImage = 0 ;
				this.images[this.currentImage].setStyle('display', 'block') ;
				this.deactivateButtons(button, this.nav.getFirst('.NavButton.NBPrevious')) ;
					
			} else if(button.hasClass('NBPrevious')) {
			
				if(this.nav.getFirst('.NavButton.NBNext').hasClass('Inactive'))	
					this.activateButtons(this.nav.getFirst('.NavButton.NBNext'), this.nav.getFirst('.NavButton.NBLast')) ;
				
				this.images[this.currentImage].setStyle('display', '') ;
				this.currentImage-- ;
				this.images[this.currentImage].setStyle('display', 'block') ;
				if(this.currentImage == 0)
					this.deactivateButtons(button, this.nav.getFirst('.NavButton.NBFirst')) ;
			
			} else if(button.hasClass('NBNext')) {
			
				if(this.nav.getFirst('.NavButton.NBPrevious').hasClass('Inactive'))	
					this.activateButtons(this.nav.getFirst('.NavButton.NBPrevious'), this.nav.getFirst('.NavButton.NBFirst')) ;
				
				this.images[this.currentImage].setStyle('display', '') ;
				this.currentImage++ ;
				this.images[this.currentImage].setStyle('display', 'block') ;
				if(this.currentImage == this.images.length - 1)
					this.deactivateButtons(button, this.nav.getFirst('.NavButton.NBLast')) ;
			
			} else {
			
				if(this.nav.getFirst('.NavButton.NBPrevious').hasClass('Inactive'))	
					this.activateButtons(this.nav.getFirst('.NavButton.NBPrevious'), this.nav.getFirst('.NavButton.NBFirst')) ;
				
				this.images[this.currentImage].setStyle('display', '') ;
				this.currentImage = this.images.length - 1 ;
				this.images[this.currentImage].setStyle('display', 'block') ;
					this.deactivateButtons(button, this.nav.getFirst('.NavButton.NBNext')) ;
			
			}
			
		},
		
		overHandler : function(button) {
		
		},
		
		outHandler : function(button) {
		
		}
		
	}
	
) ;

