try {
	parent.jQuery.colorbox.close = function(){	
		var Url = document.URL.substr(window.location.hostname.length+7);
		if (Url.substr(0,2) == "/D" & Url.search(/aendern=1/) == -1) {
			confirmClose();
			return; // Do nothing.
		} else {
			parent.jQuery.colorbox.close = top.originalClose;	
			parent.jQuery.colorbox.close();
		}
	}; 
} catch(err) {  };

function confirmClose () {
	var $confirmClose = jQuery('<div></div>')
		.html('<p>Wenn Sie die Artikelseite schließen, werden Ihre Spezifikationen nicht übernommen.</p><p>Kehren Sie zur Artikelseite zurück, um den Artikel weiter zu spezifizieren und in die Direktbestellung zu übernehmen.</p><p>Kehren Sie zur Direktbestellung zurück, ohne den Artikel zu übernehmen.</p>')
		.dialog({
			title: 'Möchten Sie die Artikelseite schließen?',
			resizable: false,
			width:380,
			modal: true,
			buttons: {
				"Zurück zur Artikelseite": function() {
					jQuery( this ).dialog( "close" );
				},
				"Zur Direktbestellung": function() {
					//~ parent.jQuery.colorbox.close = top.originalClose;	
					//~ parent.jQuery.colorbox.close();
					jQuery( this ).dialog( "close" );
					location.href="/Warenkorb/Direkt";
				}				
		}
	});


	//~ $confirmClose.dialog('option', 'title', 'Fenster schließen?');
	$confirmClose.dialog('open');
	// prevent the default action, e.g., following a link
	return false;
}

// -----------------------------------------------*

	// Ausblenden der Caroussel Buttons wenn beide disabled
	//~ function DisableCarouselButton(id) {
		//~ if (jQuery(id).parent().next().prop('disabled') == "true") {
			//~ if (jQuery(id).parent().next().next().prop('disabled') == "true") {
				//~ jQuery(id).parent().next().next().remove();
				//~ jQuery(id).parent().next().remove();
			//~ }
		//~ }
	//~ }


// -----------------------------------------------*

	var arrPresets = new Array();

	// Funktionen aus Seite raus
	var geaendert=0;

	// Anstelle von # in href benutzen
	function NOOP()	{}

	function nurZahlen(el)
	{
	  var val = el.value.replace(/\D/g, '');
	  el.value = val;
	}

	function testBestell (form) {
		var erg = false;

		// Kundenwunsch vorhanden und eingegeben?

		if (!(typeof(form.elements["KFT"]) == "undefined")) {
			var kft = form.elements["KFT"].value;

			if (kft == "(Bitte angeben)" || jQuery.trim(kft) == "") {
				alert("Bitte geben Sie Ihren Wunschtext ein!");
				return false;
			} else {
				erg = true;
			}
		}

		var val = form.elements["Anzahl"].value;

		// Eingabe leer oder kleiner Null?
		if (val == "" || val <= 0) {
			alert("Bitte geben Sie die gewünschte Anzahl ein.");
			return false;
		} else {
			erg = true;
		}

		// Mindestbestellmenge unterschritten?
		//~ if (erg && Mengenstaffel[0] > 1) {
			//~ if (erg && !testMindestbestellmenge(form,"Anzahl",Mengenstaffel[0])) erg=false;
		//~ } else {
			//~ erg = true;
		//~ }
		// Verpackungseinheit eingehalten?
		if (erg && PEinheit > 1) {
			if (erg && !testVerpackungseinheit(form,"Anzahl", PEinheit)) erg=false;
		} else {
			erg = true;
		}

		// Upsell?
		var UpsellPreise = new Array();
		var UpsellSpar = new Array("x");
		for (var i = 0; i < Mengenpreis.length; ++i) {
			Mengenpreis[i] = parseFloat(Mengenpreis[i]);
			UpsellPreise.push(Mengenpreis[i]);
			if (i > 0) {
				Temp = Mengenpreis[i-1] - Mengenpreis[i];
				UpsellSpar.push(Temp);
			}
		}

		var UpsellMengenMax = new Array();
		var UpsellMengenMin = new Array();
		for (var i = 0; i < Mengenstaffel.length; ++i) {
			Mengenstaffel[i] = parseInt(Mengenstaffel[i]);
			UpsellMengenMax.push(Mengenstaffel[i]);
			if (i == 0) {
				Temp =  Mengenstaffel[i] * 0.3;
			} else {
				Temp =  Mengenstaffel[i-1] + ((Mengenstaffel[i] - Mengenstaffel[i-1]) * 0.3);
			}
			UpsellMengenMin.push(Temp);
		}

		if (erg) erg=testUpsell(form,UpsellPreise,UpsellSpar,UpsellMengenMin,UpsellMengenMax);

		return erg;
	}

// -----------------------------------------------*
		function CheckKFT() {
			jQuery("#KFT").focus( function() {				
				if (jQuery("#KFT").val() == "(Bitte angeben)") {
					jQuery("#KFT").val(""); 
				}
			});
		}

// -----------------------------------------------*

		// Korrektur von z-index der Bilder
		function SetAnwendungsbilderIndex() {
			z = 100;
			jQuery('.col-left li').each(function() {
				jQuery(this).css("z-index",z);
				z--;				
			});
		}

// -----------------------------------------------*

		// Tabs je nach Inhalt ein- bzw. ausblenden
		function RefreshTabs() {
			jQuery('.Tabs-Content div').each(function() {
				if (jQuery.trim(jQuery(this).html()) == '') {
					jQuery('.Tab-'+this.id).hide();
				} else {
					jQuery('.Tab-'+this.id).show();
				}			
			});
			jQuery(".Tabs li").removeClass("active");
			jQuery('.Tab-Content').hide();
			jQuery(".Tab-Kopfnummernbeschreibung").addClass("active");
			jQuery("#Kopfnummernbeschreibung").show();
		}

// -----------------------------------------------*

		function PreisFormat(zahl) {
			wert = zahl * 10000 / 100;
			wert = parseInt(wert);
			wert = wert / 100;
			wert = wert.toFixed(2);
			wert = wert.replace(/\./,",");
			while(wert.match(/^(\d+)(\d{3}\b)/)) {
				wert = wert.replace(/^(\d+)(\d{3}\b)/, RegExp.$1 + '.' + RegExp.$2);
			}
			return wert;
		}

		// Menge und Preis initialisieren
		// Daten liegen in Seite vor.
		function SetMengePreis(Init) {			
			if (Init == "1") { // &&  jQuery('#Menge').val() == "") {				
				var delay = (function(){
					var timer = 0;
					return function(callback, ms){
						clearTimeout (timer);
						timer = setTimeout(callback, ms);
					};
				})();				
				if (jQuery('#Menge').val() == "") {
				if (PEinheit > Mengenstaffel[0]) {
					InitialeMenge = PEinheit;
				} else {
					InitialeMenge = Mengenstaffel[0];
				}
				jQuery('#Menge').val(InitialeMenge);
				}
				jQuery("input[name='Anzahl']").focus();
				
				//~ jQuery("input[name='Anzahl']").keyup(function() {			
				jQuery("input").keyup(function() {			
					delay(function(){
						SetMengePreis();			
					}, 500 );
				});			
			}
			Menge = jQuery('#Menge').val();
			for (var i = Mengenstaffel.length; i > 0; --i) {
					if (Menge >= parseInt(Mengenstaffel[i])) {
						break;
					}
				}		
			Einzelpreis = Mengenpreis[i];
			Gesamtpreis = Menge*Einzelpreis/PEinheit;
			
			//~ Zuschläge drauf rechnen
			jQuery("input").each(function() { 
				if ( jQuery(this).prop("name").substr(0,7) == "Anzahl_") {
					Zuschlagpreis = jQuery(this).prop("name").substr(23)/100;
					if (jQuery(this).val() == "") {
						Zuschlagmenge = 0;
					} else {
						Zuschlagmenge = jQuery(this).val();
					}
					Gesamtpreis = Gesamtpreis + (Zuschlagmenge * Zuschlagpreis);
				}
			});
			
			Gesamtpreis = Gesamtpreis.toFixed(2);
			//~ Gesamtpreis = Gesamtpreis.replace(/\./g,",");
			
			if (Gesamtpreis == 0 && (jQuery('#Menge').val() != "" || Menge > 0)) {
				jQuery('#Preis').html("auf Anfrage");	
			} else {
				Gesamtpreis = PreisFormat(Gesamtpreis);
				jQuery('#Preis').html(Gesamtpreis + "&nbsp;" + Waehrung);	
			}
		}
			

jQuery(document).ready(function()
	{
	
// -----------------------------------------------*
// Initialisierung

		var post_file_get_artikel_infos = jQuery(location).prop('href');	// Post Handler fuer Artikeldetail Infos
		var selectedOptionFocus=-1;

		ajaxLoadDropdowns(0);
		
		if(anzArtikelDesignnr <= 1)	
			jQuery("#alle-artikel-anzeigen").hide();
	
		jQuery('.Dropdowns').show();
			
// -----------------------------------------------*

		function showAttributeChangeInfo(merkId) {
			jQuery("#info_"+merkId).show().delay(1500).fadeOut(1000);
		}
			
// -----------------------------------------------*
// Anzeigen eines konkreten Artikels

		function showArtikel(artNr,fShowChange,fScrollTop) {
			if (fScrollTop) {
				//~ jQuery(".produkt-liste").slideUp(400);			
				jQuery('html,body').animate({scrollTop: jQuery('.Produktdaten').offset().top-50}, 1000); 
			}

			jQuery(".Produktergebnis").show();
			jQuery("#produkt-details").show();
			
			//~ GA 2011-03-11 Aufruf des PDS aus der Direktbestellung?
			direkt=jQuery('input[name=direkt]').val();
		
			jQuery.post(post_file_get_artikel_infos, { GetArtikel: artNr, Designnr: designNr.toString(), direkt: direkt},   function(data) { 
				jQuery('#gallery a').unbind();
				jQuery('#Crosseller-Carousel').unbind();
				jQuery('#AehnlicheArtikel-Carousel').unbind();
				jQuery('#WeitereArtikel-Carousel').unbind();
				jQuery('#Recengine-Carousel').unbind();
				jQuery('#Preisstaffel-Carousel').unbind();
				jQuery("#hauptbild").prop("src",jQuery(data).find('hauptbild').text());
				jQuery("#hauptbilda").prop("href",jQuery(data).find('hauptbild').text());
				jQuery("#KeinHauptbild").html(jQuery(data).find('keinhauptbildtext').text());
				jQuery("#Bildunterschrift2").html(jQuery(data).find('bildunterschrift2').text());
				jQuery("#Kopfnummernbeschreibung").html(jQuery(data).find('kopfnummernbeschreibung').text());
				jQuery("#Technische-Datenblaetter").html(jQuery(data).find('technische-datenblaetter').text());
				jQuery("#Zusatzinformationen").html(jQuery(data).find('zusatzinformationen').text());
				jQuery("#Videos").html(jQuery(data).find('videos').text());
				jQuery("#Piktogramme").html(jQuery(data).find('piktogramme').text());
				jQuery("#Wischer").html(jQuery(data).find('wischer').text());
				jQuery("#Wischer-Rabatt").html(jQuery(data).find('wischer-rabatt').text());
				jQuery("#RabattDisclaimer").html(jQuery(data).find('rabattdisclaimer').text());
				jQuery("#Anwendungsbilder").html(jQuery(data).find('anwendungsbilder').text());
				jQuery("#Produktergebnis").html(jQuery(data).find('preisinformationen').text());
				jQuery("#Zuschlaege").html(jQuery(data).find('preisinformationenzuschlag').text());									
				if (jQuery(data).find('kundenwunsch').text().length > 0) {
					if ( jQuery("#KFT").length <= 0) {
						jQuery("#Kundenwunsch").html(jQuery(data).find('kundenwunsch').text());						
					}
				} else {
					jQuery("#Kundenwunsch").html("");
				}
				jQuery("#Crosslink").html(jQuery(data).find('crosslink').text());
				if (jQuery("#Crosslink").text() == "") { jQuery("#Crosslink").hide(); } else { jQuery("#Crosslink").show(); }				
				jQuery("#AehnlicheArtikel").html(jQuery(data).find('aehnlicheprodukte').text());
				if (jQuery("#AehnlicheArtikel").text() == "") { jQuery("#AehnlicheArtikel").hide(); } else { jQuery("#AehnlicheArtikel").show(); }
				jQuery("#WeitereArtikel").html(jQuery(data).find('weitereprodukte').text());
				if (jQuery("#WeitereArtikel").text() == "") { jQuery("#WeitereArtikel").hide(); } else { jQuery("#WeitereArtikel").show(); }			
				jQuery("#Recengine").html(jQuery(data).find('recengine').text());		
				if (jQuery("#Recengine").text() == "") { jQuery("#Recengine").hide(); } else { jQuery("#Recengine").show(); }						
				jQuery("#Service").html(jQuery(data).find('service').text());		
				jQuery("#Produktbeschreibung").html(jQuery(data).find('produktbeschreibung').text());		
				RefreshTabs();
				SetMengePreis("1");
				SetAnwendungsbilderIndex();
				CheckKFT();
				jQuery('#gallery a').lightBox();		
				jQuery('.Produktdaten').hideLoading();
				jQuery('#Crosseller-Carousel').jcarousel();
				DisableCarouselButton('#Crosseller-Carousel');
				jQuery('#AehnlicheArtikel-Carousel').jcarousel();
				DisableCarouselButton('#AehnlicheArtikel-Carousel');
				jQuery('#WeitereArtikel-Carousel').jcarousel();
				DisableCarouselButton('#WeitereArtikel-Carousel');
				jQuery('#Recengine-Carousel').jcarousel();	
				DisableCarouselButton('#Recengine-Carousel');
				jQuery('#Preisstaffel-Carousel').jcarousel();	
				DisableCarouselButton('#Preisstaffel-Carousel');
			}
 			,'xml');
			
			if (jQuery.trim(jQuery("#Produktbeschreibung").text()).length == 0) {
				jQuery("#Produktbeschreibung").hide();
			} else {
				jQuery("#Produktbeschreibung").show();
			}
			
			document.Auswahl.AvailTrackingcode.value = ""; // Nach Auswahl eines anderen Artikels Avail Trackingcode löschen
			AvailClickedOn(artNr, ""); // Muss dann noch ersetzt werden - In AvailClickedOn wird jetzt das ProductPage_Similar-Template zum Clikcs zählen mit aufgerufen!
			AvailArtikelProtokoll(artNr);
			
			globArtNr = artNr;
			
			if(jQuery.isFunction(jQuery.setDefaultArtikel)) {
				jQuery.setDefaultArtikel();
			}
		}
		
// -----------------------------------------------*
		
// -----------------------------------------------*
		
		// Produktliste ausliefern
		function ajaxLoadArtikelliste() {
			jQuery.post(post_file_get_artikel_infos, { GetArtikelliste: designNr.toString() },   function(data) { 
				jQuery("#produktliste-komplett").html(data);
				jQuery('.Produktdaten').hideLoading();
				jQuery(".produkt-name").css("cursor","pointer"); 
				jQuery(".produkt-name").hover(function() {
					jQuery(this).css("background","#DEDEDE");
						}, function() {
					jQuery(this).css("background","none");
					}); 

				//~ jQuery('.artnrliste a').remove();
				jQuery('.artnrliste a').removeAttr('href');
				jQuery('.artnrliste a').removeAttr('rel');
				jQuery('.artnrliste').each(function() {
					jQuery(this).html(jQuery(this).html().replace(/<a>|<\/a>/gi,""));
				});
				jQuery('html,body').animate({scrollTop: jQuery('.produkt-liste').offset().top-50}, 1000);
				
				// User klickt auf einen Eintrag in der Produktliste
				jQuery(".produkt-name").click(function(){
					artNr = jQuery(this).prop('id');
					jQuery('.Produktdaten').showLoading();
					setTimeout(function() {showArtikel(artNr, true, true); ajaxLoadDropdowns(0);	},100);
					//~ setTimeout(function() {ajaxLoadDropdowns(0)},210);				// nicht sofort aufrufen, da der blöde IE sonst die Pulldowns nicht wieder einklappt nachdem der User die Maustaste losgelassen hat
				});
				// Skyscraper Workaround siehe Seton.js
				ResetLeftMarginSkyscraper();
			}
			,'html');		
		}

// -----------------------------------------------*

	dropdownInit();
	
	
	function dropdownInit() {
	// -----------------------------------------------*
	// User klick auf ein DropDown Menu
	// Dann muessen wir festlegen, welche Optionen in diesem DropDown noch erlaubt sind
	// in Abhaengigkeit von den anderen Merkmalen und deren Auspraegungen

			jQuery(".merk_select").focus(function(){
				merkId = (jQuery(this).prop("id")).substr(2,99999); // das "p_" abschneiden
				selectedOptionFocus = jQuery("#p_"+merkId + " option:selected").val();
			});
			
	// -----------------------------------------------*
	
			jQuery(".merk_select").change(function(){
				merkId = (jQuery(this).prop("id")).substr(2,99999); // das "p_" abschneiden
				changeOptions(merkId);
			});
			
	// -----------------------------------------------*
	// Kundenwunsch Checkbox extra behandeln
			jQuery("#p_63").change(function(){
				changeOptions(63);
			});
			
	// ----------------------------------------------*
			jQuery("#alle-artikel-anzeigen").click(function(){
				if(jQuery('.produkt-liste').length == 0) {
					jQuery('.Produktdaten').showLoading();
					//~ jQuery.ajaxSetup({async: false});
					setTimeout(function() {ajaxLoadArtikelliste()}, 100);
					//~ ajaxLoadArtikelliste();
					//~ jQuery.ajaxSetup({async: true});
				} else {
					jQuery('html,body').animate({scrollTop: jQuery('.produkt-liste').offset().top-50}, 1000);
				}			
			});

	
	}
		
// -----------------------------------------------*
// eine andere Option ausgewaehlt? Dann was machen

		function changeOptions(merkId) {
			if(merkId == 63) {		// Kundenwunsch Checkbox anders behandeln
				jQuery('.Produktdaten').showLoading();
				setTimeout(function() {ajaxLoadDropdowns(merkId)},100);			// nicht sofort aufrufen, da der blöde IE sonst die Pulldowns nicht wieder einklappt nachdem der User die Maustaste losgelassen hat
			} else {					// restliche Dropdowns
				if(jQuery("#p_"+merkId + " option:selected").prop('disabled') == false)		// Eine aktive Option ausgewaehlt?
					{
					if(jQuery("#p_"+merkId + " option:selected").val() != selectedOptionFocus) {	// nur was tun, wenn sich auch tatsaechlich die gewaehlte Option geaendert hat!
						selectedOptionFocus = jQuery("#p_"+merkId + " option:selected").val();
						jQuery('.Produktdaten').showLoading();
						setTimeout(function() {ajaxLoadDropdowns(merkId)},100);				// nicht sofort aufrufen, da der blöde IE sonst die Pulldowns nicht wieder einklappt nachdem der User die Maustaste losgelassen hat
						}	
					}	
				else {
					jQuery("#p_"+merkId).val(selectedOptionFocus);								// Nein? Dann auf letzten Wert zuruecksetzen. Ist nur im IE <= 7 noetig
					return(false);
				}
			}
		}

// -----------------------------------------------*
// Dropdowns via Ajax nachladen

		function ajaxLoadDropdowns(merkId) {
			jQuery(".merk_select").unbind('change');
			jQuery("#p_63").unbind('change');
			
			var parameter = { };
			if(merkId == 0) {				// Initialisierung?
				parameter = { Designnr: designNr.toString(), Artikelnr: globArtNr.toString() };
			} else {
				parameter = { Designnr: designNr.toString(), merkId: merkId.toString(), pulldowns: { } };
				jQuery("select option:selected").each(function () {
					if((jQuery(this).parent().prop("id")).substr(0,2) == "p_") {
						var merkId = (jQuery(this).parent().prop("id")).substr(2,99999); // das "p_" abschneiden
						parameter.pulldowns[merkId] = jQuery(this).val();
					}
				});
				// Kundenwunsch Checkbox auslesen wenn vorhanden
				if(jQuery("#p_63").is(':visible') == true) {
					if(jQuery("#p_63").prop('checked') == true) 
						parameter.pulldowns[63] = jQuery("#p_63").val();
					else
						parameter.pulldowns[63] = 0;
				}
				
			}

			parameter.uri = jQuery(location).attr('href');
			
			jQuery.post("/PDS", parameter,   function(data) { 
				jQuery('#Dropdowns').html(jQuery(data).find('pulldowns').text());	
				temp = jQuery(data).find('artikelNr').text();
				if(temp)
					globArtNr = temp;
				jQuery(".info_pulldown_changed").delay(1500).fadeOut(1000);
				//~ setTimeout(function() {dropdownInit()},1000);
				dropdownInit();
			}
			,'xml');
					
			if(merkId != 0) {    // User hat ein pulldown angeklickt? Dann wird ein neuer Artikel angezeigt!
				{
				showArtikel(globArtNr);
				jQuery('.Produktdaten').hideLoading();
				}
			}
		}
// -----------------------------------------------*

/*
 * Function : dump()
 * Arguments: The data - array,hash(associative array),object
 *    The level - OPTIONAL
 * Returns  : The textual representation of the array.
 * This function was inspired by the print_r function of PHP.
 * This will accept some data as the argument and return a
 * text that will be a more readable version of the
 * array/hash/object that is given.
 * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php
 */
function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

// -----------------------------------------------*
});
























