function LoadMultiUpload(ContainerName, UploadParams)
{
    mfu = new SWFObject('/include/Millen.Upload.swf', 'FileUploadObj', '600', '285', '9', '#FFFFFF');
    mfu.useExpressInstall('/include/expressinstall.swf');
    mfu.addParam('quality', 'high');
    mfu.addParam('allowScriptAccess', 'sameDomain');
    mfu.addParam('flashvars', UploadParams);
    mfu.write(ContainerName);
    window['FileUploadObj'] = GetElement('FileUploadObj');
}

function ImageSelected(WebImage, UploadID, ImageID, ImageValueID)
{
    // Bild ermitteln
    var FullPath = '';
    var ImageName = '';
    if (WebImage == null)
        FullPath = '/images/common/spacer.gif';
    else
    {
        var Selected = WebImage.SelectedImage();
        if (Selected != null)
        {
            ImageName = Selected.FileName();
            FullPath = Selected.FileUrl_NoCache() + '&preview=1';
        }
    }

    // Bildnamen speichern
    var ImageValue = GetElement(ImageValueID);
    if (ImageValue != null)
        ImageValue.value = ImageName;

    // Vorschau, wenn eingeblendet
    var PreviewImage = GetElement(ImageID);
    if (PreviewImage != null)
        PreviewImage.src = FullPath;
}

function RemoveImageValues(ImageID, ImageValueID)
{
    // Bildnamen loeschen
    var ImageValue = GetElement(ImageValueID);
    if (ImageValue != null)
        ImageValue.value = '';

    // Vorschau loeschen
    var PreviewImage = GetElement(ImageID);
    if (PreviewImage != null)
        PreviewImage.src = '/images/common/spacer.gif';
}

function GetSelectedImageName(ImageValueID)
{
    var ImageName = '';
    var ImageValue = GetElement(ImageValueID);
    if (ImageValue != null)
        ImageName = ImageValue.value;

    return ImageName;
}

function FormatFileSize(n, fmt)
{
	if (!fmt)
	{		//	no formatting specified; automatically select the best format
		if (n < 1000)
		    fmt = 'b';
		else if (n < 1000000)
		    fmt = 'kb';
		else if (n < 1000000000)
		    fmt = 'mb';
		else
		    fmt = 'gb';
	}
	switch(fmt.toLowerCase())
	{
		case 'kb':
		    return String((n * 0.001).toFixed(2)) + ' KB';
		    break;
		case 'mb':
		    return String((n * 0.000001).toFixed(2)) + ' MB';
		    break;
		case 'gb':
		    return String((n * 0.000000001).toFixed(2)) + ' GB';
		    break;
		default:
		    return String(n.toFixed(2)) + ' B';
	}
}

function FormatTime(t)
{
	var s = Math.floor(t);
	var m = Math.floor(s / 60);
	var h = Math.floor(m / 60);

    //	Output will always have be least mm:ss
	s = PadTime(s % 60);
	m = PadTime(m % 60) + ':';
	h = (h == 0) ? '' : PadTime(h % 60) + ':';

	return (h + m + s);
}

function GetPercentage(n)
{
    return String(Math.round(n * 100));
}

function PadTime(t)
{
    return String(((t > 9) ? '' : '0') + t);
}

function GetFilePosition(ctrl, cur)
{
	var files = ctrl.GetFiles();
	for (var i = 0; i < files.length; i++)
	{
		var file = files[i].substring(files[i].lastIndexOf('\\') + 1, files[i].length);
		if (file == cur)
		    return String(i + 1);
	}

	return '1';
}

function GenerateFileList(ctrl, cur)
{
	var files = ctrl.GetFiles();
	var out = '';
	for (var f in files)
	{
		var file = files[f].substring(files[f].lastIndexOf('\\') + 1, files[f].length);
		out += file == cur ? '<li>&raquo;&nbsp;' + file + '</li>' : '<li>' + file + '</li>';
	}

	return '<ul>' + out + '</ul>';
}

function AddFile(ctrl, el)
{
    ctrl.addFile();
    if (ctrl.FileCount == ctrl.MaximumFileCount)
        el.className = 'add-d';
}

function RemoveFile(ctrl, item)
{
    if (ctrl.FileCount > 1)
        ctrl.RemoveFileAt(item);
	if (ctrl.FileCount < ctrl.MaximumFileCount)
	    GetElement('btn-add').className = 'add';
}

function CheckUploadQueue(ctrl)
{
    var btn = GetElement('btn-upload');
    if (ctrl.GetFiles().length > 0)
        btn.className = 'upload';
	else
	    btn.className = 'upload-d';
}