var sliderAnimated = {
	init : function () {
		var oSlider = $(".sliderAnimated");
		var oSliderInnerWrapper = $('<div class="slider-inner-wrapper"></div>');
		var oSliderInner = $('<div class="slider-inner"></div>');
		var oSliderNav = $('<div class="slider-nav"></div>');
		
		oSliderInnerWrapper.append( oSliderInner);
		oSlider.append( oSliderInnerWrapper);
		oSlider.append( oSliderNav);
		
		var actualNav;
		var animationClass;
		if( sliderAnimatedParams.animationMode == "fade"){
			oSliderInner.css( 'width', 502);
			animationClass = "animationFadeStyle";
		}
		if( sliderAnimatedParams.animationMode == "slide"){
			oSliderInner.css( 'width', sliderAnimatedConf.length * 500);
			animationClass = "animationSlideStyle";
		}
		$.each( sliderAnimatedConf, function( i, object){
			//console.log( object);
			oSliderInner.append('<div class="sliderAnimatedObjectContainer ' + (object.i == 0 ? 'selected' : '') + ' sliderObject' + object.i + ' ' + animationClass + '" index="' + object.i + '" ' + (object.i == 0 ? 'style="display: block;"' : '') + '> ' + object.content + ' </div>');
			actualNav = $('<a href="' + object.directLink + '" class="sliderAnimatedNavContainer ' + (object.i == 0 ? "selected" : "") + ' slierNav' + object.i + ' ' + animationClass + 'Nav" style="width: ' + ( ( 500 / sliderAnimatedConf.length - 3) + ( 3 / sliderAnimatedConf.length)) + 'px; ' + ( object.i > 0 ? 'margin-left: 3px;' : '') + '" index="' + object.i + '"> ' + object.navContent + '</a>');
			oSliderNav.append( actualNav);
			if( object.i == 0)
				actualNav.animate({backgroundColor: "#ea178a"},500);
			$( actualNav).bind('mouseenter', sliderAnimated.over).bind('mouseleave', sliderAnimated.out);
		});
		oSliderInner.append('<div style="clear: both"></div>');
		oSliderNav.append('<div style="clear: both"></div>');
		
		oSlider.css( 'background', "transparent");
		sliderAnimated.GLB.timeout = setTimeout( sliderAnimated.tick, 5000);
	},

	tick : function () {
		var selectedObjectNow = $(".slider-inner .selected");
		var selectedNavNow = $(".slider-nav .selected");
		var selectedObjectNext;
		var selectedNavNext;
		
		if( sliderAnimated.GLB.targetTick == 1){
			selectedObjectNext = $(".slider-inner .sliderObject" + sliderAnimated.GLB.tick);
			selectedNavNext = $(".slider-nav .slierNav" + sliderAnimated.GLB.tick);
		}else if( selectedObjectNow.next(".sliderAnimatedObjectContainer").length > 0){
			selectedObjectNext = selectedObjectNow.next(".sliderAnimatedObjectContainer");
			selectedNavNext = selectedNavNow.next(".sliderAnimatedNavContainer");
		}else{
			selectedObjectNext = $($(".slider-inner .sliderAnimatedObjectContainer").get(0));
			selectedNavNext = $($(".slider-nav .sliderAnimatedNavContainer").get(0));			
		}
		
		selectedObjectNow.removeClass('selected');
		selectedNavNow.removeClass('selected').animate({backgroundColor: "#e1e2e4"},500);
		selectedObjectNext.addClass('selected');
		selectedNavNext.addClass('selected').animate({backgroundColor: "#ea178a"},500);
		
		
		if( sliderAnimatedParams.animationMode == "fade"){
			selectedObjectNow.fadeOut( 500);
			selectedObjectNext.fadeIn( 500);
		}
		if( sliderAnimatedParams.animationMode == "slide"){
			var oSliderInner = $('.slider-inner');
			var nextLeft = -(selectedObjectNext.attr('index') * 500);
			
			oSliderInner.animate({ "left": nextLeft});
		}
		
		sliderAnimated.GLB.tick = selectedObjectNext.attr('index');
		clearTimeout( sliderAnimated.GLB.timeout);
		sliderAnimated.GLB.timeout = setTimeout( sliderAnimated.tick, 5000);
	},
	
	over : function() {
		var slideObject = $(this);
		//console.log( $(".slider-nav .selected").attr('index'), slideObject.attr('index'));
		if( $(".slider-nav .selected").attr('index') != slideObject.attr('index')){
			sliderAnimated.GLB.tick = slideObject.attr('index');
			sliderAnimated.GLB.targetTick = 1;
			sliderAnimated.tick();
		}
		clearTimeout( sliderAnimated.GLB.timeout);
		sliderAnimated.GLB.targetTick = 0;
	},
	
	out : function(){
		sliderAnimated.GLB.timeout = setTimeout( sliderAnimated.tick, 5000);
	},
	
	GLB : {tick: 0, targetTick: 0, timeout: 0}
}
