text: /*! animateCSS - v1.2.1 - 2015-10-18
  * https://github.com/craigmdennis/animateCSS
  * Copyright (c) 2015 Craig Dennis; Licensed MIT */
  
  (function() {
    'use strict';
    var $;
  
    $ = jQuery;
  
    $.fn.extend({
      animateCSS: function(effect, options) {
        var addClass, animate, callback, complete, init, removeClass, setDuration, settings, transitionEnd, unhide;
        settings = {
          effect: effect,
          delay: 0,
          animationClass: 'animated',
          infinite: false,
          callback: options,
          duration: 1000,
          debug: false
        };
        transitionEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
        settings = $.extend(settings, options);
        init = function(element) {
          return animate(element);
        };
        animate = function(element) {
          if (settings.infinite === true) {
            settings.animationClass += ' infinite';
          }
          return setTimeout(function() {
            setDuration(element);
            unhide(element);
            addClass(element);
            return complete(element);
          }, settings.delay);
        };
        addClass = function(element) {
          return element.addClass(settings.effect + ' ' + settings.animationClass + ' ');
        };
        unhide = function(element) {
          if (element.css('visibility') === 'hidden') {
            element.css('visibility', 'visible');
          }
          if (element.is(':hidden')) {
            return element.show();
          }
        };
        removeClass = function(element) {
          return element.removeClass(settings.effect + ' ' + settings.animationClass);
        };
        setDuration = function(element) {
          return element.css({
            '-webkit-animation-duration': settings.duration + 'ms',
            '-moz-animation-duration': settings.duration + 'ms',
            '-o-animation-duration': settings.duration + 'ms',
            'animation-duration': settings.duration + 'ms'
          });
        };
        callback = function(element) {
          if (settings.infinite === false) {
            removeClass(element);
          }
          if (typeof settings.callback === 'function') {
            return settings.callback.call(element);
          }
        };
        complete = function(element) {
          return element.one(transitionEnd, function(event) {
            event.stopPropagation();
            return callback(element);
          });
        };
        return this.each(function() {
          return init($(this));
        });
      }
    });
  
  }).call(this);
  