/*! lightbox JS */
/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

/* Wie schnell soll an eine #scrollto__ID -Stelle gescrollt werden */
var lb_scrollspeed = 800;

/* Eine Funktion aus Produktdetails-Tabelle wurde in den globalen Kontext gehoben */
function checkCfg(getCatRef, getGrpRef, getProdRef) {
	// Funktion gleicht die uebergebenen Werte mit den Werten
	// in der Konfigurations-Datei ab (cfg_details_tables.js)

	var hCfgResult = new Object();
	hCfgResult['category'] = '';
	hCfgResult['group'] = '';
	hCfgResult['product'] = '';

	if (sWhere == "ksb") {
		for ( var sCatCfg in hCatProd) {
			if (getCatRef == sCatCfg) {
				for ( var sGrpCfg in hCatProd[getCatRef]) {
					if (getProdRef != '') {
						for ( var sProdCfg in hCatProd[getCatRef]['article']) {
							if (getProdRef == sProdCfg) {
								hCfgResult['product'] = sProdCfg;
								break;
							}
							if (getProdRef != sProdCfg) {
								hCfgResult['product'] = 'not_defined';
							}
						} // for
					} // if
				} // for
				hCfgResult['category'] = sCatCfg;
				break;
			} // if
			break;
		} // for
	} else {
		for ( var sCatCfg in hCatGrpProd) {
			if (getCatRef == sCatCfg) {
				for ( var sGrpCfg in hCatGrpProd[getCatRef]) {
					if (getGrpRef == sGrpCfg) {
						if (getProdRef != '') {
							for ( var sProdCfg in hCatGrpProd[getCatRef][getGrpRef]['article']) {
								if (getProdRef == sProdCfg) {
									hCfgResult['product'] = sProdCfg;
									break;
								}
								if (getProdRef != sProdCfg) {
									hCfgResult['product'] = 'not_defined';
								}
							} // for
						} // if
						hCfgResult['group'] = sGrpCfg;
						break;
					} // if
				} // for
				hCfgResult['category'] = sCatCfg;
				break;
			} // if
			break;
		} // for
	} // else
	return (hCfgResult);
}// checkCfg


$(document)
		.ready(

				function() {
		
					if ($.fancybox) { // panic closure :-)
					
						/* Unsichtbaren DIV-Container als "Clone-Basis" fuer spaeter an das DOM-Ende erzeugen ("anti-hickup"-produktdetails)*/
						$('body').append("<div id='temp_lightbox_content'></div>");


						/**
						 * Presse: Auch Download-urls anzeigen fuer Bilder in "Presse"
						 */
						$("a.lightbox_download").click(
								function() {

									var downloadurl = this.href;

									$.fancybox( {
										'onStart' : function() {
										},
										'title' : '<a href="' + downloadurl
												+ '">' + 'Bild-Download'
												+ '</a>',
										'titlePosition' : 'over',
										'titleShow' : true,
										'href' : downloadurl
									});
									
							return false;

								});

						/**
						 * produktdetails
						 */
						$("a.lightbox_details")
								.click(
										function() {

											$.fancybox.showActivity();

											oVar['details_query'] = this.href;

											var default_width = 440;
											var default_height = 600;

											var real_width = default_width;
											var real_height = default_height;
											


											var default_onstart = function() {

												$.ajaxSetup( {
													async : false
												});

												if (oVar['details_js_loaded'] == false) {

													$("#fancybox-content")
															.css(
																	{
																		'background-color' : '#EEEFF4'
																	});

													$.getScript(
																	'/_assets_es/module/produkt_tabelle/cfg_popup_details.js',
																	function() {
																	});
													$("head").append("<link>");
													var css = $("head")
															.children(":last");
													css
															.attr( {
																rel : "stylesheet",
																type : "text/css",
																href : "/_assets_es/module/produkt_tabelle/popup_details.css"
															});
												} // if(oVar['details_js_loaded']

												$
														.getScript(
																'/_assets_es/module/produkt_tabelle/control_popup_details.js',
																function() {
																});
												$.getScript(
																"/"
																		+ sLngFld
																		+ "/js/section/"
																		+ sRubrikWD
																		+ "/cfg_popup_details.js",
																function() {
																});

												$.ajaxSetup( {
													async : true
												});


												$("#temp_lightbox_content").html(showTabLightbox());

												
												var oResultCheckCfg = new Object(
														checkCfg(
																sCatRef,
																sGrpRef,
																sProdRef));
												var sURLTab = 'url';
												if (oResultCheckCfg['category'] != '') {
													// Objekt-Definition
													// mit HTML-TAG
													// + ID +
													// CSS-Klassen
													var oTabSource = 'table#'
															+ sIDLoadTab
															+ sCSSLoadTab;
													
													if ((oResultCheckCfg['product'] == '')
															&& (oResultCheckCfg['group'] != '')) {

														initTab(
																oTabSource,
																'');
													} // if
													else if ((oResultCheckCfg['product'] != '')
															&& (oResultCheckCfg['product'] != 'not_defined')
															&& (oResultCheckCfg['group'] == '')) {
														initTab(
																oTabSource,
																sProdRef);
													} // else if
													else if ((oResultCheckCfg['product'] != '')
															&& (oResultCheckCfg['product'] != 'not_defined')
															&& (oResultCheckCfg['group'] != '')) {
														initTab(
																oTabSource,
																sProdRef);
													} // else if

												} // if

											};
											var default_oncomplete = function() {
												$("#temp_lightbox_content").html("");
											};
											var default_onclose = function() {
												
											};

											var default_content = function() {
												
												return $("div.details_box").clone( true );

											};

											var rev = $(this).attr("rev");


											if (rev && rev !== "") {
												var m = {};

												//		
												var revmatch = {
													width : /(?:width:)([0-9]+)/i,
													height : /(?:height:)([0-9]+)/i,
													belt : /(?:belt:)([0-9]+)/i,
													scrollbar : /(?:scrollbar:)([0-9]+)/i
												};

												$.each(revmatch,
														function(i, v) {
															m[i] = v.exec(rev);
														});
												if (m.width) {
													real_width = m.width[1];
													default_autoscale = false;
													default_autodimension = false;

												}
												if (m.height) {
													real_height = m.height[1];
													default_autoscale = false;
													default_autodimension = false;

												}

											}

											$.fancybox.showActivity();
											$
													.fancybox( {
														'padding' : 0,
														'onStart' : default_onstart,
														'onComplete' : default_oncomplete,
														'onClosed' : default_onclose,
														'autoScale' : false,
														'transitionIn' : 'fade',
														'scrolling' : 'auto',
														'width' : real_width,
														'height' : real_height,
														'autoDimensions' : false,
														'transitionOut' : 'none',
														'content' : default_content
													// content

													}); // fancybox

											return false;
										}); // lightbox_details


						/**
						 * lightbox_default: standard ohne belt
						 */
						$("a.lightbox_default")
								.click(
										function() {

											var default_width = 805;
											var default_height = 200;
											var default_belt = 0;
											var default_autoscale = false;
											var default_autodimension = true;
											var default_onstart = function() {

												$("head").append("<link>");
												var css = $("head").children(
														":last");
												css
														.attr( {
															rel : "stylesheet",
															type : "text/css",
															href : "/_assets_es/module/lightbox/setting_lightbox_default.css"
														});

											};
											var default_onclose = function() {
												$("head").children(":last")
														.remove();
														oVar['scrollTo'] ="";
											};
											var default_oncomplete = function() {
											};
											
											// scrollen: nach parameter im href-hash-anchor suchen
											if(this.href.indexOf('__') >= 0) {
												
											var findanchor = this.href.split('__');
										
											var findtype = findanchor[0];
											var findelement = findanchor[1];
											
											oVar['scrollTo'] = findelement;

											} else {
												oVar['scrollTo'] ="";
											}
											
											/* link rev="" -Parameter checken*/
											var rev = $(this).attr("rev");


											var real_width = default_width;
											var real_height = default_height;

											if (rev && rev !== "") {
												var m = {};

												//		
												var revmatch = {
													width : /(?:width:)([0-9]+)/i,
													height : /(?:height:)([0-9]+)/i,
													belt : /(?:belt:)([0-9]+)/i,
													scrollbar : /(?:scrollbar:)([0-9]+)/i
												};

												$.each(revmatch,
														function(i, v) {
															m[i] = v.exec(rev);
														});
												if (m.width) {
													real_width = m.width[1];
													default_autoscale = false;
													default_autodimension = false;
												}
												if (m.height) {
													real_height = m.height[1];
													default_autoscale = false;
													default_autodimension = false;
												}
												if (m.scrollbar) {

													default_oncomplete = function() {

														var scrollbar_height = Number(real_height)-20;
														var lb_scrollto = oVar['scrollTo'];
														// scrollbarer bereich muss um die hoehe des belt  reduziert werden, sofern ein belt da ist
														if ($('#lb_belt').length == 1) {
															var scrollbar_reduce = $(
																	'#lb_belt')
																	.height();
															scrollbar_height = scrollbar_height
																	- scrollbar_reduce;
														}
														if ((oVar['scrollTo'] != "") && $("#" + lb_scrollto).length > 0) {
															$('#lb_cnt').css({
																'height': scrollbar_height,
																'overflow': 'auto'
															}).scrollTo($("#" + lb_scrollto), lb_scrollspeed);
														} else {
															$('#lb_cnt').css({
																'height': scrollbar_height,
																'overflow': 'auto'
															});
															
														}

													};

												}

											}

											$.fancybox.showActivity();

											if (default_autodimension == false) {
												$
														.fancybox( {
															'onComplete' : default_oncomplete,
															'onStart' : default_onstart,
															'onClosed' : default_onclose,
															'padding' : 0,
															'autoScale' : default_autoscale,
															'transitionIn' : 'fade',
															'scrolling' : 'no',
															'width' : Number(real_width),
															'height' : Number(real_height),
															'autoDimensions' : default_autodimension,
															'transitionOut' : 'none',
															'type' : 'ajax',
															'href' : this.href

														});
											} else {

												$
														.fancybox( {
															'onComplete' : default_oncomplete,
															'onStart' : default_onstart,
															'onClosed' : default_onclose,
															'padding' : 0,
															'autoScale' : default_autoscale,
															'transitionIn' : 'fade',
															'scrolling' : 'no',
															'autoDimensions' : default_autodimension,
															'transitionOut' : 'none',
															'type' : 'ajax',
															'href' : this.href
															
															
															
															
															
															

														});

											}

											// lightbox_details

											return false;

										});
						/**
						 * lightbox_belt: mit belt und wenn scrollbars, dann
						 * sind die unter dem belt
						 */
						$("a.lightbox_extra")
								.click(
										function() {
 
											var default_width = 805;
											var default_height = 600;
											var default_autoscale = false;
											var default_autodimension = true;
											var default_oncomplete = function() {
											};
											var default_onclose = function() {
												$("head").children(":last")
														.remove();
														oVar['scrollTo'] ="";
											};
											var default_onstart = function() {

												$("head").append("<link>");
												var css = $("head").children(
														":last");
												css
														.attr( {
															rel : "stylesheet",
															type : "text/css",
															href : "/_assets_es/module/lightbox/setting_lightbox_extra.css"
														});

											};

											// scrollen: nach parameter im href-hash-anchor suchen
											if(this.href.indexOf('__') >= 0) {
												
											var findanchor = this.href.split('__');
										
											var findtype = findanchor[0];
											var findelement = findanchor[1];
											
											oVar['scrollTo'] = findelement;

											} else {
												oVar['scrollTo'] ="";
											}
											
											/* link rev="" -Parameter checken*/
											var rev = $(this).attr("rev");

											var real_width = default_width;
											var real_height = default_height;

											if (rev && rev !== "") {
												var m = {};

												//		
												var revmatch = {
													width : /(?:width:)([0-9]+)/i,
													height : /(?:height:)([0-9]+)/i,
													scrollbar : /(?:scrollbar:)([0-9]+)/i
												};

												$.each(revmatch,
														function(i, v) {
															m[i] = v.exec(rev);
														});
												if (m.width) {
													real_width = m.width[1];
													default_autoscale = false;
													default_autodimension = false;
												}
												if (m.height) {
													real_height = m.height[1];
													default_autoscale = false;
													default_autodimension = false;

												}
												if (m.scrollbar) {
													default_oncomplete = function() {
														var scrollbar_height = Number(real_height);
	                                       
														
														if ($('#lb_cnt_text').hasClass("pad") == true) {
															scrollbar_height = scrollbar_height - 20;
														}
														
														
														
														var scrollbar_reduce = 0;
														var lb_scrollto = oVar['scrollTo'];
														
														
														if ($('#lb_cnt_belt').length == 1) {
															scrollbar_reduce = $(
																	'#lb_cnt_belt')
																	.height();
														}

														scrollbar_height = scrollbar_height
																- scrollbar_reduce;
															
														// scrollen: wenn anker vorhanden und scrollziel-parameter da ist		
														if ((oVar['scrollTo'] != "") && $("#" + lb_scrollto).length > 0) {
															$('#lb_cnt_text').css({
																'height': scrollbar_height,
																'overflow': 'auto'
															}).scrollTo($("#" + lb_scrollto), lb_scrollspeed);
														} else { // nicht scrollen:	
															$('#lb_cnt_text').css({
																'height': scrollbar_height,
																'overflow': 'auto'
															});
														}
														

													};

												}

											}

											$.fancybox.showActivity();
											$
													.fancybox( {
														'onComplete' : default_oncomplete,
														'onStart' : default_onstart,
														'onClosed' : default_onclose,
														'padding' : 0,
														'autoScale' : default_autoscale,
														'transitionIn' : 'fade',
														'scrolling' : 'no',
														'width' : Number(real_width),
														'height' : Number(real_height),

														'autoDimensions' : default_autodimension,
														'transitionOut' : 'none',
														'type' : 'ajax',
														'href' : this.href

													}); // lightbox_details

											return false;

										});

						/**
						 * lightbox_blank: default ohne padding
						 */
						$("a.lightbox_blank")
								.click(
										function() {
											var default_width = 805;
											var default_height = 600;
											var default_typ = 'ajax';
											var default_autoscale = false;
											var default_autodimension = true;
											var default_oncomplete = function() {
											};
											var default_onclose = function() {
												$("head").children(":last")
														.remove();
														oVar['scrollTo'] ="";
											};
											var default_onstart = function() {

												$("head").append("<link>");
												var css = $("head").children(
														":last");
												css
														.attr( {
															rel : "stylesheet",
															type : "text/css",
															href : "/_assets_es/module/lightbox/setting_lightbox_blank.css"
														});

											};

											// scrollen: nach parameter im href-hash-anchor suchen
											if(this.href.indexOf('__') >= 0) {
											//console.log("hat anchor");
												
											var findanchor = this.href.split('__');
										
											var findtype = findanchor[0];
											var findelement = findanchor[1];
											
											oVar['scrollTo'] = findelement;

											} else {
												oVar['scrollTo'] ="";
											}
											
											/* link rev="" -Parameter checken*/
											var rev = $(this).attr("rev");

											var real_width = default_width;
											var real_height = default_height;


											if (rev && rev !== "") {
												var m = {};

												//		
												var revmatch = {
													width : /(?:width:)([0-9]+)/i,
													height : /(?:height:)([0-9]+)/i,
													iframe : /(?:height:)([0-9]+)/i,
													scrollbar : /(?:scrollbar:)([0-9]+)/i
												};

												$.each(revmatch,
														function(i, v) {
															m[i] = v.exec(rev);
														});
												if (m.width) {
													real_width = m.width[1];
													default_autoscale = false;
													default_autodimension = false;

												}
												if (m.height) {
													real_height = m.height[1];
													default_autoscale = false;
													default_autodimension = false;

												}
												if (m.scrollbar) {

													default_oncomplete = function() {
														
														var scrollbar_height = Number(real_height);
														var lb_scrollto = oVar['scrollTo'];
														
														// scrollbar reduzieren
														if ($('#lb_belt').length > 0) {
															var scrollbar_reduce = $(
																	'#lb_belt')
																	.height();
															scrollbar_height = scrollbar_height
																	- scrollbar_reduce;
														}
														
														// scrollen: wenn anker vorhanden und scrollziel-parameter da ist	
														if((lb_scrollto != "") && $("#" + lb_scrollto).length > 0) {
														$('#lb_cnt')
																.css(
																		{
																			'height' : scrollbar_height,
																			'overflow' : 'auto'
																		}).scrollTo($("#"+ lb_scrollto), lb_scrollspeed);
														
														} else { // nicht scrollen
														
															$('#lb_cnt')
															.css(
																	{
																		'height' : scrollbar_height,
																		'overflow' : 'auto'
																	});
													
															
														}
														
														
													};

												}

											}
											$.fancybox.showActivity();
											$
													.fancybox( {
														'onComplete' : default_oncomplete,
														'onStart' : default_onstart,
														'onClosed' : default_onclose,
														'padding' : 0,
														'autoScale' : default_autoscale,
														'transitionIn' : 'fade',
														'scrolling' : 'no',
														'width' : Number(real_width),
														'height' : Number(real_height),

														'autoDimensions' : default_autodimension,
														'transitionOut' : 'none',
														'type' : 'ajax',
														'href' : this.href

													}); // lightbox_details

											return false;

										});

					
						
						/**
						 * lightbox_iframe: iframe ohne padding
						 */

						$("a.lightbox_iframe").click(function() {

							var default_width = 805;
							var default_height = 600;
							var default_typ = 'iframe';
							var default_autoscale = false;
							var default_scrolling = "no";
							var default_autodimension = true;
							var default_oncomplete = function() {
							};
							var default_onclose = function() {
							}; 
							var default_onstart = function() {
							};   

							var rev = $(this).attr("rev");

							var real_width = default_width;
							var real_height = default_height;

							if (rev && rev !== "") {
								var m = {};

								//		
								var revmatch = {
									width : /(?:width:)([0-9]+)/i,
									height : /(?:height:)([0-9]+)/i,
									scrollbar : /(?:scrollbar:)([0-9]+)/i,
									preloader : /(?:preloader:)([0-9]+)/i
								};

								$.each(revmatch, function(i, v) {
									m[i] = v.exec(rev);
								});
								if (m.width) {
									real_width = m.width[1];
									default_autoscale = false;
									default_autodimension = false;

								}
								if (m.height) {
									real_height = m.height[1];
									default_autoscale = false;
									default_autodimension = false;

								}
								if (m.scrollbar) {
									default_scrolling = "auto";
								}
								if (m.preloader) {
									var default_onstart = function() {
								// "loading"-Indikator f�r Iframe-Content der ewig braucht um vollstaendig geladen zu sein 
									$("#fancybox-content")
															.css(
																	{
												"background-image" : "url('/_assets_es/module/lightbox/img/ani_loading02.gif')",
												"background-position":"center center",
												"background-repeat":"no-repeat"				
								});
								
							}; 
							
							var default_onclose = function() {
								// "loading"-Indikator f�r Iframe-Content entfernen
										$("#fancybox-content")
															.css(
																	{
																		'background-image' : 'none',
																		'background-color' : '#EEEFF4'
																	});
							}; 
							  
								}
							
							}

							$.fancybox( {
								'onComplete' : default_oncomplete,
								'onStart' : default_onstart,
								'onClosed' : default_onclose,
								'padding' : 0,
								'autoScale' : default_autoscale,
								'transitionIn' : 'fade',
								'scrolling' : default_scrolling,
								'width' : Number(real_width),
								'height' : Number(real_height),
								'autoDimensions' : default_autodimension,
								'transitionOut' : 'none',
								'type' : default_typ,
								'href' : this.href
							}); // lightbox_details

							return false;

						});

						/**
						 * start anchorcheck
						 */
						// anchor als lightbox-trigger verwenden
						// automatisches starten einer lightbox ueber #anchor im url-path
						// mehrere typen ueber syntax getrennt moeglich. zwei underscores
						// __ trennen: type__pathtofile
						// beispiel test.html#img__/testbilder/testbild.jpg
						// alles nur wenn ein anchor mit zwei underscores vorhanden ist
						if ((oVar['anchor'])
								&& (oVar['anchor'].indexOf("__") != -1)) {

							// vor den underscores steht der dateityp, dahinter
							// der name zum aufrufen

							var findanchor = oVar['anchor'].split('__');
							var findtype = findanchor[0];
							var findelement = findanchor[1];

							switch (findtype) {
							/**
							 * Bilder automatisch in die Lightbox starten
							 */
							case "img":

								$("a[href$='" + findelement + "']").trigger(
										'click');
								break;
							case "src":
							

								break;
								
								/**
							 * Lightboxaufruf für indexierte Detailsseiten die keine Rahmentemplates haben.
							 */	
							case "href":
							$("a[href$='" + findelement + "']").trigger('click');
								break;
								
								
							case "id":

								var triggerthis = "a#" + findelement;

								$(triggerthis).trigger('click');
								break;
							case "class":

								break;
							/**
							 * Ein Link wird gesucht mit einer ID, geklickt, und dann wenn alles da ist, an eine bestimmte Stelle gescrollt :-)
							 */
								case "scrollto":

								var lb_scrollLightbox = findanchor[1].split('|');
								var lb_idtrigger = lb_scrollLightbox[0];
								var lb_scrollto = lb_scrollLightbox[1];
								oVar['scrollTo'] = lb_scrollto;
								var triggerthis = "a#" + lb_scrollLightbox[0];
								$(triggerthis).trigger('click');

								break;
							case "":

								/**
								 * Ohne "type" angabe, wird defaultmaessig ein Link gesucht mit einer ID, und geklickt
								 */
								var triggerthis = "a#" + findelement;
								$(triggerthis).trigger('click');

								break;

							default:

							}

						}

						// end anchorcheck

					}// if($.fancybox)

				});

