<div class="content-wrapper android-mikrotik-settings">
  <main class="amk-main">
    <header class="amk-heading">
      <div><span>Router API</span><h1>إعدادات MikroTik</h1><p>إدارة اتصال الراوتر محلياً أو عبر عنوان خارجي آمن.</p></div>
      <div class="amk-heading-icon"><i class="fa fa-server"></i></div>
    </header>

    <?php if($msg): ?><div class="amk-message"><i class="fa fa-check-circle"></i><span><?= h($msg) ?></span></div><?php endif; ?>
    <?php if($err): ?><div class="amk-message is-danger"><i class="fa fa-exclamation-circle"></i><span><?= h($err) ?></span></div><?php endif; ?>

    <section class="amk-section">
      <div class="amk-section-head"><div><span>الاتصال الأساسي</span><h2>بيانات الراوتر</h2></div><i class="fa fa-plug"></i></div>
      <form method="post" data-ua-android-native-layout>
        <label><span>عنوان الراوتر</span><input name="host" dir="ltr" value="<?= h($row['host']) ?>" placeholder="192.168.88.1 أو router.example.com"></label>
        <p class="amk-help"><i class="fa fa-globe"></i> للاتصال عبر الإنترنت استخدم نطاقاً أو IP خارجياً، مع تأمين منفذ API في الراوتر.</p>
        <div class="amk-pair">
          <label><span>اسم المستخدم</span><input name="username" dir="ltr" autocomplete="username" value="<?= h($row['username']) ?>"></label>
          <label><span>كلمة المرور</span><input name="password" dir="ltr" type="password" autocomplete="current-password" value="<?= h($row['password']) ?>"></label>
        </div>
        <label><span>منفذ API</span><input name="api_port" dir="ltr" inputmode="numeric" value="<?= h($row['api_port']) ?>"></label>

        <div class="amk-test-row">
          <button type="button" id="btnTestMk" class="amk-test"><i class="fa fa-signal"></i><span>اختبار الاتصال</span></button>
          <span id="mkTestResult" class="amk-result">لم يُختبر بعد</span>
        </div>

        <details class="amk-details">
          <summary><span><i class="fa fa-sliders"></i><b>إعدادات السرعات والطوابير</b></span><i class="fa fa-angle-down"></i></summary>
          <div class="amk-details-body">
            <label><span>Queue Parent</span><input name="queue_parent" dir="ltr" value="<?= h($row['queue_parent']) ?>"></label>
            <div class="amk-pair">
              <label><span>سرعة القطع</span><input name="cut_speed" dir="ltr" value="<?= h($row['cut_speed']) ?>"></label>
              <label><span>سرعة التحديد</span><input name="limit_speed" dir="ltr" value="<?= h($row['limit_speed']) ?>"></label>
            </div>
          </div>
        </details>

        <section class="amk-interfaces">
          <div class="amk-subhead"><div><span>مراقبة الحركة</span><h3>منافذ القياس</h3></div><button type="button" id="btnFetchIfs"><i class="fa fa-refresh"></i> جلب المنافذ</button></div>
          <label><span>منفذ الإنترنت WAN</span><input name="wan_interface" id="wan_interface" dir="ltr" value="<?= h($wan_interface) ?>" placeholder="ether1 / pppoe-out1"></label>
          <label><span>منفذ المشتركين</span><input name="subs_interface" id="subs_interface" dir="ltr" value="<?= h($subs_interface) ?>" placeholder="bridge-lan / ether2"></label>
          <div id="interfaceChoices" class="amk-interface-choices" hidden></div>
        </section>

        <button class="amk-save" name="save" value="1"><i class="fa fa-save"></i><span>حفظ إعدادات MikroTik</span></button>
      </form>
    </section>
  </main>
</div>
<script>
(function(){
  const testButton=document.getElementById('btnTestMk');
  const fetchButton=document.getElementById('btnFetchIfs');
  const result=document.getElementById('mkTestResult');
  const wan=document.getElementById('wan_interface');
  const subscribers=document.getElementById('subs_interface');
  const choices=document.getElementById('interfaceChoices');
  async function fetchJson(url){const response=await fetch(url,{credentials:'same-origin'});return await response.json();}
  testButton?.addEventListener('click',async()=>{
    result.className='amk-result is-loading'; result.textContent='جارٍ الاختبار…';
    try{const data=await fetchJson('api/mikrotik_status.php');result.className='amk-result '+(data.connected?'is-ok':'is-error');result.textContent=data.connected?'متصل بنجاح':'تعذر الاتصال';}
    catch(error){result.className='amk-result is-error';result.textContent='تعذر الاتصال';}
  });
  fetchButton?.addEventListener('click',async()=>{
    fetchButton.disabled=true; choices.hidden=false; choices.innerHTML='<p>جارٍ قراءة المنافذ…</p>';
    try{
      const data=await fetchJson('api/mikrotik_interfaces.php');
      if(!data.ok) throw new Error(data.error||'Error');
      const names=(data.interfaces||[]).map(item=>item.name).filter(Boolean);
      choices.innerHTML=names.length?'<p>اضغط مرة لتعيين WAN، ومرتين لتعيين منفذ المشتركين.</p>':'';
      names.forEach(name=>{const button=document.createElement('button');button.type='button';button.textContent=name;button.dataset.step='wan';button.addEventListener('click',()=>{if(button.dataset.step==='wan'){wan.value=name;button.dataset.step='subs';button.classList.add('is-wan');button.title='اضغط ثانية لتعيينه للمشتركين';}else{subscribers.value=name;button.classList.add('is-subs');}});choices.appendChild(button);});
      if(!names.length) choices.innerHTML='<p class="is-error">لا توجد منافذ متاحة.</p>';
    }catch(error){choices.innerHTML='<p class="is-error">تعذر جلب المنافذ. تحقق من الاتصال أولاً.</p>';}
    finally{fetchButton.disabled=false;}
  });
})();
</script>
