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