(function() { var gomfload = function() { "use strict"; var required = ['FormData', 'XMLHttpRequest']; for (var i=0; i maxSize) { alert('File ' + files[i].name + ' too large, maximum allowed size is ' + humanize(maxSize)); fileInput.value = ''; updateName(); return; } } for (var i=0; i= 1024 && i < units.length-1) { n /= 1024; ++i; } return (Math.round(n*10)/10) + ' ' + units[i]; }; var submit = function(e) { upload(fileInput.files); e.preventDefault(); }; var updateName = function(files) { files = files || fileInput.files; if (files.length > 0) { if (files.length == 1) { fileName.textContent = files[0].name; } else { fileName.textContent = files.length + ' files selected'; } } else { fileName.textContent = fileName.originalText; } }; var dragenter = function(e) { e.stopPropagation(); e.preventDefault(); }; var drop = function(e) { e.stopPropagation(); e.preventDefault(); upload(e.dataTransfer.files); }; fileInput.addEventListener('change', submit); fileInput.addEventListener('dragenter', dragenter); fileInput.addEventListener('dragover', dragenter); fileInput.addEventListener('drop', drop); fileName.textContent = 'Select or drop files here'; fileName.originalText = fileName.textContent; fileDiv.className = 'file'; fileInput.multiple = 'multiple'; fileSubmit.style.display = 'none'; updateName(); }; if (document.readyState !== 'loading') { gomfload(); } else { document.addEventListener('DOMContentLoaded', gomfload); } })();