if (typeof(window.lltools) === 'undefined'){
	window.lltools = {};
}

// >> i18n
	$.lang('searchPhraseProposalTitle', {
		'de': 'Unsere Vorschl&auml;ge f&uuml;r Sie...',
		'en': 'Our proposals for you...'
	});
	$.lang('productProposalTitle', {
		'de': 'Ihre Suchergebnisse...',
		'en': 'Your Search Results...'
	});
	$.lang('searchFacetPanelItemBack', {
		'de': '&#8595; Alle anzeigen',
		'en': '&#8595; Show all'
	});
	$.lang('searchSelectFacetPanelItemBack', {
		'de': 'Alle anzeigen',
		'en': 'Show all'
	});
	$.lang('searchInfoPrompt1', {
		'de': 'Seite',
		'en': 'Page'
	});
	$.lang('searchInfoPrompt2', {
		'de': 'von',
		'en': 'of'
	});
// <<

// >> Override Solr embedding kit and search result list and facet elements.
	llsolr.SolrProductProposalsItemStandard = $.extend(
		$.clone(llsolr.SolrProductProposalsItem),
		{
			create: function(opts){
				//var o = llsolr.SolrProductProposalsItem.create.call(this);
				this.siteMapper = {
					plmit: 'plm-it-business.de',
					scope: 'scope-online.de',
					labo: 'labo.de',
					handling: 'handling.de',
					km: 'kunststoff-magazin.de',
					mta: 'mta-dialog.de'
				};
				return this;
			},
			handleDate: function(date, mode){
				var d, parts;
				if (typeof date !== 'undefined'){
					parts = date.split('T')[0].split('-');
					if (mode === 'long'){
						return [parts[2],parts[1],parts[0]].join('.');
					}
					return parts[0];
				}
				return '';
			},
			makeItemLayout: function(){
				var d = this.data, lay, img = null, desc, self = this, addText, date, headline = '';
				addTextPreparer = {
					article: {
						getDate: function(date){
							return self.handleDate(date, 'long');
						},
						getAddText: function(itemData){
							if (itemData[itemData.site + '_cat_s_m_s']){
								return ', Kategorie: ' + Utils.clipStringAfter(itemData[itemData.site + '_cat_s_m_s'].join(', '), 55, {
									decorator: '...'
								});
							}
							return '';
						}
					},
					labtips: {
						getDate: function(date){
							return self.handleDate(date, 'short');
						},
						getAddText: function(itemData){
							return ', Multimedia';
						}
					},
					companyProfile: {
						getDate: function(date){
							return self.handleDate(date, 'short');
						},
						getAddText: function(itemData){
							return ', Firmenprofil';
						}
					},
					marketOverview: {
						getDate: function(date){
							return self.handleDate(date, 'short');
						},
						getAddText: function(itemData){
							if (itemData.category_s_m_s){
								return ', Kategorie: ' + Utils.clipStringAfter(itemData.category_s_m_s.join(', '), 40, {
									decorator: '...'
								}) + ', Marktübersichten';
							}else{
								return ', Marktübersichten';
							}
						}
					},
					news: {
						getDate: function(date){
							return self.handleDate(date, 'long');
						},
						getAddText: function(itemData){
							return '';
						}
					},
					multimedia: {
						getDate: function(date){
							return self.handleDate(date, 'long');
						},
						getAddText: function(itemData){
							return '';
						}
					},
					interview: {
						getDate: function(date){
							return self.handleDate(date, 'short');
						},
						getAddText: function(itemData){
							return ', Interview';
						}
					}
				};
				if (d.imagelink){
					iattrs = {
						src: d.imagelink,
						border: 0
					};
					img = $('<img/>').attr(iattrs);
				}
				if (d.description_s_tg){
					if (typeof $('<p>' + d.description_s_tg + '</p>').text() === 'string'){
						desc = $('<p>' + d.description_s_tg + '</p>').text();
					}else{
						desc = d.description_s_tg;
					}
				}else{
					desc = '';
				}


				if (d.site && typeof(d[d.site + '_cat_s_m_s']) !== 'undefined'){
					addText = Utils.clipStringAfter(d[d.site + '_cat_s_m_s'].join(', '), 55, {
						decorator: '...'
					});
				}else{
					addText = 'k/a';
				}
				if (d.title_s_tg){
					headline = '<h1 class="headline">' + d.title_s_tg + '</h1>';
				}

				lay = $(
					'<div class="proposalItem productProposalItem">' +
						'<div class="proposal">' +
							'<div class="siteAndDate">' +
								'<span class="date">' + addTextPreparer[d.type].getDate(d.udate_s_tdt) + '</span>, ' +
								'<span class="site">Website: ' + this.siteMapper[d.site] + addTextPreparer[d.type].getAddText(d) + '</span>' +
							'</div>' +
							'<div class="image"></div>' +
							'<div class="textOuter">' +
							headline +
							'<p class="desc">' + desc + '</p>' +
							'</div>' +
							'<div class="floatTerm"></div>' +
						'</div>' +
					'</div>'
				);
				if (img){
					lay.find('.image').append(img).css({
						paddingRight: 6
					}).end().find('.textOuter').css({
						width: 370
					});
				}
				lay.hover(
					function(){
						$(this).addClass('productProposalItemHover');
					},
					function(){
						$(this).removeClass('productProposalItemHover');
					}
				);
				lay.bind('click', function(){
					var sessId = '', href = d.link, params = Utils.getUrlParamsAsJson(d.link);
					if (params){
						href = d.link.substring(0, d.link.indexOf('?'));
					}
					if (Utils.getXist4cSessionId()){
						sessId = Utils.getXist4cSessionId({
							returnWithPrefix: true
						});
					}
					if (href.indexOf('/') === 0 || href.search(window.location.host) > -1){
						window.location.href = href + sessId + (Utils.getUrlParamsFromJson(params) || '');
					}else{
						window.open(href, 'ExternalPage');
					}
				});
				return lay;
			}
		}
	);

	llsolr.SolrProductFacetDescendingDatePanel = $.extend(
		$.clone(llsolr.SolrProductFacetPanel),
		{
			create: function(){
				return llsolr.SolrProductFacetPanel.create.call(this);
			},
			appendPanelItems: function(panel){
				var self = this, domel, toSortItems = this.items, hasBack = false;
				if (toSortItems.length){
					if (toSortItems[0].id < 0){
						toSortItems = toSortItems.slice(1);
						hasBack = true;
					}
					toSortItems.sort(function(a, b){
						return  b.title - a.title;
					});
					if (hasBack){
						toSortItems.unshift(this.items[0]);
					}
				}
				$(this.items).each(function(i){
					domel = this.make();
					panel.append(domel);
					this.domel = domel;
				});
			}
		}
	);

	llsolr.SolrProductFacetPanelItem_Sites = $.extend(
		$.clone(llsolr.SolrProductFacetPanelItem),
		{
			create: function(){
				var o = llsolr.SolrProductFacetPanelItem.create.call(this);
				o.siteMapper = {
					labo: 'labo.de',
					scope: 'scope-online.de',
					handling: 'handling.de',
					km: 'kunststoff-magazin.de',
					plmit: 'plm-it-business.de'
				};
				return o;
			},
			makeItemLayout: function(){
				var lay, topParent = this.parent.parent.parent, self = this, facetParams, realParams,
				facetQueryKeys = this.parent.parent.getFacetQueryPartsKeyList();
				if (typeof this.siteMapper[this.title] === 'undefined'){
					lay = $('<div></div>');
				}else{
					lay = $(
						'<a href="#" id="' + this.domId + '" class="facetItem">' +
							'<span class="viewport">' +
								'<span class="count">(' + this.count + ')</span>' +
							'</span>' +
							'<span class="title">' + this.siteMapper[this.title] + '</span>' +
						'</a>'
					);
					lay.bind('click', function(e){
						e.preventDefault();
						e.stopPropagation();
						facetParams = {};
						facetParams[self.attributeName] = self.realTitle;
						facetParams = topParent.facetParamsAsJson(facetParams);
						realParams = self.buildFacetQueryParams(facetParams, facetQueryKeys);
						realParams.start = 0;
						realParams = topParent.getQueryParams('productProposals', self.phrase, realParams);
						topParent.handleProductProposals(self.phrase, realParams);
					});
				}
				return lay;
			}
		}
	);
// <<


// >> Category Teaser
	llsolr.CategoryTeaser = $.extend(
		$.clone(LLObject),
		{
			create: function(opts){
				var o = LLObject.create.call(this);
				o.items = [];
				o.defaults = {
					target: [],
					selectedItemIndex: 0,
					itemClickCallback: function(parent, e){ // "this" is the item object, "parent" the teaser object.
						return this;
					}
				};
				if(Utils.isObject(opts)){
					$.extend(o.defaults, opts);
				}
				return o;
			},
			makeLayout: function(){
				var lay = $(
					'<div class="llsolr-facetPanel" id="llsolr-categoryTeaser"><div class="facetPanelTitle">' +
						'<span>Suche nach Beitragstyp:</span>' +
					'</div>' +
					'<div class="items"></div>'
				);
				return lay;
			},
			each: function(cb){
				var retVal, k;
				for (k in this.items){
					retVal = cb.call(this.items[k], parseInt(k, 10));
					if (retVal === false){
						break;
					}
				}
			},
			addItems: function(item){
				var i;
				for (i = 0; i < arguments.length; i+=1){
					if (arguments[i].instanceOf(llsolr.CategoryTeaserItem)){
						arguments[i].parent = this;
						this.items.push(arguments[i]);
					}
				}
			},
			make: function(){
				var lay = this.makeLayout(), target = lay.find('.items').empty(),k;
				for (k in this.items){
					if (parseInt(k, 10) == this.defaults.selectedItemIndex){
						this.items[k].select();
					}
					this.items[k].make(target);
				}
				this.defaults.target.empty().append(lay);
				for (k in this.items){
					if (this.items[k].selected){
						this.items[k].domel.trigger('click');
						break;
					}
				}
			}
		}
	);

	llsolr.CategoryTeaserItem = $.extend(
		$.clone(LLObject),
		{
			create: function(title, selected){
				var o = LLObject.create.call(this);
				o.title = title || 'Unknown Title';
				o.parent = null;
				o.domel = [];
				o.selected = selected || false;
				return o;
			},
			makeLayout: function(){
				var cb, self = this, lay = $(
					'<a class="facetItem categoryTeaserItem" href="#">' +
						'<span class="title">' + this.title + '</span>' +
					'</a>'
				);
				if (this.selected){
					lay.addClass('categoryTeaserItem_here');
				}
				if (this.parent){
					cb = this.parent.defaults.itemClickCallback;
					if (typeof cb === 'function'){
						lay.bind('click', function(e){
							e.preventDefault();
							e.stopPropagation();
							cb.call(this, self.parent, e);
						});
					}
				}
				return lay;
			},
			select: function(){
				this.domel.addClass('categoryTeaserItem_here');
				this.selected = true;
			},
			deselect: function(){
				this.domel.removeClass('categoryTeaserItem_here');
				this.selected = false;
			},
			make: function(target){
				var lay = this.makeLayout();
				this.domel = lay;
				target.append(lay);
			}
		}
	);
// <<


// >> Combined database search
	CombinedDatabaseSearch = $.extend(
		$.clone(LLObject),
		{
			create: function(opts){
				var o = LLObject.create.call(this);
				o.overviewLayerTarget = [];
				o.detailLayerTarget = [];
				o.overviewList = null;
				o.detailList = null;
				o.detailId = null;
				o.defaults = {
					target: [],
					pagerTopTarget: [],
					pagerBottomTarget: [],
					portalIndentifier: 'unknown',
					overviewHandler: 'fdb_step1',
					detailHandler: 'fdb_step2',
					maxOverviewItems: 25,
					maxDetailItems: 25,
					useOverviewListClass: CDS_OverviewList,
					useDetailListClass: CDS_DetailList,
					useOverviewListItemClass: CDS_OverviewListItem,
					useDetailListItemClass: CDS_DetailListItem
				};
				if(Utils.isObject(opts)){
					$.extend(o.defaults, opts);
				}
				o.makeBaseShells();
				return o;
			},
			init: function(){
				this.handleOverview();
			},
			makeBaseShells: function(){
				var target = this.defaults.target, lay = $(
					'<div class="combineddatabasesearch">' +
						'<div id="combineddatabasesearch-overview">' +
							'<h2 class="combineddatabasesearch-searchInfo-overview">Produkte zu Ihrer Suche "<span></span>"</h2>' +
							'<div id="combineddatabasesearch-overview-pager1_0" class="llsolr-pager"></div>' +
							'<div class="llsolr-productSearchProposals">' +
								'<div class="title">' +
									'<div class="viewport">' +
										'<div class="searchInfo">' +
											'<div class="outer">' +
												'<span class="prompt">Seite</span>' +
												'<span class="current">1</span>' +
												'<span class="prompt">von</span>' +
												'<span class="overall">1</span>' +
											'</div>' +
										'</div>' +
									'</div>' +
									'<div class="titleInner">Ihre Suchergebnisse...</div>' +
								'</div>' +
							'</div>' +
							'<div class="premiumListContent"></div>' +
							'<div class="listContent"></div>' +
							'<div id="combineddatabasesearch-overview-pager2_0" class="llsolr-pager"></div>' +
						'</div>' +
						'<div id="combineddatabasesearch-detail">' +
							'<div class="llsolr-productSearchProposals">' +
							'<a class="llsolr-productSearchProposals-backlink" href="#"><< Zurück</a>' +
							'<h2 class="combineddatabasesearch-searchInfo-detail">Firmen zu Ihrer Suche "<span></span>"</h2>' +
							'<div class="llSolr-sorting-filter combineddatabasesearch-sorting-filter">' +
								'<div class="floatContainer floatContainer-left">' +
									'<h3>Sortieren nach:</h3>' +
								'</div>' +
								'<div class="floatContainer floatContainer-right">' +
										'<a href="#" class="button-beste-ergebnisse button-beste-ergebnisse-here">&gt; Beste Ergebnisse</a>' +
										'<a href="#" class="button-alphabetisch">&gt; Alphabetisch</a>' +
								'</div>' +
								'<div class="floatTerm"></div>' +
							'</div>' +
							'<div id="combineddatabasesearch-detail-pager1_0" class="llsolr-pager"></div>' +
								'<div class="title">' +
									'<div class="viewport">' +
										'<div class="searchInfo">' +
											'<div class="outer">' +
												'<span class="prompt">Seite</span>' +
												'<span class="current">1</span>' +
												'<span class="prompt">von</span>' +
												'<span class="overall">1</span>' +
											'</div>' +
										'</div>' +
									'</div>' +
									'<div class="titleInner">Ihre Suchergebnisse...</div>' +
								'</div>' +
							'</div>' +
							'<div class="listContent"></div>' +
							'<div id="combineddatabasesearch-detail-pager2_0" class="llsolr-pager"></div>' +
						'</div>' +
					'</div>'
				);
				lay.find('.llsolr-productSearchProposals-backlink').click(function(e){
					e.preventDefault();
					e.stopPropagation();
					$('#combineddatabasesearch-detail').hide();
					$('#combineddatabasesearch-overview').show();
				});
				if (target.length){
					target.empty().append(lay);
					this.overviewLayerTarget = $('.listContent', $('#combineddatabasesearch-overview'));
					this.detailLayerTarget = $('.listContent', $('#combineddatabasesearch-detail'));
				}
			},
			makePremiumHitsOuter: function(){
				var lay = $(
					'<table cellpadding="0" cellspacing="0" border="0">' +
					'</table>'
				);
				return lay;
			},
			makePremiumHitsItem: function(){
				var lay = $(
					'<tr>' +
						'<td class="img"></td>' +
						'<td class="text"></td>' +
						'<td class="card"></td>' +
					'</tr>'
				);
				return lay;
			},
			getPhrase: function(){
				var phrase;
				if (Utils.getUrlParamsAsJson() && Utils.getUrlParamsAsJson().phrase){
					return Utils.getUrlParamsAsJson().phrase;
				}
				return '*';
			},
			loadAndProcessDataForMode: function(mode, callback){
				var url, identifier = this.defaults.portalIndentifier, data = {};
				if (mode == 'overview'){
					data.ws_kennung = identifier;
					data.keyword = this.getPhrase();
					url = AjaxURLManager.getUrlWithKey(this.defaults.overviewHandler, data);
					$.getJSON(url, callback);
				}else if (mode == 'detail' || mode == 'detail-alpha'){
					data.ws_kennung = identifier;
					data.bra_id = this.detailId;
					if (mode == 'detail-alpha'){
						data.ordering = 'alpha';
					}
					url = AjaxURLManager.getUrlWithKey(this.defaults.detailHandler, data);
					$.getJSON(url, callback);
				}
			},
			handlePremiumHits: function(phits, target){
				var i, item, row, src, img, t, d, l,
				x = function(e){
					e.preventDefault();
					e.stopPropagation();
					window.location = item.link;
				};
				for (i = 0; i < phits.length; i++) {
					row = this.makePremiumHitsItem();
					if ((i + 1) < phits.length){
						row.addClass('withCutter');
					}
					item = phits[i];
					if ((img = item.image)){
						src = img.src;
						if ($.browser.msie){
							img = new Image(img.width, img.height);
							img.src = src;
						}else{
							img = $('<img src="' +  src + '" width="' + img.width + '" height="' + img.height + '"/>');
						}
						img = Utils.getRecalculatedImage({
							"image": img,
							"maxWidth": 125,
							"proportional": true
						});
						img.click(x);
						row.find('.img').append(img);
					}
					if ((t = item.title)){
						t = $('<h3>' + t + '</h3>').click(x);
						row.find('.text').append(t);
					}
					if ((d = item.description)){
						d = $('<p>' + Utils.clipStringAfter(d, 200, {"endChar": ' ', "decorator": '...'}) + '</p>').click(x);
						row.find('.text').append(d);
					}
					if ((img = item.imagelogo)){
						src = img.src;
						if ($.browser.msie){
							img = new Image(img.width, img.height);
							img.src = src;
						}else{
							img = $('<img src="' + src + '" width="' + img.width + '" height="' + img.height + '"/>');
						}
						img = Utils.getRecalculatedImage({
							"image": img,
							"maxWidth": 150,
							"proportional": true
						});
						img.click(x);
						row.find('.card').append(img);
					}
					if ((t = item.company)){
						t = $('<h3>' + t + '</h3>').click(x);
						row.find('.card').append(t);
					}
					target.append(row);
				}
			},
			handleOverview: function(){
				var target = this.overviewLayerTarget, self = this, overviewOuter = $('#combineddatabasesearch-overview');
				$('#combineddatabasesearch-detail').hide();
				overviewOuter.show();
				this.loadAndProcessDataForMode('overview', function(data, textStatus){
					var ol = self.defaults.useOverviewListClass.create(), pager1, pager2, k, item, specLinks = [], premHitsShell,
					pagerCallback, pagerData = {
						frameWidth: 10,
						callback: null
					};
					ol.offset = self.defaults.maxOverviewItems;
					if (data.premhits && data.premhits.length){
						premHitsShell = self.makePremiumHitsOuter();
						$('.premiumListContent').append(premHitsShell);
						self.handlePremiumHits(data.premhits, premHitsShell);
					}
					for (k in data.hits) {
						item = data.hits[k];
						if (item.link){
							specLinks.push([item.title, item.link]);
						}
					}
					if (specLinks.length){
						self.makeSpecialLinkPanel(specLinks);
					}
					$('.numFound_3').text('(' + data.hits.length + ')');
					if (data.hits.length) {
						$('.notFoundElement_3').hide();
						$('#combineddatabasesearch-overview').show();
						$('.combineddatabasesearch-searchInfo-overview, .combineddatabasesearch-searchInfo-detail').find('span').text(self.getPhrase());
						ol.parent = self;
						ol.target = self.overviewLayerTarget;
						ol.useItemClass = self.defaults.useOverviewListItemClass;
						ol.update(data);
						self.overviewList = ol;
						pagerCallback = function(page){
							ol.currentPage = page;
							pager1.update({
								pager:{
									currentPage: ol.currentPage,
									overall: ol.overall,
									offset: ol.offset
								}
							});
							pager2.update({
								pager:{
									currentPage: ol.currentPage,
									overall: ol.overall,
									offset: ol.offset
								}
							});
							if (ol.target.length){
								ol.update(data);
							}
							overviewOuter.find('.current').text(page);
						};
						pagerData.callback = pagerCallback;
						pager1 = PagerElement.create($.extend({target: $('#combineddatabasesearch-overview-pager1_0')}, pagerData));
						pager2 = PagerElement.create($.extend({target: $('#combineddatabasesearch-overview-pager2_0')}, pagerData));
						pager1.update({
							pager:{
								currentPage: ol.currentPage,
								overall: ol.overall,
								offset: ol.offset
							}
						});
						pager2.update({
							pager:{
								currentPage: ol.currentPage,
								overall: ol.overall,
								offset: ol.offset
							}
						});
						overviewOuter.find('.current').text(1);
						overviewOuter.find('.overall').text(Math.ceil(ol.overall / ol.offset));
					}else{
						$('#combineddatabasesearch-overview').hide();
						$('.notFoundElement_3').show();
					}
				});
			},
			handleDetail: function(mode, hideSorting){
				var target = this.detailLayerTarget, self = this, detailOuter = $('#combineddatabasesearch-detail'), sortSwitcher;
				$('#combineddatabasesearch-overview').hide();
				detailOuter.show();
				sortSwitcher = detailOuter.find('.combineddatabasesearch-sorting-filter');
				if (hideSorting){
					sortSwitcher.hide();
				}else{
					sortSwitcher.show();
					sortSwitcher.find('.button-beste-ergebnisse').unbind().click(function(e){
						e.preventDefault();
						e.stopPropagation();
						if (!$(this).hasClass('button-beste-ergebnisse-here')){
							$(this).addClass('button-beste-ergebnisse-here').next().removeClass('button-alphabetisch-here');
							self.handleDetail();
						}
					});
					sortSwitcher.find('.button-alphabetisch').unbind().click(function(e){
						e.preventDefault();
						e.stopPropagation();
						if (!$(this).hasClass('button-alphabetisch-here')){
							$(this).addClass('button-alphabetisch-here').prev().removeClass('button-beste-ergebnisse-here');
							self.handleDetail('detail-alpha');
						}
					});
				}
				this.loadAndProcessDataForMode((mode || 'detail'), function(data, textStatus){
					var dl = self.defaults.useDetailListClass.create(), pager1, pager2,
					pagerCallback, pagerData = {
						frameWidth: 10,
						callback: null
					};
					dl.offset = self.defaults.maxDetailItems;
					dl.parent = self;
					dl.target = self.detailLayerTarget;
					dl.useItemClass = self.defaults.useDetailListItemClass;
					dl.update(data);
					self.detailList = dl;
					pagerCallback = function(page){
						dl.currentPage = page;
						pager1.update({
							pager:{
								currentPage: dl.currentPage,
								overall: dl.overall,
								offset: dl.offset
							}
						});
						pager2.update({
							pager:{
								currentPage: dl.currentPage,
								overall: dl.overall,
								offset: dl.offset
							}
						});
						if (dl.target.length){
							dl.update(data);
						}
						detailOuter.find('.current').text(page);
					};
					pagerData.callback = pagerCallback;
					pager1 = PagerElement.create($.extend({target: $('#combineddatabasesearch-detail-pager1_0')}, pagerData));
					pager2 = PagerElement.create($.extend({target: $('#combineddatabasesearch-detail-pager2_0')}, pagerData));
					pager1.update({
						pager:{
							currentPage: dl.currentPage,
							overall: dl.overall,
							offset: dl.offset
						}
					});
					pager2.update({
						pager:{
							currentPage: dl.currentPage,
							overall: dl.overall,
							offset: dl.offset
						}
					});
					detailOuter.find('.current').text(1);
					detailOuter.find('.overall').text(Math.ceil(dl.overall / dl.offset));
				});
			},
			makeSpecialLinkPanel: function(items){
				var Panel = llsolr.SolrProductPanel.create(), i, k, item, realItems = [], hasItem;
				Panel.domId = 'staticPanel_001';
				Panel.title = null;
				Panel.target = $('#llsolr-facetPanels_3').empty();
				items = items.sort(function(a, b){
					return a[0] > b[0];
				});
				for (i = 0; i < items.length; i++) {
					hasItem = false;
					for (k in realItems) {
						if (items[i][0] == realItems[k].title){
							hasItem = true;
						}
					}
					if (!hasItem){
						item = llsolr.SolrProductPanelItem.create();
						item.panel = Panel;
						item.title = items[i][0];
						item.href = items[i][1];
						realItems.push(item);
					}
				}
				Panel.items = realItems;
				Panel.make();
			}
		}
	);

	CDS_OverviewList = $.extend(
		$.clone(LLObject),
		{
			create: function(){
				var o = LLObject.create.call(this);
				o.compatibleItemClass = 'CDS_OverviewListItem';
				o.parent = null;
				o.target = [];
				o.items = [];
				o.currentPage = 1;
				o.overall = 0;
				o.offset = 25;
				o.itemTarget = [];
				o.useItemClass = null;
				o.typeWrapper = {
					tpl: function(type){
						return $(
							'<div class="cds-resultWrapper cds-overviewResultWrapper cds-overviewResultWrapper-' + type + '">' +
								'<h3></h3>' +
								'<div id="cds-wrapper-overview-' + type + '"></div>' +
							'</div>'
						);
					},
					exact: function(){ // Exact
						var w = $('#cds-wrapper-overview-exact', o.parent.defaults.target);
						if (!w.length){
							w = this.tpl('exact');
							w.find('h3').html('Exakte Treffer für Ihren Suchbegriff "' + o.parent.getPhrase() + '"');
							if (o.target.length){
								o.target.append(w);
							}
						}
						o.itemTarget = $('#cds-wrapper-overview-exact', o.parent.defaults.target);
					},
					rec: function(){ // Recommended
						var w = $('#cds-wrapper-overview-rec', o.parent.defaults.target);
						if (!w.length){
							w = this.tpl('rec');
							w.find('h3').html('Empfohlene Treffer zu Ihrem Suchbegriff "' + o.parent.getPhrase() + '"');
							if (o.target.length){
								o.target.append(w);
							}
						}
						o.itemTarget = $('#cds-wrapper-overview-rec', o.parent.defaults.target);
					},
					rem: function(){ // Remaining
						var w = $('#cds-wrapper-overview-rem', o.parent.defaults.target);
						if (!w.length){
							w = this.tpl('rem');
							w.find('h3').html('Treffer zu Ihrem Suchbegriff "' + o.parent.getPhrase() + '"');
							// w.find('h3').remove();
							if (o.target.length){
								o.target.append(w);
							}
						}
						o.itemTarget = $('#cds-wrapper-overview-rem', o.parent.defaults.target);
					}
				};
				return o;
			},
			update: function(data){
				var k, item, start = this.offset * (this.currentPage -1), end = this.offset * this.currentPage,
				pagedData;
				if (this.target.length){
					this.target.empty();
				}
				this.overall = data.hits.length;
				if (this.useItemClass.instanceOf(window[this.compatibleItemClass])){
					if (end > data.hits.length){
						end = data.hits.length;
					}
					pagedData = data.hits.slice(start, end);
					for (k in pagedData){
						this.typeWrapper[pagedData[k].type]();
						item = this.useItemClass.create();
						item.parent = this;
						item.target = this.itemTarget;
						item.data = pagedData[k];
						item.make();
						this.items.push(item);
					}
				}
			}
		}
	);

	CDS_OverviewListItem = $.extend(
		$.clone(LLObject),
		{
			create: function(){
				var o = LLObject.create.call(this);
				o.parent = null;
				o.target = [];
				o.data = null;
				return o;
			},
			makeLayout: function(){
				var d = this.data, self = this, lay, st;
				st = d.title_super ? '<div class="title-super">' + d.title_super + '</div>' : '';
				lay = $(
					'<div>' +
						'<a href="#" class="cds-listitem cds-overviewlistitem combinedPortItem viewport">' +
							'<div class="count">' + (d.count > 1 ? d.count + '&nbsp;Firmen': d.count + '&nbsp;Firma') + '</div>' +
							'<span class="title">' + d.title + '</span>' +
						'</a>' +
						st +
					'</div>'
				);
				lay.bind('click', function(e){
					var hideSorting, mode;
					e.preventDefault();
					e.stopPropagation();
					self.parent.parent.detailId = self.data.id;
					if ($(this).parents('#cds-wrapper-overview-rem').length){
						self.parent.parent.handleDetail('detail', hideSorting = true);
					}else{
						self.parent.parent.handleDetail();
					}
				});
				return lay;
			},
			make: function(){
				var lay = this.makeLayout();
				this.target.append(lay);
			}
		}
	);


	CDS_DetailList = $.extend(
		$.clone(CDS_OverviewList),
		{
			create: function(){
				var o = CDS_OverviewList.create.call(this);
				o.compatibleItemClass = 'CDS_DetailListItem';
				o.itemTarget = [];
				o.typeWrapper = {
					tpl: function(type){
						return $(
							'<div class="cds-resultWrapper cds-detailResultWrapper cds-detailResultWrapper-' + type + '">' +
								'<h3></h3>' +
								'<div id="cds-wrapper-detail-' + type + '"></div>' +
							'</div>'
						);
					},
					exact: function(){
						var w = $('#cds-wrapper-detail-exact');
						if (!w.length){
							w = this.tpl('exact');
							w.find('h3').html('Exakte Treffer für Ihren Suchbegriff "' + o.parent.getPhrase() + '"');
							o.target.append(w);
						}
						o.itemTarget = $('#cds-wrapper-detail-exact');
					},
					rec: function(){
						var w = $('#cds-wrapper-detail-rec');
						if (!w.length){
							w = this.tpl('rec');
							w.find('h3').html('Empfohlene Treffer zu Ihrem Suchbegriff "' + o.parent.getPhrase() + '"');
							o.target.append(w);
						}
						o.itemTarget = $('#cds-wrapper-detail-rec');
					},
					rem: function(){
						var w = $('#cds-wrapper-detail-rem');
						if (!w.length){
							w = this.tpl('rem');
							w.find('h3').html('Treffer zu Ihrem Suchbegriff "' + o.parent.getPhrase() + '"');
							o.target.append(w);
						}
						o.itemTarget = $('#cds-wrapper-detail-rem');
					},
					alpha: function(){
						var w = $('#cds-wrapper-detail-alpha');
						if (!w.length){
							w = this.tpl('alpha');
							w.find('h3').text('Firmen alphabetisch sortiert');
							o.target.append(w);
						}
						o.itemTarget = $('#cds-wrapper-detail-alpha');
					}
				};
				return o;
			}
		}
	);

	CDS_DetailListItem = $.extend(
		$.clone(CDS_OverviewListItem),
		{
			create: function(){
				var o = CDS_OverviewListItem.create.call(this);
				return o;
			},
			makeLayout: function(){
				var d = this.data, lay = $(
					'<div class="cds-listitem cds-overviewListitem cds-detailListitem viewport">' +
						'<div class="count">' + d.comptype.join(', ') + '</div>' +
						'<span class="infoOuter">' +
							'<span class="title">' + d.title + '</span>' +
							'<span class="address">' + d.zipcode + '&nbsp;' + d.city + '</span><br/>' +
							'<a href="' + d.href + '" class="infolink">&raquo; Firmeninfos</a>' +
						'</span>' +
					'</div>'
				);
				return lay;
			}
		}
	);
// <<


// >> Combined database search for companies
	CombinedDatabaseSearch_Companies = $.extend(
		$.clone(CombinedDatabaseSearch),
		{
			create: function(opts){
				var o = CombinedDatabaseSearch.create.call(this, opts);
				o.overviewList = null;
				o.defaults = {
					target: [],
					pagerTopTarget: [],
					pagerBottomTarget: [],
					portalIndentifier: 'unknown',
					overviewHandler: 'fdb_companies',
					maxOverviewItems: 25,
					useOverviewListClass: CDS_OverviewList,
					useOverviewListItemClass: CDS_OverviewListItem_Companies
				};
				if(Utils.isObject(opts)){
					$.extend(o.defaults, opts);
				}
				o.makeBaseShells();
				return o;
			},
			makeBaseShells: function(){
				var target = this.defaults.target, lay = $(
					'<div class="combineddatabasesearch-companies">' +
						'<div id="combineddatabasesearch-companies-overview">' +
							'<h2 class="combineddatabasesearch-companies-searchInfo-overview">Treffer im Firmenname zu Ihrer Suche "<span></span>"</h2>' +
							'<div id="combineddatabasesearch-companies-overview-pager1_0" class="llsolr-pager"></div>' +
							'<div class="llsolr-productSearchProposals">' +
								'<div class="title">' +
									'<div class="viewport">' +
										'<div class="searchInfo">' +
											'<div class="outer">' +
												'<span class="prompt">Seite</span>' +
												'<span class="current">1</span>' +
												'<span class="prompt">von</span>' +
												'<span class="overall">1</span>' +
											'</div>' +
										'</div>' +
									'</div>' +
									'<div class="titleInner">Ihre Suchergebnisse...</div>' +
								'</div>' +
							'</div>' +
							'<div class="listContent"></div>' +
							'<div id="combineddatabasesearch-companies-overview-pager2_0" class="llsolr-pager"></div>' +
						'</div>' +
					'</div>'
				);
				if (target.length){
					target.empty().append(lay);
					this.overviewLayerTarget = lay.find('.listContent', $('#combineddatabasesearch-companies-overview'));
				}
			},
			handleOverview: function(){
				var target = this.overviewLayerTarget, self = this, overviewOuter = $('#combineddatabasesearch-companies-overview');
				overviewOuter.show();
				this.loadAndProcessDataForMode('overview', function(data, textStatus){
					var ol = self.defaults.useOverviewListClass.create(), pager1, pager2,
					pagerCallback, pagerData = {
						frameWidth: 10,
						callback: null
					};
					ol.offset = self.defaults.maxOverviewItems;
					$('.numFound_4').text('(' + data.hits.length + ')');
					if (data.hits.length) {
						$('.notFoundElement_4').hide();
						$('#combineddatabasesearch-companies-overview').show();
						$('.combineddatabasesearch-companies-searchInfo-overview').find('span').text(self.getPhrase());
						ol.parent = self;
						ol.target = self.overviewLayerTarget;
						ol.useItemClass = self.defaults.useOverviewListItemClass;
						ol.update(data);
						self.overviewList = ol;
						pagerCallback = function(page){
							ol.currentPage = page;
							pager1.update({
								pager:{
									currentPage: ol.currentPage,
									overall: ol.overall,
									offset: ol.offset
								}
							});
							pager2.update({
								pager:{
									currentPage: ol.currentPage,
									overall: ol.overall,
									offset: ol.offset
								}
							});
							ol.update(data);
							overviewOuter.find('.current').text(page);
						};
						pagerData.callback = pagerCallback;
						pager1 = PagerElement.create($.extend({target: $('#combineddatabasesearch-companies-overview-pager1_0')}, pagerData));
						pager2 = PagerElement.create($.extend({target: $('#combineddatabasesearch-companies-overview-pager2_0')}, pagerData));
						pager1.update({
							pager:{
								currentPage: ol.currentPage,
								overall: ol.overall,
								offset: ol.offset
							}
						});
						pager2.update({
							pager:{
								currentPage: ol.currentPage,
								overall: ol.overall,
								offset: ol.offset
							}
						});
						overviewOuter.find('.current').text(1);
						overviewOuter.find('.overall').text(Math.ceil(ol.overall / ol.offset));
					}else{
						$('#combineddatabasesearch-companies-overview').hide();
						$('.notFoundElement_4').show();
					}
				});
			}
		}
	);

	CDS_OverviewListItem_Companies = $.extend(
		$.clone(CDS_OverviewListItem),
		{
			create: function(){
				return CDS_OverviewListItem.create.call(this);
			},
			makeLayout: function(){
				var d = this.data, lay = $(
					'<a href="' + d.href + '" class="cds-listitem cds-overviewlistitem combinedPortItem viewport">' +
						'<span class="title">' + d.title + '</span>' +
					'</a>'
				);
				return lay;
			}
		}
	);
// <<


// >> SolrSearchEmbeddingKitsGarden configs and other runtime processes.
	$(function(){
		var SolrEKGConfig, SolrFacets, notFound, handleSortingFilter,
		SolrFacets_0, SolrFacets_1, SolrFacets_2, SolrFacets_3, SolrFacets_4,
		getSearchOuterTarget,
		persStaticParams = ['fq=site:("labo","scope","handling","km","plmit")'],
		extSearchPhraseParams = [
			"...in Allgemein",
			[
				'"article"',
				'"labtips"',
				'"companyProfile"',
				'"marketOverview"',
				'"news"',
				'"mtaprofarticle"',
				'"mtarecent"',
				'"dvta"',
				'"multimedia"',
				'"interview"'
			],
			"...in Firmen",
			[
				'"fdb_company"'
			],
			"...in Produkte",
			[
				'"fdb_product"'
			]
		],
		prepareResultInfo = function(){
			var ri = $('.ui-tabs-panel').eq(3).find('.llsolr-productSearchProposals');
			$('#combineddatabasesearch-overview-pager1_0').hide();
			ri.find('.titleInner').hide().end().find('.searchInfo').css({
				"top": -25
			}).end().find('.title').css({
				"padding": 0,
				"borderBottom": 'none'
			});
		},
		prepareBusinessDetailBackLink = function(){
			if (XIST4C_GLOBALS.meta.coID == 11141) {
				$('.topAddContrContainer .backIcon a').click(function(e){
					e.preventDefault();
					e.stopPropagation();
					history.back();
				});
			}
		},
		handleNumFound = function(numFound, idx, phrase){
			$('.numFound_' + idx).text('(' + numFound + ')');
			if (!numFound){
				$('#llsolr-pager1_' + idx + ', #llsolr-pager2_' + idx + ', #llsolr-detailSearchResult_' + idx).hide();
				$('.notFoundElement_' + idx).find('.notFoundPhrase').text(phrase).end().show();
			}else{
				$('#llsolr-pager1_' + idx + ', #llsolr-pager2_' + idx + ', #llsolr-detailSearchResult_' + idx).show();
				$('.notFoundElement_' + idx).hide();
			}
		};
		if (XIST4C_GLOBALS && XIST4C_GLOBALS.meta.coID == 11121){
			$('.topAddContrContainer').hide();
		}
		SolrEKG = llsolr.SolrSearchEmbeddingKitsGarden.create({
			modeViewTarget: $('.co_tabsPreviousSibling').next().find('#uiTab_90385')
		});


		SolrFacets_0 = llsolr.SolrFacetAddOn.create({
			target: $('#llsolr-facetPanels_0')
		});
		SolrFacets_1 = llsolr.SolrFacetAddOn.create({
			target: $('#llsolr-facetPanels_1')
		});
		SolrFacets_2 = llsolr.SolrFacetAddOn.create({
			target: $('#llsolr-facetPanels_2')
		});
		SolrFacets_3 = llsolr.SolrFacetAddOn.create({
			target: $('#llsolr-facetPanels_3')
		});
		SolrFacets_4 = llsolr.SolrFacetAddOn.create({
			target: $('#llsolr-facetPanels_4')
		});


		// Configuration helpers
		getSearchOuterTarget = function(){
			var contentSearch = $('.contentSearchFormShell, .qSearchCont_static');
			return contentSearch;
		};


		// handle sorting filter options
		handleSortingFilter = function(garden){
			var sortDate = $('.button-aktualitaet'), sortRelevance = $('.button-relevanz'),
			currHandler = garden.getAjaxHandlerForEachMachine()[0];
			if (currHandler == 'search_date'){
				garden.eachConfig(function(i){
					this.defaults.detailSearchAjaxHandler = 'search_date';
					this.defaults.staticSearchPhrasePrefix = '{!boost b=$datefunc}';
				});
				sortDate.addClass('button-aktualitaet-here');
				sortRelevance.removeClass('button-relevanz-here');
			}else{
				garden.eachConfig(function(i){
					this.defaults.detailSearchAjaxHandler = 'search_rels';
					this.defaults.staticSearchPhrasePrefix = '';
				});
				sortDate.removeClass('button-aktualitaet-here');
				sortRelevance.addClass('button-relevanz-here');
			}
			sortDate.unbind().bind('click', function(e){
				var currHandler = garden.getAjaxHandlerForEachMachine()[0];
				e.preventDefault();
				e.stopPropagation();
				if (currHandler !== 'search_date'){
					garden.each(function(i){
						this.defaults.detailSearchAjaxHandler = 'search_date';
						this.defaults.staticSearchPhrasePrefix = '{!boost b=$datefunc}';
						this.handleProductProposals(this.phrase);
					});
					sortDate.addClass('button-aktualitaet-here');
					sortRelevance.removeClass('button-relevanz-here');
				}
			});
			sortRelevance.unbind().bind('click', function(e){
				var currHandler = garden.getAjaxHandlerForEachMachine()[0];
				e.preventDefault();
				e.stopPropagation();
				if (currHandler !== 'search_rels'){
					garden.each(function(i){
						this.defaults.detailSearchAjaxHandler = 'search_rels';
						this.defaults.staticSearchPhrasePrefix = '';
						this.handleProductProposals(this.phrase);
						sortDate.removeClass('button-aktualitaet-here');
						sortRelevance.addClass('button-relevanz-here');
					});
				}
			});
		};

		// Alles
		SolrEKGConfig = llsolr.SolrSearchEmbeddingKitsGardenKitConfig.create({
			autocomplete: true,
			detailSearchAjaxHandler: 'search_date',
			searchPhraseOuterTarget: getSearchOuterTarget(),
			searchDetailTarget: $('#llsolr-detailSearchResult_0'),
			pagerTopTarget: $('#llsolr-pager1_0'),
			pagerBottomTarget: $('#llsolr-pager2_0'),
			facetPanelsTarget: $('#llsolr-facetPanels_0'),
			searchDetailUrl: '/suche.htm',
			embeddingKit: llsolr.SolrSearchEmbeddingKit_Hopp,
			productProposalItem: llsolr.SolrProductProposalsItemStandard,
			onBeforeSearchResult: function(){},
			onSearchResult: function(){
				handleNumFound(this.data.response.numFound, 0, this.phrase);
				SolrFacets_0.clearFacets();
				SolrFacets_0.add('site', 'Websites von Hoppenstedt Publishing:', null, {
					usedItemClass: llsolr.SolrProductFacetPanelItem_Sites
				});
				SolrFacets_0.addDates('udate_s_tdt', 'Suche nach Jahr:', null, {
					usedPanelClass: llsolr.SolrProductFacetDescendingDatePanel
				});
			}
		});
		SolrEKGConfig.defaultParams('searchPhraseParams', 'facet.limit', 5);
		SolrEKGConfig.defaultParams('standardParams', 'facet.field', ['site']);
		SolrEKGConfig.defaultParams('standardParams', 'fq', ['site:"km"']);
		SolrEKGConfig.defaultParams('standardParams', 'facet.date', 'udate_s_tdt');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.hardend', 'true');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.start', '2000-01-01T00:00:00Z');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.gap', '%2B1YEAR');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.end', 'NOW');
		SolrEKGConfig.defaultParams('extendedSearchPhraseParams', 'fq', extSearchPhraseParams);
		SolrEKGConfig.defaultParams('persistentStaticParams', null, persStaticParams);
		SolrEKGConfig.addOn(SolrFacets_0);
		SolrEKG.addConfig(SolrEKGConfig);

		// News
		SolrEKGConfig = llsolr.SolrSearchEmbeddingKitsGardenKitConfig.create({
			autocomplete: true,
			detailSearchAjaxHandler: 'search_date',
			searchPhraseOuterTarget: getSearchOuterTarget(),
			searchDetailTarget: $('#llsolr-detailSearchResult_1'),
			pagerTopTarget: $('#llsolr-pager1_1'),
			pagerBottomTarget: $('#llsolr-pager2_1'),
			facetPanelsTarget: $('#llsolr-facetPanels_1'),
			searchDetailUrl: '/suche.htm',
			embeddingKit: llsolr.SolrSearchEmbeddingKit_Hopp,
			productProposalItem: llsolr.SolrProductProposalsItemStandard,
			onBeforeSearchResult: function(){},
			onSearchResult: function(){
				handleNumFound(this.data.response.numFound, 1, this.phrase);
				SolrFacets_1.clearFacets();
				SolrFacets_1.add('site', 'Websites von Hoppenstedt Publishing:', null, {
					usedItemClass: llsolr.SolrProductFacetPanelItem_Sites
				});
				SolrFacets_1.addDates('udate_s_tdt', 'Suche nach Jahr:', null, {
					usedPanelClass: llsolr.SolrProductFacetDescendingDatePanel
				});
			}
		});
		SolrEKGConfig.defaultParams('searchPhraseParams', 'facet.limit', 5);
		SolrEKGConfig.defaultParams('standardParams', 'facet.field', ['site']);
		SolrEKGConfig.defaultParams('standardParams', 'fq', ['site:"km"']);
		SolrEKGConfig.defaultParams('standardParams', 'facet.date', 'udate_s_tdt');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.hardend', 'true');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.start', '2000-01-01T00:00:00Z');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.gap', '%2B1YEAR');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.end', 'NOW');
		SolrEKGConfig.defaultParams('extendedSearchPhraseParams', 'fq', extSearchPhraseParams);
		SolrEKGConfig.defaultParams('persistentStaticParams', null, persStaticParams.concat(['fq=type:"news"']));
		SolrEKGConfig.addOn(SolrFacets_1);
		SolrEKG.addConfig(SolrEKGConfig);

		// Artikel
		SolrEKGConfig = llsolr.SolrSearchEmbeddingKitsGardenKitConfig.create({
			autocomplete: true,
			detailSearchAjaxHandler: 'search_date',
			searchPhraseOuterTarget: getSearchOuterTarget(),
			searchDetailTarget: $('#llsolr-detailSearchResult_2'),
			pagerTopTarget: $('#llsolr-pager1_2'),
			pagerBottomTarget: $('#llsolr-pager2_2'),
			facetPanelsTarget: $('#llsolr-facetPanels_2'),
			searchDetailUrl: '/suche.htm',
			embeddingKit: llsolr.SolrSearchEmbeddingKit_Hopp,
			productProposalItem: llsolr.SolrProductProposalsItemStandard,
			onBeforeSearchResult: function(){},
			onSearchResult: function(){
				handleNumFound(this.data.response.numFound, 2, this.phrase);
				SolrFacets_2.clearFacets();
				SolrFacets_2.add('site', 'Websites von Hoppenstedt Publishing:', null, {
					usedItemClass: llsolr.SolrProductFacetPanelItem_Sites
				});
				SolrFacets_2.addDates('udate_s_tdt', 'Suche nach Jahr:', null, {
					usedPanelClass: llsolr.SolrProductFacetDescendingDatePanel
				});
				SolrFacets_2.add('tags_s_m_s', 'Suche verfeinern nach Schlagworten:');
				SolrFacets_2.add('km_cat_s_m_s', 'Ihr Suchbegriff findet sich in den Rubriken:');
			}
		});
		SolrEKGConfig.defaultParams('searchPhraseParams', 'facet.limit', 5);
		SolrEKGConfig.defaultParams('standardParams', 'facet.field', ['site', 'km_cat_s_m_s', 'tags_s_m_s']);
		SolrEKGConfig.defaultParams('standardParams', 'fq', ['site:"km"']);
		SolrEKGConfig.defaultParams('standardParams', 'facet.date', 'udate_s_tdt');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.hardend', 'true');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.start', '2000-01-01T00:00:00Z');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.gap', '%2B1YEAR');
		SolrEKGConfig.defaultParams('standardParams', 'facet.date.end', 'NOW');
		SolrEKGConfig.defaultParams('standardParams', 'f.tags_s_m_s.facet.limit', 10);
		SolrEKGConfig.defaultParams('extendedSearchPhraseParams', 'fq', extSearchPhraseParams);
		SolrEKGConfig.defaultParams('persistentStaticParams', null, persStaticParams.concat(['fq=type:"article"']));
		SolrEKGConfig.addOn(SolrFacets_2);
		SolrEKG.addConfig(SolrEKGConfig);

		handleSortingFilter(SolrEKG);
		SolrEKG.plantMachines();
		if (XIST4C_GLOBALS && XIST4C_GLOBALS.meta && XIST4C_GLOBALS.meta.coID == 11121){
			CDS_Products = CombinedDatabaseSearch.create({
				target: $('#productsDatabaseSearchOuter'),
				portalIndentifier: 'km',
				maxOverviewItems: 50,
				maxDetailItems: 50
			});
			CDS_Products.init();

			CDS_Companies = CombinedDatabaseSearch_Companies.create({
				target: $('#companiesDatabaseSearchOuter'),
				portalIndentifier: 'km',
				maxOverviewItems: 50,
				maxDetailItems: 50
			});
			CDS_Companies.init();
		}

		// Bind tabs for facet panel switching.
		$('#uiTab_90385').tabs({
			select: function(event, ui){
				var facetTeaser = $('.teaserItem_first');
				facetTeaser.hide();
				Utils.busyWait(
					function(intervalObj){
						if ($('#llsolr-facetPanels_' + ui.index).children().length){
							return true;
						}
						return false;
					},
					200,
					1000,
					function(intervalObj){
						facetTeaser.show('fast');
					}
				);
				facetTeaser.find('.tDesOut2 > .title h3')
					.removeClass('texttransform-none')
					.text('Weitere Suchmöglichkeiten')
					.end()
					.find('.teaserItemDes3').css({
						background: 'transparent'
					});
				if (ui.index < 3){
					$('#llsolr-facetTeasers, .llSolr-sorting-filter').show('fast');
				}else if (ui.index > 3){
					$('#llsolr-facetTeasers, .llSolr-sorting-filter').hide('fast');
				}else{
					$('.llSolr-sorting-filter').hide('fast');
					facetTeaser.find('.tDesOut2 > .title h3')
						.addClass('texttransform-none')
						.text('Links zu Themenseiten auf Kunststoff-Magazin')
						.end()
						.find('.teaserItemDes3').css({
							background: 'url(' + XIST4C_GLOBALS.uplPath + 'img/earthTeaserBg.png) right top no-repeat'
						});
					$('#llsolr-facetTeasers, #llsolr-facetPanels_4').show('fast');
				}
			}
		});
		// Alter the result set information on the products tab.
		prepareResultInfo();

		// Prepare business detail back link.
		prepareBusinessDetailBackLink();
	});
// <<



