PageSourceSearch

https://schwulissimo.de/sites/default/files/js/js_3rm7ee9qFVEDKww6…_7p_VjKksM8L-NLx2ADdhgtglKtpgj4agZf4Em-O9MQ

js schwulissimo.de collected 2026-09-24 20:12:34 UTC 8,793 bytes, 33 lines download raw bytes

1/* @license GNU-GPL-2.0-or-later https://www.drupal.org/licensing/faq */
2(function($){'use strict';var time=4000;var isRunning=false;var bar,breakpoint,$wrapper=null,$slick,$nav,isPause,tick,timeTime=20,percentTime;$(window).resize(function(){if($nav===undefined)return;$nav.slick('unslick');});$(window).scroll(function(){if($wrapper==null)return;var scrollTop=$(window).scrollTop();breakpoint=$wrapper.offset().top+$wrapper.height();if(scrollTop>breakpoint&&isRunning===true)resetProgressbar();if(scrollTop<breakpoint&&isRunning===false)startProgressbar();});$(document).ready(function(){initSlick();});function initSlick(){$wrapper=$(".slick-header-a");$slick=$('.slick-header-a__for');$nav=$('.slick-header-a__nav');if($nav.length==0)return;var navConfig={slidesToShow:3,slidesToScroll:1,asNavFor:'.slick-header-a__for',dots:false,arrows:false,focusOnSelect:true,mobileFirst:true,responsive:[{breakpoint:1040,settings:{slidesToShow:5}},{breakpoint:704,settings:{slidesToShow:4}}]};$slick.slick({slidesToShow:1,arrows:false,dots:false,fade:true,asNavFor:'.slick-header-a__nav'});$nav.slick(navConfig);$nav.click(function(){startProgressbar();});$nav.on('destroy',function(){$nav.slick(navConfig);});$slick.on('beforeChange',function(){startProgressbar();});bar=document.getElementById("slick-header-a__progress");startProgressbar();}function startProgressbar(){resetProgressbar();isRunning=true;percentTime=0;isPause=false;tick=setInterval(frame,timeTime);}function frame(){if(isPause===false){percentTime+=(timeTime/time)*100;bar.style.width=percentTime+'%';if(percentTime>=100){resetProgressbar();$slick.slick("slickNext");}}}function resetProgressbar(){isRunning=false;bar.style.width=0+'%';clearTimeout(tick);}})(jQuery);;
3(function($,Drupal,drupalSettings){'use strict';Drupal.behaviors.algoliaNoResultSearch={attach:function(context,settings){console.log('Algolia no result search script loaded');$(once('no-result-search','.no-result-search-form',context)).each(function(){console.log('Algolia no result search form found');const primaryIndex=(settings.algolia&&settings.algolia.indexName)?settings.algolia.indexName:'stage_index';const indexes=['stage_index','place_index','event_index','travelm_articles_idx','travelm_places_idx','travelm_events_idx'];const broadstreetIds=(settings.algolia&&settings.algolia.broadstreetIds)?settings.algolia.broadstreetIds.split(',').map((id)=>id.trim()).filter((id)=>id!==''):[];const redirectUrl=(settings.algolia&&settings.algolia.redirectUrl)?settings.algolia.redirectUrl:'/ai-search';console.log('Using Algolia indexes:',indexes);console.log('Broadstreet IDs:',broadstreetIds);console.log('Redirect URL:',redirectUrl);const searchForm=$(this);const searchInput=searchForm.find('#no-result-search-input');const searchButton=searchForm.find('#no-result-search-button');const autosuggestContainer=$('#no-result-autosuggest-container');console.log('DOM elements found:',{searchForm:searchForm.length>0,searchInput:searchInput.length>0,searchButton:searchButton.length>0,autosuggestContainer:autosuggestContainer.length>0});searchForm.on('submit',function(e){console.log('Form submission prevented');e.preventDefault();return false;});const getContentTypeIcon=function(type){if(type==='place')return `
4              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24" height="24">
5                <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/>
6                <circle cx="12" cy="18" r="2" fill="currentColor"/>
7              </svg>
8            `;else if(type==='event')return `
9              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24" height="24">
10                <path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/>
11                <circle cx="16" cy="14" r="2" fill="currentColor"/>
12                <rect x="7" y="10" width="4" height="4" fill="currentColor"/>
13                <rect x="7" y="16" width="4" height="2" fill="currentColor"/>
14              </svg>
15            `;else return `
16              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24" height="24">
17                <path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/>
18                <path d="M14 17H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/>
19              </svg>
20            `;};let debounceTimer;let lastQuery='';const fetchAutosuggestResults=function(query){if(!query||query.trim()===''){autosuggestContainer.empty().hide();return;}if(query===lastQuery)return;lastQuery=query;console.log(`Fetching autosuggest results for: "${query}"`);const appId='CH8XA5ZH8H';const apiKey='cc8e6095e2e73bb38f9a39ba69caf42e';
20const requests=indexes.map((indexName)=>{const request={indexName,analytics:false,attributesToRetrieve:["title","type","nid","website","slug"],clickAnalytics:false,hitsPerPage:3,query};if(indexName.startsWith('travelm_'))request.filters='locale:"de"';return request;});const requestBody={requests};fetch(`https://${appId.toLowerCase()}-dsn.algolia.net/1/indexes/*/queries`,{method:'POST',headers:{'Content-Type':'application/json','X-Algolia-API-Key':apiKey,'X-Algolia-Application-Id':appId},body:JSON.stringify(requestBody)}).then((response)=>response.json()).then((data)=>{console.log('Algolia autosuggest response:',data);let allHits=[];data.results.forEach((result)=>{if(result.hits&&result.hits.length>0){result.hits.forEach((hit)=>{hit._sourceIndex=result.index;});allHits=allHits.concat(result.hits);}});allHits=allHits.slice(0,10);renderAutosuggestResults(allHits,query);}).catch((error)=>{console.error('Error fetching autosuggest results:',error);autosuggestContainer.empty().hide();});};const renderAutosuggestResults=function(hits,query){if(!hits||hits.length===0){autosuggestContainer.empty().hide();return;}hits=hits.filter((hit)=>{const title=hit.title||hit['article-title']||'';return title!=='No title'&&title.trim()!=='';});if(hits.length===0){autosuggestContainer.empty().hide();return;}const autosuggestList=$('<ul class="no-result-autosuggest-list"></ul>');hits.forEach((hit)=>{const title=hit.title||hit['article-title']||'';const type=hit.type||'';const website=hit.website||'schwulissimo';let nodeUrl='#';if(website==='travelm'){const slug=hit.slug||'';let contentTypePath='';if(type==='article')contentTypePath='article';else if(type==='place')contentTypePath='place';else{if(type==='event')contentTypePath='event';}nodeUrl=`https://travelm.de/de-DE/${contentTypePath}/${slug}`;}else nodeUrl=hit.nid?`/node/${hit.nid}`:'#';const icon=getContentTypeIcon(type);const listItem=$(`
21              <li class="no-result-autosuggest-item" data-type="${type}" data-website="${website}">
22                <a href="${nodeUrl}" target="_blank" rel="noopener noreferrer" class="no-result-autosuggest-link">
23                  <span class="no-result-autosuggest-icon">${icon}</span>
24                  <span class="no-result-autosuggest-title">${title}</span>
25                </a>
26              </li>
27            `);listItem.on('click',function(e){searchInput.val(title);autosuggestContainer.empty().hide();});
27autosuggestList.append(listItem);});const viewAllItem=$(`
28            <li class="no-result-autosuggest-item no-result-autosuggest-view-all">
29              <a href="#" class="no-result-autosuggest-link">
30                <span class="no-result-autosuggest-title">Alle Ergebnisse anzeigen</span>
31              </a>
32            </li>
33          `);viewAllItem.on('click',function(e){e.preventDefault();autosuggestContainer.empty().hide();redirectToAiSearch(query);});autosuggestList.append(viewAllItem);autosuggestContainer.empty().append(autosuggestList).show();};const redirectToAiSearch=function(query){if(!query||query.trim()==='')return;const url=`${redirectUrl}?page=0&query=${encodeURIComponent(query.trim())}`;window.location.href=url;};searchInput.on('input',function(){const query=$(this).val().trim();clearTimeout(debounceTimer);debounceTimer=setTimeout(()=>{fetchAutosuggestResults(query);},300);});$(document).on('click',function(e){if(!$(e.target).closest('.no-result-search-form, #no-result-autosuggest-container').length)autosuggestContainer.empty().hide();});searchInput.on('focus',function(){const query=$(this).val().trim();if(query)fetchAutosuggestResults(query);});searchButton.on('click',function(e){e.preventDefault();console.log('Search button clicked');autosuggestContainer.empty().hide();const query=searchInput.val().trim();console.log('Search query:',query);redirectToAiSearch(query);});});}};})(jQuery,Drupal,drupalSettings);;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.