/** Slideshow für die Index-Seite vom ecm (Version 2.0) */var showPos = new Array(); // Position auf der Timeline, min value: 0 | max value: 1000var showInfo = new Array(); // Inhalt der Timelineeinträgevar slidesMoving = false;var movementQueue = new Array();var currentSelection = -1; // Key von showInfovar currentPosOne = 0; // Key von showPos// Vorbereitung vor Slideshow: Fügt neue Bilddaten in die Datensammlung einfunction insertSlideshow(bild, titel, text, preis, url) {  var tempInsert = new Object();  tempInsert.bild  = bild;  tempInsert.titel = titel;  tempInsert.text  = text;  tempInsert.preis = preis;  tempInsert.url   = url;  showInfo.push(tempInsert);}// Code für einen Thumbnail-Eintrag in der Thumbnail-Liste zusammenstellen und zurückgebenfunction getThumbnailHtml(pos, entranceDirection) {  /* pos: showPos-Key des gewünschten Eintrags-codes (Referenzierung des Listeneintrags)     entranceDirection: beliebiger Wert -> Standardcode                        "left" -> Soll von links in die Thumbnailleiste eingeschoben werden   */  if (typeof showInfo[showPos[pos]] != 'undefined') {    var tagHtml = '';    tagHtml += '<div class="slidesMovement" infoid="' + showPos[pos] + '" id="slideId' + pos + '"';    if (entranceDirection == 'left') {      tagHtml += ' style="margin-left:-104px;"';    }    tagHtml += '><a href="' + showInfo[showPos[pos]].url + '" onclick="clickedThumbnail(' + pos + '); return false;" style="text-decoration:none; color:#000;"><div class="slideshowThumbnailImg"><img ';    //if (showPos[pos] == currentSelection) {    tagHtml += 'class="slideshowSelected" ';    //}    tagHtml += 'src="' + showInfo[showPos[pos]].bild + '" /></div>';    tagHtml +=   '<div class="slideshowThumbnailText">' + showInfo[showPos[pos]].titel.substr(0,40) + ((showInfo[showPos[pos]].titel.length > 40) ? ('..') : ('')) + '</div><div class="slideshowThumbnailPreis">' + showInfo[showPos[pos]].preis + '</div>';    tagHtml += '</a></div>';    return tagHtml;  }  return false;}// Slideshow im "slideshow"-div funktionsfähig aufbauenfunction initSlideshow() {  if (showInfo.length < 1) {    $("#slideshow").html('<div id="slideshowMessage">Es sind zurzeit keine Sonderangebote verfügbar.</div>');  } else {    currentSelection = 0; // Die Erstselektion muss hier schon erfolgen, für korrekte Darstellung der Thumbnail-Highlightings    var newHtml = "";        newHtml += '<a id="slideshowDetailsUrl" href="#" onclick="" style="color:#000; text-decoration:none;"><div id="slideshowDetails">';    newHtml +=   '<div id="slideshowDetailsFeatures">';    newHtml +=     '<div id="slideshowDetailsTitle"></div>';    newHtml +=     '<div id="slideshowDetailsText"></div>';    newHtml +=     '<div id="slideshowDetailsPreis"></div>';    newHtml +=   '</div>';    newHtml +=   '<div id="slideshowDetailsPicture"><img src=""/></div>';    newHtml += '</div></a>';    newHtml += '<div id="slideshowSlidesOuter">';     newHtml +=   '<div class="slideshowNavigation"><img src="pic/slide_left.png" onclick="slideMove(-1); return false;"/></div>';    newHtml +=   '<div id="slideshowSlidesInner">';    newHtml +=     '<div id="slideshowSlidesInner2">';        // Bilder einladen    var currentInfoEntry = -1;    for (var displayCount = 0; displayCount < 5; displayCount++) {      currentInfoEntry++;      if (typeof showInfo[currentInfoEntry] == 'undefined') {        currentInfoEntry = 0;      }      showPos[displayCount] = currentInfoEntry;      newHtml += getThumbnailHtml(displayCount,'');    }    currentPosOne = 0;        newHtml +=     '</div>';    newHtml +=   '</div>';    newHtml +=   '<div class="slideshowNavigation"><img src="pic/slide_right.png" onclick="slideMove(1); return false;"/></div>';    newHtml += '</div>';        $("#slideshow").html(newHtml);    showDetails(0);  }}// Klick auf einen Slide, weitere Aktion einleitenfunction clickedThumbnail(pos) {  clickAction(showInfo[showPos[pos]].url);  //showDetails(pos);  return false;}// Zeigt die Informationen des angegebenen Datensatzes im Detailfenster anfunction showDetails(pos) {  $("#slideshowDetailsUrl").attr("href", showInfo[showPos[pos]].url);  $("#slideshowDetailsUrl").unbind('click'); // ???  $("#slideshowDetailsUrl").bind('click', function(){    clickAction(showInfo[showPos[pos]].url);     return false;  });  $("#slideshowDetailsPicture img").attr("src", showInfo[showPos[pos]].bild);  $("#slideshowDetailsTitle").html(showInfo[showPos[pos]].titel);  $("#slideshowDetailsText").html(showInfo[showPos[pos]].text);  $("#slideshowDetailsPreis").html(showInfo[showPos[pos]].preis);  currentSelection = showPos[pos];    //  $("#slideshowSlidesInner2 img").removeClass("slideshowSelected");  //  //$("#slideId" + pos + " img").addClass("slideshowSelected");  //  $("#slideshowSlidesInner2 div[infoid='" + showPos[pos] + "'] img").addClass("slideshowSelected");}// DEPRECATED - Buffer der Klicks, um Overload der Variablenänderungen zu vermeiden// Zum Aktivieren: In initSlideshow() statt "slideMove(~)" einfügen// Speichert einen Klick und startet, wenn nötig, den Abarbeitungszyklusfunction slideMoveQueueFill(direction) {  movementQueue.push(direction);  if (!slidesMoving) {    slidesMoving = true;    slideMove(movementQueue.shift());  }}// Slides nach rechts/links verschieben (Arbeitet die movementQueue ab)function slideMove(direction) {  if (direction < 0) {      // == Bewegung nach LINKS      // -- Vorspeichern eines Wertes, der sich gleich ändern wird      var oldPos = currentPosOne;            // -- showPos: neue erste Position = alte Position - 1      var newestPos = currentPosOne -1;      if (newestPos < 0) {        newestPos = 1000; // VS out of array bounds (-1)      }      currentPosOne = newestPos; // Globalvariable entsprechend umändern            // -- showPos-Wert der neuen showPos      var newestContentId = newestPos; // showPos-ID d. neu geladenen            // -- showInfo-Wert der neuen showPos-Pos erhalten      var newestInfoId = showPos[oldPos] - 1; // showInfo-ID d. neu geladenen      if (newestInfoId < 0) {        newestInfoId = showInfo.length - 1;      }            // -- Zuweisung d. showInfo-Wertes zum showPos-Wert      showPos[newestContentId] = newestInfoId;             // -- Erstellen und Vorhängen des divs      $("#slideshowSlidesInner2").prepend(getThumbnailHtml(newestContentId,'left'));            // -- Pos des zu löschenden Elements:      var PosToDelete = oldPos + 4;      if (PosToDelete > 1000) {        PosToDelete = PosToDelete - 1001; // "1001" = out of showPos-bounds, equals "0"      }            // -- Animation + Entfernen des alten Elements + nächsten slideMove initialisieren      $("#slideId" + newestPos).animate({        marginLeft: '+=108'      }, 300, function() {        $("#slideId" + PosToDelete).remove(); // Nicht mehr sichtbares Element entfernen        if (movementQueue.length > 0) {          slideMove(movementQueue.shift());        } else {          slidesMoving = false;        }      });        } else if (direction > 0) {      // == Bewegung nach RECHTS      // -- Vorspeichern eines Wertes, der sich gleich ändern wird      var oldPos = currentPosOne;            // -- showPos: neue erste Position = alte Position + 1      var newestPos = currentPosOne + 1;      if (newestPos > 1000) {        newestPos = 0; // VS out of array bounds (1001)      }      currentPosOne = newestPos; // Globalvariable entsprechend umändern            // -- showPos-Wert der neuen showPos      var newestContentId = oldPos + 5; // showPos-ID d. neu geladenen      if (newestContentId > 1000) {        newestContentId = newestContentId - 1001; // VS out of array bounds      }            // -- showInfo-Wert der neuen showPos-Pos erhalten      var newestInfoId = showPos[oldPos] + 5; // showInfo-ID d. neu geladenen      while (newestInfoId >= showInfo.length) {        newestInfoId = newestInfoId - showInfo.length; // VS out of known entry bounds (hinter letztem showInfo-Element)      }            // -- Zuweisung d. showInfo-Wertes zum showPos-Wert      showPos[newestContentId] = newestInfoId;             // -- Erstellen und Vorhängen des divs      $("#slideshowSlidesInner2").append(getThumbnailHtml(newestContentId,'right'));            // -- Pos des zu löschenden Elements:      var PosToDelete = oldPos;            // -- Animation + Entfernen des alten Elements + nächsten slideMove initialisieren      $("#slideId" + oldPos).animate({        marginLeft: '-=108'      }, 300, function() {        $("#slideId" + PosToDelete).remove(); // Nicht mehr sichtbares Element entfernen        if (movementQueue.length > 0) {          slideMove(movementQueue.shift());        } else {          slidesMoving = false;        }      });  }  return false;}// *** Aufrufen der Detailseite *** //function showLoadingNotice() {  $("#detail_loading").slideDown("slow");}function hide_details_loading() {  $("#detail_loading").slideUp("slow");}function clickAction(url) {  showLoadingNotice();  var frameHeight = $(window).height() - 100;  $.modal('<div class="simplemodal-close" id="modaldetails_close">[ Fenster schlie&szlig;en ]</div>'        + '<iframe id="modalbox_iframe" scrolling="auto" src="' + url + '&loadnote=1" style="height:' + frameHeight + 'px;"/>', {    overlayClose:true,    escClose:true,    opacity:50,    onClose: function (dialog) {      hide_details_loading();      $.modal.close();    }  });}
