var slider = {
	intro:false,
	slideIndex:1,
	
	// Initialize header
	init : function() {
		// Get container
		this.container = $('#banner')[0];
		
		// Get slides container
		this.slides_container = $('#banner .slides')[0];
		
		// Get slides
		this.slides = $('#banner .slide');
		
		// Get banner switcher
		this.switcher = $('#banner-switcher')[0];
		
		// Extend markup
		$(this.container).append('<div class="clouds_front"><div class="clouds"></div></div>');
		$(this.container).append('<div class="clouds_back"><div class="clouds"></div></div>');
		
		// Get clouds
		this.clouds_front = $('.clouds_front')[0];
		this.clouds_back = $('.clouds_back')[0];
		
		// Display intro
		if(this.intro){
			// Roll in topmenu
			$('#header').animate({'top':0},1500,'swing',function(){
				if($.browser.msie) $(slider.slides_container).show();
				else $(slider.slides_container).fadeIn(500);
			});
			for(i=0; slider.slides.length>i; i++){$(slider.switcher).append('<li class="slide-link"><a href="javascript:;">'+i+'</a></li>');}
			$(this.switcher).find('.slide-link a').eq(this.slides.length-1).addClass('active');
			$(this.switcher).find('.slide-link a').each(function(i,elm){
				setTimeout(function(){
					$(elm).css('display','block').click(function(){slider.slideTo(slider.slides.length-i)});
				},500*(i+2));
			});
		// Display elements without intro
		}else {
			$('#header').css('top',0);
			for(i=0; slider.slides.length>i; i++){$(slider.switcher).append('<li class="slide-link"><a href="javascript:;">'+i+'</a></li>');}
			$(this.switcher).find('.slide-link a').eq(this.slides.length-1).addClass('active');
			$(this.switcher).find('.slide-link a').css('display','block');
			if($.browser.msie) $(slider.slides_container).show();
			else $(slider.slides_container).fadeIn(500);
		}
		
		// Set prev / next button
		$(this.switcher).find('.previous a').click(function(){slider.prev();});
		$(this.switcher).find('.next a').click(function(){slider.next();});
		
		// Calibrate
		this.calibrate();
		
		// Slide clouds
		this.slideClouds();
		
		// Slide clouds
		this.slideSlides();
	},
	
	// Function to calibrate/calculate margin/padding
	calibrate : function() {
		// Get window width
		this.window_width = $(document).width();
		
		// Position slides correctly according to window-width
		$(this.slides).css('margin','0 '+((this.window_width-950)/2)+'px');
		
		// Set container width correctly
		$('.slides .container').width(this.window_width*this.slides.length);
	},
	
	slideSlides : function() {
		clearTimeout(this.sliderTimeout);
		this.sliderTimeout = setTimeout(function(){
			slider.next();
		},5000);
	},
	
	slideClouds : function() {
		// Prepare delay toggle
		this.delay = 0;
		// Set cloud-interval
		this.cloudInterval = setInterval(function(){
			// Move back-clouds
			if(slider.delay) slider.clouds_back.scrollLeft+=1;
			// Move front-clouds
			slider.clouds_front.scrollLeft+=1;
			// Reset clouds if it's the right time
			if(slider.clouds_front.scrollLeft>=850) slider.clouds_front.scrollLeft -= 850;
			if(slider.clouds_back.scrollLeft>=850) slider.clouds_back.scrollLeft -= 850;
			// Toggle delay
			slider.delay = ((slider.delay==0)?1:0);
		},80);
	},
	
	next : function() {
		this.slideTo(((this.slideIndex==this.slides.length)?1:this.slideIndex+1));
	},
	
	prev : function() {
		this.slideTo(((this.slideIndex==1)?this.slides.length:this.slideIndex-1));
	},
	
	slideTo : function(int) {
		$(this.slides_container).animate({scrollLeft:(int-1)*this.window_width},500,'swing',function(){
			slider.slideSlides();
		});
		$(this.switcher).find('.slide-link a').removeClass('active');
		$(this.switcher).find('.slide-link a').eq(this.slides.length-int).addClass('active');
		this.slideIndex = int;
	},
	
	resize : function() {
		clearTimeout(this.sliderTimeout);
		this.calibrate();
		this.slideSlides();
	}
}
// Run when dom is ready
$(document).ready(function(){
	slider.intro = true;
	slider.init(); 
});

// Attach resize event
$(window).resize(function(){
	slider.resize();
});

// Attach key-events
$(document).keydown(function(e){
	if (e.keyCode == 39) { 
		slider.next();
		return false;
	}
	else if (e.keyCode == 37) { 
		slider.prev();
		return false;
	}
});
