$(document).ready(function(){$('body').append('
');$(document).on({ajaxStart: function() {$('body').addClass('loading');},ajaxStop: function() {$('body').removeClass('loading');}});$('a[href^="#"]').on('click', function (e) {var target = this.hash;if(target && !$(this).hasClass('no-scrolling')) {$('html, body').stop().animate({ scrollTop: $(target).offset().top }, 600);$(target).focus();return false;}});$('textarea.default_focus').focus();$('input.default_focus').focus();$(document).on('click', '#opswitch-buttons button.unselected', function(event) {$(this).removeClass('unselected');$(this).closest('#opswitch-buttons').find('button').not(this).addClass('unselected');inp = $(this).closest('#opswitch-buttons').attr('data-input');vl = $(this).attr('data-val');if(inp) $('input#' + inp).val(vl);pan = $(this).closest('#opswitch-buttons').attr('data-panels');if(pan) {panobj = $('.opswitch-panels#' + pan);if(panobj.attr('data-effect') == 'slide') {panobj.children().slideUp().trigger($.Event('resize'));panobj.find('*[data-val="' + vl + '"]').slideDown().trigger($.Event('resize'));}else {panobj.children().hide().trigger($.Event('resize'));panobj.find('*[data-val="' + vl + '"]').show().trigger($.Event('resize'));}}});equalBoxHeight();$(window).bind('load', equalBoxHeight);$(window).bind('resize', equalBoxHeight);$(window).bind('orientationchange', equalBoxHeight);$('header .login-button a').on('mouseover', function(e) {$('.menubar-main').addClass('highlighted');});$('header .login-button a').on('focus', function(e) {$('.menubar-main').addClass('highlighted');});$('header .login-button a').on('mouseout', function(e) {$('.menubar-main').removeClass('highlighted');});$('header .login-button a').on('blur', function(e) {$('.menubar-main').removeClass('highlighted');});$('#menu-switch a').on('click', function(e) {var query = Modernizr.mq('(max-width: 767px)');if(query) {if($(this).hasClass('open')) {$('.menubox').slideUp('fast');$(this).removeClass('open').attr('title', 'Menü einblenden').attr('aria-label', 'Menü einblenden');$(this).html('');}else {$('.menubox').slideDown('fast');$(this).addClass('open').attr('title', 'Menü ausblenden').attr('aria-label', 'Menü ausblenden');$(this).html('');}}return false;});list = $('body').attr('data-page');$('.list-filter').removeClass('open');$('h3.filter-head').wrap('
');$('div.filter-head').append('Filter ein-/ausblenden');$('.list-order-row > div').show().css('display', 'table-cell');$('.list-order-row > div:last-child').hide();$('.list-filter div.filter-anwenden').hide();$('a.toggle-filter').on('click', function() {if($('.list-filter').hasClass('open')) {closeFilterList();}else {$('.list-filter').slideDown('fast').addClass('open');$('a.toggle-filter svg.icon').animateRotate(0, 180);}return false;});$(document).on('change', '.list-filter select#berufsfeld', function(event) {event.preventDefault();var subject = $('body').attr('class');var id = $('.list-filter select#berufsfeld').val();var html = '';$.ajax({type: 'POST',url: 'https://www.ausbildungsboerse-pulheim.de/skript/kategorien',dataType: 'html',data: {id: id, subject: subject}}).done(function(res) {$('.list-filter select#kategorie option[value=0]').prop('selected', true);$('.list-filter select#kategorie').prop('disabled', true);$('.list-filter select#beruf option[value=0]').prop('selected', true);$('.list-filter select#beruf').prop('disabled', true);if(res) {$('.filter-kategorie').html(res);}closeFilterList();showList(list, true);}).fail(function() {$('.list-filter select#kategorie option[value=0]').prop('selected', true);$('.list-filter select#kategorie').prop('disabled', true);$('.list-filter select#beruf option[value=0]').prop('selected', true);$('.list-filter select#beruf').prop('disabled', true);closeFilterList();showList(list, true);});});$(document).on('change', '.list-filter select#kategorie', function(event) {event.preventDefault();var id = $('.list-filter select#kategorie').val();var html = '';$.ajax({type: 'POST',url: 'https://www.ausbildungsboerse-pulheim.de/skript/berufe',dataType: 'html',data: {id: id}}).done(function(res) {$('.list-filter select#beruf option[value=0]').prop('selected', true);$('.list-filter select#beruf').prop('disabled', true);if(res) {$('.list-filter .filter-beruf').html(res);}closeFilterList();showList(list, true);}).fail(function() {$('.list-filter select#beruf option[value=0]').prop('selected', true);$('.list-filter select#beruf').prop('disabled', true);closeFilterList();showList(list, true);});});$(document).on('change', '.list-filter select#beruf', function(event) {event.preventDefault();closeFilterList();showList(list, true);});$(document).on('change', '.list-filter select#ort', function(event) {event.preventDefault();closeFilterList();showList(list, true);});$(document).on('change', '.list-filter select#jahr', function(event) {event.preventDefault();closeFilterList();showList(list, true);});$(document).on('change', '.list-order select#sort', function(event) {event.preventDefault();showList(list, false);});$(document).on('click', '.list-info li a', function(e) {var filter = $(this).parent().parent().attr('data-filter');$('.list-filter select#' + filter + ' option[value=0]').prop('selected', true);if(filter == 'berufsfeld') {$('.list-filter select#kategorie option[value=0]').prop('selected', true);$('.list-filter select#kategorie').prop('disabled', true);$('.list-filter select#beruf option[value=0]').prop('selected', true);$('.list-filter select#beruf').prop('disabled', true);}else if(filter == 'kategorie') {$('.list-filter select#beruf option[value=0]').prop('selected', true);$('.list-filter select#beruf').prop('disabled', true);}showList(list, true);return false;});$(document).on('click', '.pagination a', function(e) {var page = $(this).attr('data-ci-pagination-page');showList(list, false, page, true);return false;});});function equalBoxHeight() {boxes = $('.equal_height');boxes.height('auto');var query = Modernizr.mq('(min-width: 992px)');if(query) {var maxHeight = Math.max.apply(null, boxes.map(function () {return $(this).height();}).get());boxes.height(maxHeight);}}function showList(list, updateInfo, page, scroll_to_top) {var f = 0;var k = 0;var b = 0;var o = 0;var j = 0;var n = 0;var s = 0;if(typeof page == 'undefined') page = 1;if(list == 'lehrstellen') {f = $('select#berufsfeld').val();k = $('select#kategorie').val();b = $('select#beruf').val();o = $('select#ort').val();j = $('select#jahr').val();s = $('select#sort').val();url = 'https://www.ausbildungsboerse-pulheim.de/ausbildungsplaetze/liste/' + page;}else if(list == 'praktika') {f = $('select#berufsfeld').val();k = $('select#kategorie').val();o = $('select#ort').val();j = $('select#jahr').val();s = $('select#sort').val();url = 'https://www.ausbildungsboerse-pulheim.de/praktika/liste/' + page;}else if(list == 'betriebe') {f = $('select#berufsfeld').val();k = $('select#kategorie').val();o = $('select#ort').val();s = $('select#sort').val();url = 'https://www.ausbildungsboerse-pulheim.de/betriebe/liste/' + page;}$.ajax({type: 'POST',url: url,dataType: 'html',data: { f: f, k: k, b: b, o: o, j: j, n: n, s: s }}).done(function(res) {if(res) $('.left-col').html(res);if(updateInfo) {showListInfo(list, scroll_to_top);}else if(scroll_to_top) {$('html, body').stop().animate({ scrollTop: $('body').offset().top }, 600);$('#inhalt').focus();}}).fail(function() {});}function showListInfo(list, scroll_to_top) {var f = 0;var k = 0;var b = 0;var o = 0;var j = 0;if(list == 'lehrstellen') {f = $('select#berufsfeld').val();k = $('select#kategorie').val();b = $('select#beruf').val();o = $('select#ort').val();j = $('select#jahr').val();url = 'https://www.ausbildungsboerse-pulheim.de/ausbildungsplaetze/info';}else if(list == 'praktika') {f = $('select#berufsfeld').val();k = $('select#kategorie').val();o = $('select#ort').val();j = $('select#jahr').val();url = 'https://www.ausbildungsboerse-pulheim.de/praktika/info';}else if(list == 'betriebe') {f = $('select#berufsfeld').val();k = $('select#kategorie').val();o = $('select#ort').val();url = 'https://www.ausbildungsboerse-pulheim.de/betriebe/info';}$.ajax({type: 'POST',url: url,dataType: 'html',data: {f: f, k: k, b: b, o: o, j: j}}).done(function(res) {if(res) $('.list-info').html(res);if(scroll_to_top) {$('html, body').stop().animate({ scrollTop: $('body').offset().top }, 600);$('#inhalt').focus();}}).fail(function() {});}function closeFilterList() {var query = Modernizr.mq('(max-width: 991px)');if(query) {$('.list-filter').slideUp('fast').removeClass('open');$('a.toggle-filter svg.icon').animateRotate(180, 0);}}function initMap(betriebe, hide_marker) {if(betriebe.length == 0) {return;}else if(betriebe.length == 1) {map_center = ol.proj.transform([betriebe[0][1], betriebe[0][2]], 'EPSG:4326', 'EPSG:3857');map_zoom = 16;}else {map_center = ol.proj.transform([6.8, 51], 'EPSG:4326', 'EPSG:3857');map_zoom = 12;}if(!hide_marker) {var iconStyle = new ol.style.Style({image: new ol.style.Icon({anchor: [0.5, 54],anchorXUnits: 'fraction',anchorYUnits: 'pixels',src: 'https://www.ausbildungsboerse-pulheim.de/images/template/marker.png'})});var vectorSource = new ol.source.Vector();for(i = 0; i < betriebe.length; i++) {var iconFeature = new ol.Feature({geometry: new ol.geom.Point(ol.proj.transform([betriebe[i][1], betriebe[i][2]], 'EPSG:4326', 'EPSG:3857')),pos: ol.proj.transform([betriebe[i][1], betriebe[i][2]], 'EPSG:4326', 'EPSG:3857')});iconFeature.setId(betriebe[i][0]);if(typeof betriebe[i][3] !== 'undefined') iconFeature.name = betriebe[i][3];if(typeof betriebe[i][4] !== 'undefined') iconFeature.link = betriebe[i][4];vectorSource.addFeature(iconFeature);}var clusterSource = new ol.source.Cluster({distance: 15,source: vectorSource});var styleCache = {};styleCache[1] = iconStyle;var vectorLayer = new ol.layer.Vector({source: clusterSource,style: function(feature) {var size = feature.get('features').length;var style = styleCache[size];if(!style) {style = new ol.style.Style({image: new ol.style.Circle({radius: 15,stroke: new ol.style.Stroke({color: '#fff',width: 2}),fill: new ol.style.Fill({color: '#0069b4'})}),text: new ol.style.Text({text: size.toString(),font: '15px "PT Sans", "Arial", sens-serif',fill: new ol.style.Fill({color: '#fff'})})});styleCache[size] = style;}return style;}});}else {var vectorLayer = new ol.layer.Vector({source: vectorSource});}var map = new ol.Map({layers: [new ol.layer.Tile({source: new ol.source.OSM()}),vectorLayer],target: document.getElementById('map'),view: new ol.View({center: map_center,zoom: map_zoom,minZoom: 11,maxZoom: 19}),controls: ol.control.defaults({zoomOptions: {zoomInTipLabel: 'Zoom hinein',zoomOutTipLabel: 'Zoom heraus'},attributionOptions: {collapsible: false},rotateOptions: {tipLabel: 'Nach Norden ausrichten'}})});if(!hide_marker) {var popup_element = document.getElementById('popup');var popup = new ol.Overlay({element: popup_element,positioning: 'bottom-center',stopEvent: false});map.addOverlay(popup);map.on('click', function(evt) {var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {if(feature) {if(typeof feature.get('features') === 'undefined') {if($(popup_element).attr('data-id') != 'b'+feature.getId()) {$(popup_element).popover('destroy');$(popup_element).attr('data-id', 'b'+feature.getId());popup.setPosition(feature.get('pos'));$(popup_element).popover({'placement': 'top','html': true,'title': feature.name,'content': 'Zum Firmenprofil'});$(popup_element).popover('show');}}else {var cfeatures = feature.get('features');if(cfeatures.length > 1) {zoom = map.getView().getZoom();if(zoom == 19) {if($(popup_element).attr('data-id') != 'b'+cfeatures[0].getId()) {$(popup_element).popover('destroy');$(popup_element).attr('data-id', 'b'+cfeatures[0].getId());popup.setPosition(cfeatures[0].get('pos'));content = '';for(i = 0; i < cfeatures.length; i++) {content += '
  • '+cfeatures[i].name+'
  • '}$(popup_element).popover({'placement': 'top','html': true,'title': 'Zum Firmenprofil','content': ''});$(popup_element).popover('show');}}else {map.getView().animate({center: feature.getGeometry().getCoordinates(),zoom: map.getView().getZoom() + 3,duration: 1000});}}else if (cfeatures.length == 1) {if($(popup_element).attr('data-id') != 'b'+cfeatures[0].getId()) {$(popup_element).popover('destroy');$(popup_element).attr('data-id', 'b'+cfeatures[0].getId());popup.setPosition(cfeatures[0].get('pos'));$(popup_element).popover({'placement': 'top','html': true,'title': cfeatures[0].name,'content': 'Zum Firmenprofil'});$(popup_element).popover('show');}}}}});});map.on('movestart', function(e) {$(popup_element).popover('destroy').attr('data-id', '');});map.on('pointermove', function(e) {var pixel = map.getEventPixel(e.originalEvent);var hit = map.hasFeatureAtPixel(pixel);map.getTarget().style.cursor = hit ? 'pointer' : '';});}map.getView().on('change:center', function(evt) {$('.restore_view').show();getCoordinates();});map.getView().on('change:resolution', function(evt) {$('.restore_view').show();getCoordinates();});map.getView().on('change:rotation', function(evt) {$('.restore_view').show();getCoordinates();});function getCoordinates() {var pos = ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326');$('#laengengrad').val(pos[0]);$('#breitengrad').val(pos[1]);}$('.restore_view a').on('click', function() {trigger = $(this);map.getView().animate({center: map_center,zoom: map_zoom,rotation: 0,duration: 1000}, function(result) {trigger.parent().hide();});return false;});$('a#betriebe-show-list').on('click', function() {if(!$(this).hasClass('active')) {$('div.row-map').hide();$('div.row-list').show();$(this).parent().find('a').removeClass('active');$(this).addClass('active');}return false;});$('a#betriebe-show-map').on('click', function() {if(!$(this).hasClass('active')) {$('div.row-list').hide();$('div.row-map').show();$(this).parent().find('a').removeClass('active');$(this).addClass('active');map.updateSize();}return false;});}$.fn.animateRotate = function(startAngle, endAngle, duration, easing, complete){return this.each(function() {var elem = $(this);$({deg: startAngle}).animate({deg: endAngle}, {duration: duration,easing: easing,step: function(now) {elem.css({'-moz-transform':'rotate('+now+'deg)','-webkit-transform':'rotate('+now+'deg)','-o-transform':'rotate('+now+'deg)','-ms-transform':'rotate('+now+'deg)','transform':'rotate('+now+'deg)'});},complete: complete || $.noop});});};