{"version":3,"sources":["app.js","course-filter.service.js","course-sort.service.js","course.service.js","employee.service.js","course-filter.controller.js","course-list.controller.js","course-sorter.controller.js","employee-filter.controller.js","employee-list.controller.js","employee-menu.controller.js","child-select.directive.js","page-select.directive.js","example.filter.js","autocomplete.js","custom-select.js","forms.js","print.js","responsive-images.js","scrollTo.js","trigger.js","course.js","courselist.js","ctabanner.js","curriculalist.js","employeelist.js","employees.js","favorites.js","filter.js","footer.js","frontpageHero.js","navigation.js","newsletter.js","newslist.js","overlay.js","search.js","servicelist.js","slider.js","socialshare.js","subnavigation.js","toolbar.js","video.js","master.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5CA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxFA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"master.min.js","sourcesContent":["(function () {\r\n\r\n 'use strict';\r\n\r\n // Declare app level module which depends on views, and components\r\n\r\n angular.module('finansApp', [\r\n 'ngResource',\r\n 'ngCookies',\r\n 'angular-click-outside',\r\n\r\n // services\r\n 'finansApp.employeeService',\r\n 'finansApp.courseService',\r\n 'finansApp.courseSortService',\r\n 'finansApp.courseFilterService',\r\n\r\n // controllers\r\n 'finansApp.employeeListController',\r\n 'finansApp.employeeFilterController',\r\n 'finansApp.employeeMenuController',\r\n 'finansApp.courseListController',\r\n 'finansApp.courseSorterController',\r\n 'finansApp.courseFilterController'\r\n \r\n ])\r\n .value('apiUrl', \"/umbraco/api/\")\r\n .config(function($locationProvider) {\r\n\r\n $locationProvider.html5Mode({\r\n enabled: true,\r\n rewriteLinks: false,\r\n requireBase: false\r\n });\r\n });\r\n\r\n})();\r\n\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('finansApp.courseFilterService', []).factory('courseFilterService', courseFilterService);\r\n \r\n\r\n function State() {\r\n this.showFilter = 0;\r\n this.mobileFilter = false;\r\n this.filter = {\r\n \"SubjectAreas\": [],\r\n \"Types\": [],\r\n \"TargetAudiences\": []\r\n };\r\n\r\n }\r\n\r\n courseFilterService.$inject = ['$filter', '$q'];\r\n\r\n function courseFilterService($filter, $q) {\r\n var state = new State(); \r\n\r\n\r\n // Public\r\n var service = {\r\n state: state,\r\n filterCourses: filterCourses\r\n };\r\n\r\n function filterCourses (arr) {\r\n var deferred = $q.defer();\r\n\r\n var arrFiltered = [];\r\n arrFiltered = filterArray(arr, state.filter.SubjectAreas, \"SubjectAreas\");\r\n arrFiltered = filterArray(arrFiltered, state.filter.TargetAudiences, \"TargetAudiences\");\r\n arrFiltered = filterOnValue(arrFiltered, state.filter.Types, \"CourseTypeNodeId\");\r\n\r\n deferred.resolve(arrFiltered);\r\n\r\n \r\n return deferred.promise;\r\n }\r\n\r\n // Is used is the filterKey is a array of integers \r\n function filterArray(array, filterValues, filterKey) {\r\n var temp = [];\r\n\r\n\r\n // Check if there has been chosen any facilities\r\n if(filterValues == null || !filterValues.length) {\r\n return array;\r\n }\r\n // Loop over all the items\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n\r\n var isInArray = false;\r\n\r\n // Loop over the filter\r\n for (var j = filterValues.length - 1; j >= 0; j--) {\r\n\r\n // Parse the value to a int, since the values on the items are set as ints\r\n var valueAsInt = filterValues[j] * 1;\r\n\r\n \r\n if(contains.call(array[i][filterKey], valueAsInt) && !isInArray) {\r\n temp.push(array[i]);\r\n isInArray = true;\r\n }\r\n }\r\n }\r\n\r\n return temp;\r\n }\r\n \r\n // Is used is the filterKey is a integer\r\n function filterOnValue(array, filterValues, filterKey) {\r\n\r\n var temp = [];\r\n // Check if there has been chosen any facilities\r\n if(filterValues == null || !filterValues.length) {\r\n return array;\r\n }\r\n\r\n // Loop over all the items\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n\r\n // Loop over the filter\r\n for (var j = filterValues.length - 1; j >= 0; j--) {\r\n\r\n // Parse the value to a int, since the values on the items are set as ints\r\n var valueAsInt = filterValues[j] * 1;\r\n\r\n // Check if the the facility in the array of facilities on the hotel\r\n if(array[i][filterKey] == valueAsInt) {\r\n temp.push(array[i]);\r\n }\r\n }\r\n }\r\n\r\n return temp;\r\n }\r\n\r\n // Helper method to check if a array contains a value\r\n var contains = function(needle) {\r\n // Per spec, the way to identify NaN is that it is not equal to itself\r\n var findNaN = needle !== needle;\r\n var indexOf;\r\n\r\n if(!findNaN && typeof Array.prototype.indexOf === 'function') {\r\n indexOf = Array.prototype.indexOf;\r\n } else {\r\n indexOf = function(needle) {\r\n var i = -1, index = -1;\r\n\r\n for(i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n\r\n if((findNaN && item !== item) || item === needle) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n }\r\n\r\n return indexOf.call(this, needle) > -1;\r\n };\r\n\r\n\r\n\r\n \r\n return service;\r\n\r\n\r\n\r\n }\r\n\r\n})();\r\n\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('finansApp.courseSortService', []).factory('courseSortService', courseSortService);\r\n \r\n\r\n function State() {\r\n this.sortOrder = \"date-asc\";\r\n this.options = {\r\n \"name-asc\": \"Navn stigende\",\r\n \"name-desc\": \"Navn faldende\",\r\n \"date-asc\": \"Dato stigende\",\r\n \"date-desc\": \"Dato faldende\"\r\n };\r\n }\r\n\r\n courseSortService.$inject = ['$filter', '$q', '$location'];\r\n\r\n function courseSortService($filter, $q, $location) {\r\n var state = new State(); \r\n\r\n\r\n // Public\r\n var service = {\r\n state: state,\r\n sortCourses: sortCourses,\r\n setUrl: setUrl\r\n };\r\n\r\n function sortCourses(arr) {\r\n var deferred = $q.defer(); \r\n\r\n if(state.sortOrder == \"name-asc\") {\r\n arr = $filter('orderBy')(arr, 'CourseHeadline');\r\n }\r\n else if (state.sortOrder == \"name-desc\") {\r\n arr = $filter('orderBy')(arr, '-CourseHeadline');\r\n }\r\n //Date Asc and Date Desc have similar logic, but the orderby on date. \r\n else if (state.sortOrder == \"date-asc\") {\r\n arr = reArrangeArrayBasedOnSortDate(arr, 'CourseDate', 'CourseHeadline');\r\n }\r\n else if (state.sortOrder == \"date-desc\") {\r\n arr = reArrangeArrayBasedOnSortDate(arr, '-CourseDate', 'CourseHeadline');\r\n }\r\n else {\r\n arr = $filter('orderBy')(arr, 'CourseDate');\r\n }\r\n\r\n deferred.resolve(arr);\r\n \r\n return deferred.promise;\r\n }\r\n\r\n function reArrangeArrayBasedOnSortDate(arr, comparatorExpressionDate, comparatorExpressionName) {\r\n var hasDateDateAsc = []; // A temp holder for the items with a date\r\n var noDateButElearningAsc = []; // A temp holder for the items without a date but E-learning\r\n var noDateNotElearningAsc = []; // A temp holder for the items without a date\r\n arr.forEach(function (element) {\r\n\r\n if (element.CourseDate == null) {\r\n if (element.isElearning) {\r\n noDateButElearningAsc.push(element);\r\n } else {\r\n noDateNotElearningAsc.push(element);\r\n }\r\n \r\n } else {\r\n hasDateDateAsc.push(element);\r\n }\r\n });\r\n\r\n //console.log(arr);\r\n //console.log(hasDateDateAsc);\r\n //console.log(noDateButElearningAsc);\r\n //console.log(noDateNotElearningAsc);\r\n\r\n hasDateDateAsc = $filter('orderBy')(hasDateDateAsc, comparatorExpressionDate);\r\n noDateButElearningAsc = $filter('orderBy')(noDateButElearningAsc, 'CourseHeadline');\r\n noDateNotElearningAsc = $filter('orderBy')(noDateNotElearningAsc, comparatorExpressionName);\r\n\r\n arr = hasDateDateAsc.concat(noDateButElearningAsc).concat(noDateNotElearningAsc);\r\n\r\n //console.log(arr);\r\n //arr = hasDateDateAsc.concat(noDateNotElearningAsc);\r\n return arr;\r\n }\r\n\r\n function setUrl() {\r\n var params = $location.search();\r\n\r\n if(typeof state.sortOrder !== 'undefined' && state.sortOrder) {\r\n params.sort = state.sortOrder;\r\n }\r\n\r\n $location.search(params);\r\n\r\n }\r\n\r\n // Helper method to check if a array contains a value\r\n var contains = function(needle) {\r\n // Per spec, the way to identify NaN is that it is not equal to itself\r\n var findNaN = needle !== needle;\r\n var indexOf;\r\n\r\n if(!findNaN && typeof Array.prototype.indexOf === 'function') {\r\n indexOf = Array.prototype.indexOf;\r\n } else {\r\n indexOf = function(needle) {\r\n var i = -1, index = -1;\r\n\r\n for(i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n\r\n if((findNaN && item !== item) || item === needle) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n }\r\n\r\n return indexOf.call(this, needle) > -1;\r\n };\r\n \r\n return service;\r\n\r\n\r\n\r\n }\r\n\r\n})();\r\n\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('finansApp.courseService', []).factory('courseService', courseService);\r\n \r\n\r\n function State() {\r\n this.courses = [];\r\n this.coursesFiltered = [];\r\n this.filters = {};\r\n this.sortOrder = null;\r\n this.loading = false;\r\n this.tableview = false;\r\n }\r\n\r\n courseService.$inject = ['$resource', '$q', 'apiUrl', '$location'];\r\n\r\n function courseService($resource, $q, apiUrl, $location) {\r\n var state = new State();\r\n\r\n var resource = $resource(apiUrl + \"CourseListApi/:methodName/\", {}, {\r\n getCourses: { method: 'GET', params: { methodName: 'GetCourses'}, isArray: false, cache: true }\r\n });\r\n\r\n // Public\r\n var service = {\r\n state: state,\r\n getCourses: getCourses\r\n };\r\n\r\n function init() {\r\n }\r\n\r\n init();\r\n\r\n function getCourses() {\r\n\r\n var deferred = $q.defer(); \r\n\r\n state.loading = true;\r\n\r\n // Get from API\r\n resource.getCourses().$promise.then(function(response) {\r\n\r\n state.loading = false;\r\n deferred.resolve(response);\r\n\r\n }, function() { \r\n state.loading = false;\r\n deferred.reject();\r\n });\r\n\r\n \r\n return deferred.promise;\r\n }\r\n \r\n\r\n\r\n\r\n \r\n return service;\r\n\r\n\r\n\r\n }\r\n\r\n})();\r\n\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('finansApp.employeeService', []).factory('employeeService', employeeService);\r\n \r\n\r\n function State() {\r\n this.employees = [];\r\n this.filteredEmployees = [];\r\n this.searchQuery = \"\";\r\n this.selectedDepartments = {};\r\n this.selectedSubjects = {};\r\n this.associates = {};\r\n this.associates.list = [];\r\n this.associates.headline = \"\";\r\n this.associates.splitList = false;\r\n }\r\n\r\n employeeService.$inject = ['$resource', '$q', 'apiUrl', '$location'];\r\n\r\n function employeeService($resource, $q, apiUrl, $location) {\r\n var state = new State();\r\n\r\n var resource = $resource(apiUrl + \"EmployeeApi/:methodName/\", {}, {\r\n getEmployees: { method: 'GET', params: { methodName: 'GetEmployees'}, isArray: false }\r\n });\r\n\r\n // Public\r\n var service = {\r\n state: state,\r\n getEmployees: getEmployees,\r\n filterEmployees: filterEmployees\r\n };\r\n\r\n function init() {\r\n }\r\n\r\n init();\r\n\r\n function getEmployees() {\r\n\r\n var deferred = $q.defer(); \r\n\r\n // Get from API\r\n resource.getEmployees().$promise.then(function(response) {\r\n\r\n if(response.Employees) {\r\n state.employees = response.Employees;\r\n state.filteredEmployees = response.Employees;\r\n }\r\n\r\n if(response.DisplayAssociatesSeparately.length) {\r\n state.associates.list = response.DisplayAssociatesSeparately;\r\n state.associates.headline = response.AssociatesHeadline;\r\n }\r\n\r\n deferred.resolve();\r\n\r\n }, function() {\r\n deferred.reject();\r\n });\r\n\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function filterEmployees() {\r\n var temp1 = [];\r\n var temp2 = [];\r\n\r\n if(Object.keys(state.selectedSubjects).length) {\r\n\r\n // Loop over the keys\r\n for (var key in state.selectedSubjects){\r\n var key = key * 1\r\n\r\n for (var i = state.employees.length - 1; i >= 0; i--) {\r\n if(contains.call(state.employees[i].SubjectAreasArr, key)) {\r\n temp1.push(state.employees[i])\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n temp1 = state.employees;\r\n }\r\n\r\n if(Object.keys(state.selectedDepartments).length) {\r\n\r\n // Loop over the keys\r\n for (var key in state.selectedDepartments){\r\n var key = key * 1\r\n\r\n for (var i = temp1.length - 1; i >= 0; i--) {\r\n if(contains.call(temp1[i].DepartmentArr, key)) {\r\n temp2.push(temp1[i])\r\n }\r\n }\r\n }\r\n } else {\r\n temp2 = temp1;\r\n }\r\n\r\n state.filteredEmployees = temp2;\r\n\r\n splitAssociates();\r\n\r\n }\r\n\r\n function splitAssociates() {\r\n var selectedDepartmentsArr = Object.keys(state.selectedDepartments);\r\n var selectedDepartmentsId = selectedDepartmentsArr.length == 1 ? selectedDepartmentsArr[0] * 1 : null;\r\n \r\n if(state.associates.list.length && selectedDepartmentsId && contains.call(state.associates.list, selectedDepartmentsId)) {\r\n state.associates.splitList = true;\r\n } else {\r\n state.associates.splitList = false;\r\n }\r\n }\r\n\r\n\r\n var contains = function(needle) {\r\n // Per spec, the way to identify NaN is that it is not equal to itself\r\n var findNaN = needle !== needle;\r\n var indexOf;\r\n\r\n if(!findNaN && typeof Array.prototype.indexOf === 'function') {\r\n indexOf = Array.prototype.indexOf;\r\n } else {\r\n indexOf = function(needle) {\r\n var i = -1, index = -1;\r\n\r\n for(i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n\r\n if((findNaN && item !== item) || item === needle) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n }\r\n\r\n return indexOf.call(this, needle) > -1;\r\n };\r\n\r\n\r\n \r\n return service;\r\n\r\n\r\n\r\n }\r\n\r\n})();\r\n\r\n","(function () {\r\n 'use strict';\r\n angular.module('finansApp.courseFilterController', []).controller('courseFilterController', courseFilterController);\r\n\r\n courseFilterController.$inject = ['courseService', 'courseSortService', 'courseFilterService', '$filter', '$timeout', '$cookies', '$location'];\r\n\r\n\r\n function courseFilterController(courseService, courseSortService, courseFilterService, $filter, $timeout, $cookies, $location) {\r\n var vm = this;\r\n var $body = $('body');\r\n vm.state = courseFilterService.state;\r\n vm.courseService = {}\r\n vm.courseService.state = courseService.state\r\n\r\n vm.filterList = function () {\r\n\r\n // Set the filter in proper order\r\n courseFilterService.filterCourses(vm.courseService.state.courses).then(function (arr) {\r\n // Set the sort in proper order\r\n courseSortService.sortCourses(arr).then(function (data) {\r\n vm.courseService.state.coursesFiltered = data;\r\n })\r\n\r\n // Once we have the data, init the images with responsive\r\n $timeout(function () {\r\n novicell.responsiveLazyloadImage.onLoad();\r\n finansudd.favorites.setFavoritesOnlist();\r\n }, 0);\r\n\r\n })\r\n\r\n }\r\n\r\n vm.toggleFilter = function (filterType) {\r\n\r\n if (filterType !== vm.state.showFilter) {\r\n vm.state.showFilter = filterType;\r\n } else {\r\n vm.state.showFilter = 0;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.toggleMobileFilter = function () {\r\n toggleOverlay();\r\n }\r\n\r\n vm.saveViewCookie = function () {\r\n var tableView = vm.courseService.state.tableview;\r\n $cookies.put('table-view', tableView);\r\n \r\n if(tableView){\r\n $location.search('layout', 'list');\r\n }\r\n else {\r\n $location.search('layout', null);\r\n }\r\n\r\n // Once we have the data, init the images with responsive\r\n $timeout(function () {\r\n novicell.responsiveLazyloadImage.onLoad();\r\n }, 0);\r\n }\r\n\r\n vm.resetFilter = function () {\r\n vm.state.filter.SubjectAreas = [];\r\n vm.state.filter.Types = [];\r\n vm.state.filter.TargetAudiences = [];\r\n\r\n vm.filterList();\r\n }\r\n\r\n vm.filterCourses = function (alias, id) {\r\n var arr = vm.state.filter[alias];\r\n\r\n if (arr.length && contains.call(arr, id)) {\r\n var index = arr.indexOf(id);\r\n if (index > -1) {\r\n arr.splice(index, 1);\r\n }\r\n } else {\r\n arr.push(id);\r\n }\r\n\r\n vm.filterList();\r\n // Set the url\r\n setUrl();\r\n }\r\n\r\n vm.removeFilter = function (alias, id) {\r\n var arr = vm.state.filter[alias];\r\n var index = arr.indexOf(id);\r\n\r\n if (index > -1) {\r\n arr.splice(index, 1);\r\n }\r\n\r\n vm.filterList();\r\n\r\n setUrl();\r\n }\r\n\r\n\r\n\r\n function init() {\r\n courseService.getCourses().then(getDataFromUrl, getDataFromUrl)\r\n }\r\n\r\n function toggleOverlay() {\r\n\r\n if ($body.hasClass('open-overlay')) {\r\n $body.removeClass('open-overlay');\r\n } else {\r\n $body.addClass('open-overlay');\r\n }\r\n }\r\n\r\n\r\n // Helper method to check if a array contains a value\r\n var contains = function (needle) {\r\n // Per spec, the way to identify NaN is that it is not equal to itself\r\n var findNaN = needle !== needle;\r\n var indexOf;\r\n\r\n if (!findNaN && typeof Array.prototype.indexOf === 'function') {\r\n indexOf = Array.prototype.indexOf;\r\n } else {\r\n indexOf = function (needle) {\r\n var i = -1, index = -1;\r\n\r\n for (i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n\r\n if ((findNaN && item !== item) || item === needle) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n }\r\n\r\n return indexOf.call(this, needle) > -1;\r\n };\r\n\r\n\r\n function getDataFromUrl(data) {\r\n var params = $location.search();\r\n var filters = $location.$$hash.split(',');\r\n\r\n if (typeof (params['filter']) !== 'undefined' && params['filter']) {\r\n filters = filters.concat(params['filter'].split(\",\"));\r\n }\r\n\r\n filters.forEach(function(el) {\r\n var filter = data.Filters[el];\r\n\r\n if(typeof filter != 'undefined' && filter) {\r\n var elAsInt = el * 1;\r\n vm.state.filter[filter.Category].push(elAsInt);\r\n }\r\n });\r\n\r\n\r\n // Remove the hashes;\r\n $location.$$hash = null;\r\n \r\n setUrl();\r\n }\r\n\r\n function setUrl() {\r\n var params = $location.search();\r\n\r\n if (typeof vm.state.filter !== 'undefined' && vm.state.filter) {\r\n params.filter = vm.state.filter.SubjectAreas;\r\n params.filter = params.filter.concat(vm.state.filter.Types);\r\n params.filter = params.filter.concat(vm.state.filter.TargetAudiences);\r\n params.filter = params.filter.join(\",\");\r\n }\r\n\r\n $location.search(params);\r\n\r\n }\r\n\r\n\r\n\r\n\r\n init();\r\n\r\n\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n angular.module('finansApp.courseListController', []).controller('courseListController', courseListController);\r\n \r\n courseListController.$inject = ['courseService', 'courseSortService', 'courseFilterService', '$timeout', '$cookies', '$location'];\r\n\r\n\r\n function courseListController(courseService, courseSortService, courseFilterService, $timeout, $cookies, $location) {\r\n var vm = this;\r\n vm.state = courseService.state;\r\n vm.state.sortOrder = courseSortService.state.sortOrder;\r\n vm.state.limit = 6;\r\n\r\n vm.loadMore = function() {\r\n vm.state.limit += 6;\r\n \r\n // Once we have the data, init the images with responsive\r\n $timeout(function() {\r\n novicell.responsiveLazyloadImage.onLoad();\r\n }, 0);\r\n }\r\n\r\n vm.saveIdInUrl = function(id) {\r\n var params = $location.search();\r\n\r\n if (id) {\r\n params.id = id;\r\n }\r\n\r\n $location.search(params);\r\n }\r\n \r\n vm.goToUrl = function (id, url) {\r\n vm.saveIdInUrl(id)\r\n location.href = url;\r\n }\r\n\r\n vm.showFilter = function(id) {\r\n if(courseFilterService.state.showFilter == id) {\r\n courseFilterService.state.showFilter = 0;\r\n } else {\r\n courseFilterService.state.showFilter = id;\r\n }\r\n }\r\n\r\n vm.sortList = function(sortOrder) {\r\n vm.state.sortOrder = sortOrder;\r\n courseSortService.state.sortOrder = vm.state.sortOrder;\r\n \r\n courseSortService.sortCourses(courseService.state.coursesFiltered).then(function(arr){\r\n courseService.state.coursesFiltered = arr;\r\n })\r\n courseSortService.setUrl();\r\n\r\n // Once we have the data, init the images with responsive\r\n $timeout(function() {\r\n novicell.responsiveImages.init();\r\n }, 0);\r\n }\r\n \r\n\r\n function init(data) {\r\n setViewFromUrl();\r\n getViewFromCookie();\r\n\r\n if(data.Courses) {\r\n vm.state.courses = data.Courses;\r\n vm.state.coursesFiltered = vm.state.courses;\r\n vm.state.filters = data.Filters;\r\n }\r\n\r\n // Set the filter in proper order\r\n courseFilterService.filterCourses(vm.state.courses).then(function (arr) {\r\n // Set the sort in proper order\r\n courseSortService.sortCourses(arr).then(function (data) {\r\n vm.state.coursesFiltered = data;\r\n })\r\n\r\n // Once we have the data, init the images with responsive\r\n $timeout(function () {\r\n novicell.responsiveLazyloadImage.onLoad();\r\n finansudd.favorites.setFavoritesOnlist();\r\n }, 0);\r\n\r\n $timeout(scrollToItem, 50);\r\n\r\n })\r\n } \r\n\r\n function setViewFromUrl() {\r\n if(window.location.search.indexOf('layout') > -1 && window.location.search.split('layout=')[1] == \"list\") {\r\n vm.state.tableview = $cookies.put('table-view', true);\r\n } \r\n\r\n }\r\n\r\n\r\n function getViewFromCookie() {\r\n vm.state.tableview = $cookies.get('table-view') == 'true';\r\n }\r\n\r\n function scrollToItem() {\r\n var params = $location.search();\r\n\r\n if(typeof params.id != 'undefined' && params.id != '') {\r\n finansudd.scrollTo.scrollTarget('#' + params.id)\r\n }\r\n \r\n }\r\n\r\n courseService.getCourses().then(init, init);\r\n\r\n\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n angular.module('finansApp.courseSorterController', []).controller('courseSorterController', courseSorterController);\r\n \r\n courseSorterController.$inject = ['courseService', 'courseSortService', '$filter', '$timeout', '$location'];\r\n\r\n\r\n function courseSorterController(courseService, courseSortService, $filter, $timeout, $location) {\r\n var vm = this;\r\n vm.state = courseSortService.state;\r\n vm.state.showFilter = false;\r\n\r\n\r\n vm.sortList = function() {\r\n\r\n courseSortService.sortCourses(courseService.state.coursesFiltered).then(function(arr){\r\n courseService.state.coursesFiltered = arr;\r\n })\r\n\r\n // Once we have the data, init the images with responsive\r\n $timeout(function() {\r\n novicell.responsiveImages.init();\r\n }, 0);\r\n }\r\n\r\n vm.setSorting = function(value) {\r\n vm.state.sortOrder = value;\r\n vm.state.showFilter = false;\r\n vm.sortList();\r\n\r\n courseSortService.setUrl()\r\n }\r\n\r\n function init() {\r\n getDataFromUrl();\r\n }\r\n\r\n function getDataFromUrl() {\r\n var params = $location.search();\r\n\r\n if(typeof (params['sort']) !== 'undefined' && params['sort']) {\r\n vm.state.sortOrder = params['sort'];\r\n }\r\n }\r\n\r\n \r\n init();\r\n\r\n\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n angular.module('finansApp.employeeFilterController', []).controller('employeeFilterController', employeeFilterController);\r\n \r\n employeeFilterController.$inject = ['employeeService'];\r\n\r\n\r\n function employeeFilterController(employeeService) {\r\n var vm = this;\r\n vm.state = employeeService.state;\r\n vm.state.showFilter = 0;\r\n vm.state.mobileFilter = false;\r\n var $body = $('body');\r\n\r\n \r\n vm.toggleFilter = function(filterType) {\r\n\r\n if(filterType !== vm.state.showFilter) {\r\n vm.state.showFilter = filterType;\r\n } else {\r\n vm.state.showFilter = 0; \r\n }\r\n\r\n\r\n }\r\n\r\n vm.toggleMobileFilter = function() {\r\n toggleOverlay();\r\n }\r\n\r\n vm.resetFilter = function() {\r\n vm.state.selectedDepartments = {};\r\n vm.state.selectedSubjects = {};\r\n vm.state.searchQuery = \"\";\r\n\r\n employeeService.filterEmployees()\r\n }\r\n\r\n vm.removeFilter = function(id, obj) {\r\n delete obj[id];\r\n\r\n employeeService.filterEmployees()\r\n }\r\n\r\n vm.changeFilter = function(id, name, filterTypeID) {\r\n var obj;\r\n\r\n if(filterTypeID == 3129) {\r\n obj = vm.state.selectedDepartments;\r\n } else if (filterTypeID == 3130) {\r\n obj = vm.state.selectedSubjects;\r\n } else {\r\n obj = [];\r\n }\r\n\r\n\r\n if(typeof (obj[id]) === 'undefined' && !obj[id]) {\r\n obj[id] = name;\r\n } else {\r\n delete obj[id];\r\n }\r\n\r\n\r\n // Filter the array of employees\r\n employeeService.filterEmployees()\r\n\r\n }\r\n\r\n\r\n function toggleOverlay() {\r\n\r\n if($body.hasClass('open-overlay')) {\r\n $body.removeClass('open-overlay');\r\n } else {\r\n $body.addClass('open-overlay');\r\n }\r\n }\r\n\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n angular.module('finansApp.employeeListController', []).controller('employeeListController', employeeListController);\r\n \r\n employeeListController.$inject = ['employeeService'];\r\n\r\n\r\n function employeeListController(employeeService) {\r\n var vm = this;\r\n vm.state = employeeService.state;\r\n\r\n function init() {\r\n\r\n // Once we have the data, init the images with responsive\r\n setTimeout(function() {\r\n novicell.responsiveImages.init();\r\n }, 500);\r\n }\r\n\r\n vm.isAssociate = function(item) {\r\n\r\n if(vm.state.associates.splitList)\r\n {\r\n if(!item.IsAssociate) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n return true; // otherwise it won't be within the results\r\n\r\n }\r\n \r\n employeeService.getEmployees().then(init, init);\r\n\r\n\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n angular.module('finansApp.employeeMenuController', []).controller('employeeMenuController', employeeMenuController);\r\n \r\n employeeMenuController.$inject = ['employeeService'];\r\n\r\n\r\n function employeeMenuController(employeeService) {\r\n var vm = this;\r\n vm.state = employeeService.state;\r\n vm.state.hasFilter = false;\r\n vm.state.currentFilter = angular.copy(vm.state.selectedDepartments);\r\n\r\n vm.clearFilter = function() {\r\n vm.state.selectedDepartments = {};\r\n vm.state.currentFilter = {};\r\n vm.state.hasFilter = false;\r\n\r\n employeeService.filterEmployees(); \r\n }\r\n vm.changeFilter = function(id, name) {\r\n vm.state.hasFilter = true;\r\n vm.state.selectedDepartments = {};\r\n vm.state.selectedDepartments[id] = name;\r\n\r\n vm.state.currentFilter = angular.copy(vm.state.selectedDepartments);\r\n\r\n\r\n employeeService.filterEmployees();\r\n }\r\n\r\n\r\n }\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('sdhApp.childSelect', []).directive('childSelect', childSelect);\r\n \r\n childSelect.$inject = [];\r\n\r\n function childSelect() {\r\n\r\n var directive = {\r\n restrict: 'EA',\r\n scope: {\r\n model: \"=model\",\r\n temp: \"=tempModel\",\r\n show: \"=show\"\r\n },\r\n templateUrl: 'child-select.html',\r\n controller: ChildSelectController,\r\n controllerAs: 'ctrl',\r\n bindToController: true\r\n };\r\n\r\n return directive;\r\n }\r\n\r\n ChildSelectController.$inject = [\"$scope\", \"hotelService\"];\r\n \r\n function ChildSelectController($scope, hotelService) {\r\n var vm = this;\r\n vm.error = false;\r\n\r\n // Change the count of input field to apply children ages\r\n vm.changeChildrenCount = function(num) {\r\n if((num < 0 && vm.temp.length > 0) || (num > 0 && vm.temp.length < hotelService.state.maxChildren)) {\r\n\r\n // Add or remove from array\r\n if(num > 0) {\r\n vm.temp.push(\"\");\r\n } else {\r\n vm.temp.pop();\r\n } \r\n }\r\n }\r\n\r\n vm.addChildren = function() {\r\n\r\n console.log(vm.temp);\r\n\r\n var valid = checkArray(vm.temp);\r\n\r\n if(valid) {\r\n vm.model = angular.copy(vm.temp);\r\n vm.error = false;\r\n vm.show = false;\r\n } else {\r\n vm.error = true;\r\n }\r\n }\r\n\r\n\r\n // Check for empty values\r\n function checkArray(my_arr){\r\n for(var i=0;i :not(.ui-autocomplete-category):not(.ui-autocomplete-block)\").appendTo(\"#suggestionListContainer\");\r\n },\r\n _renderMenu: function (ul, items) {\r\n var that = this,\r\n currentSection = \"\",\r\n showCourselist = self.autocompleteResults.CourseResults.Total > 0 ? true : false,\r\n showServicelist = self.autocompleteResults.ServiceResults.Total > 0 ? true : false,\r\n showOtherlist = self.autocompleteResults.OtherResults.Total > 0 ? true : false;\r\n\r\n ul.attr(\"class\", \"result-list\");\r\n\r\n // Courses\r\n if (showCourselist) {\r\n ul.append(\"
  • Katalog (\" + self.autocompleteResults.CourseResults.Total + \")
  • \");\r\n }\r\n\r\n $.each(self.autocompleteResults.CourseResults.List, function (index, item) {\r\n var li;\r\n item.label = item.Title;\r\n item.value = item.Title;\r\n li = that._renderItemData(ul, item);\r\n if (item.ContentSection) {\r\n li.attr(\"aria-label\", item.ContentSection + \" : \" + item.Title);\r\n }\r\n });\r\n if (self.autocompleteResults.CourseResults.SearchPageUrl && showCourselist) {\r\n ul.append(\"
  • Se hele kataloget
  • \");\r\n }\r\n \r\n // Services\r\n if (showServicelist) {\r\n ul.append(\"
  • Konsulentydelser (\" + self.autocompleteResults.ServiceResults.Total + \")
  • \");\r\n }\r\n\r\n $.each(self.autocompleteResults.ServiceResults.List, function (index, item) {\r\n var li;\r\n item.label = item.Title;\r\n item.value = item.Title;\r\n li = that._renderItemData(ul, item);\r\n if (item.ContentSection) {\r\n li.attr(\"aria-label\", item.ContentSection + \" : \" + item.Title);\r\n }\r\n });\r\n if (self.autocompleteResults.ServiceResults.SearchPageUrl && showServicelist) {\r\n ul.append(\"
  • Se alle konsulentydelser
  • \");\r\n }\r\n\r\n // Other pages\r\n if (showOtherlist) {\r\n ul.append(\"
  • Øvrige sider (\" + self.autocompleteResults.OtherResults.Total + \")
  • \");\r\n }\r\n\r\n $.each(self.autocompleteResults.OtherResults.List, function (index, item) {\r\n var li;\r\n item.label = item.Title;\r\n item.value = item.Title;\r\n li = that._renderItemData(ul, item);\r\n if (item.ContentSection) {\r\n li.attr(\"aria-label\", item.ContentSection + \" : \" + item.Title);\r\n }\r\n });\r\n\r\n // Add the no-result message\r\n if(!showOtherlist && !showCourselist && !showServicelist) {\r\n ul.append(\"
  • Ingen resultat
  • \");\r\n }\r\n },\r\n\r\n _renderItem: function (ul, item) {\r\n var link = $(\"\").attr(\"href\", item.Url).append(item.Title).attr('class', 'more');\r\n var li = $(\"
  • \").append(link);\r\n return li.appendTo(ul);\r\n }\r\n });\r\n\r\n};"," \r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.customSelect = new function(){\r\n\r\n\tvar self = this;\r\n\r\n\tthis.init = function() {\r\n\r\n\t\tvar selector = '.html-select',\r\n\t\t\t$select = $('.html-select + select'),\r\n\t\t\t$listItem = $(selector).find('li'),\r\n\t\t\t$selectWrapper = $(selector).parents('.select-holder');\r\n\r\n\t\t\r\n\t\tself.breakTheList();\r\n\t\tself.setActiveList();\r\n\t\tself.removeFilterPills();\r\n\r\n\t\t$listItem.click(function() {\r\n\t\t //try{\r\n\t\t //try{\r\n\t\t var $this = $(this),\r\n dataValue = $this.attr('data-value'),\r\n $parentHtmlSelect = $this.parents(selector),\r\n $parentSelect = $parentHtmlSelect.siblings('select');\r\n\t\t $option = $parentSelect.children('option[value=\"'+dataValue+'\"]');\r\n\r\n\r\n\t\t // Check if its a multiple select\r\n\t\t if(!$parentHtmlSelect.hasClass('multiple')) {\r\n\r\n\t\t // Set the value\r\n\t\t $option.prop('selected', true).change();\r\n\t\t } else {\r\n\r\n\t\t // Toggle selected state\r\n\t\t if($option.is(':selected')) {\r\n\t\t $option.prop('selected', false).change();\r\n\t\t } else {\r\n\t\t $option.prop('selected', true).change();\r\n\t\t }\r\n\t\t }\r\n\t\t //}\r\n\t\t //catch (e) {\r\n\r\n\t\t //}\r\n\t\t}); \r\n\r\n\t};\r\n\r\n\tthis.setActiveList = function() {\r\n\r\n\t\t$('.select-filter').on('change', function() {\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\tval = [],\r\n\t\t\t\t$htmlSelect = $this.siblings('.html-select');\r\n\r\n\t\t\t$this.find('option:selected').each(function(i){\r\n\r\n\t\t\t val.push({\r\n\t\t\t title: $(this).text(), \r\n\t\t\t dataval: $(this).val()\r\n\t\t\t });\r\n\t\t\t});\r\n\r\n\t\t\tself.selectList($htmlSelect, val);\r\n\r\n\t\t\t// Special-case for the employee-navigation\r\n\t\t\tif ($this.attr('id') == \"Afdelinger\") {\r\n\t\t\t\tself.selectList($('.employee-navigation'), val);\r\n\t\t\t}\r\n\r\n\t\t\t// Check if its a multiple select and add the pills\r\n\t\t\tif($htmlSelect.hasClass('multiple')) {\r\n\t\t\t\tself.addFilterPills($htmlSelect, val);\r\n\t\t\t}\t\t\r\n\r\n\t\t});\r\n\r\n\t};\r\n\r\n\tthis.selectList = function(selector, val) {\r\n\r\n\t\t// Reset the select\r\n\t\tselector.find('li').removeClass('selected');\r\n\t\t// Find the selected value from options and select the list-item\r\n\t\tif (val != null) {\r\n\r\n\t\t\t$.each(val, function(index, value) {\r\n\t\t\t\tselector.find('li[data-value=\"'+val[index].dataval+'\"]').addClass('selected');\r\n\t\t\t});\t\t\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tthis.addFilterPills = function(selector, val) {\r\n\t\tvar $selectedValue = selector.parents('.select-wrapper').find('.selected-value');\r\n\t\t// Reset the select\r\n\t\t$selectedValue.html('');\r\n\t\t// Find the selected value from options and select the list-item\r\n\t\tif (val != null) {\r\n\r\n\t\t\t$.each(val, function(index, value) {\r\n\t\t\t\t$selectedValue.append(''+val[index].title+'');\r\n\t\t\t});\t\t\r\n\t\t}\r\n\t}\r\n\r\n\tthis.removeFilterPills = function() {\r\n\r\n\t\t$('.selected-value').on('click', '.filter-pill', function() {\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\t$select = $this.parents('.select-wrapper').find('select'),\r\n\t\t\t\tdataValue = $this.attr('data-value');\r\n\r\n\t\t\t$select.children('option[value=\"'+dataValue+'\"]').prop('selected', false).change();\r\n\r\n\t\t});\r\n\r\n\t};\r\n\r\n\tthis.hideDropdown = function(selector) {\r\n\t\tselector.removeClass('active-filter');\r\n\t}\r\n\r\n\tthis.breakTheList = function(selector) {\r\n\t\tvar $parentUl = $('ul.html-select'),\r\n\t\t\titemsPerRow = 9;\r\n\r\n\t\t$parentUl.each(function() {\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\t$item = $this.find('li'),\r\n\t\t\t\t$row = $this.children('.list-wrap');\r\n\r\n\r\n\t\t\t\t// Add columns depending on the the itemPerRow\r\n\t\t\t\tvar x = $item.length;\r\n\t\t\t\tswitch (true) {\r\n\r\n\t\t\t\t case (x >=9 && x < 18): {\r\n\t\t\t\t \t$this.addClass('two-columns');\r\n\t\t\t\t break;\r\n\t\t\t\t }\r\n\r\n\t\t\t\t case (x >= 18): {\r\n\t\t\t\t \t$this.addClass('three-columns');\r\n\t\t\t\t break;\r\n\t\t\t\t }\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.setUlWidth($this);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tthis.setUlWidth = function(parent) {\r\n\r\n\t\t// Apply the width to parent container;\r\n\t\tvar $rowUl = parent;\r\n\r\n\t\t$rowUl.show();\r\n\r\n\t\tvar totalWidth = $rowUl.outerWidth(true);\r\n\t\t\r\n\t\t$rowUl.hide();\r\n\r\n\r\n\r\n\t\t// Position the UL right, if the screen-width is too small for the dropdown\r\n\t\tvar\t$parent = $rowUl.parent(),\r\n\t\t\toffset = $parent.offset(),\r\n\t\t\toffsetRight = $( document ).width() - (offset.left);\r\n\r\n\r\n\t\tif (totalWidth > offsetRight) {\r\n\t\t\tvar gap = totalWidth - offsetRight + 30;\r\n\t\t\tvar offsetWidth = (offsetRight/2);\r\n\r\n\t\t\tif (offsetWidth > offset.left) {\r\n\t\t\t\toffsetWidth = offsetWidth + gap;\r\n\t\t\t} else {\r\n\t\t\t\toffsetWidth = 0;\r\n\t\t\t}\r\n\r\n\t\t\t$rowUl.css({\r\n\t\t\t\t'left': 'inherit',\r\n\t\t\t\t'right': '-' + offsetWidth + 'px'\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n};\r\n\r\n\r\n","var finansudd = finansudd || {};\r\n\r\nfinansudd.forms = new function(){\r\n\r\n var self = this;\r\n\r\n\r\n this.init = function () {\r\n\r\n self.addId();\r\n self.toggleClassEffect();\r\n self.dialogModal();\r\n self.validation();\r\n\r\n\t};\r\n\r\n this.validation = function () {\r\n var $form = $('.validate-form form');\r\n \r\n // Bind the parsley validation if form exists\r\n if ($form.length) {\r\n\r\n $form.parsley({\r\n errorClass: 'has-error',\r\n successClass: 'has-success',\r\n classHandler: function (ParsleyField) {\r\n return ParsleyField.$element.parents('.form-group');\r\n },\r\n errorsContainer: function (ParsleyField) {\r\n return ParsleyField.$element.parents('.form-group');\r\n },\r\n errorsWrapper: '',\r\n errorTemplate: '
    '\r\n });\r\n\r\n }\r\n }\r\n\r\n this.addId = function () {\r\n var form = $(\".contour\");\r\n\r\n form.each(function (index) {\r\n\r\n var formId = $(this).attr(\"id\");\r\n var form = $(this).find(\"form\")\r\n var formAction = form.attr(\"action\");\r\n\r\n form.attr(\"action\", formAction + \"#\" + formId);\r\n });\r\n };\r\n\r\n\r\n this.toggleClassEffect = function() {\r\n // trim polyfill : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim\r\n var $input = $('.form-group > input, .form-group > textarea');\r\n\r\n $input.each(function() {\r\n var $this = $(this);\r\n\r\n $this.focus(function() {\r\n $(this).parent().addClass('has-been-focused');\r\n $(this).parent().addClass('is-focused');\r\n });\r\n\r\n $this.blur(function() {\r\n $(this).parent().removeClass('is-focused');\r\n });\r\n\r\n\r\n });\r\n\r\n };\r\n\r\n this.dialogModal = function() {\r\n var $modal = $('.modal.auto-open');\r\n\r\n if ($modal.length) {\r\n $modal.modal('show');\r\n }\r\n\r\n };\r\n\r\n};","\r\nvar finansudd = finansudd || {};\r\n\r\nfinansudd.print = new function(){\r\n\r\n var self = this;\r\n\r\n this.printModule = function (selector) {\r\n\r\n \t\tvar data = $(selector).clone().children();\r\n\r\n \t\t$(data).find('script').remove();\r\n \t\tvar dataContainer = $('
    ').html(data)\r\n \t\tvar title = $(\"title\").html();\r\n \t\tvar printWindow = window.open('/print.htm', '.print', 'height=800,width=640');\r\n \t\tprintWindow.document.write('' + title + '');\r\n \t\tprintWindow.document.write('');\r\n \t\tprintWindow.document.write('');\r\n \t\tprintWindow.document.write($(dataContainer).html());\r\n \t\tprintWindow.document.write('');\r\n \t\tprintWindow.document.close();\r\n \t\tprintWindow.focus();\r\n \t\tprintWindow.onload = function () {\r\n \t\t printWindow.print();\r\n \t\t}\r\n \t\t//printWindow.print();\r\n \t\t//printWindow.close();\r\n \t\treturn true;\r\n\r\n };\r\n\r\n};","/**\r\n * @desc Responsive image script, servering the image depending on parent-wrapper width and aspect-ratio parameter\r\n * html example
    \r\n * js example novicell.responsiveImages.init()\r\n * @author Danni Larsen - DLA, JHA - Jonas Havmøller\r\n * @return -tag inside selector\r\n * @requires jquery@1.11.3\r\n * @note: Remember to run this on resize too and remember to add and image-tag in a no-script-tag for older browsers\r\n*/\r\n\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.responsiveImages = new function () {\r\n var self = this;\r\n\r\n this.init = function () {\r\n\r\n $('.responsiveimg').each(function () {\r\n var $this = $(this);\r\n\r\n if ($this.attr('lazyload') == null) {\r\n self.contructImage($this);\r\n\r\n } else {\r\n self.setFigureSkeleton($this);\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n this.contructImage = function (el, w, ratio, ratioRnd) {\r\n\r\n // Calc the vars if we dont already got them \r\n w = w || el.width() !== 0 ? el.width() : $(el).parent().width(); // If the value is null, take the width of parent container\r\n ratio = ratio || el.attr('data-ratio') || \"\";\r\n ratioRnd = ratioRnd || Math.round(w / 100 * ratio);\r\n\r\n\r\n var hString = ratio !== \"\" ? '&height=' + ratioRnd : \"\";\r\n var src = el.attr('data-imgsrc').replace(\"cropmode=percentage\", \"cropmode=crop\");\r\n var wRnd = Math.round(w / 50) * 50;\r\n var greyScale = el.attr('greyscale') !== \"\" ? \"\" : \"&filter=greyscale\";\r\n var alt = el.attr('data-alt') || \"\";\r\n\r\n // Reset the min-height to avoid any odd heights on resize\r\n el.css('min-height', 0);\r\n\r\n // Init the image\r\n if (el.hasClass('bg-image')) {\r\n // If its a background image apply the style to the parent div\r\n el.closest('div').attr('style', 'background: url(\"' + src + '&width=' + wRnd + hString + greyScale + '&quality=100\") center center no-repeat; background-size: cover;');\r\n } else {\r\n el.html('\"'');\r\n }\r\n\r\n el.css('opacity', '1');\r\n };\r\n\r\n this.setFigureSkeleton = function (el) {\r\n\r\n var w = el.width() != 0 ? el.width() : $(el).parent().width(); // If the value is null, take the width of parent container\r\n var ratio = el.attr('data-ratio') || \"\";\r\n var ratioRnd = Math.round(w / 100 * ratio);\r\n var hRnd = Math.round(ratioRnd / 10) * 10;\r\n\r\n el.css('min-height', ratioRnd);\r\n el.css('opacity', '0');\r\n self.lazyloadImages(el, w, ratio, ratioRnd);\r\n\r\n };\r\n\r\n this.lazyloadImages = function (el, w, ratio, ratioRnd) {\r\n $(el).each(function () {\r\n var $this = $(this);\r\n\r\n if ($this.visible()) {\r\n $this.removeAttr('lazyload');\r\n self.contructImage($this, w, ratio, ratioRnd);\r\n }\r\n\r\n\r\n });\r\n\r\n\r\n };\r\n\r\n};\r\n\r\n\r\n\r\nnovicell.responsiveLazyloadImage = novicell.responsiveLazyloadImage || function () {\r\n var lastRefreshWidth = 0;\r\n var refreshWidth = 50;\r\n\r\n function onScroll() {\r\n $('.responsiveLazyload').each(function () {\r\n loadImage($(this));\r\n });\r\n }\r\n\r\n function onLoad() {\r\n $('.responsiveLazyload').each(function () {\r\n var $figure = $(this).parent();\r\n\r\n if ($figure.visible(true) || $(this).data(\"load\") === \"always\") {\r\n loadImage($(this), true);\r\n } else {\r\n constructPlaceholder($figure);\r\n }\r\n });\r\n }\r\n\r\n function onResize(callback) {\r\n if (window.innerWidth > lastRefreshWidth + refreshWidth || window.innerWidth < lastRefreshWidth - refreshWidth) {\r\n $('.lazyResizeReload').each(function () {\r\n constructImage($(this));\r\n constructPlaceholder($(this));\r\n if (typeof callback == 'function') {\r\n callback();\r\n }\r\n });\r\n lastRefreshWidth = window.innerWidth;\r\n }\r\n }\r\n\r\n // Loads the image.\r\n function loadImage($element, isVisible) {\r\n var $this = $element;\r\n var $figure = $this.parent();\r\n\r\n if (isVisible || $figure.visible(true) || $this.data(\"load\") === \"always\") {\r\n if ($this.first()) {\r\n $this.remove();\r\n constructImage($figure);\r\n lastRefreshWidth = window.innerWidth;\r\n $figure.addClass('lazyResizeReload');\r\n }\r\n }\r\n }\r\n\r\n function constructImage(figure) {\r\n var $image = new Image();\r\n var $figure = $(figure);\r\n\r\n //data variables and images settings\r\n var width, maxWidth, heightRatio, focalPoint, mode, filter, quality, height, isBackgroundImage = false;\r\n\r\n var $parent = $figure.data('parent') ? $figure.closest($figure.data('parent')) : null;\r\n isBackgroundImage = $figure.data('is-background') ? true : false;\r\n width = $figure.width() !== 0 ? figure.width() : $figure.parent().width();\r\n heightRatio = $figure.data('height-ratio') !== 0 ? $figure.data('height-ratio') : null;\r\n height = $parent ? $parent.height() : null;\r\n focalPoint = $figure.data('focalpoint');\r\n mode = $figure.data('mode');\r\n filter = $figure.data('filter');\r\n quality = $figure.data('quality') || 100;\r\n\r\n var newImageSrc = $figure.data('src');\r\n newImageSrc += focalPoint ? nextQuerySign(newImageSrc) + \"center=\" + focalPoint : \"\";\r\n newImageSrc += mode ? nextQuerySign(newImageSrc) + \"mode=\" + mode : \"\";\r\n newImageSrc += filter ? nextQuerySign(newImageSrc) + \"filter=\" + filter : \"\";\r\n newImageSrc += nextQuerySign(newImageSrc) + \"quality=\" + quality;\r\n\r\n $figure.find('img').remove();\r\n\r\n // Append the image as a background or as a \r\n if (isBackgroundImage && $parent) {\r\n var bgSrc = newImageSrc;\r\n bgSrc += height ? nextQuerySign(bgSrc) + \"height=\" + height : \"\";\r\n bgSrc += mode ? nextQuerySign(bgSrc) + \"width=\" + width : \"\";\r\n\r\n $parent.css('background-image', 'url(\"' + bgSrc + '\")');\r\n\r\n }\r\n else {\r\n // Add attributes only needed when pretending an image\r\n maxWidth = $figure.data('original-width');\r\n if (width > maxWidth) {\r\n width = maxWidth;\r\n $figure.addClass('contain-width');\r\n }\r\n\r\n newImageSrc += mode ? nextQuerySign(newImageSrc) + \"width=\" + width : \"\";\r\n newImageSrc += height && !heightRatio ? nextQuerySign(newImageSrc) + \"height=\" + height : \"\";\r\n newImageSrc += heightRatio !== null ? nextQuerySign(newImageSrc) + \"height=\" + heightRatio * width : \"\";\r\n\r\n $image.src = newImageSrc;\r\n $figure.prepend($image);\r\n $image = $figure.find('img');\r\n $image.css('opacity', '0');\r\n // Fade the image\r\n $image.on('load', function (event) {\r\n $image.css('opacity', '1');\r\n });\r\n\r\n $image.attr('class', $figure.data('class'));\r\n $image.attr('alt', $figure.data('alt'));\r\n $image.attr('title', $figure.data('title'));\r\n $image.attr('property', 'contentUrl');\r\n }\r\n }\r\n\r\n function nextQuerySign(url) {\r\n return url.indexOf(\"?\") > -1 ? \"&\" : \"?\";\r\n }\r\n\r\n function constructPlaceholder(figure) {\r\n var $el = figure;\r\n var width, heightRatio, maxWidth;\r\n var height = 0;\r\n\r\n // Calc the height\r\n maxWidth = figure.data('original-width');\r\n width = figure.width() !== 0 ? figure.width() : $(figure).parent().width();\r\n width = width > maxWidth ? maxWidth : width;\r\n heightRatio = $el.data('height-ratio');\r\n\r\n if (width && heightRatio) {\r\n height = heightRatio * width;\r\n }\r\n\r\n // Set the height\r\n if (height > 0) {\r\n $el.css('minHeight', height);\r\n }\r\n }\r\n\r\n // public functions:\r\n return {\r\n onScroll: onScroll,\r\n onResize: onResize,\r\n onLoad: onLoad\r\n };\r\n}();","\r\nvar finansudd = finansudd || {};\r\n\r\nfinansudd.scrollTo = new function(){\r\n\r\n var self = this;\r\n\r\n this.init = function (selector) {\r\n\r\n \tselector.click(function(e) {\r\n \t\te.preventDefault();\r\n self.scrollTarget(this.hash);\r\n \t});\r\n\r\n\t};\r\n\r\n\tthis.scrollTarget = function(target, trans, offset) {\r\n\r\n\t\tvar transition = trans === undefined ? 750 : trans;\r\n\r\n\t\tvar target_offset = $(target).offset() != null ? $(target).offset().top : 0;\r\n\t\t//change this number to create the additional off set \r\n\t\tvar customoffset = offset ? offset: 75; \r\n\t\t$('html, body').animate({scrollTop:target_offset - customoffset}, transition);\r\n\t\t\r\n\t}\r\n\r\n};","\r\nvar finansudd = finansudd || {};\r\n\r\nfinansudd.trigger = new function(){\r\n\r\n var self = this;\r\n\r\n this.init = function () {\r\n\r\n \t$('[data-trigger]').click(function(e) {\r\n \t\t// Get the ID of the data-trigger target\r\n \t\tvar selector = $($(this).attr('data-trigger'));\r\n\r\n \t\te.preventDefault();\r\n \t\tselector.toggle();\r\n\r\n \t});\r\n\r\n\t};\r\n\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.course = new function () {\r\n\r\n var self = this;\r\n var collapsedHeight = 500;\r\n\r\n this.init = function () {\r\n\r\n if ($('#course-menu').length) {\r\n self.toggleCourseMenu();\r\n self.addSliderId();\r\n self.initCourseMenuItems();\r\n self.chooseInstance();\r\n }\r\n\r\n if ($('.course-accordion').length) {\r\n self.accordionInit();\r\n }\r\n\r\n self.closeSuccessModal();\r\n self.showFullDesc();\r\n };\r\n\r\n this.chooseInstance = function () {\r\n var hashID = window.location.hash.replace(\"#\", \"\");\r\n\r\n var initialId = $(\"#select-id\").val();\r\n if (initialId != null && initialId !== \"undefined\") {\r\n $(\"#SelectedCourseInstanceId\").val(initialId);\r\n self.chooseInstanceInstructorAction(initialId);\r\n }\r\n\r\n if (hashID != \"\" && hashID !== \"undefined\") {\r\n $(\"#select-id\").val(hashID);\r\n $(\"#SelectedCourseInstanceId\").val(hashID);\r\n self.chooseInstanceInstructorAction(hashID)\r\n self.updateCourseInstancePrice(hashID);\r\n }\r\n\r\n $(\"#select-id\").change(function () {\r\n var selectedId = $(this).val();\r\n $(\"#SelectedCourseInstanceId\").val(selectedId);\r\n self.chooseInstanceInstructorAction(selectedId);\r\n\r\n self.updateCourseInstancePrice(selectedId);\r\n });\r\n\r\n $(\"#SelectedCourseInstanceId\").change(function () {\r\n var selectedId = $(this).val();\r\n $(\"#select-id\").val(selectedId);\r\n self.chooseInstanceInstructorAction(selectedId);\r\n });\r\n\r\n }\r\n\r\n this.updateCourseInstancePrice = function (selectedId) {\r\n var priceMemberText = $(\"#courseInstancePriceMember_\" + selectedId).val();\r\n $(\"#priceMemberDisplay\").html(priceMemberText);\r\n\r\n var priceNonMemberText = $(\"#courseInstancePriceNonMember_\" + selectedId).val();\r\n $(\"#priceNonMemberDisplay\").html(priceNonMemberText);\r\n }\r\n\r\n this.chooseInstanceInstructorAction = function (selectedId) {\r\n window.location.hash = selectedId;\r\n $(\".hidden-instructor\").hide();\r\n var classId = \".\" + selectedId;\r\n $(classId).show();\r\n }\r\n\r\n this.closeSuccessModal = function () {\r\n\r\n $(\"#success-modal\").on('hidden.bs.modal', function () {\r\n var newUrl = window.location.href.split(\"?\")[0];\r\n window.location = newUrl;\r\n\r\n })\r\n }\r\n\r\n\r\n this.accordionInit = function () {\r\n self.accordionToggle();\r\n self.toggleCourseCurriculumProgram();\r\n self.accordianSetMaxHeight();\r\n self.accordionItemToggle();\r\n\r\n }\r\n\r\n this.toggleCourseCurriculumProgram = function () {\r\n var loadValue = $('#module-select option:selected').val();\r\n var theId = \"#\" + loadValue;\r\n $(theId).addClass(\"selected\");\r\n\r\n $('#module-select').on('change', function (event) {\r\n event.preventDefault();\r\n $(\".curriculum-instance\").removeClass(\"selected\");\r\n var thenewId = \"#\" + $('#module-select option:selected').val();\r\n $(thenewId).addClass(\"selected\");\r\n });\r\n }\r\n\r\n this.toggleCourseMenu = function () {\r\n\r\n var $document = $(document),\r\n $element = $('body'),\r\n className = 'fixed-topmenu';\r\n\r\n $document.scroll(function () {\r\n $element.toggleClass(className, $document.scrollTop() >= 50);\r\n });\r\n\r\n };\r\n\r\n this.initCourseMenuItems = function () {\r\n var $menuItems = $('#course-menu li');\r\n\r\n // Remove the items from menu, if the target does not exits\r\n $menuItems.each(function () {\r\n var $this = $(this),\r\n $target = $($this.find('a').attr('href'));\r\n\r\n if (!$target.length) {\r\n $this.hide();\r\n };\r\n });\r\n\r\n };\r\n\r\n this.addSliderId = function () {\r\n var $sliderSection = $('.course-slider');\r\n\r\n // Add an item to the first slider\r\n $sliderSection.first().attr('id', 'course-related');\r\n\r\n };\r\n\r\n this.showFullDesc = function () {\r\n var $trigger = $('.course-single .item-link.more'),\r\n inactiveText = $trigger.html(),\r\n activeText = $trigger.attr('toggle-text') ? $trigger.attr('toggle-text') : inactiveText;\r\n\r\n $trigger.click(function (e) {\r\n e.preventDefault();\r\n var $this = $(this);\r\n\r\n\r\n $('.hidden-description').slideToggle();\r\n\r\n if (!$this.hasClass('active')) {\r\n $this\r\n .addClass('active')\r\n .html(activeText);\r\n } else {\r\n $this\r\n .removeClass('active')\r\n .html(inactiveText);\r\n }\r\n\r\n });\r\n };\r\n\r\n this.accordianSetMaxHeight = function () {\r\n var $module = $('.curriculum-instance');\r\n\r\n $module.each(function () {\r\n var $this = $(this);\r\n $content = $this.find('.item-content');\r\n\r\n $content.show();\r\n $this.attr('data-maxheight', $this.height());\r\n $content.hide();\r\n\r\n // Init the module collapsed\r\n $this.css('max-height', collapsedHeight + 'px');\r\n $this.addClass('collapsed');\r\n });\r\n\r\n };\r\n\r\n this.accordionToggle = function () {\r\n var $toggleTrigger = $('#toggle-accordion');\r\n\r\n\r\n $toggleTrigger.click(function (e) {\r\n e.preventDefault();\r\n var $thisModule = $('.curriculum-instance.selected');\r\n maxHeight = $thisModule.attr('data-maxheight'); // Store the original height as a variable\r\n\r\n\r\n if ($thisModule.hasClass('collapsed')) {\r\n\r\n $thisModule.removeClass('collapsed');\r\n $thisModule.css('max-height', maxHeight + 'px');\r\n\r\n } else {\r\n\r\n $thisModule.css('max-height', collapsedHeight + 'px');\r\n $thisModule.addClass('collapsed');\r\n\r\n // Scroll to user to the top of the accordian\r\n // finansudd.scrollTo.scrollTarget('#course-accordian');\r\n }\r\n });\r\n\r\n }\r\n\r\n this.accordionItemToggle = function () {\r\n var trigger = '.item-toggle';\r\n\r\n $('body').on('click', trigger, function (event) {\r\n\r\n event.preventDefault();\r\n $module = $(this).parents('.accordion-item');\r\n\r\n $module.toggleClass('active');\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.courselist = new function() {\r\n\r\n\tvar self = this,\r\n\t\tcourseCount = 1;\r\n\r\n\t// Helper for getting the queryString\r\n\tvar urlParams = function () {\r\n\t // This function is anonymous, is executed immediately and \r\n\t // the return value is assigned to QueryString!\r\n\t var query_string = {};\r\n\t var query = window.location.search.substring(1);\r\n\t var vars = query.split(\"&\");\r\n\t for (var i = 0; i < vars.length; i++) {\r\n\t var pair = vars[i].split(\"=\");\r\n\t // If first entry with this name\r\n\t if (typeof query_string[pair[0]] === \"undefined\") {\r\n\t query_string[pair[0]] = decodeURIComponent(pair[1]);\r\n\t // If second entry with this name\r\n\t } else if (typeof query_string[pair[0]] === \"string\") {\r\n\t var arr = [query_string[pair[0]], decodeURIComponent(pair[1])];\r\n\t query_string[pair[0]] = arr;\r\n\t // If third or later entry with this name\r\n\t } else {\r\n\t query_string[pair[0]].push(decodeURIComponent(pair[1]));\r\n\t }\r\n\t }\r\n\t return query_string;\r\n\t}();\r\n\r\n\tfunction clearURLParams() {\r\n\t\turlParams = {};\r\n\t}\r\n\r\n\t// Converts the #2134,2543 into a proper querystring\r\n\tfunction convertHashToQuery() {\r\n\t\tvar hash = window.location.hash.replace(\"#\", \"\");\r\n\t\twindow.location.hash = \"\";\r\n\r\n\t\tif(hash != \"\") {\r\n\t\t\turlParams.filter = hash;\r\n\t\t\tnewUrl = UpdateQueryString(\"filter\", hash);\r\n\t\t\thistory.pushState({}, document.title, newUrl);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction UpdateQueryString(key, value, url) {\r\n\t if (!url) url = window.location.href;\r\n\t var re = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)(.*)\", \"gi\"),\r\n\t hash;\r\n\r\n\t if (re.test(url)) {\r\n\t if (typeof value !== 'undefined' && value !== null)\r\n\t return url.replace(re, '$1' + key + \"=\" + value + '$2$3');\r\n\t else {\r\n\t hash = url.split('#');\r\n\t url = hash[0].replace(re, '$1$3').replace(/(&|\\?)$/, '');\r\n\t if (typeof hash[1] !== 'undefined' && hash[1] !== null) \r\n\t url += '#' + hash[1];\r\n\t return url;\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (typeof value !== 'undefined' && value !== null) {\r\n\t var separator = url.indexOf('?') !== -1 ? '&' : '?';\r\n\t hash = url.split('#');\r\n\t url = hash[0] + separator + key + '=' + value;\r\n\t if (typeof hash[1] !== 'undefined' && hash[1] !== null) \r\n\t url += '#' + hash[1];\r\n\t return url;\r\n\t }\r\n\t else\r\n\t return url;\r\n\t }\r\n\t}\r\n\r\n\r\n\tthis.initCourses = function () {\r\n\t if ($(\"#course-list\").length) {\r\n\t convertHashToQuery();\r\n\t self.setUrlParams();\r\n\t self.initFromUrl();\r\n\t }\r\n\r\n\t\tif ($(\"#course-slider\").length) {\r\n\t\t\tself.loadCourseSlider(1);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tthis.setUrlParams = function() {\r\n\r\n\t\t$('.course-list').on('click', '.courselist-item', function(event) {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar id = $this.data('id');\r\n\t\t\tvar p = $this.data('page');\r\n\r\n\t\t\t// Create the new url\r\n\t\t\tvar newUrl = \"\";\r\n\t\t\tif(id != null && id != \"\") {\r\n\t\t\t\tnewUrl = UpdateQueryString(\"id\", id, newUrl);\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tif(p != null && p != \"\") {\r\n\t\t\t\tnewUrl = UpdateQueryString(\"page\", p, newUrl);\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\t// Set the url\r\n\t\t\thistory.pushState({}, document.title, newUrl);\r\n\t\t})\r\n\t}\r\n\r\n\tthis.initFromUrl = function() {\r\n\r\n if (typeof urlParams.filter !== \"undefined\" && urlParams.filter != null)\r\n {\t\r\n \tvar filterIdArray = urlParams.filter.split(\",\");\r\n \t\t$(\".course-filter\").val(filterIdArray);\r\n\r\n \t\tsetTimeout(function() {\r\n \t\t\t$('.course-filter').change();\r\n \t\t}, 100);\r\n\r\n }\r\n\r\n\t // Set all the filters\r\n\t if(typeof urlParams.sort !== \"undefined\" && urlParams.sort != null) {\r\n\t \t$('#course-sort').val(urlParams.sort);\r\n\r\n\t \tsetTimeout(function() {\r\n\t \t\t$('#course-sort').change();\r\n\t \t}, 100);\r\n\t }\r\n\t \r\n setTimeout(function() {\r\n \t\r\n\t // Load the courses\r\n\t\t\tif (urlParams.page !== \"undefined\" && urlParams.page != null) {\r\n\t\t\t\tvar tmp = urlParams.page * 1;\r\n\t self.loadCourses(tmp, false, true);\r\n\t\t } else {\r\n\t\t \tself.loadCourses(1);\r\n\t\t }\r\n\r\n\t\t // Init the filtering\r\n\t\t self.activeFilters();\r\n }, 200);\r\n\r\n\r\n\t}\r\n\r\n\r\n\tthis.getMoreCourses = function() {\r\n\t\tvar $item = $('.ajax-content > .courselist-item'),\r\n\t\t\titemLength = parseInt($('.filter-count > span').first().html());\r\n\r\n\t\t// Only run the event if there are items to load\r\n\t\tif(itemLength != $item.length) {\r\n\r\n\t\t\t// Load more courses when the div is visible and increment the page-count with 1\r\n\t\t\tif($('#loadmore').visible()) {\r\n\t\t\t\tself.loadCourses(courseCount, true);\r\n\t\t\t}\r\n\r\n\t\t\t//Show the cta-banner\r\n\t\t\tif($('.courselist-item:nth-of-type(9)').visible() && $('.cta-banner').hasClass('not-shown')) {\r\n\t\t\t\t$('.cta-banner').removeClass('not-shown');\r\n\t\t\t}\r\n\r\n\r\n\t\t} else {\r\n\r\n\t\t\t$('#loadmore').hide();\r\n\t\t}\r\n\t}\r\n\r\n\tthis.activeFilters = function () {\r\n\t\tvar filters = $(\"select.course-filter\");\r\n\r\n\t\tfilters.on('change', function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tself.loadCourses(1);\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tthis.setFilters = function(obj) {\r\n\t\tvar newUrl = window.location.href;\r\n\r\n\t\tif(obj.sort !== \"undefined\" && obj.sort != null) {\r\n\t\t\turlParams.sort = obj.sort\r\n\t\t\tnewUrl = UpdateQueryString(\"sort\", obj.sort, newUrl);\r\n\t\t}\r\n\r\n\t\tif(obj.filter !== \"undefined\" && obj.filter != null && obj.filter.length) {\r\n\t\t\tnewUrl = UpdateQueryString(\"filter\", obj.filter, newUrl);\r\n\t\t}\r\n\r\n\t\t// Set the url\r\n\t\thistory.pushState({}, document.title, newUrl);\r\n\r\n\t}\r\n\t\r\n\tthis.loadCourses = function (page, append, dontSkipItems) {\r\n\r\n\t\tvar favorites = [];\r\n\t\tvar subjectAreas = [];\r\n\t\tvar types = [];\r\n\t\tvar targetAudiences = [];\r\n\r\n\t\tvar params = {\r\n\t\t\t\"sort\": $(\"#course-sort\").val(),\r\n\t\t\t\"getSubjectAreaValues\": $(\"#filterid-3130\").val() != null ? $(\"#filterid-3130\").val() : [],\r\n\t\t\t\"getTypesValues\": $(\"#filterid-3151\").val() != null ? $(\"#filterid-3151\").val() : [],\r\n\t\t\t\"getTargetAudienceValues\": $(\"#filterid-4397\").val() != null ? $(\"#filterid-4397\").val() : []\r\n\t\t};\r\n\r\n\t\t// Create a filter array with all filters\r\n\t\tparams.filter = [].concat.apply([], [params.getSubjectAreaValues, params.getTypesValues, params.getTargetAudienceValues]);\r\n\r\n\t\t// Set the filters in the url\r\n\t\tself.setFilters(params);\r\n\r\n\t\t// Reset the counter\r\n\t\tcourseCount = page + 1;\r\n\r\n\r\n\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"Mode\":\"list\",\r\n\t\t\t\"Favorites\": favorites,\r\n\t\t\t\"SubjectAreas\": params.getSubjectAreaValues,\r\n\t\t\t\"Types\": params.getTypesValues,\r\n\t\t\t\"TargetAudiences\": params.getTargetAudienceValues,\r\n\t\t\t\"SortOrder\": params.sort,\r\n\t\t\t\"CurrentPageId\": 0,\r\n\t\t\t//\"MaxItems\": 12,\r\n\t\t\t\"Page\": page,\r\n\t\t\t\"DontSkipItems\": dontSkipItems ? true : false\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/courseListView/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function(data) {\r\n\r\n\t\t\t\tif(append) {\r\n\t\t\t\t\tvar courseItems = $(data).siblings('.ajax-content').html();\r\n\t\t\t\t\t$(\"#course-list\").find('.ajax-content').append(courseItems);\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tvar itemCount = $(data).siblings('.item-count').text();\r\n\t\t\t\t\t$('.ajax-filter .filter-count > span').html(itemCount);\r\n\r\n\t\t\t\t\t$(\"#course-list\").html(data);\r\n\r\n\t\t\t\t\t// Scroll to the previous item\r\n\t\t\t\t\tif(urlParams.id != \"\" && urlParams.id != null) {\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\tfinansudd.scrollTo.scrollTarget(\"[data-id=\" + urlParams.id + \"]\", 0);\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t// Set the id to null to prevent a scroll on filter\r\n\t\t\t\t\t\t\turlParams.id = null;\r\n\t\t\t\t\t\t}, 2000);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tself.getMoreCourses();\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t\tfinansudd.favorites.setFavoritesOnlist();\r\n\t\t\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown);\r\n\t\t\t\t$(\"#course-list\").html('
    Der er desværre sket en fejl

    ');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tthis.loadCourseSlider = function (page) {\r\n\t\tvar subjectAreas = $(\".course-wrapper\").data(\"subjectarea\");\r\n\t\t\r\n\t\tvar subjectAreasArray = subjectAreas != undefined ? subjectAreas.split(\",\").clean(\"\") : null;\r\n\t\tvar favorites = [];\r\n\t\tvar targetAudiences = [];\r\n\t\tvar types = [];\r\n\t\tvar sort = $(\"#course-sort\").val();\r\n\t\tvar excludeCurrentPageId = $(\".course-wrapper\").data(\"currentpageid\");\r\n\r\n\t\tif (subjectAreasArray == null) {\r\n\t\t\tsubjectAreasArray = [];\r\n\t\t}\r\n\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"Mode\": \"slider\",\r\n\t\t\t\"Favorites\": favorites,\r\n\t\t\t\"SubjectAreas\": subjectAreasArray,\r\n\t\t\t\"Types\": types,\r\n\t\t\t\"TargetAudiences\": targetAudiences,\r\n\t\t\t\"SortOrder\": sort,\r\n\t\t\t\"CurrentPageId\": excludeCurrentPageId,\r\n\t\t\t\"Page\": page\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/courseListView/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\t$(\"#course-slider\").html(data)\r\n\t\t\t\tfinansudd.slider.newsSlider($('#course-slider'));\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.loadFavorites = function (page, favorites) {\r\n\r\n\t\t//Convert string to array\r\n\t\tvar favoriteArr = favorites.split(',');\r\n\t\tif (favoriteArr.length == 1 && favoriteArr[0] == \"\") {\r\n\t\t\tfavoriteArr = [];\r\n\t\t}\r\n\r\n\t\tvar favorites = favoriteArr;\r\n\r\n\t\tvar filterValues1 = JSON.stringify({\r\n\t\t\t\"Mode\": \"favorites\",\r\n\t\t\t\"Favorites\": favorites,\r\n\t\t\t\"CurrentPageId\": 0,\r\n\t\t\t\"DocType\": \"Courses\", \r\n\t\t\t\"Page\": page\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/courseListView/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues1,\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\t$(\"#course-favorites\").html(data);\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar filterValues2 = JSON.stringify({\r\n\t\t\t\"Mode\": \"favorites\",\r\n\t\t\t\"Favorites\": favorites,\r\n\t\t\t\"CurrentPageId\": 0,\r\n\t\t\t\"DocType\": \"Curricula\",\r\n\t\t\t\"Page\": page\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/courseListView/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues2,\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\t$(\"#curricula-favorites\").html(data);\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.ctabanner = new function() {\r\n\r\n\tvar self = this;\r\n\r\n\tthis.init = function () {\r\n\r\n\t\tvar $closeTrigger = $('.cta-banner .cta-close'),\r\n\t\t\t$ctabanner = $('.cta-banner');\r\n\r\n\t\t// Check if the cookie it true, when add class to cta-banner\r\n\t\tif ($.cookie('fixed-cta') != 'false') {\r\n\t\t\t$ctabanner.addClass('fixed');\r\n\t\t\t$ctabanner.addClass('not-shown');\r\n\t\t}\r\n\r\n\t\t// On-Click on the close-button\r\n\t\t$closeTrigger.click(function() {\r\n\r\n\t\t\t$ctabanner.removeClass('fixed'); // Remove class\r\n\t\t\t$.cookie('fixed-cta', 'false', { expires: 1, path: '/' }); // Update cookie\r\n\r\n\t\t});\r\n\r\n\t};\r\n\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.curriculalist = new function () {\r\n\r\n\tvar self = this;\r\n\r\n\tthis.initCurricula = function () {\r\n\t\tif ($(\"#curricula-list\").length) {\r\n\t\t\tself.loadCurricula(1);\r\n\t\t\tself.getFilter();\r\n\t\t}\r\n\t}\r\n\r\n\tthis.getFilter = function () {\r\n\t\tvar filters = $(\".course-filter\");\r\n\r\n\t\tfilters.on('change', function () {\r\n\t\t\tself.loadCurricula(1);\r\n\t\t});\r\n\t}\r\n\t\r\n\tthis.loadCurricula = function (page) {\r\n\r\n\t\tvar favorites = [];\r\n\t\tvar subjectAreas = [];\r\n\t\tvar types = [];\r\n\t\tvar targetAudiences = [];\r\n\t\tvar sort = $(\"#course-sort\").val();\r\n\r\n\t\tvar getSubjectAreaValues = $(\"#filterid-3130\").val();\r\n\t\tvar getTypesValues = $(\"#filterid-3151\").val();\r\n\t\tvar getTargetAudienceValues = $(\"#filterid-4397\").val();\r\n\r\n\r\n\t\tif (getSubjectAreaValues!=null)\r\n\t\t{\r\n\t\t\tsubjectAreas = getSubjectAreaValues;\r\n\t\t}\r\n\r\n\t\tif (subjectAreas == null || subjectAreas == undefined || subjectAreas == \"0\") {\r\n\t\t\tsubjectAreas = [];\r\n\t\t}\r\n\r\n\t\tif (getTypesValues != null) {\r\n\t\t\ttypes = getTypesValues;\r\n\t\t}\r\n\r\n\t\tif (getTargetAudienceValues != null) {\r\n\t\t\ttargetAudiences = getTargetAudienceValues;\r\n\t\t}\r\n\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"Mode\": \"list\",\r\n\t\t\t\"Favorites\": favorites,\r\n\t\t\t\"SubjectAreas\": subjectAreas,\r\n\t\t\t\"Types\": types,\r\n\t\t\t\"TargetAudiences\": targetAudiences,\r\n\t\t\t\"SortOrder\": sort,\r\n\t\t\t\"CurrentPageId\": 0,\r\n\t\t\t\"DocType\": \"Curricula\",\r\n\t\t\t//\"MaxItems\": 12,\r\n\t\t\t\"Page\": page\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/courseListView/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function(data) {\r\n\t\t\t\tvar itemCount = $(data).siblings('.item-count').text();\r\n\t\t\t\t$('.ajax-filter .filter-count > span').html(itemCount);\r\n\t\t\t\t\r\n\t\t\t\t$(\"#curricula-list\").html(data);\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t\tfinansudd.favorites.setFavoritesOnlist();\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.employeelist = new function () {\r\n\r\n\tvar self = this;\r\n\t\r\n\tthis.initEmployees = function () {\r\n\t\tif ($(\"#employees-list\").length) {\r\n\t\t\tself.loadEmployees();\r\n\t\t\tself.getFilter();\r\n\t\t}\r\n\t}\r\n\r\n\tthis.getFilter = function () {\r\n\t\tvar filters = $(\".employee-filter\");\r\n\r\n\t\tfilters.on('change', function () {\r\n\t\t\tself.loadEmployees();\r\n\t\t});\r\n\t}\r\n\t\r\n\tthis.loadEmployees = function () {\r\n\r\n\t\tvar subjectAreas = [];\r\n\t\tvar departments = [];\r\n\t\tvar getSubjectAreaValues = $(\"#filterid-3130\").val();\r\n\t\tvar getDepartmentsValues = $(\"#filterid-3129\").val();\r\n\r\n\t\tif (getSubjectAreaValues!=null)\r\n\t\t{\r\n\t\t\tsubjectAreas = getSubjectAreaValues;\r\n\t\t}\r\n \r\n\t\tif (subjectAreas == null || subjectAreas == undefined || subjectAreas == \"0\") {\r\n\t\t\tsubjectAreas = [];\r\n\t\t}\r\n\r\n\t\tif (getDepartmentsValues != null) {\r\n\t\t\tdepartments = getDepartmentsValues;\r\n\t\t}\r\n\r\n\t\tif (departments == null || departments == undefined || departments == \"0\") {\r\n\t\t\tdepartments = [];\r\n\t\t}\r\n\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"SubjectAreas\": subjectAreas,\r\n\t\t\t\"Departments\": departments\r\n\t\t});\r\n\r\n\t $(\"#filterEmployeeName\").val(\"\");\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/employeelistview/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function(data) {\r\n\r\n\t\t\t\t$(\"#employees-list\").html(data);\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\t$(\"#employees-list\").html('
    Der er desværre sket en fejl

    ');\r\n\r\n\t\t\t console.log(errorThrown);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.filterEmployeesByName = function () {\r\n var $list = $('.employee-list');\r\n var $listItems = $list.find('.employee-item');\r\n\r\n $listItems.each(function (i, e) {\r\n var searchValue = $(\"#filterEmployeeName\").val().toLowerCase();\r\n var $e = $(e);\r\n\r\n var name = $e.find(\".item-title\").text().toLowerCase();\r\n\r\n if (name.indexOf(searchValue) > -1) {\r\n $e.show();\r\n } else {\r\n $e.hide();\r\n }\r\n });\r\n}\r\n\r\n$(\"#filterEmployeeName\").on('keyup', function () {\r\n finansudd.filterEmployeesByName();\r\n});\r\n\r\nfinansudd.employees = new function () { \r\n\r\n var self = this,\r\n $list = $('.employee-list'),\r\n $listItems = $list.find('.employee-item');\r\n\r\n function containsAll(needles, haystack) {\r\n for (var i = 0, len = needles.length; i < len; i++) {\r\n if ($.inArray(needles[i], haystack) == -1) {\r\n return false;\r\n };\r\n }\r\n return true;\r\n }\r\n\r\n this.showEmployeesOnValue = function (selector, dataValue) {\r\n $(selector).on('change', function () {\r\n\r\n var filters = [];\r\n\r\n $(selector).each(function () {\r\n var selectedValue = $(this).find('option:selected').val();\r\n filters.push(selectedValue);\r\n });\r\n\r\n $listItems.each(function () {\r\n\r\n var $this = $(this),\r\n itemFilters = $this.attr(dataValue).split(\",\");\r\n\r\n if (containsAll(filters, itemFilters)) {\r\n $this.fadeIn();\r\n $this.removeClass('hidden-item');\r\n } else {\r\n $this.hide();\r\n $this.addClass('hidden-item');\r\n }\r\n\r\n });\r\n\r\n });\r\n };\r\n\r\n this.sidebarNavigation = function () {\r\n\r\n var $listItem = $('.employee-navigation ul > li'),\r\n $select = $('select#filterid-3129');\r\n\r\n $listItem.click(function () {\r\n var $this = $(this),\r\n dataValue = $this.attr('data-value'),\r\n $preSelectedOption = $select.find('option:selected'),\r\n $option = $select.find('option[value=\"' + dataValue + '\"]');\r\n\r\n // Apply and remove selected class on html-select\r\n $this.addClass('selected');\r\n $listItem.not($this).removeClass('selected');\r\n\r\n // Reset the select\r\n $preSelectedOption.prop('selected', false);\r\n\r\n if(dataValue != 0) {\r\n // Set the value\r\n $option.prop('selected', true).change();\r\n } else {\r\n $select.change();\r\n }\r\n\r\n\r\n });\r\n\r\n };\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.favorites = new function () {\r\n\r\n\tvar self = this;\r\n\t\r\n\tthis.init = function () {\r\n\t\tself.favoritesSet();\r\n\t\tself.favoritesRemove();\r\n\t self.setFavoritesOnlist();\r\n\t};\r\n\r\n\tthis.favoritesSet = function () {\r\n\r\n\t\t$('body').on('click', '.item-favorite', function (e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\r\n //Animate Star\r\n\t\t $(this).addClass('animate-star');\r\n\r\n\t\t\tvar favoriteId = $(this).data('nodeid');\r\n\t\t\tvar favoritList = localStorage.favorites;\r\n\r\n\t\t\t//Call Indicator\r\n\t\t\tfinansudd.toolbar.animateIcon('.favorites .icon'); \r\n\r\n\t\t\tself.favoritesSetIndicator(favoriteId, favoritList);\r\n\t\t\tself.updateFavorites(favoriteId, favoritList);\r\n\t\t});\r\n\t};\r\n\r\n\tthis.favoritesRemove = function () {\r\n\r\n\t\t$('body').on('click', '.favorite-remove', function (e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar favoriteId = $(this).data('nodeid');\r\n\t\t\tvar favoritList = localStorage.favorites;\r\n\r\n\t\t\t//Call Indicator\r\n\t\t\tself.favoritesSetIndicator(favoriteId, favoritList);\r\n\t\t\tself.updateFavorites(favoriteId, favoritList);\r\n\t\t\tfinansudd.courselist.loadFavorites(1, localStorage.favorites);\r\n\t\t});\r\n\t};\r\n\r\n\tthis.isFavoriteInStorage = function (favoriteId, favoritList) {\r\n\t //Check if localStorage is empty\r\n\t if (favoritList == undefined) {\r\n\t favoritList = \"\";\r\n\t }\r\n\r\n\t //Convert string to array\r\n\t var favoriteArr = favoritList.split(',');\r\n\t if (favoriteArr.length == 1 && favoriteArr[0] == \"\") {\r\n\t favoriteArr = [];\r\n\t }\r\n\t //Check if ID is contained in array\r\n\t return $.inArray(favoriteId + \"\", favoriteArr) !== -1;\r\n\t}\r\n\r\n\tthis.updateFavorites = function (favoriteId, favoritList) {\r\n\t\t//Check if localStorage is empty\r\n\t\tif (favoritList == undefined) {\r\n\t\t\tfavoritList = \"\";\r\n\t\t}\r\n\r\n\t\t//Convert string to array\r\n\t\tvar favoriteArr = favoritList.split(',');\r\n\t\tif (favoriteArr.length == 1 && favoriteArr[0] == \"\") {\r\n\t\t\tfavoriteArr = [];\r\n\t\t}\r\n\t\t//Check if ID is contained in array\r\n\t\tif (this.isFavoriteInStorage(favoriteId, favoritList)) {\r\n\t\t\t//Remove from list\r\n\t\t\tfavoriteArr.splice($.inArray(favoriteId + \"\", favoriteArr), 1);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//Add to list list\r\n\t\t\tfavoriteArr.push(favoriteId);\r\n\t\t}\r\n\r\n\t\t//Convert array to string and save in localStorage\r\n\t\tvar newList = favoriteArr.join().toString();\r\n\t\tlocalStorage.favorites = newList;\r\n\t}\r\n\r\n\tthis.setFavoritesOnlist = function () {\r\n\t\tif (localStorage.favorites != undefined && localStorage.favorites != \"\") {\r\n\t\t\tvar arrFarvoritList = localStorage.favorites.split(',');\r\n\t\t\tfor (var i = 0; i < arrFarvoritList.length; i++) {\r\n\t\t\t if (arrFarvoritList[i].length) {\r\n\t\t\t var item = $(\".item-favorite[data-nodeid=\" + arrFarvoritList[i] + \"]\");\r\n if (item != null && item.length) {\r\n item.addClass(\"is-favorite\");\r\n }\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthis.favoritesSetIndicator = function (favoriteId, favoriteList) {\r\n\t var item = $(\".item-favorite[data-nodeid=\" + favoriteId + \"]\");\r\n\t if (this.isFavoriteInStorage(favoriteId, favoriteList)) {\r\n\t item.removeClass(\"is-favorite\").removeClass('animate-star');\r\n\t\t}\r\n\t\telse {\r\n\t item.addClass(\"is-favorite\");\r\n\t\t}\r\n\t}\r\n\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.filter = new function(){\r\n\r\n var self = this;\r\n\r\n\r\n this.toggleDropdown = function () {\r\n \tvar $selector = $('.filter-trigger, .filter-wrapper > label');\r\n\r\n\t\t$selector.click(function() {\r\n\t\t\tvar $thisParent = $(this).parents('.filter-wrapper'),\r\n\t\t\t\t$wrappers = $('.filter-wrapper');\r\n\t\t\t\t\r\n\t\t\t$wrappers.not($thisParent).removeClass('active-filter');\t\r\n\t\t\t$thisParent.toggleClass('active-filter');\r\n\t\t\t$('body').hasClass('transparent-overlay') ? $('body').removeClass('transparent-overlay') : $('body').addClass('transparent-overlay');\r\n\t\t});\r\n\r\n\r\n\t\tfinansudd.overlay.removeActive('.filter-wrapper', 'active-filter');\r\n\r\n\t};\r\n\r\n this.toggleMobileFilter = function () {\r\n\r\n\t\t$('.mobile-filter').click(function() {\r\n\t\t\t$('body').addClass('open-overlay');\r\n\t\t\t$('.mobile-holder').toggleClass('open');\r\n\t\t});\r\n\r\n\t\tfinansudd.overlay.removeActive('.mobile-holder', 'open');\r\n\r\n\t};\r\n\r\n\tthis.resetFilters = function () {\r\n\r\n\t\tvar $trigger = $('.trigger.reset'),\r\n\t\t\t$filter = $('.filter-wrapper');\r\n\r\n\t\t$trigger.click(function() {\r\n\r\n\t\t\t$filter.each(function() {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$parentSelect = $this.find('.select');\r\n\r\n\t\t\t\t// Close the filter-wrapper\r\n\t\t\t\t$this.removeClass('active-filter');\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t// Check if its a multiple select\r\n\t\t\t\tif(!$parentSelect.hasClass('multiple')) {\r\n\t\t\t\t\t// Add selected class to the data value with 0\r\n\t\t\t\t\t$this.find('.select li[data-value=\"0\"]').addClass('selected');\r\n\t\t\t\t\t// Reset the select-box and add change-event\r\n\t\t\t\t\t$this.find('select option[value=\"0\"]').prop('selected', true).change();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t// Reset the select-box and add change-event\r\n\t\t\t\t\t$this.find('select option').prop('selected', false).change();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t};\r\n\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.footer = new function(){\r\n\r\n var self = this;\r\n\r\n\r\n this.toggleList = function (selector) {\r\n\r\n\t\t$(selector).click(function() {\r\n\t\t\t$(this).toggleClass('active');\r\n\t\t});\r\n\r\n\t};\r\n\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.frontpageHero = new function() {\r\n\r\n this.init = function () {\r\n\r\n if ($('.hero-title a').length) {\r\n $('a').addClass('hero-link-tag');\r\n }\r\n };\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.menu = new function(){\r\n\r\n var self = this;\r\n\r\n this.triggerMenuHolder = function (selector) {\r\n\r\n \t// Selectors\r\n \tvar $parent = $('#mobile-menu-wrapper'),\r\n \t\t$trigger = $('.mobile-menu-trigger'),\r\n \t\t$menu = $parent.find('.mobile-menu');\r\n\r\n \t$trigger.click(function() {\r\n \t\t$parent.hasClass('active') ? $parent.removeClass('active') : $parent.addClass('active');\r\n\r\n $('nav.menu-level-1 .menu-item-level-1 ul').removeClass('active');\r\n $('nav.menu-level-1 .menu-item-level-1 .submenu-trigger').removeClass('active');\r\n\r\n if(!$menu.children().length) {\r\n self.getAjaxMenu();\r\n }\r\n \t});\r\n\r\n // TODO: Fix the browser jacking problem on open\r\n $('#navigation-top').on('click', '.submenu-trigger', function() {\r\n\r\n var $this = $(this),\r\n $thisParentsSubMenu = $this.parents('.menu-item-level-1').find('.menu-level-2'),\r\n $thisParentTrigger = $this.parents('.menu-item-level-1').children('.submenu-trigger').first(),\r\n $submenuTrigger = $('.submenu-trigger'),\r\n $thisSubMenu = $this.siblings('ul');\r\n\r\n // Toggle the active class\r\n $this.toggleClass('active');\r\n $thisSubMenu.toggleClass('active');\r\n\r\n // Reset the other submenu and close them\r\n\r\n $submenuTrigger.not($this).not($thisParentTrigger).removeClass('active');\r\n $('.menu-level-2').not($thisParentsSubMenu).removeClass('active');\r\n\r\n if($this.parents('nav.menu-level-1').length) {\r\n $('.mobile-menu-trigger, .mobile-menu ').removeClass('active');\r\n\r\n }\r\n \r\n });\r\n\r\n\t};\r\n\r\n\r\n this.getAjaxMenu = function () {\r\n // Selectors\r\n var $menuHolder = $('.mobile-menu');\r\n\r\n // Get Ajax content from menu\r\n $.ajax({\r\n url: \"/settings/ajax-nav/\", // TODO: Change this to the right url\r\n type: 'POST',\r\n cache: false,\r\n contentType: \"html/text; charset=utf-8\",\r\n dataType: 'html',\r\n success: function(data) {\r\n $menuHolder.html(data);\r\n },\r\n error: function (data, errorThrown) {\r\n console.log(errorThrown)\r\n }\r\n });\r\n\r\n };\r\n\r\n this.setWidth = function () {\r\n \r\n //var width = 0;\r\n //var $menuItem = $('#navigation-top .menu-item-level-1');\r\n\r\n //if ($menuItem.length) {\r\n // $menuItem.each(function () {\r\n // width += $(this).outerWidth(true);\r\n // });\r\n // $menuItem.css('width', width + 100);\r\n //}\r\n };\r\n\r\n\r\n\r\n};","","var finansudd = finansudd || {};\r\n\r\nfinansudd.newslist = new function() {\r\n\r\n\tvar self = this;\r\n\r\n\tthis.initNews = function () {\r\n\t\tif ($(\"#news-list\").length) {\r\n\t\t\tself.loadNews(1);\r\n\t\t\tself.changeFilter(1);\r\n\t\t}\r\n\t\tif ($(\"#news-slider\").length) {\r\n\t\t\tself.loadNewsSlider(1);\r\n\t\t}\r\n\t}\r\n\r\n\tthis.loadNews = function (page) {\r\n\t\r\n\t\tvar yearValue = $(\"#news-filter-year\").val();\r\n var monthValue = $(\"#news-filter-month\").val();\r\n var isNewsArchive = $(\"#is-news-archive\").val();\r\n\t\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"Year\": yearValue,\r\n\t\t\t\"Month\": monthValue,\r\n \"Page\": page,\r\n \"IsNewsArchive\": isNewsArchive\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/newslistview/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function(data) {\r\n\t\t\t\tvar itemCount = $(data).siblings('.item-count').text();\r\n\t\t\t\t$('.ajax-filter .filter-count > span').html(itemCount);\r\n\r\n\t\t\t\t$(\"#news-list\").html(data)\r\n\t\t\t\r\n\t\t\t\tself.paging();\r\n\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t\t\r\n\t\t\t\t//$('.loader').remove();\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.loadNewsSlider = function (page) {\r\n\t\tvar subjectAreas = $(\".news-wrapper\").data(\"subjectarea\");\r\n\r\n\t\tvar subjectAreasArray = subjectAreas != undefined ? subjectAreas.split(\",\").clean(\"\") : null;\r\n\t\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"Year\": 0,\r\n\t\t\t\"Month\": 0,\r\n\t\t\t\"Page\": page,\r\n\t\t\t\"maxItems\": 3,\r\n\t\t\t\"Mode\": \"slider\",\r\n\t\t\t\"SubjectAreas\": subjectAreasArray\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/newslistview/\",\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function(data) {\r\n\r\n\t\t\t\t$(\"#news-slider\").html(data)\r\n\r\n\t\t\t\tfinansudd.slider.newsSlider($('#news-slider'));\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\tthis.changeFilter = function (page) {\r\n\t\t$(\".news-filter-select\").change(function() {\r\n\t\t self.loadNews(page);\r\n\t\t});\r\n\t\t\r\n\t}\r\n\r\n\tthis.paging = function () {\r\n\r\n\t\t$(\".pager\").click(function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tself.loadNews($(this).data(\"page\"));\r\n\t\t\tfinansudd.scrollTo.scrollTarget('#news-list', 0);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tArray.prototype.clean = function (deleteValue) {\r\n\t\tfor (var i = 0; i < this.length; i++) {\r\n\t\t\tif (this[i] == deleteValue) {\r\n\t\t\t\tthis.splice(i, 1);\r\n\t\t\t\ti--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t};\r\n}","\r\nvar finansudd = finansudd || {};\r\n\r\nfinansudd.overlay = new function () {\r\n\r\n var self = this;\r\n\r\n\r\n this.toggleOverlay = function () {\r\n\r\n\r\n $('body').on('click', '.blue-overlay', function () {\r\n $('body').removeClass('open-overlay').removeClass('transparent-overlay'); // Close overlay\r\n });\r\n\r\n };\r\n\r\n // Remove classes when the overlay is clicked\r\n this.removeActive = function (selector, itemClass) {\r\n var $selector = selector ? $(selector) : null,\r\n itemClass = itemClass ? itemClass : '';\r\n\r\n if ($selector != null) {\r\n $('body').on('click', '.blue-overlay', function () {\r\n $selector.removeClass(itemClass);\r\n });\r\n }\r\n }\r\n\r\n this.setRteLinkOverlay = function () {\r\n\r\n $('.rte').on('click', 'a[target=\"_overlay\"]', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n self.overlayLink(this);\r\n });\r\n\r\n $('.media').on('click', 'a[target=\"_overlay\"]', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n self.overlayLink(this);\r\n });\r\n }\r\n\r\n this.overlayLink = function (item) {\r\n var url = $(item).attr(\"href\");\r\n var target = $(item).attr(\"target\");\r\n if (target == \"_overlay\") {\r\n if (url.search('http') != 0 || url.search('https') != 0) {\r\n $.ajax({\r\n url: url,\r\n type: 'GET',\r\n cache: false,\r\n contentType: \"html/text; charset=utf-8\",\r\n dataType: 'html',\r\n success: function (data) {\r\n data = '
    ' + data + '
    ';\r\n self.setOverlay(data, url);\r\n },\r\n error: function (data, errorThrown) {\r\n console.log(errorThrown);\r\n }\r\n });\r\n }\r\n else {\r\n\r\n var data = '';\r\n self.setOverlay(data);\r\n }\r\n }\r\n }\r\n\r\n this.setOverlay = function (data) {\r\n $('body').addClass('overlay-on');\r\n var html = '
    ';\r\n html += '
    ×
    ' + data + '
    ';\r\n html += '
    ';\r\n\r\n $('body').prepend(html).hide().fadeIn(\"fast\");\r\n\r\n $('.overlay-close').on('click', function (e) {\r\n $('.overlay').remove();\r\n $('body').removeClass('overlay-on');\r\n });\r\n novicell.responsiveImages.init();\r\n\r\n }\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.search = new function() {\r\n\r\n\tvar self = this;\r\n\r\n\t// Do stuff when the input if focus - ex Open Auto suggest overlay\r\n\tthis.focusEvent = function () {\r\n\t\tvar selector = $('.search-input');\r\n\r\n\t\tselector.focus(function(){\r\n\t\t\t$('body').addClass('open-overlay searchform-open');\r\n\t\t});\r\n\r\n\t\tselector.blur(function(){\r\n\r\n/*\t\t\t// Add delay\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tremoveOverlay();\r\n\t\t\t}, 1000);*/\r\n\r\n\t\t});\r\n\r\n\t\tfinansudd.overlay.removeActive('body', 'searchform-open');\r\n\r\n\t};\r\n\r\n\tthis.preventSearch = function () {\r\n\t\tvar $submitButton = $('.search-form button[type=\"submit\"]');\r\n\r\n\t\t$submitButton.click(function(e) {\r\n\r\n\t\t\tif(!$('body').hasClass('searchform-open')) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$('.search-input').focus();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t};\r\n\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.servicelist = new function() {\r\n\r\n\tvar self = this;\r\n\r\n\tthis.initServices = function() {\r\n\t\tif ($(\"#service-list\").length) {\r\n\t\t\tself.loadService(1,0);\r\n\t\t\tself.changeFilter(1, 0);\r\n\t\t}\r\n\r\n\t\tif ($(\"#service-slider\").length){\r\n\t\t\tself.loadServiceSlider(1, 0);\r\n\t\t}\r\n\t}\r\n\r\n\tthis.loadService = function (page,val) {\r\n\t\tvar maxitems = 0\r\n\t\tvar subjectAreas = val;\r\n\r\n\t\tif (val == 0) {\r\n\t\t\tsubjectAreas = $(\".service-wrapper\").data(\"subjectarea\");\r\n\t\t}\r\n\t\t\r\n\t\tvar subjectAreasArray = subjectAreas != undefined ? subjectAreas.split(\",\").clean(\"\") : null;\r\n\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"SelectedPage\": page,\r\n\t\t\t\"maxItems\": maxitems,\r\n\t\t\t\"SubjectAreas\": subjectAreasArray\r\n\t\t});\r\n\t\t\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/servicelistview/\", // TODO: Change this to the right url\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function(data) {\r\n\t\t\t\tvar itemCount = $(data).siblings('.item-count').text();\r\n\t\t\t\t$('.ajax-filter .filter-count > span').html(itemCount);\r\n\r\n\t\t\t\t$(\"#service-list\").html(data)\r\n\t\t\t\r\n\t\t\t\tself.paging();\r\n\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown)\r\n\t\t\t\t$(\"#service-list\").html('
    Der er desværre sket en fejl

    ');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.loadServiceSlider = function (page, val) {\r\n\t\tvar maxitems = 0\r\n\t\tvar subjectAreas = val;\r\n\r\n\t\tif (val == 0) {\r\n\t\t\tsubjectAreas = $(\".service-wrapper\").data(\"subjectarea\");\r\n\t\t}\r\n\r\n\t\tvar subjectAreasArray = subjectAreas != undefined ? subjectAreas.split(\",\").clean(\"\") : null;\r\n\r\n\t\tvar filterValues = JSON.stringify({\r\n\t\t\t\"Page\": page,\r\n\t\t\t\"maxItems\": maxitems,\r\n\t\t\t\"Mode\":\"slider\",\r\n\t\t\t\"SubjectAreas\": subjectAreasArray\r\n\t\t});\r\n\r\n\t\t$.ajax({\r\n\t\t\turl: \"/settings/servicelistview/\", // TODO: Change this to the right url\r\n\t\t\ttype: 'POST',\r\n\t\t\tcache: false,\r\n\t\t\tcontentType: \"html/text; charset=utf-8\",\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: filterValues,\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\t\r\n\t\t\t\t$(\"#service-slider\").html(data)\r\n\t\t\t\r\n\t\t\t\tfinansudd.slider.newsSlider($('#service-slider'));\r\n\t\t\t\tnovicell.responsiveImages.init();\r\n\t\t\t},\r\n\t\t\terror: function (data, errorThrown) {\r\n\t\t\t\tconsole.log(errorThrown)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.changeFilter = function (page) {\r\n\t\t$(\".service-filter-select\").change(function() {\r\n\t\t\tself.loadService(page, $(this).val());\r\n\t\t});\r\n\t\t\r\n\t}\r\n\r\n\tthis.paging = function () {\r\n\r\n\t\t$(\".pager\").click(function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tself.loadService($(this).data(\"page\"));\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tArray.prototype.clean = function (deleteValue) {\r\n\t\tfor (var i = 0; i < this.length; i++) {\r\n\t\t\tif (this[i] == deleteValue) {\r\n\t\t\t\tthis.splice(i, 1);\r\n\t\t\t\ti--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t};\r\n}","var finansudd = finansudd || {};\r\n\r\nfinansudd.slider = new function () {\r\n\r\n var self = this,\r\n \tprevHtml = '',\r\n\t\tnextHtml = '';\r\n\r\n\r\n this.testimonialSlider = function (selector) {\r\n\r\n $(selector).owlCarousel({\r\n loop: false,\r\n margin: 10,\r\n nav: true,\r\n navText: [prevHtml, nextHtml],\r\n items: 1\r\n })\r\n\r\n };\r\n\r\n this.videoSlider = function (selector) {\r\n if (selector.length) {\r\n selector.owlCarousel({\r\n autoplay: false,\r\n margin: 10,\r\n video: true,\r\n singleItem: true,\r\n lazyLoad: true,\r\n rewindNav: true,\r\n nav: true,\r\n loop: false,\r\n navText: [prevHtml, nextHtml],\r\n dots: true,\r\n onInitialized: function (event) {\r\n lazyloadOnVideos();\r\n },\r\n onChanged: function (event) {\r\n stopVideos();\r\n\r\n },\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n dots: false\r\n },\r\n\r\n 768: {\r\n items: 1,\r\n },\r\n\r\n 992: {\r\n items: 1\r\n }\r\n }\r\n });\r\n }\r\n\r\n function stopVideos(event) {\r\n // Stop all other video items on initialize\r\n $('.video-container iframe').remove();\r\n $('.video-container .fluid-width-video-wrapper').hide();\r\n $('.video-container figure').show();\r\n }\r\n\r\n function lazyloadOnVideos() {\r\n // Lazyload on video ex. in tab modul\r\n $('.play-video').click(function (e) {\r\n e.preventDefault();\r\n var videoContainer = $(this).closest('.video-container');\r\n var videoId = videoContainer.attr('data-video');\r\n videoContainer.append('').fitVids();\r\n $('.video-container figure').hide();\r\n\r\n });\r\n\r\n }\r\n };\r\n\r\n this.newsSlider = function (selector) {\r\n\r\n $(selector).owlCarousel({\r\n loop: false,\r\n margin: 10,\r\n nav: false,\r\n navText: [prevHtml, nextHtml],\r\n items: 3,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 768: {\r\n items: 3\r\n }\r\n }\r\n })\r\n\r\n };\r\n\r\n\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.socialShare = new function (selectors) {\r\n this.init = function (selectors) {\r\n selectors.click(function (e) {\r\n e.preventDefault();\r\n var $this = $(this),\r\n url = $this.attr('href'),\r\n name = \"Something\",\r\n specs = \"titlebar=no, status=no, scrollbars=no, menubar=no, location=no, width=600, height=550, top=200, left=400\";\r\n\r\n var newWindow = window.open(url, name, specs);\r\n });\r\n };\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.submenu = new function(){\r\n\r\n var self = this;\r\n\r\n this.init = function (selector) {\r\n\r\n \tvar $activeListItem = selector.find('li.current');\r\n\r\n \t// Add class to nearest parent li to apply arrow\r\n \tif (!$activeListItem.hasClass('has-sub')) {\r\n \t$activeListItem.parents('li').first().addClass('active-sub');\r\n \t}\r\n\r\n // Add class to level-1 item to apply background-color to the whole menu section\r\n \t$activeListItem.parents('li.sub-item-level-1').first().addClass('is-open');\r\n\r\n\t};\r\n\r\n};","var finansudd = finansudd || {};\r\n\r\nfinansudd.toolbar = new function(){\r\n\r\n var self = this;\r\n\r\n this.toggleMenu = function (selector) {\r\n\r\n \tvar $toolbarTriggers = $('#toolbar ul > li.has-dropdown .dropdown-trigger');\r\n\r\n \t$toolbarTriggers.click(function() {\r\n \t\tvar $this = $(this);\r\n\r\n \t\t$('body').addClass('open-overlay');\r\n \t\t$this.siblings('.toolbar-menu').toggleClass('active');\r\n\r\n \t\tif($this.hasClass(\"favorites\")){\r\n \t\t\tvar favoritList = localStorage.favorites;\r\n \t\t\tfinansudd.courselist.loadFavorites(1, favoritList);\r\n \t\t}\r\n \t});\r\n\r\n \tfinansudd.overlay.removeActive('.toolbar-menu', 'active');\r\n\t};\r\n\r\n this.toggleSearch = function (selector) {\r\n \tvar $selector = $(selector),\r\n \t\t$searchWrapper = $('#search-wrapper');\r\n\r\n\t\t$selector.click(function() {\r\n\r\n\t\t\tif(!$searchWrapper.hasClass('mobile-active')) {\r\n\t\t\t\t$searchWrapper.addClass('mobile-active');\r\n\t\t\t} else {\r\n\t\t\t\t$searchWrapper.removeClass('mobile-active');\r\n\t\t\t}\r\n\r\n $('.search-input').focus();\r\n\t\t\t$('body').addClass('open-overlay');\r\n \t});\r\n\r\n \tfinansudd.overlay.removeActive('#search-wrapper', 'mobile-active');\r\n\r\n\t};\r\n\r\n this.animateIcon = function (iconClass, aClass) {\r\n\r\n var activeClass = aClass ? aClass : \"active\",\r\n icon = iconClass ? iconClass : null;\r\n\r\n if (icon != null) {\r\n\r\n $(icon).addClass(activeClass);\r\n\r\n setTimeout(function() {\r\n $(icon).removeClass(activeClass)\r\n }, 2000);\r\n }\r\n\r\n\r\n\r\n };\r\n\r\n};\r\n","var finansudd = finansudd || {};\r\n\r\nfinansudd.video = new function(){\r\n\r\n var self = this;\r\n\r\n\r\n this.openVideoOverlay = function (selector) {\r\n\t\tselector.click(function(e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\tvideoId = $this.attr('data-video-src');\r\n\t\t\t\tvideoWidth = (window.innerWidth * 0.8),\r\n\t\t\t\tvideoHeight = videoWidth / (16/9);\r\n\r\n\t\t\tvar videoKode = $('