// 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 width=100% border=0><tr onmouseover=\"document.getElementById('"+ file.id +"').style.border='1px solid #000000';\" onmouseout=\"document.getElementById('"+ file.id +"').style.border='1px solid #fd4900';\"><td width=60%>" + file.name + "</td><td width=25%><span id='" + file.id + "progress'>" + rozmiary(file.size) + "</span></td><td width=15%><a id='" + file.id + "deletebtn' class='cancelbtn' href='javascript:removeFromQueue(\"" + file.id + "\");'><img src=\"images/koszyk_usun.gif\" border=\"0\"></a></td></tr></table>";
	kolejka.appendChild(li);
	
	var queueinfo = document.getElementById("queueinfo");
	total_upload_size += file.size;	
	queueinfo.innerHTML = "Łącznie do przesłania: " + rozmiary(total_upload_size) + ".";
	document.getElementById(swfu.movieName + "UploadBtn").style.display = "block";
	document.getElementById(swfu.movieName + "BrowseBtn").innerHTML = "&raquo; Dodaj następne pliki do wczytania";
	document.getElementById("cancelqueuebtn").style.display = "block";
}

// blad dodania pliku do kolejki
function fileQueueError(file, errorCode, message) {
	try {
		if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
			alert("Chciałeś dodać za dużo plików do kolejki wysyłania.\n" + (message == 0 ? "Zapełniłeś już dozwolony limit." : "Możesz wybrać jeszcze " + (message > 1 ? "do " + message + " plików." : "jeden plik.")));
			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("Plik jest za duży.");
			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("Nie można wysyłać plików o zerowym rozmiarze.");
			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("Zły typ pliku.");
			this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		default:
			if (file !== null) {
				progress.setStatus("Nieznany błąd.");
			}
			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 = "Wszystkie pliki zostały wczytane..."
}

// 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 = "Łącznie do przesłania: " + 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);
    }
}
