/* Copyright (c) WEBSALE AG 2010
 * Diese Software ist kommerziell und unterliegt der Lizenzpflicht.
 * Benutzung und Weitergabe nur mit Genehmigung und mit Lizenz der WEBSALE AG.
 *
 * Copyright (c) WEBSALE AG 2010
 * This software is to be licensed.
 * Use or distribution only with expressed permission and with license of WEBSALE AG.
 */

//////////////////////////////////////////////////////////////////////////////////////////
//                                                                                      //
//    Designspezifische Funktionen fuer WEBSALE eCommerce                               //
//                                                                                      //
//////////////////////////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////////////////////////
//	Allgemeine: "verfügbare Zeichen einer Textarea anzeigen"                        //
//////////////////////////////////////////////////////////////////////////////////////////
//
//	Mit folgender Funktion können Sie die restlichen verfügbaren Zeichen
//	einer Textarea anzeigen lassen:
//	ws_registerLimitTextarea(textareaid, maxlength, infodiv, infostring_signsleft, infostring_nosignsleft)
//		textareaid:		Die ID der Textarea
//		maxlength:		Die maximale Anzahl an Zeichen
//		infodiv:		Die ID des DIV-Containers in der die verfügbare Menge an Zeichen angezeigt wird
//		infostring_signsleft:	Dieser Text wird angezeigt wenn noch Zeichen zur Verfügung stehen. Das Tag ~WSJS-Signs~ wird durch die verfügbare Anzahl an Zeichen ersetzt.
//		infostring_nosignsleft:	Dieser Text wird angezeigt wenn keine Zeichen mehr zur Verfügung stehen. Das Tag ~WSJS-Signs~ wird durch die maximale Anzahl an Zeichen ersetzt.
//
//	Rufen Sie diese Funktion entweder in der Funktion $(document).ready oder an einer beliebigen Stelle im Template auf



//////////////////////////////////////////////////////////////////////////////////////////
//    Allgemein: "DIV-Container bei aktiviertem Javascript einblenden"                  //
//////////////////////////////////////////////////////////////////////////////////////////

//Alle DIV-Container mit dieser Klasse werden nachdem die Seite gealden ist automatisch eingeblendet
//Die DIV-Container muessen dabei den style "display: none" besitzen
var ws_JSOnlyClass = 'javascript_only';



//////////////////////////////////////////////////////////////////////////////////////////
//    Modul: "Produktvergleich"                                                         //
//////////////////////////////////////////////////////////////////////////////////////////
//Anhand der nachfolgenden Parameter laesst sich das Verhalten des Produktvergleichs konfigurieren

//Der DIV-Container in dem der Inhalt des Layers (Produktvergleich) angezeigt wird (Kategorie/Produkt)
var ws_PRCAjaxDivContent = 'PC-Content';

//Der Klassenname der Links zum Anzeigen des Produktvergleichs 
//dieser DIV-Container muss einmal auf jedem Template vorhanden sein auf dem der Produktvergleich angezeigt wird.
var ws_PRCShowProductCompareClass = 'PRC-Show';

//Der DIV-Container mit dieser ID wird eingeblendet wenn eine Hinweismeldungen angezeigt wird, z.B. wenn keine weiteren Produkte zum Produktvergleich hinzugefuegt werden koennen (Kategorie)
var ws_PRCAlertDiv = 'PC-Alert';
//In den DIV-Container mit dieser ID wird der Hinweistext eingefuegt (Kategorie)
var ws_PRCAlertTextDiv = 'PC-Alert-Message';

//Ist dieser Schalter auf true gesetzt wird der Inhalt des Produktvergleichs per JavaScript um 90 Grad gedreht
var ws_PRCRotate = true;
//Anfang und Endekennungen der Daten- und Template-Sektion im Template welches per AJAX zurueckgegeben wird
var ws_PRCRotateDataBegin = '<data>';
var ws_PRCRotateDataEnd = '</data>';
var ws_PRCRotateTemplateBegin = '<template>';
var ws_PRCRotateTemplateEnd = '</template>';
//Feld- und Datensatztrenner der Datensektion
var ws_PRCRotateDataFieldSeparator = '<df>';
var ws_PRCRotateDataRowSeparator = '<dr>';
//Konfiguration der Ausgabetabelle
var ws_PRCRotateTableClass = 'PRC-Table';
var ws_PRCRotateTableID = 'PRC-Table';
var ws_PRCRotateTableTRClasses = [ 'PRC-TR1', 'PRC-TR2' ];                         //Array mit beliebiger Anzahl an Klassen
var ws_PRCRotateTableTDHeaderClasses = [ 'PRC-TDHeader1', 'PRC-TDHeader2' ];       //Array mit beliebiger Anzahl an Klassen
var ws_PRCRotateTableTDClasses = [ 'PRC-TD1', 'PRC-TD2' ];                         //Array mit beliebiger Anzahl an Klassen
var ws_PRCRotateTableTDClassesAlternateVertical = true;
var ws_PRCRotateTemplateReplaceTag = '#####REPLACE#####';



//////////////////////////////////////////////////////////////////////////////////////////
//    Modul: "Produkte per AJAX in den Warenkorb legen"                                 //
//////////////////////////////////////////////////////////////////////////////////////////
 
//Diese Funktion wird aufgerufen bevor die AJAX-Anfrage abgesetzt wird.
//Mit dieser Funktion ist zum Beispiel eine Ladeanzeige realisierbar
function ws_AJAXaddToBasketStart()
{
       //Blendet die Fehler- und Infocontainer aus sowie den Ladecontainer ein
       $('#AJAXError').hide();
       $('#WK-Error').fadeOut("slow");
       $('#AJAXInfo').fadeIn("slow");
}
 
//Diese Funktion wird aufgerufen wenn Produkt(e) in den Warenkorb gelegt werden konnten
//Mit dieser Funktion ist die Erfolgsmeldung realisierbar
function ws_AJAXaddToBasketResponseSuccess()
{
       //Blendet den Ladecontainer aus
       $('#AJAXInfo').fadeOut("slow");
       //Der Container mit der Information wieviele Artikel in den WK gelegt wurden wird angezeigt, dieser Container wird nach 3 Sekunden wieder ausgeblendet
       $('#WK-Info').fadeIn("slow");
       window.setTimeout("$('#WK-Info').fadeOut('slow')", 3000);
       //Der Markierungscontainer im Kurzwarenkorb blinkt 3 mal au
       window.setTimeout("$('#WK-Alert').fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500)", 100);
}
 
//Diese Funktino wird aufgerufen wenn mindestens ein Artikel nicht in den Warenkorb gelegt werden konnte
//Mit dieser Funktion laesst sich die von WEBSALE eCommerce erzeugte Fehlermeldung ausgeben
function ws_AJAXaddToBasketResponseError()
{
       //Blendet den Ladecontainer aus und die Hinweismeldung ein
       $('#AJAXInfo').fadeOut("slow");
       $('#WK-Error').fadeIn("slow");
}
 
//Diese Funktion wird aufgerufen wenn die AJAX-Kommunikatino fehlschlug
//Mit dieser Funktion laesst sich ein allgemeiner Kommunikationsfehler (z.B. wenn die Internetverbindung unterbrochen wurde) anzeigen
function ws_AJAXaddToBasketError()
{
       //Blendet den Ladecontainer aus und den AJAX-Fehlercontainer ein
       $('#AJAXInfo').fadeOut();
       $('#AJAXError').fadeIn();
}






//	Anfang Infobox (Großbild bei den Thumbnails) //
//	---------------------------------------------------------------------------------- //

/***********************************************
* Copyright 2002-2007 by Sharon Paine
***********************************************/

/* IMPORTANT: Put script after tooltip div or put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;

var origWidth, origHeight;

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip 
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;	
// Be sure to set tipWidth wide enough for widest image
var offX= 10;	// how far from mouse to show tip
var offY= 5; 
var tipFontFamily= "Arial, helvetica, sans-serif";
var tipFontSize= "0px";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "#000000";
var tipBgColor= "#FFFFFF"; 
var tipBorderColor= "#cccccc";
var tipBorderWidth= 1;
var tipBorderStyle= "ridge";
var tipPadding= 5;

////////////////////  END OF CUSTOMIZATION AREA  ///////////////////

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr1 = '<table><tr><td valign="top" width="100%" align="center" bgcolor="#FFFFFF"><b>';
var startStr2 = '</b></td></tr><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top" width="100%" align="center" bgcolor="#FFFFFF"><b>';
var endStr = '</b></td></tr></table>';

////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = tooltip.style;
	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
		//tipcss.width = tipWidth+"px";
		tipcss.fontFamily = tipFontFamily;
		tipcss.fontSize = tipFontSize;
		tipcss.color = tipFontColor;
		tipcss.backgroundColor = tipBgColor;
		tipcss.borderColor = tipBorderColor;
		tipcss.borderWidth = tipBorderWidth+"px";
		tipcss.padding = tipPadding+"px";
		tipcss.borderStyle = tipBorderStyle;
	}
	if (tooltip&&tipFollowMouse) {
		document.onmousemove = trackMouse;
	}
}

window.onload = initTip;

/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes 
//			it to tipDiv
/////////////////////////////////////////////////
var t1,t2;	// for setTimeouts
var tipOn = false;	// check if over tooltip link
function doTooltip(evt,imagePath, messge, preis) 
{
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	if (ie4||ie5||ns5) 
	{
		var tip = startStr1 +'<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + tipFontColor + ';">' + messge + '</span>'+ startStr2 + imagePath + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:#000000;">' + preis + '</span>' + endStr;
		tipcss.backgroundColor = tipBgColor;
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
	mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
	mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	if (tipOn) positionTip(evt);
}

/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position, 
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
	if (!tipFollowMouse) {
		mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
		mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
	var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = mouseX-(tpWd+offX)+"px";
	else tipcss.left = mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = winHt-(tpHt+offY)+"px";
	else tipcss.top = mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}

document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')

//	---------------------------------------------------------------------------------- //
//	Ende Infobox (Großbild bei den Thumbnails) //


//////////////////////////////////////////////////////////////////////////////////////////
//    Modul: "Mehrfachbilder"                                                         //
//////////////////////////////////////////////////////////////////////////////////////////

//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('>&nbsp;'); 
}

//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];

  //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('<a href="javascript:popupBig();">');
  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>');

  //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 Popup, nicht benötigt in der API
function popupBig()
{
  var spacer = '&';
  if (popupLocation.indexOf("?") == -1)
    spacer = '?';

  if (popupLocation.length == 0)
    return;
  
  //Hier den Parameter mitgeben, und auch den restlichen Popupschlonz...
  //ab dem ? bitte URL-Codieren
  var address = popupLocation + spacer + bigPicParamName + '=' + picIndex;
  encodeURI(address);
  //Und popup
  var mywin=window.open(address,popupName,popupOptions);
  mywin.focus();
}

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;
	}
}
//	---------------------------------------------------------------------------------- //
//	Ende Mehrfachbilder  //


//	Anfang Altersüberprüfung //
//	---------------------------------------------------------------------------------- //

var alertMessage = "Sie muessen 18 Jahre alt sein um bestellen zu koennen";
var indexAgeDay = 12;
var indexAgeMonth = 13;
var indexAgeYear = 14;


function checkAge()
{
  if (document.forms["addr"].elements[indexAgeDay] && document.forms["addr"].elements[indexAgeMonth]  && document.forms["addr"].elements[indexAgeYear])
  {
    var valueDay = document.forms["addr"].elements[indexAgeDay].value;        
    if (valueDay[0] == '0')
      valueDay = valueDay.substr(1);
    valueDay = parseInt(valueDay);
    var valueMonth = document.forms["addr"].elements[indexAgeMonth].value;
    if (valueMonth[0] == '0')
      valueMonth = valueMonth.substr(1);
    valueMonth = parseInt(valueMonth);
    var valueYear = parseInt(document.forms["addr"].elements[indexAgeYear].value);
    var acDate = new Date();
    
    var acYear = acDate.getFullYear();
    var acMonth = acDate.getMonth() + 1;
    var acDay = acDate.getDate();     
    
    if (acYear - valueYear > 18)
    {
      return true;    
    }
    if (acYear - valueYear == 18)
    {	
      if (acMonth > valueMonth)
      {
	return true;      
      }
      if (acMonth == valueMonth)
      {
	if (acDay < valueDay)
	{
	  alert(alertMessage);
	  return false;	
	}
	return true;      
      }
      if (acMonth < valueMonth)
      {
	alert(alertMessage);
	return false;
      }
    
    }
    if (acYear - valueYear < 18)
    {
      alert(alertMessage);
      return false;
    }        
  }
  else
    return true;
}
//	---------------------------------------------------------------------------------- //
//	Ende Altersüberprüfung //



//	Ende Flyoutbasket //
//	---------------------------------------------------------------------------------- //
$(document).ready(function(){
                            $(".basketflyout_body").hide();
                            $(".basketflyout_head").toggle(function()
                               {
                                        setTimeout('$(".basketflyout_head_Zusatz").css("background","url(../images/basket_arrow_up_head.jpg) no-repeat");', 500);
                                },
                                    function(){
                                        setTimeout('$(".basketflyout_head_Zusatz").css("background","url(../images/basket_arrow_down_head.jpg) no-repeat");', 500);
                                        }						   
                                                               );
                            $(".basketflyout_head").click(function(){
                                
                                $(".basketflyout_body").slideToggle(500)
                                return false;
                            });
                        });
//	---------------------------------------------------------------------------------- //
//	Ende Flyoutbasket //
