(function($){

	$.fn.countDown = function (options) {

		config = {};

		$.extend(config, options);

		startingPos = this.setCountDown(config);
	
		$('#' + $(this).attr('id') + ' .digit').html('<div class="top2"></div><div class="bottom2"></div>');
		$(this).doCountDown($(this).attr('id'), startingPos, 500);

		return this;

	};

	$.fn.stopCountDown = function () {
		clearTimeout($.data(this[0], 'timer'));
	};

	$.fn.startCountDown = function () {
		this.doCountDown($(this).attr('id'),$.data(this[0], 'startpos'), 500);
	};

	$.fn.setCountDown = function (options) {
		var startpos  = 0;

		if (options.startpos)
		{
			startpos = options.startpos;
		}

		$.data(this[0], 'startpos', startpos);

		return startpos;
	};

	$.fn.doCountDown = function (id, startpos, duration) {
	

	
	    hunds = startpos % 1000;
		thos = Math.floor(startpos/1000)%1000;
		mill = Math.floor(startpos/1000/1000)%1000;

	
	
		$this = $('#' + id);

		$this.dashChangeTo(id, 'hund_dash', hunds, duration ? duration : 400);
		$this.dashChangeTo(id, 'thos_dash', thos, duration ? duration : 600);
		$this.dashChangeTo(id, 'mill_dash', mill, duration ? duration : 600);

		$.data(this[0], 'startpos', startpos);
		if (startpos < 99999999)
		{
			e = $this;
			t = setTimeout(function() { e.doCountDown(id, startpos+1330) } , 1000);
			$.data(e[0], 'timer', t);
		} 
		else
		{
			e = $this;
			t = setTimeout(function() { e.doCountDown(id, 0) } , 1000);
			$.data(e[0], 'timer', t);
		}

	};

	$.fn.dashChangeTo = function(id, dash, n, duration) {
		  $this = $('#' + id);
		  		  
		  
		  for (var i=($this.find('.' + dash + ' .digit').length-1); i>=0; i--)
		  {
				var d = n%10;
				n = (n - d) / 10;
				
				$this.digitChangeTo('#' + $this.attr('id') + ' .' + dash + ' .digit:eq('+i+')', d, duration);
		  }
	};

	$.fn.digitChangeTo = function (digit, n, duration) {
		if (!duration)
		{
			duration = 400;
		}
		if ($(digit + ' div.top2').html() != n + '')
		{

			$(digit + ' div.top2').css({'display': 'none'});
			$(digit + ' div.top2').html((n ? n : '0')).slideDown(duration);

			$(digit + ' div.bottom2').animate({'height': ''}, duration, function() {
				$(digit + ' div.bottom2').html($(digit + ' div.top2').html());
				$(digit + ' div.bottom2').css({'display': 'block', 'height': ''});
				$(digit + ' div.top2').hide().slideUp(5);

			
			});
		}
	};

})(jQuery);



