Ciao a tutti, ho un problema con Explorer (guardacaso).

Lo script che ho scritto (riportato qui sotto) serve ad evidenziare all'interno di una lista alcune voci a seconda che contengano o meno una parola all'interno della loro classe.

Sono un principiante, quindi è possibile che abbia commesso errori ingenui! Sicuramente il codice è anche scritto in maniera un po' complessa (dovuto alla mia inesperienza) ma su firefox, opera, chrome funziona perfettamente. Quindi credo che ci sia un'istruzione che ME non capisce.

L'errore che explorer riporta è:
"Proprieta o metodo non supportati dall'oggetto"

Qualcuno può aiutarmi?

Grassssie, G.

codice:
var uso =new Array(); 
var stile = new Array();
var colore = new Array();
var selettori = new Array();
var gruppi_attivati = ''; 

function inizializza (str1, str2, str3) {
	ripristina_valori (uso, str1);
	ripristina_valori (stile, str2);
 	ripristina_valori (colore, str3);
}

function ripristina_valori (gruppo, valori) {
 	if (valori!='') { 
		arr = valori.split(','); 
		for (q=0; q<arr.length; q++) {
 			on_off(arr[q], gruppo);
 		};
 	}
}

function on_off (selettore, gruppo) {
 	interruttore (selettore, gruppo);
 	incrocia_risultati();
 	evidenzia();
 	aggiorna_href();
 };

function interruttore(selettore, gruppo) {
 	var str_gruppo = gruppo.toString()+',';
 	if (str_gruppo.search(selettore)==-1) {
 		gruppo.push(selettore);
 		colora(document.getElementById(selettore));
 	} else {
 		decolora(document.getElementById(selettore));
 		str_gruppo = str_gruppo.replace(selettore, '');
 		gruppo.splice(0, gruppo.length+1);
 		while (str_gruppo.indexOf(',')!=-1) {
 			prima_virgola = str_gruppo.indexOf(',');
 			chiave = str_gruppo.substr(0, prima_virgola);
 			str_gruppo = str_gruppo.substr(prima_virgola+1);
 			if (chiave != '') {
 				gruppo.push(chiave); 
			}
 		}
 	}
 };
function incrocia_risultati() {
 	gruppi_attivati = '';
 	controlla_singolo_gruppo(uso);
 	controlla_singolo_gruppo(stile);
 	controlla_singolo_gruppo(colore);
 	selettori.splice(0, selettori.length+1);
 	switch (gruppi_attivati) {
 		case '111':
 			incrocia_3selettori ();
 			break;
 		case '110':
 			incrocia_2selettori (uso, stile);
 			break;
 		case '101':
 			incrocia_2selettori (uso, colore);
 			break;
 		case '011': 
			incrocia_2selettori (stile, colore); 
			break; 
		case '100':
 			solo1selettore(uso);
 			break;
 		case '010':
 			solo1selettore(stile);
 			break;
 		case '001': 
			solo1selettore(colore);
 	} 
};

function controlla_singolo_gruppo(gruppo) {
 	if (gruppo.length > 0) {
 		gruppi_attivati = gruppi_attivati+'1';
 	} else {
 		gruppi_attivati = gruppi_attivati+'0';
 	}
 };

function incrocia_3selettori() {
 	for (i=0; i<uso.length; i++) {
 		if (uso[i]!=false) {
 			for (n=0; n<stile.length; n++) {
 				if (stile[n]!=false) {
 					for (m=0; m<colore.length; m++) {
 						if (colore[m]!=false) {
 							selettori.push(uso[i]+"-"+stile[n]+"-"+colore[m]); 
						}; 
					};
 				}; 
			}; 
		};
 	};
}

function incrocia_2selettori(primo_gruppo, secondo_gruppo) {
 	for (i=0; i<primo_gruppo.length; i++) {
 		for (n=0; n<secondo_gruppo.length; n++) {
 			selettori.push(primo_gruppo[i]+"-"+secondo_gruppo[n]);
 		};
 	};
}

function solo1selettore(gruppo) {
 	for (i=0; i<gruppo.length; i++) {
 			selettori.push(gruppo[i]);
 	};
}

function evidenzia() {
 	lista = document.getElementById('lista');
 	elenco_dd = lista.getElementsByTagName('dd');
 	for (i=0; i<elenco_dd.length; i++) {
 		decolora(elenco_dd[i]);
 		for (n=0; n<selettori.length; n++) {
 			chiavi = selettori[n].split('-');
 			verifica = 0; 
			for (j=0; j<chiavi.length; j++) { 
				if (elenco_dd[i].className.match(chiavi[j])) {
 					verifica++; 				}; 
 			};
 			if (verifica == chiavi.length && elenco_dd[i].className.match('evidenziato')==null) { 
				colora (elenco_dd[i]);
 			};
 		}
 	};
 }

function colora(elemento) {
 	classe = elemento.className;
 	nuova_classe = classe+' evidenziato';
 	elemento.className = nuova_classe;
 }
function decolora(elemento) {
 	classe = elemento.className;
 	nuova_classe = classe.replace('evidenziato','');
 	elemento.className = nuova_classe; } function aggiorna_href() {
 	lista = document.getElementById('lista');
 	elenco_dd = lista.getElementsByTagName('dd');
 	for (i=0; i<elenco_dd.length; i++) {
 		href = elenco_dd[i].firstChild.href;
 		if (href.match('&')) {
 			href_pulito = href.substring(0, href.indexOf('&'));
 		} else {
 			href_pulito = href;
 		};
 		if (gruppi_attivati!='000') {
 			parametri = '&uso='+uso.toString()+'&stile='+stile.toString()+'&colore='+colore.toString();
 		} else {
 			parametri = '';
 		}
 		if (document.getElementById('ricerca').style.display != 'none') {
 			parametri = parametri+'&open=true';
 		};
 		nuovo_href = href_pulito+parametri;
 		elenco_dd[i].firstChild.href = nuovo_href;
 	}
 }