var uploadHandlerManager = function(spec) { var name = spec.inputName; var file_size_limit = spec.fileSizeLimit; var btn_background_selector = spec.buttonElementSelector || 'div.file-upload-wrapper'; // var status_ele_selector = "#"+name+"-status"; var status_ele_selector = "#"+name.replace('_','-')+"-status"; var filename_input_name = name+'_filename'; // pdf_upload_name var showError = function(msg) { var error_obj = {}; error_obj[filename_input_name] = msg; show_errors(error_obj); }; var uploadButtonImage = function() { var orig = null; var btn_background_ele = $(btn_background_selector); log2console('btn_background_selector', btn_background_selector); log2console('btn_background_ele', btn_background_ele); var setBackground = function(st){btn_background_ele.css('background',st)}; // restoring the background in IE doesn't work if ($.browser.msie) return( { setWaitState: function(){}, setNormalState: function(){} }); return( { setWaitState: function() { log2console('about to setWaitState'); if(orig == null) orig = btn_background_ele.css('background'); setBackground('url(images/choose_file_wait_btn.gif) no-repeat'); }, setNormalState: function(){ setBackground(orig); } }); }(); return({ onErrorHandler : function(event, queueID, fileObj, errorObj) { var msg = ''; if (errorObj.type ==="File Size") { msg = "Your uploaded file size ("+bytesToKB(fileObj.size)+"KB) exceeds the maximum size allowed of "+bytesToKB(file_size_limit)+"KB"; } else { //log2console(errorObj); msg = "Sorry, your file wasn't uploaded."; } showError(msg); uploadButtonImage.setNormalState(); }, onSelectOnce : function(event, queueID, fileObj) { uploadButtonImage.setWaitState(); showError(" "); $(status_ele_selector).html(" "); }, onCompleteHandler : function(event, queueID, fileObj, response, data) { uploadButtonImage.setNormalState(); log2console('response', response); var resobj = $.parseJSON(response) //eval( "resobj={}&&"+response); showError(""); $("input[name="+name+"_filename]").val(fileObj.name).hide().attr('disabled', false); // var status_ele_selector = "#"+name+"-status"; var status_ele_selector = "#"+name.replace('_','-')+"-status"; if (resobj.err!=undefined) { $(status_ele_selector).html(""); showError(resobj.err); return true; } $("input[name="+name+"_guid]").val(resobj.url); var fileSizeInKB = bytesToKB(fileObj.size); $(status_ele_selector).html("Uploaded "+fileObj.name+" ("+fileSizeInKB+" KB)"); return true; } }); }; var bytesToKB = function(bytes) { if (typeof bytes == 'string') bytes = parseInt(bytes); return Math.round((bytes / 1024 * 100000) / 100000); }