var countdownAlwaysShowDays = false;

function createCounter( id, until, expTitle, expLink )
{
	$( id ).innerHTML = "<span class='countdownTimer'>" +
							"<span class='ct_days'><div class='ct_dig ct_dig3'>&nbsp;</div><div class='ct_dig ct_dig2'>&nbsp;</div><div class='ct_dig ct_dig1'>&nbsp;</div></span>" +
							"<span class='ct_sep ct_daysSep'>&nbsp;</span>" +
							"<span class='ct_hours'><div class='ct_dig ct_dig2'>&nbsp;</div><div class='ct_dig ct_dig1'>&nbsp;</div></span>" +
							"<span class='ct_sep ct_hoursSep'>&nbsp;</span>" +
							"<span class='ct_mins'><div class='ct_dig ct_dig2'>&nbsp;</div><div class='ct_dig ct_dig1'>&nbsp;</div></span>" +
							"<span class='ct_sep ct_minsSep'>&nbsp;</span>" +
							"<span class='ct_secs'><div class='ct_dig ct_dig2'>&nbsp;</div><div class='ct_dig ct_dig1'>&nbsp;</div></span>" +
						"</span>";
	
	window.setTimeout( function() { countdownUpdate( id, until, expTitle, expLink ) }, 1000 );
}

function countdownUpdate( id, until, expTitle, expLink )
{
	var now = new Date();
	var div = $( id );
	var diff = until - ( now.getTime() / 1000 );

	if( diff <= 0 ) {
		
		if( expLink && expLink.length )
			div.innerHTML = '<div class="countdownTimerExpired"><a href="' + expLink + '">' + expTitle + '</a></div>';
		else
			div.innerHTML = '<div class="countdownTimerExpired">' + expTitle + '</div>';
		
	} else {
		var days, hours, mins, secs;
		
		days   = Math.floor( diff / 86400 );
		diff  -= days * 86400;
		hours  = Math.floor( diff / 3600 );
		diff  -= hours * 3600;
		mins   = Math.floor( diff / 60 );
		secs   = Math.floor( diff - ( mins * 60 ));

		if( !countdownAlwaysShowDays && ( days <= 0 )) {

			div.down( '.ct_days' ).hide();
			div.down( '.ct_daysSep' ).hide();

		} else {
			var first = Math.floor( days / 10 );
			
			if( first > 9 )
				countdownSetDigit( div.down( '.ct_days .ct_dig3' ), Math.floor( first / 10 ));
			else
				div.down( '.ct_days .ct_dig3' ).hide();

			countdownSetDigit( div.down( '.ct_days .ct_dig2' ), first % 10 );
			countdownSetDigit( div.down( '.ct_days .ct_dig1' ), days % 10 );
		}

		countdownSetDigit( div.down( '.ct_hours .ct_dig2' ), Math.floor( hours / 10 ));
		countdownSetDigit( div.down( '.ct_hours .ct_dig1' ), hours % 10 );

		countdownSetDigit( div.down( '.ct_mins .ct_dig2' ), Math.floor( mins / 10 ));
		countdownSetDigit( div.down( '.ct_mins .ct_dig1' ), mins % 10 );

		countdownSetDigit( div.down( '.ct_secs .ct_dig2' ), Math.floor( secs / 10 ));
		countdownSetDigit( div.down( '.ct_secs .ct_dig1' ), secs % 10 );

		window.setTimeout( function() { countdownUpdate( id, until, expTitle, expLink ) }, 1000 );
	}
}

function countdownSetDigit( el, digit )
{
	for( var i = 0; i <= 9; i++ )
		$( el ).removeClassName( 'ct_digval_' + i );
		
	$( el ).addClassName( 'ct_digval_' + digit );
}
