<?php
require_once __DIR__ . '/config.php';

if (isset($_GET["ajax_links"]) && $_SERVER["REQUEST_METHOD"]==="POST") {
    if (!is_logged_in()) { http_response_code(403); exit; }
    header("Content-Type: application/json");
    $dir = $_POST["dir"] ?? "";
    $files_str = $_POST["files"] ?? "";
    $dir = str_replace("..", "", $dir);
    $fp = FILES_DIR . "/" . trim($dir, "/");
    $links = [];
    foreach (explode(",", $files_str) as $f) {
        $f = basename(trim($f));
        $fpp = $fp . "/" . $f;
        if (is_file($fpp)) {
            $r = ltrim(str_replace(FILES_DIR, "", $fpp), "/");
            $links[] = ["name" => $f, "url" => SITE_URL . "/f/" . basename($r)];
        }
    }
    $onetime = "";
    if (count($links) === 1) {
        $r = ltrim(str_replace(FILES_DIR, "", $fp . "/" . basename($links[0]["name"])), "/");
        $token = generate_one_time_token($r);
        $onetime = SITE_URL . "/dl/" . $token;
    }
    echo json_encode(["links" => $links, "onetime" => $onetime]);
    exit;
}

require_once __DIR__ . '/totp.php';

// Login Step 1: Password
if(isset($_POST['login'])){
    if($_POST['username']===ADMIN_USER&&password_verify($_POST['password'],ADMIN_PASS_HASH)){
        if(TOTP::isEnabled()){$_SESSION['needs_2fa']=true;$_SESSION['2fa_time']=time();}
        else{$_SESSION['logged_in']=true;header('Location:/panel/index.php');exit;}
    }else{$le='Wrong credentials';}
}
// Login Step 2: 2FA
if(isset($_POST['verify_2fa'])&&needs_2fa()){
    if(time()-($_SESSION['2fa_time']??0)>300){unset($_SESSION['needs_2fa'],$_SESSION['2fa_time']);$le='Session expired. Login again.';}
    elseif(TOTP::verify(TOTP::getSecret(),$_POST['totp_code']??'')){unset($_SESSION['needs_2fa'],$_SESSION['2fa_time']);$_SESSION['logged_in']=true;header('Location:/panel/index.php');exit;}
    else{$le='Invalid authenticator code';}
}
if(isset($_GET['logout'])){session_destroy();header('Location:/panel/index.php');exit;}

// Show 2FA code input
if(needs_2fa()&&!is_logged_in()){?><!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>2FA Verification</title>
<style>*{margin:0;padding:0;box-sizing:border-box}body{background:#0f172a;color:#e2e8f0;font-family:system-ui,sans-serif;display:flex;justify-content:center;align-items:center;min-height:100vh}.lb{background:#1e293b;padding:40px;border-radius:12px;width:380px;text-align:center}.lb h1{margin-bottom:8px;color:#60a5fa;font-size:20px}.lb p{color:#94a3b8;font-size:13px;margin-bottom:24px}.lb input{width:100%;padding:14px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;font-size:24px;text-align:center;letter-spacing:10px;margin-bottom:16px}.lb input:focus{outline:none;border-color:#60a5fa}.lb button{width:100%;padding:12px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;font-size:15px}.err{color:#fca5a5;margin-bottom:16px;font-size:13px}
.page-wrap{max-width:1100px;margin:0 auto;padding:0 15px}
</style></head><body><div class="page-wrap">
<div class="lb"><h1>🔐 Authenticator Code</h1><p>Enter the 6-digit code from your authenticator app</p>
<?php if(isset($le))echo"<p class='err'>$le</p>";?>
<form method="post"><input name="totp_code" placeholder="000000" maxlength="6" required autofocus autocomplete="off"><button name="verify_2fa">Verify</button></form>
</div></div></body></html><?php exit;}

// Show login form
if(!is_logged_in()){?><!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Login</title>
<style>*{margin:0;padding:0;box-sizing:border-box}body{background:#0f172a;color:#e2e8f0;font-family:system-ui,sans-serif;display:flex;justify-content:center;align-items:center;min-height:100vh}.lb{background:#1e293b;padding:40px;border-radius:12px;width:360px}.lb h1{text-align:center;margin-bottom:24px;color:#60a5fa}.lb input{width:100%;padding:12px;margin-bottom:14px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;font-size:14px}.lb input:focus{outline:none;border-color:#60a5fa}.lb button{width:100%;padding:12px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.err{color:#fca5a5;text-align:center;margin-bottom:14px;font-size:13px}
.page-wrap{max-width:1100px;margin:0 auto;padding:0 15px}
</style></head><body><div class="page-wrap">
<div class="lb"><h1>📁 File Server</h1><?php if(isset($le))echo"<p class='err'>$le</p>";?><form method="post"><input name="username" placeholder="Username" required autofocus><input type="password" name="password" placeholder="Password" required><button name="login">Login</button></form></div></div></body></html><?php exit;}

// === FILE MANAGER ===
$base=FILES_DIR;$cur=isset($_GET['dir'])?str_replace(['..', "\0"],'',$_GET['dir']):'';$cur=trim($cur,'/');
if($cur==='.trash')$cur='';
$fp=$base.($cur?'/'.$cur:'');if(!is_dir($fp)){$cur='';$fp=$base;}
$msg='';$mt='s';

if($_SERVER['REQUEST_METHOD']==='POST'){
    if(isset($_POST['new_folder'])&&!empty($_POST['fn'])){$fn=preg_replace('/[^a-zA-Z0-9_\-\. ]/','', $_POST['fn']);$nd=$fp.'/'.$fn;if(!is_dir($nd)){mkdir($nd,0755,true);@chown($nd,'www-data');$msg='Folder created: '.$fn;}else{$msg='Exists!';$mt='e';}}
    if(isset($_POST['delete'])&&!empty($_POST['target'])){$t=$fp.'/'.basename($_POST['target']);if(is_file($t)){trash_file($t);$msg='Moved to trash';}elseif(is_dir($t)){$fi=array_diff(scandir($t),['.','..']);if(empty($fi)){rmdir($t);$msg='Deleted';}else{$msg='Not empty!';$mt='e';}}}
    if(isset($_POST['rename'])&&!empty($_POST['old'])&&!empty($_POST['new'])){$o=$fp.'/'.basename($_POST['old']);$nn=preg_replace('/[^a-zA-Z0-9_\-\.\(\)\[\] ]/','', $_POST['new']);$n=$fp.'/'.$nn;if(file_exists($o)&&!file_exists($n)){rename($o,$n);$msg='Renamed';}else{$msg='Failed!';$mt='e';}}
    if(isset($_POST['move'])&&!empty($_POST['mf'])&&isset($_POST['mt'])){$sd=isset($_POST['search_dir'])?$base.'/'.trim(str_replace('..','',$_POST['search_dir']),'/') :$fp;$s=$sd.'/'.basename($_POST['mf']);$dd=$base.'/'.trim(str_replace('..','', $_POST['mt']),'/');if(file_exists($s)&&is_dir($dd)){rename($s,$dd.'/'.basename($s));$msg='Moved';}else{$msg='Failed!';$mt='e';}}
    if(isset($_POST['bulk_delete'])&&!empty($_POST['sel'])){$c=0;foreach($_POST['sel'] as $i){$t=$fp.'/'.basename($i);if(is_file($t)){trash_file($t);$c++;}}$msg="$c files trashed";}
    if(isset($_POST['bulk_move'])&&!empty($_POST['sel'])&&isset($_POST['bmt'])){$dd=$base.'/'.trim(str_replace('..','', $_POST['bmt']),'/');$c=0;if(is_dir($dd)){foreach($_POST['sel'] as $i){$s=$fp.'/'.basename($i);if(file_exists($s)){rename($s,$dd.'/'.basename($s));$c++;}}}$msg="Moved $c files";}
    if(isset($_POST['empty_trash'])){$c=empty_trash();$msg="Emptied $c files";}
    if(isset($_POST['restore'])&&!empty($_POST['tf'])){$t=TRASH_DIR.'/'.basename($_POST['tf']);if(is_file($t)){$orig=preg_replace('/^\d+_/','',basename($t));$dest=$base.'/'.$orig;if(file_exists($dest)){$info=pathinfo($orig);$n=$info['filename'];$e=isset($info['extension'])?'.'.$info['extension']:'';$c=1;while(file_exists($base.'/'.$n.'_'.$c.$e))$c++;$dest=$base.'/'.$n.'_'.$c.$e;}rename($t,$dest);$msg='Restored: '.basename($dest);}}
    // Search action: delete from search
    if(isset($_POST['search_delete'])&&!empty($_POST['spath'])){$t=$base.'/'.str_replace('..','',$_POST['spath']);if(is_file($t)){trash_file($t);$msg='Trashed from search';}}
}

$bl=[];$pp='';$tdu='';$sr=null;$vt=isset($_GET['trash']);
if(isset($_GET['getlinks'])&&!empty($_GET['files'])){$bl=[];$files_list=explode(',',$_GET['files']);foreach($files_list as $f){$f=basename(trim($f));$fpp=$fp.'/'.$f;if(is_file($fpp)){$r=ltrim(str_replace(FILES_DIR,'',$fpp),'/');
$bl[]=['name'=>$f,'url'=>SITE_URL.'/f/'.basename($r),'path'=>$r];}}
$onetime_url='';if(count($bl)===1){$otl=generate_one_time_token($bl[0]['path']);$onetime_url=SITE_URL.'/dl/'.$otl;}}
if(isset($_GET['sign'])&&!empty($_GET['sign'])){$sf=$fp.'/'.basename($_GET['sign']);if(is_file($sf)){$rp=ltrim(str_replace(FILES_DIR,'',$sf),'/');$pp=SITE_URL.'/f/'.basename($rp);$tk=generate_one_time_token($rp);$tdu=SITE_URL.'/dl/'.$tk;}}
if(isset($_GET['search'])&&strlen(trim($_GET['search']))>=2){$sr=search_files(FILES_DIR,trim($_GET['search']),FILES_DIR);}

$items=[];
if($vt){if(is_dir(TRASH_DIR)){foreach(scandir(TRASH_DIR) as $i){if($i==='.'||$i==='..')continue;$ip=TRASH_DIR.'/'.$i;if(is_file($ip))$items[]=['name'=>preg_replace('/^\d+_/','',$i),'raw'=>$i,'is_dir'=>false,'size'=>filesize($ip),'modified'=>filemtime($ip)];}}}
else{if(is_dir($fp)){foreach(scandir($fp) as $i){if($i==='.'||$i==='..'||$i==='.trash')continue;$ip=$fp.'/'.$i;$is_d=is_dir($ip);$fi=$is_d?folder_info($ip):null;$items[]=['name'=>$i,'is_dir'=>$is_d,'size'=>$is_d?($fi['size']):filesize($ip),'modified'=>filemtime($ip),'files'=>$is_d?$fi['files']:0,'dirs'=>$is_d?$fi['dirs']:0];}}}
usort($items,function($a,$b){$ad=isset($a['is_dir'])&&$a['is_dir'];$bd=isset($b['is_dir'])&&$b['is_dir'];if($ad&&!$bd)return-1;if(!$ad&&$bd)return 1;return strcasecmp($a['name'],$b['name']);});

function folder_info($path) {
    $size = 0; $files = 0; $dirs = 0;
    $iter = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS));
    foreach ($iter as $f) {
        if ($f->isFile()) { $size += $f->getSize(); $files++; }
        elseif ($f->isDir()) { $dirs++; }
    }
    return ["size" => $size, "files" => $files, "dirs" => $dirs];
}
function gaf($d,$b){$f=[];if(!is_dir($d))return $f;foreach(scandir($d) as $i){if($i==='.'||$i==='..'||$i==='.trash')continue;$p=$d.'/'.$i;if(is_dir($p)){$r=ltrim(str_replace($b,'',$p),'/');$f[]=$r;$f=array_merge($f,gaf($p,$b));}}return $f;}
$af=gaf($base,$base);
$tf2=0;$ts2=0;function cr2($d,&$c,&$s){foreach(scandir($d) as $i){if($i==='.'||$i==='..'||$i==='.trash')continue;$p=$d.'/'.$i;if(is_file($p)){$c++;$s+=filesize($p);}elseif(is_dir($p))cr2($p,$c,$s);}}
cr2($base,$tf2,$ts2);$dt=disk_total_space($base);$dfr=disk_free_space($base);$du=$dt-$dfr;$trash=get_trash_size();
function ftree($d,$b,$c){$h='';if(!is_dir($d))return $h;foreach(scandir($d) as $i){if($i==='.'||$i==='..'||$i==='.trash')continue;$p=$d.'/'.$i;if(is_dir($p)){$r=ltrim(str_replace($b,'',$p),'/');$ac=$r===$c?' class="fta"':'';$h.='<div class="fti"><a href="?dir='.urlencode($r).'"'.$ac.'>📁 '.htmlspecialchars($i).'</a>';$sub=ftree($p,$b,$c);if($sub)$h.='<div class="fts">'.$sub.'</div>';$h.='</div>';}}return $h;}
$tree=ftree($base,$base,$cur);
$bc=[['n'=>'Root','p'=>'']];if($cur){$a='';foreach(explode('/',$cur) as $p){$a.=($a?'/':'').$p;$bc[]=['n'=>$p,'p'=>$a];}}
?><!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>File Server Panel</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{background:#0f172a;color:#e2e8f0;font-family:system-ui,-apple-system,sans-serif;font-size:13px}
.hd{background:linear-gradient(135deg,#1e293b,#0f172a);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #334155}
.hd h1{font-size:16px;color:#60a5fa}.hd-r{display:flex;align-items:center;gap:12px}.hd-r span{color:#cbd5e1;font-size:11px}.hd-r a{color:#94a3b8;text-decoration:none;font-size:12px}.hd-r a:hover{color:#60a5fa}
.toolbar{background:#1e293b;padding:8px 16px;border-bottom:1px solid #334155;display:flex;gap:2px;flex-wrap:wrap;align-items:center;justify-content:center;position:relative}
.tb-btn{padding:6px 12px;border:none;background:none;color:#cbd5e1;cursor:pointer;border-radius:6px;font-size:10px;gap:3px;min-width:56px;text-decoration:none}.tb-btn:hover{background:#334155;color:#fff}.tb-btn .ico{font-size:20px}.tb-sep{width:1px;height:36px;background:#334155;margin:0 4px}
.tb-search{display:flex;gap:4px;align-items:center;margin-left:auto}
.tb-search input{padding:6px 10px;background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:12px;width:200px}.tb-search input::placeholder{color:#64748b}
.tb-search button,.tb-search a{padding:6px 10px;border:none;border-radius:6px;font-size:11px;cursor:pointer;text-decoration:none;font-weight:500}
.layout{display:flex;min-height:calc(100vh - 100px)}
.side{width:180px;background:#1e293b;border-right:1px solid #334155;padding:10px;overflow-y:auto;flex-shrink:0;font-size:12px;align-self:flex-start;position:sticky;top:0;border-radius:0 0 8px 0}
.side h3{color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;padding:0 4px}
.fti a{display:block;padding:3px 6px;color:#cbd5e1;text-decoration:none;font-size:12px;border-radius:4px;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fti a:hover{background:#334155;color:#fff}.fta{background:#2563eb!important;color:#fff!important}.fts{padding-left:12px}
.trash-link{display:block;padding:5px 6px;color:#fbbf24;text-decoration:none;font-size:12px;border-radius:4px;margin-top:8px;border-top:1px solid #334155;padding-top:10px}
.trash-link:hover{background:#334155}
.main{flex:1;overflow-x:auto;min-width:0}
.brc{padding:8px 16px;font-size:12px;color:#cbd5e1}.brc a{color:#60a5fa;text-decoration:none}.brc span{color:#475569;margin:0 4px}
.msg{padding:8px 16px;font-size:12px;font-weight:500}.ms{background:#064e3b;color:#6ee7b7}.me{background:#7f1d1d;color:#fca5a5}
.ib{margin:8px 16px;padding:12px;background:#1e293b;border:1px solid #334155;border-radius:8px}.ib input,.ib textarea{width:100%;padding:7px 10px;background:#0f172a;border:1px solid #475569;border-radius:5px;color:#60a5fa;font-size:11px;margin-top:5px;font-family:monospace}.ib textarea{height:80px;resize:both}.ib label{color:#cbd5e1;font-size:11px}
/* Search results */
.sr-box{margin:8px 16px;background:#1e293b;border:1px solid #334155;border-radius:8px;overflow:hidden}
.sr-head{padding:10px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #334155;cursor:pointer}
.sr-head h3{color:#60a5fa;font-size:13px}.sr-head span{color:#64748b;font-size:11px}
.sr-body{max-height:300px;overflow-y:auto;transition:max-height .3s}
.sr-body.expanded{max-height:600px}
.sr-item{padding:8px 14px;border-bottom:1px solid #0f172a;display:flex;justify-content:space-between;align-items:center;gap:8px}
.sr-item:hover{background:#0f172a}.sr-item:last-child{border:none}
.sr-info{flex:1;min-width:0}.sr-name{color:#e2e8f0;font-size:12px;font-weight:500}.sr-path{color:#64748b;font-size:10px;margin-top:2px}
.sr-meta{color:#64748b;font-size:11px;white-space:nowrap;margin-right:8px}
.sr-actions{display:flex;gap:3px;flex-shrink:0}
.sr-resize{text-align:center;padding:4px;color:#475569;cursor:pointer;font-size:11px;border-top:1px solid #334155}.sr-resize:hover{color:#60a5fa;background:#0f172a}
/* Upload */
.up-sec{margin:8px 16px;background:#1e293b;border-radius:8px;border:1px solid #334155;overflow:hidden}
.up-head{padding:8px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #334155}
.up-head select{padding:4px 8px;background:#0f172a;border:1px solid #475569;border-radius:5px;color:#e2e8f0;font-size:12px}
.ua{padding:20px;text-align:center;cursor:pointer;border-bottom:1px solid #334155}.ua:hover{background:#0f172a}.ua h3{color:#60a5fa;font-size:14px;margin-bottom:3px}.ua p{color:#64748b;font-size:11px}
.ul{max-height:240px;overflow-y:auto}
.ui{display:flex;align-items:center;gap:8px;padding:5px 14px;font-size:11px;border-bottom:1px solid #0f172a}
.ui .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e2e8f0}.ui .sz{color:#94a3b8;min-width:60px;text-align:right}
.ui .sp{color:#34d399;min-width:60px;text-align:right;font-size:10px}
.ui .pb{width:140px;height:4px;background:#334155;border-radius:2px;overflow:hidden}.ui .pf{height:100%;background:#2563eb;border-radius:2px;transition:width .3s}
.ui .st{min-width:44px;text-align:center;font-size:11px;color:#e2e8f0}
.ui.do{background:#064e3b}.ui.do .pf{background:#10b981}.ui.er{background:#7f1d1d}
.bbr{padding:8px 16px;background:#1e293b;border-bottom:1px solid #334155;display:none;gap:8px;align-items:center}.bbr.av{display:flex}.bbr span{color:#60a5fa;font-weight:600;font-size:12px}
.btn{padding:4px 10px;border:none;border-radius:4px;cursor:pointer;font-size:10px;font-weight:500;text-decoration:none;color:#fff}.bb{background:#2563eb}.bg{background:#059669}.br{background:#dc2626}.by{background:#475569}
table{width:100%;border-collapse:collapse}th{text-align:left;padding:7px 14px;background:#1e293b;color:#94a3b8;font-size:10px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #334155;position:sticky;top:0;z-index:1}
td{padding:6px 14px;border-bottom:1px solid rgba(30,41,59,.3);color:#e2e8f0}tr:nth-child(odd){background:rgba(15,23,42,.6)}tr:nth-child(even){background:rgba(25,35,55,.6)}tr:hover{background:rgba(30,58,95,.7)}
a.fl{color:#e2e8f0;text-decoration:none}a.fl:hover{color:#60a5fa}.ac{display:none;gap:3px}tr:hover .ac,tr.selected .ac{display:flex}.selected{background:rgba(146,64,14,0.5)!important}.selected td{color:#fbbf24 !important}
th{position:relative}th .resizer{position:absolute;right:0;top:0;width:5px;height:100%;cursor:col-resize;background:transparent}th .resizer:hover,th .resizer.active{background:#60a5fa}
input[type=checkbox]{width:14px;height:14px;accent-color:#2563eb;cursor:pointer}
.md{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);z-index:100;justify-content:center;align-items:center}.md.av{display:flex}
.mb{background:#1e293b;padding:20px;border-radius:10px;width:420px;max-width:90vw}.mb h3{margin-bottom:12px;color:#60a5fa;font-size:15px}
.mb input[type=text],.mb select{width:100%;padding:8px;background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;margin-bottom:12px}
@media(max-width:768px){.side{display:none}}

.page-wrap{max-width:1100px;margin:0 auto;padding:0 15px}
</style></head><body><div class="page-wrap">
<div class="hd"><h1><a href="/panel/index.php" style="color:#60a5fa;text-decoration:none">📁 File Server Panel</a></h1><div class="hd-r"><span>📊 <?=number_format($tf2)?> files · <?=human_size($ts2)?> · Free: <?=human_size($dfr)?></span><?php if(!TOTP::isEnabled()):?><a href="/panel/setup_2fa.php">🔐 Setup 2FA</a><?php endif;?><a href="?logout=1">Logout</a></div></div>

<div class="toolbar">
<button class="tb-btn" onclick="$('up-sec').style.display=$('up-sec').style.display==='none'?'block':'none'"><span class="ico">⬆️</span>Upload</button>
<button class="tb-btn" onclick="$('nf-md').classList.add('av')"><span class="ico">📁</span>New Folder</button>
<div class="tb-sep"></div>
<button class="tb-btn" onclick="bulkGL()"><span class="ico">🔗</span>Get Link</button>
<button class="tb-btn" onclick="bulkRen()"><span class="ico">✏️</span>Rename</button>
<button class="tb-btn" onclick="showBM()"><span class="ico">📦</span>Move</button>
<button class="tb-btn" onclick="bulkDel()"><span class="ico">🗑️</span>Delete</button>
<div class="tb-sep"></div>

<div class="tb-sep"></div>
<a class="tb-btn" href="/panel/dashboard.php" style="text-decoration:none"><span class="ico">📊</span>Statistics</a>
<div class="tb-search">
<form method="get" style="display:flex;gap:4px"><input type="hidden" name="dir" value="<?=htmlspecialchars($cur)?>"><input name="search" placeholder="🔍 Search files..." value="<?=htmlspecialchars($_GET['search']??'')?>"><button type="submit" style="background:#2563eb;color:#fff">Search</button><?php if(isset($_GET['search'])):?><a href="?dir=<?=urlencode($cur)?>" style="background:#475569;color:#e2e8f0;padding:6px 10px;border-radius:6px">✕</a><?php endif;?></form>
</div></div>

<div class="layout">
<div class="side">
<h3>Folders</h3>
<div class="fti"><a href="?dir="<?=empty($cur)&&!$vt?' class="fta"':''?>>📁 Root</a>
<?php if($tree):?><div class="fts"><?=$tree?></div><?php endif;?>
</div>
<a href="?trash=1" class="trash-link"<?=$vt?' style="background:#334155"':''?>>🗑️ Trash (<?=$trash['count']?>) · <?=human_size($trash['size'])?></a>
<?php if($trash['count']>0):?><form method="post" style="padding:2px 6px"><button name="empty_trash" value="1" class="btn br" style="width:100%;margin-top:4px;padding:5px" onclick="return confirm('Permanently delete all?')">Empty Trash</button></form><?php endif;?>
</div>
<div class="main">
<div class="brc"><?php foreach($bc as $i=>$b):?><?php if($i>0):?><span>/</span><?php endif;?><a href="?dir=<?=urlencode($b['p'])?>"><?=htmlspecialchars($b['n'])?></a><?php endforeach;?><?php if($vt):?><span>/</span><span style="color:#fbbf24">🗑️ Trash</span><?php endif;?></div>
<?php if($msg):?><div class="msg m<?=$mt?>"><?=htmlspecialchars($msg)?></div><?php endif;?>

<?php if($pp):?>
<div class="ib"><label style="color:#6ee7b7;font-weight:600">📋 Permanent Path:</label><input value="<?=htmlspecialchars($pp)?>" onclick="this.select();navigator.clipboard.writeText(this.value);" readonly style="border-color:#059669"><div style="margin-top:6px"><label>🔗 Test Download:</label><input value="<?=htmlspecialchars($tdu)?>" onclick="this.select();navigator.clipboard.writeText(this.value);" readonly></div></div>
<?php endif;?>
<?php if(!empty($bl)):?>
<?php if($onetime_url):?><div class='sec' style='margin-bottom:10px'><div class='lb' style='color:#fbbf24'>🔗 One-Time Download Link:</div><textarea readonly onclick='this.select()' style='width:100%;height:35px;background:#0f172a;color:#fbbf24;border:1px solid #334155;border-radius:4px;padding:6px;font-size:12px'><?=$onetime_url?></textarea></div><?php endif;?>
<div class="ib"><label style="color:#6ee7b7;font-weight:600">📋 Bulk Links (<?=count($bl)?>):</label><textarea onclick="this.select();navigator.clipboard.writeText(this.value);" readonly><?php foreach($bl as $l)echo $l['url']."\n";?></textarea></div>
<?php endif;?>

<?php if($sr!==null):?>
<div class="sr-box">
<div class="sr-head" onclick="var b=$('sr-body');b.classList.toggle('expanded');this.querySelector('span').textContent=b.classList.contains('expanded')?'▲ Collapse':'▼ Expand'"><h3>🔍 "<?=htmlspecialchars($_GET['search'])?>" — <?=count($sr)?> results</h3><span>▼ Expand</span></div>
<div class="sr-body" id="sr-body">
<?php foreach($sr as $s):?>
<div class="sr-item">
<div class="sr-info"><div class="sr-name"><?php $sext=strtolower(pathinfo($s["name"],PATHINFO_EXTENSION));echo match($sext){"rar"=>"📦","zip"=>"📦","7z"=>"📦",default=>"📄"};?> <?=htmlspecialchars($s['name'])?></div><div class="sr-path">/<?=htmlspecialchars($s['path'])?></div></div>
<span class="sr-meta"><?=human_size($s['size'])?></span>
<div class="sr-actions">
<a href="?dir=<?=urlencode($s['dir'])?>&sign=<?=urlencode($s['name'])?>" class="btn bb">Link</a>
<a href="?dir=<?=urlencode($s['dir'])?>" class="btn by">Open</a><button type="button" class="btn by" onclick="mov_sr('<?=htmlspecialchars($s['name'],ENT_QUOTES)?>','<?=htmlspecialchars($s['dir'],ENT_QUOTES)?>')">Move</button><!-- --><button style="display:none" onclick="mov_sr('<?=htmlspecialchars($s['path'],ENT_QUOTES)?>')">Move</button>
<form method="post" style="display:inline"><input type="hidden" name="spath" value="<?=htmlspecialchars($s['path'])?>"><button name="search_delete" value="1" class="btn br" onclick="return confirm('Trash this file?')">Del</button></form>
</div></div>
<?php endforeach;?>
<?php if(empty($sr)):?><div style="text-align:center;padding:20px;color:#64748b">No files found</div><?php endif;?>
</div>
<div class="sr-resize" onclick="var b=$('sr-body');b.classList.toggle('expanded');this.textContent=b.classList.contains('expanded')?'▲ Less':'▼ More results'">▼ More results</div>
</div>
<?php endif;?>

<?php if(!$vt&&$sr===null):?>
<div class="up-sec" id="up-sec" style="display:none">
<div class="up-head"><div style="display:flex;gap:6px;align-items:center"><label style="color:#cbd5e1;font-size:11px">To:</label><select id="up-dir">
<option value="<?=htmlspecialchars($cur)?>">/<?=htmlspecialchars($cur?:' (Current)')?></option><option value="">/ Root</option>
<?php foreach($af as $f):?><option value="<?=htmlspecialchars($f)?>"<?=$f===$cur?' disabled':''?>>/<?=htmlspecialchars($f)?></option><?php endforeach;?>
</select></div><button class="btn bg" onclick="getUL()" id="ul-btn" style="display:none;padding:5px 10px">📋 Get Uploaded Links</button></div>
<div class="ua" id="da" onclick="$('fi').click()"><h3>📤 Drop files or click</h3><p>Chunked · Auto-retry · Resume</p><input type="file" id="fi" multiple style="display:none"></div>
<div id="ul-box" style="display:none;padding:6px 14px;background:#064e3b"><textarea id="ul-txt" onclick="this.select();navigator.clipboard.writeText(this.value);" readonly style="width:100%;padding:5px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#6ee7b7;font-size:10px;font-family:monospace;height:50px;resize:both"></textarea></div>
<div class="ul" id="ul"></div>
</div>
<?php endif;?>

<div class="bbr" id="bbr"><span id="sc">0</span><button class="btn bb" onclick="bulkGL()">Links</button><button class="btn by" onclick="bulkRen()">Rename</button><button class="btn by" onclick="showBM()">Move</button><button class="btn br" onclick="bulkDel()">Delete</button></div>

<form method="post" id="bf"><div id="table-wrap" style="max-height:70vh;overflow-y:auto;resize:both;border:1px solid #334155;border-radius:6px">
<table><thead><tr><th style="width:26px"><input type="checkbox" id="sa" onchange="togAll(this)"></th><th style="cursor:pointer" onclick="sortTable(1)">Name <span id="sort-1" style="color:#475569">⇅</span></th><th style="cursor:pointer" onclick="sortTable(2)">Size <span id="sort-2" style="color:#475569">⇅</span></th><th style="cursor:pointer" onclick="sortTable(3)">Modified <span id="sort-3" style="color:#475569">⇅</span></th></tr></thead><tbody>
<?php if($cur&&!$vt):?><tr><td></td><td colspan="4"><a class="fl" href="?dir=<?=urlencode(dirname($cur)==='.'?'':dirname($cur))?>">⬆ ..</a></td></tr><?php endif;?>
<?php if($vt):?><?php foreach($items as $it):?>
<tr><td></td><td style="color:#e2e8f0"><?php $text=strtolower(pathinfo($it["name"],PATHINFO_EXTENSION));echo match($text){"rar"=>"📦","zip"=>"📦","7z"=>"📦",default=>"📄"};?> <?=htmlspecialchars($it['name'])?></td><td style="color:#94a3b8"><?=human_size($it['size'])?></td><td style="color:#94a3b8"><?=date('Y-m-d H:i',$it['modified'])?></td>
<td><form method="post" style="display:inline"><input type="hidden" name="tf" value="<?=htmlspecialchars($it['raw'])?>"><button name="restore" value="1" class="btn bg">Restore</button></form></td></tr>
<?php endforeach;?><?php else:?><?php foreach($items as $it):?>
<tr><td><?php if(!$it['is_dir']):?><input type="checkbox" class="fc" name="sel[]" value="<?=htmlspecialchars($it['name'])?>" onchange="ub()"><?php endif;?></td>
<td><?php if($it['is_dir']):?>📁 <a class="fl" href="?dir=<?=urlencode($cur?$cur.'/'.$it['name']:$it['name'])?>"><?=htmlspecialchars($it['name'])?> <span style="color:#64748b;font-size:11px">(<?=$it['files']?>)</span></a><?php else:$ext=strtolower(pathinfo($it["name"],PATHINFO_EXTENSION));$ficon=match($ext){"rar"=>"<span style='color:#f59e0b'>📦</span>","zip"=>"<span style='color:#60a5fa'>📦</span>","7z"=>"<span style='color:#a78bfa'>📦</span>","gz"=>"<span style='color:#6ee7b7'>📦</span>","tar"=>"<span style='color:#fb923c'>📦</span>",default=>"<span style='color:#94a3b8'>📄</span>"};echo $ficon;?> <span style="color:#e2e8f0"><?=htmlspecialchars($it['name'])?></span><?php endif;?></td>
<td style="color:#94a3b8"><?=human_size($it['size'])?></td><td style="color:#94a3b8"><?=date('Y-m-d H:i',$it['modified'])?></td>
</tr>
<?php endforeach;?><?php endif;?>
<?php if(empty($items)):?><tr><td colspan="5" style="text-align:center;color:#64748b;padding:30px"><?=$vt?'Trash empty':'Empty'?></td></tr><?php endif;?>
</tbody></table>
</div><input type="hidden" name="bmt" id="bmt">
</form>

<!-- Modals -->
<div class="md" id="ren-md"><form method="post" class="mb"><h3>Rename</h3><input type="hidden" name="old" id="ro"><input type="text" name="new" id="rn" required><div style="display:flex;gap:6px;justify-content:flex-end"><button type="button" class="btn by" onclick="cm('ren-md')">Cancel</button><button name="rename" value="1" class="btn bb">Rename</button></div></form></div>
<div class="md" id="mov-md"><form method="post" class="mb"><h3>Move File</h3><input type="hidden" name="mf" id="mf"><select name="mt"><option value="">/ Root</option><?php foreach($af as $f):?><option value="<?=htmlspecialchars($f)?>">/<?=htmlspecialchars($f)?></option><?php endforeach;?></select><div style="display:flex;gap:6px;justify-content:flex-end"><button type="button" class="btn by" onclick="cm('mov-md')">Cancel</button><button name="move" value="1" class="btn bb">Move</button></div></form></div>
<div class="md" id="bm-md"><div class="mb"><h3>Move Selected</h3><select id="bms" style="width:100%;padding:8px;background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;margin-bottom:12px"><option value="">/ Root</option><?php foreach($af as $f):?><option value="<?=htmlspecialchars($f)?>">/<?=htmlspecialchars($f)?></option><?php endforeach;?></select><div style="display:flex;gap:6px;justify-content:flex-end"><button type="button" class="btn by" onclick="cm('bm-md')">Cancel</button><button type="button" class="btn bb" onclick="sbm()">Move</button></div></div></div>
<div class="md" id="nf-md"><form method="post" class="mb"><h3>New Folder</h3><input type="text" name="fn" placeholder="Folder name" required><div style="display:flex;gap:6px;justify-content:flex-end"><button type="button" class="btn by" onclick="cm('nf-md')">Cancel</button><button name="new_folder" value="1" class="btn bg">Create</button></div></form></div>

<!-- Search Move Modal -->
<div class="md" id="sr-mov-md"><div class="mb"><h3>Move File</h3>
<input type="hidden" id="sr-mf"><input type="hidden" id="sr-md">
<form method="post" id="sr-mov-form">
<input type="hidden" name="mf" id="sr-mf2"><input type="hidden" name="mt" id="sr-mt-val">
<input type="hidden" name="move" value="1"><input type="hidden" name="search_dir" id="sr-md2">
<select onchange="$('sr-mt-val').value=this.value" style="width:100%;padding:10px;background:#0f172a;border:1px solid #475569;border-radius:6px;color:#e2e8f0;margin-bottom:12px;font-size:13px">
<option value="">/ Root</option><?php foreach($af as $f2):?><option value="<?=htmlspecialchars($f2)?>">/<?=htmlspecialchars($f2)?></option><?php endforeach;?>
</select>
<div style="display:flex;gap:6px;justify-content:flex-end"><button type="button" class="btn by" onclick="cm('sr-mov-md')">Cancel</button><button type="button" class="btn bb" onclick="sbm_sr()">Move</button></div>
</form></div></div>
<form method="post" id="df" style="display:none"><input type="hidden" name="target" id="dt"><input type="hidden" name="delete" value="1"></form>
</div></div>

<script>
function $(id){return document.getElementById(id);}
var CD='<?=addslashes($cur)?>';var CS=5*1024*1024;var MR=5;var UL=[];

function hs(b){if(b>=1073741824)return(b/1073741824).toFixed(1)+'GB';if(b>=1048576)return(b/1048576).toFixed(1)+'MB';if(b>=1024)return(b/1024).toFixed(1)+'KB';return b+'B';}

var da=$('da'),fi=$('fi'),ul=$('ul');
if(da){['dragenter','dragover'].forEach(function(e){da.addEventListener(e,function(ev){ev.preventDefault();da.classList.add('dg');});});
['dragleave','drop'].forEach(function(e){da.addEventListener(e,function(ev){ev.preventDefault();da.classList.remove('dg');});});
da.addEventListener('drop',function(e){hf(e.dataTransfer.files);});fi.addEventListener('change',function(){hf(this.files);this.value='';});}

function hf(fs){for(var i=0;i<fs.length;i++)uc(fs[i]);}
function uc(file){
    var id='u'+Date.now()+Math.random().toString(36).substr(2,4);var fid=id;var tc=Math.ceil(file.size/CS);var dir=$('up-dir').value;
    ul.insertAdjacentHTML('afterbegin','<div class="ui" id="'+id+'"><div class="nm">'+file.name+'</div><div class="sz">'+hs(file.size)+'</div><div class="sp" id="'+id+'_sp"></div><div class="pb"><div class="pf" id="'+id+'_b"></div></div><div class="st" id="'+id+'_s">0%</div></div>');
    var done=new Set(),cur=0,t0=Date.now(),sent=0;
    function next(){
        if(cur>=tc){$(id).classList.add('do');$(id+'_s').textContent='✅';$('ul-btn').style.display='inline-flex';setTimeout(function(){if(!document.querySelector('.ui:not(.do):not(.er)'))location.reload();},2000);return;}
        if(done.has(cur)){cur++;next();return;}
        var s=cur*CS,e=Math.min(s+CS,file.size),ch=file.slice(s,e);var fd=new FormData();fd.append('chunk',ch);fd.append('file_id',fid);fd.append('chunk_num',cur);fd.append('total_chunks',tc);fd.append('filename',file.name);fd.append('dir',dir);
        var rt=0;
        function send(){var x=new XMLHttpRequest();
            x.addEventListener('load',function(){try{var r=JSON.parse(x.responseText);if(r.success){done.add(cur);sent+=e-s;var el=(Date.now()-t0)/1000;var sp=sent/el;$(id+'_sp').textContent=hs(sp)+'/s';var p=Math.round(done.size/tc*100);$(id+'_b').style.width=p+'%';$(id+'_s').textContent=p+'%';if(r.complete&&r.permanent_path)UL.push(r.permanent_path);cur++;next();}else retry();}catch(e){retry();}});
            x.addEventListener('error',function(){retry();});x.timeout=120000;x.addEventListener('timeout',function(){retry();});x.open('POST','/panel/chunk_upload.php');x.send(fd);}
        function retry(){rt++;if(rt>MR){$(id).classList.add('er');$(id+'_s').innerHTML='<span onclick="'+id+'r()" style="cursor:pointer;color:#fca5a5">↻</span>';window[id+'r']=function(){$(id).classList.remove('er');rt=0;send();};return;}$(id+'_s').textContent='⟳'+rt;setTimeout(send,2000*rt);}
        send();}
    var x=new XMLHttpRequest();x.addEventListener('load',function(){try{var r=JSON.parse(x.responseText);if(r.success&&r.uploaded_chunks)r.uploaded_chunks.forEach(function(c){done.add(c);});}catch(e){}next();});x.addEventListener('error',function(){next();});x.open('GET','/panel/chunk_upload.php?check='+fid);x.send();
}
function getUL(){if(UL.length){$('ul-txt').value=UL.join('\n');$('ul-box').style.display='block';$('ul-txt').select();navigator.clipboard.writeText($('ul-txt').value);}else alert('No uploads yet');}

function ub(){var c=document.querySelectorAll('.fc:checked');$('sc').textContent=c.length+' selected';$('bbr').classList.toggle('av',c.length>0);}
function togAll(e){document.querySelectorAll('.fc').forEach(function(c){c.checked=e.checked;});ub();}
function togAll2(){var s=$('sa');s.checked=!s.checked;togAll(s);}
function bulkGL(){var c=document.querySelectorAll('.fc:checked');var n=[];c.forEach(function(cb){n.push(cb.value);});if(!n.length)return alert('Select files');// AJAX ile link üret - sayfa yenilemeden
var fd=new FormData();fd.append('action','getlinks');fd.append('dir',CD);fd.append('files',n.join(','));
fetch('/panel/index.php?ajax_links=1',{method:'POST',body:fd,credentials:'same-origin'})
.then(function(r){return r.json()})
.then(function(data){
    if(data.links){
        var html='<div class="sec" style="margin:10px 0;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:6px">';
        html+='<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:8px"><b>📎 Bulk Links ('+data.links.length+'):</b><button onclick="this.closest(\'div.sec\').remove()" style="background:none;border:none;color:#f87171;cursor:pointer">✕ Close</button></div>';
        if(data.onetime){
            html+='<div style="margin-bottom:6px;color:#fbbf24;font-size:11px"><b>🔗 One-Time Download Link:</b></div>';
            html+='<textarea readonly onclick="this.select()" style="width:100%;height:32px;background:#1e293b;color:#fbbf24;border:1px solid #334155;border-radius:4px;padding:6px;font-size:11px;margin-bottom:8px">'+data.onetime+'</textarea>';
        }
        html+='<div style="color:#94a3b8;font-size:11px;margin-bottom:4px"><b>Permanent Links:</b></div>';
        html+='<textarea readonly onclick="this.select()" style="width:100%;height:'+(Math.min(data.links.length*22,120))+'px;background:#1e293b;color:#6ee7b7;border:1px solid #334155;border-radius:4px;padding:6px;font-size:11px">';
        data.links.forEach(function(l){html+=l.url+"\n";});
        html+='</textarea></div>';
        var existing=document.querySelector('.sec[data-linkbox]');
        if(existing)existing.remove();
        var box=document.createElement('div');box.setAttribute('data-linkbox','1');box.innerHTML=html;
        document.getElementById('table-wrap').before(box);
    }
});}
function bulkDel(){var c=document.querySelectorAll('.fc:checked');if(!c.length)return alert('Select files');if(!confirm('Trash '+c.length+' files?'))return;var f=$('bf');var i=document.createElement('input');i.type='hidden';i.name='bulk_delete';i.value='1';f.appendChild(i);f.submit();}
function showBM(){if(!document.querySelectorAll('.fc:checked').length)return alert('Select files');$('bm-md').classList.add('av');}
function sbm(){$('bmt').value=$('bms').value;var f=$('bf');var i=document.createElement('input');i.type='hidden';i.name='bulk_move';i.value='1';f.appendChild(i);f.submit();}

function bulkRen(){
    var cbs=document.querySelectorAll('.fc:checked');
    if(cbs.length===0)return alert('Select a file first');
    if(cbs.length>1)return alert('Select only 1 file to rename');
    ren(cbs[0].value);
}

function ren(n){$('ro').value=n;$('rn').value=n;$('ren-md').classList.add('av');$('rn').select();}
function mov(n){$('mf').value=n;$('mov-md').classList.add('av');}
function del(n){if(confirm('Trash "'+n+'"?')){$('dt').value=n;$('df').submit();}}
function cm(id){$(id).classList.remove('av');}
// Satira tikla = checkbox toggle
document.querySelectorAll('table tbody tr').forEach(function(tr){
    tr.style.cursor='pointer';
    tr.addEventListener('click',function(e){
        if(e.target.tagName==='INPUT'||e.target.tagName==='A'||e.target.tagName==='BUTTON'||e.target.closest('.ac'))return;
        var cb=tr.querySelector('.fc');
        if(cb){cb.checked=!cb.checked;ub();
            tr.classList.toggle('selected',cb.checked);
        }
    });
});

var sortDir = {};
var isResizing = false;
function sortTable(col) {
    if (isResizing) { isResizing = false; return; }
    var table = document.querySelector('table');
    var tbody = table.querySelector('tbody');
    var rows = Array.from(tbody.querySelectorAll('tr'));
    
    // Parent dir satırını ayır
    var parentRow = null;
    var dataRows = [];
    rows.forEach(function(r) {
        if (r.querySelector('a.fl') && r.textContent.trim().startsWith('⬆')) {
            parentRow = r;
        } else {
            dataRows.push(r);
        }
    });
    
    // Toggle direction
    sortDir[col] = sortDir[col] === 'asc' ? 'desc' : 'asc';
    var dir = sortDir[col];
    
    // Reset indicators
    for (var i = 1; i <= 3; i++) {
        var el = document.getElementById('sort-' + i);
        if (el) el.textContent = '⇅';
        if (el) el.style.color = '#475569';
    }
    var indicator = document.getElementById('sort-' + col);
    if (indicator) {
        indicator.textContent = dir === 'asc' ? '↑' : '↓';
        indicator.style.color = '#60a5fa';
    }
    
    dataRows.sort(function(a, b) {
        var cellA = a.cells[col];
        var cellB = b.cells[col];
        if (!cellA || !cellB) return 0;
        
        var valA, valB;
        
        if (col === 2) {
            // Size - byte olarak karşılaştır
            valA = parseSizeToBytes(cellA.textContent.trim());
            valB = parseSizeToBytes(cellB.textContent.trim());
        } else if (col === 3) {
            // Date
            valA = cellA.textContent.trim();
            valB = cellB.textContent.trim();
        } else {
            // Name - klasörleri üstte tut
            var isFolder_a = cellA.textContent.indexOf('📁') > -1;
            var isFolder_b = cellB.textContent.indexOf('📁') > -1;
            if (isFolder_a && !isFolder_b) return -1;
            if (!isFolder_a && isFolder_b) return 1;
            valA = cellA.textContent.trim().toLowerCase();
            valB = cellB.textContent.trim().toLowerCase();
        }
        
        var result;
        if (typeof valA === 'number') {
            result = valA - valB;
        } else {
            result = valA < valB ? -1 : valA > valB ? 1 : 0;
        }
        
        return dir === 'asc' ? result : -result;
    });
    
    // Yeniden ekle
    if (parentRow) tbody.appendChild(parentRow);
    dataRows.forEach(function(r) { tbody.appendChild(r); });
}

function parseSizeToBytes(s) {
    s = s.trim();
    if (s === '-' || s === '0 B') return 0;
    var match = s.match(/([\d.]+)\s*(B|KB|MB|GB|TB)/i);
    if (!match) return 0;
    var num = parseFloat(match[1]);
    var unit = match[2].toUpperCase();
    var multipliers = {'B':1, 'KB':1024, 'MB':1048576, 'GB':1073741824, 'TB':1099511627776};
    return num * (multipliers[unit] || 1);
}


// Column resize
document.querySelectorAll("table thead th").forEach(function(th){
    if(th.textContent.trim()===""||th.textContent.trim()==="Actions")return;
    var resizer=document.createElement("div");
    resizer.className="resizer";
    th.appendChild(resizer);
    var startX,startW,colIdx=th.cellIndex;
    resizer.addEventListener("mousedown",function(e){
        e.preventDefault();e.stopPropagation();
        startX=e.pageX;startW=th.offsetWidth;
        resizer.classList.add("active");isResizing=true;
        document.addEventListener("mousemove",onMove);
        document.addEventListener("mouseup",onUp);
    });
    function onMove(e){
        var w=Math.max(60,startW+(e.pageX-startX));
        th.style.width=w+"px";th.style.minWidth=w+"px";
        document.querySelectorAll("table tbody tr").forEach(function(tr){
            if(tr.cells[colIdx]){tr.cells[colIdx].style.width=w+"px";tr.cells[colIdx].style.minWidth=w+"px";}
        });
    }
    function onUp(){resizer.classList.remove("active");setTimeout(function(){isResizing=false;},100);document.removeEventListener("mousemove",onMove);document.removeEventListener("mouseup",onUp);}
});

document.querySelectorAll('.md').forEach(function(m){m.addEventListener('click',function(e){if(e.target===m)m.classList.remove('av');});});
function mov_sr(name,dir){$('sr-mf').value=name;$('sr-md').value=dir;$('sr-mov-md').classList.add('av');}function sbm_sr(){$('sr-mf2').value=$('sr-mf').value;$('sr-md2').value=$('sr-md').value;$('sr-mov-form').submit();}
</script></div></body></html>
