/* 
 * $Id: konfigurator.js 246 2008-03-13 14:50:13Z benzman $
 */

var Konfigurator = {
	/* Ist die Default-Config noch vorhanden */
	is_default_config: false,
	/* Aktuelles Produkt */
	produkt: Object(),
	/* Produkt-Kategorie, die gerade ausgewaehlt ist */
	produkt_auswahl_kat: "all",
	/* Aufdruck-Typ, der gerade ausgewaehlt ist */
	aufdruck_auswahl_typ: null,
	/* Produkt-Seite, die gerade ausgewaehlt ist */
	produkt_config_seite: "v",
	/* Aufdruck-Ebene, die gerade bearbeitet wird */
	produkt_config_ebene: null,
	/* Produkt-Farbe, die gerade ausgewaehlt ist */
	produkt_config_color: null,
	/* Text-Zeile, die gerade bearbeitet wird */
	aufdruck_config_text_zeile: null,
	/* Timeout fuer Aufdruck-Vorschau */
	timeout_aufdruck_vorschau: null,
	/* Timeout fuer Aenderung eines Textes */
	timeout_text_update: null,
	/* Ist die Produkt-Auswahl geoeffnet? */
	isopen_produkt_auswahl: true,
	/* Ist die Aufdruck-Auswahl geoeffnet? */
	isopen_aufdruck_auswahl: false,
	/* Ist die Aufdruck-Config geoeffnet? */
	isopen_aufdruck_config: false,
	
	/*
	 * Funktion, die die Default-Config entfernt, sofern sie noch vorhanden ist.
	 */
	removeDefaultConfig: function() {
		if(this.is_default_config) {
			var els = $('produkt_vorschau_aufdrucke_v').childElements();
			for(var i=0; i<els.length; i++) {
				var ebene = String(els[i].id).match(/[0-9]+/);
				this.deleteProduktConfigEbene(ebene, "v");
			}
			var els = $('produkt_vorschau_aufdrucke_h').childElements();
			for(var i=0; i<els.length; i++) {
				var ebene = String(els[i].id).match(/[0-9]+/);
				this.deleteProduktConfigEbene(ebene, "h");
			}
			new Ajax.Request('ajax/unset_default_config.php', {
				method: 'get',
				onSuccess: function(transport) {
					if(transport.responseText.evalJSON() == true) {
						Konfigurator.is_default_config = false;
					}
				}
			});
		}
	},
	
	/*
	 * Funktion, die den Permalink ausblendet. Muss jedes mal aufgerufen werden, 
	 * wenn sich etwas an der Shirtkonfiguration aendert.
	 */
	hidePermalink: function() {
		$('produkt_permalink').down('.permalink_visible').hide();
		$('produkt_permalink').down('.permalink_invisible').show();
	},
	
	/*
	 * Funktion, die einen Permalink erzeugt und diesen dann anzeigt.
	 */
	showPermalink: function() {
		new Ajax.Request('/ajax/get_permalink.php', {
			method: 'get',
			onSuccess: function(transport) {
				$('produkt_permalink').down('.permalink_visible').down('input.text').value = transport.responseText;
				$('produkt_permalink').down('.permalink_visible').show();
				$('produkt_permalink').down('.permalink_invisible').hide();
				$('produkt_permalink').down('.permalink_visible').down('input.text').focus();
				$('produkt_permalink').down('.permalink_visible').down('input.text').select();
			}
		});
	},
	
	/*
	 * Funktion, die ausgefuehrt wird, wenn ein Text-Input des Text-Aufdruckes focusiert wird.
	 * Blendet neben dem Input-Feld weitere Text-Formatierungen ein.
	 */
	focusAufdruckConfigTextInput: function(zeile) {
		if(this.aufdruck_config_text_zeile != null) {
			$("aufdruck_config_text_zeile"+this.aufdruck_config_text_zeile).hide();
			document.getElementsByName("aufdruck_config_text_input"+this.aufdruck_config_text_zeile)[0].className = 'text';
			this.updateProduktConfigAufdruckText(this.aufdruck_config_text_zeile)
		}
		$("aufdruck_config_text_zeile"+zeile).show();
		document.getElementsByName("aufdruck_config_text_input"+zeile)[0].className = 'text_a';
		this.aufdruck_config_text_zeile = zeile;
	},
	
	/*
	 * Funktion, um das Aufdruck-Bild Schwarz-Weiss zu machen
	 */
	setAufdruckBildSW: function(val) {
		var params = {
			action: 'update',
			schicht: this.produkt_config_ebene,
			seite: this.produkt_config_seite,
			sw: val
		};
		this.updateProduktConfigAufdruck(params);
	},
	
	/*
	 * Funktion, die ausgefuehrt wird, wenn sich der Text einer Text-Zeile aendert
	 */
	onchangeAufdruckConfigTextInput: function(zeile) {
		window.clearTimeout(this.timeout_text_update);
		this.timeout_text_update = window.setTimeout("Konfigurator.updateProduktConfigAufdruckText("+zeile+")", 1000);
	},
	
	/*
	 * Verzoegerte Funktioen beim Aendern einer Text-Zeile
	 */
	updateProduktConfigAufdruckText: function(zeile) {
		var params = {
			action: 'update',
			schicht: this.produkt_config_ebene,
			seite: this.produkt_config_seite,
			zeile: zeile,
			text: document.getElementsByName('aufdruck_config_text_input'+zeile)[0].value
		};
		this.updateProduktConfigAufdruck(params);
		var text = '';
		for(i=1; i<=5; i++) {
			text += document.getElementsByName('aufdruck_config_text_input'+i)[0].value+' ';
		}
		if(text.length > 40) {
			text = text.substr(0, 37)+'...';
		}
		text = String(text).escapeHTML();
		$('aufdruck_config_ebene_'+this.produkt_config_seite+this.produkt_config_ebene).down('a').update('<strong>Text: </strong>'+text);
	},
	
	/*
	 * Funktion zum Updaten der Aufdrucke
	 */
	updateProduktConfigAufdruck: function(params) {
		new Ajax.Request('ajax/update_config_aufdruck.php', {
	 		method: 'get',
	 		parameters: params,
	 		onSuccess: function(transport) {
	 			var response = transport.responseText.evalJSON();
				Konfigurator.hidePermalink();
	 			var container = $('produkt_vorschau_aufdrucke_'+response['seite']);
	 			if(response['state'] == 'new') {
	 				// Ebene zur Ebenenauswahl hinzufuegen und auswaehlen
	 				var ebene = document.createElement('div');
	 				ebene.id = 'aufdruck_config_ebene_'+response['seite']+response['schicht'];
	 				ebene.className = 'inactive';
	 				var del_img = new Image();
	 				del_img.src = 'images/aufdruck-ebene-delete.gif';
	 				del_img.alt = 'löschen';
	 				ebene.appendChild(del_img);
	 				$(del_img).observe('click', function(event) { Konfigurator.deleteProduktConfigEbene(response['schicht']) });
	 				var up_img = new Image();
	 				up_img.src = 'images/aufdruck-ebene-up.gif';
	 				up_img.alt = 'nach oben';
	 				ebene.appendChild(up_img);
	 				$(up_img).observe('click', function(event) { Konfigurator.moveProduktConfigEbene(response['schicht'], 'up') });
	 				var down_img = new Image();
	 				down_img.src = 'images/aufdruck-ebene-down.gif';
	 				down_img.alt = 'nach unten';
	 				down_img.style.visibility = 'hidden';
	 				ebene.appendChild(down_img);
	 				$(down_img).observe('click', function(event) { Konfigurator.moveProduktConfigEbene(response['schicht'], 'down') });
	 				var link = document.createElement('a');
	 				link.href = 'javascript:Konfigurator.selectProduktConfigEbene('+response['schicht']+')';
	 				var strong = document.createElement('strong');
	 				if(response['typ'] == 'motiv') {
	 					strong.appendChild(document.createTextNode('Motiv: '));
	 				} else if(response['typ'] == 'text') {
	 					strong.appendChild(document.createTextNode('Text: '));
	 				} else if(response['typ'] == 'bild') {
						strong.appendChild(document.createTextNode('Bild: '));
					}
	 				link.appendChild(strong);
	 				link.appendChild(document.createTextNode(response['name']));
	 				ebene.appendChild(link);
	 				$('aufdruck_config_ebenen_'+Konfigurator.produkt_config_seite).appendChild(ebene);
	 				var prevSibl = $(ebene).previous();
	 				if(prevSibl) {
	 					prevSibl.down('img', 2).style.visibility = 'visible';
	 				} else {
	 					up_img.style.visibility = 'hidden';
	 				}
	 				Konfigurator.selectProduktConfigEbene(response['schicht']);
	 				// Bild zur Vorschau hinzufuegen
	 				var a_img = new Image();
	 				if(isIE6) {
	 					a_img.src = 'images/spacer.gif';
	 					a_img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(" +
	 							"src='/aufdruck_image.php?seite="+response['seite']+"&schicht="+response['schicht']+'&rand='+Math.random()+"')";
	 				} else {
	 					a_img.src = 'aufdruck_image.php?seite='+response['seite']+'&schicht='+response['schicht']+'&rand='+Math.random();
	 				}
	 				a_img.id = 'produkt_vorschau_aufdrucke_'+response['seite']+response['schicht'];
	 				a_img.style.zIndex = 29 - response['schicht'];
	 				$('produkt_vorschau_aufdrucke_'+Konfigurator.produkt_config_seite).appendChild(a_img);
	 			} else if(response['state'] == 'update') {
	 				window.clearTimeout(Konfigurator.timeout_aufdruck_vorschau);
					Konfigurator.timeout_aufdruck_vorschau = window.setTimeout("Konfigurator.updateAufdruckVorschau('"+response['seite']+"', '"+response['schicht']+"')", 500);
	 			} else if(response['state'] == 'del') {
	 				if(!$('aufdruck_config_ebene_'+response['seite']+response['schicht']).previous()) {
	 					if($('aufdruck_config_ebene_'+response['seite']+response['schicht']).next()) {
	 						$('aufdruck_config_ebene_'+response['seite']+response['schicht']).next().down('img', 1).style.visibility = 'hidden';
	 					}
	 				}
	 				if(!$('aufdruck_config_ebene_'+response['seite']+response['schicht']).next()) {
	 					if($('aufdruck_config_ebene_'+response['seite']+response['schicht']).previous()) {
	 						$('aufdruck_config_ebene_'+response['seite']+response['schicht']).previous().down('img', 2).style.visibility = 'hidden';
	 					}
	 				}
	 				// Ebene aus der Ebenenauswahl entfernen
	 				$('aufdruck_config_ebene_'+response['seite']+response['schicht']).remove();
	 				// Bild von der Vorschau entfernen
	 				$('produkt_vorschau_aufdrucke_'+response['seite']+response['schicht']).remove();
	 				// Wenn ausgewaehlte Ebene entfernt wurde, erste Ebene aus der Ebenenauswahl auswaehlen
	 				if(response['schicht'] == Konfigurator.produkt_config_ebene) {
	 					Konfigurator.produkt_config_ebene = null;
	 					$("aufdruck_config_frame_text").hide();
						$("aufdruck_config_frame_motiv").hide();
						$("aufdruck_config_frame_bild").hide();
	 					if($('aufdruck_config_ebenen_'+Konfigurator.produkt_config_seite).childElements().length > 0) {
	 						var el_id = String($('aufdruck_config_ebenen_'+Konfigurator.produkt_config_seite).firstChild.id);
	 						var ebene = el_id.match(/\d+/);
	 						Konfigurator.selectProduktConfigEbene(ebene);
	 					}
	 				}
	 			} else if(response['state'] == 'move') {
	 				// Nur vertauschen, wenn wirklich eine Aenderung vorgenommen wurde
	 				if(response['schicht'] != response['schicht_neu']) {
		 				// Inhalt der Ebenen vertauschen
		 				var element_inhalt = $('aufdruck_config_ebene_'+response['seite']+response['schicht']).down('a').innerHTML;
		 				var sibling_inhalt = $('aufdruck_config_ebene_'+response['seite']+response['schicht_neu']).down('a').innerHTML;
		 				$('aufdruck_config_ebene_'+response['seite']+response['schicht_neu']).down('a').update(element_inhalt);
		 				$('aufdruck_config_ebene_'+response['seite']+response['schicht']).down('a').update(sibling_inhalt);
		 				// Falls eine der Ebenen ausgewaehlt war, wieder auswaehlen
		 				if(response['schicht'] == Konfigurator.produkt_config_ebene) {
		 					Konfigurator.selectProduktConfigEbene(response['schicht_neu']);
		 				} else if(response['schicht_neu'] == Konfigurator.produkt_config_ebene) {
		 					Konfigurator.selectProduktConfigEbene(response['schicht']);
		 				}
		 				// Aufdruck-Vorschau aktualisieren
		 				window.setTimeout("Konfigurator.updateAufdruckVorschau('"+response['seite']+"', '"+response['schicht']+"')", 300);
		 				window.setTimeout("Konfigurator.updateAufdruckVorschau('"+response['seite']+"', '"+response['schicht_neu']+"')", 600);
	 				}
	 			}
	 			Konfigurator.updatePreis();
	 		}
	 	});
	},
	
	/*
	 * Funktion zum updaten des Preises
	 */
	updatePreis: function() {
		new Ajax.Request('ajax/update_preis.php', {
			method: 'get',
			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON();
				$('span_preis').update(response['preis']+' '+response['kzl']);
			}
		});
	},
	
	/*
	 * Funktion zum updaten eines Aufdruck-Bildes
	 */
	updateAufdruckVorschau: function(seite, schicht) {
		if(isIE6) {
			$('produkt_vorschau_aufdrucke_'+seite+schicht).filters.item(
					"DXImageTransform.Microsoft.AlphaImageLoader").src = 
					"aufdruck_image.php?seite="+seite+"&schicht="+schicht+"&rand="+Math.random();
		} else {
			$('produkt_vorschau_aufdrucke_'+seite+schicht).src = 
				'aufdruck_image.php?seite='+seite+'&schicht='+schicht+'&rand='+Math.random();
		}
	},
	
	/*
	 * Funktion, die prueft, ob der Haken bei den Bild-Upload-Bedingungen gesetzt ist und das Formular
	 * zum Bild-Upload absendet.
	 */
	uploadImage: function() {
		if($('cb_upload_bedingungen').checked) {
			$('form_upload').down('label').setStyle({ color: '#000000' });
			$('img_upload_loading').setStyle({ visibility: 'visible' });
			$('form_upload').submit();
		} else {
			$('form_upload').down('label').setStyle({ color: '#ff0000' });
		}
	},
	
	/*
	 * Funktion, die aus dem IFrame heraus aufgerufen wird, sobald der Upload fertig ist.
	 */
	uploadImageComplete: function(status, msg) {
		$('img_upload_loading').setStyle({ visibility: 'hidden' });
		if(status) {
			this.addProduktConfigEbeneBild(msg);
		} else {
			$('span_upload_msg').update(msg);
		}
	},
	
	/*
	 * Funktion zum Auswaehlen einer Aufdruck-Ebene
	 */
	selectProduktConfigEbene: function(ebene) {
		if(this.produkt_config_ebene != null) {
			$("aufdruck_config_ebene_"+this.produkt_config_seite+this.produkt_config_ebene).className = 'inactive';
			$("aufdruck_config_frame_text").hide();
			$("aufdruck_config_frame_motiv").hide();
			$("aufdruck_config_frame_bild").hide();
		}
		$("aufdruck_config_ebene_"+this.produkt_config_seite+ebene).className = 'active';
		this.produkt_config_ebene = ebene;
		new Ajax.Request('ajax/get_config_aufdruck.php', {
			method: 'get',
			parameters: {
				seite: this.produkt_config_seite,
				schicht: ebene
			},
			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON();
				$('select_aufdruck_transform_size').lastChild.nodeValue = response['skalierung'];
				//$('select_aufdruck_transform_rotate').lastChild.nodeValue = response['drehung'];
				if(response['typ'] == 'motiv') {
					for(i=1; i<=3; i++) {
						if(response['farbe'+i] != null) {
							$('tr_aufdruck_motiv_color'+i).show();
							$('select_aufdruck_motiv_color'+i).down('div.colorselect').style.backgroundColor = '#'+response['farbe'+i]["hex"];
							$('select_aufdruck_motiv_color'+i).down('div.colorselect_text').update(response['farbe'+i]["name"]);
						} else {
							$('tr_aufdruck_motiv_color'+i).hide();
						}
					}
					$("aufdruck_config_motiv_img").src = 'content/motive/80x80/'+response['motiv_id']+'.png';
					$("aufdruck_config_frame_motiv").show();
				} else if(response['typ'] == 'text') {
					for(i=1; i<=5; i++) {
						if(response['texte'][i] != null) {
							document.getElementsByName('aufdruck_config_text_input'+i)[0].value = response['texte'][i]['text'];
							$('select_aufdruck_text_font'+i).down('div.text').update(response['texte'][i]['schriftart']);
							$('select_aufdruck_text_color'+i).style.backgroundColor = '#'+response['texte'][i]['farbe'];
							$('select_aufdruck_text_size'+i).lastChild.nodeValue = response['texte'][i]['groesse'];
							if(response['texte'][i]['fett'] == 1) $('set_aufdruck_text_fett'+i).className = 'fett_a';
							if(response['texte'][i]['kursiv'] == 1) $('set_aufdruck_text_kursiv'+i).className = 'kursiv_a';
							for(j=1; j<=3; j++) {
								$('set_aufdruck_text_ausrichtung_'+i+j).className = 'ausrichtung';
							}
							$('set_aufdruck_text_ausrichtung_'+i+response['texte'][i]['ausrichtung']).className = 'ausrichtung_a';
						}
					}
					$("aufdruck_config_frame_text").show();
					Konfigurator.focusAufdruckConfigTextInput(1);
				} else if(response['typ'] == 'bild') {
					$('select_aufdruck_bild_drehung').lastChild.nodeValue = response['drehung']+'°';
					$('cb_aufdruck_bild_sw').checked = response['sw'];
					$("aufdruck_config_bild_img").src = decodeURIComponent(response['bild']);
					$("aufdruck_config_frame_bild").show();
				}
			}
		});
	},
	
	/*
	 * Funktion zum Hinzufuegen einer Aufdruck-Ebene (Motiv)
	 */
	addProduktConfigEbeneMotiv: function(id) {
		this.closeAufdruckAuswahl();
		this.removeDefaultConfig();
		var params = {
			action: 'add_motiv',
			motiv_id: id,
			seite: this.produkt_config_seite
		};
		this.updateProduktConfigAufdruck(params);
		this.openAufdruckConfig();
	},
	
	/*
	 * Funktion zum Hinzufuegen einer Aufdruck-Ebene (Text)
	 */
	addProduktConfigEbeneText: function() {
		this.closeAufdruckAuswahl();
		this.removeDefaultConfig();
		var params = {
			action: 'add_text',
			seite: this.produkt_config_seite
		};
		this.updateProduktConfigAufdruck(params);
		this.openAufdruckConfig();
	},
	
	/*
	 * Funktion zum Hinzufuegen einer Aufdruck-Ebene (Spruch)
	 */
	addProduktConfigEbeneSpruch: function(id) {
		this.closeAufdruckAuswahl();
		this.removeDefaultConfig();
		var params = {
			action: 'add_spruch',
			spruch_id: id,
			seite: this.produkt_config_seite
		};
		this.updateProduktConfigAufdruck(params);
		this.openAufdruckConfig();
	},
	
	/*
	 * Funktion zun Hinzufuegen einer Aufdruck-Ebene (Bild)
	 */
	addProduktConfigEbeneBild: function(pfad) {
		this.closeAufdruckAuswahl();
		this.removeDefaultConfig();
		var params = {
			action: 'add_bild',
			path: pfad,
			seite: this.produkt_config_seite
		};
		this.updateProduktConfigAufdruck(params);
		this.openAufdruckConfig();
	},
	
	/*
	 * Funktion zum Hinzufuegen einer Aufdruck-Ebene (Mit Aufdruck-ID)
	 */
	addProduktConfigEbeneByID: function(id) {
		this.closeAufdruckAuswahl();
		this.removeDefaultConfig();
		var params = {
			action: 'add_byid',
			aufdruck_id: id,
			seite: this.produkt_config_seite
		};
		this.updateProduktConfigAufdruck(params);
		this.openAufdruckConfig();
	},
	
	/*
	 * Funktion zum Loeschen einer Aufdruck-Ebene
	 */
	deleteProduktConfigEbene: function(ebene, seite) {
		if(seite != "v" && seite != "h") var seite = this.produkt_config_seite;
		var params = {
			action: 'del_motiv',
			schicht: ebene,
			seite: seite
		};
		this.updateProduktConfigAufdruck(params);
	},
	
	/*
	 * Funktion zum Aendern der Position einer Ebene in der Ebenenreihenfolge
	 */
	moveProduktConfigEbene: function(ebene, richtung) {
		var params = {
			action: 'move',
			schicht: ebene,
			seite: this.produkt_config_seite,
			richtung: richtung
		};
		this.updateProduktConfigAufdruck(params);
	},
	
	/*
	 * Funktion um Text fett zu machen
	 */
	setAufdruckTextFett: function(zeile) {
		var params = {
			action: 'update',
			schicht: this.produkt_config_ebene,
			seite: this.produkt_config_seite,
			zeile: zeile,
			toggle: 'fett'
		};
		this.updateProduktConfigAufdruck(params);
		$('set_aufdruck_text_fett'+zeile).toggleClassName('fett');
		$('set_aufdruck_text_fett'+zeile).toggleClassName('fett_a');
	},
	
	/*
	 * Funktion um Text kursiv zu machen
	 */
	setAufdruckTextKursiv: function(zeile) {
		var params = {
			action: 'update',
			schicht: this.produkt_config_ebene,
			seite: this.produkt_config_seite,
			zeile: zeile,
			toggle: 'kursiv'
		};
		this.updateProduktConfigAufdruck(params);
		$('set_aufdruck_text_kursiv'+zeile).toggleClassName('kursiv');
		$('set_aufdruck_text_kursiv'+zeile).toggleClassName('kursiv_a');
	},
	
	/*
	 * Funktion zum bestimmen der Ausrichtung eines Textes
	 */
	setAufdruckTextAusrichtung: function(zeile, ausrichtung) {
		var params = {
			action: 'update',
			schicht: this.produkt_config_ebene,
			seite: this.produkt_config_seite,
			zeile: zeile,
			ausrichtung: ausrichtung
		};
		this.updateProduktConfigAufdruck(params);
		for(i=1; i<=3; i++) {
			if($('set_aufdruck_text_ausrichtung_'+zeile+i).className == 'ausrichtung_a') {
				$('set_aufdruck_text_ausrichtung_'+zeile+i).className = 'ausrichtung';
			}
		}
		$('set_aufdruck_text_ausrichtung_'+zeile+ausrichtung).className = 'ausrichtung_a';
	},
	
	/*
	 * Funktion zum verschieben eines Aufdruckes
	 */
	moveConfigAufdruck: function(axis, px) {
		if(axis == 'x') {
			var params = {
				action: 'update',
				seite: this.produkt_config_seite,
				schicht: this.produkt_config_ebene,
				move_x: px
			};
		}
		if(axis == 'y') {
			var params = {
				action: 'update',
				seite: this.produkt_config_seite,
				schicht: this.produkt_config_ebene,
				move_y: px
			};
		}
		if(axis == 'center') {
			var params = {
				action: 'update',
				seite: this.produkt_config_seite,
				schicht: this.produkt_config_ebene,
				center: true
			};
		}
		this.updateProduktConfigAufdruck(params);
	},
	
	/*
	 * Funtionen zum Auswaehlen eines Produktes
	 */
	selectProdukt: function(id) {
		this.closeProduktAuswahl();
		this.removeDefaultConfig();
		new Ajax.Request('ajax/select_config_produkt.php', { 
			method: 'get', 
			parameters: { 
				produkt_id: id 
			}, 
			onSuccess: function(transport) {
				Konfigurator.hidePermalink();
				Konfigurator.produkt = transport.responseText.evalJSON();
				if(!Konfigurator.produkt) {
					alert("Produkt konnte nicht geladen werden");
				} else {
					$('img_produkt').src = 'produkt_image.php?size=350x350&seite='+Konfigurator.produkt_config_seite+'&rand='+Math.random();
					$('img_produkt_klein_v').src = 'produkt_image.php?size=50x50&rand='+Math.random();
					$('img_produkt_klein_h').src = 'produkt_image.php?size=50x50&seite=h&rand='+Math.random();
					if(Konfigurator.produkt["bedruckbar"]!=0) {
						$('tr_produkt_ansicht').hide();
					} else {
						$('tr_produkt_ansicht').show();
					}
					$('produkt_name_container').update(Konfigurator.produkt["name"]);
					$('img_produkt_emotion').src = '/content/produkte/emotion_klein/' + Konfigurator.produkt["dateiname_emotion"];
					$('img_produkt_emotion').alt = Konfigurator.produkt["name"];
					Konfigurator.produkt_config_color = Konfigurator.produkt["default_farbe_id"];
					Konfigurator.updateProduktConfigGroessen();
					new Ajax.Request('ajax/get_produkt_farben.php', { 
						method: 'get', 
						onSuccess: function(transport) {
							var container = $('produkt_farben_container').update();
							var farben = transport.responseText.evalJSON();
							for(i=0; i<farben.length; i++) {
								var alink = document.createElement('a');
								alink.href = 'javascript:Konfigurator.selectProduktConfigColor('+farben[i]["farbe_id"]+')';
								Element.extend(alink);
								var div = document.createElement('div');
								div.id = 'produkt_config_color'+farben[i]["farbe_id"];
								if(farben[i]["farbe_id"] == Konfigurator.produkt_config_color) {
									div.className = 'color_a';
								} else {
									div.className = 'color';
								}
								//div.style.background = '#'+farben[i]["hex"];
								div.style.background = farben[i]["css_bg"];
								var tdiv = document.createElement('div');
								tdiv.title = farben[i]["name"];
								tdiv.className = 'tooltip_title';
								div.appendChild(tdiv);
								alink.appendChild(div);
								container.appendChild(alink);
								alink.observe('mouseover', showTooltip);
								alink.observe('mouseout', hideTooltip);
							}
							var clear_div = document.createElement('div');
							clear_div.style.clear = 'both';
							container.appendChild(clear_div);
						}
					});
					var aufdrucke = $('produkt_vorschau_aufdrucke_v').childElements();
					for(i=0; i<aufdrucke.length; i++) {
						var id = String(aufdrucke[i].id);
						var num = id.substr(id.length-1, 1);
						Konfigurator.updateAufdruckVorschau('v', num)
					}
					var aufdrucke = $('produkt_vorschau_aufdrucke_h').childElements();
					for(i=0; i<aufdrucke.length; i++) {
						var id = String(aufdrucke[i].id);
						var num = id.substr(id.length-1, 1);
						Konfigurator.updateAufdruckVorschau('h', num)
					}
					Konfigurator.updatePreis();
				}
			}
		});
		this.openAufdruckAuswahl();
	},
	
	/*
	 * Funktion zum Auswaehlen einer Produkt-Kategorie
	 */
	selectProduktAuswahlKat: function(kat) {
		if(this.produkt_auswahl_kat != null) {
			$("produkt_auswahl_link"+this.produkt_auswahl_kat).className = 'normal';
		}
		$("produkt_auswahl_link"+kat).className = 'active';
		this.produkt_auswahl_kat = kat;
		new Ajax.Request('ajax/get_produkte_by_kategorie.php', { 
			method: 'get', 
			parameters: { 
				kategorie_id: kat 
			}, 
			onSuccess: function(transport) {
				var produkte = transport.responseText.evalJSON();
				var container = $("produkt_auswahl_container");
				container.update();
				for(i=0; i<produkte.length; i++) {
					var link = document.createElement("a");
					link.href = "javascript:Konfigurator.selectProdukt("+produkte[i]["produkt_id"]+")";
					var img = new Image();
					img.src = 'produkt_image.php?size=50x50&produkt_id='+produkte[i]["produkt_id"];
					img.alt = produkte[i]["name"];
					Element.extend(img);
					img.observe('load', Konfigurator.onloadProduktbild);
					link.appendChild(img);
					var tdiv = document.createElement('div');
					tdiv.className = 'tooltip_title';
					tdiv.title = produkte[i]["name"];
					tdiv.style.display = 'none';
					link.appendChild(tdiv);
					container.appendChild(link);
					Element.extend(link);
					link.observe('mouseover', showTooltip);
					link.observe('mouseout', hideTooltip);
				}
			}
		});
	},
	
	/*
	 * Funktion zum Auswaehlen einer Produkt-Farbe
	 */
	selectProduktConfigColor: function(id) {
		if(this.produkt_config_color != null) {
			$("produkt_config_color"+this.produkt_config_color).className = 'color';
		}
		$("produkt_config_color"+id).className = 'color_a';
		this.produkt_config_color = id;
		new Ajax.Request('ajax/select_config_farbe.php', { 
			method: 'get', 
			parameters: { 
				farbe_id: id 
			}, 
			onSuccess: function(transport) {
				var retval = transport.responseText.evalJSON();
				Konfigurator.hidePermalink();
				if(retval) {
					$('img_produkt').src = 'produkt_image.php?size=350x350&seite='+Konfigurator.produkt_config_seite+'&rand='+Math.random();
					$('img_produkt_klein_v').src = 'produkt_image.php?size=50x50&rand='+Math.random();
					$('img_produkt_klein_h').src = 'produkt_image.php?size=50x50&seite=h&rand='+Math.random();
					Konfigurator.updateProduktConfigGroessen();
					Konfigurator.updatePreis();
					var aufdrucke = $('produkt_vorschau_aufdrucke_v').childElements();
					for(i=0; i<aufdrucke.length; i++) {
						var id = String(aufdrucke[i].id);
						var num = id.substr(id.length-1, 1);
						Konfigurator.updateAufdruckVorschau('v', num)
					}
					var aufdrucke = $('produkt_vorschau_aufdrucke_h').childElements();
					for(i=0; i<aufdrucke.length; i++) {
						var id = String(aufdrucke[i].id);
						var num = id.substr(id.length-1, 1);
						Konfigurator.updateAufdruckVorschau('h', num)
					}
				} else {
					alert("Farbe konnte nicht geladen werden");
				}
			}
		});
	},
	
	/*
	 * Funktion zum Auswaehlen der Produkt-Seite
	 */
	selectProduktConfigSeite: function(seite) {
		if(this.produkt_config_seite != seite) {
		 	this.produkt_config_seite = seite;
		 	$('img_produkt').src = 'produkt_image.php?size=350x350&seite='+seite+'&rand='+Math.random();
		 	$('produkt_vorschau_aufdrucke_v').hide();
		 	$('produkt_vorschau_aufdrucke_h').hide();
		 	$('produkt_vorschau_aufdrucke_'+seite).show();
		 	$('aufdruck_config_ebenen_v').hide();
		 	$('aufdruck_config_ebenen_h').hide();
		 	$('aufdruck_config_ebenen_'+seite).show();
		 	if($('aufdruck_config_ebenen_'+seite).childElements().length > 0) {
				var el_id = String($('aufdruck_config_ebenen_'+seite).firstChild.id);
				var id = el_id.match(/\d+/);
				this.selectProduktConfigEbene(id);
			} else {
				this.produkt_config_ebene = null;
				$("aufdruck_config_frame_text").hide();
				$("aufdruck_config_frame_motiv").hide();
			}
		}
	},
	
	/*
	 * Funktion zum Auswaehlen des Aufdruck-Typs. Blendet die entsprechenden Optionen fuer einen Aufdruck-Typ ein
	 */
	changeAufdruckTyp: function(typ) {
		if(this.aufdruck_auswahl_typ != null) {
			$("aufdruck_auswahl_reiter"+this.aufdruck_auswahl_typ).className = 'punkt';
			$("aufdruck_auswahl_block"+this.aufdruck_auswahl_typ).hide();
			/*
			if(this.aufdruck_auswahl_typ == 1 || this.aufdruck_auswahl_typ == 4) {
				reiter.addClassName('punkt_aussen');
			} else {
				reiter.addClassName('punkt_mitte');
			}
			*/
		}
		reiter = $("aufdruck_auswahl_reiter"+typ);
		block = $("aufdruck_auswahl_block"+typ);
		reiter.className = 'punkt_a';
		if(typ == 1) {
			//reiter.addClassName('punkt_a_mitte');
			this.addProduktConfigEbeneText();
			this.aufdruck_auswahl_typ = typ;
		} else {
			block.show();
			this.aufdruck_auswahl_typ = typ;
			if (!this.isopen_aufdruck_auswahl) {
				this.openAufdruckAuswahl();
			}
			/*
			if(typ == 2) {
				reiter.addClassName('punkt_a_mitte');
			} else {
				if(typ == 1) {
					reiter.addClassName('punkt_a_links');
				} else {
					reiter.addClassName('punkt_a_rechts');
				}
			}
			*/
		}
	},
	
	/*
	 * Funktion zum Aendern der Motiv-Kategorie
	 */
	selectAufdruckAuswahlMotiveKat: function(id) {
		new Ajax.Request('ajax/get_motive_by_mkategorie.php', {
			method: 'get',
			parameters: {
				mkategorie_id: id
			},
			onSuccess: function(transport) {
				var container = $('aufdruck_auswahl_block2').down('div.motive').update();
				var motive = transport.responseText.evalJSON();
				for(i=0; i<motive.length; i++) {
					var link = document.createElement('a');
					link.href = 'javascript:Konfigurator.addProduktConfigEbeneMotiv('+motive[i]['motiv_id']+')';
					var img = new Image();
					img.src = 'content/motive/80x80/'+motive[i]['motiv_id']+'.png';
					img.alt = motive[i]['name'];
					link.appendChild(img);
					var tdiv = document.createElement('div');
					tdiv.className = 'tooltip_title';
					tdiv.title = motive[i]["name"];
					tdiv.style.display = 'none';
					link.appendChild(tdiv);
					container.appendChild(link);
					Element.extend(link);
					link.observe('mouseover', showTooltip);
					link.observe('mouseout', hideTooltip);
				}
			}
		});
	},
	
	/*
	 * Funktion zum Suchen nach Motiven
	 */
	selectAufdruckAuswahlMotiveSearch: function() {
		var keywords = encodeURI(document.getElementsByName('motiv_volltext')[0].value);
		new Ajax.Request('ajax/get_motive_by_keyword.php', {
			method: 'get',
			parameters: {
				keywords: keywords
			},
			onSuccess: function(transport) {
				var container = $('aufdruck_auswahl_block2').down('div.motive').update();
				var motive = transport.responseText.evalJSON();
				for(i=0; i<motive.length; i++) {
					var link = document.createElement('a');
					link.href = 'javascript:Konfigurator.addProduktConfigEbeneMotiv('+motive[i]['motiv_id']+')';
					var img = new Image();
					img.src = 'content/motive/80x80/'+motive[i]['motiv_id']+'.png';
					img.alt = motive[i]['name'];
					link.appendChild(img);
					var tdiv = document.createElement('div');
					tdiv.className = 'tooltip_title';
					tdiv.title = motive[i]["name"];
					tdiv.style.display = 'none';
					link.appendChild(tdiv);
					container.appendChild(link);
					Element.extend(link);
					link.observe('mouseover', showTooltip);
					link.observe('mouseout', hideTooltip);
				}
			}
		});
	},
	
	/*
	 * Funktion zum Aendern der Spruch-Kategorie
	 */
	selectAufdruckAuswahlSpruecheKat: function(id) {
		new Ajax.Request('ajax/get_sprueche_by_skategorie.php', {
			method: 'get',
			parameters: {
				skategorie_id: id
			},
			onSuccess: function(transport) {
				var container = $('aufdruck_auswahl_block4').down('div.sprueche').update();
				var sprueche = transport.responseText.evalJSON();
				for(i=0; i<sprueche.length; i++) {
					var link = document.createElement('a');
					link.href = 'javascript:Konfigurator.addProduktConfigEbeneSpruch('+sprueche[i]['spruch_id']+')';
					link.appendChild(document.createTextNode(sprueche[i]['text']));
					container.appendChild(link);
				}
			}
		});
	},
	
	selectAufdruckAuswahlSpruecheSearch: function() {
		var keywords = encodeURI(document.getElementsByName('spruch_volltext')[0].value);
		new Ajax.Request('ajax/get_sprueche_by_keyword.php', {
			method: 'get',
			parameters: {
				keywords: keywords
			},
			onSuccess: function(transport) {
				var container = $('aufdruck_auswahl_block4').down('div.sprueche').update();
				var sprueche = transport.responseText.evalJSON();
				for(i=0; i<sprueche.length; i++) {
					var link = document.createElement('a');
					link.href = 'javascript:Konfigurator.addProduktConfigEbeneSpruch('+sprueche[i]['spruch_id']+')';
					link.appendChild(document.createTextNode(sprueche[i]['text']));
					container.appendChild(link);
				}
			}
		});
	},
	
	/*
	 * Funktion zum Updaten der Produkt-Groessen
	 */
	updateProduktConfigGroessen: function() {
	 	new Ajax.Request('ajax/get_produkt_groessen.php', { 
	 		method: 'get',
	 		parameters: {
	 			farbe_id: this.produkt_config_color
	 		},
	 		onSuccess: function(transport) {
	 			var rows = $('bestellen_groessen_table').getElementsByTagName('tr');
	 			var groessen = $A(transport.responseText.evalJSON());
	 			for(i=0; i<rows.length; i++) {
	 				if(groessen.indexOf($(rows[i]).down('strong').firstChild.nodeValue) == -1) {
	 					rows[i].hide();
	 					rows[i].down('input.text').value = 0;
	 					rows[i].down('div.groesseselect').lastChild.nodeValue = 0;
	 				} else {
	 					rows[i].show();
	 				}
	 			}
	 		}
	 	});
	},
	
	/*
	 * Funktion zum Einblenden der Produkt-Auswahl
	 */
	openProduktAuswahl: function() {
		if(this.isopen_aufdruck_auswahl) this.closeAufdruckAuswahl();
		if(this.isopen_aufdruck_config) this.closeAufdruckConfig();
		if(!this.isopen_produkt_auswahl) {
			Effect.BlindDown('produkt_auswahl_content', {duration:1});
			this.isopen_produkt_auswahl = true;
		}
	},
	
	/*
	 * Funktion zum Ausblenden der Produkt-Auswahl
	 */
	closeProduktAuswahl: function() {
		Effect.BlindUp('produkt_auswahl_content', {duration:0.5});
		this.isopen_produkt_auswahl = false;
	},
	
	/*
	 * Funktion zum Einblenden der Aufdruck-Auswahl
	 */
	openAufdruckAuswahl: function() {
		if(this.isopen_produkt_auswahl) this.closeProduktAuswahl();
		if(this.isopen_aufdruck_config) this.closeAufdruckConfig();
		if(!this.isopen_aufdruck_auswahl) {
			Effect.BlindDown('aufdruck_auswahl_content', {duration:1});
			this.isopen_aufdruck_auswahl = true;
		}
		if (this.aufdruck_auswahl_typ == null) {
			this.changeAufdruckTyp(2);
		}
	},
	
	/*
	 * Funktion zum Ausblenden der Aufdruck-Auswahl
	 */
	closeAufdruckAuswahl: function() {
		Effect.BlindUp('aufdruck_auswahl_content', {duration:0.5});
		this.isopen_aufdruck_auswahl = false;
	},
	
	/* 
	 * Funktion zum Einblenden der Aufdruck-Config
	 */
	openAufdruckConfig: function() {
		if(this.isopen_produkt_auswahl) this.closeProduktAuswahl();
		if(this.isopen_aufdruck_auswahl) this.closeAufdruckAuswahl();
		if(!this.isopen_aufdruck_config) {
			Effect.BlindDown('aufdruck_config_content', {duration:1});
			this.isopen_aufdruck_config = true;
		}
	},
	
	/*
	 * Funktion zum Ausblenden der Aufdruck-Config
	 */
	closeAufdruckConfig: function() {
		Effect.BlindUp('aufdruck_config_content', {duration:0.5});
		this.isopen_aufdruck_config = false;
	},
	
	/*
	 * Funktion, die beim Absenden des Formulars aufgerufen wird und ueberprueft, ob eine Menge ausgewaehlt ist
	 */
	submit: function() {
		var els = $('bestellen_groessen_table').select('input.text');
		for(var i=0; i<els.length; i++) {
			if(parseInt(els[i].value) > 0) {
				return true;
			}
		}
		$('produkt_bestellen_content').className = 'bgfehler';
		if (Object.isUndefined($('produkt_bestellen_content').down('p.fehler'))) {
			$('produkt_bestellen_content').down('form').insert({
				top: '<p class="fehler"><strong>Bitte wähle eine Anzahl für eine oder mehrere Größen aus.</strong></p><p>&nbsp;</p>'
			});
		}
		return false;
	},
	
	/* 
	 * Funktion zum Zeigen der Grossansicht
	 */
	showZoomImage: function() {

		$('layerZoomImageCaption').update($('produkt_name_container').innerHTML + ' (Abbildung ähnlich)');
		
		$('overlay').style.height = document.body.offsetHeight;
		
		$('layerZoomImageContent').style.backgroundImage = 'url(produkt_image.php?size=580x580&seite='+this.produkt_config_seite+'&rand='+Math.random()+')';
		
		var child_els = $('layerZoomImagePrint').update($('produkt_vorschau_aufdrucke_'+this.produkt_config_seite).innerHTML).childElements();
		for(var i=0; i<child_els.length; i++) {
			child_els[i].id = 'zoom_' + child_els[i].id;
			if(isIE6) {
				var old_url = child_els[i].filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src;
				child_els[i].filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = old_url + "&size=580";
			} else {
				child_els[i].src = child_els[i].src + '&size=580';
			}
			child_els[i].style.zIndex = parseInt(child_els[i].style.zIndex) + 100;
		}

		$('overlay').show();
		$('layerZoomImage').show();
	
		//new Draggable('layerZoomImage', {handle: 'layerZoomImageHandle', zindex: 9998, starteffect: null, endeffect: null});						
	},
	
	/* 
	 * Funktion zum Verstecken der Grossansicht
	 */
	hideZoomImage: function() {
		$('zoom_overlay_bg').hide();
		$('zoom_overlay_content').hide();
	}
};