/*! Imageloader - v0.1.3 - 2013-02-07 * https://github.com/alanclarke/imageloader * Copyright (c) 2013 alan clarke; Licensed MIT, GPL */ (function($) { function Img(src, complete){ var s = this; s.img = new Image(); s.img.src = src; if(s.img.complete){ return !complete || complete(null, s.img); } else { s.img.onload = function() { if (s.img.width < 1) { return !complete || complete(true, s.img); } else { return !complete || complete(null, s.img); } }; s.img.onerror = function() { return !complete || complete(true, s.img); }; } } function ImgLoader(opts){ var s = this; s.opts = opts; s.next = 0; var length = typeof s.opts.async === "number"?s.opts.async:(s.opts.async?s.opts.images.length:1); for (var i = 0;i < length; i++) { s.loadImg(s.opts.images[i], i); } } ImgLoader.prototype.loadImg = function(img, i){ var s = this; s.next++; setTimeout(function() { if(s.opts.start) { s.opts.start(img, i); } new Img(img.src, function(err, img){ s.complete(err, img, i); }); }, 1); }; ImgLoader.prototype.complete = function(err, img, i){ var s = this; if(s.opts.complete) { s.opts.complete(err, img, i); } if (!s.opts.async || typeof s.opts.async === "number") { if (s.next