custom-javascript.js 4.79 KB
// Add your custom JS here.
import jquery from 'jquery';
import LazyLoad from "vanilla-lazyload";
import DataTable from 'datatables.net-dt';


//import "./_menu_mobile";
import "./_search";
import "./_header_menu";
import "./_side_menu";
import "./_image_captionation";
import "./_carousels";
import "./_post-list-load-more";





var myLazyLoad = new LazyLoad();

window.tz_checkVisible = function(elm, evalType , offset, heightBuffer) {
    evalType = evalType || "visible";

    var vpH = jQuery(window).height(), // Viewport Height
        st = jQuery(window).scrollTop(), // Scroll Top
        y = jQuery(elm).offset().top + offset,
        elementHeight = jQuery(elm).height();

        if (heightBuffer) {
            elementHeight += heightBuffer;
        }

    if (evalType === "visible") return ((y < (vpH + st)) && (y > (st - elementHeight)));
    if (evalType === "above") return ((y < (vpH + st)));
};

jQuery(document).ready(function($) {


  
    trim_text();
    $('#relevant-resources').dataTable( {
        info: false,
        ordering: false,
         paging: true,
         bLengthChange: false,
         bFilter: false,
        pagingType: "numbers",
        pageLength: 10
    } );


    $('#relevant-resources').on( 'page.dt', function () {    
        $('html, body, #page').animate({
            scrollTop: $("#relevant-resources").offset().top - 250
        }, 100);
    });


    function trim_text(){
    if ($(window).width() < 960) {
        $( ".search-result .entry-summary, .content p" ).each(function() {
          var yourString = $(this).text();
          var maxLength = 160;
          if (yourString.length > maxLength) {
            var trimmedString = yourString.substr(0, maxLength);
            trimmedString = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(" ")));
            $(this).text(trimmedString + "...");
          }
        });
      }
    }



    (function() {
        var origOpen = XMLHttpRequest.prototype.open;
        XMLHttpRequest.prototype.open = function(method, url) {
            this.addEventListener('load', function() {
                if(url.includes('search')){
                    setTimeout(function(){
                        $('html, body, #page').animate({
                            scrollTop: $("#search-wrapper").offset().top - 250
                        }, 100);
                        myLazyLoad.update();
                        trim_text();
                    }, 100);
                }
            });
            this.addEventListener('error', function() {
            });
            origOpen.apply(this, arguments);
        };
    })();


    $(document).on("change",' #top-news-select  input[type="radio"][name="_sft_category[]"]', function(e){
      if (this.value == 'news') {
        $('form input[type="radio"][name="_sft_category[]"][value="news"]').attr('checked', 'checked').trigger('change');
        $('form input[type="radio"][name="_sft_category[]"][value="events"]').removeAttr('checked');
        myLazyLoad.update();
      }
      else if (this.value == 'events') {
        $('form input[type="radio"][name="_sft_category[]"][value="events"]').attr('checked', 'checked').trigger('change');
        $('form input[type="radio"][name="_sft_category[]"][value="news"]').removeAttr('checked');
        myLazyLoad.update();
      }
    });

});




 
document.addEventListener( 'wpcf7mailsent', function( event ) {
    jQuery('.appArea.responsive').hide();
}, true );



function onClassChange(element, callback) {
    const observer = new MutationObserver((mutations) => {
      mutations.forEach((mutation) => {
        if (
          mutation.type === 'attributes' &&
          mutation.attributeName === 'class'
        ) {
          callback(mutation.target);
        }
      });
    });
    observer.observe(element, { attributes: true });
    return observer.disconnect;
  }

  (function ( $ ) {
    "use strict";

    $(document).on("sf:init", ".searchandfilter", function(){
      var datepick1 = $(this).find("[name='_sf_post_date[]']")[0];
      var datepick2 = $(this).find("[name='_sf_post_date[]']")[1];
      
      jQuery(datepick1).datepicker( "destroy" );
      jQuery(datepick1).datepicker({
          dateFormat: 'dd/mm/yy',
          changeMonth: true,
          changeYear: true,
          maxDate: '0',
          onSelect: function(date) {
            console.log(date);
            jQuery( datepick2).datepicker( "option", "minDate", date );
          }
      });
      
      //jQuery(datepick2).datepicker( "destroy" );
      // jQuery(datepick2).datepicker({
      //     dateFormat: 'dd/mm/yy',
      //     changeMonth: true,
      //     changeYear: true,
      //     maxDate: '0',
      //     onSelect: function(date) {
      //       jQuery( datepick1).datepicker( "option", "maxDate", date );
      //     }
      // });

});
}(jQuery));