// JavaScript Document
var headerSlider = new Class({
	
	Implements: [Options],
	
	options: {
		headerSelector: 'siteHeader',
		elementSelector: 'headerSlider',
		buttonSelector: '.headerDots img',
		imgWidth: 740,
		duration: 2000,
		delay: 6000
	},
	
	initialize: function(options) {
		var self = this;
		self.delay = self.options.delay;
		self.interval = '';
		self.duration = self.options.duration;
		self.headerSelector = self.options.headerSelector;
		self.elementSelector = self.options.elementSelector;
		self.buttonSelector = self.options.buttonSelector;
		self.stopSlide = true;
		self.header = $(self.headerSelector);
		self.slider = $(self.elementSelector);
		if(self.slider) {
			self.sliderTween = new Fx.Tween(self.slider,{
				duration: self.duration,
				transition: 'sine:in:out',
				link: 'cancel',
				property: 'margin-left'
			});
			self.index = 0;
			self.step = self.options.imgWidth;
			self.maxIndex = $$('#' + self.elementSelector + ' img').length - 1;
			if(self.maxIndex > 1) {
				self.buttons = $$(self.buttonSelector);
				self.buttons.each(function(item, index) {
					item.addEvent('click',function() {
						self.stopSlide = true;
						self.stopSlider();
						var newOffset = (self.step * index) * -1;
						self.index = index;
						self.setActiveButton();
						self.sliderTween.start(newOffset + 'px');
					});
				});
				self.header.addEvent('mouseenter',function() {
					self.stopSlide = true;
					self.stopSlider();
				});
				self.header.addEvent('mouseleave',function() {
					self.stopSlide = false;
					self.interval = self.doSlide.periodical(self.delay, self);
				});
				self.stopSlide = false;
				self.interval = this.doSlide.periodical(self.delay, self);
			} else {
				$$('#siteHeader .headerDots').setStyle('display','none');
			}
		}
	},
	
	doSlide: function() {
		var self = this;
		if(self.stopSlide == false) {
			var newIndex = self.index + 1;
			if(newIndex > self.maxIndex) {
				newIndex = 0;
				self.index = newIndex;
				self.slider.setStyle('margin-left','0px');
				newIndex = self.index + 1;
			} 
			var newOffset = (self.step * newIndex) * -1;
			self.index = newIndex;
			self.setActiveButton();
			self.sliderTween.start(newOffset + 'px');
		}
	},
	
	stopSlider: function() {
		var self = this;
		clearInterval(self.interval);
	},
	
	setActiveButton: function() {
		var self = this;
		var checkIndex = self.index;
		if(checkIndex == self.maxIndex) {
			checkIndex = 0;	
		}
		self.buttons.each(function(item, index) {
			if(index == checkIndex) {
				item.src = '/images/headerDotActive.png';				
			} else {
				item.src = '/images/headerDot.png';
			}
		});
	}
	
});
