$(document).ready(function(){

	$('.slideshow').tntSlideshow({
		speed: 1000,
		interval: 4000,
		random: false
	});

	initSlider(function(){
		fadeBox('.fadein');
	});
	
	$('#extra-txt').scrollLeft(0);

});

function fadeBox(selector){
	var element = $(selector);
	element.fadeIn(2000, function(){
		fadeListItems($('ul.extralist').first());	
	});
}

function fadeListItems(ulObject){
	var element = ulObject;
	var liStack = element.children('li');
	liStack.each(function(i){
		var liObject = $(this);
		setTimeout(function(){
			liObject.fadeIn();
		}, i*300);
	});
}

function initSlider(callback){
	
	/* VARSETS */
	
	var object = $('#extra-txt');

	var scrollWrapper = object.find('.scroll-wrapper');
	var scrollSection = scrollWrapper.find('.scroll-section');
	
	var nextArrow = $('a.arrow.next');
	var prevArrow = $('a.arrow.prev');
	
	var sectionCount = scrollSection.size();
	var sectionWidth = scrollSection.width()+20;
	
	var newWidth = sectionCount*sectionWidth;	
	
	/* END VARSETS */
	
	$('div.controlwrapper').append('<ul class="scroll-controls"></ul>');
	var controlUl = $('.scroll-controls');
	
	for(i=0;i<sectionCount;i++){
		controlUl.append('<li><a href="#"></a></li>');
	}
	
	var controlStack 		= controlUl.find('a');
	var controlStackSize 	= controlStack.size();
	
	controlStack.first().addClass('active');

	scrollWrapper.css('width', newWidth+'px');
	
	callback();

	/* EVENTS */

	controlStack.click(function(){
		var clicked		= $(this);
		var clickedI	= controlStack.index(clicked);
		scrollTo(clickedI);
		return false;
	});

	nextArrow.click(function(){
		var activeControl 	= $('a.active');
		var activeControlI 	= controlStack.index(activeControl);
		var scrollToI		= activeControlI+1;
		if(scrollToI<controlStackSize){
			scrollTo(scrollToI);
		}
		else
		{
			scrollTo(0);
		}
		return false;
	});
	
	prevArrow.click(function(){
		var activeControl 	= $('a.active');
		var activeControlI 	= controlStack.index(activeControl);
		var scrollToI		= activeControlI-1;
		if(scrollToI>=0){
			scrollTo(scrollToI);
		}
		else
		{
			scrollTo(controlStackSize-1);
		}
		return false;
	});
	
	/* FUNCTIONS */
	
	function scrollTo(n){
		var clicked		= controlStack.eq(n);
		controlStack.removeClass('active');
		clicked.addClass('active');
		object.animate({'scrollLeft':n*sectionWidth}, function(){
			var list = $('ul.extralist>li');
			list.hide();
			fadeListItems(scrollSection.eq(n).find('ul.extralist'));
		});
		return false;
	}
	
}
