days = new Array(
  'dimanche',
  'lundi', 
  'mardi', 
  'mercredi', 
  'jeudi', 
  'vendredi', 
  'samedi'
)
months = new Array(
  'janvier',
  'f&eacute;vrier',
  'mars',
  'avril',
  'mai',
  'juin',
  'juillet',
  'ao&ucirc;t', 
  'septembre',
  'octobre',
  'novembre',
  'd&eacute;cembre'
)
numbers = new Array(
  'z&eacute;ro', 'un', 'deux', 'trois', 'quatre', 
  'cinq', 'six', 'sept', 'huit', 'neuf', 
  'dix','onze', 'douze', 'treize', 'quatorze', 
  'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf',
  'vingt', 'vingt-et-un', 'vingt-deux', 'vingt-trois', 'vingt-quatre', 
  'vingt-cinq', 'vingt-six', 'vingt-sept', 'vingt-huit', 'vingt-neuf', 
  'trente', 'trente-et-un', 'trente-deux', 'trente-trois', 'trente-quatre', 
  'trente-cinq', 'trente-six', 'trente-sept', 'trente-huit', 'trente-neuf',
  'quarante', 'quarante-et-un', 'quarante-deux', 'quarante-trois', 'quarante-quatre', 
  'quarante-cinq', 'quarante-six', 'quarante-sept', 'quarante-huit', 'quarante-neuf', 
  'cinquante', 'cinquante-et-un', 'cinquante-deux', 'cinquante-trois', 'cinquante-quatre', 
  'cinquante-cinq', 'cinquante-six', 'cinquante-sept', 'cinquante-huit', 'cinquante-neuf'
)



function _create_numbers(limit, feminine, id_prefix) {
	var out = ''
	for (var i = 0; i < limit; ++i) {
		out += '<span id="' + id_prefix + i + '">'
		out += numbers[i]
		if (feminine && i % 10 == 1 && i != 11) {
			out += 'e'
		}
		out += '</span> '
	}
	return out
}

function _create_num_stub(limit, is_feminine, suffix_id, suffix, item_id) {
	var suffix = ' <span id="'+suffix_id+'">'+suffix+'</span>'
	var text = _create_numbers(limit, is_feminine, item_id)
	return text + suffix
}

function create_dayname() {
	var text = ''
	for (var i = 0; i < days.length; ++i) {
		text += '<span id="dn_'+i+'">' + days[i] + '</span> '
	}
	$('#clock').append(text)
}

function create_month() {
	var text = ''
	for (var i = 0; i < months.length; ++i) {
		text += '<span id="mo_'+i+'">' + months[i] + '</span> '
	}
	$('#clock').append(text)
}


function create_daynumber() {
	$('#clock').append(
		_create_num_stub(31, false, 'daynumber_mark', '', 'd_'))
	$('#d_0').remove()
	$('#d_1').text('premier')
}

function create_hours() {
	$('#clock').append(
		_create_num_stub(24, true, 'hour_mark', 'heures', 'h_'))
	$('#h_0').text('minuit')
	$('#h_12').text('midi')
}

function create_minutes() {
	$('#clock').append(
		_create_num_stub(60, true, 'minute_mark', 'minutes', 'm_'))
	$('#m_0').remove()
}

function create_seconds() {
	$('#clock').append(
		_create_num_stub(60, true, 'second_mark', 'secondes', 's_'))
	$('#s_0').remove()
}

function set_clock() {
	var now = new Date()
	$('#clock span.selected').removeClass('selected')
	_h = now.getHours()
	_m = now.getMinutes()
	_s = now.getSeconds()
	$( '#dn_' + now.getDay()   ).addClass('selected')
	$( '#d_'  + now.getDate()  ).addClass('selected')
	$( '#mo_' + now.getMonth()   ).addClass('selected')
	$( '#h_'  + _h  	   ).addClass('selected')
	if (!(_h == 0 || _h == 12)) {
		if (_h > 1)
			$('#hour_mark').text('heures')
		else
			$('#hour_mark').text('heure')
		$('#hour_mark').addClass('selected')
	}
	if (_m) {
		$( '#m_'   + _m  ).addClass('selected')
		if (_m > 1)
			$( '#minute_mark').text('minutes')
		else
			$( '#minute_mark').text('minute')
		$( '#minute_mark').addClass('selected')

	}
	if (_s) {
		$( '#s_'   + _s  ).addClass('selected')
		if (_s > 1)
			$('#second_mark').text('secondes')
		else
			$('#second_mark').text('seconde')
		$('#second_mark').addClass('selected')
	}
}

function create_clock() {
	var now = new Date()
	create_dayname()
	create_daynumber()
	create_month()
	create_hours()
	create_minutes()
	create_seconds()
	set_clock()
	$(document).everyTime(1000, set_clock)
}


$(document).ready(create_clock)
