/* ©2011 Didier Berck */

var Slider = Class.create({
						  
	initialize: function() {
		this.current = 0;
		this.isFading = false;
		this.slides = new Array();
		this.resizeSlider();
		this.path = "./"
		Event.observe(window, 'resize', this.resizeSlider);
	}, // initialize
				  
	start: function() {
		$$('#background img').each(function(elt) {
			this.slides.push(elt.readAttribute('src'));
		}, this);
		if(this.slides.length > 1) {
			this.resizeSlider();
			$$('head script').each(function(elt) {
				if(elt.readAttribute('src') && elt.readAttribute('src').include('../')) {
					this.path = "../";
					throw $break;
				}
			}, this);
			$('bg').remove();
			$('background').insert({
				before: '<div id="prev"><a href="#prev"><img src="' + this.path + 'images/bt-prev.png" alt="Previous" /></a></div> \
					<div id="next"><a href="#next"><img src="' + this.path + 'images/bt-next.png" alt="Next" /></a></div>'
			});
			Event.observe($('prev').down('a'), 'click', this.onClickPrev.bind(this));
			Event.observe($('next').down('a'), 'click', this.onClickNext.bind(this));
			this.pe = new PeriodicalExecuter(this.peSlideChange.bind(this), 4);
		}
	}, // start
	
	resizeSlider: function(evt) {
		if(document.viewport.getDimensions().width / 1920 > document.viewport.getDimensions().height / 1280) {
			var w = document.viewport.getDimensions().width;
			var h = w / 1920 * 1280;
		} else {
			var h = document.viewport.getDimensions().height;
			var w = h / 1280 * 1920;
		}
		$$('img.slide').each(function(elt) {
			$(elt).writeAttribute('width', w);
			$(elt).writeAttribute('height', h);
			$(elt).setStyle({
				width: w +'px',
				height: h +'px'
			});
		})
	}, // resizeSlider
	
	peSlideChange: function(pe) {
		this.nextImage();
	}, // peSlideChange
	
	onClickPrev: function(evt) {
		evt.stop();
		this.pe.stop();
		this.prevImage();
	}, // onClickPrev
	
	onClickNext: function(evt) {
		evt.stop();
		this.pe.stop();
		this.nextImage();
	}, // onClickNext
	
	nextImage: function() {
		if(!this.isFading) {
			this.isFading = true;
			var elt = $('background').down('img:last-child');
			new Effect.Fade(elt, {
				duration: 0.8,
				afterFinish: function(eff) {
					var elt = eff.element;
					elt.remove();
					$('background').insert({
						top: elt
					});
					elt.show();
					this.isFading = false;
				}.bind(this)
			});
		}
	}, // nextImage
	
	prevImage: function() {
		if(!this.isFading) {
			this.isFading = true;
			var elt = $('background').down('img:first-child');
			elt.remove()
			$('background').insert({
				bottom: elt
			});
			elt.hide();
			new Effect.Appear(elt, {
				duration: 0.8,
				afterFinish: function(eff) {
					this.isFading = false;
				}.bind(this)
			});
		}
	} // prevImage
});

/*Event.observe(document, 'dom:loaded', function(evt) {
	var slider = new Slider();
	Event.observe(window, 'load', function(evt) {
		slider.start();  
	}); 
});*/
