templates/document/includes/footer_scripts.html.twig line 1

Open in your IDE?
  1.   
  2.     <script src="{{ constant('SITE_TEMPLATES_PATH') ~ '/' ~ siteConfig.getTemplate }}/js/jquery-3.6.0.min.js"></script>
  3.     <script src="{{ constant('SITE_TEMPLATES_PATH') ~ '/' ~ siteConfig.getTemplate }}/js/bootstrap.bundle.min.js"></script>
  4.     <script src="{{ constant('SITE_TEMPLATES_PATH') ~ '/' ~ siteConfig.getTemplate }}/js/jquery-scrollto.js"></script>
  5.     <script src="{{ constant('SITE_TEMPLATES_PATH') ~ '/' ~ siteConfig.getTemplate }}/js/jquery.inview.min.js"></script>
  6.     <script src="{{ constant('SITE_TEMPLATES_PATH') ~ '/' ~ siteConfig.getTemplate }}/js/jquery.fancybox.min.js"></script>
  7.     {% if not editmode %}
  8.     <script src="{{ constant('SITE_TEMPLATES_PATH') ~ '/' ~ siteConfig.getTemplate }}/js/ccm.js"></script>
  9.     {% endif %}
  10.     <script>
  11.     
  12.     $().ready(function() {
  13.     
  14.       // get enviroment dimensions
  15.       var viewportHeight  = $(window).height();
  16.       var viewportWidth   = $(window).width();
  17.       var displayHeight   = $('html').height();
  18.       var scrollTop       = $(window).scrollTop();     
  19.       // re-adjust on resize ...  
  20.       $(window).resize(function() 
  21.       {
  22.           var viewportHeight  = $(window).height();
  23.           var viewportWidth   = $('html').width();   
  24.           $('.fixed-banner').css('height', viewportHeight+'px');        
  25.       });
  26.       
  27.       // set cover height
  28.       $('.fixed-banner').css('height', viewportHeight+'px');
  29.       
  30.       // flash transition
  31.       $('body').css('opacity', 0).animate({opacity: 1}, 800);
  32.       // navbar
  33.       $('#nav-icon').click(function(){
  34.             $(this).toggleClass('open');
  35.         });
  36.       
  37.       $('.navbar .nav-link').click(function() {
  38.           $('.navbar-collapse').removeClass('show');
  39.       });
  40.       
  41.       $(window).scroll(function() {
  42.           var v = $(window).scrollTop();
  43.           if ( v > viewportHeight )
  44.           {
  45.               $('.navbar .nav-link, #nav-icon,.site-name,.dropdown-item').addClass('inverted');
  46.               $('.navbar,.dropdown-menu').addClass('navbar-inverted');
  47.           }
  48.           else
  49.           {
  50.               $('.navbar .nav-link, #nav-icon,.site-name,.dropdown-item').removeClass('inverted');
  51.               $('.navbar,.dropdown-menu').removeClass('navbar-inverted');
  52.           }          
  53.       });
  54.       // background images
  55.       $('.section-bg-image').each(function() {
  56.           var img = $(this).data('src');
  57.           $(this).css("background-image", "url('" + img + "')");
  58.       });
  59.       // scroll to
  60.       $('a[href*=\\#]').bind("click", function(event) {
  61.               event.preventDefault();
  62.               var target = $(this).attr("href");  
  63.           
  64.           if (!target.match(/slider(.*)/i)) { 
  65.                   $('html,body').animate({
  66.                        scrollTop: $(target).offset().top
  67.                   }, 2000);
  68.           }       
  69.       });
  70.       // animate on scroll
  71.       $('.scroll-animated').bind('inview', function(event, visible) {
  72.           if ( visible ) { 
  73.               $(this).animate({
  74.                   bottom: '1rem',
  75.                   opacity: 1
  76.               }, 600, 'swing');
  77.           }
  78.       });
  79.       
  80.       // init animated
  81.       $('.animated').each(function() {
  82.           var a = $(this).data('animation');
  83.           $(this).addClass(a);
  84.       });
  85.       
  86.       // animate
  87.       $('.animated').bind('inview', function(event, visible) {
  88.           if ( visible ) { 
  89.               var a = $(this).data('animation'); 
  90.               var d = ($(this).data('delay') != undefined && $(this).data('delay') != '') ? parseInt($(this).data('delay')) : 100;
  91.               var t = ($(this).data('timing') != undefined && $(this).data('timing') != '') ? parseInt($(this).data('timing')) : 500;
  92.               switch(a) {
  93.                   case 'animate__fadeIn' :
  94.                       $(this).delay(d).animate({
  95.                           opacity: 1
  96.                       }, t);
  97.                       break;
  98.                   case 'animate__slideInUp' :
  99.                       $(this).delay(d).animate({
  100.                           top: '0px',
  101.                           opacity: 1
  102.                       }, t);   
  103.                       break; 
  104.                   case 'animate__slideInLeft' :
  105.                       $(this).delay(d).animate({
  106.                           left: '0px',
  107.                           opacity: 1
  108.                       }, t);   
  109.                       break; 
  110.                   case 'animate__slideInRight' :
  111.                       $(this).delay(d).animate({
  112.                           right: '0px',
  113.                           opacity: 1
  114.                       }, t);   
  115.                       break; 
  116.               };
  117.           }
  118.       });
  119.       
  120.       // calendar 
  121.       $('.calendar-toggler').click(function() {
  122.           e = $(this).data('item');
  123.           $(this).hide();
  124.           $(e).slideToggle();
  125.       });
  126.       
  127.       $('footer').bind('inview', function(event, visible) {
  128.           if ( visible ) { 
  129.               $('.scroll-top').animate({
  130.                   bottom: '2rem',
  131.                   opacity: 1
  132.               }, 200, 'swing');
  133.           }
  134.       });
  135.       
  136.       // animate animated
  137.       $('.animate__animated').bind('inview', function(event, visible) {
  138.           var a = $(this).data('fx');
  139.           $(this).addClass(a);
  140.           $(this).animate({opacity:1},800);          
  141.       });
  142.       
  143.       // submit form data
  144.       $('.submitAjaxForm').click(function() { 
  145.           var formId = $(this).data('form');
  146.           var formType = $(this).data('type');
  147.           var formFields = $('#'+formId).find('.ajax-form-field').toArray();
  148.           var formQueryString = {}; 
  149.           // prefill fqs
  150.           formQueryString['locale'] = '{{ locale }}';
  151.           // auto fill input + textarea values
  152.           for (i = 0; i < formFields.length; i += 1) {
  153.               console.log('Parse element ' + formFields[i].getAttribute('name') + ' -> value: ' + formFields[i].value);
  154.               input_id = formFields[i].getAttribute('name');
  155.               input_value = formFields[i].value;              
  156.               formQueryString[input_id] = input_value;      
  157.           }
  158.           // loading ...
  159.           var b = $(this).html();
  160.           $(this).prepend('<div class="spinner-border" role="status"><span class="visually-hidden">Loading...</span></div>');
  161.           // send data
  162.           console.log('Calling end point: ' + formType);
  163.           $.ajax({
  164.               url : formType,
  165.               type : "POST",
  166.               data : formQueryString,
  167.               dataType : "text",
  168.               success : function(data, jqXHR) {                  
  169.                   // console.log('Response: ' + data);                  
  170.                   var r = data;
  171.                   var s = JSON.parse(r);                 
  172.                   console.log('Json: ' + s);                                   
  173.                   $('#'+formId).find('.ajax-message').remove();
  174.                   $('#'+formId).append('<div class="ajax-message"><div class="spinner-border" role="status"><span class="visually-hidden">Loading...</span></div></div>');
  175.                   if (s.code != '200') {
  176.                       $('#'+formId + ' .ajax-message').delay(500).html(s.message).fadeIn();
  177.                       $('.spinner-border').remove();
  178.                   } else {
  179.                       $('#'+formId).html('<div class="alert alert-success">' + s.message + '</div>'); 
  180.                   }            
  181.               },
  182.               error : function(XMLHttpRequest, textStatus, errorThrown) {
  183.                   $('#'+formId).html('Es tut uns leid, es ist ein Fehler aufgetreten.');
  184.               }
  185.           });       
  186.       });
  187.       
  188.       // ajax mediathek update
  189.       var om = 0;   // last offset
  190.       $('#loadMediathekData').bind('inview', function(event, visible) {
  191.           var t = $(this).data('target');
  192.           var o = parseInt($(this).data('offset'));
  193.           if (typeof o==='number' && om < o)
  194.           {                             
  195.               $.ajax({
  196.                   url : '/ajax/mediathek/load',
  197.                   type : "POST",
  198.                   data : { offset: o },
  199.                   dataType : "text",
  200.                   success : function(data, jqXHR) {                  
  201.                       console.log('Response: ' + data);                  
  202.                       var r = data;
  203.                       var s = JSON.parse(r);                 
  204.                       if (s.html!='') {
  205.                           $(t).append(s.html);
  206.                           $('#loadMediathekData').data('offset', s.offset);
  207.                           om = o;       
  208.                       } else {
  209.                           $('#loadMediathekData').data('offset', -1);
  210.                       }            
  211.                   },
  212.                   error : function(XMLHttpRequest, textStatus, errorThrown) {
  213.                       console.log('Es ist ein Fehler aufgetreten.');
  214.                   }
  215.               });                    
  216.           }           
  217.       });
  218.       
  219.       // ajax newsblog update
  220.       var on = 0;   // last offset
  221.       $('#loadNewsblogData').bind('inview', function(event, visible) {
  222.           var t = $(this).data('target');
  223.           var o = parseInt($(this).data('offset'));
  224.           if (typeof o==='number' && on < o)
  225.           {                             
  226.               $.ajax({
  227.                   url : '/ajax/newsblog/load',
  228.                   type : "POST",
  229.                   data : { offset: o },
  230.                   dataType : "text",
  231.                   success : function(data, jqXHR) {                  
  232.                       // console.log('Response: ' + data);                  
  233.                       var r = data;
  234.                       var s = JSON.parse(r);                 
  235.                       if (s.html!='') {
  236.                           $(t).append(s.html);
  237.                           $('#loadNewsblogData').data('offset', s.offset);
  238.                           on = o;       
  239.                       } else {
  240.                           $('#loadNewsblogData').data('offset', -1);
  241.                       }            
  242.                   },
  243.                   error : function(XMLHttpRequest, textStatus, errorThrown) {
  244.                       console.log('Es ist ein Fehler aufgetreten.');
  245.                   }
  246.               });                    
  247.           }           
  248.       });
  249.       
  250.       // navbar search
  251.       $('.openSearchform').click(function() {
  252.           var f = $(this).data('toggle');
  253.           console.log('toggle: ' + f);
  254.           $(this).hide();
  255.           $(f).show().animate({width:'150px'}, 300);
  256.       });
  257.       
  258.       {% if initWidgets is defined %}      
  259.       $(window).on('load resize', function() {         
  260.           // init {{ initWidgets }} widgets
  261.           var widgetInitOffset = (viewportWidth<1400) ? 20 : 40;
  262.           var widgetOffset = (viewportWidth<1400) ? 30 : 40;
  263.           {% if siteConfig.getWidgetShowPreviewImage=='1' %}
  264.           var widgetHeight = (viewportWidth<1400) ? 90 : 380;
  265.           {% else %}
  266.           var widgetHeight = (viewportWidth<1400) ? 90 : 120;
  267.           {% endif %}
  268.           var widgetDelay = 300;
  269.           $('.widget').each(function(index) {
  270.               var w=index;
  271.               var y=(w==0) ? widgetInitOffset : widgetOffset;
  272.               var h=$(this).height();
  273.               if (w != undefined && w > -1)
  274.               {
  275.                   $(this)
  276.                       .animate({'opacity': 1}, widgetDelay*3)
  277.                       .animate({'bottom': (w*widgetHeight + (w+1*y)) + 'px'}, widgetDelay*(w+1));                  
  278.                       console.log('Placed widget h=' + h + ' ' + w + ' to position ' + widgetOffset*(w+1) + 'px');             
  279.               }      
  280.           });         
  281.       });
  282.       {% endif %}
  283.       
  284.       $(window).on('scroll', function() {
  285.           var b=0;
  286.           var y=$(window).scrollTop();
  287.           if (viewportWidth>1199)
  288.           {
  289.               if (b<y)
  290.               {
  291.                   $('.widget').animate({
  292.                       'right': '-'+y+'px'
  293.                   }, 10);
  294.               }
  295.               else
  296.               {
  297.                   if (y==0)
  298.                       y=30;
  299.                   $('.widget').animate({
  300.                       'right': y+'px'
  301.                   }, 10);
  302.               }              
  303.               b=y;
  304.           }         
  305.       });
  306.     });
  307.     
  308.     </script>
  309.     
  310.     <script language="javascript">
  311.       function setCookie(cname, cvalue, exdays) {
  312.         var d = new Date();
  313.         d.setTime(d.getTime() + (exdays*24*60*60*1000));
  314.         var expires = "expires="+ d.toUTCString();
  315.         document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
  316.       }
  317.       
  318.       function getCookie(c_name) {
  319.         var i, x, y, ARRcookies = document.cookie.split(";");
  320.         for (i = 0; i < ARRcookies.length; i++) {
  321.           x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
  322.           y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
  323.           x = x.replace(/^\s+|\s+$/g, "");
  324.           if (x == c_name) {
  325.               return unescape(y);
  326.           }
  327.         }
  328.       }
  329.       function validateEmail(email)
  330.       {
  331.           // var mailformat = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
  332.           if( email.match( /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ ) )         
  333.               return true;
  334.           else
  335.               return false;
  336.       }
  337.     
  338.     </script>