/* Demo Note:  This demo uses a FileProgress class that handles the UI for displaying the file name and percent complete.
The FileProgress class is not part of SWFUpload.
*/


/* **********************
   Event Handlers
   These are my custom event handlers to make my
   web application behave the way I went when SWFUpload
   completes different tasks.  These aren't part of the SWFUpload
   package.  They are part of my application.  Without these none
   of the actions SWFUpload makes will show up in my application.
   ********************** */
function fileQueued(file) {
	try {
		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setStatus("En cola...");
		progress.toggleCancel(true, this);

	} catch (ex) {
		this.debug(ex);
	}

}

function fileQueueError(file, errorCode, message) {
	try {
		if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
			alert("Ha intentado subir demasiados archivos a la vez.\n" + (message === 0 ? "Has superado el límite máximo de subida." : "Has de seleccionar " + (message > 1 ? "uno o " + message + " archivos." : "un archivo.")));
			return;
		}

		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setError();
		progress.toggleCancel(false);

		switch (errorCode) {
		case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
			progress.setStatus("El archivo es demasiado grande.");
			this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
			progress.setStatus("El archivo está corrupto.");
			this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
			progress.setStatus("Formato del archivo inválido.");
			this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		default:
			if (file !== null) {
				progress.setStatus("Error");
			}
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		}
	} catch (ex) {
        this.debug(ex);
    }
}

function fileDialogComplete(numFilesSelected, numFilesQueued) {
	try {
		if (numFilesSelected > 0) {
			document.getElementById(this.customSettings.cancelButtonId).disabled = false;
		}
		
		/* I want auto start the upload and I can do that here */
		this.startUpload();
	} catch (ex)  {
        this.debug(ex);
	}
}

function uploadStart(file) {
	try {
		document.getElementById("fsUploadProgress").style.display = 'block';
		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setStatus("Cargando...");
		progress.toggleCancel(true, this);
	}
	catch (ex) {}
	
	return true;
}

function uploadStart2(file) {
	try {
		document.getElementById("fsUploadProgress2").style.display = 'block';
		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setStatus("Cargando...");
		progress.toggleCancel(true, this);
	}
	catch (ex) {}
	
	return true;
}

function uploadStart3(file) {
	try {
		document.getElementById("fsUploadProgress3").style.display = 'block';
		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setStatus("Cargando...");
		progress.toggleCancel(true, this);
	}
	catch (ex) {}
	
	return true;
}

function uploadProgress(file, bytesLoaded, bytesTotal) {
	try {
		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);

		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setProgress(percent);
		progress.setStatus("Cargando...");
	} catch (ex) {
		this.debug(ex);
	}
}

function uploadSuccess(file, serverData) {
	try {
		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setComplete();
		progress.setStatus("Completado.");
		progress.toggleCancel(false);

	} catch (ex) {
		this.debug(ex);
	}
}

function uploadError(file, errorCode, message) {
	try {
		var progress = new FileProgress(file, this.customSettings.progressTarget);
		progress.setError();
		progress.toggleCancel(false);

		switch (errorCode) {
		case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
			progress.setStatus("Error en la subida: " + message);
			this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
			progress.setStatus("Error en la subida.");
			this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.IO_ERROR:
			progress.setStatus("Server (IO) Error");
			this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
			progress.setStatus("Error de seguridad");
			this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
			progress.setStatus("Límite máximo de subida superado.");
			this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
			progress.setStatus("Error de validación. Carga ignorada.");
			this.debug("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
			// If there aren't any files left (they were all cancelled) disable the cancel button
			if (this.getStats().files_queued === 0) {
				document.getElementById(this.customSettings.cancelButtonId).disabled = true;
			}
			progress.setStatus("Cancelado.");
			progress.setCancelled();
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
			progress.setStatus("Parado.");
			break;
		default:
			progress.setStatus("Error: " + errorCode);
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		}
	} catch (ex) {
        this.debug(ex);
    }
}

function uploadComplete(file) {
	document.getElementById("fsUploadProgress").style.display = 'none';
	var archivo = document.getElementById("id_pers").value+'_escudo_'+file.name;
	document.form_personalizar.file_escudo.value = archivo;
	var enlace = 'media/image/personalizar/escudo/'+archivo;
	setTimeout('Oculta("boton","fsResult","'+enlace+'")', 100);
}

function uploadComplete2(file) {
	document.getElementById("fsUploadProgress2").style.display = 'none';
	var archivo = document.getElementById("id_pers").value+'_sponsor_'+file.name;
	document.form_personalizar.file_sponsor.value = archivo;
	var enlace = 'media/image/personalizar/sponsor/'+archivo;
	setTimeout('Oculta("boton2","fsResult2","'+enlace+'")', 100);
}

function uploadComplete3(file) {
	document.getElementById("fsUploadProgress3").style.display = 'none';
	var archivo = document.getElementById("id_pers").value+'_usuario_'+file.name;
	document.form_tu_mismo.file_usuario.value = archivo;
	var enlace = 'media/image/personalizar/usuario/'+archivo;
	setTimeout('Oculta("boton3","fsResult3","'+enlace+'")', 100);
}

function queueComplete(numFilesUploaded) {
	
}

function Oculta(boton,resultado,enlace) {
	document.getElementById(boton).style.display = 'none';
	document.getElementById(resultado).innerHTML = '<em>Archivo subido correctamente: <a target="_blank" href='+enlace+'>visualizar</em></a>';
}