/**
 * @file name:  countdown.js
 * @project:    end-2012.com
 * @author:     michal.simon@centrum.cz
 * @copyright:  Copyright (C) 2010 HISIM.cz. All rights reserved.
 * @created:    24.4. 2010
 */ 

var timeend = new Date("December 20, 2012 23:59:59");
var timenow = new Date();
var diff = new Date(timeend-timenow);
var seconds = Math.floor(diff.valueOf()/1000);

function showTime(secos, unix_default, scaler){
	var now = ((Math.floor(secos/unix_default))%scaler).toString();
	now = (now.length < 2)? "0"+now : now;
	return now;
}
	
	function flip (upperId, lowerId, changeNumber, pathUpper, pathLower)
  {
		var upperBackId = upperId+"Back";
		$(upperId).style.backgroundPosition = $(upperBackId).style.backgroundPosition;
		$(upperId).setStyle("height", "32px");
		$(upperId).setStyle("visibility", "visible");
		$(upperBackId).style.backgroundPosition = (changeNumber*32)+"px";
		
    $(lowerId).style.backgroundPosition = (changeNumber*32)+"px";
		$(lowerId).setStyle("height", "0px");
		$(lowerId).setStyle("visibility", "visible");
		
		var flipUpper = new Fx.Tween(upperId,
    {
      duration: 200,
      transition: Fx.Transitions.Sine.easeInOut
    });
    
		flipUpper.addEvents(
    {
			'complete': function()
      {
				var flipLower = new Fx.Tween(lowerId,
        {
          duration: 200,
          transition: Fx.Transitions.Sine.easeInOut
        });
        
				flipLower.addEvents(
        {
					'complete': function()
          {	
							lowerBackId = lowerId+"Back";
							$(lowerBackId).style.backgroundPosition = (changeNumber*32)+"px";
							$(lowerId).setStyle("visibility", "hidden");
							$(upperId).setStyle("visibility", "hidden");
					}
        });					
				flipLower.start('height', 32);
					
			}
		});
		flipUpper.start('height', 0);
		
		
	}//flip

function firstflip(){
  s = showTime(seconds+1, 1, 60);
  m = showTime(seconds+1, 60, 60);
  h = showTime(seconds+1, 3600, 24);
  d = showTime(seconds+1, 86400, 10000);
  
	s1 = s / 10;
	s2 = s % 10;
	m1 = m / 10;
	m2 = m % 10;
	h1 = h / 10;
	h2 = h % 10;
	d1 = d / 100;
	d2 = (d1*10) % 10;
	d3 = d % 10;

	flip('secondsUpRight', 'secondsDownRight', Math.floor(s2), 'clock/up/', 'clock/down/');
	flip('secondsUpLeft', 'secondsDownLeft', Math.floor(s1), 'clock/up/', 'clock/down/');
	
	flip('minutesUpRight', 'minutesDownRight', Math.floor(m2), 'clock/up/', 'clock/down/');
	flip('minutesUpLeft', 'minutesDownLeft', Math.floor(m1), 'clock/up/', 'clock/down/');
	
	flip('hoursUpRight', 'hoursDownRight', Math.floor(h2), 'clock/up/', 'clock/down/');
	flip('hoursUpLeft', 'hoursDownLeft', Math.floor(h1), 'clock/up/', 'clock/down/');
	
	flip('daysUpRight', 'daysDownRight', Math.floor(d3), 'clock/up/', 'clock/down/');
	flip('daysUpLeft', 'daysDownLeft', Math.floor(d2), 'clock/up/', 'clock/down/');
	flip('dayshUpRight', 'dayshDownRight', Math.floor(d1), 'clock/up/', 'clock/down/');

}
				
	
function retroClock()
{		
  s = showTime(seconds, 1, 60);
  m = showTime(seconds, 60, 60);
  h = showTime(seconds, 3600, 24);
  d = showTime(seconds, 86400, 10000);
  
	s1 = s / 10;
	s2 = s % 10;
	m1 = m / 10;
	m2 = m % 10;
	h1 = h / 10;
	h2 = h % 10;
		     
  flip('secondsUpRight', 'secondsDownRight', Math.floor(s2), 'clock/up/', 'clock/down/');
    
  if(s2==9)
  {
    flip('secondsUpLeft', 'secondsDownLeft', Math.floor(s1), 'clock/up/', 'clock/down/');
      		
    if(s1>5)
    {
      flip('minutesUpRight', 'minutesDownRight', Math.floor(m2), 'clock/up/', 'clock/down/');
        
      if(m2==9)
      {
        flip('minutesUpLeft', 'minutesDownLeft', Math.floor(m1), 'clock/up/', 'clock/down/');
                   
        if(m1>5)
        {
          flip('hoursUpRight', 'hoursDownRight', Math.floor(h2), 'clock/up/', 'clock/down/');
          
          if(h2==9 || (h2==3 && h1>2))
          {
            flip('hoursUpLeft', 'hoursDownLeft', Math.floor(h1), 'clock/up/', 'clock/down/');
            
            if(h2==3 && h1>2)
            {
              flip('daysUpRight', 'daysDownRight', Math.floor(d3), 'clock/up/', 'clock/down/');
	            flip('daysUpLeft', 'daysDownLeft', Math.floor(d2), 'clock/up/', 'clock/down/');
	            flip('dayshUpRight', 'dayshDownRight', Math.floor(d1), 'clock/up/', 'clock/down/');
            }
          }
        }
      }
    }
  }
		
	seconds--;
		
}

firstflip();

setInterval('retroClock()', 1000);
