text: // Licensed under the Apache License, Version 2.0 (the "License"); you may not
  // use this file except in compliance with the License. You may obtain a copy of
  // the License at
  //
  //   http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  // License for the specific language governing permissions and limitations under
  // the License.
  
  
  // This file creates a set of helper functions that will be loaded for all html
  // templates. These functions should be self contained and not rely on any
  // external dependencies as they are loaded prior to the application. We may
  // want to change this later, but for now this should be thought of as a
  // "purely functional" helper system.
  
  import constants from "./constants";
  import utils from "./core/utils";
  import moment from "moment";
  import _ from 'lodash';
  
  var Helpers = {};
  
  Helpers.removeSpecialCharacters = utils.removeSpecialCharacters;
  
  Helpers.safeURL = utils.safeURLName;
  
  Helpers.imageUrl = function (path) {
    // TODO: add dynamic path for different deploy targets
    return path;
  };
  
  Helpers.getDocUrl = function (key) {
    return (_.has(constants.DOC_URLS, key)) ? constants.DOC_URLS[key] : '#';
  };
  
  // File size pretty printing, taken from futon.format.js
  Helpers.formatSize = function (size, decimals = 1) {
      var jump = 512;
      if (size < jump) return size + " bytes";
      var units = ["KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
      var i = 0;
      while (size >= jump && i < units.length) {
        i += 1;
        size /= 1024;
      }
      return size.toFixed(decimals) + ' ' + units[i - 1];
    };
  
  Helpers.formatDate = function (timestamp) {
    return moment(timestamp, 'X').format('MMM Do, h:mm:ss a');
  };
  Helpers.getDateFromNow = function (timestamp) {
    return moment(timestamp, 'X').fromNow();
  };
  
  Helpers.escapeJQuerySelector = function (selector) {
    return selector && selector.replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\$&");
  };
  
  /**
   * Determine if the current application is running on IE10 or IE11
   * @returns {boolean} True if on IE10 or IE11. Otherwise false.
   */
  Helpers.isIE1X = function() {
      return document.documentMode == 11 || document.documentMode == 10;
  };
  
  export default Helpers;
  