Current File : //opt/RZphp71/includes/data/HTML_Progress2/HTML_Progress2_AFLAX.js |
/**
* JavaScript functions to handle behaviors of an AFLAX upload progress meter
*
* @category HTML
* @package HTML_Progress2
* @author Laurent Laville <pear@laurent-laville.org>
* @copyright 2007-2008 Laurent Laville
* @license http://www.opensource.org/licenses/bsd-license.php New BSD License
* @version CVS: $Id: HTML_Progress2_AFLAX.js,v 1.3 2008/03/16 09:30:58 farell Exp $
* @since File available since Release 2.3.0a3
*/
var HTML_Progress2_AFLAX_fileRef;
var HTML_Progress2_AFLAX_allTypes;
var HTML_Progress2_AFLAX_fileTypes = new Array();
var HTML_Progress2_AFLAX_eventCallback = new Array();
function HTML_Progress2_AFLAX_setupBrowse()
{
HTML_Progress2_AFLAX_allTypes = new AFLAX.FlashObject(aflax, "Array");
for (var e = 0, length = HTML_Progress2_AFLAX_fileTypes.length; e < length; e++) {
var fileTypes = new AFLAX.FlashObject(aflax, "Object");
fileTypes.exposeProperty("description", fileTypes);
fileTypes.exposeProperty("extension", fileTypes);
fileTypes.setDescription(HTML_Progress2_AFLAX_fileTypes[e][0]);
fileTypes.setExtension(HTML_Progress2_AFLAX_fileTypes[e][1]);
HTML_Progress2_AFLAX_allTypes.callFunction("push", fileTypes);
}
HTML_Progress2_AFLAX_fileRef = new AFLAX.FlashObject(aflax, "flash.net.FileReference");
var event = new Array('onSelect', 'onProgress', 'onComplete', 'onHTTPError', 'onSecurityError', 'onIOError');
for (var e = 0, length = event.length; e < length; e++) {
if (HTML_Progress2_AFLAX_eventCallback != '') {
aflax.attachEventListener(HTML_Progress2_AFLAX_fileRef, event[e], HTML_Progress2_AFLAX_eventCallback[e]);
}
}
HTML_Progress2_AFLAX_disableButtons(false, true, true);
}
function HTML_Progress2_AFLAX_disableButtons(btn1Status, btn2Status, btn3Status)
{
var btn1 = window.document.getElementById("plblbtn1" + HTML_Progress2.widgetId);
if (btn1) {
btn1.disabled = btn1Status;
}
var btn2 = window.document.getElementById("plblbtn2" + HTML_Progress2.widgetId);
if (btn2) {
btn2.disabled = btn2Status;
}
var btn3 = window.document.getElementById("plblbtn3" + HTML_Progress2.widgetId);
if (btn3) {
btn3.disabled = btn3Status;
}
}
// Action when user click on Browse button of the progress meter
function HTML_Progress2_AFLAX_selectFile()
{
HTML_Progress2_AFLAX_fileRef.callFunction("browse", HTML_Progress2_AFLAX_allTypes);
}
// Action when user click on Upload button of the progress meter
function HTML_Progress2_AFLAX_beginUpload()
{
HTML_Progress2_AFLAX_fileRef.callFunction("upload", HTML_Progress2_AFLAX_uri);
HTML_Progress2_AFLAX_disableButtons(true, true, false);
}
// Action when user click on Cancel button of the progress meter
function HTML_Progress2_AFLAX_cancelUpload()
{
HTML_Progress2_AFLAX_fileRef.callFunction("cancel");
HTML_Progress2_AFLAX_disableButtons(false, true, true);
}
// Event callback
// onSelect : Invoked when the user selects a file to upload from the file-browsing dialog box.
function HTML_Progress2_AFLAX_Select(data)
{
if (document.getElementById('plblaflaxstatus' + HTML_Progress2.widgetId) != null) {
var parts = data.split(/;/);
var fileSize = parts[5].split(/=/)[1];
if (fileSize > (1024 * 1024)) {
fileSize = Math.round(fileSize/(1024*1024)) + "MB";
} else {
fileSize = Math.round(fileSize/1024) + " KB";
}
var fileName = parts[7].split(/=/)[1];
HTML_Progress2.setLabelText(HTML_Progress2.widgetId, 'aflaxstatus', "Ready to upload : " + fileName + " (" + fileSize + ")");
}
HTML_Progress2_AFLAX_disableButtons(false, false, true);
}
// onProgress event : Invoked periodically during the file upload operation.
function HTML_Progress2_AFLAX_Progress(data)
{
var parts = data.split("!!");
var loaded = parseInt((parts[1].split(":"))[1]);
var total = parseInt((parts[2].split(":"))[1]);
var percentage = Math.round((loaded/total * 100 ));
var cell = ((percentage - HTML_Progress2.minimum) * HTML_Progress2.cellCount)
/ (HTML_Progress2.maximum - HTML_Progress2.minimum);
cell = Math.floor(cell);
HTML_Progress2.refresh(HTML_Progress2.widgetId, cell, 0);
HTML_Progress2.setLabelText(HTML_Progress2.widgetId, HTML_Progress2.widgetPercentLabel, percentage + '%');
if (percentage == 100) {
if (document.getElementById('plblaflaxstatus' + HTML_Progress2.widgetId) != null) {
HTML_Progress2.setLabelText(HTML_Progress2.widgetId, 'aflaxstatus', "Upload completed");
}
}
}
// onComplete event : Invoked when the upload operation has successfully completed.
function HTML_Progress2_AFLAX_Complete(data)
{
if (document.getElementById('plblaflaxstatus' + HTML_Progress2.widgetId) != null) {
HTML_Progress2.setLabelText(HTML_Progress2.widgetId, 'aflaxstatus', "Document available");
}
HTML_Progress2_AFLAX_disableButtons(false, true, true);
}
// onHTTPError event : Invoked when an upload fails because of an HTTP error
if (typeof(HTML_Progress2_AFLAX_HTTPError) != 'function') {
HTML_Progress2_AFLAX_HTTPError = function(data) {alert('HTTPError: ' + data);};
}
// onSecurityError event : Invoked when an upload fails because of a security error.
if (typeof(HTML_Progress2_AFLAX_SecurityError) != 'function') {
HTML_Progress2_AFLAX_SecurityError = function(data) {alert('SecurityError: ' + data);};
}
// onIOError event : Invoked when an input/output error occurs.
if (typeof(HTML_Progress2_AFLAX_IOError) != 'function') {
HTML_Progress2_AFLAX_IOError = function(data) {alert('IOError: ' + data);};
}