function Aj(nomCombo, value, libelle){ nomCombo.length = nomCombo.length + 1; nomCombo.options[nomCombo.length-1].text=libelle; nomCombo.options[nomCombo.length-1].value=value; } // niveau = niveau de profondeur // val = valeur de l'élément sélectionné de la combo source function RUB_refresh(niveau, val){ var cb; var bDefaut = false; // combo à rafraichir cb = eval('document.formu.RUB_ref_' + niveau); // si pas combo de ce niveau, on stoppe le traitement (descendu au + bas) if (cb == null) {return;} // rend visible la combo "cible" (nom div = nom combo) montre(cb.name); // combo avec un élément par défaut? if (cb.length > 0){ if (cb.options[0].value == ''){bDefaut=true;} } // combo vide OU une valeur par défaut if (bDefaut) {cb.length=1;} else {cb.length=0;} // rafraichissement de la combo /******************** rafraichissement niveau 2 ********************/ if (niveau == 2){ if(val == '1_MO') {Aj(cb,'1515_SO','Autres scooters-Scooter (2)');Aj(cb,'2125_MO','BMW-Moto (1)');Aj(cb,'2128_MO','Ducati-Moto (1)');Aj(cb,'2129_MO','Gas Gas-Moto (1)');Aj(cb,'2132_MO','Honda-Moto (5)');Aj(cb,'2134_MO','Kawasaki-Moto (1)');Aj(cb,'2136_MO','Kymco-Moto (1)');Aj(cb,'2148_SO','Peugeot-Scooter (2)');Aj(cb,'2149_SO','Piaggio-Scooter (1)');Aj(cb,'2137_MO','Suzuki-Moto (3)');Aj(cb,'2140_MO','Yamaha-Moto (4)');Aj(cb,'2151_SO','Yamaha-Scooter (1)');} } /******************** rafraichissement niveau 3 ********************/ if (niveau == 3){ if(val == '2125_MO') {Aj(cb,'931_MO','Serie F-Moto (1)');} if(val == '2128_MO') {Aj(cb,'984_MO','Monster-Moto (1)');} if(val == '2129_MO') {Aj(cb,'1007_MO','EC-Moto (1)');} if(val == '2132_MO') {Aj(cb,'1045_MO','Africa Twin-Moto (1)');Aj(cb,'1050_MO','CBR-Moto (3)');Aj(cb,'1057_MO','CRM -Moto (1)');} if(val == '2134_MO') {Aj(cb,'1098_MO','ER-Moto (1)');} if(val == '2136_MO') {Aj(cb,'1154_MO','Sector -Moto (1)');} if(val == '2137_MO') {Aj(cb,'1208_MO','Autres Suzuki-Moto (1)');Aj(cb,'1207_MO','GSXR-Moto (1)');Aj(cb,'1196_MO','SV-Moto (1)');} if(val == '2140_MO') {Aj(cb,'1276_MO','Autres Yamaha-Moto (1)');Aj(cb,'1244_MO','FZS-Moto (1)');Aj(cb,'1253_MO','TDM -Moto (1)');Aj(cb,'1272_MO','YBR -Moto (1)');} if(val == '2148_SO') {Aj(cb,'1476_SO','Autres Peugeot-Scooter (1)');Aj(cb,'1472_SO','Speedfight-Scooter (1)');} if(val == '2149_SO') {Aj(cb,'1495_SO','Autres Piaggio-Scooter (1)');} if(val == '2151_SO') {Aj(cb,'1513_SO','Cygnus-Scooter (1)');} } /******************** rafraichissement niveau 4 ********************/ if (niveau == 4){ } CHA_refresh(niveau, val); // s'il n'y a pas d'élément OU seul le défaut : on cache la combo // sinon, on rafraichit la combo de niveau + bas if ((cb.length == 0) || ((cb.length == 1) && bDefaut)){ cache(cb.name); if (niveau < 4) {RUB_refresh(niveau+1, '');} } else { // rafraichissement combo de niveau + bas if (niveau < 4) { RUB_refresh(niveau+1, cb.options[cb.selectedIndex].value); } } } // dans le cas refresh forcé à l'init de la page // forcer la sélection de l'élément de la combo function RUB_putSelected(niveau, val){ var cb, i; // combo à sélectionner cb = eval('document.formu.RUB_ref_' + niveau); if (cb != null) { if (cb.selectedIndex != -1){ for (i = 0; i < cb.length; i++){ if (cb.options[i].value == val) {cb.selectedIndex = i;} } } } } // à l'affichage de la page // initialisation des combos + positionnement sur l'élément choisi RUB_refresh(2, '1_MO'); RUB_putSelected(1, '1_MO');