var BrochureSlider = Class.create({
	initialize: function() {
		this.isSliding = false;
		this.currentSlide = 1;
		this.brochurePages = $('brochurePages');
		this.brochureSlidesContainer = $('brochureSlides');
		this.slideCount = this.brochureSlidesContainer.select('.brochureSlide').size();
		if(this.slideCount > 0) {
			this.brochureSlideContainerWidth = this.brochureSlidesContainer.select('.brochureSlide').first().getWidth();
		} else {
			this.brochureSlideContainerWidth = 0;
		}
	},
	slideNext: function() {
		this.slide(1);
	},
	slidePrevious: function() {
		this.slide(-1);
	},
	slide: function(direction) {
		if(this.isSliding == false) {
			var slideAmount = 0;
			
			if(direction > 0 && this.currentSlide < this.slideCount) {
				slideAmount = -this.brochureSlideContainerWidth;
				this.currentSlide++;
			} else if(direction < 0 && this.currentSlide > 1) {
				slideAmount = this.brochureSlideContainerWidth;
				this.currentSlide--;
			}
			
			if(slideAmount != 0) {
				var counter = 0;
				var currentSlide = this.currentSlide; 
				this.brochurePages.select('.pageCircle').each(function(elm) {
					counter++;
					if(counter == currentSlide) {
						elm.addClassName('pageSelected');
					} else {
						elm.removeClassName('pageSelected');
					}
				});
				
				new Effect.Move(this.brochureSlidesContainer, {
					x: slideAmount,
					y: 0,
					mode: 'relative',
					transition: Effect.Transitions.sinoidal,
					beforeStart: function(ef) { this.isSliding = true; }.bind(this),
					afterFinish: function(ef) { this.isSliding = false; }.bind(this)
				});
			}
		}
	}
});

document.observe('dom:loaded', function() {
	var brochure = new BrochureSlider();
	
	$('brochureNext').observe('click', function(evt) {
		evt.stop();
		brochure.slideNext();
	});
	
	$('brochurePrevious').observe('click', function(evt) {
		evt.stop();
		brochure.slidePrevious();
	});
});