﻿function init() {
	var linkArray = document.getElementsByTagName('a');
	
	for (var i = 0; i < linkArray.length; i += 1) { /* http://www.tomislav.net/gestrichelte-linie-um-link-verstecken.htm */
		linkArray[i].onmousedown = function() {
			this.onfocus = function() {
				this.blur();
			}
		}
		linkArray[i].onmouseup = function() {
			this.onfocus = function() {
			}
		}
		linkArray[i].onmouseout = linkArray[i].onmouseup;
	}
}
window.onload = init;

neue_id = 1
function mehr_felder() {
	neue_id++;
	$('#weitere_Artikel_eingeben_'+neue_id).slideDown('slow');
	// Ausblenden des Buttons "weitere Artikel eingeben" wenn alle Eingabeblöcke dargestellt sind
	if (neue_id >= 4) {
		$('#weitere_Artikel_eingeben').hide();
	}
}

/* Funktionen für die Seite mit den großen Boxen. */
/**
 * Liefert die URL für den Wechsel des Filters, und/oder der Sortierung.
 * 
 * @param pId die ID der Kataloggruppe
 * @return die URL für den Wechsel des Filters, und/oder der Sortierung
 */
function getUrlForFilterAndSort(pId) {
	retUrl = "/navigate.do?id=" + pId;
	tmpVal = $('#sorting').val();
	if (tmpVal && tmpVal != "-1") {
		retUrl += "&sort=" + tmpVal;
	}
	tmpVal = $('#cut').val();
	if (tmpVal && tmpVal != "-1") {
		retUrl += "&cut=" + tmpVal;
	}
	tmpVal = $('#color').val();
	if (tmpVal && tmpVal != "-1") {
		retUrl += "&color=" + tmpVal;
	}
	tmpVal = $('#fabric').val();
	if (tmpVal && tmpVal != "-1") {
		retUrl += "&fabric=" + tmpVal;
	}
	return retUrl;
}

/* Funktionen für die Detailseite */
/** Den, für den Shop, gültigen Suffix der Bestellnummern. */
var benrSuffix = '';
/** Die ID der Bestellnummer. */
var benrId = null;
/** Die ausgewählte Größe. */
var size = null;
/** Die ausgewählte Variante. */
var variantName = null;
/** Die Liste mit den Daten der Varianten. */
var sizeVariant = null;
/** Die Liste mit den Daten der Bilder pro Variante. */
var picVariant = null;
/** Die Basis-URL für das Hinzufügen eines elements zum Warenkorb. */
var baseCartUrl = null;
/** Bezeichnung für Bild-Größe nicht verfügbar */
var lblNotAvailable = null;
/** Bezeichnung für Verfügbarkeiten */
var imgNotAvailable = null;
/** wenn die Variante aus dem Warenkorb kommt */
var fromCart = false;

/**
 * Ändert auf der Detailseite die notwendigen Daten nach einem Klick auf die Größenauswahl.
 * 
 * @param {Object} pIndex der Index der Größenauswahlbox
 * @param {Object} pSize die Größe
 * @param {Object} pAvailabla die Verfügbarkeit
 * @param {Object} pBenr die Bestellnummer
 * @param {Object} pBenrId die ID der Bestellnummer
 * @param {Object} pPrice der Preis
 */
function changeSize(pIndex, pSize, pAvailable, pBenr, pBenrId, pPrice) {
	// Falls Artikel nicht verfügbar
	if (!pAvailable || (pAvailable == 'no')) {
		$("#delivery_now").hide();
		$("#delivery_later").hide();
		return;
	}
		
	// Border ändern (inaktive Groessen)
	$("div[id^=size_chooser]").css('border','1px solid #CCC');
	$("div[id^=size_chooser]").css('height','16px');
	$("div[id^=size_chooser]").css('line-height','14px');
	$("div[id^=size_chooser]").css('width','34px');
	$("div[id^=size_chooser]").css('border-right-style','none');
	$("div[id^=size_chooser]").css('border-right-width','0px');
	$("div[id^=size_chooser]").css('text-align','center');
	$(".size_box_last").css('border-right-style','solid');
	$(".size_box_last").css('border-right-width','1px');
	
	// Border ändern (aktive Groessen)
	$("#size_chooser_" + pIndex).css('border','3px solid #CCC');
	$("#size_chooser_" + pIndex).css('border-right-width','2px');
	$("#size_chooser_" + pIndex).css('height','12px');
	$("#size_chooser_" + pIndex).css('line-height','10px');
	$("#size_chooser_" + pIndex).css('width','30px');
	
	var borderLast = $(".size_box_last").css('border-right-width');
	if(borderLast == '2px'){
		$("#size_chooser_" + pIndex).css('border-right-width','3px');
	}
		
	// Gewählte Größe setzen
	size = pSize;
	$('#addToCartNoThickbox').hide();
	$('#addToCartThickbox').show();
	// Bestellnummer setzen
	var benr = pBenr;
	if (benr.indexOf('-') != -1) {
		benr = benr.substring(0, benr.indexOf('-'));
	}
	if (benrSuffix) {
		benr = benr + benrSuffix;
	}
	$("#artlNr").html(spacingBenr(benr));
	benrId = pBenrId;
	// Preis setzen
	$("#price_same").hide();
	pPrice = pPrice + " &euro;";
	$("#price").html(pPrice);
	
	// Einblenden und setzen der Lieferzeit
	if (pAvailable == 'yes') {
		$("#delivery_later").hide();
		$("#delivery_now").show();
	} else if (pAvailable == 'later') {
		$("#delivery_now").hide();
		$("#delivery_later").show();
	}
	
	// URL für Warenkorb vervollständigen
	var amount = $('#amount').val();
	var variant = $('#variantenauswahl').val();
	var url = baseCartUrl;
	url += "&benr=" + benrId;
	url += "&size=" + size;
	url += "&amount=" + amount;
	if (variant && (variant != '0')) {
		// Name der Variante
		url += "&var=" + variant;
		url += "&varName=" + variantName;
		// Bild
		if (picVariant) {
			url += "&image=" + picVariant[variant][0]["pist"];
		}
	}
	$('#addToCartThickbox').attr('alt', url);
}

/**
 * Ändert auf der Detailseite die notwendigen Daten nachdem eine neue Variante ausgewählt wurde.
 */
function changeVariant(variant) {
	// Bestellnummer ändern
	var benr = variant;
	if (benrSuffix) {
		benr = variant + benrSuffix;
	}
	$("#artlNr").html(spacingBenr(benr));
	
	// Kleinsten Preis und Preis ab bestimmen
	var samePrice = true;
	var smallestPrice = null;
	var smallestPriceStr = null;
	for (var cnt = 0; cnt < sizeVariant[variant].length; cnt++) {
		var price = sizeVariant[variant][cnt]["price"];
		if (smallestPrice == null) {
			smallestPrice = price;
			smallestPriceStr = sizeVariant[variant][cnt]["price_str"];
		}
		if (price < smallestPrice) {
			smallestPrice = price;
			smallestPriceStr = sizeVariant[variant][cnt]["price_str"];
			samePrice = false;
		}
		if (price != smallestPrice) {
			samePrice = false;
		}
	}
	// Preis wechseln
	if (!samePrice) {
		$('#price_same').show();
	} else {
		$('#price_same').hide();
	}
	$('#price').html(smallestPriceStr + " &euro;");
	
	// Name der Variante setzen
	variantName = sizeVariant[variant][0]["variant"];
	
	// Die Daten der Größenauswahl ändern
	var htmlCode = "";
	for (var cnt = 0; cnt < sizeVariant[variant].length; cnt++) {
		var sizeClass = "size_box";
		if (cnt == sizeVariant[variant].length - 1) {
			sizeClass = "size_box_last";
		}
		var sizeStyle = "cursor:pointer";
		var onClick = "changeSize('" + cnt + "', '" + sizeVariant[variant][cnt]["size"] + "', '" + sizeVariant[variant][cnt]["avail"] + "', '" + variant +"', '" + sizeVariant[variant][cnt]["benrId"] + "', '" + sizeVariant[variant][cnt]["price_str"] + "')";
		if (sizeVariant[variant][cnt]["avail"] == "no") {
			sizeStyle = "";
			onClick = "";
		}
		// CSS Attributwerte
		var heightONC="'14px'";
		var widthONC="'30px'";
		var borderColorONC="'#eeeeee'"; 
		var lineHeight="'9px'";
		var borderWidthOver="'3px'";
		var solid="'solid'";
		if (sizeVariant[variant][cnt]["avail"] == "no") {
			htmlCode += '<div class="' + sizeClass + '" style="' + sizeStyle + '" id="size_chooser_' + cnt + '">\r\n';
		} else {
			htmlCode += '<div class="' + sizeClass + '" onclick="this.style.lineHeight='+ lineHeight +';this.style.borderStyle='+ solid +';this.style.height='+heightONC+';this.style.width='+widthONC+';this.style.borderWidth='+ borderWidthOver +';' + onClick + '" style="' + sizeStyle + '" id="size_chooser_' + cnt + '">\r\n';
		}
		htmlCode += '\t<div class="size_text">' + sizeVariant[variant][cnt]["size"];
		if (sizeVariant[variant][cnt]["avail"] == 'no') {
			htmlCode += '<img src="' + imgNotAvailable + '" alt="' + lblNotAvailable + '" title="' + lblNotAvailable + '"/>';
		}
		htmlCode += '</div>\r\n';
		htmlCode += '</div>\r\n';
	}
	$('#groesse_boxen').html(htmlCode);
	
	// Die ausgewählte Größe zurücksetzen
	size = null;
	$('#addToCartThickbox').hide();
	$('#addToCartNoThickbox').show();
	// Lieferzeit zurücksetzen
	$("#delivery_now").hide();
	$("#delivery_later").hide();
	
	// Die Produktbilder ändern
	changeVariantPic(variant);
}

/**
 * Ändert auf der Detailseite die notwendigen Daten nachdem eine neue Variante ausgewählt wurde.
 */
function changeVariantList(pSelectedVariant) {
	if (pSelectedVariant != null) {
		variant = pSelectedVariant;
	} else {
		var variant = $('#variantenauswahl').val();
	}
	if (!sizeVariant[variant]) {
		return;
	}

	// Alle Varianten als inaktiv darstellen
	$(".varAuswahl").css('border','3px solid transparent');
	$(".varFarbe").css('border','3px solid transparent');
	$(".varStoffe").css('border','3px solid transparent');

	// Neue Variante als aktiv Darstellen
	//Farbe und Variante Auswahl
	$("div[id$=_" + variant + "]").css('border','3px solid #CCC');
	// Soffqualitaet
	$("div[id*=" + variant + "][id^=varStoffe_chooser_]").css('border','3px solid #CCC');
	
	// Stoffqualiteat mit der neuen Variante holen
	var tmpList = $("div[id*=" + variant + "][id^=varStoffe_chooser_]");
	
	// Wenn eine Stoffqualität mit der Variante vorhanden ist	
	if (tmpList.length > 0) {
	
		// Alle Varianten als inaktiv darstellen
		$(".varAuswahl").css('border','3px solid transparent');
		$(".varFarbe").css('border','3px solid transparent');
		$(".varStoffe").css('border','3px solid transparent');
		
		// Alle Farben- und Varianten-Auswahl-Buttons verstecken
		$("div[id^=varFarbe]").parent().css('display','none');
		$("div[id^=varAuswahl]").parent().css('display','none');
		
		// Farbe- und Varianten-Auswahl-Button als aktiv darstellen
		$("div[id$=_" + variant + "]").css('border','3px solid #CCC');
		// Stoffqualitaet als aktiv darstellen
		$("div[id*=" + variant + "][id^=varStoffe_chooser_]").css('border','3px solid #CCC');
		
		// ID der Stoffqualiteat holen
		var tmpListString = tmpList[0].id;
		
		// Liste der Varianten die zu dieser Stoffqualitaet gehoeren auslesen
		var subStringTmpList = tmpListString.substring(tmpListString.indexOf("["),tmpListString.indexOf("]"))+"]";
		
		// Liste von String nach Array umwandeln
		var liste = new Array();
		liste = eval(subStringTmpList);
			
		// Nur Varianten dieser Stoffqualitaet werden dargestellt 
		for (var c=0; c < liste.length; c++) {
			var tmp = liste[c];
			$("div[id$=_" + tmp + "]").parent().css('display','block');
	  	}
		
	}
	
	changeVariant(variant);
}

/**
 * Ändert auf der Detailseite die notwendigen Daten nachdem eine neue Variante ausgewählt wurde.
 *
 * @param benrNrColor ausgewählte Bestellnummer
 * @param pIndex Index der ausgewählte Farbe
 *
 */
function changeVarianteFarbe(benrNrColor,pIndex) {
	var variant = benrNrColor;
	if (!sizeVariant[variant]) {
		return;
	}
	$('#variantenauswahl').val(variant);
	
	// Alle Varianten als inaktiv darstellen	
	$(".varFarbe").css('border','3px solid transparent');
	$(".varStoffe").css('border','3px solid transparent');
	
	// Stoffqualitaet und Farbe der neuen Variante als aktiv darstellen
	$("div[id^=" + "varFarbe_chooser_" + pIndex + "_]").css('border','3px solid #CCC');
	$("div[id*=" + variant + "][id^=varStoffe_chooser_]").css('border','3px solid #CCC');
		
	changeVariant(variant);
}

/**
 * Ändert auf der Detailseite die notwendigen Daten nachdem eine neue Variante ausgewählt wurde.
 *
 * @param benrNrStoffe ausgewählte Bestellnummer
 * @param pIndex Index der ausgewählte Farbe
 *
 */
function changeVarianteStoffe(benrNrStoffe,pIndex) {
	
	// aktuelle Variante auslesen
	var oldVariant = $('#variantenauswahl').val();
	var newVariant = oldVariant;

	// Stoffqualitaeten ausblenden
	$(".varStoffe").css('border','3px solid transparent');
	// Stoffqualitaet mit neuer Variante als aktiv darstellen
	$("div[id^=" + "varStoffe_chooser_" + pIndex + "_]").css('border','3px solid #CCC');	
		
	// Alle Varianten als inaktiv darstellen	
	$("div[id^=varFarbe]").css('border','3px solid transparent');
	$("div[id^=varAuswahl]").css('border','3px solid transparent');
	
	// Alle Farben- und Varianten-Auswahl-Buttons verstecken	
	$("div[id^=varFarbe]").parent().css('display','none');
	$("div[id^=varAuswahl]").parent().css('display','none');
	
	// Liste von String nach Array umwandeln	
	var liste = new Array();
	liste = eval(benrNrStoffe);
	
	// ist die alte Variante auch in der neuen Stoffqualitaet vorhanden
	var oldVariantUsed = false;
	
	// Varianten der Stoffqualitaet einblenden
	for (var c=0; c < liste.length; c++) {
		var tmp = liste[c];
		$("div[id$=_" + tmp + "]").parent().css('display','block');
		
		var newFarb = $("div[id$=_" + tmp + "][id^=varFarbe]").parent(); 
		var oldFarb = $("div[id$=_" + oldVariant + "][id^=varFarbe]").parent();
		
		if ((typeof(newFarb) != "undefined")&&(typeof(oldFarb) != "undefined")) {
		
			newFarb = $("div[id$=_" + tmp + "][id^=varFarbe]").parent().css('background-image'); 
			oldFarb = $("div[id$=_" + oldVariant + "][id^=varFarbe]").parent().css('background-image');
		
			// gleich der alte Variante
	    	if ((newFarb == oldFarb)&&(typeof(newFarb) != "undefined")&&(typeof(oldFarb) != "undefined")) {
	    		$("div[id$=_" + tmp + "][id^=varFarbe]").css('border','3px solid #CCC');
	    		oldVariantUsed = true;
	    		newVariant = tmp;
	    	}
		}
		
		var newAus = $("div[id$=_" + tmp + "][id^=varAuswahl]"); 
		var oldAus = $("div[id$=_" + oldVariant + "][id^=varAuswahl]");
		
		if ((typeof(newAus[0]) != "undefined")&&(typeof(oldAus[0]) != "undefined")) {
		
			newAus = $("div[id$=_" + tmp + "][id^=varAuswahl]")[0].children[0].innerText; 
			oldAus = $("div[id$=_" + oldVariant + "][id^=varAuswahl]")[0].children[0].innerText;
		
			// gleich der alte Variante
	    	if ((newAus == oldAus)&&(typeof(newAus) != "undefined")&&(typeof(oldAus) != "undefined")) {
	    		$("div[id$=_" + tmp + "][id^=varAuswahl]").css('border','3px solid #CCC');
	    		oldVariantUsed = true;
	    		newVariant = tmp;
	    	}
		}		
  	}
  	
  	// wenn alte Varinate nicht vorhanden, wird die erste als aktiv dargestellt
  	if (!oldVariantUsed) {
  		var tmp = liste[0];
		$("div[id$=_" + tmp + "]").parent().css('display','block');  	
		$("div[id$=_" + tmp + "]").css('border','3px solid #CCC');
		newVariant = tmp;
	}
	
	$('#variantenauswahl').val(newVariant);
		
	changeVariant(newVariant);
}
/**
 * Ändert auf der Detailseite die notwendigen Daten nachdem eine neue Variante ausgewählt wurde.
 *
 * @param benrNrAuswahl ausgewählte Bestellnummer
 * @param pIndex Index der ausgewählte Variante
 *
 */
function changeVarianteAuswahl(benrNrAuswahl,pIndex) {
	var variant = benrNrAuswahl;
	if (!sizeVariant[variant]) {
		return;
	}
	$('#variantenauswahl').val(variant);
	
	// Alle Varianten als inaktiv darstellen	
	$(".varAuswahl").css('border','3px solid transparent');
	$(".varStoffe").css('border','3px solid transparent');
	
	// Stoffqualitaet und Variante-Auswahl der neuen Variante als aktiv darstellen
	$("div[id^=" + "varAuswahl_chooser_" + pIndex + "_]").css('border','3px solid #CCC');
	$("div[id*=" + variant + "][id^=varStoffe_chooser_]").css('border','3px solid #CCC');
	
	changeVariant(variant);
}

/**
 * Ändert auf der Detailseite die Daten der Bilder, nachdem eine neue Variante ausgewählt wurde.
 * 
 * @param {Object} pVariant die neue Variante
 */
function changeVariantPic(pVariant) {
	if (!picVariant[pVariant]) {
		return;
	}
	
	// Erstes Bild setzen
	var zoom = document.getElementById('Zoomer');
	var picZoom = picVariant[pVariant][0]["zoom"];
	var picSrc = picVariant[pVariant][0]["src"];
	MagicZoom.update(zoom, picZoom, picSrc, '');
	
	// Weitere Bilder
	if (picVariant[pVariant].length == 1) {
		$('#moreImagesTd').hide();
		return;
	}
	var htmlCode = '';
	for (var cnt = 0; cnt < picVariant[pVariant].length; cnt++) {
		htmlCode += '<div class="more_img_box">\r\n';
		htmlCode += '\t<a rel="zoom-id:Zoomer" rev="' + picVariant[pVariant][cnt]["src"] + '" href="' + picVariant[pVariant][cnt]["zoom"] + '">';
		htmlCode += '<img height="43" src="' + picVariant[pVariant][cnt]["thumb"] + '" alt=""/></a>\r\n';
		htmlCode += '</div>';
	}
	$('#moreImagesTd').html(htmlCode);
	$('#moreImagesTd').show();
}

/** Ändert die Menge in der URL für den Warenkorb. */
function changeAmount() {
	var amount = $('#amount').val();
	if ((amount == null) || (amount == '') || (amount < 1)) {
		$('#amount').val('1');	
	}
	// URL für Warenkorb ändern
	var url = $('#addToCartThickbox').attr('alt');
	if (url.indexOf('amount=') == -1) {
		return;
	}
	var startUrl = url.substring(0, url.indexOf('amount=') + 'amount='.length);
	var endUrl = url.substring(url.indexOf('amount=') + 'amount='.length);
	if (endUrl.indexOf('&') != -1) {
		endUrl = endUrl.substring(endUrl.indexOf('&'), endUrl.length);
	} else {
		endUrl = null;
	}
	url = startUrl + amount;
	if (endUrl) {
		url += endUrl;
	}
	$('#addToCartThickbox').attr('alt', url);
}

/** Begerenzt die Zeichenanzahl der Textarea. */
function checkCount() {
	var txt=document.getElementById('additionalData').value;
	maxLen=999;

	if(txt.length>=maxLen) {
      document.getElementById('additionalData').value=txt.substring(0,maxLen);
    }
}

/** Spationiert die Bestellnummer. 
 * 
 * @param pBenr die Bestellnummer welche spationiert werden soll
 */
function spacingBenr(pBenr) {
	var retBenr = pBenr;
	var tmpBenr = '';
	if(pBenr.length == 7) {
		pBenr = '#'+pBenr;
	}
	if(pBenr.length == 6) {
		pBenr = '##'+pBenr;
	}
	if ((pBenr == null) || (pBenr == '') || (pBenr.length < 1)) {
		return pBenr;	
	}
	for (var cnt = 0; cnt < pBenr.length; cnt++) {
		if((cnt%3==0) && (cnt != 0) && (cnt != pBenr.length)) {
			tmpBenr += '&nbsp;';
		}
		tmpBenr += pBenr.charAt(cnt);
	}
	retBenr = tmpBenr.replace('#','');
	return retBenr;
}
