(function(global){
	var intervalHandler;
	function sliderController(){
		if($j(".slider").length==0){
			return;
		}
		
		$j(".slider article:not(.selected)").hide();
		
		var buttons = $j(".slider .navigation a");
		var slides = $j(".slider article");
		var index = buttons.length;
		
		while(index--){
			$j(buttons[index]).addClass("button_"+index);
			$j(slides[index]).addClass("slide_"+index);
		}

               intervalHandler = window.setInterval(this.autoSlide,5000);

		buttons.bind("click",$j.proxy(this.selectSlide,this));
                buttons.bind("click",function(event, inside){
                    if (inside != 1)
                        window.clearInterval(intervalHandler);
                });
	}

	sliderController.prototype.autoSlide = function(event){
		
		var total = $j(".slider .navigation a").length;
		var a = $j(".slider .navigation .selected a")[0];
		var number = a.className.substr(a.className.lastIndexOf("_")+1);
		
		number++;
		
		if(number==total){
			number = 0;
		}
		
		$j(".slider a.button_"+number).trigger("click", ['1']);
	}
	
	sliderController.prototype.selectSlide = function(event){
		event.preventDefault();
		event.currentTarget.blur();
		
		if($j(event.currentTarget.parentNode).hasClass("selected")){
			return;
		}
		
		var selected = $j(".slider article.selected");
		$j(".slider .navigation .selected").removeClass("selected");
		selected.removeClass("selected");
		
		var number = event.currentTarget.className.substr(event.currentTarget.className.lastIndexOf("_")+1);
		var target = $j(".slider .slide_"+number);		
		$j(event.currentTarget.parentNode).addClass("selected");
		target.addClass("selected");
		target.fadeIn();

		selected.delay(200).fadeOut();
		
	}
	
	function onDOMReady(){
		global.sliderController = new sliderController();
	}
	
	$j(document).ready(onDOMReady);
	
})(this);

