1jQuery(document).ready(function() {
2    if (JSINFO.ACT === "admin") {return;}
3    jQuery('.plugin_caption_figure').each(function(i,e) {
4        let figureElem = jQuery(this).find("img").first();
5        let figureCaptionElem = jQuery(this).find("figcaption").first();
6
7        getImageSize(figureElem, function(width, height){
8            figureElemWidth = width;
9            if (figureElem.attr("width") !== 0 && figureElem.attr("width") !== undefined && figureElem.attr("width") !== false) {
10                figureElemWidth = figureElem.attr('width');
11            }
12
13            let figureClassList = figureElem.attr('class').split(/\s+/);
14            jQuery(figureClassList).each(function(index){
15                switch(figureClassList[index]) {
16                    case 'medialeft':
17                    figureCaptionElem.addClass("medialeft");
18                    figureCaptionElem.css("width", figureElemWidth);
19                    break;
20                    case 'mediaright':
21                    figureCaptionElem.addClass("mediaright");
22                    figureCaptionElem.css("width", figureElemWidth);
23                    break;
24                }
25            });
26        });
27    });
28});
29
30function getImageSize(img, callback){
31    img = jQuery(img);
32
33    var wait = setInterval(function(){
34        var w = img.width(),
35        h = img.height();
36
37        if(w && h){
38            done(w, h);
39        }
40    }, 0);
41
42    var onLoad;
43    img.on('load', onLoad = function(){
44        done(img.width(), img.height());
45    });
46
47
48    var isDone = false;
49    function done(){
50        if(isDone){
51            return;
52        }
53        isDone = true;
54
55        clearInterval(wait);
56        img.off('load', onLoad);
57
58        callback.apply(this, arguments);
59    }
60}
61