Вход Регистрация
Файл: concrete5.7.5.6/concrete/js/build/vendor/retinajs/retinajs.js
Строк: 174
<?php
(function() {
    var 
root = (typeof exports === 'undefined' window exports);
    var 
config = {
        
// An option to choose a suffix for 2x images
        
retinaImageSuffix '@2x',

        
// Ensure Content-Type is an image before trying to load @2x image
        // https://github.com/imulus/retinajs/pull/45)
        
check_mime_typetrue,

        
// Resize high-resolution images to original image's pixel dimensions
        // https://github.com/imulus/retinajs/issues/8
        
force_original_dimensionstrue
    
};

    function 
Retina() {}

    
root.Retina Retina;

    
Retina.configure = function(options) {
        if (
options === null) {
            
options = {};
        }

        for (var 
prop in options) {
            if (
options.hasOwnProperty(prop)) {
                
config[prop] = options[prop];
            }
        }
    };

    
Retina.init = function(context) {
        if (
context === null) {
            
context root;
        }

        var 
existing_onload context.onload || function(){};

        
context.onload = function() {
            var 
images document.getElementsByTagName('img'), retinaImages = [], iimage;
            for (
0images.length+= 1) {
                
image images[i];
                if (!!!
image.getAttributeNode('data-no-retina')) {
                    
retinaImages.push(new RetinaImage(image));
                }
            }
            
existing_onload();
        };
    };

    
Retina.isRetina = function(){
        var 
mediaQuery '(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)';

        if (
root.devicePixelRatio 1) {
            return 
true;
        }

        if (
root.matchMedia && root.matchMedia(mediaQuery).matches) {
            return 
true;
        }

        return 
false;
    };


    var 
regexMatch = /.w+$/;
    function 
suffixReplace (match) {
        return 
config.retinaImageSuffix match;
    }

    function 
RetinaImagePath(pathat_2x_path) {
        
this.path path || '';
        
this.perform_check false;
        if (
typeof at_2x_path !== 'undefined' && at_2x_path !== null) {
            
this.at_2x_path at_2x_path;
        }
    }

    
root.RetinaImagePath RetinaImagePath;

    
RetinaImagePath.confirmed_paths = [];

    
RetinaImagePath.prototype.is_external = function() {
        return !!(
this.path.match(/^https?:/i) && !this.path.match('//' document.domain) );
    };

    
RetinaImagePath.prototype.check_2x_variant = function(callback) {
        var 
httpthat this;
        if (
this.is_external()) {
            return 
callback(false);
        } else if (
this.at_2x_path === undefined) {
            
// Concrete5 change, if it's undefined we don't need to resolve it.
            
return callback(false);
        } else if (!
this.perform_check && typeof this.at_2x_path !== 'undefined' && this.at_2x_path !== null) {
            return 
callback(true);
        } else if (
this.at_2x_path in RetinaImagePath.confirmed_paths) {
            return 
callback(true);
        } else {
            
http = new XMLHttpRequest();
            
http.open('HEAD'this.at_2x_path);
            
http.onreadystatechange = function() {
                if (
http.readyState !== 4) {
                    return 
callback(false);
                }

                if (
http.status >= 200 && http.status <= 399) {
                    if (
config.check_mime_type) {
                        var 
type http.getResponseHeader('Content-Type');
                        if (
type === null || !type.match(/^image/i)) {
                            return 
callback(false);
                        }
                    }

                    
RetinaImagePath.confirmed_paths.push(that.at_2x_path);
                    return 
callback(true);
                } else {
                    return 
callback(false);
                }
            };
            
http.send();
        }
    };


    function 
RetinaImage(el) {
        
this.el el;
        
this.path = new RetinaImagePath(this.el.getAttribute('src'), this.el.getAttribute('data-at2x'));
        var 
that this;
        
this.path.check_2x_variant(function(hasVariant) {
            if (
hasVariant) {
                
that.swap();
            }
        });
    }

    
root.RetinaImage RetinaImage;

    
RetinaImage.prototype.swap = function(path) {
        if (
typeof path === 'undefined') {
            
path this.path.at_2x_path;
        }

        var 
that this;
        function 
load() {
            if (! 
that.el.complete) {
                
setTimeout(load5);
            } else {
                if (
config.force_original_dimensions) {
                    
that.el.setAttribute('width'that.el.offsetWidth);
                    
that.el.setAttribute('height'that.el.offsetHeight);
                }

                
that.el.setAttribute('src'path);
            }
        }
        
load();
    };


    if (
Retina.isRetina()) {
        
Retina.init(root);
    }
})();
?>
Онлайн: 0
Реклама