1var jsFrontend={debug:!1,current:{},init:function(){jsFrontend.current.language=jsFrontend.data.get('LANGUAGE') 2jsFrontend.initAjax() 3jsFrontend.addModalEvents() 4jsFrontend.cookieBar.init() 5jsFrontend.controls.init() 6jsFrontend.forms.init() 7jsFrontend.gravatar.init() 8jsFrontend.statistics.init() 9jsFrontend.twitter.init()},addModalEvents:function(){var $modals=$('[role=dialog].modal') 10if($modals.length===0){return} 11$modals.on('shown.bs.modal',function(){$(this).attr('aria-hidden','false')}) 12$modals.on('hide.bs.modal',function(){$(this).attr('aria-hidden','true')})},initAjax:function(){$.ajaxSetup({url:'/frontend/ajax',cache:!1,type:'POST',dataType:'json',timeout:10000,data:{fork:{module:null,action:null,language:jsFrontend.current.language}}})}} 13jsFrontend.controls={init:function(){jsFrontend.controls.bindTargetBlank() 14jsFrontend.controls.toggleCollapse()},bindTargetBlank:function(){$('a.targetBlank').attr('target','_blank')},toggleCollapse:function(){var $navToggle=$('.navbar-toggle') 15if($navToggle.length===0){return} 16$navToggle.on('click',function(){var $button=$(this) 17$button.find('[data-role=label]').text(jsFrontend.locale.lbl($button.hasClass('collapsed')?'CloseNavigation':'OpenNavigation'))}).find('[data-role=label]').text(jsFrontend.locale.lbl($navToggle.hasClass('collapsed')?'CloseNavigation':'OpenNavigation'))}} 18jsFrontend.cookieBar={init:function(){if($('#cookie-bar').length===0)return 19var $cookieBar=$('#cookie-bar') 20if(utils.cookies.readCookie('cookie_bar_hide')==='b%3A1%3B'){$cookieBar.hide()} 21$cookieBar.on('click','[data-role="cookie-bar-button"]',function(e){e.preventDefault() 22if($(e.currentTarget).data('action')==='agree'){utils.cookies.setCookie('cookie_bar_agree','Y') 23utils.cookies.setCookie('cookie_bar_hide','Y')}else{utils.cookies.setCookie('cookie_bar_agree','N') 24utils.cookies.setCookie('cookie_bar_hide','Y')} 25$cookieBar.hide()})}} 26jsFrontend.data={initialized:!1,data:{},init:function(){if(typeof jsData==='undefined')throw new Error('jsData is not available') 27jsFrontend.data.data=jsData 28jsFrontend.data.initialized=!0},exists:function(key){return(typeof jsFrontend.data.data[key]!=='undefined')},get:function(key){if(!jsFrontend.data.initialized)jsFrontend.data.init() 29var keys=key.split('.') 30var data=jsFrontend.data.data 31for(var i=0;i<keys.length;i++){data=data[keys[i]]} 32return data}} 33jsFrontend.facebook={afterInit:function(){if(typeof _gaq==='object'){FB.Event.subscribe('edge.create',function(targetUrl){_gaq.push(['_trackSocial','facebook','like',targetUrl])}) 34FB.Event.subscribe('edge.remove',function(targetUrl){_gaq.push(['_trackSocial','facebook','unlike',targetUrl])}) 35FB.Event.subscribe('message.send',function(targetUrl){_gaq.push(['_trackSocial','facebook','send',targetUrl])})}else if(typeof ga==='object'){FB.Event.subscribe('edge.create',function(targetUrl){ga('send','social','facebook','like',targetUrl)}) 36FB.Event.subscribe('edge.remove',function(targetUrl){ga('send','social','facebook','unlike',targetUrl)}) 37FB.Event.subscribe('message.send',function(targetUrl){ga('send','social','facebook','send',targetUrl)})}}}
38jsFrontend.forms={init:function(){jsFrontend.forms.placeholders() 39jsFrontend.forms.datefields() 40jsFrontend.forms.validation() 41jsFrontend.forms.filled() 42jsFrontend.forms.datePicker()},filled:function(){$(document).on('blur','form input, form textarea, form select',function(){if($(this).val()===''){$(this).removeClass('filled')}else{$(this).addClass('filled')}})},datefields:function(){var $inputDateType=$('input.inputDatefield') 43if($inputDateType.length){if($inputDateType.get(0).type!=='date'){$inputDateType.addClass('inputDatefieldNormal')}} 44var $inputDatefields=$('.inputDatefieldNormal, .inputDatefieldFrom, .inputDatefieldTill, .inputDatefieldRange') 45var $inputDatefieldNormal=$('.inputDatefieldNormal') 46var $inputDatefieldFrom=$('.inputDatefieldFrom') 47var $inputDatefieldTill=$('.inputDatefieldTill') 48var $inputDatefieldRange=$('.inputDatefieldRange') 49if($inputDatefields.length>0){var dayNames=[jsFrontend.locale.loc('DayLongSun'),jsFrontend.locale.loc('DayLongMon'),jsFrontend.locale.loc('DayLongTue'),jsFrontend.locale.loc('DayLongWed'),jsFrontend.locale.loc('DayLongThu'),jsFrontend.locale.loc('DayLongFri'),jsFrontend.locale.loc('DayLongSat')] 50var dayNamesMin=[jsFrontend.locale.loc('DayShortSun'),jsFrontend.locale.loc('DayShortMon'),jsFrontend.locale.loc('DayShortTue'),jsFrontend.locale.loc('DayShortWed'),jsFrontend.locale.loc('DayShortThu'),jsFrontend.locale.loc('DayShortFri'),jsFrontend.locale.loc('DayShortSat')] 51var dayNamesShort=[jsFrontend.locale.loc('DayShortSun'),jsFrontend.locale.loc('DayShortMon'),jsFrontend.locale.loc('DayShortTue'),jsFrontend.locale.loc('DayShortWed'),jsFrontend.locale.loc('DayShortThu'),jsFrontend.locale.loc('DayShortFri'),jsFrontend.locale.loc('DayShortSat')] 52var monthNames=[jsFrontend.locale.loc('MonthLong1'),jsFrontend.locale.loc('MonthLong2'),jsFrontend.locale.loc('MonthLong3'),jsFrontend.locale.loc('MonthLong4'),jsFrontend.locale.loc('MonthLong5'),jsFrontend.locale.loc('MonthLong6'),jsFrontend.locale.loc('MonthLong7'),jsFrontend.locale.loc('MonthLong8'),jsFrontend.locale.loc('MonthLong9'),jsFrontend.locale.loc('MonthLong10'),jsFrontend.locale.loc('MonthLong11'),jsFrontend.locale.loc('MonthLong12')] 53var monthNamesShort=[jsFrontend.locale.loc('MonthShort1'),jsFrontend.locale.loc('MonthShort2'),jsFrontend.locale.loc('MonthShort3'),jsFrontend.locale.loc('MonthShort4'),jsFrontend.locale.loc('MonthShort5'),jsFrontend.locale.loc('MonthShort6'),jsFrontend.locale.loc('MonthShort7'),jsFrontend.locale.loc('MonthShort8'),jsFrontend.locale.loc('MonthShort9'),jsFrontend.locale.loc('MonthShort10'),jsFrontend.locale.loc('MonthShort11'),jsFrontend.locale.loc('MonthShort12')] 54if($.isFunction($.fn.datepicker)){$inputDatefieldNormal.each(function(){var clone=$(this).clone() 55clone.insertAfter(this) 56clone.hide() 57$(this).attr('id',$(this).attr('id')+'-display') 58$(this).attr('name',$(this).attr('name')+'-display') 59$(this).on('change',function(event){if($(this).val()===''){clone.val('')}})}) 60$inputDatefields.datepicker({dayNames:dayNames,dayNamesMin:dayNamesMin,dayNamesShort:dayNamesShort,hideIfNoPrevNext:!0,monthNames:monthNames,monthNamesShort:monthNamesShort,nextText:jsFrontend.locale.lbl('Next'),prevText:jsFrontend.locale.lbl('Previous'),showAnim:'slideDown'}) 61$inputDatefieldNormal.each(function(){var data=$(this).data() 62var phpDate=new Date(data.year,data.month,data.day,0,0,0) 63var value=($(this).val()!=='')?$.datepicker.formatDate(data.mask,phpDate):'' 64$(this).datepicker('option',{dateFormat:data.mask,firstDay:data.firstday,altField:'#'+$(this).attr('id').replace('-display',''),altFormat:'yy-mm-dd'}).datepicker('setDate',value)}) 65$inputDatefieldFrom.each(function(){var data=$(this).data() 66var value=$(this).val() 67$(this).datepicker('option',{dateFormat:data.mask,firstDay:data.firstday,minDate:new Date(parseInt(data.startdate.split('-')[0],10),parseInt(data.startdate.split('-')[1],10)-1,parseInt(data.startdate.split('-')[2],10))}).datepicker('setDate',value)}) 68$inputDatefieldTill.each(function(){var data=$(this).data() 69var value=$(this).val() 70$(this).datepicker('option',{dateFormat:data.mask,firstDay:data.firstday,maxDate:new Date(parseInt(data.enddate.split('-')[0],10),parseInt(data.enddate.split('-')[1],10)-1,parseInt(data.enddate.split('-')[2],10))}).datepicker('setDate',value)}) 71$inputDatefieldRange.each(function(){var data=$(this).data() 72var value=$(this).val() 73$(this).datepicker('option',{dateFormat:data.mask,firstDay:data.firstday,minDate:new Date(parseInt(data.startdate.split('-')[0],10),parseInt(data.startdate.split('-')[1],10)-1,parseInt(data.startdate.split('-')[2],10),0,0,0,0),maxDate:new Date(parseInt(data.enddate.split('-')[0],10),parseInt(data.enddate.split('-')[1],10)-1,parseInt(data.enddate.split('-')[2],10),23,59,59)}).datepicker('setDate',value)})}}},validation:function(){$('input, textarea, select').each(function(){var $input=$(this) 74var options={} 75$.each($input.data(),function(key,value){if(key.indexOf('error')<0)return 76key=key.replace('error','').toLowerCase() 77options[key]=value}) 78$input.html5validation(options)})},placeholders:function(){jQuery.support.placeholder=('placeholder' in document.createElement('input')) 79if(!jQuery.support.placeholder){$('input[placeholder], textarea[placeholder]').on('focus',function(){var input=$(this) 80if(input.val()===input.attr('placeholder')){input.val('') 81input.removeClass('placeholder')}}) 82$('input[placeholder], textarea[placeholder]').on('blur',function(){var input=$(this) 83if(input.val()===''||input.val()===input.attr('placeholder')){input.val(input.attr('placeholder')) 84input.addClass('placeholder')}}) 85$('input[placeholder], textarea[placeholder]').blur() 86$('input[placeholder], textarea[placeholder]').parents('form').submit(function(){$(this).find('input[placeholder]').each(function(){var input=$(this) 87if(input.val()===input.attr('placeholder'))input.val('')})})}},datePicker:function(){$('input[data-role="fork-datepicker"]').each(function(index,datePickerElement){$(datePickerElement).datepicker()})}} 88jsFrontend.gravatar={init:function(){$('.replaceWithGravatar').each(function(){var element=$(this) 89var gravatarId=element.data('gravatarId') 90var size=element.attr('height') 91if(gravatarId!==''){var url='https://www.gravatar.com/avatar/'+gravatarId+'?r=g&d=404' 92if(size!=='')url+='&s='+size 93var gravatar=new Image() 94gravatar.src=url 95gravatar.onload=function(){element.attr('src',url).addClass('gravatarLoaded')}}})}} 96jsFrontend.locale={initialized:!1,data:{},init:function(){$.ajax({url:'/src/Frontend/Cache/Locale/'+jsFrontend.current.language+'.json',type:'GET',dataType:'json',async:!1,success:function(data){js
96Frontend.locale.data=data 97jsFrontend.locale.initialized=!0},error:function(jqXHR,textStatus,errorThrown){throw new Error('Regenerate your locale-files.')}})},get:function(type,key){if(!jsFrontend.locale.initialized)jsFrontend.locale.init() 98if(typeof jsFrontend.locale.data[type][key]==='undefined')return'{$'+type+key+'}' 99return jsFrontend.locale.data[type][key]},act:function(key){return jsFrontend.locale.get('act',key)},err:function(key){return jsFrontend.locale.get('err',key)},lbl:function(key){return jsFrontend.locale.get('lbl',key)},loc:function(key){return jsFrontend.locale.get('loc',key)},msg:function(key){return jsFrontend.locale.get('msg',key)}} 100jsFrontend.statistics={init:function(){jsFrontend.statistics.trackOutboundLinks()},trackOutboundLinks:function(){if(typeof _gaq==='object'||typeof ga==='function'){$.expr[':'].external=function(obj){return(typeof obj.href!=='undefined')&&(obj.hostname!==window.location.hostname)} 101$(document).on('click','a:external:not(.noTracking)',function(e){var hasTarget=(typeof $(this).attr('target')!=='undefined') 102if(!hasTarget)e.preventDefault() 103var link=$(this).attr('href') 104var type='Outbound Links' 105var pageView='/Outbound Links/'+link 106if(link.match(/^mailto:/)){type='Mailto' 107pageView='/Mailto/'+link.substring(7)} 108if(link.match(/^#/)){type='Anchors' 109pageView='/Anchor/'+link.substring(1)} 110if(typeof _gaq==='object'){_gaq.push(['_trackEvent',type,pageView])}else{ga('send','event',type,pageView)} 111if(!hasTarget)setTimeout(function(){document.location.href=link},100)})}}} 112jsFrontend.twitter={init:function(){if(typeof twttr==='object'&&(typeof _gaq==='object'||typeof ga==='object')){twttr.events.on('tweet',function(e){if(e){var targetUrl=null 113if(e.target&&e.target.nodeName==='IFRAME')targetUrl=utils.url.extractParamFromUri(e.target.src,'url') 114if(typeof _gaq==='object'){_gaq.push(['_trackSocial','twitter','tweet',targetUrl])}else{ga('send','social','twitter','tweet',targetUrl)}}})}}} 115$(jsFrontend.init)
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.