1if(typeof $==='undefined'){var $=jQuery} 2var frymoSuppressAdvancedSearchBarDuplicatesSubmit=!1;(function($){if(!frymo.license){window.addEventListener('storage',function(event){if(event.key=='elementor'){var el=JSON.parse(localStorage.getItem('elementor'));el.clipboard=removeFrymoWidgets(el.clipboard);localStorage.setItem('elementor',JSON.stringify(el))} 3return!1})} 4function removeFrymoWidgets(node){var to_delete=[];$.each(node,function(index,value){if(typeof value!='undefined'&&value.elements.length>0){node[index].elements=removeFrymoWidgets(value.elements)} 5if(typeof value!='undefined'&&value.elType=='widget'&&(value.widgetType).includes('frymo')){to_delete.push(index)}});to_delete.reverse();$.each(to_delete,function(index,value){node.splice(value,1)});return node} 6$(window).on('elementor/frontend/init',function(){initDHtooltips()});function initDHtooltips(){$(document).on('mouseenter','[data-frymo-tooltip]',function(){clearTimeout($(this).data('frymo-tooltip-timeout-id'));var prevTooltip=$('body').find('.frymo-tooltip');if(prevTooltip.length>0){var currentTooltipID=$(this).data('frymo-tooltip-id');var prevTooltipID=prevTooltip.data('frymo-tooltip-id');if(currentTooltipID!=prevTooltipID){prevTooltip.remove()}else{return!1}} 7var uniqueID=Date.now().toString();$(this).data('frymo-tooltip-id',uniqueID);$('body').append('<div class="frymo-tooltip"><div class="tooltip-wrapper"><span>'+$(this).data('frymo-tooltip')+'</span></div><div class="tooltip-trangle"></div></div>');var tooltip=$('body').find('.frymo-tooltip');$(tooltip).data('frymo-tooltip-id',uniqueID);var innerWidth=getInnerWidth($(tooltip).find('.tooltip-wrapper > span')[0])+21;var el_position=frymoGetElementPosition($(this)[0]);$(tooltip).css({'top':el_position.top,'left':el_position.left+el_position.width/2,});$(tooltip).find('.tooltip-wrapper').css({'width':innerWidth,});var overflow_right=tooltip.offset().left+tooltip.width()-$(window).width();if(overflow_right>0){var pos=overflow_right+10;$(tooltip).find('.tooltip-wrapper').css({'transform':'translateX(-'+pos+'px)'})} 8var overflow_left=tooltip.offset().left;if(overflow_left<0){var pos=Math.abs(overflow_left)+10;$(tooltip).find('.tooltip-wrapper').css({'transform':'translateX('+pos+'px)'})}});$(document).on('mouseleave','[data-frymo-tooltip]',function(){var element=$(this);var tooltip=$('body').find('.frymo-tooltip');var timeoutId=setTimeout(function(){$(tooltip).css('animation','none').fadeOut(200,function(){$(this).remove()})},200);element.data('frymo-tooltip-timeout-id',timeoutId)});function getInnerWidth(element){var wrapper=document.createElement('span'),result;while(element.firstChild){wrapper.appendChild(element.firstChild)} 9element.appendChild(wrapper);result=wrapper.offsetWidth;element.removeChild(wrapper);while(wrapper.firstChild){element.appendChild(wrapper.firstChild)} 10return result} 11function frymoGetElementPosition(element){var rect=element.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;return{top:rect.top+scrollTop,left:rect.left+scrollLeft,width:rect.width}}} 12function frymoFormatInputsOnLoad(){$('.frymo-thousands-separator').each(function(){var $input=$(this);var style=frymoGetThousandsStyle($input);var rawValue=$input.val();var digitsOnly=rawValue.replace(/\D/g,'');if(digitsOnly){$input.val(frymoApplyThousandsSeparator(rawValue,style))}})} 13$(document).on('input','.frymo-thousands-separator',function(){var $input=$(this);var style=frymoGetThousandsStyle($input);var rawValue=$input.val();$input.val(frymoApplyThousandsSeparator(rawValue,style))});frymoFormatInputsOnLoad()})(jQuery);function frymoInitColapsableContent(widgetSelector){var previousWindowWidth=window.innerWidth;var $widgetEl=$(widgetSelector);var $contentElement=$widgetEl.find('.frymo-expandable-content');$widgetEl.off('click','.frymo-toggle-button').on('click','.frymo-toggle-button',function(){$widgetEl.toggleClass('is--expanded')});handleExpandableContent();$(window).resize(debounce(function(){var currentWindowWidth=window.innerWidth;if(currentWindowWidth!==previousWindowWidth){handleExpandableContent();previousWindowWidth=currentWindowWidth}},500));function handleExpandableContent(){setTimeout(function(){var isClamped=isContentOverflowed($contentElement);if(isClamped){$widgetEl.addClass('frymo-expandable-content-enabled')}else if(!isClamped&&!$widgetEl.hasClass('is--expanded')){$widgetEl.removeClass('frymo-expandable-content-enabled').removeClass('is--expanded')}})} 14function debounce(func,delay){var timeout;return function(){var context=this,args=arguments;clearTimeout(timeout);timeout=setTimeout(function(){func.apply(context,args)},delay)}} 15function isContentOverflowed($element){if($element.length===0){return!1} 16var isLineClampApplied=($element.css('-webkit-line-clamp')!=='none'||$element.css('line-clamp')!=='none')&&$element.css('overflow')==='hidden'&&$element.css('display')==='-webkit-box';if(isLineClampApplied){var collapsedLinesCount=parseInt($element.css('-webkit-line-clamp')||$element.css('line-clamp'),10);var lineHeight=parseFloat($element.css('line-height'));var clampedHeight=collapsedLinesCount*lineHeight;return $element[0].scrollHeight>clampedHeight}else{return $element[0].scrollHeight>$element[0].clientHeight}}} 17function frymoProcessSubmitingSearchFilterForm($scope){var $form=$($scope.find('form'));var filterInitialSettings=$scope.data('initial-settings');$form.on('submit',function(e){e.preventDefault();var formData={};$.each($form.serializeArray(),function(index,item){var $field=$form.find('[name="'+item.name+'"]');var value=item.value;if($field.hasClass('frymo-thousands-separator')){var style=frymoGetThousandsStyle($field);value=frymoGetCleanNumber(value,style)} 18if(typeof formData[item.name]==='undefined'){formData[item.name]=[]} 19if($.inArray(value,formData[item.name])===-1){formData[item.name].push(value)} 20return!0});$.each(formData,function(name,values){formData[name]=values.join(',')});if(!formData.area_from&&!formData.area_to&&'area_type' in formData){formData.area_type=''} 21if(!formData.location&&'radius' in formData){formData.radius=''} 22$form.find('input[type=checkbox]').each(function(){if(!(this.name in formData)){formData[this.name]=''}});if((formData.area_from==''&&formData.area_to=='')||(formData.area_from==''&&typeof formData.area_to==='undefined')){formData.area_type=''} 23if(typeof formData.search_string==='undefined'||formData.search_string==''){delete formData.s_fields} 24var queryId=(typeof filterInitialSettings!=='undefined'&&filterInitialSettings.query_id)?filterInitialSettings.query_id:'';var fullUrl=window.location.href;var hashIndex=fullUrl.indexOf('#');var hashFragment='';var currentUrl=fullUrl;if(hashIndex!==-1){hashFragment=fullUrl.substring(hashIndex);currentUrl=fullUrl.substring(0,hashIndex)} 25if(typeof filterInitialSettings.form_action!=='undefined'&&filterInitialSettings.form_action=='ajax'){currentUrl=currentUrl.replace(/\/\d+\//g,'/');if(currentUrl.indexOf('?')!==-1){currentUrl=currentUrl.replace(/\/?\?/,'/?')}else if(!currentUrl.endsWith('/')){currentUrl+='/'} 26var frymoQueryRaw=location.search.split('frymo_query=')[1];var frymoQuery=typeof frymoQueryRaw!=='undefined'?JSON.parse(decodeURIComponent(frymoQueryRaw)):{};if(typeof frymoQuery[queryId]==='undefined'){frymoQuery[queryId]={}} 27$.each(formData,function(index,value){if(value==''||value=='0'||value=='alle'){delete frymoQuery[queryId][index]}else{frymoQuery[queryId][index]=value}});delete frymoQuery[queryId].pagenum;frymoRemovePaginationFromTitle();if(typeof frymoQuery[queryId].search_string==='undefined'){delete frymoQuery[queryId].s_fields} 28if(Object.keys(frymoQuery[queryId]).length===0){delete frymoQuery[queryId]} 29var newUrl=Object.keys(frymoQuery).length!==0?frymoReplaceUrlParam(currentUrl,'frymo_query',encodeURI(JSON.stringify(frymoQuery))):frymoRemoveParameterFromUrl(currentUrl,'frymo_query');newUrl=frymoRemovePageSegmentFromUrl(newUrl);newUrl+=hashFragment;var $widgetsToUpdate=$(document).find('[data-frymo-query-id="'+queryId+'"]');if(!$widgetsToUpdate.length){$scope.find('.frymo-submit').css('pointer-events','none')} 30$widgetsToUpdate.each(function(){var $widget=$(this);var config=get_current_widget_config($widget);$widget.trigger('update_widget',[config,frymoQuery,$scope])});window.history.pushState(JSON.stringify(frymoQuery),'',newUrl)}else{var frymoQuery={};frymoQuery[queryId]={};$.each(formData,function(index,value){if(value!==''&&value!=='0'&&value!=='alle'){frymoQuery[queryId][index]=value}});var redirectUrl=(typeof filterInitialSettings!=='undefined'&&filterInitialSettings.redirect_url&&filterInitialSettings.redirect_url.url)?filterInitialSettings.redirect_url.url:currentUrl;if(Object.keys(frymoQuery[queryId]).length>0){redirectUrl+='?frymo_query='+encodeURIComponent(JSON.stringify(frymoQuery))} 31window.location.href=redirectUrl} 32$form.find('fieldset.frymo-focused').removeClass('frymo-focused');return!1});function get_current_widget_config($widget){var data=$widget.data('frymo-widget-settings');if(typeof data==='object'&&data!==null){return data}else{return{}}} 33function get_original_config(){var data=$scope.data('initial-settings');if(typeof data==='object'&&data!==null){return data}else{return{}}}} 34function frymoRemoveParameterFromUrl(url,parameter){return url.replace(new RegExp('[?&]'+parameter+'=[^&#]*(#.*)?$'),'$1').replace(new RegExp('([?&])'+parameter+'=[^&]*&'),'$1')} 35function frymoReplaceUrlParam(url,paramName,paramValue){if(paramValue==null){paramValue=''} 36var pattern=new RegExp('\\b('+paramName+'=).*?(&|#|$)');if(url.search(pattern)>=0){if(paramName=='pagenum'&¶mValue==1){url=frymoRemoveParameterFromUrl(url,paramName);return url} 37url=url.replace(pattern,'$1'+paramValue+'$2');return url} 38url=url.replace(/[?#]$/,'');url=url+(url.indexOf('?')>0?'&':'?')+paramName+'='+paramValue;return url} 39function setCookie(name,value,days){var expires="";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toUTCString()} 40document.cookie=name+"="+encodeURIComponent(JSON.stringify(value))+expires+"; path=/"} 41function getCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return JSON.parse(decodeURIComponent(c.substring(nameEQ.length,c.length)))} 42return[]}
43function frymoInitAjaxLiveSearch($scope){var $inputs=$scope.find('input[type="text"][data-live-search="true"]');var typingTimer;var doneTypingInterval=1200;$inputs.on('input',function(){var $this=$(this);var $resultsWrapper=$this.closest('fieldset').find('.frymo-live-search-results-wrapper');var $resultsLoader=$this.closest('fieldset').find('.frymo-ls-loader');var $resultsContent=$this.closest('fieldset').find('.frymo-ls-content');var searchSettings=$this.data('live-search-settings');var minChars=searchSettings.min_chars||2;if($this.val().length<minChars){$resultsWrapper.hide();$resultsWrapper.removeClass('active')}else{$resultsWrapper.show();$resultsWrapper.addClass('active')} 44$resultsLoader.show();$resultsContent.hide();clearTimeout(typingTimer);typingTimer=setTimeout(function(){doneTyping($this)},doneTypingInterval)});$inputs.on('keydown',function(){clearTimeout(typingTimer)});$inputs.on('focus',function(){var $resultsWrapper=$(this).closest('fieldset').find('.frymo-live-search-results-wrapper');if($resultsWrapper.hasClass('active')){$resultsWrapper.show()}});$(document).on('click',function(event){if(!$(event.target).closest('input[type="text"][data-live-search="true"], .frymo-live-search-results-wrapper').length){$('.frymo-live-search-results-wrapper').hide()}});function doneTyping($input){var searchString=$input.val();var $resultsLoader=$input.closest('fieldset').find('.frymo-ls-loader');var $resultsContent=$input.closest('fieldset').find('.frymo-ls-content');var widgetQueryId=$input.closest('div[data-frymo-query-id]').data('frymo-query-id');if(searchString.length<2){return} 45var searchSettings=$input.data('live-search-settings');var searchFields=$input.closest('fieldset').find('input[name="s_fields"]').val();var data={action:'frymo_live_search',search_string:searchString,search_fields:searchFields,search_settings:searchSettings,query_id:widgetQueryId};$.post(frymo.ajaxurl,data,function(response){$resultsLoader.hide();$resultsContent.empty();$resultsContent.show();if(typeof response.data.items!=='undefined'&&response.data.items.length){if(typeof response.data.results_header_html!=='undefined'&&response.data.results_header_html){$resultsContent.append(response.data.results_header_html)} 46$.each(response.data.items,function(index,itemHtml){$resultsContent.append(itemHtml)});if(typeof response.data.results_footer_html!=='undefined'&&response.data.results_footer_html){$resultsContent.append(response.data.results_footer_html)}}else{$resultsContent.append('<div class="frymo-ls-no-results">'+searchSettings.message+'</div>')} 47$resultsContent.show();console.log(response)}).always(function(){}).fail(function(){console.error('Server error')})} 48$scope.on('click','.frymo-ls-show-all',function(e){e.preventDefault();$(this).closest('.frymo-live-search-results-wrapper').hide();$scope.find('form').submit()})} 49function frymoAdjustSelectWidth($select,paddingRight=30){var $tempSpan=$('.frymo-select-auto-width-temp-span');if($tempSpan.length===0){$tempSpan=$('<span>').addClass('frymo-select-auto-width-temp-span').css({'visibility':'hidden','white-space':'nowrap','position':'absolute',}).appendTo('body')} 50$tempSpan.css('font-size',$select.css('font-size'));var selectedText=$select.find('option:selected').text();$tempSpan.text(selectedText);var newWidth=$tempSpan.width();var currentWidth=$select.width();if(currentWidth!==newWidth+paddingRight){$select.width(newWidth+paddingRight)}} 51function frymoRemovePageSegmentFromUrl(url){var urlObj=new URL(url);var pathnameSegments=urlObj.pathname.split('/').filter(Boolean);var listingIndex=pathnameSegments.indexOf('listing');
51if(listingIndex!==-1&&listingIndex+1<pathnameSegments.length){var potentialPageNumber=pathnameSegments[listingIndex+1];if(!isNaN(potentialPageNumber)){pathnameSegments.splice(listingIndex+1,1)}}else if(pathnameSegments.length===1&&!isNaN(pathnameSegments[0])){pathnameSegments=[]} 52urlObj.pathname='/'+pathnameSegments.join('/');return urlObj.toString()} 53function frymoRemovePaginationFromTitle(){if(typeof frymo.paginationPattern!=='undefined'&&frymo.paginationPattern){var pattern=frymo.paginationPattern.replace('%d','\\d+');var regex=new RegExp(pattern,'i');var baseTitle=document.title.replace(regex,'').trim();var commonSeparators=[' â ',' â ',' | ',' - ',' · '];var detectedSeparator='';for(var i=0;i<commonSeparators.length;i++){if(baseTitle.includes(commonSeparators[i].trim())){detectedSeparator=commonSeparators[i];break}} 54if(!detectedSeparator){detectedSeparator=' '} 55var doubleSeparator=detectedSeparator+detectedSeparator;while(baseTitle.includes(doubleSeparator)){baseTitle=baseTitle.replace(doubleSeparator,detectedSeparator)} 56var separatorPattern=new RegExp('^'+detectedSeparator+'|'+detectedSeparator+'$','g');baseTitle=baseTitle.replace(separatorPattern,'').trim();document.title=baseTitle}} 57function frymoParsePriceBudgetOptionValue(raw){if(raw===null||raw===undefined){return{from:'',to:''}} 58var v=String(raw);if(!v){return{from:'',to:''}} 59var parts=v.split('|');return{from:parts[0]?String(parts[0]):'',to:parts.length>1&&parts[1]!==undefined?String(parts[1]):''}} 60function frymoSyncAdvancedSearchBudgetSelects($scope){$scope.find('.frymo-price-fieldset').each(function(){var $fs=$(this);var $select=$fs.find('.frymo-price-budget-select');if(!$select.length){return} 61var from=String($fs.find('.frymo-price-budget-hidden-from').val()||'');var to=String($fs.find('.frymo-price-budget-hidden-to').val()||'');var match='';$select.find('option').each(function(){var parsed=frymoParsePriceBudgetOptionValue($(this).attr('value'));if(parsed.from===from&&parsed.to===to){match=$(this).attr('value');return!1}});$select.val(match)})} 62function frymoUpdateWidgetFields($scope,config){window.frymoSuppressAdvancedSearchBarDuplicatesSubmit=!0;$scope.find('form').find('input, select, textarea').each(function(){var $field=$(this);var type=$field.attr('type');var tag=$field.prop('tagName').toLowerCase();if($field.hasClass('selectized')){var selectizeInstance=$field[0].selectize;if(selectizeInstance){var defaultOption=$field.data('default-option')||'';selectizeInstance.setValue(defaultOption,!0)}}else if(type==='checkbox'||type==='radio'){if($field.val()!=''){$field.prop('checked',!1)}else{$field.prop('checked',!0)}}else if(tag==='select'){$field.val('')}else{if($field.attr('name')!=='s_fields'){$field.val('')}}});$.each(config,function(index,value){var values;if(Array.isArray(value)){values=value}else if(typeof value==='string'){values=value.split(',').map(function(v){return v.trim()})}else if(value===null||value===undefined){values=[]}else{values=[String(value).trim()]} 63var lastValue=values.length?values[values.length-1]:'';var $fields=$scope.find('[name="'+index+'"]');$fields.each(function(){var $field=$(this);var type=$field.attr('type');var tag=$field.prop('tagName').toLowerCase();if($field.hasClass('selectized')){var selectizeInstance=$field[0].selectize;if(selectizeInstance){if($field.prop('multiple')){selectizeInstance.setValue(values)}else{selectizeInstance.setValue(lastValue)}}}else if(tag==='select'){if($field.prop('multiple')){$field.val(values)}else{$field.val(lastValue)}}else if(type==='checkbox'){if(values.indexOf($field.val())!==-1){$field.prop('checked',!0)}}else if(type==='radio'){if($field.val()===lastValue){$field.prop('checked',!0)}}else{$field.val(lastValue)}})});frymoSyncAdvancedSearchBudgetSelects($scope);window.frymoSuppressAdvancedSearchBarDuplicatesSubmit=!1} 64function frymoApplyThousandsSeparator(value,style='browser'){if(!style||style==='auto'){return value} 65value=String(value).replace(/\D/g,'');if(value===''){return''} 66const separators={comma:',',dot:'.',space:' ',apostrophe:"'"};if(separators.hasOwnProperty(style)){const separator=separators[style];return value.replace(/\B(?=(\d{3})+(?!\d))/g,separator)} 67return new Intl.NumberFormat(navigator.language).format(Number(value))} 68function frymoGetThousandsStyle($input){var inputStyle=$input.data('format-style');return inputStyle?inputStyle:(typeof frymo!=='undefined'?frymo.thousandsSeparatorStyle:'browser')} 69function frymoGetCleanNumber(formattedValue,style){var value=String(formattedValue||'').trim();switch(style){case 'comma':value=value.replace(/,/g,'');break;case 'dot':value=value.replace(/\./g,'').replace(',','.');break;case 'space':value=value.replace(/[\s\u00A0]/g,'').replace(',','.');break;case 'apostrophe':value=value.replace(/'/g,'').replace(',','.');break;case 'browser':default:value=value.replace(/[^\d.,]/g,'');if(value.indexOf('.')>-1&&value.indexOf(',')>-1){if(value.indexOf('.')<value.indexOf(',')){value=value.replace(/\./g,'').replace(',','.')}else{value=value.replace(/,/g,'')}}else if(value.indexOf('.')>-1){var dotParts=value.split('.');var isDotThousands=dotParts.length>1&&dotParts.slice(1).every(function(part){return part.length===3});if(isDotThousands){value=value.replace(/\./g,'')}}else{var commaParts=value.split(',');var isCommaThousands=commaParts.length>1&&commaParts.slice(1).every(function(part){return part.length===3});if(isCommaThousands){value=value.replace(/,/g,'')}else{value=value.replace(/,/g,'.')}} 70break} 71return value} 72function frymoSubmitFormIfValid($scope){if($('body').hasClass('elementor-editor-active')){return!1} 73var form=$scope.find('form')[0];if(form&&form.checkValidity()){$scope.find('form').trigger('submit')}else if(form){form.reportValidity()}} 74function frymoCloseAllSelctizesExceptCurrent(current){var current_selectize=current.$input[0];var allSelectize_elements=$(document).find('.selectized');var selectize_elements_to_close=allSelectize_elements.not(current_selectize);selectize_elements_to_close.each(function(){var selectize_instance=$(this)[0].selectize;if(selectize_instance&&selectize_instance.isOpen){selectize_instance.close()}})} 75function frymoAdjustSelectizeWidthToWidestItem(selectize){var $test=$('<div></div>').css({position:'absolute',visibility:'hidden',height:'auto',width:'auto',whiteSpace:'nowrap',font:selectize.$control.css('font'),padding:selectize.$control.css('padding'),paddingLeft:0}).appendTo('body');var widestWidth=0;
75selectize.options&&Object.values(selectize.options).forEach(function(option){$test.text(option.text);var width=$test.outerWidth();if(width>widestWidth){widestWidth=width}});$test.remove();var $fieldset=selectize.$wrapper.closest('fieldset');$fieldset.css('--inner-select-dropdown-width',widestWidth+'px')}
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.