/**
 * Outil de sélection
 * @version CBH 2010-08-27
 * @author Cédric Talbot <c.talbot@stelpro.com>
 */
// Conteneur pour le suivi des choix
var watts, volts, therm;

// Gestion des listes dynamiques
Event.observe(document, "dom:loaded", function() {
    // Gère le choix du wattage
    $('Watts').observe("change", function(e) {
        // Reset des listes
        VoltageReset();
        ThermReset();
		ColorReset();

        // Affiche la bonne liste
        if (e.element().getValue() != "") {
            // Sélectionne la liste de voltage selon le wattage
            switch ($F('Watts')) {
				case "02":
				case "03":
				case "04":
				case "05":
				case "06":
				case "08":
				case "10":
					$('VoltsA').show();
					volts = 'VoltsA';
				break;
				default:
					$('VoltsB').show();
					volts = 'VoltsB';
			}
        }
    });

    // Gère le choix du voltage
    [$('VoltsA'), $('VoltsB')].invoke("observe", "change", function(e) {
        if (e.element().getValue() == "null") {
            ThermReset();
        } else {
            // Une seule liste existe
			$('Therm').show();
        }
    });

    // Gère le choix du contrôle
    $('Therm').observe("change", function(e) {
        if (e.element().getValue() == "") {
            ColorReset();
        } else {
            // Affiche le sélecteur de couleur
            $('Color').show();
        }
    });

    // Quand une couleur est choisie, on affiche le bouton
    $('Color').observe("change", function(e) {
       if (e.element().getValue() == "") {
           $('ts_search_trigger').hide();
       } else {
           $('ts_search_trigger').show();
       }
    });
});

// Fonction qui s'occupe de remettre les listes de voltage à leur état initial
function VoltageReset() {
    // Masque les listes
    $('VoltsA').fire("ts:hide");
    $('VoltsB').fire("ts:hide");
}

// Fonction qui s'occupe de remettre les listes de contrôles à leur état initial
function ThermReset() {
    // Masque les listes
    $('Therm').fire("ts:hide");
}

// Fonction qui s'occupe de remettre les listes de contrôles à leur état initial
function ColorReset() {
    // Masque les listes
    $('Color').fire("ts:hide");
}

/**
 * Fonction qui prepare le processus de sélection
 */
function PrepareSelection() {
    // Construit le nom de modèle à trouver
    var produit = $F("CODE_PRODUIT");

    // Construction
    var mod = produit + $F('Watts') + $F(volts) + $F('Therm');

    // Code pour image
    var modImg = produit + GetSize($F('Watts')) + $F('Color');

    // Numéro complet
    var modeleFull = mod + $F('Color');

    // Construit le mapping des autres cellules à afficher
    var map = new Array();

    // Détermine la colonne de prix
    var col;
    switch($F('Therm')) {
        case "C":
            col = 1;
        break;
        case "CT":
            col = 3;
        break;
        case "C24":
            col = 5;
        break;
    }
    map.push(col);

    // Assigne les colonnes de stats à afficher
    $R(6, 11).each(function(e){
        map.push(e);
    });

    // Construit le tableau de référence
    var mapref = new Array("prix", "pow", "pcm", "volt", "phase", "poidsKG","poidsLB");

    // Sélection
    Selection(produit, mod, modeleFull, modImg, map, mapref);
}

/**
 * Fonction qui retourne la taille du modèle selon le wattage
 * @param {Object} watts
 */
function GetSize(watts) {
	switch (watts) {
		case "02":
		case "03":
		case "04":
		case "05":
		case "06":
			return "24";
		break;
		case "08":
		case "10":
		case "12":
			return "36";
		break;
		default:
			return "48";
	}
}

