PageSourceSearch

https://www.bayreuth.de/wp-content/cache/min/1/wp-content/plugins/…mt-bt-city-signage-public.js?ver=1790779194

js bayreuth.de collected 2026-10-02 05:30:48 UTC 6,230 bytes, 45 lines download raw bytes

1(function($){'use strict';$(document).ready(function(){if(typeof window.btSignageConfig==='undefined'||!window.btSignageConfig.formId){return}
2var formId=window.btSignageConfig.formId;var vonDatumFieldId=window.btSignageConfig.vonDatumFieldId;var bisDatumFieldId=window.btSignageConfig.bisDatumFieldId;var invalidDateMessage=window.btSignageConfig.invalidDateMessage||window.btSignageConfig.errorMessage||'Bitte geben Sie ein gültiges Datum ein.';var dateRangeMessage=window.btSignageConfig.dateRangeErrorMessage||"Das 'Bis Datum' muss nach dem 'Von Datum' liegen.";if(!vonDatumFieldId||!bisDatumFieldId){return}
3$(document).on('gform_post_render',function(event,formIdRendered){if(String(formIdRendered)!==String(formId)){return}
4var fieldSelector='#input_'+formId+'_'+vonDatumFieldId+', #input_'+formId+'_'+bisDatumFieldId+', #field_'+formId+'_'+vonDatumFieldId+' input, #field_'+formId+'_'+vonDatumFieldId+' select, #field_'+formId+'_'+bisDatumFieldId+' input, #field_'+formId+'_'+bisDatumFieldId+' select';$(document).off('change.btSignageDateValidation blur.btSignageDateValidation',fieldSelector).on('change.btSignageDateValidation blur.btSignageDateValidation',fieldSelector,function(){validateDates()})});$(document).on('gform_submit_button_'+formId,function(event){if(!validateDates()){event.preventDefault();return!1}
5return!0});$(document).on('submit','#gform_'+formId,function(event){if(!validateDates()){event.preventDefault();event.stopImmediatePropagation();return!1}
6return!0});function validateDates(){var vonDate=getDateFromField(vonDatumFieldId);var bisDate=getDateFromField(bisDatumFieldId);var vonHasValue=fieldHasValue(vonDatumFieldId);var bisHasValue=fieldHasValue(bisDatumFieldId);removeError();if(!vonHasValue&&!bisHasValue){return!0}
7if((vonHasValue&&!vonDate)||(bisHasValue&&!bisDate)){showError(invalidDateMessage);return!1}
8if(!vonDate||!bisDate){return!0}
9var vonNormalized=normalizeDate(vonDate);var bisNormalized=normalizeDate(bisDate);if(!vonNormalized||!bisNormalized){showError(invalidDateMessage);return!1}
10if(bisNormalized.getTime()<vonNormalized.getTime()){showError(dateRangeMessage);return!1}
11return!0}
12function getDateFromField(fieldId){var $single=$('#input_'+formId+'_'+fieldId);if($single.length){return parseDateString($single.val())}
13var $field=$('#field_'+formId+'_'+fieldId);if(!$field.length){return null}
14var day=getDatePartValue($field,'day');var month=getDatePartValue($field,'month');var year=getDatePartValue($field,'year');if(day&&month&&year){return buildDateFromParts(day,month,year)}
15return getDateFromFallbackInputs($field)}
16function fieldHasValue(fieldId){var $single=$('#input_'+formId+'_'+fieldId);if($single.length){return String($single.val()||'').trim().length>0}
17var $field=$('#field_'+formId+'_'+fieldId);if(!$field.length){return!1}
18var hasValue=!1;$field.find('.ginput_container_date input, .ginput_container_date select').each(function(){var value=String($(this).val()||'').trim();if(value){hasValue=!0;return!1}});return hasValue}
19function getDatePartValue($field,part){var $part=$field.find('.gfield_date_'+part+' select, .gfield_date_'+part+' input');if($part.length){return $part.val()}
20return null}
21function getDateFromFallbackInputs($field){var values=[];$field.find('.ginput_container_date input, .ginput_container_date select').each(function(){var value=String($(this).val()||'').trim();if(value){values.push({value:value,label:String($(this).attr('aria-label')||$(this).attr('placeholder')||'').toLowerCase()})}});if(values.length!==3){return null}
22var yearValue=findPartByLabel(values,['year','jahr'])||findPartByPattern(values,/^\d{4}$/);var monthValue=findPartByLabel(values,['month','monat']);var dayValue=findPartByLabel(values,['day','tag']);if(!yearValue){return null}
23var remaining=values.filter(function(item){return item.value!==yearValue});if(!monthValue&&remaining.length){monthValue=remaining[0].value}
24if(!dayValue&&remaining.length>1){dayValue=remaining[1].value}
25if(!dayValue||!monthValue){return null}
26return buildDateFromParts(dayValue,monthValue,yearValue)}
27function findPartByLabel(values,labels){for(var i=0;i<values.length;i++){var label=values[i].label;for(var j=0;j<labels.length;j++){if(label.indexOf(labels[j])!==-1){return values[i].value}}}
28return null}
29function findPartByPattern(values,pattern){for(var i=0;i<values.length;i++){if(pattern.test(values[i].value)){return values[i].value}}
30return null}
31function buildDateFromParts(day,month,year){var dayValue=String(day||'').trim();var monthValue=String(month||'').trim();var yearValue=String(year||'').trim();if(!/^[0-9]{1,2}$/.test(dayValue)||!/^[0-9]{1,2}$/.test(monthValue)||!/^[0-9]{4}$/.test(yearValue)){return null}
32var dayNum=parseInt(dayValue,10);var monthNum=parseInt(monthValue,10);var yearNum=parseInt(yearValue,10);if(isNaN(dayNum)||isNaN(monthNum)||isNaN(yearNum)){return null}
33var date=new Date(yearNum,monthNum-1,dayNum);if(isNaN(date.getTime())){return null}
34if(date.getFullYear()!==yearNum||date.getMonth()!==monthNum-1||date.getDate()!==dayNum){return null}
35return date}
36function normalizeDate(date){if(!date||isNaN(date.getTime())){return null}
37return new Date(date.getFullYear(),date.getMonth(),date.getDate())}
38function parseDateString(dateString){var value=String(dateString||'').trim();if(!value){return null}
39var isoMatch=value.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/);
39if(isoMatch){return buildDateFromParts(isoMatch[3],isoMatch[2],isoMatch[1])}
40var europeanMatch=value.match(/^(\d{1,2})[.\/-](\d{1,2})[.\/-](\d{4})/);if(europeanMatch){return buildDateFromParts(europeanMatch[1],europeanMatch[2],europeanMatch[3])}
41var parsedDate=new Date(value);if(isNaN(parsedDate.getTime())){return null}
42return parsedDate}
43function showError(message){var $field=$('#field_'+formId+'_'+bisDatumFieldId);if($field.length){var errorHtml='<div class="gfield_description validation_message bt-date-validation-error">'+message+'</div>';$field.addClass('gfield_error');$field.find('.ginput_container').after(errorHtml)}}
44function removeError(){var $field=$('#field_'+formId+'_'+bisDatumFieldId);if(!$field.length){return}
45$field.find('.bt-date-validation-error').remove();if($field.find('.validation_message').length===0){$field.removeClass('gfield_error')}}})})(jQuery)

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.