(function($, Lego){

var iM = Lego.block['i-metrika'] = function(p) { p.counter && iM.newCounter(p.counter) };

iM.counters = [];

// изначально, новые счётчики запоминаются для отложенного создания (когда будет Ya.Metrika)
iM.newCounter = function(counter) { iM.counters.push(counter) };

iM.callback = function(old) {
    return function(){
        // как только случился callback (т.е. есть Ya.Metrika), новые счётчики делаются сразу
        iM.newCounter = function(c) { window['yaCounter' + c] = new Ya.Metrika(c) };

        // делаем все отложенные счётчики
        var c; while(c = iM.counters.shift()) iM.newCounter(c);

        // запускаем старый callback, если он был
        old && old();
    }
};

!(window.Ya && Ya.Metrika) && $(function() {
    var d = document,
        s = d.createElement('script');
    s.type = 'text/javascript';
    s.src = '//mc.yandex.ru/metrika/watch.js';
    s.setAttribute('async', 'true');
    window.yandex_metrika_callback = iM.callback(window.yandex_metrika_callback);
    d.documentElement.firstChild.appendChild(s);
});

})(jQuery, window.Lego);
