/**
 * Outil de sélection
 * @version WF 2010-08-27
 * @author Cédric Talbot <c.talbot@stelpro.com>
 */
// Tableaux de liaison
var VoltLists = new Array();
VoltLists['15'] = "A";
VoltLists['20'] = "A";
VoltLists['30'] = "A";
VoltLists['40'] = "A";
VoltLists['80'] = "A";
VoltLists['60'] = "B";
VoltLists['120'] = "B";
VoltLists['90'] = "C";

var ThermLists = new Array();
ThermLists['1502'] = "A";
ThermLists['1508'] = "A";
ThermLists['1507'] = "A";
ThermLists['2002'] = "A";
ThermLists['2008'] = "A";
ThermLists['2007'] = "A";
ThermLists['3002'] = "A";
ThermLists['3008'] = "A";
ThermLists['3007'] = "A";
ThermLists['4002'] = "A";
ThermLists['4008'] = "A";
ThermLists['4007'] = "A";
ThermLists['1503'] = "B";
ThermLists['1505'] = "B";
ThermLists['1506'] = "B";
ThermLists['2003'] = "B";
ThermLists['2005'] = "B";
ThermLists['2006'] = "B";
ThermLists['3003'] = "B";
ThermLists['3005'] = "B";
ThermLists['3006'] = "B";
ThermLists['4003'] = "B";
ThermLists['4005'] = "B";
ThermLists['4006'] = "B";
ThermLists['6002'] = "B";
ThermLists['6007'] = "B";
ThermLists['6003'] = "B";
ThermLists['6005'] = "B";
ThermLists['6006'] = "B";
ThermLists['6008'] = "C";
ThermLists['60083'] = "C";
ThermLists['60053'] = "C";
ThermLists['60063'] = "C";
ThermLists['8002'] = "C";
ThermLists['8008'] = "C";
ThermLists['8007'] = "C";
ThermLists['8003'] = "C";
ThermLists['8005'] = "C";
ThermLists['8006'] = "C";
ThermLists['90083'] = "C";
ThermLists['90053'] = "C";
ThermLists['90063'] = "C";
ThermLists['12002'] = "C";
ThermLists['12008'] = "C";
ThermLists['12007'] = "C";
ThermLists['12003'] = "C";
ThermLists['12005'] = "C";
ThermLists['12006'] = "C";
ThermLists['120083'] = "C";
ThermLists['120053'] = "C";
ThermLists['120063'] = "C";

// Conteneur pour le suivi des choix
var therm, watts, volts;

// 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 les listes en fonction du modèle
            $('Volts' + VoltLists[e.element().getValue()]).show();

            // Garde en mémoire la liste de voltages
            volt = 'Volts' + VoltLists[e.element().getValue()];
        }
    });
	
	// Gère le choix du voltage
    [$('VoltsA'), $('VoltsB'), $('VoltsC')].invoke("observe", "change", function(e) {
        if (e.element().getValue() == "") {
            ThermReset();
			ColorReset();
        } else {
            // Un choix dans une liste affiche le choix de thermostats
            $('Therm' + ThermLists[$F('Watts') + $F(volt)]).show();
			
			// Enregistre le choix de liste de controles
			therm = 'Therm' + ThermLists[$F('Watts') + $F(volt)];
        }
    });

    // Gère le choix du contrôle
    [$('ThermA'), $('ThermB'), $('ThermC'), $('ThermD')].invoke("observe", "change", function(e) {
        if (e.element().getValue() == "null") {
            ColorReset();
        } else {
            // Affiche le choix 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");
    $('VoltsC').fire("ts:hide");
}

// Fonction qui s'occupe de remettre les listes de couleur à leur état initial
function ColorReset() {
    // Masque les listes
    $('Color').fire("ts:hide");
}

// Fonction qui s'occupe de remettre les listes de contrôles à leur état initial
function ThermReset() {
    // Masque les listes
    $('ThermA').fire("ts:hide");
    $('ThermB').fire("ts:hide");
    $('ThermC').fire("ts:hide");
	$('ThermD').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(volt) + $F(therm);

    // Code pour image
    var modImg = produit + "W-" + GetFormat($F('Watts') + $F(volt));

    // 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 "":
            col = 1;
        break;
        case "T":
            col = 3;
        break;
        case "C":
            col = 5;
        break;
        case "CT":
		case "CT24":
            col = 7;
        break;
        case "C24":
            col = 9;
        break;
    }
    map.push(col);

    // Assigne les colonnes de stats à afficher
    $R(10, 14).each(function(e){
        map.push(e);
    });

    // Construit le tableau de référence
    var mapref = new Array("prix", "pow", "volt", "poidsKG", "poidsLB", "unit");

    // Sélection
    Selection(produit, mod, modeleFull, modImg, map, mapref);
}

/**
 * Méthode qui détermine selon les choix s'il s'agit d'une unité simple, double ou triple
 * @param {Object} code
 */
function GetFormat(code) {
	switch(code) {
		case "1502":
		case "1508":
		case "1507":
		case "1503":
		case "1505":
		case "1506":
		case "2002":
		case "2008":
		case "2007":
		case "2003":
		case "2005":
		case "2006":
		case "3002":
		case "3008":
		case "3007":
		case "3003":
		case "3005":
		case "3006":
		case "4002":
		case "4008":
		case "4007":
		case "4003":
		case "4005":
		case "4006":
			return "simple";
		break;
		case "6002":
		case "6008":
		case "6007":
		case "6003":
		case "6005":
		case "6006":
		case "8002":
		case "8008":
		case "8007":
		case "8003":
		case "8005":
		case "8006":
			return "double";
		break;
		default:
			return "triple";
	}
}

