-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
110 lines (97 loc) · 5 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
function toggleTheme() {
const body = document.body;
const sunIcon = document.getElementById('sunIcon');
const moonIcon = document.getElementById('moonIcon');
if (body.classList.contains('dark-mode')) {
body.classList.remove('dark-mode');
body.classList.add('light-mode');
sunIcon.classList.remove('hidden');
moonIcon.classList.add('hidden');
} else {
body.classList.remove('light-mode');
body.classList.add('dark-mode');
sunIcon.classList.add('hidden');
moonIcon.classList.remove('hidden');
}
}
function showSection() {
const selectedCourse = document.getElementById('courseSelect').value;
const sections = document.querySelectorAll('.course-section');
sections.forEach(section => {
section.style.display = 'none';
section.classList.remove('active');
});
if (selectedCourse) {
const selectedSection = document.getElementById(selectedCourse);
selectedSection.style.display = 'block';
selectedSection.classList.add('active');
}
}
function isValidMark(mark) {
return !isNaN(mark) && mark >= 0 && mark <= 100;
}
function calculateResult(assignmentMark, examMark, weights, passMark, resultElementId, specialCases = []) {
if (!isValidMark(assignmentMark) || !isValidMark(examMark)) {
document.getElementById(resultElementId).textContent = 'الرجاء إدخال علامات صحيحة.';
return;
}
// التحقق من علامة الوظيفة
if (assignmentMark < 40) {
document.getElementById(resultElementId).className = 'result failure';
document.getElementById(resultElementId).textContent = 'للأسف، لا يمكنك تقديم الامتحان لأن علامة الوظيفة أقل من الحد الأدنى.';
return;
}
// التحقق من علامة الامتحان
if (examMark < 40) {
document.getElementById(resultElementId).className = 'result failure';
document.getElementById(resultElementId).textContent = 'للأسف، لا يمكنك النجاح لأن علامة الامتحان أقل من الحد الأدنى.';
return;
}
const [assignmentWeight, examWeight] = weights;
const total = (assignmentMark * assignmentWeight) + (examMark * examWeight);
const resultElement = document.getElementById(resultElementId);
if (total.toFixed(2) > 100) {
resultElement.className = 'result failure';
resultElement.textContent = 'خطأ: العلامة المدخلة لا يجب أن تتجاوز 100 درجة.';
return;
}
// التحقق من الحالات الخاصة
if (specialCases.includes(total.toFixed(2))) {
resultElement.className = 'result warning';
resultElement.textContent = `تنبيه: تحتاج إلى ${total < passMark ? 'علامة أو علامتين' : 'علامتين'} للنجاح. مجموعك: ${total.toFixed(2)}`;
return;
}
if (total >= passMark) {
resultElement.className = total >= (passMark + 1) ? 'result success' : 'result success';
resultElement.textContent = total >= (passMark + 1)
? 'مبروك، لقد نجحت! مجموعك: ' + total.toFixed(2)
: 'مبروك: تم تقريب العلامة إلى علامة النجاح. مجموعك: ' + total.toFixed(2);
} else if (total >= (passMark - 2) && total < passMark) {
resultElement.className = 'result warning';
resultElement.textContent = 'تنبيه: تحتاج إلى علامة أو علامتين للنجاح. مجموعك: ' + total.toFixed(2);
} else {
resultElement.className = 'result failure';
resultElement.textContent = 'للأسف، لم تنجح. مجموعك: ' + total.toFixed(2);
}
}
function calculateEnglish() {
const assignmentMark = parseFloat(document.getElementById('englishAssignment').value) || 0;
const examMark = parseFloat(document.getElementById('englishExam').value) || 0;
calculateResult(assignmentMark, examMark, [0.20, 0.80], 49.20, 'englishResult', ['47.20']);
}
function calculateBACT() {
const assignmentMark = parseFloat(document.getElementById('bactAssignment').value) || 0;
const examMark = parseFloat(document.getElementById('bactExam').value) || 0;
calculateResult(assignmentMark, examMark, [0.30, 0.70], 59.30, 'bactResult', ['57.30']);
}
function calculateBAIT() {
const assignmentMark = parseFloat(document.getElementById('baitAssignment').value) || 0;
const examMark = parseFloat(document.getElementById('baitExam').value) || 0;
calculateResult(assignmentMark, examMark, [0.25, 0.75], 59.25, 'baitResult', ['57.25']);
}
function resetFields() {
const inputs = document.querySelectorAll('input[type="number"]');
inputs.forEach(input => input.value = '');
const results = document.querySelectorAll('.result');
results.forEach(result => result.textContent = '');
}