var featureSliderTimer;
var autoTime = 5000;
var selectTime = 6000;
$(function(){
	$('#slide-links li:first').addClass('current');
	
	$('#slide-links li a').click(function(){
		clearInterval( featureSliderTimer );
		gotoFeaturePanel( $('#slide-links li').index( $(this).parent() ) );
		featureSliderTimer = setTimeout(startPanels,selectTime);
		return false;
	})
	startPanels();
});

function startPanels(){
	featureSliderTimer = setInterval(nextFeaturePanel,autoTime);
}

function nextFeaturePanel(){
	var currentIndex = $('#slide-links li').index( $('#slide-links li.current') );
	if( currentIndex == ( $('#slide-links li').length - 1 ) ){
		var nextIndex = 0;
	}else{
		var nextIndex = currentIndex+1;
	}
	gotoFeaturePanel(nextIndex,currentIndex);
}

function gotoFeaturePanel(nextIndex, currentIndex){
	if( typeof(currentIndex) == 'undefined' ) currentIndex = $('#slide-links li').index( $('#slide-links li.current') );
	
	var currentImage = $('#slides li:eq('+currentIndex+') img' ).attr('src');
	var newLeft = -$('#slides li').width() * nextIndex;
	$('#feature-slider').css('background-image','url('+ currentImage +')');
	$('#slides').fadeTo(0,0).css('left',newLeft).fadeTo(400,1);
	$('#slide-links li.current').removeClass('current');
	$('#slide-links li:eq('+nextIndex+')').addClass('current');
}


//countdown
var od=0, oh=0, om=0, pd=0, ph=0, pm=0;
var numberWidth = 14;
var numberHeight = 9;
var timer;

var olympicsStart = 'July 27, 2012, 19:30:00';
var paralympicsStart = 'August 29, 2012, 19:30:00';

$(window).load(function(){
	tick();
	timer = setInterval(tick, 1000);
	//timer = setTimeout(init, 1000);
});

function timeUntil(datestring){
	
	var now = new Date();

	var target = new Date(datestring);
	
	var minute = 1000*60;
	var hour = minute * 60;
	var day = hour * 24;
	
	var timeToTarget = target.getTime() - now.getTime();

	var time = {};
	
	time.days = Math.floor(timeToTarget/day);
	time.hours = Math.floor(( timeToTarget - (time.days*day))/hour);
	time.minutes = Math.floor(( timeToTarget - (time.days*day) - (time.hours*hour))/minute);

	return time;

}

function init(){
	var olympicsTime = timeUntil(olympicsStart);
	var paralympicsTime = timeUntil(paralympicsStart);
	var counting = false;
	var diff;
	
	if( od < olympicsTime.days ){
		od = increase(od,olympicsTime.days);
		counting = true;
		digitize('olympics-countdown','days',od,200);
	}
	if( oh < olympicsTime.hours ){
		oh = increase(oh,olympicsTime.hours);
		counting = true;
		digitize('olympics-countdown','hours',oh,200);
	}
	if( om < olympicsTime.minutes ){
		om = increase(om,olympicsTime.minutes);
		counting = true;
		digitize('olympics-countdown','minutes',om,200);
	}

	if( pd < paralympicsTime.days ){
		pd = increase(pd,paralympicsTime.days);
		counting = true;
		digitize('paralympics-countdown','days',pd,200);
	}
	if( ph < paralympicsTime.hours ){
		ph = increase(ph,paralympicsTime.hours);
		counting = true;
		digitize('paralympics-countdown','hours',ph,200);
	}
	if( pm < paralympicsTime.minutes ){
		pm = increase(pm,paralympicsTime.minutes);
		counting = true;
		digitize('paralympics-countdown','minutes',pm,200);
	}



	if(!counting){
		timer = setInterval(tick, 1000);
	}else{
		timer = setTimeout(init, 450);
	}
}

function increase(number,target){
	var diff = target - number; 
	number ++;
	diff=Math.floor(diff/10);
	if( diff % 10 > 0 ) number+=10;
	diff=Math.floor(diff/10);
	if( diff % 10 > 0 ) number+=100;
	return number;
}

function tick(){
	
	var olympicsTime = timeUntil(olympicsStart);

	digitize('olympics-countdown','days',olympicsTime.days);
	digitize('olympics-countdown','hours',olympicsTime.hours);
	digitize('olympics-countdown','minutes',olympicsTime.minutes);
	
	var paralympicsTime = timeUntil(paralympicsStart);

	digitize('paralympics-countdown','days',paralympicsTime.days);
	digitize('paralympics-countdown','hours',paralympicsTime.hours);
	digitize('paralympics-countdown','minutes',paralympicsTime.minutes);
	
}

function digitize(timerid, element, number,speed){
	var digit1, digit2, digit3;
	if( typeof( speed ) == 'undefined' ) speed = 200;
	if( number > 99 ){
		digit3 = Math.floor(number / 100);
	}else{
		digit3 = 0;
	}
	if( number > 9 ){
		digit2 = Math.floor((number % 100)/10);
	}else{
		digit2 = 0;
	}
	digit1 = number % 10;
	
	flip(timerid,element,1,digit1,speed);
	flip(timerid,element,2,digit2,speed);
	flip(timerid,element,3,digit3,speed);
}




function flip(timerid, element, digit, number,speed){
	timer = $('#'+timerid);
	var upperFront = timer.find('.upper-half .'+element+' .digit'+digit+' img');
	var upperBack = timer.find('.upper-half .'+element +' .digit'+digit);
	var lowerFront = timer.find('.bottom-half .'+element+' .digit'+digit+' img');
	var lowerBack = timer.find('.bottom-half .'+element+' .digit'+digit);
	
	if( !upperFront.length ) return;//if this element does not exist
	
	var topImg = '/fileadmin/templates_dodson/img/home-page/top'+number+'.jpg';
	var bottomImg = '/fileadmin/templates_dodson/img/home-page/bottom'+number+'.jpg';
	var currentBottomImg = lowerFront.attr('src');

	if( currentBottomImg == bottomImg ) return;//if the number hasn't changed

	upperFront.attr('width',numberWidth);
	lowerFront.attr('width',numberWidth);
	
	upperBack.css('background-image','url('+topImg+')');
	lowerFront.attr('src',bottomImg).css('height','0px');
	lowerBack.css('background-image','url('+currentBottomImg+')');
	
	upperFront.animate({'height': 0}, 
					   { 'duration': speed, 
					   	 defaultEasing: 'easeinoutsine', 
						 'complete': function(){
							 	upperFront.attr('src',topImg).css('height',numberHeight+'px');
								lowerFront.animate({'height': numberHeight+'px'}, 
												   { 'duration': speed, 
													 defaultEasing: 'easeinoutsine'});
							}
						});
}
	
