Project

General

Profile

1
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(window.jQuery||window.Zepto)}(function(s){"use strict";var o,r=[],u={},c=/^([a-z]:)?\/\//i,f=/\.\w+$/;u.init=function(t){return t=s.extend({ping:null,dimensions:"preserve",glue:"_",skipExtensions:["svg"]},t),this.each(function(){var i=s(this);if(i.is("img")&&!i.hasClass("dense-image")){i.addClass("dense-image dense-loading");var a,d=u.getImageAttribute.call(this),e=i.attr("src"),n=!1;if(!d){if(!e||1===o||-1!==s.inArray(e.split(".").pop().split(/[\?\#]/).shift(),t.skipExtensions))return void i.removeClass("dense-image dense-loading");d=e.replace(f,function(e){var n=i.attr("data-dense-cap")?i.attr("data-dense-cap"):o;return t.glue+n+"x"+e}),n=!1!==t.ping&&-1===s.inArray(d,r)&&(!0===t.ping||!c.test(d)||0===d.indexOf("//"+document.domain)||0===d.indexOf(document.location.protocol+"//"+document.domain))}a=function(){var e=function(){i.removeClass("dense-loading").addClass("dense-ready").trigger("denseRetinaReady.dense")};i.attr("src",d),"update"===t.dimensions?i.dense("updateDimensions").one("denseDimensionChanged",e):("remove"===t.dimensions&&i.removeAttr("width height"),e())},n?s.ajax({url:d,type:"HEAD"}).done(function(e,n,i){var t=i.getResponseHeader("Content-type");t&&0!==t.indexOf("image/")||(r.push(d),a())}):a()}}),this},u.updateDimensions=function(){return this.each(function(){var e,n=s(this),i=n.attr("src");i&&((e=new Image).src=i,s(e).on("load.dense",function(){n.attr({width:e.width,height:e.height}).trigger("denseDimensionChanged.dense")}))})},u.devicePixelRatio=function(){var t=1;return"undefined"!==s.type(window.devicePixelRatio)?t=window.devicePixelRatio:"undefined"!==s.type(window.matchMedia)&&s.each([1.3,2,3,4,5,6],function(e,n){var i=["(-webkit-min-device-pixel-ratio: "+n+")","(min-resolution: "+Math.floor(96*n)+"dpi)","(min-resolution: "+n+"dppx)"].join(",");if(!window.matchMedia(i).matches)return!1;t=n}),Math.ceil(t)},u.getImageAttribute=function(){for(var e,n=s(this).eq(0),i=!1,t=1;t<=o;t++)(e=n.attr("data-"+t+"x"))&&(i=e);return i},o=u.devicePixelRatio(),s.fn.dense=function(e,n){return"string"===s.type(e)&&"function"===s.type(u[e])||(n=e,e="init"),u[e].call(this,n)},s(function(){s("body.dense-retina img").dense()})});
(6-6/27)