$(this).bind("rfuSelect", {'action': settings.onSelect}, function(event, queueID, fileObj) {
if (event.data.action(event, queueID, fileObj) !== false) {
var byteSize = Math.round(fileObj.size / 1024 * 100) * .01;
var suffix = 'KB';
if (byteSize > 1000) {
byteSize = Math.round(byteSize *.001 * 100) * .01;
suffix = 'MB';
}
var sizeParts = byteSize.toString().split('.');
if (sizeParts.length > 1) {
byteSize = sizeParts[0] + '.' + sizeParts[1].substr(0,2);
} else {
byteSize = sizeParts[0];
}
if (fileObj.name.length > 20) {
fileName = fileObj.name.substr(0,20) + '...';
} else {
fileName = fileObj.name;
}
$('#' + $(this).attr('id') + 'Queue').append('\
\
java script:$(\\
\
' + fileName + ' (' + byteSize + suffix + ') \
\
\
\
');
}
});
if (typeof(settings.onSelectOnce) == 'function') {
$(this).bind("rfuSelectOnce", settings.onSelectOnce);
}
$(this).bind("rfuCheckExist", {'action': settings.onCheck}, function(event, checkScript, fileQueue, folder, single) {
var postData = new Object();
postData.folder = pagePath + folder;
for (var queueID in fileQueue) {
postData[queueID] = fileQueue[queueID];
if (single) {
var singleFileID = queueID;
}
}
$.post(checkScript, postData, function(data) {
for(var key in data) {
if (event.data.action(event, checkScript, fileQueue, folder, single) !== false) {
var replaceFile = confirm('Do you want to replace the file \'' + data[key] + '\'?');
if (!replaceFile) {
document.getElementById($(event.target).attr('id') + 'Uploader').cancelFileUpload(key);
}
}
}
if (single) {
document.getElementById($(event.target).attr('id') + 'Uploader').startFileUpload(singleFileID, true);
} else {
document.getElementById($(event.target).attr('id') + 'Uploader').startFileUpload(null, true);
}
}, "json");
});
$(this).bind("rfuCancel", {'action': settings.onCancel}, function(event, queueID, fileObj, data) {
if (event.data.action(event, queueID, fileObj, data) !== false) {
$("#" + $(this).attr('id') + queueID).fadeOut(250, function() { $("#" + $(this).attr('id') + queueID).remove()});
}
});
$(this).bind("rfuClearQueue", {'action': settings.onClearQueue}, function() {
if (event.data.action() !== false) {
$('#' + $(this).attr('id') + 'Queue').contents().fadeOut(250, function() {$('#' + $(this).attr('id') + 'Queue').empty()});
}
});
$(this).bind("rfuError", {'action': settings.onError}, function(event, queueID, fileObj, errorObj) {
if (event.data.action(event, queueID, fileObj, errorObj) !== false) {
$("#" + $(this).attr('id') + queueID + " .fileName").text(errorObj.type + " Error - " + fileObj.name);
$("#" + $(this).attr('id') + queueID).css({'border': '3px solid #FBCBBC', 'background-color': '#FDE5DD'});
}
});
$(this).bind("rfuProgress", {'action': settings.onProgress, 'toDisplay': settings.displayData}, function(event, queueID, fileObj, data) {
if (event.data.action(event, queueID, fileObj, data) !== false) {
$("#" + $(this).attr('id') + queueID + "ProgressBar").css('width', data.percentage + '%');
if (event.data.toDisplay == 'percentage') displayData = ' - ' + data.percentage + '%';
if (event.data.toDisplay == 'speed') displayData = ' - ' + data.speed + 'KB/s';
if (event.data.toDisplay == null) displayData = ' ';
$("#" + $(this).attr('id') + queueID + " .percentage").text(displayData);
}
});
$(this).bind("rfuComplete", {'action': settings.onComplete}, function(event, queueID, fileObj, response, data) {
if (event.data.action(event, queueID, fileObj, unescape(response), data) !== false) {
$("#" + $(this).attr('id') + queueID).fadeOut(250, function() { $("#" + $(this).attr('id') + queueID).remove()});
$("#" + $(this).attr('id') + queueID + " .percentage").text(' - Completed');
}
});
if (typeof(settings.onAllComplete) == 'function') {
$(this).bind("rfuAllComplete", settings.onAllComplete);
}
});
}
},
fileUploadSettings:function(settingName, settingValue) {
$(this).each(function() {
document.getElementById($(this).attr('id') + 'Uploader').updateSettings(settingName,settingValue);
});
},
fileUploadStart:function(queueID) {
$(this).each(function() {
document.getElementById($(this).attr('id') + 'Uploader').startFileUpload(queueID, false);
});
},
fileUploadCancel:function(queueID) {
$(this).each(function() {
document.getElementById($(this).attr('id') + 'Uploader').cancelFileUpload(queueID);
});
},
fileUploadClearQueue:function() {
$(this).each(function() {
document.getElementById($(this).attr('id') + 'Uploader').clearFileUploadQueue();
});
}
})
})(jQuery);