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