/* //////////////////////////////////////////////////////////////// // // UI JavaScript Funktionen // // Weblication CMS // erstellt durch Scholl Communications AG, 77694 Kehl, www.scholl.de // erstellt mit Weblication Content Management System, www.weblication.de // //////////////////////////////////////////////////////////////// */ devicePixelRatio = window.devicePixelRatio || 1; hdLimitDpr = 2; jQuery(document).ready(function(){ wUiTmp = {}; wCssClassesToAddGlobal = typeof(wCssClassesToAddGlobal) != 'undefined' ? wCssClassesToAddGlobal : {}; wCssEventsToAddGlobal = typeof(wCssEventsToAddGlobal) != 'undefined' ? wCssEventsToAddGlobal : {}; wCssJQuery = typeof(wCssJQuery) != 'undefined' ? wCssJQuery : {}; wCssDOM = typeof(wCssDOM) != 'undefined' ? wCssDOM : {}; wMediaqueriesToAddGlobal = typeof(wMediaqueriesToAddGlobal) != 'undefined' ? wMediaqueriesToAddGlobal : {}; var htmlAdditionalClasses = ''; if(/mobile/i.test(navigator.userAgent)) htmlAdditionalClasses += ' mobile'; if(/iPad/i.test(navigator.userAgent)) htmlAdditionalClasses += ' ipad'; if(/iPhone/i.test(navigator.userAgent)) htmlAdditionalClasses += ' iphone'; if(/iPod/i.test(navigator.userAgent)) htmlAdditionalClasses += ' ipod'; if(/(iPod|iPhone|iPad)/i.test(navigator.userAgent)){ htmlAdditionalClasses += ' ios'; if(/CriOs/i.test(navigator.userAgent)){ htmlAdditionalClasses += ' crios'; } else if(/Safari/i.test(navigator.userAgent)){ htmlAdditionalClasses += ' saios'; } } htmlAdditionalClasses += (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch ? ' touch' : ' no-touch'); if(document.documentElement){ if(document.documentElement.getAttribute('lang')) htmlAdditionalClasses += ' lang-' + document.documentElement.getAttribute('lang'); document.documentElement.className = (document.documentElement.className.replace('no-js', '') + ' js' + htmlAdditionalClasses).replace(/^\s+/, ''); } if(typeof(wEditor) == 'undefined'){ document.documentElement.className = document.documentElement.className.replace('weditor', '') + ' no-weditor'; } else{ document.documentElement.className = document.documentElement.className.replace('no-weditor', '') + ' weditor'; } if(document.cookie.indexOf('websitezoom=l') != -1){ document.body.className = document.body.className + ' zoom-l'; } for(var addClassSelector in wCssClassesToAddGlobal){ jQuery(addClassSelector).each(function(index){ var classesToAdd = wCssClassesToAddGlobal[addClassSelector]; for(var i = 0, arrayLength = classesToAdd.length; i < arrayLength; i++){ var classData = classesToAdd[i].split('='); if(classData.length == 2){ var selector = jQuery.trim(classData[0]); if(selector == '.'){ jQuery(this).addClass(jQuery.trim(classData[1])); } else if(selector == 'parent'){ jQuery(this).parent().addClass(jQuery.trim(classData[1])); } else{ jQuery(this).find(selector).addClass(jQuery.trim(classData[1])); } } else{ jQuery(this).addClass(jQuery.trim(classData[0])); } } }); } jQuery('*[data-w-addclasses]').each(function(index){ var classesToAdd = jQuery(this).data('w-addclasses').split(','); jQuery(this).removeAttr('data-w-addclasses'); for(var i = 0, arrayLength = classesToAdd.length; i < arrayLength; i++){ var classData = classesToAdd[i].split('='); var selector = jQuery.trim(classData[0]); if(selector == '.'){ jQuery(this).addClass(jQuery.trim(classData[1])); } else{ jQuery(this).find(selector).addClass(jQuery.trim(classData[1])); } } }); for(var addEventSelector in wCssEventsToAddGlobal){ jQuery(addEventSelector).each(function(index){ var eventsToAdd = wCssEventsToAddGlobal[addEventSelector]; for(var i = 0, arrayLength = eventsToAdd.length; i < arrayLength; i++){ var eventData = eventsToAdd[i].split('='); if(eventData.length == 2){ var eventType = jQuery.trim(eventData[0]).replace(/^on/, ''); var eventFunction = jQuery.trim(eventData[1]); jQuery(this).bind(eventType, (new Function('event', eventFunction + '(this, event.originalEvent);'))); } } }); } for(var wCssJQueryEntry in wCssJQuery){ jQuery(wCssJQueryEntry).each(function(index){ eval(wCssJQuery[wCssJQueryEntry]['jQuery']); }); } for(var wCssDOMEntry in wCssDOM){ jQuery(wCssDOMEntry).each(function(index){ domActions = {'prependto' : 'prependTo', 'appendto' : 'appendTo', 'insertbefore' : 'insertBefore', 'insertafter' : 'insertAfter'}; if(/^(\w+)\(/.test(wCssDOM[wCssDOMEntry]['path'])){ eval('jQuery(this).' + domActions[wCssDOM[wCssDOMEntry]['action'].toLowerCase()] + '(jQuery(this).' + wCssDOM[wCssDOMEntry]['path'] + ');'); } else{ if(wCssDOM[wCssDOMEntry]['action'] == 'prependto'){ jQuery(this).prependTo(wCssDOM[wCssDOMEntry]['path']); } else if(wCssDOM[wCssDOMEntry]['action'] == 'appendto'){ jQuery(this).appendTo(wCssDOM[wCssDOMEntry]['path']); } else if(wCssDOM[wCssDOMEntry]['action'] == 'insertbefore'){ jQuery(this).insertBefore(wCssDOM[wCssDOMEntry]['path']); } else if(wCssDOM[wCssDOMEntry]['action'] == 'insertafter'){ jQuery(this).insertAfter(wCssDOM[wCssDOMEntry]['path']); } } }); } jQuery('body').append('
'); for(var wMediaqueryToAddGlobal in wMediaqueriesToAddGlobal){ jQuery('#wMediaqueriesTmp').append(''); } jQuery('label').each(function(index){ var nameFor = jQuery(this).attr('for'); if(nameFor && nameFor != ''){ var currentForm = jQuery(this).closest('form'); var elementFor = currentForm.get(0).elements[nameFor]; if(elementFor && typeof(elementFor.getAttribute('placeholder')) == 'string' && (elementFor.className.indexOf('wglIsInvalid') == -1 || elementFor.value == '')){ if(typeof(elementFor.placeholder) != 'undefined'){ jQuery(this).css({'display' : 'none'}); } } } }); jQuery(window).load(function(){ jQuery("img[data-src2x]:not(.wglLazyLoadInit)").each(function(){ var currentImg = jQuery(this); if(devicePixelRatio >= hdLimitDpr && typeof(currentImg.attr('data-src2x')) != 'undefined' && currentImg.attr('width') < currentImg.width() * 2){ currentImg.attr('src', currentImg.data('src2x')); } }); }); jQuery(window).bind('load resize scroll', function(){ var winScrollTop = jQuery(window).scrollTop(); var winHeight = jQuery(window).height(); jQuery('img.wglLazyLoadInit').each(function(index){ var currentImg = jQuery(this); var offsetTop = parseInt(currentImg.offset().top); if(offsetTop < winScrollTop + winHeight){ if(devicePixelRatio >= hdLimitDpr && typeof(currentImg.attr('data-src2x')) != 'undefined' && currentImg.attr('width') < currentImg.width() * 2){ currentImg.attr('src', currentImg.data('src2x')); } else if(typeof(currentImg.attr('data-src')) != 'undefined'){ currentImg.attr('src', currentImg.data('src')); } currentImg.removeClass('wglLazyLoadInit'); } }); }); jQuery(window).bind('load resize', function(){ jQuery('#wMediaqueriesTmp > div').each(function(index){ if(window.getComputedStyle){ var computedStyle = window.getComputedStyle(jQuery(this).get(0)); var fontFamily = computedStyle.fontFamily.replace(/"/g, ''); var lastMediaQuery = jQuery(this).data('lastmediaquery') || ''; if(fontFamily != lastMediaQuery){ //console.log(fontFamily + ' != ' + lastMediaQuery + ' :' + fontFamily.indexOf('mediaquery_')); if(fontFamily.indexOf('mediaquery_') == 0){ eval('if(typeof(' + fontFamily + '_onactivate) == \'function\'){' + fontFamily + '_onactivate();}'); } else if(lastMediaQuery.indexOf('mediaquery_') == 0){ eval('if(typeof(' + lastMediaQuery + '_ondeactivate) == \'function\'){' + lastMediaQuery + '_ondeactivate();}'); } jQuery(this).data('lastmediaquery', fontFamily); } } }); }); jQuery(window).bind('load resize', function(){ jQuery('.wglExpandToHeighestChild').each(function(index){ var currentElement = jQuery(this); var maxHeight = 0; currentElement.children('*').each(function(index){ if(jQuery(this).outerHeight(true) > maxHeight){ maxHeight = jQuery(this).outerHeight(true); } }); currentElement.css('height', String(maxHeight) + 'px'); }); jQuery('.wglAdjustHeightMax').each(function(index){ var currentElement = jQuery(this); var offsetLeft = 0; var maxHeight = 0; var adjust = true; var positionCol = 0; var childsToAdapt = new Array(); var numberChilds = 0; currentElement.children('*').each(function(index){ var className = jQuery(this).attr('class') || ''; if(className.toLowerCase().indexOf('clear') == -1 && className.toLowerCase().indexOf('editor') == -1){ numberChilds++; } }); currentElement.children('*').each(function(index){ var className = jQuery(this).attr('class') || ''; if(className.toLowerCase().indexOf('clear') == -1 && className.toLowerCase().indexOf('editor') == -1){ if(jQuery(this).data('wHasSetHeightToAjustHeightMax') == '1'){ jQuery(this).css({'height' : ''}); } offsetLeft = jQuery(this).get(0).offsetLeft - jQuery(this).get(0).parentNode.offsetLeft; if(index > 0 && offsetLeft == 0){ if(positionCol == 1){ childsToAdapt = new Array(); maxHeight = 0; } positionCol = 0; } positionCol++; if(numberChilds - index == 1){ maxHeight = jQuery(this).outerHeight() > maxHeight ? jQuery(this).outerHeight() : maxHeight; childsToAdapt.push(jQuery(this)); } //console.log(index + ', ' + positionCol + ', ' + numberChilds + ', ' + index + ', ' + childsToAdapt.length); //console.log(maxHeight); if(childsToAdapt.length > 1 && (index > 0 && positionCol == 1 || numberChilds - index == 1)){ for(i = 0; i < childsToAdapt.length; i++){ childToAdapt = childsToAdapt[i]; var className = childToAdapt.attr('class') || ''; if(className.toLowerCase().indexOf('clear') == -1 && className.toLowerCase().indexOf('editor') == -1 ){ childToAdapt.css({'height' : maxHeight}); childToAdapt.data('wHasSetHeightToAjustHeightMax', '1'); } } childsToAdapt = new Array(); maxHeight = 0; } maxHeight = jQuery(this).outerHeight() > maxHeight ? jQuery(this).outerHeight() : maxHeight; childsToAdapt.push(jQuery(this)); } }); }); }); jQuery('.wglAddScrollTop').each(function(index){ var currentElement = jQuery(this); if(currentElement.context.tagName.toLowerCase() == 'body'){ currentElement.append('