/**
 * Gestion des modifications du formulaire d'aide au choix de la catégorie.
 *
 * Alexandre STEIGMEIER - Derbydesbois.ch
*/

var anneeReference = 2011;
/**
 * Ecrit le message fournit dans le span de la page.
*/
function drawMessage(mess) {
    $$('trick_cat').innerHTML = mess;
}

/**
 * Surveille les changements de valeurs des champs et des boutons radios.
*/
function watchChanges() {
    champs = Array('n', 'g_h', 'g_f');
    for(i=0; i<champs.length; i++) {
        if(isIE == -1) {
            $$(champs[i]).setAttribute("onchange", "updateMessage();");
		}
		else {
			$$(champs[i]).onchange = function() {updateMessage();};
		}
    }
}

/**
 * Met le message à jour en fonction du contenu des champs.
*/
function updateMessage() {
    year   = $$('n');
    man    = $$('g_h');
    woman  = $$('g_f');
    values = checkValues(year, man, woman);
    switch (values) {
        case 0 : // Pas d'erreur
            message = getCategorie(year, man, woman);
            break;
        case 1 : // Mauvaise année de naissance
            message = "Veuillez spécifier votre année de naissance.";
            break;
        case 2 : // Genre non sélectionné
            message = "Veuillez spécifier votre genre.";
            break;
        case 3 : // Mauvaise année et genre non sélectionné
            message = "Veuillez spécifier votre année de naissance et votre genre.";
            break;
    }
    drawMessage(message);
}

/**
 * Vérifie les valeurs des champs.
*/
function checkValues(year, man, woman) {
    error  = 0;
    if ((year.value.length != 4) || (isNaN(year.value)) || (year.value < 1920) || (year.value > 2000)) {
        error += 1;
    }
    if ((man.checked == false) && (woman.checked == false)) {
        error += 2;
    }
    return error;
}

/**
 * Retourne le nom des catégories accessibles avec les données.
*/
function getCategorie(year, man, woman) {
    age        = anneeReference - year.value;
    categories = "Walking";
    femmes     = [', Ecolières C',', Ecolières B',', Ecolières A',', Cadettes B',', Cadettes A',', Juniores',', Femme "court"',', Femmes',', Vétérans femmes',', Vétérans femmes'];
    hommes     = [', Ecoliers C',', Ecoliers B',', Ecoliers A',', Cadets B',', Cadets A',', Juniors',', Hommes "court"',', Hommes',', Vétérans hommes 1',', Vétérans hommes 2'];
    if (age ==  8 || age ==  9) categories += (man.checked)?hommes[0]:femmes[0];
    if (age == 10 || age == 11) categories += (man.checked)?hommes[1]:femmes[1];
    if (age == 12 || age == 13) categories += (man.checked)?hommes[2]:femmes[2];
    if (age == 14 || age == 15) categories += (man.checked)?hommes[3]:femmes[3];
    if (age == 16 || age == 17) categories += (man.checked)?hommes[4]:femmes[4];
    if (age == 18 || age == 19) categories += (man.checked)?hommes[5]:femmes[5];
    if (age >= 20 && age <= 99) categories += (man.checked)?hommes[6]:femmes[6];
    if (age >= 20 && age <= 39) categories += (man.checked)?hommes[7]:femmes[7];
    if (age >= 40 && age <= 49) categories += (man.checked)?hommes[8]:femmes[8];
    if (age >= 50 && age <= 99) categories += (man.checked)?hommes[9]:femmes[9];
    
    return categories;
}

/**
 * Lance les scripts à la fin du chargement de la page.
*/
function runScripts() {
    watchChanges();
}
