// pokazuje wielkosc pliku
function rozmiary( wielkosc )
{
	rozmiary_ext = Array('b', 'kB', 'MB', 'GB');
	koncowki = rozmiary_ext[0];
	for (i=1; ((i < rozmiary_ext.length) && (wielkosc >= 1024)); i++)
	{
   		wielkosc = wielkosc / 1024;
		koncowki  = rozmiary_ext[i];
	}
	return Math.round(wielkosc)+" "+koncowki;
}

function removeFromQueue( file_id )
{
	file = swfu.getFile(file_id);
	swfu.cancelUpload( file.id );
	uploadComplete(file);
}

// dodanie pliku do kolejki wysylania
function fileQueued(file)
{
	kolejka = document.getElementById("transferList");

	var li = document.createElement("li");
	li.id = file.id;
	li.innerHTML = '<table><tr><td>' + file.name + '</td><td width="100"><span id="' + file.id + 'progress">' + rozmiary(file.size) + '</span></td><td width="50"><a id="' + file.id + 'deletebtn" style="text-decoration: none;" href="javascript:removeFromQueue(\'' + file.id + '\');">'+SWFUpload.lang.del+'</a></td></tr></table>';
	kolejka.appendChild(li);
	
	var queueinfo = document.getElementById("queueinfo");
	total_upload_size += file.size;	
	queueinfo.innerHTML = SWFUpload.lang.send_size + ": " + rozmiary(total_upload_size) + ".";
}

// blad dodania pliku do kolejki
function fileQueueError(file, errorCode, message) {
	try {
		if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
			alert(SWFUpload.lang.too_many+"\n" + (message === 0 ? SWFUpload.lang.quota : SWFUpload.lang.more_files + " " + (message > 1 ? SWFUpload.lang.to + " " + message + " " + SWFUpload.lang.files + "." : SWFUpload.lang.one_file + ".")));
			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(SWFUpload.lang.too_big);
			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(SWFUpload.lang.zero);
			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(SWFUpload.lang.wrong_type);
			this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		default:
			if (file !== null) {
				progress.setStatus(SWFUpload.lang.error);
			}
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		}
	} catch (ex) {
        this.debug(ex);
    }
}

// zakonczenie okna wybierania plikow
function fileDialogComplete(numFilesSelected, numFilesQueued)
{
	
}

// rozpoczecie wysylania
function uploadStart(file)
{
	return true;
}

// namierzanie postepu wysylania
function uploadProgress(file, bytesLoaded, bytesTotal)
{
	var progress = document.getElementById(file.id + "progress");
	var percent = Math.ceil((bytesLoaded / file.size) * 100)
	progress.innerHTML = rozmiary(file.size - bytesLoaded) + " (" + percent + "%)";
}

// zakonczenie wysylania kolejki
function uploadSuccess(file, serverData)
{
	var div = document.getElementById("queueinfo");
	div.innerHTML = SWFUpload.lang.uploaded
}

// zakonczenie wysylania pliku
function uploadComplete( file )
{
	var listingfiles = document.getElementById("transferList");
	var li = document.getElementById(file.id);
	var usuniety = listingfiles.removeChild(li);
	total_upload_size -= file.size;
	var queueinfo = document.getElementById("queueinfo");
	queueinfo.innerHTML = SWFUpload.lang.send_size + ": " + rozmiary(total_upload_size) + ".";
}

// blad podczas wysylania
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("Upload Error: " + message);
			this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
			progress.setStatus("Upload Failed.");
			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("Security Error");
			this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
			progress.setStatus("Upload limit exceeded.");
			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("Failed Validation.  Upload skipped.");
			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("Cancelled");
			progress.setCancelled();
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
			progress.setStatus("Stopped");
			break;
		default:
			progress.setStatus("Unhandled Error: " + errorCode);
			this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		}
	} catch (ex) {
        this.debug(ex);
    }
}

