# جو وول · Go Wall

لوحة نتائج احترافية متعددة الرياضات تعمل بالكامل داخل المتصفح — **بدون تثبيت وبدون إنترنت**.
A pro multi-sport scoreboard for **football, handball and tennis**. Pure HTML/CSS/JS, zero dependencies, installable as a PWA.

## المزايا · Features

**عام / General**
- حفظ تلقائي في المتصفح (تبقى النتيجة بعد إغلاق الصفحة) · auto-save
- تراجع (Undo) عن أي هدف أو نقطة أو بطاقة · unlimited-ish undo (80 steps)
- **وضع العرض (TV mode)** للشاشات الكبيرة مع منع انطفاء الشاشة · Wake Lock
- اختصارات لوحة المفاتيح، أصوات مولّدة برمجيًا، ألوان فرق قابلة للتغيير
- ساعات دقيقة مبنية على الطوابع الزمنية (لا تتأخر عند تصغير التبويب)
- PWA: يعمل offline ويمكن تثبيته على الهاتف/الحاسوب

**⚽ كرة القدم** — ساعة تصاعدية بأربعة أشواط (أصلي + إضافي) مع **وقت بدل الضائع +MM:SS**، تعديل الوقت يدويًا، أخطاء، بطاقات صفراء/حمراء، وسجل أحداث بالدقيقة.

**🤾 كرة اليد** — ساعة تنازلية 30:00 لكل شوط، أوقات مستقطعة (3)، **إيقافات دقيقتين** تُحتسب مع الساعة فقط وتنتقل بين الشوطين، صافرة نهاية الشوط.

**🎾 التنس** — نظام نقاط كامل (15/30/40/AD)، **Tie-break عند 6-6**، تبديل المرسل تلقائيًا (بما فيه الشوط الفاصل)، أفضل من 1/3/5 مجموعات، وضع No-Ad، سجل المجموعات وإعلان الفائز.

## اللغة · Language

عربي / English بزر واحد في أعلى الصفحة (يتذكّر اختيارك). الواجهة والمعلق الصوتي يتبدّلان معًا.
Arabic / English with one button in the header (remembered). The UI and the commentator switch together.

## المعلق الصوتي · Commentator

صوت ذكوري حماسي **ثابت في كل المتصفحات**: مقاطع صوتية جاهزة (`audio/ar`, `audio/en`) تُركَّب في جمل، بدل صوت المتصفح.
يُشغَّل بمحرّك Web Audio: تُقصّ فترات الصمت وتُوصَل المقاطع كأنها جملة واحدة مع رفع الصوت. يعلّق بحسب سياق المباراة (الهدف الأول، التعادل، التقدّم، العودة، هدف في الوقت القاتل، الدقيقة) ويملأ الفراغ بتعليقات حيّة أثناء اللعب وهتاف جمهور مُولَّد. يعلّق على الأهداف والبطاقات والأخطاء والأشواط والوقت المستقطع والإيقافات ونقاط التنس. يُشغَّل/يُوقَف بزر 🎙️ أو `V`.
لإعادة توليد المقاطع أو تغيير الصوت: `pip install edge-tts && python tools/gen_voice.py` (الصوت الحالي `ar-SA-HamedNeural`).

## الاختصارات · Shortcuts

| المفتاح | الوظيفة |
|---|---|
| `Space` | تشغيل/إيقاف الساعة |
| `1` / `2` | هدف أو نقطة للفريق 1 / 2 (`Shift` للإنقاص) |
| `Z` | تراجع |
| `T` | وضع العرض |
| `F` | ملء الشاشة |
| `M` | كتم الصوت |
| `?` | المساعدة |

## التشغيل · Run

ملف ثابت — افتح `index.html`، أو شغّل خادمًا محليًا (مطلوب لتفعيل PWA):

```bash
python -m http.server 8000
# ثم افتح http://localhost:8000
```

## النشر · Deploy

أي استضافة ثابتة تعمل (GitHub Pages، Netlify، Cloudflare Pages…).

## الهيكل · Structure

```
index.html            الواجهة
css/style.css         التصميم (RTL، متجاوب، وضع العرض)
js/app.js             المنطق: الحالة، الساعات، التنس، العرض
sw.js                 Service Worker (offline)
manifest.webmanifest  PWA
```

## الرخصة · License

MIT — انظر [LICENSE](LICENSE).
