MediaWiki

CharacterFilter.js: Difference between revisions

From Illustrations in German Translations of Mark Twain's Works

No edit summary
Tag: Reverted
No edit summary
Tag: Manual revert
Line 1: Line 1:
window.huckSlideshow = {
// Slideshow Script: Illustrations of Tom, filter by illustrator
  slides: { A: [], B: [] },
  currentIndex: { A: 0, B: 0 },
  indexBuilt: false,
  characterIndex: {},


  buildIndex: function() {
// Globale Bildlisten und aktuelle Indizes
    this.characterIndex = {};
var slides = {
    const rows = document.querySelectorAll('#catalog tr');
  A: [],
    rows.forEach(row => {
  B: [],
      if (!row.cells || row.cells.length < 9) return;
  C: [],
  D: [],


       // Illustrator, Tags, ID
};
      const illustr = row.cells[2]?.textContent.trim().toLowerCase().replace(',', '');
 
      const tagsText = row.cells[7]?.textContent.trim().toLowerCase();
var currentIndex = {
       const idLink = row.cells[8]?.getElementsByTagName('a')[0];
  A: 0,
      const idText = idLink?.textContent.trim().toLowerCase();
  B: 0,
      if (!idText) return;
  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
 
// Globale Bildlisten und aktuelle Indizes
var slides = {
  A: [],
  B: [],
  C: [],
  D: [],
 
};
 
var currentIndex = {
  A: 0,
  B: 0,
  C: 0,
  D: 0,
};
 
// Slideshow laden
function filterAndLoadSlideshowH(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('huck') !== -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 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;


      // Tags splitten, Bindestriche entfernen
  currentIndex[target] = (index + slideArray.length) % slideArray.length;
      const tags = tagsText.split(/\s+/).map(t => t.replace(/^-/, '')).filter(t => t);
  var imageId = slideArray[currentIndex[target]];


      tags.forEach(tag => {
  imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
        if (!this.characterIndex[tag]) this.characterIndex[tag] = {};
  imageElement.alt = imageId;
        if (!this.characterIndex[tag][illustr]) this.characterIndex[tag][illustr] = [];
  imageElement.title = imageId;
        this.characterIndex[tag][illustr].push(idText);
}
      });
    });
    this.indexBuilt = true;
  },


  load: function(target) {
// Buttons
    if (!this.indexBuilt) this.buildIndex();
function nextSlide(target) {
  showSlide(target, currentIndex[target] + 1);
}


    const dropdownId = 'illustratorDropdown' + target;
function prevSlide(target) {
    const selectedIllustrator = document.getElementById(dropdownId).value.toLowerCase().replace(',', '');
  showSlide(target, currentIndex[target] - 1);
    const imageElement = document.getElementById('slide' + target);
}
    if (!imageElement) return;


    this.slides[target] = [];
// Slideshow Script: Illustrations of other characters, filter by illustrator
    this.currentIndex[target] = 0;


     if (!selectedIllustrator) {
// Globale Bildlisten und aktuelle Indizes
      imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
var slides = {
      imageElement.title = "No illustrator selected.";
  A: [],
       return;
  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;
  }


    const ids = this.characterIndex['huck']?.[selectedIllustrator] || [];
  showSlide(target, 0);
    if (ids.length === 0) {
}
      imageElement.src = "https://illus.twainframe.org/images/d/d2/GalleryPlaceholder.png";
 
      imageElement.title = "No matching images.";
// Zeige ein einzelnes Bild
       return;
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;
  }


    this.slides[target] = ids;
  showSlide(target, 0);
    this.show(target, 0);
}
  },


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


    this.currentIndex[target] = (index + slideArray.length) % slideArray.length;
  if (!imageElement || slideArray.length === 0) return;
    const imageId = slideArray[this.currentIndex[target]];
    imageElement.src = '/index.php/Special:Redirect/file/' + imageId + '.jpg';
    imageElement.alt = imageId;
    imageElement.title = imageId;


    // preload next
  currentIndex[target] = (index + slideArray.length) % slideArray.length;
    const nextImg = new Image();
  var imageId = slideArray[currentIndex[target]];
    nextImg.src = '/index.php/Special:Redirect/file/' + slideArray[(this.currentIndex[target]+1)%slideArray.length] + '.jpg';
 
   },
  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: [],


  next: function(target) { this.show(target, this.currentIndex[target] + 1); },
  prev: function(target) { this.show(target, this.currentIndex[target] - 1); }
};
};
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);
}

Revision as of 22:50, 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

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

};

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

// Slideshow laden
function filterAndLoadSlideshowH(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('huck') !== -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 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);
}