TlcCalendar.setupPrototypeCalOn = function (idButton, idInput) {
    var but;
    var inp;
    var k;
  
    function setupOneTypicalCalendar(button, input) {
        var cal;
        var firstElement;
        var k;
		
        cal = new TlcCalendar(
            document,
            function (jsDate, txtDate) {
                input.value = txtDate;
            },null,null,true); // null : pas de date min    null : pas de date max     false : date futures non permises.

        /* On prend le premier fils car dans la majorité
         * des cas ce sera un lien avec une image dedans
         * et le lien n'a pas de hauteur.
         */
        firstElement = null;
        for (k = 0; !firstElement && k < button.childNodes.length; k++) 
        {
            if (button.childNodes[k].nodeType === 1)
            {
                firstElement = button.childNodes[k];
            }
        }
		$(button).observe('click', function (event) 
        {
			/* Prend en compte la date saisie avant d'ouvrir */
			cal.setDate(input.value);

        	cal.openNear(firstElement ? firstElement : button,
				TlcCalendar.PosAuto, true);

			Event.stop(event);
		});
    }

    if (typeof TlcCalendar.tabCals === 'undefined') {
        TlcCalendar.tabCals = [ ];
    }
    
    TlcCalendar.tabCals.push({ b: idButton, i: idInput });

    for (k = 0; k < TlcCalendar.tabCals.length; k++) {
        but = document.getElementById(TlcCalendar.tabCals[k].b);
        inp = document.getElementById(TlcCalendar.tabCals[k].i);
        if (but && inp) {
            setupOneTypicalCalendar(but, inp);
        }
    }
};

function test_date()
{
	date = document.getElementById("semaine");
	tab = date.value.split('/');
	erreur = "aucune";
	
	if(tab.length != 3)
		erreur = "format";
	else
	{
		if((tab[0].length != 2 || tab[1].length != 2 || tab[2].length != 4))
		{
			erreur = "format";
		}
		else // Test si toutes les donnée sont des chiffres et si le jour < 31 et mois < 12.
		{
			for(i=0; i<3; i++)
			{
				if ((tab[i][0] < '\x30') || (tab[i][0] > '\x39') || (tab[i][1] < '\x30') || (tab[i][1] > '\x39'))
					erreur = "lettre";
			}
			/* jour < 31 */
			if(tab[0][0]+tab[0][1] > 31)
				erreur = "jour";
			/* mois < 12 */
			if(tab[1][0]+tab[1][1] > 12)
				erreur = "mois";
		}
	}
	
	switch(erreur)
	{
		case "aucune" : return true;
						break;
		case "format" : window.alert("Le format de la date est incorrect.");
						return false;
						break;
		case "lettre" : window.alert("Le champ ne doit pas contenir de caractères.");
						return false;
						break;
		case "jour"   : window.alert("Le jour doit être inférieur à 31.");
						return false;
						break;
		case "mois"   : window.alert("Le mois doit être inférieur à 12.");
						return false;
						break;
	}
}

window.onload = function () {TlcCalendar.setupPrototypeCalOn('calendrier', 'semaine');};