(function(n){n.whenAll=function(t){if(t.length||(t=[].slice.call(t,0)),t&&t.length){var i=n.Deferred(),o=t.length,s=!1,h,e,r,u={},f={};return r=function(){o--,o||(s?i.reject(f):i.resolve(u))},h=function(n){u[n]=[].slice.call(arguments,1)},e=function(n){s=!0,f[n]=[].slice.call(arguments,1)},n.each(t,function(n,t){t.done(h.bind(t,n)).fail(e.bind(t,n)).always(r)}),i}return n.Deferred().resolve()}})(jQuery)