//Version 1.3, unterstützt Anzeige Bild x/y
//Version 1.2, unterstützt jqzoom (WEBSALE Variante)
//Version 1.1, unterstützt Prev/Next Buttons
//Version 1.0, initial

//API-Funktionen:
//
//writeNumberOfActPic(style): 		Gibt die Nummer des aktuellen Bilds in einem DIV-Container aus:
//writeNumberOfPics(style):		Gibt die Anzahl der Bilder in einem DIV-Container aus wenn mehr als 2 Bilder vorhanden, style kann angegeben werden
//writeIfMultiplePics(output):		Gibt den Text aus wenn mindestens 2 Bilder vorhanden sind
//showNextPic(src,style):		Gibt das Bild mit der Next-Schaltfläche aus 
//showPreviousPic(src,style):		Gibt das Bild mit der Prev-Schaltfläche aus
//showSmallPic(index,style):		Gibt das Kleinbild mit dem Index und Style aus
//showBigPic(style):			Gibt das Hauptbild aus

//ausgelagertes Skript
var picIndex = 0; //Aktueller Index

//Bestimmt die Anzahl der Bilder, nicht Teil der API
function getNumberOfPics()
{
	var counter;
  	
  	//Anzahl der Bilder holen
  	counter = 0;
  	for (var i = 0;; i++)
  	{
		if (i >= bigPix.length)
			break;
		if (i >= smallPix.length)
			break;

		if (bigPix[i].length > 0 && smallPix[i].length > 0)
			counter++;
  	}

	return counter;
}

//Gibt die Nummer des aktuellen Bilds in einem DIV-Container aus
function writeNumberOfActPic(style)
{
	//Funktion erzeugt nur den Container, gesetzt wird in setBigPic	
	var counter = getNumberOfPics();  	  	

  	if (counter <= 1)
		return;

	//DIV-Container ausgeben
	document.write('<div id="ws_mehrfachbilder_actpic"');
	if (style != null)
		document.write(' '+style);
	document.write('>');
	
	var counter = 0;
	for (var i = 0; i <= picIndex; i++)
	{
		if (i >= bigPix.length)
			break;
		if (i >= smallPix.length)
			break;

		if (bigPix[i].length > 0 && smallPix[i].length > 0)
			counter++;
	}
	document.write("" + counter);

	document.write('</div>');
}

//Gibt die Anzahl der Bilder in einem DIV-Container aus wenn mehr als 2 Bilder vorhanden, style kann angegeben werden, Teil der API
function writeNumberOfPics(style)
{
	var counter = getNumberOfPics();  	

  	if (counter <= 1)
		return;

	//DIV-Container ausgeben
	document.write('<div');
	if (style != null)
		document.write(' '+style);
	document.write('>'+counter+'</div>');
}

//Gibt den Text aus wenn mindestens 2 Bilder vorhanden sind, Teil der API
function writeIfMultiplePics(output)
{	  	
  	if (output == null)
		return;

	var counter = getNumberOfPics();

  	if (counter <= 1)
		return;

	document.write(output);
}

//Gibt das Bild mit der Next-Schaltfläche aus, Teil der API
function showNextPic(src,style)
{
	showClickPic(0,src,style);
}

//Gibt das Bild mit der Prev-Schaltfläche aus, Teil der API
function showPreviousPic(src,style)
{
	showClickPic(1,src,style);
}

//Gibt ein Bild aus, Next oder Prev, nicht Teil der API
function showClickPic(type,src,style)
{  
  if (src == null)
	return;

  var counter = getNumberOfPics();  

  if (counter <= 1)
	return;

  //Link ausgeben
  document.write('<img ');
  if (type == 0)
  	document.write('onClick="return setNextPic();" ');
  else
	document.write('onClick="return setPrevPic();" ');
  document.write('src="');
  //Shop-URL voranstellen wenn gesetzt und link nicht absolut ist
  if (URLShop.length > 0 && checkAbsoluteAddress(src) == false )
  {
    document.write(URLShop);
    document.write('/');
  }
  document.write(src);
  document.write('" ');
  if (style)
    document.write(style);
  document.write('>&nbsp;'); 
}

//Gibt das Kleinbild mit dem Index und Style aus, Teil der API
function showSmallPic(index,style)
{
  //Index verschieben
  var i = index - 1;
  
  //Bei nur einem Bild ausblenden
  if (bigPix.length <= 1)
    return;
  if (bigPix[1].length == 0)
    return;
  if (smallPix.length <= 1)
    return;
  if (smallPix[1].length == 0)
    return;

  //Grenzen checken
  if (i < 0)
    return;    
  if (i >= smallPix.length)
    return;
  if (i >= bigPix.length)
    return;
  if (smallPix[i].length == 0)
    return;
  if(bigPix[i].length == 0)
    return;
    
  //Link ausgeben
  document.write('<img ');
  document.write('onClick="return setBigPic(');
  document.write(i);
  document.write(');" ');
  document.write('src="');
  //Shop-URL voranstellen wenn gesetzt und link nicht absolut ist
  if (URLShop.length > 0 && checkAbsoluteAddress(smallPix[i]) == false )
  {
    document.write(URLShop);
    document.write('/');
  }
  document.write(smallPix[i]);
  document.write('" ');
  if (style)
    document.write(style);
  document.write('>'); 
}

//Setzt das Hauptbild, nicht benötigt in API
function setBigPic(index)
{
  var URLpreFix = "";

  //Grenzen checken
  if (index < 0)
    return;    
  if (index >= bigPix.length)
    return;

  //Index merken für popupBig
  picIndex = index;

  //Komplette URL basteln, Shop-URL voranstellen wenn gesetzt und link nicht absolut ist
  if (URLShop.length > 0 && checkAbsoluteAddress(bigPix[index]) == false)
    URLpreFix = URLShop + "/";

  //Element holen und setzen
  document.images[bigPicName].src = URLpreFix + bigPix[index];
$('#grossbild_einzeln').attr('src',URLpreFix + jqzoomPix[index]);
  //JQZoom-Unterstützung
  if (jqzoomPix != null)
  {
	var cURL = "";
	if (jqzoomPix[index] != null)
	{
		if (jqzoomPix[index] != "")
			cURL = URLpreFix + jqzoomPix[index];		
	}
  	document.images[bigPicName].setAttribute("jqimg",cURL); //Für den jqzoom
  }

  //ws_mehrfachbilder_actpic Unterstützung
  var actPicDiv = document.getElementById("ws_mehrfachbilder_actpic");
  if (actPicDiv != null)
  {
	var counter = 0;
		
 	for (var i = 0; i <= index; i++)
  	{
		if (i >= bigPix.length)
			break;
		if (i >= smallPix.length)
			break;

		if (bigPix[i].length > 0 && smallPix[i].length > 0)
			counter++;
  	}

	actPicDiv.innerHTML = "" + counter;
  }
}

//Erzeugt das Hauptbild, Teil der API
function showBigPic(style)
{ 
  var URLpreFix = "";

  //Erstes Bild ausgeben, wenn nichts vorhanden nichts ausgeben
  if (bigPix.length == 0)
    return;
  
  //Initial auf 0 stellen
  picIndex = 0;
  
  //Einlesen des Parameters falls vorhanden über window.location.search
  var paramString = window.location.search;
  //Parameter suchen...
  var positionIndex = paramString.lastIndexOf(bigPicParamName + "=");
  if (positionIndex > 0)
  {    
    
    //Parameter extrahieren
    var parameter = paramString.substr(positionIndex + bigPicParamName.length + 1);
    if (!parameter)
      return;
    
    //Bis Ende gehen
    var endIndex = parameter.indexOf("&");
    if (endIndex > 0)
      paramString = parameter.substr(0,endIndex);
    else
      paramString = parameter;
    
    //Endlich gefunden, also setzen
    endIndex = parseInt(paramString);
   
    if (endIndex < bigPix.length)
      picIndex = endIndex;
  }
  
  //Link setzen
  if (popupLocation.length != 0)
  	document.write('<div class="jsonly_grossbild"><a class="grossbild_layer" style="cursor: pointer;">');
  document.write('<img name=' + bigPicName + ' src="');
  //Shop-URL voranstellen wenn gesetzt und link nicht absolut ist  
 if (URLShop.length > 0 && checkAbsoluteAddress(bigPix[picIndex]) == false)
    URLpreFix = URLShop + "/";
  document.write(URLpreFix + bigPix[picIndex] + '"');
  if (style)
    document.write(' ' + style);  
  //JQZoom unterstützen
  if (jqzoomPix != null)
  {
	var cURL = "";
	if (jqzoomPix[picIndex] != null)
	{
		if (jqzoomPix[picIndex] != "")
			cURL = URLpreFix + jqzoomPix[picIndex];		
	}
	document.write(' jqimg="'+cURL+'"');  	
  }  
  document.write('>');
  if (popupLocation.length != 0)
  	document.write('</a></div>');

  //ws_mehrfachbilder_actpic Unterstützung
  var actPicDiv = document.getElementById("ws_mehrfachbilder_actpic");
  if (actPicDiv != null)
  {
	var counter = 0;
		
 	for (var i = 0; i <= index; i++)
  	{
		if (i >= bigPix.length)
			break;
		if (i >= smallPix.length)
			break;

		if (bigPix[i].length > 0 && smallPix[i].length > 0)
			counter++;
  	}

	actPicDiv.innerHTML = "" + counter;
  }
}



function checkAbsoluteAddress(string)
{
  var ret = false;
  //Prüfen /
  if (string.charAt(0) == "/")
    ret = true;
  //Prüfen http
  else if (string.charAt(0) == "h" && string.charAt(1) == "t" && string.charAt(2) == "t" && string.charAt(3) == "p")
    ret = true;    
  
  return ret;
}

//Schaltet auf das nächste Bild, nicht Teil der API
function setNextPic()
{
	var found = false;	

	//Nächstes Bild suchen
	for (var i = picIndex + 1;;i++)
	{
		if (i >= bigPix.length)
			break;
		if (i >= smallPix.length)
			break;

		if (bigPix[i].length > 0 && smallPix[i].length > 0)
		{
			found = true;
			break;
		}			
	}	
	if (found == true)
	{
		setBigPic(i);
		return;
	}

	//Nächstes Bild von vorne suchen
	for (var i = 0; i < picIndex; i++)
	{		
		if (i >= bigPix.length)
			break;
		if (i >= smallPix.length)
			break;

		if (bigPix[i].length > 0 && smallPix[i].length > 0)
		{
			found = true;
			break;
		}			
	}	
	if (found == true)
	{
		setBigPic(i);
		return;
	}

}

//Schaltet auf das vorherige Bild, nicht Teil der API
function setPrevPic()
{
	var found = false;	
	var i;

	//Vorheriges Bild suchen
	for (i = picIndex - 1; i >= 0; i--)
	{		
		if (i >= bigPix.length)
			continue;
		if (i >= smallPix.length)
			continue;
	
		if (bigPix[i].length > 0 && smallPix[i].length > 0)
		{
			found = true;
			break;
		}			
	}	
	if (found == true)
	{
		setBigPic(i);
		return;
	}

	//Vorheriges Bild von hinten suchen
	for (i = bigPix.length - 1; i > picIndex; i--)
	{			
		if (i >= smallPix.length)
			continue;

		if (bigPix[i].length > 0 && smallPix[i].length > 0)
		{
			found = true;
			break;
		}			
	}	
	if (found == true)
	{
		setBigPic(i);
		return;
	}
}
