document.write('<script language="JavaScript" type="text/javascript" src="/elemente/js/soapclient.js"></script>');
var produkte = new Array();
var produktmwst = new Array();
var preisstaffel = new Array();
var produktbilder = new Array();
var XNaechsterVariantenTypId = null;

var saveStartValues = {};

/**
 * @param	string	pid	Produkt-ID
 * @param	string	vt	Variantentyp-ID
 * @param	string	vo	Produkt
 * @access	public
 * @return	void
 * @author	Joerg Tippmar
 **/
function setVariante(pid, vt, vo) {
	// Speichere Startdaten
	if(!saveStartValues[pid]) saveStartValues[pid] = {};
	if(!saveStartValues[pid].kaufpreis && document.getElementById('kaufpreis_' + pid)) saveStartValues[pid].kaufpreis = document.getElementById('kaufpreis_' + pid).innerHTML; else if(!saveStartValues[pid].kaufpreis) saveStartValues[pid].kaufpreis = '';
	if(!saveStartValues[pid].artikelnummer && document.getElementById('varianteArtikelNummer_' + pid)) saveStartValues[pid].artikelnummer = document.getElementById('varianteArtikelNummer_' + pid).innerHTML; else if(!saveStartValues[pid].artikelnummer) saveStartValues[pid].artikelnummer = '';
	if(!saveStartValues[pid].produktbilder && produktbilder[pid]) saveStartValues[pid].produktbilder = produktbilder[pid]; else if(!saveStartValues[pid].produktbilder) saveStartValues[pid].produktbilder = '';
	if(vo.length == 0) {
		document.getElementById('produkt_' + pid + '_variante_' + vt).selectedIndex = 0;
		return null;
	}
	var variantentypenArray = new Array();
	for (field in produkte[pid]) variantentypenArray.push(field);
	if(produkte[pid][vt].length == 0) produkte[pid][vt] = vo;
	else { // kille alle nachfolgenden Auswahlen, da Variante bereits schonmal gewählt und nun geändert
		if(document.getElementById('varianteAuswahlOk_' + pid)) document.getElementById('varianteAuswahlOk_' + pid).style.display = 'none';
		if(document.getElementById('varianteArtikelNummer_' + pid)) document.getElementById('varianteArtikelNummer_' + pid).innerHTML = saveStartValues[pid].artikelnummer;
		if(document.getElementById('kaufpreis_' + pid)) document.getElementById('kaufpreis_' + pid).innerHTML = saveStartValues[pid].kaufpreis;
		produktbilder[pid] = saveStartValues[pid].produktbilder;
		changeProduktBildListe(pid);
		var killVariante = false;
		for (field in produkte[pid]) {
			if(field == vt) {
				killVariante = true;
				produkte[pid][field] = vo;
			} else if(killVariante) {
				var i = 0; var tmp = new Array();
				produkte[pid][field] = '';
				while(document.getElementById('produkt_' + pid + '_variante_' + field).firstChild) {
					tmp[i] = document.getElementById('produkt_' + pid + '_variante_' + field).removeChild(document.getElementById('produkt_' + pid + '_variante_' + field).firstChild);
					i++;
				}
				document.getElementById('produkt_' + pid + '_variante_' + field).appendChild(tmp[0]);
				document.getElementById('produkt_' + pid + '_variante_' + field).appendChild(tmp[1]);
				document.getElementById('produkt_' + pid + '_variante_' + field).selectedIndex = 0;
				document.getElementById('produkt_' + pid + '_variante_' + field).disabled = true;
				document.getElementById('produkt_' + pid + '_variante_' + field).className = 'selectfeldDisabled';
			}
		}
	}
	var LVariantenSelected = {};
	LVariantenSelected.array = new Array();
	var array = new Array();
	for(field in produkte[pid]) {
		if(produkte[pid][field].length == 0) break;
		var tmp = {};
		tmp.XVariantenTypId = field;
		tmp.XVariantenOptionId = produkte[pid][field];
		LVariantenSelected.array.push(tmp);
	}
	// Ermittle naechsten Waehlbaren Variantentyp
	var aktiverIndex = 0; XNaechsterVariantenTypId = null;
	for(i = 0; i < variantentypenArray.length; i++) {
		if(variantentypenArray[i] == vt) {
			if(variantentypenArray[(i + 1)]) XNaechsterVariantenTypId = variantentypenArray[(i + 1)];
		}
	}
	var pl = new SOAPClientParameters();
	pl.add("LVariantenSelected", LVariantenSelected);
	pl.add('XNaechsterVariantenTypId', (XNaechsterVariantenTypId ? XNaechsterVariantenTypId : ''));
	pl.add('XPreislisteId', preislisteId);
	pl.add('XProduktId', pid);
	SOAPClient.invoke('soap.php', "generateVariantenAuswahl", pl, true, _setVariante);
}

/**
 * @param	object	obj	Daten-Objekt
 * @access	private
 * @return	void
 * @author	Joerg Tippmar
 **/
function _setVariante(obj) {
	obj = obj.returnData;
	if(obj.LProduktData && obj.LProduktData.XVarianteId) { // Bin am Ziel, aktualisiere Artikeldaten
		preisstaffel[obj.XProduktId] = new Array();
		for(i = 0; i < obj.LProduktData.LVariantePreisstaffel.array.length; i++) preisstaffel[obj.XProduktId][obj.LProduktData.LVariantePreisstaffel.array[i].XAbmenge] = obj.LProduktData.LVariantePreisstaffel.array[i].XPreis / 100;
		if(obj.LProduktData.LVarianteBilder.array.length > 0) {
			produktbilder[obj.XProduktId] = new Array();
			for(i = 0; i < obj.LProduktData.LVarianteBilder.array.length; i++) {
				produktbilder[obj.XProduktId][i] = new Array();
				produktbilder[obj.XProduktId][i]['breite'] = obj.LProduktData.LVarianteBilder.array[i].XBildBreite;
				produktbilder[obj.XProduktId][i]['hoehe'] = obj.LProduktData.LVarianteBilder.array[i].XBildHoehe;
				produktbilder[obj.XProduktId][i]['pfad'] = obj.LProduktData.LVarianteBilder.array[i].XBildPfad;
			}
		}
		if(document.getElementById('varianteArtikelNummer_' + obj.XProduktId)) document.getElementById('varianteArtikelNummer_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteArtnr;
		if(document.getElementById('varianteHerstellerArtikelNummer_' + obj.XProduktId)) document.getElementById('varianteHerstellerArtikelNummer_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteHerstArtnr;
		if(document.getElementById('varianteEan_' + obj.XProduktId)) document.getElementById('varianteEan_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteEan;
		if(document.getElementById('variantePackungseinheit_' + obj.XProduktId)) document.getElementById('variantePackungseinheit_' + obj.XProduktId).innerHTML = obj.LProduktData.XVariantePackungseinheit;
		if(document.getElementById('varianteInhaltProPe_' + obj.XProduktId)) document.getElementById('varianteInhaltProPe_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteInhaltProPe;
		if(document.getElementById('varianteGewicht_' + obj.XProduktId)) document.getElementById('varianteGewicht_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteGewicht;
		if(document.getElementById('varianteGroesse_' + obj.XProduktId)) document.getElementById('varianteGroesse_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteGroesse;
		if(document.getElementById('varianteInhalt_' + obj.XProduktId)) document.getElementById('varianteInhalt_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteInhalt;
		if(document.getElementById('varianteVolumen_' + obj.XProduktId)) document.getElementById('varianteVolumen_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteVolumen;
		if(document.getElementById('varianteLieferzeit_' + obj.XProduktId)) document.getElementById('varianteLieferzeit_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteLieferzeit;
		if(document.getElementById('varianteLagermenge_' + obj.XProduktId)) document.getElementById('varianteLagermenge_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteLagermenge;
		if(document.getElementById('varianteEndOfLife_' + obj.XProduktId)) document.getElementById('varianteEndOfLife_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteEndOfLife;
		if(document.getElementById('varianteMindestabnahme_' + obj.XProduktId)) document.getElementById('varianteMindestabnahme_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteMindestabnahme;
		if(document.getElementById('varianteMindestabnahmeEinheit_' + obj.XProduktId)) document.getElementById('varianteMindestabnahmeEinheit_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteMindestabnahme + '&nbsp;' + obj.XVariantePackungseinheit;
		if(document.getElementById('varianteAngelegt_' + obj.XProduktId)) document.getElementById('varianteAngelegt_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteAngelegt;
		if(document.getElementById('varianteAGeaendert_' + obj.XProduktId)) document.getElementById('varianteAGeaendert_' + obj.XProduktId).innerHTML = obj.LProduktData.XVarianteGeaendert;
		if(document.getElementById('varianteAuswahlOk_' + obj.XProduktId)) document.getElementById('varianteAuswahlOk_' + obj.XProduktId).style.display = 'block';
		document.getElementById('saveProduktVarianteId_' + obj.XProduktId).value = obj.LProduktData.XVarianteId;
		calcPreis(obj.XProduktId);
		if(produktbilder[obj.XProduktId] && produktbilder[obj.XProduktId].length > 0) changeProduktBildListe(obj.XProduktId);
	} else {
		for(i = 0; i < obj.LVariantenOptionenListe.array.length; i++) {
			var option = document.createElement("option");
			option.value = obj.LVariantenOptionenListe.array[i].XVariantenOptionId;
			option.innerHTML = obj.LVariantenOptionenListe.array[i].XVariantenOptionName;
			document.getElementById('produkt_' + obj.XProduktId + '_variante_' + XNaechsterVariantenTypId).appendChild(option);
		}
		document.getElementById('produkt_' + obj.XProduktId + '_variante_' + XNaechsterVariantenTypId).disabled = false;
		document.getElementById('produkt_' + obj.XProduktId + '_variante_' + XNaechsterVariantenTypId).className = 'selectfeld';
	}
}
/**
 *
 * @access public
 * @return void
 **/
function calcPreis(pid) {
	if(preisstaffel[pid] && preisstaffel[pid].length == 0) return null;
	var menge = document.getElementById('input_menge_' + pid).value;
	var preis = 0;
	for(staffel in preisstaffel[pid]) {
		if((menge * 10) >= (staffel * 10)) {
			preis = preisstaffel[pid][staffel];
			break;
		}
	}
	if(!isNaN(menge)) {
		preis = formatierePreis((preis * menge * (1 + (produktmwst[pid] / 100))));
		if(document.getElementById('kaufpreis_' + pid))	document.getElementById('kaufpreis_' + pid).innerHTML = preis;
	}
}
/**
 *
 * @access public
 * @return void
 **/
function sendProduktInWarenkorb(pid) {
	if(!preisstaffel[pid] || preisstaffel[pid].length == 0) alert("Bitte wählen Sie erst Ihre gewünschte Variante aus.\nEs müssen alle Optionen ausgewählt werden.");
	else if(isNaN(document.getElementById('input_menge_' + pid).value)) {
		alert(saveValues.meldung.mengeFalscherInhalt);
		void(0);
	}
	else document.getElementById('form_produkt_' + pid).submit();
//	else alert('Der nächste Schritt erfolgt nach Rücksprache.');
}
/**
 *
 * @access public
 * @return void
 **/
function changeProduktBildListe(pid) {
	if(document.getElementById('ansichtenliste_' + pid).firstChild) document.getElementById('ansichtenliste_' + pid).removeChild(document.getElementById('ansichtenliste_' + pid).firstChild);
	if(produktbilder[pid].length > 1) {
		table = document.createElement("table");
			tbody = document.createElement("tbody");
				tr = document.createElement("tr");
					td = document.createElement("td");
					td.innerHTML = 'Weitere Ansichten';
				tr.appendChild(td);
					td = document.createElement("td");
					for(i = 0; i < produktbilder[pid].length; i++) {
							a = document.createElement("a");
							a.href = 'javascript:void(0);';
							a.setAttribute("onClick", "javascript:changeProduktBild('" + pid + "', '" + i + "');");
							a.innerHTML = (i + 1);
						td.appendChild(a);
					}
				tr.appendChild(td);
			tbody.appendChild(tr);
		table.appendChild(tbody);
		document.getElementById('ansichtenliste_' + pid).appendChild(table);
	}
	changeProduktBild(pid, 0);
}
/**
 *
 * @access public
 * @return void
 **/
function changeProduktBild(pid, i) {
	document.getElementById('produktbild_' + pid).src = produktbilder[pid][i]['pfad'];
	document.getElementById('produktbild_' + pid).width = produktbilder[pid][i]['breite'];
	document.getElementById('produktbild_' + pid).height = produktbilder[pid][i]['hoehe'];
}

