jQuery.fn.onImagesLoaded = function(_cb, dbg) { 
  return this.each(function() {
    dbg = dbg || 0;

    var $imgs = (this.tagName.toLowerCase()==='img')?$(this):$('img',this),
        _cont = this,
            i = 0,
    _done=function() {
      if( typeof _cb === 'function' ) _cb(_cont);
    };

    if( $imgs.length ) {
      $imgs.each(function() {
        var _img = this,
        _checki=function(e) {
          if((_img.complete) // for opera <3
          || (_img.readyState=='complete'&&e.type=='readystatechange') )
          {
            if( ++i===$imgs.length ) _done();
          }
          else if( _img.readyState === undefined ) // dont for IE
          {
            $(_img).attr('src',$(_img).attr('src'));
          }
        }; // _checki

        $(_img).bind('load readystatechange', function(e){_checki(e);});
        _checki({type:'readystatechange'});
      });
    } else _done();
  });
};
