{"version":3,"sources":["scripts.min.js"],"names":["checkvideos","location","hash","indexOf","$$","length","children","click","Element","prototype","matches","selector","this","matchesSelector","msMatchesSelector","webkitMatchesSelector","call","document","window","embed","svg","g","viewBox","getAttribute","fragment","createDocumentFragment","clone","cloneNode","setAttribute","childNodes","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","$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","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","history","replaceState","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","$input","support","font_rendering_engine","ua","_has_css_property","css_property_found","prefixes","columns","flex","$display","_has_flex_support","fileinput","disabled","fileapi","File","FileReader","FileList","Blob","placeholder","touch","msMaxTouchPoints","transform3d","overflow","accessiblity","$el","init_link","target","MenuBar","$menubar","_this","$menuitems","$root_menuitems","$first_menuitems","$second_menuitems","user_use_mouse","menu_is_open","event_type","nav_interval","init","$menuitem","$li","_click_menuitem","bind","_mouseenter_menuitem","root_len","_mouseover_menu","_mouseout_menu","_close_all_menu","_set_tabindex","_keyboard_nav","_get_menuitem_index","preventDefault","stopPropagation","_open_current_menu","clearInterval","clearTimeout","is_root_menuitem","has_menu","blur","_move_root_menuitem_focus","direction","_get_root_menuitem_index","_move_menuitem_focus","$menu","first_menuitem_index","second_menuitem_index","href","add","_close_current_menu","$all_menu","Array","$key","menu_direction","is_first_menuitem","is_second_menuitem","keyCode","shiftKey","$menubars","$defaults","entries","entry","toggle_notifications","close_notifications","remove_notification","NotificationCenter","$center","$settings","$entries","$close","$toggle","$options","_extend","$extended","deep","arguments","merge","obj","prop","_toggle_center","_close_center","_touch_control","toggle","is_empty","set_title","get_entries_count","set_message","$message","get_last_entry","$remove_notifications","total_scroll","current_scroll","overwrite_message","Notification","$notification","id","message_appended","message_template","$notifications_content","_update_settings","push_message","message","state","_reset_all_messages","_remove_message","_get_message","_set_message","_change_pressed_state","$parent_node","$message_content","_clear_sesssion","$notifications_content_copy","content","link","localStorage","setItem","domain","JSON","stringify","_remove_message_link","$remove_link","console","log","$content","$notification_content_wrapper","$notification_content_ids","$notification_content","getItem","parse","$notification_center","$mark_objects","update_properties_request","$properties_request","$properties","encodeURIComponent","$mark_object","entries_count","slider","$slider","$navigation","$slides","$link","_focus_slide","prev_slide_index","next_slide_index","_get_slide_index","anchor","$slide","nav_len","$sliders","form","add_autocorrect","textarea_autogrow","check_file_upload_support","file_upload","select","set_url_parameter_value","default_height","line_height","parseInt","padding_bottom","padding_top","$warning","$file_name","$file_button","selectedIndex","$parameters","forEach","$parameter","decodeURIComponent","selected","FormValidation","$form","_$form","_$inputs","_$inputs_checkbox","_$selects","_$button","_$error_msg_button","inputs_len","_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","pattern","regexp","RegExp","_validate_input_file","required","$wrapper","_validate_input_checkbox","_validate_select","error_msg_button_id","enable_submit_button","_show_first_error","interval","$first_input_error","top_position","setInterval","$forms","OffCanvasMenu","$show_offcanvas_menu","offcanvas_menu_id","controls","$controls","$menu_wrapper","$menu_links","$page","menu_position","$menus","_set_menu_height","menuitems_len","_toggle_menuitem","_toggle_menu","_transition_end","_reset_menu","_hide_menu","_resize","_touch_nav","maxHeight","_focus_menu","window_width","current_window_width","_show_menu","touches","start_x","pageX","start_y","pageY","$range","_get_touch_range","$transitions","undefined","links_len","FormCache","_form_name","_$cache","_init_events","_restore_cache","_save_cache","_reset_cache","$cache","is_valid","removeItem","$slider_wrapper","_$slider_wrapper","_$slider","_$slide","_$prev_slide","_$next_slide","_current_index","_reset_loop","_is_animated","_queue","_animation_time","animation_time","_update_slide","_slider_transition_end","_execute_queue","offset","transform","_update_loop","_animate_slide","$slider_wrappers","Tooltip","$tooltip_wrapper","$tooltip","_temp_disabled","_perm_disabled","_focused","tooltip_id","$tooltip_trigger","_check_tooltip","_hide_tooltip","_show_tooltip","$tooltip_wrappers","Window","Dialog","$dialog_wrapper","$dialog_overlay","$dialog","$close_dialogs","$dialog_focus","$submit_button","$focus_elements","dialog_id","$open_dialog","$close_target","_close_dialog","$close_dialog","open_dialog","_auto_open_dialog","_focus_dialog","_expiration_date","now","Date","getTime","expiration_date","auto_open_dialog","days","focus_elements_len","$dialog_wrappers","lazy_load","$spin","loaded","$window","$images","viewport_height","_is_in_viewport","offset_top","_load_images","_get_offset_top","load","is_loaded","img_src","_get_src","_load_img","_load_background_img","$src","src_length","ratio","devicePixelRatio","substring","$img","background-image","timer","dummySrc","fixRespimg","findPictureImgs","onResize","mq","HTMLPictureElement","$1","img","source","sizes","picture","firstElementChild","_pfLastSize","imgs","matchMedia","addListener","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","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","timeout","timestamp","later","regReady","run","timerId","lastClientWidth","typeUri","evalCSS","css","args","string","parsedLength","Function","e","setResolution","candidate","sizesattr","w","cWidth","calcListLength","res","d","picturefill","opt","elements","plen","options","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","ascendingSort","getCandidateForSrc","set","candidates","parseSet","makeUrl","warn","implementation","hasFeature","ns","supSrcset","supSizes","supPicture","complete","onerror","u","setSize","matchesMedia","media","mMQ","apply","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","exec","pos","descriptors","currentDescriptor","inputLength","parseDescriptors","h","desc","lastChar","intVal","floatVal","pError","parseFloat","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","pow","sqrt","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","$property_details_images","scripts_path","baguetteBox","$property_details_videos","$price_on_demand","$property_details_contact","$activate_search_agent","activate_search_agent_top","show_element"],"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 {\n if($nodes[i].tagName.toLowerCase() === selector) {\n $filtered_nodes.push($nodes[i]);\n }\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 {\n if (_is_array(selector)) {\n $nodes = selector;\n }\n else {\n $nodes = [selector];\n }\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 {\n if (value) {\n $this[i].setAttribute(attribute, value);\n }\n else {\n $this[i].removeAttribute(attribute);\n }\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 = $$('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.add_class('ios ipad tablet');\n }\n else if (device.iphone || device.ipod) {\n $html.add_class('ios iphone mobile');\n }\n }\n else if (device.android) {\n if (device.android_tablet) {\n $html.add_class('android tablet');\n }\n else {\n $html.add_class('android mobile');\n }\n }\n else if (device.windows) {\n if (device.windows_tablet) {\n $html.add_class('windows tablet');\n }\n else if (device.windows_phone) {\n $html.add_class('windows mobile');\n }\n else {\n $html.add_class('desktop');\n }\n }\n else {\n $html.add_class('desktop');\n }\n}(document, navigator, window));\n\n/* BROWSER SUPPORT\n------------------------------------------------------------------------------------------------ */\n\n(function(document, navigator, window) {\n var $html = $$('html'),\n ua = navigator.userAgent,\n $div = document.createElement('div'),\n $input = document.createElement('input');\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 // Überprüft die Browser-Unterstützung für input[type=file]\n\n function _has_file_input_support($input) {\n var support = true;\n\n $input.type = 'file';\n\n if (navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0))/)) {\n support = false;\n }\n else if ($input.disabled) {\n support = false;\n }\n\n return support;\n }\n\n // Überprüft die Browser-Unterstützung für display: flex\n\n function _has_flex_support() {\n var $display = ['-webkit-flex', '-ms-flexbox', 'flex'],\n support = false;\n\n for (var i = 0, len = $display.length; i < len; i++) {\n $div.style.display = $display[i];\n\n if ($div.style.display === $display[i]) {\n support = true;\n break;\n }\n }\n\n return support;\n }\n\n // Erkennt Font Rendering Engine\n\n function _detect_font_rendering_engine() {\n var font_rendering_engine = '';\n\n if (ua.indexOf('Macintosh') > 0 || ua.indexOf('Mac OS X') > 0) {\n font_rendering_engine = 'tr-coretext';\n }\n else if (ua.indexOf('Windows NT') > 0) {\n font_rendering_engine = 'tr-aa-subpixel';\n }\n\n return font_rendering_engine;\n }\n\n window.support = {\n animation : _has_css_property('animation'),\n columns : _has_css_property('columns'),\n flex : _has_flex_support(),\n fileinput : _has_file_input_support($input),\n fileapi : window.File && window.FileReader && window.FileList && window.Blob,\n placeholder : 'placeholder' in $input,\n touch : (window.navigator.msMaxTouchPoints || 'ontouchstart' in document.documentElement),\n transform3d : 'msPerspective' in $div.style || 'perspective' in $div.style,\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.add_class(support.animation ? 'cssanimations' : 'no-cssanimations');\n $html.add_class(support.columns ? 'columns' : 'no-columns');\n $html.add_class(support.flex ? 'flex' : 'no-flex');\n $html.add_class(support.fileinput ? 'fileinput' : 'no-fileinput');\n $html.add_class(support.fileapi ? 'fileapi' : 'no-fileapi');\n $html.add_class(support.placeholder ? 'placeholder' : 'no-placeholder');\n $html.add_class(support.touch ? 'touch' : 'no-touch');\n $html.add_class(support.transition ? 'csstransitions' : 'no-csstransitions');\n $html.add_class(support.transform3d ? 'csstransforms3d' : 'no-csstransforms3d');\n $html.add_class(_detect_font_rendering_engine());\n\n if (support.overflow) {\n $html.add_class('overflow');\n }\n\n}(document, navigator, window));\n\n/* ACCESSIBILITY\n------------------------------------------------------------------------------------------------ */\n\n(function(window) {\n var accessiblity = function(element) {\n var _this = this;\n\n _this.$el = $$(element);\n };\n\n accessiblity.prototype = {\n init_link: function() {\n var _this = this,\n target = _this.$el.get_attribute('target'),\n title = _this.$el.get_attribute('title');\n\n if (title && target === '_blank') {\n this.$el.set_attribute('title', title + ' (Neues Fenster)');\n }\n\n // if (href.match(/^.+(.jpg|.jpeg|.gif|.png)$/)) {\n // if (!title) {\n // title = _this.$el.get_text();\n // }\n //\n // _this.$el.set_attribute('title', 'Bild: ' + title);\n // }\n }\n };\n\n window.$$.accessiblity = function(element) {\n return new accessiblity(element);\n };\n})(window);\n\n$$('[href*=http]').for_each(function() {\n $$.accessiblity(this).init_link();\n});\n\n// NAVIGATION\n//------------------------------------------------------------------------------\n\n(function(document) {\n var MenuBar = function($menubar) {\n var _this = this;\n\n _this.$menubar = $menubar;\n _this.$menuitems = _this.$menubar.querySelectorAll('.root_menuitem, .first_menuitem, .second_menuitem');\n _this.$root_menuitems = _this.$menubar.querySelectorAll('.root_menuitem');\n _this.$first_menuitems = _this.$menubar.querySelectorAll('.first_menuitem');\n _this.$second_menuitems = _this.$menubar.querySelectorAll('.second_menuitem');\n\n _this.user_use_mouse = false;\n _this.menu_is_open = false;\n _this.event_type;\n _this.nav_interval;\n };\n\n MenuBar.prototype = {\n init: function() {\n var _this = this,\n $menuitem,\n $node,\n $li;\n\n for (var i = 0, len = _this.$menuitems.length; i < len; i++) {\n $menuitem = _this.$menuitems[i];\n\n $menuitem.addEventListener('click', _this._click_menuitem.bind(_this, $menuitem), false);\n $menuitem.addEventListener('mouseenter', _this._mouseenter_menuitem.bind(_this, $menuitem), false);\n }\n\n for (var j = 0, root_len = _this.$root_menuitems.length; j < root_len; j++) {\n $node = _this.$root_menuitems[j];\n\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'LI') {\n $li = $node;\n break;\n }\n }\n\n $li.addEventListener('mouseover', _this._mouseover_menu.bind(_this), false);\n $li.addEventListener('mouseout', _this._mouseout_menu.bind(_this, _this.$root_menuitems[j]), false);\n }\n\n document.addEventListener('click', function() {\n _this._close_all_menu();\n }, false);\n\n _this._set_tabindex();\n _this._keyboard_nav();\n },\n\n _set_tabindex: function($menuitem) {\n var _this = this,\n is_root_menuitem;\n\n for (var i = 0, len = _this.$menuitems.length; i < len; i++) {\n is_root_menuitem = _this._get_menuitem_index(_this.$root_menuitems, _this.$menuitems[i]) > -1 ? true : false;\n\n if (is_root_menuitem) {\n continue;\n }\n\n if ((!$menuitem && i === 0) || _this.$menuitems[i] === $menuitem) {\n _this.$menuitems[i].setAttribute('tabindex', '0');\n\n if ($menuitem) {\n _this.$menuitems[i].focus();\n }\n }\n else {\n _this.$menuitems[i].setAttribute('tabindex', '-1');\n }\n }\n },\n\n _click_menuitem: function($menuitem) {\n if ($menuitem.getAttribute('aria-haspopup')) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n\n _mouseenter_menuitem: function($menuitem) {\n var _this = this,\n is_root_menuitem = _this._get_menuitem_index(_this.$root_menuitems, $menuitem) > -1 ? true : false;\n\n if (is_root_menuitem) {\n _this._close_all_menu();\n\n if ($menuitem.getAttribute('aria-haspopup')) {\n $menuitem.focus();\n }\n }\n\n _this._open_current_menu($menuitem);\n\n clearInterval(_this.nav_interval);\n },\n\n _mouseover_menu: function() {\n var _this = this;\n\n clearTimeout(_this.nav_interval);\n _this.user_use_mouse = true;\n },\n\n _mouseout_menu: function($menuitem) {\n var _this = this,\n is_root_menuitem = _this._get_menuitem_index(_this.$root_menuitems, $menuitem) > -1 ? true : false,\n has_menu = $menuitem.classList.contains('aria-haspopup');\n\n if (_this.user_use_mouse) {\n _this.nav_interval = setTimeout(function() {\n _this._close_all_menu();\n }, 1000);\n }\n\n if (is_root_menuitem && !has_menu) {\n $menuitem.blur();\n }\n\n _this.user_use_mouse = false;\n },\n\n _move_root_menuitem_focus: function($menuitem, direction) {\n var _this = this,\n index;\n\n index = _this._get_menuitem_index(_this.$root_menuitems, $menuitem);\n\n if (index < 0) {\n index = _this._get_root_menuitem_index($menuitem);\n }\n\n if (index === 0 && direction === -1) {\n index = _this.$root_menuitems.length - 1;\n }\n else if (index === _this.$root_menuitems.length - 1 && direction === 1) {\n index = 0;\n }\n else {\n index += direction;\n }\n\n _this._close_all_menu();\n _this.$root_menuitems[index].focus();\n\n if (_this.menu_is_open) {\n _this._open_current_menu(_this.$root_menuitems[index]);\n }\n },\n\n _move_menuitem_focus: function($menuitem, direction) {\n var _this = this,\n $node = $menuitem,\n $menu,\n $menuitems,\n index;\n\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'UL') {\n $menu = $node;\n break;\n }\n }\n\n var $first_menuitems = $menu.querySelectorAll('.first_menuitem'),\n $second_menuitems = $menu.querySelectorAll('.second_menuitem'),\n first_menuitem_index = _this._get_menuitem_index($first_menuitems, $menuitem),\n second_menuitem_index = _this._get_menuitem_index($second_menuitems, $menuitem);\n\n if ($first_menuitems.length) {\n $menuitems = $first_menuitems;\n index = first_menuitem_index;\n }\n else {\n $menuitems = $second_menuitems;\n index = second_menuitem_index;\n }\n\n if (index === 0 && direction === -1) {\n index = $menuitems.length - 1;\n }\n else if (index === $menuitems.length - 1 && direction === 1) {\n index = 0;\n }\n else {\n index += direction;\n }\n\n _this._set_tabindex($menuitems[index]);\n },\n\n _open_current_menu: function($menuitem) {\n var _this = this,\n href = $menuitem.getAttribute('href'),\n $node = $menuitem,\n $menu;\n\n if (href.indexOf('#') === 0) {\n $menu = document.querySelector(href);\n }\n\n if ($menu) {\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'LI') {\n $node.classList.add('hover');\n break;\n }\n }\n\n $menu.setAttribute('aria-hidden', 'false');\n $menuitem.setAttribute('aria-expanded', 'true');\n\n if (_this.event_type === 'keydown') {\n $menuitem = document.querySelector(href + ' a');\n }\n }\n\n _this.menu_is_open = true;\n\n _this._set_tabindex($menuitem);\n },\n\n _close_current_menu: function($menuitem) {\n var _this = this,\n $node = $menuitem,\n href = $menuitem.getAttribute('href'),\n $menu;\n\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'LI') {\n if ($node.classList.contains('hover')) {\n $node.classList.remove('hover');\n $menu = document.querySelector(href);\n break;\n }\n }\n else if ($node.tagName === 'UL') {\n $menu = $node;\n break;\n }\n }\n\n if ($menu.getAttribute('aria-hidden') === 'false') {\n $node = $menu;\n\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'LI') {\n $node.classList.remove('hover');\n break;\n }\n }\n\n $menuitem = $node.querySelector('[aria-haspopup]');\n\n $menuitem.focus();\n $menuitem.setAttribute('aria-expanded', 'false');\n\n _this._set_tabindex($menuitem);\n\n $menu.setAttribute('aria-hidden', 'true');\n }\n else if (href.indexOf('#') === 0) {\n $menu = document.querySelector(href);\n $menu.setAttribute('aria-hidden', 'true');\n }\n\n _this.menu_is_open = false;\n },\n\n _close_all_menu: function($menuitem) {\n var _this = this,\n $all_menu = _this.$menubar.querySelectorAll('[role=\"menu\"][aria-hidden=\"false\"]'),\n $node;\n\n for (var i = 0, len = $all_menu.length; i < len; i++) {\n $node = $all_menu[i];\n\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'LI') {\n $node.classList.remove('hover');\n\n $menuitem = $node.querySelector('[aria-haspopup]');\n\n if ($menuitem.classList.contains('root_menuitem')) {\n _this._set_tabindex($menuitem);\n\n $menuitem.blur();\n $menuitem.setAttribute('aria-expanded', 'false');\n\n break;\n }\n }\n }\n\n $all_menu[i].setAttribute('aria-hidden', 'true');\n }\n },\n\n _get_menuitem_index: function($menuitems, $menuitem) {\n return Array.prototype.indexOf.call($menuitems, $menuitem);\n },\n\n _get_root_menuitem_index: function($menuitem) {\n var _this = this,\n $node = $menuitem,\n index;\n\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'LI') {\n $menuitem = $node.querySelector('[aria-haspopup]');\n index = _this._get_menuitem_index(_this.$root_menuitems, $menuitem);\n\n if (index > -1) {\n break;\n }\n }\n }\n\n return index;\n },\n\n _keyboard_nav: function() {\n var _this = this,\n $key = {\n 'tab' : 9,\n 'enter' : 13,\n 'escape' : 27,\n 'space' : 32,\n 'home' : 35,\n 'end' : 36,\n 'arrow_left' : 37,\n 'arrow_up' : 38,\n 'arrow_right' : 39,\n 'arrow_down' : 40\n };\n\n _this.$menubar.addEventListener('keydown', function(event) {\n var $menuitem = event.target,\n $node = $menuitem,\n is_root_menuitem = _this._get_menuitem_index(_this.$root_menuitems, $menuitem) > -1 ? true : false,\n is_first_menuitem = _this._get_menuitem_index(_this.$first_menuitems, $menuitem) > -1 ? true : false,\n is_second_menuitem = _this._get_menuitem_index(_this.$second_menuitems, $menuitem) > -1 ? true : false,\n has_menu = $menuitem.getAttribute('aria-haspopup'),\n menu_direction;\n\n _this.event_type = event.type;\n\n while ($node && $node.nodeType === 1) {\n $node = $node.parentElement;\n\n if ($node.tagName === 'UL') {\n menu_direction =$node.getAttribute('data-menu-direction');\n\n if (menu_direction === null) {\n menu_direction = 'vertical';\n }\n\n break;\n }\n }\n\n if (event.keyCode === $key.space || event.keyCode === $key.arrow_up ||\n event.keyCode === $key.arrow_down) {\n event.preventDefault();\n }\n\n if (event.keyCode === $key.enter || event.keyCode === $key.space ||\n (!(is_first_menuitem || is_second_menuitem) && event.keyCode === $key.arrow_down) ||\n (is_first_menuitem && has_menu && event.keyCode === $key.arrow_right)) {\n\n if (has_menu) {\n event.preventDefault();\n _this._open_current_menu($menuitem);\n }\n }\n\n if (!_this.user_use_mouse && (event.keyCode === $key.escape ||\n (is_second_menuitem && event.keyCode === $key.arrow_left))) {\n event.preventDefault();\n _this._close_current_menu($menuitem);\n }\n\n if (menu_direction === 'vertical') {\n if ((!is_second_menuitem && event.keyCode === $key.arrow_left) ||\n ((is_first_menuitem || is_second_menuitem) && event.keyCode === $key.tab && event.shiftKey)) {\n event.preventDefault();\n _this._move_root_menuitem_focus($menuitem, -1);\n }\n\n if (((is_root_menuitem || is_second_menuitem) && event.keyCode === $key.arrow_right) ||\n (!has_menu && is_first_menuitem && event.keyCode === $key.arrow_right) ||\n ((is_first_menuitem || is_second_menuitem) && event.keyCode === $key.tab)) {\n event.preventDefault();\n _this._move_root_menuitem_focus($menuitem, +1);\n }\n\n if (event.keyCode === $key.arrow_up) {\n event.preventDefault();\n _this._move_menuitem_focus($menuitem, -1);\n }\n else if (event.keyCode === $key.arrow_down) {\n event.preventDefault();\n _this._move_menuitem_focus($menuitem, +1);\n }\n }\n else if (menu_direction === 'horizontal') {\n if (event.keyCode === $key.arrow_left ||\n event.keyCode === $key.tab && event.shiftKey) {\n event.preventDefault();\n _this._move_menuitem_focus($menuitem, -1);\n }\n else if (event.keyCode === $key.tab ||\n event.keyCode === $key.arrow_right) {\n event.preventDefault();\n _this._move_menuitem_focus($menuitem, +1);\n }\n }\n }, false);\n }\n };\n\n var $menubars = document.querySelectorAll('[role=\"menubar\"]');\n\n for (var i = 0, len = $menubars.length; i < len; i++) {\n new MenuBar($menubars[i]).init();\n }\n})(document);\n\n// MITTEILUNGSZENTRALE\n// -----------------------------------------------------------------------------\n\n(function(document, window) {\n var $defaults = {\n 'title' : '.title',\n 'entries' : '.entries',\n 'entry' : '.entry',\n 'toggle_notifications' : '.toggle',\n 'close_notifications' : '.close',\n 'remove_notification' : '.remove'\n },\n\n NotificationCenter = function($center) {\n var _this = this;\n\n _this.$center = $center;\n _this.$settings = $defaults;\n _this.$entries = $center.querySelector(_this.$settings.entries);\n _this.$close = $center.querySelector(_this.$settings.close_notifications);\n _this.$toggle = $center.querySelector(_this.$settings.toggle_notifications);\n };\n\n // Private\n\n function _extend() {\n var $extended = {},\n deep = false,\n index = 0,\n length = arguments.length;\n\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n index++;\n }\n\n function merge(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n $extended[prop] = _extend(true, $extended[prop], obj[prop]);\n }\n else {\n $extended[prop] = obj[prop];\n }\n }\n }\n }\n\n for (; index < length; index++) {\n var obj = arguments[index];\n merge(obj);\n }\n\n return $extended;\n }\n\n // Public\n\n NotificationCenter.prototype = {\n init: function($options) {\n var _this = this;\n\n _this.$settings = _extend($defaults, $options || {});\n\n _this._toggle_center();\n _this._close_center();\n _this._touch_control();\n },\n\n toggle: function() {\n var _this = this;\n\n _this.$center.classList.toggle('visible');\n },\n\n open: function() {\n var _this = this;\n\n _this.$center.classList.add('visible');\n },\n\n remove: function() {\n var _this = this;\n\n _this.$center.classList.remove('visible');\n },\n\n is_empty: function() {\n var _this = this,\n $entries = _this.$entries.querySelectorAll(_this.$settings.entry),\n is_empty = true;\n\n if ($entries.length > 0) {\n is_empty = false;\n }\n\n return is_empty;\n },\n\n set_title: function(title) {\n var _this = this,\n $title = _this.$center.querySelector(_this.$settings.title);\n\n $title.innerHTML = title;\n },\n\n get_entries_count: function() {\n var _this = this,\n $entries = _this.$center.querySelectorAll(_this.$settings.entry);\n\n return $entries.length;\n },\n\n set_message: function($message) {\n var _this = this;\n\n for (var i = 0, len = $message.length; i < len; i++) {\n _this.$entries.insertBefore($message[i], _this.$entries.childNodes[0]);\n }\n },\n\n get_last_entry: function() {\n var _this = this;\n\n return _this.$entries.firstChild;\n },\n\n _toggle_center: function() {\n var _this = this;\n\n _this.$toggle.addEventListener('click', function(event) {\n event.preventDefault();\n\n _this.$center.classList.toggle('reduced');\n _this.$toggle.classList.toggle('reduced');\n });\n },\n\n _close_center: function() {\n var _this = this,\n $remove_notifications;\n\n if (!_this.$close) {\n return;\n }\n\n _this.$close.addEventListener('click', function(event) {\n event.preventDefault();\n\n $remove_notifications = _this.$center.querySelectorAll(_this.$settings.remove_notification);\n\n for (var i = 0, len = $remove_notifications.length; i < len; i++) {\n $remove_notifications[i].click();\n }\n });\n },\n\n _touch_control: function() {\n var _this = this;\n\n // Disabled touchmove on notification center\n\n _this.$center.addEventListener('touchmove', function(event) {\n event.preventDefault();\n });\n\n _this.$entries.addEventListener('touchmove', function(event) {\n var total_scroll = _this.$entries.scrollHeight,\n entries_height = _this.$entries.offsetHeight;\n\n if (total_scroll > entries_height) {\n event.stopPropagation();\n }\n });\n\n // Disabled iOS rubber band scrolling\n\n _this.$entries.addEventListener('touchstart', function() {\n var top = _this.$entries.scrollTop,\n total_scroll = _this.$entries.scrollHeight,\n current_scroll = top + _this.$entries.offsetHeight;\n\n if (top === 0) {\n _this.$entries.scrollTop = 1;\n }\n else if (current_scroll === total_scroll) {\n _this.$entries.scrollTop = top - 1;\n }\n });\n }\n };\n\n window.NotificationCenter = NotificationCenter;\n})(document, window);\n\n\n// MITTEILUNGEN\n//------------------------------------------------------------------------------\n\n(function(document, window) {\n var $defaults = {\n 'overwrite_message' : false\n },\n\n Notification = function($notification) {\n var _this = this;\n\n _this.$notification = $notification;\n _this.$settings = $defaults;\n _this.$message = document.querySelector('#' + $notification.getAttribute('data-notification'));\n _this.id = $notification.getAttribute('data-notification-id');\n _this.message_appended = false;\n _this.message_template = '';\n },\n\n $notifications_content = [];\n\n // Private\n\n function _extend() {\n var $extended = {},\n deep = false,\n index = 0,\n length = arguments.length;\n\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n index++;\n }\n\n function merge(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n $extended[prop] = _extend(true, $extended[prop], obj[prop]);\n }\n else {\n $extended[prop] = obj[prop];\n }\n }\n }\n }\n\n for (; index < length; index++) {\n var obj = arguments[index];\n merge(obj);\n }\n\n return $extended;\n }\n\n function _create_element(html) {\n var $div = document.createElement('div'),\n $filtered_nodes = [],\n $nodes;\n\n $div.innerHTML = html.trim();\n $nodes = $div.childNodes;\n\n for (var i = 0, len = $nodes.length; $nodes !== null && (i < len); i++) {\n if ($nodes[i].nodeType === 1) {\n $filtered_nodes.push($nodes[i]);\n }\n }\n\n return $filtered_nodes;\n }\n\n // Public\n\n Notification.prototype = {\n init: function($center, $options) {\n var _this = this;\n\n _this.$settings = _extend($defaults, $options || {});\n _this.$center = $center;\n\n _this._update_settings();\n },\n\n push_message: function(callback) {\n var _this = this,\n message,\n state;\n\n _this._reset_all_messages();\n\n if (_this.message_appended && _this.$settings.overwrite_message) {\n _this._remove_message();\n }\n\n message = _this._get_message();\n state = _this._set_message(message);\n\n if (state) {\n _this.$center.open();\n }\n else {\n _this._remove_message();\n }\n\n if (callback) {\n callback(event);\n }\n\n _this._change_pressed_state(state);\n //_this.$center.set_title();\n },\n\n _update_settings: function() {\n var _this = this;\n\n _this.$settings = _extend(_this.$settings, _this.$center.$settings || {});\n },\n\n _change_pressed_state: function(state) {\n var _this = this;\n\n if (_this.$notification.getAttribute('aria-pressed')) {\n _this.$notification.setAttribute('aria-pressed', state);\n }\n },\n\n _remove_message: function() {\n var _this = this,\n $parent_node;\n\n if (_this.$message_content) {\n $parent_node = _this.$message_content.parentNode;\n\n if ($parent_node) {\n $parent_node.removeChild(_this.$message_content);\n }\n\n _this.message_appended = false;\n }\n\n if (_this.$center.is_empty()) {\n _this.$center.remove();\n }\n\n _this._change_pressed_state(false);\n _this._clear_sesssion();\n },\n\n _clear_sesssion: function() {\n var _this = this,\n $notifications_content_copy = [];\n\n for (var i = 0, len = $notifications_content.length; i < len; i++) {\n if ($notifications_content[i].id !== _this.id) {\n $notifications_content_copy.push({\n 'id' : $notifications_content[i].id,\n 'content' : $notifications_content[i].content,\n 'link' : $notifications_content[i].link\n });\n }\n }\n\n $notifications_content = $notifications_content_copy;\n localStorage.setItem(domain + '_notification_messages', JSON.stringify($notifications_content));\n },\n\n _remove_message_link: function() {\n var _this = this,\n $remove_link;\n\n if (_this.$message_content) {\n $remove_link = _this.$message_content.querySelector(_this.$settings.remove_notification);\n\n if ($remove_link) {\n $remove_link.addEventListener('click', function(event) {\n event.preventDefault();\n\n _this._remove_message();\n });\n }\n }\n },\n\n _get_message: function() {\n var _this = this;\n\n if (!_this.message_template) {\n _this.message_template += '