text: (function (global, factory) {
  	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  	typeof define === 'function' && define.amd ? define(factory) :
  	(global.retinajs = factory());
  }(this, (function () { 'use strict';
  
  var hasWindow = typeof window !== 'undefined';
  var environment = Math.round(hasWindow ? window.devicePixelRatio || 1 : 1);
  var srcReplace = /(\.[A-z]{3,4}\/?(\?.*)?)$/;
  var inlineReplace = /url\(('|")?([^)'"]+)('|")?\)/i;
  var selector = '[data-rjs]';
  var processedAttr = 'data-rjs-processed';
  function arrayify(object) {
    return Array.prototype.slice.call(object);
  }
  function chooseCap(cap) {
    var numericCap = parseInt(cap, 10);
    if (environment < numericCap) {
      return environment;
    } else {
      return numericCap;
    }
  }
  function forceOriginalDimensions(image) {
    if (!image.hasAttribute('data-no-resize')) {
      if (image.offsetWidth === 0 && image.offsetHeight === 0) {
        image.setAttribute('width', image.naturalWidth);
        image.setAttribute('height', image.naturalHeight);
      } else {
        image.setAttribute('width', image.offsetWidth);
        image.setAttribute('height', image.offsetHeight);
      }
    }
    return image;
  }
  function setSourceIfAvailable(image, retinaURL) {
    var imgType = image.nodeName.toLowerCase();
    var testImage = document.createElement('img');
    testImage.addEventListener('load', function () {
      if (imgType === 'img') {
        forceOriginalDimensions(image).setAttribute('src', retinaURL);
      } else {
        image.style.backgroundImage = 'url(' + retinaURL + ')';
      }
    });
    testImage.setAttribute('src', retinaURL);
    image.setAttribute(processedAttr, true);
  }
  function dynamicSwapImage(image, src) {
    var rjs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
    var cap = chooseCap(rjs);
    if (src && cap > 1) {
      var newSrc = src.replace(srcReplace, '@' + cap + 'x$1');
      setSourceIfAvailable(image, newSrc);
    }
  }
  function manualSwapImage(image, src, hdsrc) {
    if (environment > 1) {
      setSourceIfAvailable(image, hdsrc);
    }
  }
  function getImages(images) {
    if (!images) {
      return typeof document !== 'undefined' ? arrayify(document.querySelectorAll(selector)) : [];
    } else {
      return typeof images.forEach === 'function' ? images : arrayify(images);
    }
  }
  function cleanBgImg(img) {
    return img.style.backgroundImage.replace(inlineReplace, '$2');
  }
  function retina(images) {
    getImages(images).forEach(function (img) {
      if (!img.getAttribute(processedAttr)) {
        var isImg = img.nodeName.toLowerCase() === 'img';
        var src = isImg ? img.getAttribute('src') : cleanBgImg(img);
        var rjs = img.getAttribute('data-rjs');
        var rjsIsNumber = !isNaN(parseInt(rjs, 10));
        if (rjs === null) {
          return;
        }
        if (rjsIsNumber) {
          dynamicSwapImage(img, src, rjs);
        } else {
          manualSwapImage(img, src, rjs);
        }
      }
    });
  }
  if (hasWindow) {
    window.addEventListener('load', function () {
      retina();
    });
    window.retinajs = retina;
  }
  
  return retina;
  
  })));
  //# sourceMappingURL=retina.js.map