import sys
from playwright.sync_api import sync_playwright
from _pw import get_ffg_page
section=sys.argv[1]
def nav(page,name):
    for a in page.query_selector_all("a"):
        if a.is_visible() and (a.inner_text() or "").strip().split("\n")[0].strip()==name:
            a.click(); page.wait_for_load_state("networkidle", timeout=20000); return True
    return False
def lab(page,el):
    eid=el.get_attribute("id") or ""
    l=page.query_selector(f'label[for="{eid}"]') if eid else None
    return (l.inner_text() or "").strip() if l else ""
with sync_playwright() as p:
    browser, page = get_ffg_page(p)
    nav(page,"Projektdaten"); page.wait_for_timeout(400)
    for a in page.query_selector_all("a"):
        if a.is_visible() and (a.inner_text() or "").strip().split("\n")[0].strip()==section:
            a.click(); page.wait_for_load_state("networkidle", timeout=20000); break
    page.wait_for_timeout(800)
    TEXT={"Vorname":"Nemanja","Nachname":"Klincov","E-Mail":"nemanja@breact.ai",
          "Strasse, Hausnummer":"Esslinggasse 5/Top1","PLZ":"1010","Ort":"Wien"}
    for el in page.query_selector_all("input[type=text]"):
        if not el.is_visible(): continue
        L=lab(page,el)
        for k,v in TEXT.items():
            if L.startswith(k): el.fill(v); break
    # phone: find +43 field, fill next two
    vis=[el for el in page.query_selector_all("input[type=text]") if el.is_visible()]
    for i,el in enumerate(vis):
        if (el.input_value() or "").strip()=="+43":
            if i+1<len(vis): vis[i+1].fill("677")
            if i+2<len(vis): vis[i+2].fill("61591536")
            break
    # selects
    for s in page.query_selector_all("select"):
        if not s.is_visible(): continue
        L=lab(page,s); opts=[(o.inner_text() or '').strip() for o in s.query_selector_all('option')]
        if "Männlich" in opts and not L: s.select_option(label="Männlich")
        elif L.startswith("Staat") and "Österreich" in opts: s.select_option(label="Österreich")
        elif L.startswith("Bundesland") and "Wien" in opts: s.select_option(label="Wien")
    page.wait_for_timeout(300)
    page.query_selector("input[value='Speichern']").click()
    page.wait_for_load_state("networkidle", timeout=20000); page.wait_for_timeout(1000)
    for a in page.query_selector_all("a"):
        t=(a.inner_text() or "").strip()
        if t.startswith(section): print("STATUS",section,":", "🔴" if "Prüfregeln" in t else "🟢"); break
