text: (function() {
    window.isArray = function(val) {
      return Object.prototype.toString.call(val) === '[object Array]';
    };
    window.isString = function(val) {
      return typeof val === 'string';
    };
  
    window.hasEvent = function(event) {
      return 'on'.concat(event) in window.document;
    };
  
    window.isOverallScroller = function(node) {
      return node === document.documentElement || node === document.body || node === window;
    };
  
    window.isFormElement = function(node) {
      var tagName = node.tagName;
      return tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA';
    };
  
    window.pageLoad = (function () {
      var loaded = false, cbs = [];
      window.addEventListener('load', function () {
        var i;
        loaded = true;
        if (cbs.length > 0) {
          for (i = 0; i < cbs.length; i++) {
            cbs[i]();
          }
        }
      });
      return {
        then: function(cb) {
          cb && (loaded ? cb() : (cbs.push(cb)));
        }
      };
    })();
  })();
  