MediaWiki

CharacterFilter.js: Difference between revisions

From Illustrations in German Translations of Mark Twain's Works

No edit summary
Tag: Manual revert
No edit summary
Line 91: Line 91:
// Slideshow Script: Illustrations of Huck, filter by illustrator
// Slideshow Script: Illustrations of Huck, filter by illustrator


// Globale Bildlisten und aktuelle Indizes
// ===============================
var slides = {
// Huck Slideshow – filter by illustrator
  A: [],
// ===============================
  B: [],
  C: [],
  D: [],


};
// Globale Bildlisten und aktuelle Indizes für Huck
var huck_slides = { C: [], D: [] };
var huck_currentIndex = { C: 0, D: 0 };


var currentIndex = {
// Slideshow laden für Huck
  A: 0,
function huck_filterAndLoadSlideshow(target) {
  B: 0,
    var dropdownId = 'illustratorDropdown' + target;
  C: 0,
    var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  D: 0,
    var imageElement = document.getElementById('slide' + target);
};


// Slideshow laden
    if (!imageElement) {
function filterAndLoadSlideshowH(target) {
        console.error('Huck Slideshow ' + target + ': Bild-Element nicht gefunden.');
  var dropdownId = 'illustratorDropdown' + target;
        return;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
    }
  var imageElement = document.getElementById('slide' + target);


  if (!imageElement) {
     huck_slides[target] = [];
     console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
     huck_currentIndex[target] = 0;
     return;
  }


  slides[target] = [];
    if (!selectedIllustrator) {
  currentIndex[target] = 0;
        imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
        imageElement.title = "Kein Illustrator ausgewählt.";
        return;
    }


  if (!selectedIllustrator) {
     var rows = document.querySelectorAll('#catalog tbody tr');
     imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }


  var rows = document.querySelectorAll('#catalog tbody tr');
    for (var i = 0; i < rows.length; i++) {
        var row = rows[i];
        var illustratorCell = row.cells[2];
        var tagsCell = row.cells[7];
        var idCell = row.cells[8];


  for (var i = 0; i < rows.length; i++) {
        var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var row = rows[i];
        var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var illustratorCell = row.cells[2];
        var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var tagsCell = row.cells[7];
        var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';
    var idCell = row.cells[8];


    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
        // Filter: Illustrator match & 'huck'-Tag vorhanden
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
        if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('huck') !== -1) {
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
            huck_slides[target].push(idText);
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';
            console.log('✓ Zeile ' + i + ': ID=' + idText);
        }
    }


     if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('huck') !== -1) {
     if (huck_slides[target].length === 0) {
      slides[target].push(idText);
        imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
      console.log('✓ Zeile ' + i + ': ID=' + idText);
        imageElement.title = "Keine passenden Bilder gefunden.";
        return;
     }
     }
  }


  if (slides[target].length === 0) {
    huck_showSlide(target, 0);
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
}
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }


  showSlide(target, 0);
// Einzelnes Bild anzeigen
}
function huck_showSlide(target, index) {
    var imageElement = document.getElementById('slide' + target);
    var slideArray = huck_slides[target];


// Zeige ein einzelnes Bild
    if (!imageElement || slideArray.length === 0) return;
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];


  if (!imageElement || slideArray.length === 0) return;
    huck_currentIndex[target] = (index + slideArray.length) % slideArray.length;
    var imageId = slideArray[huck_currentIndex[target]];


  currentIndex[target] = (index + slideArray.length) % slideArray.length;
    imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  var imageId = slideArray[currentIndex[target]];
    imageElement.alt = imageId;
    imageElement.title = imageId;


  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
    // optional: preload next image
  imageElement.alt = imageId;
    var nextImg = new Image();
  imageElement.title = imageId;
    nextImg.src = '/index.php/Special:Redirect/file/' + slideArray[(huck_currentIndex[target] + 1) % slideArray.length] + '.jpg';
}
}


// Buttons
// Buttons
function nextSlide(target) {
function huck_nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
    huck_showSlide(target, huck_currentIndex[target] + 1);
}
}


function prevSlide(target) {
function huck_prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
    huck_showSlide(target, huck_currentIndex[target] - 1);
}
}


// Slideshow Script: Illustrations of Jim, filter by illustrator
// Slideshow Script: Illustrations of Jim, filter by illustrator

Revision as of 22:56, 2 September 2025

// Slideshow Script: Illustrations of Tom, filter by illustrator

// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],

};

var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};

// Slideshow laden
function filterAndLoadSlideshowT(target) {
  var dropdownId = 'illustratorDropdown' + target;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  var imageElement = document.getElementById('slide' + target);

  if (!imageElement) {
    console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
    return;
  }

  slides[target] = [];
  currentIndex[target] = 0;

  if (!selectedIllustrator) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }

  var rows = document.querySelectorAll('#catalog tbody tr');

  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var illustratorCell = row.cells[2];
    var tagsCell = row.cells[7];
    var idCell = row.cells[8];

    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

    if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('tom') !== -1) {
      slides[target].push(idText);
      console.log('✓ Zeile ' + i + ': ID=' + idText);
    }
  }

  if (slides[target].length === 0) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }

  showSlide(target, 0);
}

// Zeige ein einzelnes Bild
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];

  if (!imageElement || slideArray.length === 0) return;

  currentIndex[target] = (index + slideArray.length) % slideArray.length;
  var imageId = slideArray[currentIndex[target]];

  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  imageElement.alt = imageId;
  imageElement.title = imageId;
}

// Buttons
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}

function prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
}

// Slideshow Script: Illustrations of Huck, filter by illustrator

// ===============================
// Huck Slideshow – filter by illustrator
// ===============================

// Globale Bildlisten und aktuelle Indizes für Huck
var huck_slides = { C: [], D: [] };
var huck_currentIndex = { C: 0, D: 0 };

// Slideshow laden für Huck
function huck_filterAndLoadSlideshow(target) {
    var dropdownId = 'illustratorDropdown' + target;
    var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
    var imageElement = document.getElementById('slide' + target);

    if (!imageElement) {
        console.error('Huck Slideshow ' + target + ': Bild-Element nicht gefunden.');
        return;
    }

    huck_slides[target] = [];
    huck_currentIndex[target] = 0;

    if (!selectedIllustrator) {
        imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
        imageElement.title = "Kein Illustrator ausgewählt.";
        return;
    }

    var rows = document.querySelectorAll('#catalog tbody tr');

    for (var i = 0; i < rows.length; i++) {
        var row = rows[i];
        var illustratorCell = row.cells[2];
        var tagsCell = row.cells[7];
        var idCell = row.cells[8];

        var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
        var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
        var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
        var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

        // Filter: Illustrator match & 'huck'-Tag vorhanden
        if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('huck') !== -1) {
            huck_slides[target].push(idText);
            console.log('✓ Zeile ' + i + ': ID=' + idText);
        }
    }

    if (huck_slides[target].length === 0) {
        imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
        imageElement.title = "Keine passenden Bilder gefunden.";
        return;
    }

    huck_showSlide(target, 0);
}

// Einzelnes Bild anzeigen
function huck_showSlide(target, index) {
    var imageElement = document.getElementById('slide' + target);
    var slideArray = huck_slides[target];

    if (!imageElement || slideArray.length === 0) return;

    huck_currentIndex[target] = (index + slideArray.length) % slideArray.length;
    var imageId = slideArray[huck_currentIndex[target]];

    imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
    imageElement.alt = imageId;
    imageElement.title = imageId;

    // optional: preload next image
    var nextImg = new Image();
    nextImg.src = '/index.php/Special:Redirect/file/' + slideArray[(huck_currentIndex[target] + 1) % slideArray.length] + '.jpg';
}

// Buttons
function huck_nextSlide(target) {
    huck_showSlide(target, huck_currentIndex[target] + 1);
}

function huck_prevSlide(target) {
    huck_showSlide(target, huck_currentIndex[target] - 1);
}


// Slideshow Script: Illustrations of Jim, filter by illustrator

// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],

};

var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};

// Slideshow laden
function filterAndLoadSlideshowJ(target) {
  var dropdownId = 'illustratorDropdown' + target;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  var imageElement = document.getElementById('slide' + target);

  if (!imageElement) {
    console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
    return;
  }

  slides[target] = [];
  currentIndex[target] = 0;

  if (!selectedIllustrator) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }

  var rows = document.querySelectorAll('#catalog tbody tr');

  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var illustratorCell = row.cells[2];
    var tagsCell = row.cells[7];
    var idCell = row.cells[8];

    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

    if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('jim') !== -1) {
      slides[target].push(idText);
      console.log('✓ Zeile ' + i + ': ID=' + idText);
    }
  }

  if (slides[target].length === 0) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }

  showSlide(target, 0);
}

// Zeige ein einzelnes Bild
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];

  if (!imageElement || slideArray.length === 0) return;

  currentIndex[target] = (index + slideArray.length) % slideArray.length;
  var imageId = slideArray[currentIndex[target]];

  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  imageElement.alt = imageId;
  imageElement.title = imageId;
}

// Buttons
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}

function prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
}

// Slideshow Script: Illustrations of Pap, filter by illustrator

// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],

};

var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};

// Slideshow laden
function filterAndLoadSlideshowP(target) {
  var dropdownId = 'illustratorDropdown' + target;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  var imageElement = document.getElementById('slide' + target);

  if (!imageElement) {
    console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
    return;
  }

  slides[target] = [];
  currentIndex[target] = 0;

  if (!selectedIllustrator) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }

  var rows = document.querySelectorAll('#catalog tbody tr');

  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var illustratorCell = row.cells[2];
    var tagsCell = row.cells[7];
    var idCell = row.cells[8];

    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

    if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('papfinn') !== -1) {
      slides[target].push(idText);
      console.log('✓ Zeile ' + i + ': ID=' + idText);
    }
  }

  if (slides[target].length === 0) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }

  showSlide(target, 0);
}

// Zeige ein einzelnes Bild
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];

  if (!imageElement || slideArray.length === 0) return;

  currentIndex[target] = (index + slideArray.length) % slideArray.length;
  var imageId = slideArray[currentIndex[target]];

  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  imageElement.alt = imageId;
  imageElement.title = imageId;
}

// Buttons
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}

function prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
}


// Slideshow Script: Illustrations of King and Duke, filter by illustrator

// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],

};

var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};

// Slideshow laden
function filterAndLoadSlideshowKD(target) {
  var dropdownId = 'illustratorDropdown' + target;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  var imageElement = document.getElementById('slide' + target);

  if (!imageElement) {
    console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
    return;
  }

  slides[target] = [];
  currentIndex[target] = 0;

  if (!selectedIllustrator) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }

  var rows = document.querySelectorAll('#catalog tbody tr');

  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var illustratorCell = row.cells[2];
    var tagsCell = row.cells[7];
    var idCell = row.cells[8];

    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

    if (
  illustratorText.indexOf(selectedIllustrator) !== -1 &&
  (
    tagsText.indexOf('king') !== -1 ||
    tagsText.indexOf('duke') !== -1
  )
) {
  slides[target].push(idText);
  console.log('✓ Zeile ' + i + ': ID=' + idText);
}
  }

  if (slides[target].length === 0) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }

  showSlide(target, 0);
}

// Zeige ein einzelnes Bild
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];

  if (!imageElement || slideArray.length === 0) return;

  currentIndex[target] = (index + slideArray.length) % slideArray.length;
  var imageId = slideArray[currentIndex[target]];

  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  imageElement.alt = imageId;
  imageElement.title = imageId;
}

// Buttons
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}

function prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
}

// Slideshow Script: Illustrations of other characters, filter by illustrator

// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],

};

var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};

// Slideshow laden
function filterAndLoadSlideshowSDC(target) {
  var dropdownId = 'illustratorDropdown' + target;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  var imageElement = document.getElementById('slide' + target);

  if (!imageElement) {
    console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
    return;
  }

  slides[target] = [];
  currentIndex[target] = 0;

  if (!selectedIllustrator) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }

  var rows = document.querySelectorAll('#catalog tbody tr');

  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var illustratorCell = row.cells[2];
    var tagsCell = row.cells[7];
    var idCell = row.cells[8];

    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

    if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('sdc') !== -1) {
      slides[target].push(idText);
      console.log('✓ Zeile ' + i + ': ID=' + idText);
    }
  }

  if (slides[target].length === 0) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }

  showSlide(target, 0);
}

// Zeige ein einzelnes Bild
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];

  if (!imageElement || slideArray.length === 0) return;

  currentIndex[target] = (index + slideArray.length) % slideArray.length;
  var imageId = slideArray[currentIndex[target]];

  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  imageElement.alt = imageId;
  imageElement.title = imageId;
}

// Buttons
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}

function prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
}

// Slideshow Script: Illustrations of female characters, filter by illustrator

// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],

};

var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};

// Slideshow laden
function filterAndLoadSlideshowFem(target) {
  var dropdownId = 'illustratorDropdown' + target;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  var imageElement = document.getElementById('slide' + target);

  if (!imageElement) {
    console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
    return;
  }

  slides[target] = [];
  currentIndex[target] = 0;

  if (!selectedIllustrator) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }

  var rows = document.querySelectorAll('#catalog tbody tr');

  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var illustratorCell = row.cells[2];
    var tagsCell = row.cells[7];
    var idCell = row.cells[8];

    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

    if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('fem') !== -1) {
      slides[target].push(idText);
      console.log('✓ Zeile ' + i + ': ID=' + idText);
    }
  }

  if (slides[target].length === 0) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }

  showSlide(target, 0);
}

// Zeige ein einzelnes Bild
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];

  if (!imageElement || slideArray.length === 0) return;

  currentIndex[target] = (index + slideArray.length) % slideArray.length;
  var imageId = slideArray[currentIndex[target]];

  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  imageElement.alt = imageId;
  imageElement.title = imageId;
}

// Buttons
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}

function prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
}

// Slideshow Script: Illustrations of black characters, filter by illustrator

// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],

};

var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};

// Slideshow laden
function filterAndLoadSlideshowAAC(target) {
  var dropdownId = 'illustratorDropdown' + target;
  var selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase();
  var imageElement = document.getElementById('slide' + target);

  if (!imageElement) {
    console.error('Slideshow ' + target + ': Bild-Element nicht gefunden.');
    return;
  }

  slides[target] = [];
  currentIndex[target] = 0;

  if (!selectedIllustrator) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Kein Illustrator ausgewählt.";
    return;
  }

  var rows = document.querySelectorAll('#catalog tbody tr');

  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var illustratorCell = row.cells[2];
    var tagsCell = row.cells[7];
    var idCell = row.cells[8];

    var illustratorText = illustratorCell ? illustratorCell.textContent.trim().toLowerCase() : '';
    var tagsText = tagsCell ? tagsCell.textContent.trim().toLowerCase() : '';
    var idLink = idCell ? idCell.getElementsByTagName('a')[0] : null;
    var idText = idLink ? idLink.textContent.trim().toLowerCase() : '';

    if (illustratorText.indexOf(selectedIllustrator) !== -1 && tagsText.indexOf('aac') !== -1) {
      slides[target].push(idText);
      console.log('✓ Zeile ' + i + ': ID=' + idText);
    }
  }

  if (slides[target].length === 0) {
    imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
    imageElement.title = "Keine passenden Bilder gefunden.";
    return;
  }

  showSlide(target, 0);
}

// Zeige ein einzelnes Bild
function showSlide(target, index) {
  var imageElement = document.getElementById('slide' + target);
  var slideArray = slides[target];

  if (!imageElement || slideArray.length === 0) return;

  currentIndex[target] = (index + slideArray.length) % slideArray.length;
  var imageId = slideArray[currentIndex[target]];

  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
  imageElement.alt = imageId;
  imageElement.title = imageId;
}

// Buttons
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}

function prevSlide(target) {
  showSlide(target, currentIndex[target] - 1);
}