{"version":3,"sources":["scripts.min.js"],"names":["Element","prototype","matches","selector","this","matchesSelector","msMatchesSelector","webkitMatchesSelector","call","document","window","embed","svg","g","viewBox","getAttribute","fragment","createDocumentFragment","clone","cloneNode","setAttribute","childNodes","length","appendChild","firstChild","loadreadystatechange","xhr","onreadystatechange","readyState","x","createElement","innerHTML","responseText","s","splice","map","array","querySelector","replace","$uses","polyfill","requestAnimationFrame","$svgCache","getElementsByTagName","test","navigator","userAgent","match","setTimeout","oninterval","use","i","parentNode","nodeName","$url","split","url_root","url_hash","removeChild","XMLHttpRequest","open","send","push","getElementById","$helpers","$$","_is_document","$node","nodeType","DOCUMENT_NODE","_is_window","_is_array","$obj","Object","toString","_is_input","tagName","_query","context","$nodes","slice","substr","getElementsByClassName","querySelectorAll","_create_element","html","$div","trim","$filtered_nodes","len","toLowerCase","_get_filtered_nodes","_get_scroll_offset","top","left","pageXOffset","pageYOffset","scrollTop","scrollLeft","_get_vendor_property","property","css_prefixes","cap_name","charAt","toUpperCase","orig_name","style","_get_prefixed_event","type","$types","prefix","$prefixes","_get_event_type","animation","MozAnimation","WebkitAnimation","msAnimation","transition","MozTransition","WebkitTransition","msTransition","documentMode","is_helper","find","$this","concat","reduce","a","b","indexOf","children","$child_node","$filtered_child_nodes","nextSibling","get_parent","maybe_class","name_only","tag_name","class_name","className","append","j","obj_len","prepend","insertBefore","before","after","remove","remove_children","empty","next_sibling","prev_sibling","previousSibling","get_siblings","$siblings","$children","get_attribute","attribute","value","set_attribute","removeAttribute","set_text","text","textContent","get_text","insert_html","outer","outerHTML","get_html","get_file","$file","filename","filetype","filesize","files","name","size","is_tag","tagname","is_visible","$styles","getComputedStyle","offsetWidth","offsetHeight","display","parentElement","index","element","for_each","callback","is_checked","checked","add_class","trimmed_classes","classes","$selector","updated","String","selector_len","sort","join","remove_class","has_class","classList","contains","focus","click","set_style","property_vendor","hasOwnProperty","all","letter","get_style","getPropertyValue","set_data","key","get_data","get_width","width","documentElement","clientWidth","Math","max","body","scrollWidth","get_height","height","clientHeight","scrollHeight","get_offset_top","offsetTop","offsetParent","get_offset_left","offsetLeft","get_scroll_top","scroll_top","get_scroll_left","scroll_left","set_value","get_value","add_event","listener","event_listener","event","types_len","addEventListener","load_script","url","$head","$script","src","random","onload","get","$ajax","status","set_hash","hash","history","replaceState","location","pathname","title","merge_objects","$obj1","$obj2","constructor","scroll_to","to","duration","diff","step","scrollBy","abs","get_touch_range","dist_x","dist_y","degrees","theta","atan2","PI","floor","is_top","is_right","is_bottom","is_left","$html","_find","needle","device","iphone","ipod","ipad","ios","android","android_phone","android_tablet","windows","windows_phone","windows_tablet","mobile","tablet","add","support","touch","msMaxTouchPoints","css_property_found","prefixes","_has_css_property","Prefetch","$prefetch_link","_$prefetch_link","_$options","init","_prefetch","_prerender","$link","$prefetch_links","$links","target","$button","$buttons","keyCode","FocusMethod","focus_method","last_focus_method","_this","_on_key_down","bind","passive","_on_mouse_down","_on_touch_start","_on_focus","_on_blur","_on_window_blur","Tooltip","$tooltip_wrapper","$tooltip","_temp_disabled","_perm_disabled","_focused","tooltip_id","$tooltip_trigger","_check_tooltip","_hide_tooltip","_keyboard_nav","_show_tooltip","disabled","stopPropagation","$tooltip_wrappers","SmoothScroll","has_animationend_event","_scroll_to","$target","offset","$callback","$highlighted_target","interval","top_position","_get_offset_top","setInterval","clearInterval","_click_link","_change_select","parameter","$parameter","$hash","preventDefault","options","selectedIndex","search","scrollTo","DropdownMenu","$dropdown_menu","id","$main_menuitems","$sub_menuitems","$main_menuitems_with_sub_menu","main_menu_index","event_type","$key","tab","enter","escape","space","arrow_left","arrow_up","arrow_right","arrow_down","_init_accessibility","_init_keyboard","$main_menuitem","$li","_on_mouseenter_main_menuitem","_on_mouseover_main_menuitem","_on_mouseout_main_menuitem","_on_focus_main_menuitem","_on_keydown_main_menuitem","$sub_menuitem","_on_keydown_sub_menuitem","_get_main_menuitem_index","$sub_menu","nextElementSibling","shiftKey","_close_sub_menus","_open_sub_menu","sub_menu_is_open","_close_sub_menu","_focus_prev_main_menuitem","_focus_prev_menuitem","_focus_next_main_menuitem","Array","activeElement","clearTimeout","close_sub_menu_timeout","sub_menu_index","_focus_prev_sub_menuitem","_focus_next_sub_menuitem","focus_last_sub_menuitem","is_current_menuitem","OffCanvasMenuAccordion","$toggle_offcanvas_menu","controls","$main_menuitem_with_sub_menu","_on_click_main_menuitem","_window_size_changed","$element","$main_menuitem_selected","OffCanvasMenu","$offcanvas_menu_wrapper","$offcanvas_menu","$focus_elements","focus_element","$offcanvas_menu_state","_focus_element_with_shift_tab_key","_focus_element_with_tab_key","tab_index","$focus_element","_toggle_sub_menus","is_active_menuitem","$parent_menuitems","_get_parent_menu_elements","toggle","$findings","False","OffCanvasMenuOpener","$open_offcanvas_menu","$close_offcanvas_menu","_toggle_menu","_open_menu","_close_menu","_scroll_to_top","$anchor","console","log","FormHelpers","$el","_file_upload","_select","$file_name","$file_button","href","FormValidation","$form","_$form","_$inputs","_$inputs_checkbox","_$selects","_$button","_$error_msg_button","inputs_len","$input","_input_keyup","_input_blur","inputs_checkbox_len","$input_checkbox","_input_checkbox_click","_input_checkbox_keyup","_input_checkbox_blur","selects_len","$select","_select_change","_select_blur","_submit","_check_submit_status","_validate_input","$error_warning","min","parseInt","pattern","regexp","RegExp","_validate_input_file","required","_validate_input_checkbox","_validate_select","$wrapper","error_msg_button_id","enable_submit_button","_show_first_error","$first_input_error","$forms","$secure_targets","$secure_target","$location_data","$locations_data","FormCache","_form_name","_$cache","_init_events","_restore_cache","_save_cache","_reset_cache","localStorage","setItem","domain","JSON","stringify","$cache","getItem","parse","is_valid","removeItem","_get_style","FormTextareaAutogrow","$textarea","default_height","line_height","padding_bottom","padding_top","_set_textarea_height","_set_style","$textareas","FormUrlParameters","_get_url_parameters","$parameters","_set_inputs_value","$inputs","$pair","decodeURIComponent","selected_select","_checked_input_radio","defaultChecked","defaultValue","$option","$options","defaultSelected","FormSearchDataList","$search","$submit","datalist","list","datalist_loaded","datalist_inserted","_focus","_get_datalist","_get_url","$datalist","sessionStorage","_get_sorted_datalist","_create_datalist","$a","$b","a_value","b_value","$datalist_entry","label","FormSearch","$input_search","_on_input","FormSearchBox","$toggle_search_box","$open_search_box","$search_box_state","$search_box","$search_button","$close_search_box_2","_toggle","_open","_close","ImageGallery","$images","$overlay","$slider","$previous","$next","$close","_current_index","_touch_flag","_init_animations","_init_mouse","_init_touch","_overlay_transtion_end","_bounce_animation_end","_show_previous_image","_show_next_image","_hide_overlay","_touch_start_x","changedTouches","pageX","_touch_start_y","pageY","touches","touch_x","touch_y","_prepare_overlay","_show_overlay","gallery","_current_gallery","$full_images","$current_images","$full_image","_load_image","_preload_previous_image","_preload_next_image","_update_offset","transform","webkitTransform","$figure","$image","image_source","image_description","$spinner","$figcaption","AnimationHelpers","$animated_element","_$animated_element","_offset","$show_animation","_is_in_viewport","_offset_top","offset_top","_remove_scroll_event","removeEventListener","$animated_elements","scrolled_down","_is_scrolled_down","VpiDiagram","$vpi_diagram","$grid","$grid_text","$grid_points","$months","$legend","$year_label","$select_year","$switch_view","$infolist_section","$output","svg_namespace","$months_and_values","$legend_text","bounds","timer","_get_data_for_year","_year_changed","_year_selected_by_user","_switch_view","_display_months_two_row","getBBox","setAttributeNS","_calc_grid_bounds","_change_grid","_change_months_label","_change_lines","_change_points","_change_legend","_change_year_label","_change_table_view","year","$table","innerText","month","parseFloat","avg","middle","_calc_x_coordinate","array_position","_calc_y_coordinate","toFixed","$old_texts","$svg_text","createElementNS","createTextNode","$old_circles","$svg_circle","y","x_coordinate","y_coordinate","_change_output","$old_lines","$svg_line","getBoundingClientRect","MapChartData","$map_chart","parent_country","$countries","country_codes","AC","AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BU","BV","BW","BY","BZ","CA","CC","CD","CE","CF","CG","CH","CI","CK","CL","CM","CN","CO","CP","CR","CS","CU","CV","CW","CX","CY","CZ","DE","DG","DJ","DK","DM","DO","DZ","EA","EC","EE","EG","EH","ER","ES","ET","EU","FI","FJ","FK","FM","FO","FR","FX","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NT","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SU","SV","SX","SY","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","YU","ZA","ZM","ZR","ZW","$sections","costs_by_country_name","country_codes_by_name","code","daily_fee","nightly_fee","tds","country","additional_values","total","h","country_name","costs","MapChart","$map_chart_image","$zoom_in","$zoom_out","$drag_area","$touch_info","zoom","zoom_increase","min_zoom","max_zoom","x_offset","y_offset","start_event","old_event","_zoom_in","_zoom_out","_drag","_setup_map_chart","_update_map_chart","_proof_zoom","_proof_offest","WebkitTransform","msTransform","_convert_event","_calc_offset_for_drag","_manage_touch_interaction","hypotenuse_now","sqrt","pow","hypotenuse_start","$country","removeProperty","fillOpacity","_show_output","$show_more_content","content_id","$content","$vcards","$vcard","ChartOrganigram","chart_data","table","google","visualization","DataTable","chart","OrgChart","draw_chart","addColumn","addRows","draw","nodeClass","selectedNodeClass","chart_organigram","intervall","$slide","$dots","$prev","oldindex","time","changeSlider","callIntervall","setupSlider","newIndex","Slider","$slides","active_index","$navigation","$navigation_next","$navigation_prev","$pagination","auto_slide","timeout","auto_stop","run","_auto_slide","_auto_stop","_init_navigation","_init_pagination","_update_slides","_init_slides_animation","next","_get_index","_set_slides_animation","prev","_remove_all_classes","is_keyboard","slide","closest","_set_active_slide","_set_slides_position","_set_slides_visibility","_update_pagination","elements","number","slide_length_third","slide_length_half","$slider_wrapper","touch_start_x","stop_on_hover","_next_slide","_set_height","_prev_slide","_slide","_manage_control","highest","$sliders","GoogleMaps","data_id","map_is_ready","_infowindow_is_open","static_map_urls","_extend","$extended","deep","arguments","merge","obj","prop","map_type","direction_color","_geocoder_response","$mapdata","mapdata","street_address","postal_code","locality","$geocoder","geocode","address","$results","maps","GeocoderStatus","OK","latlng","geometry","latitude","lat","longitude","lng","OVER_QUERY_LIMIT","Geocoder","LatLng","_latlng_loaded","undefined","_init_map","$map","Map","center","mapTypeId","MapTypeId","scrollwheel","disableDefaultUI","disable_default_ui","styles","map_style","zoomControlOptions","position","ControlPosition","TOP_RIGHT","mapTypeControlOptions","TOP_LEFT","streetViewControlOptions","$bounds","LatLngBounds","_init_infowindow","_change_travel_mode","_set_markers","_init_directions","_limit_zoomlevel","_init_autoselect","_init_static_maps","map_resize","debug","addDomListener","getCenter","_$infowindow","InfoWindow","maxWidth","addListener","close","$travel_mode","marker_href","marker_width","marker_height","infowindow","_remove_duplicated_markers","$marker","Marker","Animation","DROP","clickable","icon","scaledSize","Size","optimized","zIndex","open_infowindow","getZIndex","extend","fitBounds","addListenerOnce","getZoom","setZoom","_remove_all_markers","original_infowindow","$latlng","$duplicates","_clean_map","$polylines","setMap","$static_maps","len_i","_update_static_maps","paths","daddr","$direction","$panel_wrapper","$panel_title","$panel","$directions_service","DirectionsService","$saddr","$daddr","travel_mode","directionsmode","destination","saddr","$input_error","DirectionsTravelMode","DRIVING","TRANSIT","BICYCLING","WALKING","route","origin","travelMode","$result","DirectionsStatus","$polyline","$route","routes","$legs","legs","$steps","steps","warnings","distance_text","duration_text","static_paths","template","$route_bounds","distance","start_address","steps_len","instructions","start_location","Polyline","path","strokeColor","strokeOpacity","strokeWeight","end_address","copyrights","$start_marker","start_marker_href","start_marker_width","start_marker_height","mapdata_len","setVisible","_google_analytics_tracking","has_google_analytics","ga","show_marker","_get_current_index","panTo","_$infowindow_mapdata","setContent","trigger","setCenter","$google_maps_data","Accordion","$accordion","$tab","anchor","one_tab_open","_setup_accordion","_open_tabpanel","_toggle_tabpanel","_on_resize","_close_tabpanel","$tabpanel","_get_tabpanel","maxHeight","max_height","13","32","35","36","37","38","39","40","_change_focused_tab","$accordions","$popup","$iframe","OnlinetoolPopup","$onlinetool","$body","zms_common","html_len","_create_popup","which","$onlinetools","dummySrc","fixRespimg","findPictureImgs","onResize","mq","ua","HTMLPictureElement","$1","img","source","sizes","picture","firstElementChild","_pfLastSize","imgs","matchMedia","srcset","eminpx","alwaysCheckWDescriptor","evalId","pf","isSupportTestReady","noop","image","getImgAttr","setImgAttr","removeImgAttr","docElem","types","cfg","algorithm","srcAttr","srcsetAttr","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","px","in","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","on","evt","fn","capture","attachEvent","memoize","cache","input","isSpace","c","regLength","buildStr","image2","width1","isDomReady","func","wait","timestamp","later","regReady","timerId","lastClientWidth","typeUri","evalCSS","css","args","string","parsedLength","Function","e","setResolution","candidate","sizesattr","w","cWidth","calcListLength","res","d","picturefill","opt","plen","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","ascendingSort","getCandidateForSrc","set","candidates","parseSet","makeUrl","warn","implementation","hasFeature","ns","Date","getTime","supSrcset","supSizes","supPicture","complete","onerror","u","setSize","matchesMedia","media","mMQ","apply","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","exec","substring","pos","descriptors","currentDescriptor","state","inputLength","parseDescriptors","desc","lastChar","intVal","floatVal","pError","has1x","tokenize","parseSrcset","getEmValue","div","originalHTMLCSS","cssText","originalBodyCSS","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","regexCssLengthWithUnits","regexCssCalc","str","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","pop","parseSizes","setRes","applySetCandidate","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","imageData","dpr","sets","cached","setSrc","origWidth","getSet","parseSets","parent","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","sources","getAllSourceElements","supported","parsed","srcSetCandidates","matchingSet","evaluated","extreme","evaled","innerWidth","innerHeight","vw","vh","em","rem","fillImgs","last","_","shift","module","exports","define","amd","Image"],"mappings":"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","file":"scripts.min.js","sourcesContent":["// MATCHES\n// Support für IE 9+, Edge und Android bis Version 4.4.4\n// -------------------------------------------------------------------------------------------------\n\n(function() {\n if (!Element.prototype.matches) {\n var matches = function(selector) {\n return (this.matchesSelector || this.msMatchesSelector || this.webkitMatchesSelector).call(this, selector);\n };\n\n Element.prototype.matches = matches;\n }\n})();\n\n\n// SVG4EVERYBODY\n// SVG-Support für alle IE-Versionen\n// -------------------------------------------------------------------------------------------------\n\n(function(document, window) {\n /* jshint nocomma: false */\n\n function embed(svg, g) {\n if (g) {\n var viewBox = !svg.getAttribute('viewBox') && g.getAttribute('viewBox'),\n fragment = document.createDocumentFragment(), clone = g.cloneNode(!0);\n\n for (viewBox && svg.setAttribute('viewBox', viewBox); clone.childNodes.length;) {\n fragment.appendChild(clone.firstChild);\n }\n\n svg.appendChild(fragment);\n }\n }\n\n function loadreadystatechange(xhr) {\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n var x = document.createElement('x');\n\n x.innerHTML = xhr.responseText, xhr.s.splice(0).map(function(array) {\n embed(array[0], x.querySelector('#' + array[1].replace(/(\\W)/g, '\\\\$1')));\n });\n }\n }, xhr.onreadystatechange();\n }\n\n function svg4everybody() {\n var $uses = document.getElementsByTagName('use'),\n polyfill = /\\bFirefox\\b|\\bEdge\\b|\\bTrident\\/[567]\\b|\\bVersion\\/7.0 Safari\\b/.test(navigator.userAgent) || (navigator.userAgent.match(/AppleWebKit\\/(\\d+)/) || [])[1] < 537,\n requestAnimationFrame = window.requestAnimationFrame || setTimeout,\n $svgCache = {};\n\n function oninterval() {\n for (var use, svg, i = 0; i < $uses.length;) {\n if (use = $uses[i], svg = use.parentNode, svg && /svg/i.test(svg.nodeName)) {\n var src = use.getAttribute('xlink:href'),\n $url = src.split('#'),\n url_root = $url[0],\n url_hash = $url[1];\n\n if (svg.removeChild(use), url_root.length) {\n var xhr = $svgCache[url_root] = $svgCache[url_root] || new XMLHttpRequest();\n xhr.s || (xhr.s = [], xhr.open('GET', url_root), xhr.send()), xhr.s.push([ svg, url_hash ]),\n loadreadystatechange(xhr);\n }\n else {\n embed(svg, document.getElementById(url_hash));\n }\n } else {\n i += 1;\n }\n }\n requestAnimationFrame(oninterval, 17);\n }\n\n if (polyfill) {\n oninterval();\n }\n }\n\n svg4everybody();\n}(document, window));\n\n// HELPERS\n// -------------------------------------------------------------------------------------------------\n\n(function(document, window) {\n var $helpers,\n $$;\n\n // Interne Funktion\n\n function _is_document($node) {\n return $node !== null && $node.nodeType === $node.DOCUMENT_NODE;\n }\n\n function _is_window($node) {\n return $node !== null && $node === window;\n }\n\n function _is_array($obj) {\n return Object.prototype.toString.call($obj) === '[object Array]';\n }\n\n function _is_input($node) {\n return $node.tagName === 'INPUT' ||\n $node.tagName === 'SELECT' ||\n $node.tagName === 'TEXTAREA';\n }\n\n function _query(selector, context) {\n var simpleRe = /^(#?[\\w-]+|\\.[\\w-.]+)$/,\n periodRe = /\\./g,\n slice = [].slice,\n $nodes;\n\n if (simpleRe.test(selector)) {\n switch(selector[0]) {\n case '#':\n $nodes = context.getElementById(selector.substr(1));\n break;\n case '.':\n $nodes = slice.call(context.getElementsByClassName(selector.substr(1).replace(periodRe, ' ')));\n break;\n default:\n $nodes = slice.call(context.getElementsByTagName(selector));\n }\n }\n else {\n $nodes = slice.call(context.querySelectorAll(selector));\n }\n\n return $nodes ? (_is_array($nodes) ? $nodes : [$nodes]) : [];\n }\n\n function _get_filtered_nodes($nodes, selector) {\n var $filtered_nodes = [];\n\n for (var i = 0, len = $nodes.length; $nodes !== null && (i < len); i++) {\n if ($nodes[i].nodeType === 1) {\n if (typeof selector === 'undefined') {\n $filtered_nodes.push($nodes[i]);\n }\n else if($nodes[i].tagName.toLowerCase() === selector) {\n $filtered_nodes.push($nodes[i]);\n }\n }\n }\n\n return $filtered_nodes;\n }\n\n function _create_element(html) {\n var $div = document.createElement('div');\n\n $div.innerHTML = html.trim(); // textContent/nodeValue funktionieren hier nicht,\n // Bug bei Popups: http://stackoverflow.com/a/25896886\n\n return _get_filtered_nodes($div.childNodes);\n }\n\n function _get_scroll_offset($node) {\n var top,\n left;\n\n if (_is_window($node)) {\n if (window.pageXOffset !== null) {\n top = window.pageYOffset;\n left = window.pageXOffset;\n }\n }\n else {\n top = $node.scrollTop;\n left = $node.scrollLeft;\n }\n\n return {\n top : top,\n left : left\n };\n }\n\n function _get_vendor_property(property) {\n var css_prefixes = ['Moz', 'ms', 'Webkit'],\n $div = document.createElement('div');\n\n if (property in $div) {\n return property;\n }\n\n var cap_name = property.charAt(0).toUpperCase() + property.slice(1),\n orig_name = property;\n\n for (var i = css_prefixes.length; i > 0; i--) {\n property = css_prefixes[i] + cap_name;\n\n if (property in $div.style) {\n return property;\n }\n }\n\n return orig_name;\n }\n\n function _camel_case_property(property) {\n return property.replace(/-([\\da-z])/gi, function(all, letter) {\n return letter.toUpperCase();\n });\n }\n\n function _get_prefixed_event(type, $types) {\n var $div = document.createElement('div').style,\n $prefixes = ['', 'Moz', 'ms', 'Webkit'],\n prefix;\n\n for (var i = 0, len = $prefixes.length; i < len; i++) {\n prefix = $prefixes[i] + type.charAt(0).toUpperCase() + type.substr(1, type.length - 4);\n\n if (prefix in $div) {\n return $types[prefix];\n }\n }\n\n return type;\n }\n\n function _get_event_type_wheel(type) {\n return type === 'wheel' ? 'onwheel' in document || document.documentMode >= 9 ? 'wheel' : 'mousewheel' : type;\n }\n\n function _get_event_type_animatedend(type) {\n return _get_prefixed_event(type, {\n 'animation' : 'animationend',\n 'MozAnimation' : 'animationend',\n 'WebkitAnimation' : 'webkitAnimationEnd',\n 'msAnimation' : 'MSAnimationEnd'\n });\n }\n\n function _get_event_type_transitionend(type) {\n return _get_prefixed_event(type, {\n 'transition' : 'transitionend',\n 'MozTransition' : 'transitionend',\n 'WebkitTransition' : 'webkitTransitionEnd',\n 'msTransition' : 'MSTransitionEnd'\n });\n }\n\n function _get_event_type(type) {\n type = _get_event_type_animatedend(type) || _get_event_type_transitionend(type);\n type = _get_event_type_wheel(type);\n\n return type;\n }\n\n // Erstellt Helpers Object\n\n $$ = function(selector, context) {\n context = context || document;\n return new $helpers(selector, context);\n };\n\n $helpers = function(selector, context) {\n var _this = this,\n $nodes = [];\n\n if (selector) {\n if (typeof selector === 'string') {\n selector = selector.trim();\n\n if (/<[a-z][\\s\\S]*>/i.test(selector)) {\n $nodes = _create_element(selector);\n }\n else {\n $nodes = _query(selector, context);\n }\n }\n else if (_is_array(selector)) {\n $nodes = selector;\n }\n else {\n $nodes = [selector];\n }\n }\n\n for (var i = 0, len = $nodes.length; i < len; i++) {\n _this[i] = $nodes[i];\n }\n\n _this.length = $nodes.length;\n\n return _this;\n };\n\n // Helpers API\n\n $helpers.prototype = {\n is_helper: true,\n\n find: function(selector) {\n var $this = this,\n $nodes = [],\n context;\n\n if ($this.length !== 0) {\n if ($this.length === 1) {\n $nodes = _query(selector, $this[0]);\n }\n else {\n for (var i = 0, len = $this.length; i < len; i++) {\n $nodes = $nodes.concat(\n _query(selector, $this[i])\n );\n }\n\n $nodes = $nodes.reduce(function(a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n\n return a;\n }, []);\n }\n }\n\n return $$($nodes, context);\n },\n\n children: function(selector) {\n var $this = this,\n $filtered_child_nodes = [],\n $child_node;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n $child_node = this[i].firstChild;\n\n while ($child_node) {\n if ($child_node.nodeType === 1 && $child_node.matches(selector)) {\n $filtered_child_nodes.push($child_node);\n }\n\n $child_node = $child_node.nextSibling;\n }\n }\n\n return $$($filtered_child_nodes);\n },\n\n get_parent: function(selector) {\n var $this = this,\n maybe_class,\n name_only,\n tag_name,\n class_name,\n $obj;\n\n if ($this.length === 1) {\n $obj = $this[0];\n\n if (typeof selector !== 'undefined') {\n maybe_class = selector[0] === '.';\n name_only = maybe_class ? selector.slice(1) : selector;\n tag_name = name_only.toUpperCase();\n }\n\n do {\n $obj = $obj.parentNode;\n class_name = (' ' + $obj.className + ' ').replace(/[\\t\\r\\n\\f]/g, ' ');\n\n if ((typeof selector === 'undefined' && $obj.nodeType === 1) ||\n (maybe_class && class_name.indexOf(' ' + name_only + ' ') > -1) ||\n $obj.tagName === tag_name) {\n\n return $$($obj);\n }\n }\n while ($obj && $obj.nodeType !== 9);\n }\n },\n\n append: function($obj) {\n var $this = this;\n\n if (typeof $obj === 'string') {\n $obj = _create_element($obj);\n }\n\n for (var i = 0, len = $this.length; i < len; i++) {\n for (var j = 0, obj_len = $obj.length; j < obj_len; j++) {\n $this[i].appendChild($obj[j]);\n }\n }\n },\n\n prepend: function($obj) {\n var $this = this;\n\n if (typeof $obj === 'string') {\n $obj = _create_element($obj);\n }\n\n for (var i = 0, len = $this.length; i < len; i++) {\n for (var j = 0, obj_len = $obj.length; j < obj_len; j++) {\n $this[i].insertBefore($obj[j], $this[i].childNodes[0]);\n }\n }\n },\n\n before: function($obj) {\n var $this = this;\n\n if (typeof $obj === 'string') {\n $obj = _create_element($obj);\n }\n\n for (var i = 0, len = $this.length; i < len; i++) {\n for (var j = 0, obj_len = $obj.length; j < obj_len; j++) {\n $this[i].parentNode.insertBefore($obj[j], $this[i]);\n }\n }\n },\n\n after: function($obj) {\n var $this = this;\n\n if (typeof $obj === 'string') {\n $obj = _create_element($obj);\n }\n\n for (var i = 0, len = $this.length; i < len; i++) {\n for (var j = 0, obj_len = $obj.length; j < obj_len; j++) {\n $this[i].parentNode.insertBefore($obj[j], $this[i].nextSibling);\n }\n }\n },\n\n remove: function() {\n var $this = this;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n $this[i].parentNode.removeChild($this[i]);\n }\n },\n\n remove_children: function() {\n var $this = this;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n while ($this[i].firstChild) {\n $this[i].removeChild($this[i].firstChild);\n }\n }\n },\n\n empty: function() {\n var $this = this;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n while ($this[i].firstChild) {\n $this[i].removeChild($this[i].firstChild);\n }\n }\n },\n\n clone: function() {\n var $this = this;\n\n if ($this.length === 1) {\n return $$($this[0].cloneNode(true));\n }\n },\n\n next_sibling: function() {\n var $this = this;\n\n if ($this.length === 1) {\n var $obj = $this[0];\n\n do {\n $obj = $obj.nextSibling;\n }\n while ($obj && $obj.nodeType !== 1);\n\n return $$($obj);\n }\n },\n\n prev_sibling: function() {\n var $this = this;\n\n if ($this.length === 1) {\n var $obj = $this[0];\n\n do {\n $obj = $obj.previousSibling;\n }\n while ($obj && $obj.nodeType !== 1);\n\n return $$($obj);\n }\n },\n\n get_siblings: function() {\n var $this = this,\n $siblings = [];\n\n if ($this.length === 1) {\n var $obj = $this[0],\n $children = $obj.parentNode.children;\n\n for (var i = 0, len = $children.length; i < len; i++) {\n if ($children[i].nodeType === 1 && $children[i] !== $obj) {\n $siblings.push($children[i]);\n }\n }\n }\n\n return $$($siblings);\n },\n\n get_attribute: function(attribute) {\n var $this = this,\n value = null;\n\n if ($this.length === 1) {\n if (_is_input($this[0]) && attribute === 'value') {\n value = $this[0][attribute];\n }\n else {\n value = $this[0].getAttribute(attribute);\n }\n }\n\n return value === null ? '' : value;\n },\n\n set_attribute: function(attribute, value) {\n var $this = this;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n if (_is_input($this[i]) && attribute === 'value') {\n $this[i][attribute] = value;\n }\n else if (value) {\n $this[i].setAttribute(attribute, value);\n }\n else {\n $this[i].removeAttribute(attribute);\n }\n }\n },\n\n set_text: function(text) {\n var $this = this;\n\n if ($this.length === 1) {\n $this[0].textContent = text.toString().trim();\n }\n },\n\n get_text: function() {\n var $this = this,\n text = '';\n\n if ($this.length === 1) {\n text = $this[0].textContent.trim();\n }\n\n return text;\n },\n\n insert_html: function(html, outer) {\n var $this = this;\n\n if ($this.length === 1) {\n if (outer === true) {\n $this[0].outerHTML = html;\n }\n else {\n $this[0].innerHTML = html;\n }\n }\n },\n\n get_html: function(outer) {\n var $this = this,\n html = '';\n\n if ($this.length === 1) {\n if (outer === true) {\n html = $this[0].outerHTML;\n }\n else {\n html = $this[0].innerHTML;\n }\n }\n\n return html.trim();\n },\n\n get_file: function() {\n var $this = this,\n filename = '',\n filetype = '',\n filesize = 0,\n $file;\n\n if ($this.length === 1) {\n $file = $this[0].files;\n\n if ($file.length) {\n filename = $file[0].name;\n filesize = $file[0].size;\n filetype = $file[0].type;\n }\n }\n\n return {\n 'filename' : filename,\n 'filesize' : filesize,\n 'filetype' : filetype\n };\n },\n\n is_tag: function(tagname) {\n var $this = this,\n is_tag = false;\n\n if ($this.length === 1) {\n is_tag = $this[0].tagName.toLowerCase() === tagname;\n }\n\n return is_tag;\n },\n\n is_visible: function() {\n var $this = this,\n is_visible = false,\n $styles,\n $obj;\n\n if ($this.length === 1) {\n $obj = $this[0];\n is_visible = true;\n\n while ($obj && $obj.nodeType !== 9) {\n $styles = window.getComputedStyle($obj, null);\n\n if ($obj.offsetWidth === 0 &&\n $obj.offsetHeight === 0 &&\n $styles.display === 'none') {\n\n is_visible = false;\n break;\n }\n\n $obj = $obj.parentElement;\n }\n }\n\n return is_visible;\n },\n\n index: function(element) {\n var $this = this;\n\n if (typeof element === 'object') {\n for (var i = 0, len = $this.length; i < len; i++) {\n if ($this[i] === element) {\n return i;\n }\n }\n }\n else if (typeof element === 'number') {\n if (element === -1) {\n element = $this.length - 1;\n }\n\n return $$($this[element]);\n }\n },\n\n for_each: function(callback) {\n var $this = this;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n callback.call($this[i], i);\n }\n },\n\n is_checked: function() {\n var $this = this,\n is_checked = false;\n\n if ($this.length === 1) {\n is_checked = $this[0].checked;\n }\n\n return is_checked;\n },\n\n add_class: function(selector) {\n var $this = this,\n $selector = selector.split(' '),\n updated = false,\n trimmed_classes,\n classes;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n trimmed_classes = String.prototype.trim.call($this[i].getAttribute('class') || '');\n classes = trimmed_classes ? trimmed_classes.split(/\\s+/) : [];\n\n for (var j = 0, selector_len = $selector.length; j < selector_len; j++) {\n if (classes.indexOf($selector[j]) === -1) {\n classes.push($selector[j]);\n updated = true;\n }\n }\n\n if (updated) {\n $this[i].setAttribute('class', classes.sort().join(' '));\n updated = false;\n }\n }\n },\n\n remove_class: function(selector) {\n var $this = this,\n $selector = selector.split(' '),\n updated = false,\n trimmed_classes,\n classes,\n index;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n trimmed_classes = String.prototype.trim.call($this[i].getAttribute('class') || '');\n classes = trimmed_classes ? trimmed_classes.split(/\\s+/) : [];\n\n for (var j = 0, selector_len = $selector.length; j < selector_len; j++) {\n index = classes.indexOf($selector[j]);\n\n if (index > -1) {\n classes.splice(index, 1);\n updated = true;\n }\n }\n\n if (updated) {\n if (classes.length) {\n $this[i].setAttribute('class', classes.sort().join(' '));\n }\n else {\n $this[i].removeAttribute('class');\n }\n updated = false;\n }\n }\n },\n\n has_class: function(selector) {\n var $this = this,\n has_class = false;\n\n if ($this.length === 1) {\n has_class = $this[0].classList.contains(selector);\n }\n\n return has_class;\n },\n\n focus: function() {\n var $this = this;\n\n if ($this.length) {\n $this[0].focus();\n }\n },\n\n click: function() {\n var $this = this;\n\n if ($this.length) {\n $this[0].click();\n }\n },\n\n set_style: function($styles) {\n var $this = this,\n property_camel_case,\n property_vendor;\n\n for (var i = 0, len = $this.length; i < len; i++) {\n for (var property in $styles) {\n if ($styles.hasOwnProperty(property)) {\n property_camel_case = _camel_case_property(property);\n property_vendor = _get_vendor_property(property_camel_case);\n\n $this[i].style[property_vendor] = $styles[property];\n }\n }\n }\n },\n\n get_style: function(property) {\n var $this = this,\n style = '',\n $styles;\n\n if ($this.length === 1) {\n $styles = window.getComputedStyle($this[0], null);\n style = $styles.getPropertyValue(property);\n }\n\n return style;\n },\n\n set_data: function(key, value) {\n var $this = this;\n\n if ($this.length === 1) {\n $this[0][key] = value;\n }\n },\n\n get_data: function(key) {\n var $this = this;\n\n if ($this.length === 1) {\n return $this[0][key];\n }\n },\n\n get_width: function() {\n var $this = this,\n width = 0;\n\n if ($this.length === 1) {\n if (_is_window($this[0])) {\n width = document.documentElement.clientWidth;\n }\n else if (_is_document($this[0])) {\n width = Math.max(\n document.body.scrollWidth,\n document.body.offsetWidth\n );\n }\n else {\n width = this[0].offsetWidth;\n }\n }\n\n return width;\n },\n\n get_height: function() {\n var $this = this,\n height = 0;\n\n if ($this.length === 1) {\n if (_is_window($this[0])) {\n height = document.documentElement.clientHeight;\n }\n else if (_is_document($this[0])) {\n height = Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight\n );\n }\n else {\n height = this[0].offsetHeight;\n }\n }\n\n return height;\n },\n\n get_offset_top: function() {\n var $this = this,\n top = 0,\n $obj;\n\n if ($this.length === 1) {\n $obj = $this[0];\n top = $obj.offsetTop;\n\n while ($obj = $obj.offsetParent) {\n top += $obj.offsetTop;\n }\n }\n\n return top;\n },\n\n get_offset_left: function() {\n var $this = this,\n left = 0,\n $obj;\n\n if ($this.length === 1) {\n $obj = $this[0];\n left = $obj.offsetLeft;\n\n while ($obj = $obj.offsetParent) {\n left += $obj.offsetLeft;\n }\n }\n\n return left;\n },\n\n get_scroll_top: function() {\n var $this = this,\n scroll_top = 0;\n\n if ($this.length === 1) {\n scroll_top = _get_scroll_offset($this[0]).top;\n }\n\n return scroll_top;\n },\n\n get_scroll_left: function() {\n var $this = this,\n scroll_left = 0;\n\n if ($this.length === 1) {\n scroll_left = _get_scroll_offset($this[0]).left;\n }\n\n return scroll_left;\n },\n\n set_value: function(value) {\n return this.set_attribute('value', value);\n },\n\n get_value: function() {\n return this.get_attribute('value');\n },\n\n add_event: function(type, listener) {\n var $this = this,\n $types = type.split(','),\n event_listener;\n\n event_listener = function(event) {\n listener.call(this, event);\n };\n\n for (var i = 0, len = $this.length; i < len; i++) {\n for (var j = 0, types_len = $types.length; j < types_len; j++) {\n type = _get_event_type($types[j].trim());\n\n $this[i].addEventListener(type, event_listener, false);\n }\n }\n },\n };\n\n // Ladet JavaScript-Code nach\n\n $$.load_script = function(url, callback) {\n var $head = document.getElementsByTagName('head')[0],\n $script = document.createElement('script');\n\n $script.src = (navigator.userAgent.indexOf('MSIE ') > 0) ? url + '?' + Math.random() : url;\n\n if (callback && typeof(callback) === 'function') {\n $script.onload = callback;\n }\n\n $head.appendChild($script);\n };\n\n // Ajax\n\n $$.get = function(url, callback) {\n if (window.XMLHttpRequest) {\n var $ajax = new XMLHttpRequest();\n\n $ajax.open('GET', url, true);\n\n $ajax.onload = function() {\n if (this.status === 200) {\n callback.call(this, this.responseText);\n }\n };\n\n $ajax.send();\n }\n };\n\n // Setzt hash\n\n $$.set_hash = function(hash) {\n if (window.history && window.history.replaceState) { // IE 10+\n hash = hash || window.location.pathname;\n window.history.replaceState(null, document.title, hash);\n }\n };\n\n // Verbindet zwei Objekte\n\n $$.merge_objects = function($obj1, $obj2) {\n for (var key in $obj2) {\n if ($obj2[key].constructor === Object) {\n $obj2[key] = $$.merge_objects($obj1[key], $obj2[key]);\n }\n else {\n $obj1[key] = $obj2[key];\n }\n }\n\n return $obj1;\n };\n\n // Scrollt zu\n\n $$.scroll_to = function(to, duration, callback) {\n var diff = to - $$(window).get_scroll_top(),\n step = diff / duration * 10;\n\n setTimeout(function() {\n window.scrollBy(0, step);\n\n if (Math.abs(diff) <= Math.abs(step)) {\n\n if (typeof callback === 'function') {\n callback();\n }\n\n return;\n }\n\n $$.scroll_to(to, duration - 10, callback);\n }, 10);\n };\n\n\n // Gibt die Touch-Richtung zurück\n\n $$.get_touch_range = function(dist_x, dist_y) {\n var theta = Math.atan2(-dist_x, dist_y),\n degrees;\n\n if (theta < 0) {\n theta += 2 * Math.PI;\n }\n\n degrees = Math.floor(theta * (180 / Math.PI) - 180);\n\n if (degrees < 0 && degrees > -180) {\n degrees = 360 - Math.abs(degrees);\n }\n\n return {\n is_top : degrees <= 40 || degrees >= 320,\n is_right : degrees >= 50 && degrees <= 130,\n is_bottom : degrees >= 140 && degrees <= 220,\n is_left : degrees >= 230 && degrees <= 310\n };\n };\n\n window.$$ = $$;\n}(document, window));\n\n// DEVICE\n// -------------------------------------------------------------------------------------------------\n\n(function(document, navigator, window) {\n var $html = document.querySelector('html');\n\n function _find(needle) {\n return navigator.userAgent.toLowerCase().indexOf(needle) !== -1;\n }\n\n window.device = {};\n\n device.iphone = _find('iphone');\n device.ipod = _find('ipod');\n device.ipad = _find('ipad');\n device.ios = device.iphone || device.ipod || device.ipad;\n device.android = _find('android');\n device.android_phone = device.android && _find('mobile');\n device.android_tablet = device.android && !_find('mobile');\n device.windows = _find('windows');\n device.windows_phone = device.windows && _find('phone');\n device.windows_tablet = device.windows && _find('touch');\n device.mobile = device.android_phone || device.iphone || device.ipod || device.windows_phone;\n device.tablet = device.ipad || device.android_tablet || device.windows_tablet;\n\n if (device.ios) {\n if (device.ipad) {\n $html.classList.add('ios', 'ipad', 'tablet');\n }\n else if (device.iphone || device.ipod) {\n $html.classList.add('ios', 'iphone', 'mobile');\n }\n }\n else if (device.android) {\n if (device.android_tablet) {\n $html.classList.add('android', 'tablet');\n }\n else {\n $html.classList.add('android', 'mobile');\n }\n }\n else if (device.windows) {\n if (device.windows_tablet) {\n $html.classList.add('windows', 'tablet');\n }\n else if (device.windows_phone) {\n $html.classList.add('windows', 'mobile');\n }\n else {\n $html.classList.add('desktop');\n }\n }\n else {\n $html.classList.add('desktop');\n }\n}(document, navigator, window));\n\n// BROWSER SUPPORT\n// -------------------------------------------------------------------------------------------------\n\n(function(document, navigator, window) {\n var $html = document.querySelector('html'),\n $div = document.createElement('div');\n\n // Überprüft die Browser-Unterstützung für CSS-Attribute wie z. B. transition\n\n function _has_css_property(property) {\n var css_property_found = false,\n prefixes = ['Moz', 'Webkit'];\n\n if (property in $div.style) {\n css_property_found = true;\n }\n else {\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n for (var i = 0, len = prefixes.length; i < len; i++) {\n if (typeof $div.style[prefixes[i] + property] !== 'undefined') {\n css_property_found = true;\n break;\n }\n }\n }\n\n return css_property_found;\n }\n\n window.support = {\n touch : window.navigator.msMaxTouchPoints || 'ontouchstart' in document.documentElement,\n transition : _has_css_property('transition') && 'TransitionEvent' in window // TransitionEvent wird benötigt für Android 4.1.x (https://bugs.dojotoolkit.org/ticket/17164#comment:13)\n };\n\n // Setzt Klassen auf den HTML-Tag\n\n $html.classList.remove('no_js');\n $html.classList.add(support.touch ? 'touch' : 'no_touch');\n $html.classList.add(support.transition ? 'csstransitions' : 'no_csstransitions');\n}(document, navigator, window));\n\n// PREFETCH\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var Prefetch = function($prefetch_link) {\n var _this = this;\n\n _this._$prefetch_link = $prefetch_link;\n _this._$options = _this._$prefetch_link.getAttribute('data-performance');\n };\n\n Prefetch.prototype = {\n init: function() {\n var _this = this;\n\n if (_this._$options.indexOf('prefetch') > -1) {\n _this._prefetch();\n }\n\n if (_this._$options.indexOf('prerender') > -1) {\n _this._prerender();\n }\n },\n\n _prefetch: function() {\n var _this = this,\n $link = document.createElement('link');\n\n $link.setAttribute('rel', 'prefetch');\n $link.setAttribute('href', _this._$prefetch_link.getAttribute('href'));\n\n document.querySelector('head').appendChild($link);\n },\n\n _prerender: function() {\n var _this = this,\n $link = document.createElement('link');\n\n $link.setAttribute('rel', 'prerender');\n $link.setAttribute('href', _this._$prefetch_link.getAttribute('href'));\n\n document.querySelector('head').appendChild($link);\n }\n };\n\n var $prefetch_links = document.querySelectorAll('[data-performance]');\n\n for (var i = 0, len = $prefetch_links.length; i < len; i++) {\n new Prefetch($prefetch_links[i]).init();\n }\n})(document);\n\n// BARRIEREFREIHEIT\n// Wird gebraucht für alle Projekte\n\n// EXTERNER LINK\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var $links = document.querySelectorAll('[href*=http]');\n\n for (var i = 0, $link; $link = $links[i]; i++) {\n var target = $link.getAttribute('target'),\n title = $link.getAttribute('title');\n\n if (title && target === '_blank') {\n $link.setAttribute('title', title + ' (Neues Fenster)');\n }\n }\n})(document);\n\n\n// TASTATURSTEUERUNG FÜR ELEMENTE MIT ROLE BUTTON\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var $buttons = document.querySelectorAll('[role=\"button\"]');\n\n for (var i = 0, $button; $button = $buttons[i]; i++) {\n $button.addEventListener('keyup', function(event) {\n if (event.keyCode === 13 && this.tagName !== 'A' || event.keyCode === 32) {\n this.click();\n }\n });\n }\n})(document);\n\n\n// ERKENNUNG DER FOKUSMETHODE FÜR LINKS\n// Wird verwendet für verbesserten Fokus auf Links (siehe default.less)\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var FocusMethod = function($link) {\n var _this = this;\n\n _this.$link = $link;\n\n _this.focus_method = false;\n _this.last_focus_method = false;\n };\n\n FocusMethod.prototype = {\n init: function() {\n var _this = this;\n\n _this.$link.addEventListener('keydown',\n _this._on_key_down.bind(this), {\n 'passive' : true\n }\n );\n\n _this.$link.addEventListener('mousedown',\n _this._on_mouse_down.bind(this), {\n 'passive' : true\n }\n );\n\n _this.$link.addEventListener('touchstart',\n _this._on_touch_start.bind(this), {\n 'passive' : true\n }\n );\n\n _this.$link.addEventListener('focus', _this._on_focus.bind(this));\n _this.$link.addEventListener('blur', _this._on_blur.bind(this));\n\n window.addEventListener('blur', this._on_window_blur.bind(this));\n },\n\n _on_key_down: function() {\n var _this = this;\n\n _this.focus_method = 'key';\n },\n\n _on_mouse_down: function() {\n var _this = this;\n\n if (_this.focus_method === 'touch') {\n return;\n }\n\n _this.focus_method = 'mouse';\n },\n\n _on_touch_start: function() {\n var _this = this;\n\n _this.focus_method = 'touch';\n },\n\n _on_focus: function() {\n var _this = this;\n\n if (!_this.focus_method) {\n _this.focus_method = _this.last_focus_method;\n }\n\n _this.$link.setAttribute('data-focus-method', _this.focus_method);\n\n this.last_focus_method = this.focus_method;\n this.focus_method = false;\n },\n\n _on_blur: function() {\n var _this = this;\n\n _this.$link.removeAttribute('data-focus-method');\n },\n\n _on_window_blur: function() {\n var _this = this;\n\n _this.focus_method = false;\n }\n };\n\n var $links = document.querySelectorAll('a, [tabindex=\"0\"]');\n\n for (var i = 0, $link; $link = $links[i]; i++) {\n new FocusMethod($link).init();\n }\n})(document);\n\n// TOOLTIP\n// Wird gebraucht für: google_maps,newsletter_quick_subscribe, formular\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var Tooltip = function($tooltip_wrapper) {\n var _this = this;\n\n _this.$tooltip_wrapper = $tooltip_wrapper;\n _this.$tooltip = $tooltip_wrapper.querySelector('[role=\"tooltip\"]');\n\n _this._temp_disabled = false;\n _this._perm_disabled = false;\n _this._focused = false;\n\n var tooltip_id = _this.$tooltip.getAttribute('id');\n\n _this.$tooltip_trigger = $tooltip_wrapper.querySelector('[aria-describedby=\"' + tooltip_id + '\"]');\n };\n\n Tooltip.prototype = {\n init: function() {\n var _this = this;\n\n _this.$tooltip_trigger.addEventListener('keyup', _this._check_tooltip.bind(_this));\n _this.$tooltip_trigger.addEventListener('focus', _this._check_tooltip.bind(_this));\n _this.$tooltip_trigger.addEventListener('blur', _this._hide_tooltip.bind(_this));\n\n if (!support.touch) {\n _this.$tooltip.addEventListener('mouseenter', _this._check_tooltip.bind(_this));\n _this.$tooltip.addEventListener('mouseleave', _this._hide_tooltip.bind(_this));\n _this.$tooltip_trigger.addEventListener('mouseenter', _this._check_tooltip.bind(_this));\n _this.$tooltip_trigger.addEventListener('mouseleave', _this._hide_tooltip.bind(_this));\n }\n\n _this._keyboard_nav();\n },\n\n _check_tooltip: function(event) {\n var _this = this;\n\n if (_this.$tooltip_trigger.getAttribute('aria-invalid') === 'true') {\n _this._perm_disabled = false;\n _this._show_tooltip(event);\n }\n else {\n _this._perm_disabled = true;\n _this._hide_tooltip(event);\n }\n },\n\n _show_tooltip: function(event) {\n var _this = this;\n\n if (_this.disabled) {\n return;\n }\n\n if (event.type === 'keyup' || event.type === 'focus') {\n _this._focused = true;\n }\n\n if (!_this._temp_disabled && !_this._perm_disabled ||\n event.type === 'mouseenter' && !_this._perm_disabled) {\n _this.$tooltip.setAttribute('aria-hidden', 'false');\n }\n },\n\n _hide_tooltip: function(event) {\n var _this = this;\n\n if (event.type === 'blur') {\n _this._temp_disabled = false;\n _this._focused = false;\n }\n\n if (!_this._focused || _this._perm_disabled || _this._temp_disabled) {\n _this.$tooltip.setAttribute('aria-hidden', 'true');\n }\n },\n\n _keyboard_nav: function() {\n var _this = this;\n\n _this.$tooltip_trigger.addEventListener('keydown', function(event) {\n if (event.keyCode === 27 && _this.$tooltip.getAttribute('aria-hidden') === 'false') {\n event.stopPropagation();\n\n _this._temp_disabled = true;\n _this._hide_tooltip(event);\n }\n });\n }\n };\n\n var $tooltip_wrappers = document.querySelectorAll('.tooltip_wrapper');\n\n for (var i = 0, len = $tooltip_wrappers.length; i < len; i++) {\n new Tooltip($tooltip_wrappers[i]).init();\n }\n\n window.Tooltip = Tooltip;\n})(document);\n\n// SANFTES SCROLLEN\n// -------------------------------------------------------------------------------------------------\n\n(function(document, window) {\n var SmoothScroll = function($link) {\n var _this = this;\n\n _this.$link = $link;\n _this.has_animationend_event = false;\n },\n offset_top = 120;\n\n function _get_offset_top($target) {\n var $obj = $target,\n top_position = $obj.offsetTop;\n\n while ($obj = $obj.offsetParent) {\n top_position += $obj.offsetTop;\n }\n return top_position;\n }\n\n function _remove_highlight_class($highlighted_target) {\n if ($highlighted_target.has_animationend_event) {\n return;\n }\n\n $highlighted_target.addEventListener('animationend', function(event) {\n if (event.target !== this) {\n return;\n }\n\n $highlighted_target.has_animationend_event = true;\n $highlighted_target.classList.remove('highlighted');\n });\n }\n\n function _scroll_to($target, offset, $callback) {\n var top_position = _get_offset_top($target) - offset,\n duration = 300,\n $highlighted_target,\n interval;\n\n if ($target.getAttribute('id')) {\n $highlighted_target = $target.parentElement;\n }\n else {\n $highlighted_target = $target;\n }\n\n interval = setInterval(function() {\n var diff = top_position - window.pageYOffset,\n step = diff / duration * 10;\n\n if (Math.abs(diff) <= Math.abs(step)) {\n clearInterval(interval);\n $highlighted_target.classList.add('highlighted');\n\n if (typeof $callback === 'function') {\n $callback();\n }\n }\n\n window.scrollBy(0, step);\n duration -= 10;\n }, 10);\n\n _remove_highlight_class($highlighted_target);\n }\n\n function _auto_scroll() {\n var hash = location.hash,\n parameter = location.search,\n $target;\n\n if (hash.length <= 1) {\n return;\n }\n\n $target = document.querySelector(hash) || document.querySelector('a[id=\"' + hash.slice(1) + '\"]');\n\n if (!$target || $target.classList.contains('no_smooth_scroll')) {\n return;\n }\n\n location.hash = ''; // IE und Edge Bug - Scroll beginnt nicht am Seitenanfang\n window.history.replaceState(null, document.title, location.pathname + parameter);\n\n setTimeout(function() { // Firefox Bug - Scroll beginnt nicht am Seitenanfang\n window.scrollTo(0, 0);\n\n _scroll_to($target, offset_top, function() {\n $target.focus();\n window.history.replaceState(null, document.title, parameter + hash);\n });\n }, 10);\n }\n\n SmoothScroll.prototype = {\n init: function() {\n var _this = this;\n\n if (_this.$link.classList.contains('no_smooth_scroll')) {\n return;\n }\n\n if (_this.$link.tagName === 'A' || _this.$link.tagName === 'a') {\n _this._click_link();\n }\n else {\n _this._change_select();\n }\n },\n\n _click_link: function() {\n var _this = this;\n\n _this.$link.addEventListener('click', function(event) {\n var hash = this.getAttribute('href'),\n parameter,\n $parameter,\n $hash,\n $target;\n\n if (hash.length === 1) {\n return;\n }\n\n $hash = hash.split('#');\n $parameter = $hash[0].split('?');\n parameter = $parameter.length === 2 ? '?' + $parameter[1] : '';\n hash = $hash[1];\n $target = document.querySelector('#' + hash) || document.querySelector('a[id=\"' + hash + '\"]');\n\n if (!$target) {\n return;\n }\n\n event.preventDefault();\n\n _scroll_to($target, offset_top, function() {\n $target.focus();\n window.history.replaceState(null, document.title, parameter + '#' + hash);\n });\n });\n },\n\n _change_select: function() {\n var _this = this;\n\n _this.$link.addEventListener('change', function(event) {\n var hash = this.options[this.selectedIndex].value,\n $target;\n\n if (hash.length === 1) {\n return;\n }\n\n hash = hash.split('#')[1];\n $target = document.querySelector('#' + hash) || document.querySelector('a[id=\"' + hash + '\"]');\n\n if (!$target) {\n return;\n }\n\n event.preventDefault();\n\n _scroll_to($target, offset_top, function() {\n $target.focus();\n window.history.replaceState(null, document.title, hash);\n });\n });\n }\n };\n\n var $links = document.querySelectorAll('a[href*=\"#\"], select');\n\n for (var i = 0, len = $links.length; i < len; i++) {\n new SmoothScroll($links[i]).init();\n }\n\n _auto_scroll();\n})(document, window);\n\n// DROPDOWN MENU\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var DropdownMenu = function($dropdown_menu) {\n var _this = this,\n id = $dropdown_menu.getAttribute('id');\n\n _this.$dropdown_menu = $dropdown_menu;\n _this.$main_menuitems = $dropdown_menu.querySelectorAll('#' + id + ' > ul > li > a');\n _this.$sub_menuitems = $dropdown_menu.querySelectorAll('#' + id + ' > ul > li li > a');\n _this.$main_menuitems_with_sub_menu = $dropdown_menu.querySelectorAll('[href^=\"#\"]');\n _this.main_menu_index = 0;\n _this.event_type = false;\n\n _this.$key = {\n 'tab' : 9,\n 'enter' : 13,\n 'escape' : 27,\n 'space' : 32,\n 'arrow_left' : 37,\n 'arrow_up' : 38,\n 'arrow_right' : 39,\n 'arrow_down' : 40\n };\n };\n\n DropdownMenu.prototype = {\n init: function() {\n var _this = this;\n\n _this._init_accessibility();\n _this._init_keyboard();\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems[i]; i++) {\n var $li = $main_menuitem.parentElement;\n\n $li.addEventListener('mouseenter',\n _this._on_mouseenter_main_menuitem.bind(_this, $main_menuitem)\n );\n\n $li.addEventListener('mouseover',\n _this._on_mouseover_main_menuitem.bind(_this, $main_menuitem)\n );\n\n $li.addEventListener('mouseout',\n _this._on_mouseout_main_menuitem.bind(_this)\n );\n\n $main_menuitem.addEventListener('focus',\n _this._on_focus_main_menuitem.bind(_this, $main_menuitem)\n );\n }\n },\n\n _init_accessibility: function() {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n $main_menuitem.setAttribute('aria-expanded', 'false');\n\n $main_menuitem.addEventListener('click', function(event) {\n event.preventDefault();\n });\n }\n },\n\n _init_keyboard: function() {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems[i]; i++) {\n $main_menuitem.addEventListener('keydown',\n _this._on_keydown_main_menuitem.bind(_this, $main_menuitem)\n );\n }\n\n for (var j = 0, $sub_menuitem; $sub_menuitem = _this.$sub_menuitems[j]; j++) {\n $sub_menuitem.addEventListener('keydown',\n _this._on_keydown_sub_menuitem.bind(_this)\n );\n }\n },\n\n _on_keydown_main_menuitem: function($main_menuitem, event) {\n var _this = this;\n\n _this.event_type = event.type;\n _this.main_menu_index = _this._get_main_menuitem_index();\n _this.$main_menuitem = $main_menuitem;\n _this.$sub_menu = $main_menuitem.nextElementSibling;\n\n switch(event.keyCode) {\n case _this.$key.tab:\n if (event.shiftKey) {\n _this.main_menu_index -= 1;\n }\n else {\n _this.main_menu_index += 1;\n }\n\n break;\n\n case _this.$key.enter:\n if (_this.$sub_menu) {\n event.preventDefault();\n _this._close_sub_menus();\n this._open_sub_menu(false);\n }\n\n break;\n\n case _this.$key.escape:\n event.preventDefault();\n\n if (_this.sub_menu_is_open) {\n event.stopPropagation();\n }\n\n _this._close_sub_menu();\n\n break;\n\n case _this.$key.arrow_left:\n event.preventDefault();\n\n _this._focus_prev_main_menuitem();\n\n break;\n\n case _this.$key.arrow_up:\n event.preventDefault();\n\n if (_this.sub_menu_is_open) {\n _this._focus_prev_menuitem();\n }\n\n break;\n\n case _this.$key.arrow_right:\n event.preventDefault();\n\n _this._focus_next_main_menuitem();\n\n break;\n\n case _this.$key.arrow_down:\n event.preventDefault();\n\n if (_this.$sub_menu) {\n this._open_sub_menu(false);\n }\n else {\n _this._focus_next_main_menuitem();\n }\n\n break;\n }\n },\n\n _get_main_menuitem_index: function() {\n var _this = this;\n\n return Array.prototype.indexOf.call(_this.$main_menuitems, document.activeElement);\n },\n\n _focus_prev_menuitem: function() {\n var _this = this;\n\n _this.main_menu_index -= 1;\n\n if (_this.main_menu_index < 0) {\n _this.main_menu_index = 0;\n\n return;\n }\n\n _this.$main_menuitem = _this.$main_menuitems[_this.main_menu_index];\n _this.$sub_menu = _this.$main_menuitem.nextElementSibling;\n\n if (_this.$sub_menu && _this.sub_menu_is_open) {\n this._open_sub_menu(true);\n }\n else {\n _this.$main_menuitem.focus();\n }\n },\n\n _focus_prev_main_menuitem: function() {\n var _this = this;\n\n _this.main_menu_index -= 1;\n\n if (_this.main_menu_index < 0) {\n _this.main_menu_index = 0;\n\n return;\n }\n\n _this.$main_menuitem = _this.$main_menuitems[_this.main_menu_index];\n\n _this.$main_menuitem.focus();\n },\n\n _focus_next_main_menuitem: function() {\n var _this = this;\n\n _this.main_menu_index += 1;\n\n if (_this.main_menu_index === _this.$main_menuitems.length) {\n _this.main_menu_index = _this.$main_menuitems.length - 1;\n\n return;\n }\n\n _this.$main_menuitem = _this.$main_menuitems[_this.main_menu_index];\n\n _this.$main_menuitem.focus();\n },\n\n _on_mouseenter_main_menuitem: function($main_menuitem, event) {\n var _this = this;\n\n _this.event_type = event.type;\n _this.$main_menuitem = $main_menuitem;\n _this.$sub_menu = $main_menuitem.nextElementSibling;\n\n _this._close_sub_menus();\n\n if (_this.$sub_menu) {\n _this._open_sub_menu(false);\n }\n },\n\n _on_mouseover_main_menuitem: function() {\n var _this = this;\n\n clearTimeout(_this.close_sub_menu_timeout);\n },\n\n _on_mouseout_main_menuitem: function() {\n var _this = this;\n\n _this.close_sub_menu_timeout = setTimeout(function() {\n _this._close_sub_menus();\n }, 1000);\n },\n\n _on_focus_main_menuitem: function($main_menuitem, event) {\n var _this = this;\n\n _this.event_type = event.type;\n\n if (_this.sub_menu_is_open) {\n _this.$main_menuitem = $main_menuitem;\n _this.$sub_menu = $main_menuitem.nextElementSibling;\n\n _this._close_sub_menus();\n\n if (_this.$sub_menu) {\n _this._open_sub_menu();\n }\n }\n },\n\n _on_keydown_sub_menuitem: function(event) {\n var _this = this;\n\n switch(event.keyCode) {\n case _this.$key.tab:\n\n if (event.shiftKey) {\n _this.sub_menu_index -= 1;\n }\n else {\n _this.sub_menu_index += 1;\n }\n\n break;\n\n case _this.$key.escape:\n event.preventDefault();\n event.stopPropagation();\n\n _this._close_sub_menu();\n\n break;\n\n case _this.$key.arrow_left:\n event.preventDefault();\n\n _this.sub_menu_index = 0;\n _this._focus_prev_sub_menuitem();\n\n break;\n\n case _this.$key.arrow_up:\n event.preventDefault();\n\n _this._focus_prev_sub_menuitem();\n\n break;\n\n case _this.$key.arrow_right:\n event.preventDefault();\n\n _this.sub_menu_index = 0;\n _this._focus_prev_sub_menuitem();\n\n break;\n\n case _this.$key.arrow_down:\n event.preventDefault();\n\n _this._focus_next_sub_menuitem();\n\n break;\n }\n },\n\n _focus_prev_sub_menuitem: function() {\n var _this = this,\n $sub_menuitems = _this.$main_menuitem.nextElementSibling.querySelectorAll('a'),\n $sub_menuitem,\n $main_menuitem;\n\n _this.sub_menu_index -= 1;\n\n $sub_menuitem = $sub_menuitems[_this.sub_menu_index];\n\n if (_this.sub_menu_index < 0) {\n $main_menuitem = _this.$main_menuitems[_this.main_menu_index];\n\n if ($main_menuitem) {\n $main_menuitem.focus();\n }\n }\n else if ($sub_menuitem) {\n $sub_menuitem.focus();\n }\n },\n\n _focus_next_sub_menuitem: function() {\n var _this = this,\n $sub_menuitems = _this.$main_menuitem.nextElementSibling.querySelectorAll('a'),\n $sub_menuitem,\n $main_menuitem;\n\n _this.sub_menu_index += 1;\n\n $sub_menuitem = $sub_menuitems[_this.sub_menu_index];\n\n if (_this.sub_menu_index === $sub_menuitems.length) {\n _this.main_menu_index += 1;\n\n $main_menuitem = _this.$main_menuitems[_this.main_menu_index];\n\n if ($main_menuitem) {\n $main_menuitem.focus();\n }\n else {\n _this.main_menu_index -= 1;\n _this.sub_menu_index -= 1;\n }\n }\n else {\n $sub_menuitem.focus();\n }\n },\n\n _open_sub_menu: function(focus_last_sub_menuitem) {\n var _this = this,\n $sub_menuitems;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n var is_current_menuitem = _this.$main_menuitem === $main_menuitem;\n\n if (is_current_menuitem) {\n $main_menuitem.parentElement.classList.add('hover');\n }\n else {\n $main_menuitem.parentElement.classList.remove('hover');\n }\n\n $main_menuitem.setAttribute('aria-expanded', is_current_menuitem);\n }\n\n _this.sub_menu_index = 0;\n\n if (_this.event_type === 'keydown') {\n $sub_menuitems = _this.$sub_menu.querySelectorAll('a');\n\n if (focus_last_sub_menuitem) {\n _this.sub_menu_index = $sub_menuitems.length - 1;\n }\n\n $sub_menuitems[_this.sub_menu_index].focus();\n\n _this.event_type = false;\n }\n\n _this.sub_menu_is_open = true;\n },\n\n _close_sub_menu: function() {\n var _this = this;\n\n _this.$main_menuitem.parentElement.classList.remove('hover');\n _this.$main_menuitem.setAttribute('aria-expanded', 'false');\n\n _this.sub_menu_is_open = false;\n\n _this.$main_menuitem.focus();\n },\n\n _close_sub_menus: function() {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n $main_menuitem.parentElement.classList.remove('hover');\n $main_menuitem.setAttribute('aria-expanded', 'false');\n }\n }\n };\n\n var $dropdown_menu = document.getElementsByClassName('dropdown_menu');\n\n for (var i = 0, len = $dropdown_menu.length; i < len; i++) {\n new DropdownMenu($dropdown_menu[i]).init();\n }\n})(document);\n\n// OFFCANVAS MENU ACORDION\n// MUSS VOR DEM EIGENTLICHEN ACORDION GELADEN WERDEN\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var OffCanvasMenuAccordion = function($toggle_offcanvas_menu) {\n var _this = this,\n controls;\n\n controls = $toggle_offcanvas_menu.querySelector('.open_offcanvas_menu').getAttribute('aria-controls');\n\n _this.$main_menuitems_with_sub_menu = document.getElementById(controls).querySelectorAll('[href^=\"#\"]');\n };\n\n OffCanvasMenuAccordion.prototype = {\n init: function() {\n var _this = this;\n\n _this._init_accessibility();\n\n for (var j = 0, $main_menuitem_with_sub_menu; $main_menuitem_with_sub_menu = _this.$main_menuitems_with_sub_menu[j]; j++) {\n $main_menuitem_with_sub_menu.addEventListener('click',\n _this._on_click_main_menuitem.bind(_this, $main_menuitem_with_sub_menu)\n );\n }\n\n window.addEventListener('resize',\n _this._window_size_changed.bind(_this, $main_menuitem_with_sub_menu)\n );\n\n },\n\n _init_accessibility: function() {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n if ($main_menuitem.classList.contains('active')) {\n $element = $main_menuitem.parentElement.querySelector('ul');\n $element.style.height = $element.scrollHeight + 'px';\n }\n }\n },\n\n _window_size_changed: function() {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n if ($main_menuitem.getAttribute('aria-expanded') === 'true') {\n var $element = $main_menuitem.parentElement.querySelector('ul');\n // reset height font.size manipulates height of element\n $element.style.height = 'auto';\n $element.style.height = $element.scrollHeight + 'px';\n }\n }\n },\n\n _on_click_main_menuitem: function($main_menuitem_selected) {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n var $element = $main_menuitem.parentElement.querySelector('ul');\n\n if ($main_menuitem_selected === $main_menuitem) {\n $element.style.height = '0px';\n if ($main_menuitem.getAttribute('aria-expanded') === 'false') {\n $element.style.height = $element.scrollHeight + 'px';\n } else {\n $element.style.height = '0px';\n }\n }\n else {\n $element.style.height = '0px';\n }\n }\n }\n };\n\n // init OffCanvasMenu only once\n new OffCanvasMenuAccordion(document.getElementsByClassName('toggle_offcanvas_menu')[0]).init();\n var $toggle_offcanvas_menu = document.getElementsByClassName('toggle_offcanvas_menu');\n\n // create an Opener for each button\n for (var i = 0, len = $toggle_offcanvas_menu.length; i < len; i++) {\n new OffCanvasMenuAccordion($toggle_offcanvas_menu[i]).init();\n }\n\n})(document);\n\n// OFFCANVAS MENU\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var OffCanvasMenu = function($toggle_offcanvas_menu) {\n var _this = this,\n controls;\n\n controls = $toggle_offcanvas_menu.querySelector('.open_offcanvas_menu').getAttribute('aria-controls');\n\n _this.$offcanvas_menu_wrapper = document.querySelector('.offcanvas_menu_wrapper');\n _this.$offcanvas_menu = document.getElementById(controls);\n _this.$main_menuitems_with_sub_menu = _this.$offcanvas_menu.querySelectorAll('[href^=\"#\"]');\n _this.$focus_elements = _this.$offcanvas_menu.querySelectorAll('a');\n _this.focus_element = false;\n _this.$offcanvas_menu_state = false;\n\n _this.$key = {\n 'tab' : 9,\n };\n };\n\n OffCanvasMenu.prototype = {\n init: function() {\n var _this = this;\n\n _this._init_accessibility();\n _this._init_keyboard.bind(_this);\n\n for (var j = 0, $main_menuitem_with_sub_menu; $main_menuitem_with_sub_menu = _this.$main_menuitems_with_sub_menu[j]; j++) {\n $main_menuitem_with_sub_menu.addEventListener('click',\n _this._on_click_main_menuitem.bind(_this, $main_menuitem_with_sub_menu)\n );\n }\n },\n\n _init_accessibility: function() {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n $main_menuitem.setAttribute('aria-expanded', $main_menuitem.classList.contains('active'));\n }\n },\n\n _init_keyboard: function() {\n var _this = this;\n\n document.addEventListener('keydown', function(event) {\n if (!_this.$toggle_offcanvas_menu.classList.contains('open')) {\n return;\n }\n\n if (event.keyCode === _this.$key.tab) {\n event.preventDefault();\n\n if (event.shiftKey) {\n _this._focus_element_with_shift_tab_key(event);\n }\n else {\n _this._focus_element_with_tab_key(event);\n }\n }\n });\n },\n\n _focus_element_with_shift_tab_key: function() {\n var _this = this;\n\n _this.tab_index -= 1;\n\n if (_this.tab_index < 0) {\n _this.tab_index = _this.$focus_elements.length - 1;\n }\n\n for (var i = _this.tab_index, $focus_element; $focus_element = _this.$focus_elements[i]; i--) {\n if ($focus_element.offsetParent === null || $focus_element.offsetWidth === 0) {\n _this.tab_index -= 1;\n continue;\n }\n\n _this.$focus_elements[_this.tab_index].focus();\n break;\n }\n },\n\n _focus_element_with_tab_key: function() {\n var _this = this;\n\n if (_this.tab_index === _this.$focus_elements.length - 1) {\n _this.tab_index = 0;\n }\n else {\n _this.tab_index += 1;\n }\n\n for (var i = _this.tab_index, $focus_element; $focus_element = _this.$focus_elements[i]; i++) {\n if ($focus_element.offsetParent === null || $focus_element.offsetWidth === 0) {\n _this.tab_index += 1;\n\n if (_this.tab_index > _this.$focus_elements.length - 1) {\n _this.tab_index = 0;\n }\n else {\n continue;\n }\n }\n\n _this.$focus_elements[_this.tab_index].focus();\n break;\n }\n },\n\n _on_click_main_menuitem: function($main_menuitem, event) {\n var _this = this;\n\n event.preventDefault();\n\n _this.$main_menuitem = $main_menuitem;\n\n _this._toggle_sub_menus();\n },\n\n _toggle_sub_menus: function() {\n var _this = this;\n\n for (var i = 0, $main_menuitem; $main_menuitem = _this.$main_menuitems_with_sub_menu[i]; i++) {\n var is_active_menuitem = _this.$main_menuitem === $main_menuitem,\n $parent_menuitems = _this._get_parent_menu_elements();\n\n if (is_active_menuitem) {\n _this.sub_menu_is_open = $main_menuitem.getAttribute('aria-expanded') === 'false';\n\n $main_menuitem.parentElement.classList.toggle('expanded', _this.sub_menu_is_open);\n $main_menuitem.setAttribute('aria-expanded', _this.sub_menu_is_open);\n }\n else if ($parent_menuitems.indexOf($main_menuitem) !== -1) { // Check parents\n $main_menuitem.parentElement.classList.toggle('expanded', 'true');\n $main_menuitem.setAttribute('aria-expanded', 'true');\n }\n else {\n $main_menuitem.parentElement.classList.remove('expanded');\n $main_menuitem.setAttribute('aria-expanded', 'false');\n }\n }\n },\n\n _get_parent_menu_elements: function() {\n var _this = this.$main_menuitem,\n $findings = [];\n\n while (_this.parentNode) {\n _this = _this.parentNode;\n\n if (_this.nodeName.toLowerCase() === 'li') {\n $findings.push(_this.querySelector('a'));\n }\n }\n\n return $findings || False;\n }\n };\n\n var OffCanvasMenuOpener = function($toggle_offcanvas_menu) {\n var _this = this;\n var controls = $toggle_offcanvas_menu.querySelector('.open_offcanvas_menu').getAttribute('aria-controls');\n\n _this.$toggle_offcanvas_menu = $toggle_offcanvas_menu;\n _this.$open_offcanvas_menu = $toggle_offcanvas_menu.querySelector('.open_offcanvas_menu');\n _this.$close_offcanvas_menu = $toggle_offcanvas_menu.querySelector('.close_offcanvas_menu');\n _this.$offcanvas_menu = document.getElementById(controls);\n _this.$focus_elements = _this.$offcanvas_menu.querySelectorAll('a');\n\n _this.$key = {\n 'enter' : 13,\n 'escape' : 27,\n 'space' : 32\n };\n };\n\n OffCanvasMenuOpener.prototype = {\n init: function() {\n var _this = this;\n\n _this._init_keyboard.bind(_this);\n\n _this.$offcanvas_menu_wrapper = document.querySelector('.offcanvas_menu_wrapper');\n\n _this.$toggle_offcanvas_menu.addEventListener('click', _this._toggle_menu.bind(_this));\n _this.$open_offcanvas_menu.addEventListener('click', _this._open_menu.bind(_this));\n _this.$close_offcanvas_menu.addEventListener('click', _this._close_menu.bind(_this));\n\n _this.$offcanvas_menu.addEventListener('transitionend', function(event) {\n\n // var _this = this;\n if (event.target !== this) {\n return;\n }\n\n if (_this.$toggle_offcanvas_menu.classList.contains('open')) {\n if (_this.focus_element) {\n _this.focus_element = false;\n _this.$focus_elements[0].focus();\n }\n }\n else if (_this.focus_element) {\n _this.focus_element = false;\n _this.$open_offcanvas_menu.focus();\n }\n });\n },\n\n _init_keyboard: function() {\n var _this = this;\n\n _this.$open_offcanvas_menu.addEventListener('keydown', function(event) {\n if (event.keyCode === _this.$key.space || event.keyCode === _this.$key.enter) {\n _this.focus_element = true;\n }\n\n if (event.keyCode === _this.$key.space) {\n event.preventDefault();\n }\n });\n\n _this.$close_offcanvas_menu.addEventListener('keydown', function(event) {\n if (event.keyCode === _this.$key.space) {\n event.preventDefault();\n }\n });\n\n document.addEventListener('keydown', function(event) {\n if (!_this.$toggle_offcanvas_menu.classList.contains('open')) {\n return;\n }\n\n if (event.keyCode === _this.$key.escape) {\n _this.focus_element = true;\n _this._close_menu(event);\n }\n });\n },\n\n _scroll_to_top: function() {\n var _this = this;\n\n setTimeout(function() {\n var duration = 300,\n interval;\n\n interval = setInterval(function() {\n var diff = -window.pageYOffset,\n step = diff / duration * 10;\n\n if (Math.abs(diff) <= Math.abs(step)) {\n if (_this.$anchor) {\n _this.$anchor.focus();\n }\n\n clearInterval(interval);\n }\n\n window.scrollBy(0, step);\n duration -= 10;\n }, 10);\n }, 300);\n },\n\n _toggle_menu: function() {\n var _this = this;\n\n if (_this.$toggle_offcanvas_menu.classList.contains('open')) {\n _this.$toggle_offcanvas_menu.classList.remove('open');\n console.log(_this.$offcanvas_menu_wrapper);\n _this.$offcanvas_menu_wrapper.classList.remove('open');\n }\n else {\n _this.$toggle_offcanvas_menu.classList.add('open');\n console.log(_this.$offcanvas_menu_wrapper);\n _this.$offcanvas_menu_wrapper.classList.add('open');\n }\n },\n\n _open_menu: function(event) {\n var _this = this;\n\n event.preventDefault();\n\n _this.$toggle_offcanvas_menu.classList.add('open')\n _this.tab_index = 0;\n\n _this._scroll_to_top();\n },\n\n _close_menu: function(event) {\n var _this = this;\n\n event.preventDefault();\n\n _this.$toggle_offcanvas_menu.classList.remove('open')\n _this.tab_index = 0;\n }\n };\n\n var $offcanvas_menu = document.getElementsByClassName('toggle_offcanvas_menu');\n\n if ($offcanvas_menu.length) {\n new OffCanvasMenu($offcanvas_menu[0]).init(); // init once\n\n // create an opener for each button\n for (var i = 0, len = $offcanvas_menu.length; i < len; i++) {\n new OffCanvasMenuOpener($offcanvas_menu[i]).init();\n }\n }\n})(document);\n\n// FORMULARE\n// -------------------------------------------------------------------------------------------------\n\n(function(window) {\n var FormHelpers = function(element) {\n var _this = this;\n\n _this.$el = $$(element);\n };\n\n FormHelpers.prototype = {\n init: function() {\n var _this = this;\n\n _this._file_upload();\n _this._select();\n },\n\n _file_upload: function() {\n var _this = this;\n\n if (_this.$el.get_attribute('type') !== 'file') {\n return;\n }\n\n var $file_name = _this.$el.get_parent().children('.file_name'),\n $file_button = _this.$el.get_parent().children('.file_button');\n\n _this.$el.add_event('focus', function() {\n $file_button.add_class('focus');\n });\n\n _this.$el.add_event('blur', function() {\n $file_button.remove_class('focus');\n });\n\n _this.$el.add_event('change', function() {\n $file_name.set_text(_this.$el.get_file().filename);\n });\n },\n\n _select: function() {\n var _this = this;\n\n if (!_this.$el.is_tag('select')) {\n return;\n }\n\n _this.$el.add_event('focus', function() {\n _this.$el.get_parent('.select').add_class('focus');\n });\n\n _this.$el.add_event('blur', function() {\n _this.$el.get_parent('.select').remove_class('focus');\n });\n\n _this.$el.add_event('change', function() {\n var index = this.selectedIndex,\n $select = $$(this),\n $option = $select.find('option').index(index),\n value = $option.get_value();\n\n if (value.indexOf('http://') > -1 || value.indexOf('https://') > -1) {\n window.location.href = value;\n }\n });\n }\n };\n\n $$('input, select, textarea').for_each(function() {\n new FormHelpers(this).init();\n });\n})(window);\n\n// FORM VALIDIERUNG\n// -------------------------------------------------------------------------------------------------\n\n(function(document, window) {\n var FormValidation = function($form) {\n var _this = this;\n\n _this._$form = $form;\n _this._$inputs = _this._$form.querySelectorAll('input.validate, textarea.validate');\n _this._$inputs_checkbox = _this._$form.querySelectorAll('input[type=checkbox][required]');\n _this._$selects = _this._$form.querySelectorAll('select[required]');\n _this._$button = _this._$form.querySelector('[type=\"submit\"]');\n _this._$error_msg_button = _this._$form.querySelector('.error_msg_button');\n };\n\n FormValidation.prototype = {\n init: function() {\n var _this = this;\n\n for (var j = 0, inputs_len = _this._$inputs.length; j < inputs_len; j++) {\n var $input = this._$inputs[j];\n\n $input.addEventListener('keyup', _this._input_keyup.bind(_this, $input));\n $input.addEventListener('blur', _this._input_blur.bind(_this, $input));\n }\n\n for (var i = 0, inputs_checkbox_len = _this._$inputs_checkbox.length; i < inputs_checkbox_len; i++) {\n var $input_checkbox = this._$inputs_checkbox[i];\n\n $input_checkbox.addEventListener('click', _this._input_checkbox_click.bind(_this, $input_checkbox));\n $input_checkbox.addEventListener('keyup', _this._input_checkbox_keyup.bind(_this, $input_checkbox));\n $input_checkbox.addEventListener('blur', _this._input_checkbox_blur.bind(_this, $input_checkbox));\n }\n\n for (var x = 0, selects_len = _this._$selects.length; x < selects_len; x++) {\n var $select = this._$selects[x];\n\n $select.addEventListener('change', _this._select_change.bind(_this, $select));\n $select.addEventListener('blur', _this._select_blur.bind(_this, $select));\n }\n\n _this._$form.addEventListener('submit', _this._submit.bind(_this));\n\n _this._check_submit_status();\n },\n\n _input_keyup: function($input, event) {\n if (event.keyCode === 9 || event.keyCode === 27) {\n // No validation on TAB or ESC\n return;\n }\n\n this._validate_input($input, event);\n },\n\n _input_blur: function($input, event) {\n this._validate_input($input, event);\n },\n\n _validate_input: function($input, event) {\n var _this = this,\n id = $input.getAttribute('id'),\n $error_warning = document.querySelector('[for=\"' + id + '\"] .error_warning'),\n min = parseInt($input.getAttribute('min')),\n pattern = $input.getAttribute('pattern'),\n regexp = new RegExp(pattern),\n value = $input.value;\n\n if ($input.type === 'file') {\n _this._validate_input_file($input);\n }\n else if (value) {\n if (pattern && value.match(regexp) || value >= min || !pattern && $input.required) {\n $input.setAttribute('aria-invalid', 'false');\n\n if (!event || event.type === 'blur') {\n $input.classList.remove('error');\n\n if ($error_warning) {\n $error_warning.classList.remove('show');\n }\n }\n }\n else {\n $input.setAttribute('aria-invalid', 'true');\n\n if (!event || event.type === 'blur') {\n $input.classList.add('error');\n\n if ($error_warning) {\n $error_warning.classList.add('show');\n }\n }\n }\n }\n else if ($input.required) {\n $input.setAttribute('aria-invalid', 'true');\n\n if (!event || event.type === 'blur') {\n $input.classList.add('error');\n\n if ($error_warning) {\n $error_warning.classList.add('show');\n }\n }\n }\n else {\n $input.setAttribute('aria-invalid', 'false');\n\n if (!event || event.type === 'blur') {\n $input.classList.remove('error');\n\n if ($error_warning) {\n $error_warning.classList.remove('show');\n }\n }\n }\n _this._check_submit_status();\n },\n\n _validate_input_file: function($input) {\n var _this = this,\n id = $input.getAttribute('id'),\n $error_warning = document.querySelector('[for=\"' + id + '\"] .error_warning'),\n value = $input.value;\n\n while ($input && $input.nodeType !== 9) {\n $input = $input.parentNode;\n\n if ($input.classList.contains('file')) {\n break;\n }\n }\n\n if (value) {\n $input.classList.remove('error');\n if ($error_warning) {\n $error_warning.classList.remove('show');\n }\n }\n else {\n $input.classList.add('error');\n if ($error_warning) {\n $error_warning.classList.add('show');\n }\n }\n\n _this._check_submit_status();\n },\n\n _input_checkbox_click: function($input_checkbox, event) {\n this._validate_input_checkbox($input_checkbox, event);\n },\n\n _input_checkbox_keyup: function($input_checkbox, event) {\n if (event.keyCode === 32) { // SPACE\n this._validate_input_checkbox($input_checkbox, event);\n }\n },\n\n _input_checkbox_blur: function($input_checkbox, event) {\n this._validate_input_checkbox($input_checkbox, event);\n },\n\n _validate_input_checkbox: function($input_checkbox, event) {\n var _this = this,\n id = $input_checkbox.getAttribute('id'),\n $error_warning = document.querySelector('#label_' + id + ' .error_warning');\n\n if ($input_checkbox.checked && !event ||\n $input_checkbox.checked && event && event.type !== 'keyup' ||\n !$input_checkbox.checked && event && event.type === 'keyup') {\n $input_checkbox.setAttribute('aria-invalid', 'false');\n $input_checkbox.classList.remove('error');\n $error_warning.classList.remove('show');\n }\n else {\n $input_checkbox.setAttribute('aria-invalid', 'true');\n $input_checkbox.classList.add('error');\n $error_warning.classList.add('show');\n }\n\n _this._check_submit_status();\n },\n\n _select_change: function($select, event) {\n this._validate_select($select, event);\n },\n\n _select_blur: function($select, event) {\n this._validate_select($select, event);\n },\n\n _validate_select: function($select, event) {\n var _this = this,\n id = $select.getAttribute('id'),\n $wrapper = $select,\n $error_warning = document.querySelector('#label_' + id + ' .error_warning'),\n value = $select.value;\n\n while ($wrapper && $wrapper.nodeType !== 9) {\n $wrapper = $wrapper.parentNode;\n\n if ($wrapper.classList.contains('select')) {\n break;\n }\n }\n\n if (value) {\n $select.setAttribute('aria-invalid', 'false');\n\n if (!event || event.type === 'blur') {\n $wrapper.classList.remove('error');\n $error_warning.classList.remove('show');\n }\n }\n else {\n $select.setAttribute('aria-invalid', 'true');\n\n if (!event || event.type === 'blur') {\n $wrapper.classList.add('error');\n $error_warning.classList.add('show');\n }\n }\n\n _this._check_submit_status();\n },\n\n _check_submit_status: function() {\n var _this = this,\n error_msg_button_id = _this._$error_msg_button.getAttribute('id'),\n enable_submit_button = true;\n\n for (var j = 0, inputs_len = _this._$inputs.length; j < inputs_len; j++) {\n if (_this._$inputs[j].getAttribute('aria-invalid') === 'true' ||\n _this._$inputs[j].required && !_this._$inputs[j].value) {\n enable_submit_button = false;\n break;\n }\n }\n\n for (var i = 0, inputs_checkbox_len = _this._$inputs_checkbox.length; i < inputs_checkbox_len; i++) {\n if (!_this._$inputs_checkbox[i].checked) {\n enable_submit_button = false;\n break;\n }\n }\n\n for (var x = 0, selects_len = _this._$selects.length; x < selects_len; x++) {\n if (!_this._$selects[x].value) {\n enable_submit_button = false;\n break;\n }\n }\n\n if (enable_submit_button) {\n _this._$button.classList.remove('disabled');\n _this._$button.removeAttribute('aria-describedby');\n }\n else {\n _this._$button.classList.add('disabled');\n _this._$button.setAttribute('aria-describedby', error_msg_button_id);\n }\n },\n\n _show_first_error: function() {\n var _this = this,\n $first_input_error = _this._$form.querySelector('[aria-invalid=\"true\"]'),\n top_position = 0,\n offset_top = 60,\n duration = 300,\n interval,\n $obj;\n\n if ($first_input_error) {\n $obj = $first_input_error;\n top_position = $obj.offsetTop - offset_top;\n\n while ($obj = $obj.offsetParent) {\n top_position += $obj.offsetTop;\n }\n\n if (window.pageYOffset < top_position) {\n $first_input_error.focus();\n return;\n }\n\n interval = setInterval(function() {\n var diff = top_position - window.pageYOffset,\n step = diff / duration * 10;\n\n if (Math.abs(diff) <= Math.abs(step)) {\n $first_input_error.focus();\n clearInterval(interval);\n }\n\n window.scrollBy(0, step);\n duration -= 10;\n }, 10);\n }\n },\n\n _submit: function(event) {\n var _this = this;\n\n _this._check_submit_status();\n\n if (_this._$button.classList.contains('disabled')) {\n event.preventDefault();\n\n for (var j = 0, inputs_len = _this._$inputs.length; j < inputs_len; j++) {\n _this._validate_input(this._$inputs[j]);\n }\n\n for (var i = 0, inputs_checkbox_len = _this._$inputs_checkbox.length; i < inputs_checkbox_len; i++) {\n _this._validate_input_checkbox(this._$inputs_checkbox[i]);\n }\n\n for (var x = 0, selects_len = _this._$selects.length; x < selects_len; x++) {\n _this._validate_select(this._$selects[x]);\n }\n\n _this._show_first_error();\n }\n }\n };\n\n var $forms = document.querySelectorAll('[data-form*=\"validate\"]');\n\n for (var i = 0, len = $forms.length; i < len; i++) {\n new FormValidation($forms[i]).init();\n }\n})(document, window);\n\n// FORMULARE: STANDORT AUSWAHL\n// Wird verwendet für: formular\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var $secure_targets = document.querySelectorAll('[name=\"secure_target\"]');\n\n if (!$secure_targets.length) {\n return;\n }\n\n for (var i = 0, $secure_target; $secure_target = $secure_targets[i]; i++) {\n $secure_target.addEventListener('change', function() {\n var id = this.options[this.selectedIndex].getAttribute('id');\n\n if (id) {\n var $locations_data = document.querySelectorAll('[data-forms-location=' + id + '] span');\n\n for (var j = 0, $location_data; $location_data = $locations_data[j]; j++) {\n var title = $location_data.getAttribute('title'),\n $input = document.querySelector('input[name=\"to_' + title + '\"]');\n\n $input.value = $location_data.textContent.trim();\n }\n }\n });\n }\n})(document);\n\n// FORMULARE: EINGABE ZWISCHENSPEICHERN\n// Wird verwendet für: formular\n// -------------------------------------------------------------------------------------------------\n\n(function(document) {\n var FormCache = function($form) {\n var _this = this;\n\n _this._$form = $form;\n _this._form_name = _this._$form.getAttribute('data-form-cache');\n _this._$inputs = _this._$form.querySelectorAll('input, select, textarea');\n _this._$cache = {};\n };\n\n FormCache.prototype = {\n init: function() {\n var _this = this;\n\n _this._init_events();\n _this._restore_cache();\n },\n\n _init_events: function() {\n var _this = this,\n $input,\n type,\n event_listener;\n\n for (var i = 0, len = _this._$inputs.length; i < len; i++) {\n $input = _this._$inputs[i];\n type = $input.type;\n\n if (type === 'checkbox') {\n event_listener = 'click';\n }\n else if (type === 'select-one') {\n event_listener = 'change';\n }\n else {\n event_listener = 'input';\n }\n\n $input.addEventListener(event_listener, _this._save_cache.bind(_this, $input), false);\n }\n\n _this._$form.addEventListener('submit', _this._reset_cache.bind(_this), false);\n },\n\n _save_cache: function($input) {\n var _this = this,\n name = $input.getAttribute('name'),\n type = $input.type;\n\n if (type === 'checkbox') {\n _this._$cache[name] = $input.checked;\n }\n else if (type === 'select-one') {\n _this._$cache[name] = $input.selectedIndex;\n }\n else {\n _this._$cache[name] = $input.value;\n }\n\n localStorage.setItem(domain + '_form_cache_' + _this._form_name, JSON.stringify(_this._$cache));\n },\n\n _restore_cache: function() {\n var _this = this,\n $cache = localStorage.getItem(domain + '_form_cache_' + _this._form_name),\n $input,\n type;\n\n if (!$cache) {\n return;\n }\n\n _this._$cache = JSON.parse($cache);\n\n for (var key in _this._$cache) {\n if (_this._$cache.hasOwnProperty(key)) {\n $input = _this._$form.querySelector('[name=\"' + key + '\"]');\n type = $input.type;\n\n if (type === 'checkbox') {\n $input.checked = _this._$cache[key];\n }\n else if (type === 'select-one') {\n $input.selectedIndex = _this._$cache[key];\n }\n else {\n $input.value = _this._$cache[key];\n }\n }\n }\n },\n\n _reset_cache: function() {\n var _this = this,\n is_valid = true;\n\n for (var i = 0, len = _this._$inputs.length; i < len; i++) {\n if (_this._$inputs[i].getAttribute('aria-invalid') === 'true') {\n is_valid = false;\n break;\n }\n }\n\n if (is_valid) {\n localStorage.removeItem(domain + '_form_cache_' + _this._form_name);\n }\n }\n };\n\n var $forms = document.querySelectorAll('[data-form-cache]');\n\n for (var i = 0, len = $forms.length; i < len; i++) {\n new FormCache($forms[i]).init();\n }\n})(document);\n\n// FORMULARE: TEXTAREA AUTOGROW\n// Wird gebraucht für alle