jQuery(document).ready(function(){
	
	//
	// Parallax effect - 42functions
	//
	jQuery.fn.parrallax = function() {
		jQuery(this).mousemove(function(e){
			var offset = jQuery(this).offset();
			jQuery(this).attr('pctx', (e.pageX - offset.left) / jQuery(this).width());
			jQuery(this).attr('pcty', (e.pageY - offset.top) / jQuery(this).height());
			jQuery('> *', this).each(function(){
				var rangex = jQuery(this).width()-jQuery(this).parent().width();
				var left   = (rangex * jQuery(this).parent().attr('pctx') - rangex);
				jQuery(this).css('left', left + 'px');
				var rangey = jQuery(this).height()-jQuery(this).parent().height();
				var top    = rangey * jQuery(this).parent().attr('pcty') - rangey;
				jQuery(this).css('top',top + 'px');
			})
			
		})
	}
	
	//
	// Slider - 42functions
	// 
	jQuery.fn.slider = function() {
		jQuery(this).mousemove(function(e){
			jQuery('.slider_controls').fadeIn();
		});
		jQuery(this).mouseleave(function(e){
			jQuery('.slider_controls').fadeOut();
		});
		
		currentFrame = 0;
		amountSlides = 0;
		autoslide = true; 
		autoslideTime = 5000; // e.g. 5 sec
		width = 959;
		height = 343;
		
		
		
		jQuery('.slider > div', this).each(function(){
			amountSlides ++;
		});
		if(amountSlides!=1){
			$('.slider > div').first().clone().appendTo('.slider');
		}
		
		jQuery('.slider').css('width', (amountSlides+1)*width);
		
		previousBall = '.id_0';
		function selectBall(){
			$(previousBall).css('background', '#000');
			activeBall = '.id_'+currentFrame;
			$(activeBall).css('background', '#f90');
			previousBall = activeBall;
		}
		function slideIt(direction) {
			switch(direction){
				case 'foward':
					if(currentFrame!=(amountSlides-1)){	
						$('.backward').fadeIn();
						currentFrame++;	
						$('.slider').stop(true, true ).animate({
						  left: (currentFrame*width)-((currentFrame*width)*2)
						}, 500, function() {
						  // Animation complete.
						});
						netgeslidefw = true;
					}
					
					if(netgeslidefw==false && currentFrame==(amountSlides-1)){
						currentFrame++;	
						$('.slider').stop(true, true ).animate({
						  left: (currentFrame*width)-((currentFrame*width)*2)
						}, 500, function() {
						  $('.slider').css('left', '0px');
						  currentFrame = 0;
						  selectBall();
						});
					}
					
					netgeslidefw = false;
					
				break;
				case 'backward':
					if(currentFrame!=0){
						$('.foward').fadeIn();
						currentFrame--;
						$('.slider').stop(true, true ).animate({
						  left: (currentFrame*width)-((currentFrame*width)*2)
						}, 500, function() {
						  // Animation complete.
						});
						netgeslidebw = true;
					}
					if(netgeslidebw==false && currentFrame==0){
						currentFrame = amountSlides;	
						currentFrame--;
						$('.slider').css('left', -(((amountSlides)*width)));
						
						 $('.slider').stop(true, true ).animate({
						  left: (currentFrame*width)-((currentFrame*width)*2)
						}, 500, function() {
						  
						  
						  selectBall();
						}); 
					}
					
					netgeslidebw = false;
					
				break;
			}		
			selectBall(); 	
		}
		
		sliderBalls = ''; // ^^
		
		function slideToFrame(framenumber){
			clearInterval(loopIt); 
			currentFrame = framenumber;
			selectBall(); 
			$('.slider').stop(true, true ).animate({
			  left: (currentFrame*width)-((currentFrame*width)*2)
			}, 500, function() {
			  // Animation complete.
			});
		}
		
		for(i=0; i<amountSlides; i++){
			sliderBalls += '<a href="#" class="sliderBal id_'+i+' ">&nbsp;</a>';
		}	
		
		
		$(this).append('<div class="slider_controls"></div>');
		$('.slider_controls').append('<div class="slider_nav" style="width:'+((15*amountSlides)+5)+'px">'+sliderBalls+'</div>');
		$('.slider_controls').append('<div class="backward"></div>');
		$('.slider_controls').append('<div class="foward"></div>');
		$('.foward').mousedown(function(){slideIt('foward'); clearInterval(loopIt); });
		$('.backward').mousedown(function(){slideIt('backward'); clearInterval(loopIt); });
		
		$('.sliderBal').mousedown(function(){
		var myClass = $(this).attr("class");
		slideToFrame(myClass.replace('sliderBal id_', ''));
		});	
		

		
		jQuery(window).bind("focus",function(event){
		         windowFocus = true;
		    }).bind("blur", function(event){
		         windowFocus = false;
		   });
		windowFocus = true;
		if(autoslide==true){
			var loopIt = setInterval(function() {
			    if(windowFocus){
			   		if(currentFrame!=(amountSlides-1)){	
				    	$('.backward').fadeIn();
				    	currentFrame++;	
				    	$('.slider').animate({
				    	  left: (currentFrame*width)-((currentFrame*width)*2)
				    	}, 500, function() {
				    	  // Animation complete.
				    	});
				    	netgeslidefw = true;
				    }
  
				    if(netgeslidefw==false && currentFrame==(amountSlides-1)){
				    	currentFrame++;	
				    	$('.slider').animate({
				    	  left: (currentFrame*width)-((currentFrame*width)*2)
				    	}, 500, function() {
				    	  $('.slider').css('left', '0px');
				    	  currentFrame = 0;
				    	  selectBall();
				    	});
				    }
				    selectBall();
				    netgeslidefw = false;
				}
		    
			 }, autoslideTime); // 1500 ms loop
		}
		 
		 selectBall();
		 
		 $('.slider_controls').fadeOut();
		 
		 
	}
});



