Template:Tongji China/js/custom JS

/*global jQuery:false */ jQuery(document).ready(function($) { "use strict";


//add some elements with animate effect

$(".big-cta").hover( function () { $('.cta a').addClass("animated shake"); }, function () { $('.cta a').removeClass("animated shake"); } ); $(".box").hover( function () { $(this).find('.icon').addClass("animated fadeInDown"); $(this).find('p').addClass("animated fadeInUp"); }, function () { $(this).find('.icon').removeClass("animated fadeInDown"); $(this).find('p').removeClass("animated fadeInUp"); } );


$('.accordion').on('show', function (e) {

$(e.target).prev('.accordion-heading').find('.accordion-toggle').addClass('active'); $(e.target).prev('.accordion-heading').find('.accordion-toggle i').removeClass('icon-plus'); $(e.target).prev('.accordion-heading').find('.accordion-toggle i').addClass('icon-minus'); });

$('.accordion').on('hide', function (e) { $(this).find('.accordion-toggle').not($(e.target)).removeClass('active'); $(this).find('.accordion-toggle i').not($(e.target)).removeClass('icon-minus'); $(this).find('.accordion-toggle i').not($(e.target)).addClass('icon-plus'); });


//register/login form $(function () {

   $('.button-checkbox').each(function () {
       // Settings
       var $widget = $(this),
           $button = $widget.find('button'),
           $checkbox = $widget.find('input:checkbox'),
           color = $button.data('color'),
           settings = {
               on: {
                   icon: 'glyphicon glyphicon-check'
               },
               off: {
                   icon: 'glyphicon glyphicon-unchecked'
               }
           };
       // Event Handlers
       $button.on('click', function () {
           $checkbox.prop('checked', !$checkbox.is(':checked'));
           $checkbox.triggerHandler('change');
           updateDisplay();
       });
       $checkbox.on('change', function () {
           updateDisplay();
       });
       // Actions
       function updateDisplay() {
           var isChecked = $checkbox.is(':checked');
           // Set the button's state
           $button.data('state', (isChecked) ? "on" : "off");
           // Set the button's icon
           $button.find('.state-icon')
               .removeClass()
               .addClass('state-icon ' + settings[$button.data('state')].icon);
           // Update the button's color
           if (isChecked) {
               $button
                   .removeClass('btn-default')
                   .addClass('btn-' + color + ' active');
           }
           else {
               $button
                   .removeClass('btn-' + color + ' active')
                   .addClass('btn-default');
           }
       }
       // Initialization
       function init() {
           updateDisplay();
           // Inject the icon if applicable
           if ($button.find('.state-icon').length == 0) {
               $button.prepend(' ');
           }
       }
       init();
   });

});


// tooltip $('.social-network li a, .options_box .color a').tooltip();


//stats jQuery('.appear').appear(); var runOnce = true; jQuery(".stats").on("appear", function(data) { var counters = {}; var i = 0; if (runOnce){ jQuery('.number').each(function(){ counters[this.id] = $(this).html(); i++; }); jQuery.each( counters, function( i, val ) { //console.log(i + ' - ' +val); jQuery({countNum: 0}).animate({countNum: val}, { duration: 3000, easing:'linear', step: function() { jQuery('#'+i).text(Math.floor(this.countNum)); } }); }); runOnce = false; } });

//parallax

       if ($('.parallax').length)
       {

$(window).stellar({ responsive:true,

               scrollProperty: 'scroll',
               parallaxElements: false,
               horizontalScrolling: false,
               horizontalOffset: 0,
               verticalOffset: 0
           });
       }


//scroll to top $(window).scroll(function(){ if ($(this).scrollTop() > 100) { $('.scrollup').fadeIn(); } else { $('.scrollup').fadeOut(); } }); $('.scrollup').click(function(){ $("html, body").animate({ scrollTop: 0 }, 1000); return false; });



//search new UISearch( document.getElementById( 'sb-search' ) );

//cube portfolio var gridContainer = $('#grid-container'),

       filtersContainer = $('#filters-container');

// init cubeportfolio

   gridContainer.cubeportfolio({
       defaultFilter: '*',
       animationType: 'flipOutDelay',
       gapHorizontal: 45,
       gapVertical: 30,
       gridAdjustment: 'responsive',
       caption: 'overlayBottomReveal',
       displayType: 'lazyLoading',
       displayTypeSpeed: 100,
       // lightbox
       lightboxDelegate: '.cbp-lightbox',
       lightboxGallery: true,
       lightboxTitleSrc: 'data-title',
       lightboxShowCounter: true

});

   // add listener for filters click
   filtersContainer.on('click', '.cbp-filter-item', function (e) {
       var me = $(this), wrap;
       // get cubeportfolio data and check if is still animating (reposition) the items.
       if ( !$.data(gridContainer[0], 'cubeportfolio').isAnimating ) {
           if ( filtersContainer.hasClass('cbp-l-filters-dropdown') ) {
               wrap = $('.cbp-l-filters-dropdownWrap');
               wrap.find('.cbp-filter-item').removeClass('cbp-filter-item-active');
               wrap.find('.cbp-l-filters-dropdownHeader').text(me.text());
               me.addClass('cbp-filter-item-active');
           } else {
               me.addClass('cbp-filter-item-active').siblings().removeClass('cbp-filter-item-active');
           }
       }
       // filter the items
       gridContainer.cubeportfolio('filter', me.data('filter'), function () {});
   });
   // activate counters
   gridContainer.cubeportfolio('showCounter', filtersContainer.find('.cbp-filter-item'));


   // add listener for load more click
   $('.cbp-l-loadMore-button-link').on('click', function(e) {
       e.preventDefault();
       var clicks, me = $(this), oMsg;
       if (me.hasClass('cbp-l-loadMore-button-stop')) return;
       // get the number of times the loadMore link has been clicked
       clicks = $.data(this, 'numberOfClicks');
       clicks = (clicks)? ++clicks : 1;
       $.data(this, 'numberOfClicks', clicks);
       // set loading status
       oMsg = me.text();
       me.text('LOADING...');
       // perform ajax request
       $.ajax({
           url: me.attr('href'),
           type: 'GET',
           dataType: 'HTML'
       })
       .done( function (result) {
           var items, itemsNext;
           // find current container
           items = $(result).filter( function () {
               return $(this).is('div' + '.cbp-loadMore-block' + clicks);
           });
           gridContainer.cubeportfolio('appendItems', items.html(),
                function () {
                   // put the original message back
                   me.text(oMsg);
                   // check if we have more works
                   itemsNext = $(result).filter( function () {
                       return $(this).is('div' + '.cbp-loadMore-block' + (clicks + 1));
                   });
                   if (itemsNext.length === 0) {
                       me.text('NO MORE WORKS');
                       me.addClass('cbp-l-loadMore-button-stop');
                   }
                });
       })
       .fail(function() {
           // error
       });
   });

});