mi rispondo alle 2: l'errore accade perchè siamo in un'altra funzione. Quindi ho modificato così ma ora mi fa sempre l'alert con scritto errore!!! Datemi una mano...
codice:
{....
XMLHttp.onreadystatechange = handle_loadimg(XMLHttp,thumb,src_originale,n);
....
}

function handle_loadimg(xmlhttp,array_thumb,array_src_originale,i) {
	var XMLHttp = xmlhttp;
	var thumb = array_thumb;
	var src_originale = array_src_originale;
        var n = i;
	switch (XMLHttp.readyState) {
		case 0:
			alert('errore');
		break;
		case 1:
		break;
		case 2:
		break;
		case 3:
		case 4:
			thumb[n].src = src_originale[n];
		break;
	}
}