var slider = {
	slides : [
		'/medias/images/slides/local-teams-worldwide.jpg',
		'/medias/images/slides/talented-people.jpg',
		'/medias/images/slides/born-recyclers.jpg',
		'/medias/images/slides/safety-first.jpg',
		'/medias/images/slides/quality-culture.jpg',
		'/medias/images/slides/pioneering-solutions.jpg',
		'/medias/images/slides/targeting-performance.jpg',
		'/medias/images/slides/seeding-sustainability.jpg',
		'/medias/images/slides/comminution-wear-expertise.jpg',
		'/medias/images/slides/advanced-materials-specialist.jpg',
		'/medias/images/slides/patented-technologies.jpg'
	],
	images : [],
	data : [],
	current : 0,
	checkInterval : 0,
	slidingInterval : 0,
	slidingTimeout : 0,
	animating : false,
	duration : 1500,
	
	init : function() {
		jQuery(window).load(function($) {
			var ii;
			for(var i=0; i < slider.slides.length; i++) {
				ii = slider.images.length;
				slider.images[ii] = new Image();
				slider.images[ii].src = slider.slides[i];
			}
			slider.checkInterval = setInterval('slider.checkImagesLoading()', 500);
		});
	},
	
	checkImagesLoading : function() {
		var complete = true;
		for(var i=0; i < slider.images.length; i++) {
			if(!slider.images[i].complete) {
				complete = false;
				break;
			}
		}
		if(complete) {
			clearInterval(slider.checkInterval);
			slider.build();
		}
	},
	
	build : function() {
		var i;
		for(i=slider.images.length-1; i >= 0; i--) {
			slider.add(i);
		}
		var $ = jQuery;
		$('#slider').get(0).removeChild($('#slider div.slide').first().get(0));
		$('#slider-btns li.previous a').first().click(function() {
			slider.slidePrevious();
			return false;
		});
		$('#slider-btns li.next a').first().click(function() {
			slider.slide();
			return false;
		});
		slider.slidingTimeout = setTimeout('slider.slide()', 5000);
	},
	
	add : function(i) {
		var image = slider.images[i];
		var $ = jQuery;
		var div = $(document.createElement('div'));
		if(i > 0) {
			div.css('display', 'none');
		}
		$('#slider').get(0).appendChild(div.get(0));
		div.addClass('slide');
		div.css('background-image', 'url("' + image.src + '")');
		slider.data[i] = { div : div, position : 0 };
	},
	
	slide : function() {
		if(slider.animating) {
			return;
		}
		slider.animating = true;
		clearTimeout(slider.slidingTimeout);
		var next = slider.current < slider.data.length-1 ? slider.current+1 : 0;
		var $ = jQuery;
		$('#slider').get(0).appendChild(slider.data[next].div.get(0));
		slider.data[next].position = $('#slider').innerWidth();
		slider.data[next].div.css('left', slider.data[next].position + 'px');
		slider.data[next].div.css('display', 'block');
		slider.animate();
	},
	
	slidePrevious : function() {
		if(slider.animating) {
			return;
		}
		slider.animating = true;
		clearTimeout(slider.slidingTimeout);
		var previous = slider.current > 0 ? slider.current-1 : slider.data.length-1;
		var $ = jQuery;
		$('#slider').get(0).appendChild(slider.data[previous].div.get(0));
		slider.data[previous].position = -$('#slider').innerWidth();
		slider.data[previous].div.css('left', slider.data[previous].position + 'px');
		slider.data[previous].div.css('display', 'block');
		slider.animatePrevious();
	},
	
	animate : function() {
		var next = slider.current < slider.data.length-1 ? slider.current+1 : 0;
		var onComplete = function() {
			slider.data[slider.current].div.css('display', 'none');
			slider.slidingTimeout = setTimeout('slider.slide()', 5000);
			slider.animating = false;
			slider.current = next;
			slider.data[slider.current].position = 0;
		};
		var $ = jQuery;
		slider.data[slider.current].div.animate({ left : -$('#slider').innerWidth() }, slider.duration, onComplete);
		slider.data[next].div.animate({ left : 0 }, slider.duration);
	},
	
	animatePrevious : function() {
		var previous = slider.current > 0 ? slider.current-1 : slider.data.length-1;
		var onComplete = function() {
			slider.data[slider.current].div.css('display', 'none');
			slider.slidingTimeout = setTimeout('slider.slide()', 5000);
			slider.animating = false;
			slider.current = previous;
			slider.data[slider.current].position = 0;
		};
		var $ = jQuery;
		slider.data[slider.current].div.animate({ left : $('#slider').innerWidth() }, slider.duration, onComplete);
		slider.data[previous].div.animate({ left : 0 }, slider.duration);
	}
}

slider.init();
