Hallo Jimmy,
Ich habe mir mal erlaubt, ein bisschen mit deinem Code zu spielen und finde, dass du wahnsinning viel Aufwand betreibst, um ans Ziel zu kommen.
src = document.getElementById("menu_sub_pic_" + nr).src;
du arbeitest hier mit 'nr', mit 'this' haettest du fast eine direkt Referenz auf das Bild. Schluesselwort 'var' fehlt
ext = src.substring(len,len-3);
Was ist bei Extension laenger als 3 Zeichen (auch wenn die in deinem Beispiel nicht vorkommen)
strArr = src.split(".");
Diese ganze Zerlegen und Zusammenbauen koenntest du mit einem replace loesen, da dir die Endung ohnehin bekannt ist. Im Endeffekt machst du ja nur aus 'foo.jpg' ein 'foogross.jpg'
document.getElementById("menu_sub_pic_link_" + nr).class = "menupic active";
Mit 'this' waere das einfacher
Das Ergebnis saehe dann so aus:
<a id="menu_sub_pic_link_1" onclick="showMainPic(this);" class="menupic active">
<!-- hier auf das Argument achten__________________^ -->
----------------------
function showMainPic(sender) { // sender ist das 'this' aus dem Link, also eine direkte Referenz darauf
var pic = sender.getElementsByTagName('img')[0]; // hier ist dein Bild, die Id brauchst du nicht mehr
var len = pic.src.length;
var ext = pic.src.substring(pic.src.lastIndexOf('.') + 1, len); // funktioniert auch mit laengeren Endungen
var clr = pic.src.substring(len, len - 9) == 'clear.gif' ? true : false; // dann ist das auch schon mal geklaert
if((ext == 'jpg' || ext == 'gif' || ext == 'png') && !clr) {
document.getElementById("mainpic").src = pic.src.replace('.' + ext, 'gross.' + ext); // ist doch simpler, oder?
}
sender.className = "menupic active"; // In Javascript muss es className heissen, auch hier wieder Referenz auf den Link
}
</body>
</html>
Gruß,
Dieter