/**
  * Bild Scroll Steuerung
  *
  * @access public
  * @version $LastChangedRevision: 624 $ $LastChangedDate: 2008-05-27 12:17:54 +0200 (Di, 27 Mai 2008) $
  * @author $Author: ttrautmann $, $LastChangedBy: ttrautmann $
  * @copyright 2008 TMT
  * @package nordbayerischer-kurier.de
  *
  */


/**
 * Steuert das Scrollen der Bildleiste.
 *
 * @param integer inkrementierte Bildnummer beginnend bei 1
 */

function BildScrollSteuerung(bild)
{
	if (typeof(BildScroll) != "undefined"){
		window.clearInterval(BildScroll);
	}
	// Initialisierung der aktuellen Position der Tabelle
	var pos = parseInt(document.getElementById("mehrbildertable").style.top);
	// Berechnung des aktuell ersten sichtbaren Bildes
	var erstes_bild = parseInt(getFirstPic(pos));
	//alert(erstes_bild);
	// Initialisierung der aktuellen Höhe des sichbaren Bereiches
	var original = parseInt(document.getElementById("mehrbilderinhalt").style.height);
	// Initialisierung der Scroll-Grenze der Tabelle
	var grenze = (document.getElementById("mehrbildertable").offsetHeight - 10 - original) * -1;
	// Berechnung der Anzahl der Bilder
	var bilder = parseInt(document.getElementById("mehrbildertable").offsetHeight / 72);

	// Wenn ein Scrollen des Bildes nicht notwendig ist.
	if (!checkMovingPicture(bild, bilder)) {
		return;
	}

	// Wenn das erste aktuell sichtbare Bild angeklickt wurde.
	if (bild <= erstes_bild) {
		// Wenn das Bild um 3 Bilder nach unten gescrollt werden kann.
		//if (bild - 3 >= 1) {
		//	BildScroll = window.setInterval("movePicture('down', 3, " + erstes_bild + ")", 50);
		//}
		// Wenn das  Bild um 2 Bilder nach unten gescrollt werden kann.
		if (bild - 2 >= 1) {
			BildScroll = window.setInterval("movePicture('down', 2, " + erstes_bild + ")", 50);
		}
		// Sonst wird das Bild um ein Bild nach unten gescrollt.
		else {
			BildScroll = window.setInterval("movePicture('down', 1, " + erstes_bild + ")", 50);
		}
		return;
	}
	// Wenn das zweite aktuell sichtbare Bild von ober angeklickt wurde.
	else if (bild == (erstes_bild + 1)) {
		// Wenn das Bild um ein Bild nach unten gescrollt werden kann.
		if (bild - 2 >= 1) {
			BildScroll = window.setInterval("movePicture('down', 1, " + erstes_bild + ")", 50);
		}
		return;
	}
	// Wenn das aktuell dritte sichtbare Bild von oben angeklickt wurde.
	else if (bild == (erstes_bild + 2)) {
		// Wenn das Bild um ein Bild nach oben gescrollt werden kann.
		if (bild + 2 <= bilder) {
			BildScroll = window.setInterval("movePicture('up', 1, " + erstes_bild + ")", 50);
		}
		return;
	}
	// Wenn das aktuell letzte sichtare Bild angeklickt wurde.
	else if (bild >= (erstes_bild + 3)) {
		// Wenn das Bild um 3 Bilder nach ober gescrollt werden kann.
		//if (bild + 3 <= bilder) {
		//	BildScroll = window.setInterval("movePicture('up', 3, " + erstes_bild + ")", 50);
		//}
		// Wenn das Bild um 2 Bilder nach oben gescrollt werden kann.
		if (bild + 2 <= bilder) {
			BildScroll = window.setInterval("movePicture('up', 2, " + erstes_bild + ")", 50);
		}
		// Sonst wird das Bild um ein Bild nach ober gescrollt.
		else {
			BildScroll = window.setInterval("movePicture('up', 1, " + erstes_bild + ")", 50);
		}
		return;
	}
	return;
}



/**
 * Überprüft ob ein Scrollen des Bildes norwendig ist.
 *
 * @param integer ID des zu überprüfenden Bildes
 * @param integer Anzahl der vorhandenen Bilder
 * @return boolean true, wenn Scrollen notwendig ist
 *                 false, wenn Scrollen NICHT notwendig ist
 */

function checkMovingPicture(bild, bilder)
{
	// Wenn nicht genug Bilder vorhanden sind.
	if (bilder < 5) {
		return false;
	}
	// Wenn das erste Bild angeklickt wurde.
	if (bild == 1) {
		return false;
	}
	// Wenn das letzte Bild angeklickt wurde.
	if (bild == bilder) {
		return false;
	}
	return true;
}



function round(x)
{
	var wert = (Math.round(x * 100) / 100).toString();
	wert += (wert.indexOf('.') == -1)? '.00' : '00';
	return wert.substring(0, wert.indexOf('.'));
}


/**
 * Ermittelt das erste sichtbare Bild
 *
 * @param integer aktuelle Position der Tabelle
 * @return integer Nummer des Bildes
 */

function getFirstPic(position)
{
	if (position == 0) {
		return 1;
	}
	else {
		var temp = parseInt(round(((position * -1) + 72) / 72));
		if (temp < 1) {
			return 1;
		}
		return temp;
	}
}


/**
 * Scrollt die Bildleiste.
 *
 * @param string Richtung: "up", wenn nach oben
 *                         "down", wenn nach unten
 * @param integer Scroll-Strecke in Bilder (ein Bild = 70px)
 * @param integer erstes sichbares Bild
 */

function movePicture(richtung, bilder, bild)
{
	// Initialisierung der aktuellen Position der Tabelle
	var position = parseInt(document.getElementById("mehrbildertable").style.top);

	if (richtung == "up") {
		var ziel = parseInt(((bild * 72 - 72) * -1) - (bilder * 72));

		if (position > ziel + 20) {
			position -= (1 * 5);
			document.getElementById("mehrbildertable").style.top = position + "px";
		}
		else if (position > ziel) {
			position -= (1 * 2);
			document.getElementById("mehrbildertable").style.top = position + "px";
		}
		else {
			window.clearInterval(BildScroll);
		}
	}
	else if (richtung == "down") {
		var ziel = parseInt(((bild * 72 - 72) * -1) + (bilder * 72));

		if (position < ziel - 20) {
			position += (1 * 5);
			document.getElementById("mehrbildertable").style.top = position + "px";
		}
		else if (position < ziel) {
			position += (1 * 2);
			document.getElementById("mehrbildertable").style.top = position + "px";
		}
		else {
			window.clearInterval(BildScroll);
		}
	}
}

