التسجيل في عضوية المجلس

Apply for Membership

عبّئ النموذج وسيتم التواصل معك من فريق مجلس طلاب خطوة.

يُفضّل بريد ‎@latrobe.edu.au
العودة للرئيسية
(function(){ // سنة الحقوق const y=document.getElementById('year'); if(y){ y.textContent=new Date().getFullYear(); } // منيو الجوال + وصولية const menuBtn = document.getElementById('menu-toggle'); const primaryNav = document.getElementById('primary-nav'); const mq = matchMedia('(min-width:901px)'); function setMenu(open){ if(!menuBtn || !primaryNav) return; primaryNav.setAttribute('data-open', String(open)); menuBtn.setAttribute('aria-expanded', String(open)); primaryNav.setAttribute('aria-hidden', String(!open && !mq.matches)); if(open){ (primaryNav.querySelector('a,button') || menuBtn).focus(); } } setMenu(false); menuBtn?.addEventListener('click',()=> setMenu(primaryNav.getAttribute('data-open')!=='true')); mq.addEventListener('change', e=>{ setMenu(false); primaryNav.setAttribute('aria-hidden', e.matches ? 'false' : 'true'); }); document.addEventListener('click', (e)=>{ const open = primaryNav.getAttribute('data-open')==='true'; const t=e.target; if(open && t instanceof Node && !primaryNav.contains(t) && !menuBtn.contains(t)) setMenu(false); }); document.addEventListener('keydown', (e)=>{ if(e.key==='Escape') setMenu(false); }); primaryNav?.addEventListener('click', (e)=>{ const link=e.target.closest?.('a'); if(link) setMenu(false); }); // تبديل اللغة + placeholders + تحديث const langBtn = document.getElementById('lang-toggle'); function currentLang(){ return localStorage.getItem('khotwa_lang')==='en' ? 'en' : 'ar'; } function setLang(lang){ document.querySelectorAll('[data-lang]').forEach(el=>{ const want = el.getAttribute('data-lang')===lang; el.hidden = !want; el.setAttribute('aria-hidden', String(!want)); }); document.documentElement.lang = (lang==='ar')?'ar':'en'; document.documentElement.dir = (lang==='ar')?'rtl':'ltr'; langBtn?.setAttribute('aria-pressed', String(lang!=='ar')); if(langBtn) langBtn.textContent = (lang==='ar')?'English':'العربية'; // placeholders document.querySelectorAll('[data-ph-ar]').forEach(input=>{ input.placeholder = (lang==='ar') ? input.getAttribute('data-ph-ar') : input.getAttribute('data-ph-en'); }); // sync <title> const t = document.querySelector('title[data-lang="'+lang+'"]'); if(t) document.title = t.textContent.trim(); localStorage.setItem('khotwa_lang', lang); } setLang(currentLang()); langBtn?.addEventListener('click', ()=> setLang(currentLang()==='ar'?'en':'ar')); // توست const toast = document.getElementById('toast'); function showToast(msg, ok=true){ toast.textContent = msg; toast.className = 'toast ' + (ok?'ok':'bad'); toast.style.display = 'block'; setTimeout(()=> toast.style.display = 'none', 4200); } // تحقّق النموذج + إرسال const form = document.getElementById('applyForm'); const submitBtn = document.getElementById('submitBtn'); const emailRe = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/i; const auPhone = /^\+?61\s?4\d{2}[\s-]?\d{3}[\s-]?\d{3}$/; // رقم أسترالي جوّال شائع function t(ar,en){ return (document.documentElement.lang==='ar')?ar:en; } function setErr(id,msg){ const input = document.getElementById(id); const err = document.getElementById('e-'+id); if(!input||!err) return; const has = !!msg; input.setAttribute('aria-invalid', String(has)); err.textContent = msg||''; if(has){ err.setAttribute('aria-live','polite'); } else { err.removeAttribute('aria-live'); } } function validate(){ let ok=true; const fullName=document.getElementById('fullName').value.trim(); const email=document.getElementById('email').value.trim(); const phone=document.getElementById('phone').value.trim(); const program=document.getElementById('program').value; setErr('fullName', fullName? '' : t('الرجاء كتابة الاسم الكامل','Please enter your full name')); ok = ok && !!fullName; setErr('email', emailRe.test(email)? '' : t('بريد غير صالح','Invalid email')); ok = ok && emailRe.test(email); setErr('program', program? '' : t('اختر البرنامج','Select your program')); ok = ok && !!program; if(phone){ setErr('phone', auPhone.test(phone)? '' : t('صيغة رقم غير صحيحة (+61 4xx xxx xxx)','Invalid AU mobile format (+61 4xx xxx xxx)')); ok = ok && auPhone.test(phone); } else { setErr('phone',''); } return ok; } form.addEventListener('input', (e)=>{ const id=e.target.id; if(['fullName','email','phone','program','intake','interest'].includes(id)){ validate(); saveDraft(); } }); // مسودة تلقائية لمنع ضياع البيانات const DKEY='khotwa_apply_draft'; function saveDraft(){ const data={ fullName:document.getElementById('fullName').value, email:document.getElementById('email').value, phone:document.getElementById('phone').value, program:document.getElementById('program').value, intake:document.getElementById('intake').value, interest:document.getElementById('interest').value }; localStorage.setItem(DKEY, JSON.stringify(data)); } function loadDraft(){ try{ const d=JSON.parse(localStorage.getItem(DKEY)||'null'); if(!d) return; for(const k in d){ const el=document.getElementById(k); if(el) el.value=d[k]||''; } }catch{} } loadDraft(); // يحمّل المسودة إن وجدت form.addEventListener('submit', async (e)=>{ e.preventDefault(); if(!validate()){ const firstInvalid=form.querySelector('[aria-invalid="true"]'); if(firstInvalid) firstInvalid.focus(); return; } const fd = new FormData(form); // honeypot if(fd.get('_gotcha')){ showToast(t('تم حظر الإرسال (اشتباه سبام)','Submission blocked (spam suspected)'), false); return; } submitBtn.disabled=true; submitBtn.style.opacity=.7; try{ const res = await fetch(form.action, { method:'POST', body:fd, headers:{'Accept':'application/json'} }); if(res.ok){ showToast(t('تم إرسال الطلب بنجاح ✅','Application sent successfully ✅'), true); localStorage.removeItem(DKEY); form.reset(); ['fullName','email','phone','program','intake','interest'].forEach(id=> setErr(id,'')); }else{ showToast(t('تعذّر الإرسال ❌','Submission failed ❌'), false); } }catch{ showToast(t('خطأ بالشبكة ❌','Network error ❌'), false); }finally{ submitBtn.disabled=false; submitBtn.style.opacity=1; } }); })(); </script> <!-- CMS --> <!-- الميزات المحسّنة --> <link rel="stylesheet" href="/assets/features.css"> <script src="/assets/features.js" defer></script> <script src="/assets/pagination.js"></script> <script src="/assets/advanced-filters.js"></script> <script src="/assets/feedback.js"></script> <script src="/assets/newsletter.js"></script> <script src="/assets/form-validation.js"></script> <script src="/assets/admin-button.js"></script> <script src="/assets/feedback-button.js"></script> <script src="js/config.js"></script> <script src="js/settings-loader.js"></script> <script src="/js/language-toggle.js"></script> <script src="js/menu-toggle.js"></script> <script src="/assets/site-settings-loader.js"></script> </body> </html>