Spaces:
Running
Running
Update index.html
Browse files- index.html +173 -241
index.html
CHANGED
@@ -11,77 +11,89 @@
|
|
11 |
|
12 |
body {
|
13 |
font-family: 'Tajawal', sans-serif;
|
14 |
-
background
|
15 |
}
|
16 |
|
17 |
.premium-gradient {
|
18 |
-
background: linear-gradient(135deg, #
|
19 |
}
|
20 |
|
21 |
.gold-accent {
|
22 |
-
color: #
|
23 |
}
|
24 |
|
25 |
.feature-card {
|
26 |
-
transition: all 0.
|
27 |
border: 1px solid rgba(229, 231, 235, 0.5);
|
|
|
|
|
28 |
}
|
29 |
|
30 |
.feature-card:hover {
|
31 |
transform: translateY(-5px);
|
32 |
-
box-shadow: 0
|
33 |
-
border-color: #
|
34 |
}
|
35 |
|
36 |
.premium-button {
|
37 |
-
background: linear-gradient(135deg, #
|
38 |
transition: all 0.3s ease;
|
39 |
}
|
40 |
|
41 |
.premium-button:hover {
|
42 |
transform: translateY(-2px);
|
43 |
-
box-shadow: 0 5px 15px rgba(
|
44 |
}
|
45 |
|
46 |
.custom-scroll::-webkit-scrollbar {
|
47 |
-
width:
|
48 |
}
|
49 |
|
50 |
.custom-scroll::-webkit-scrollbar-track {
|
51 |
background: #f1f1f1;
|
|
|
52 |
}
|
53 |
|
54 |
.custom-scroll::-webkit-scrollbar-thumb {
|
55 |
-
background: #
|
56 |
-
border-radius:
|
57 |
}
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
}
|
63 |
|
64 |
.logo-img {
|
65 |
max-height: 60px;
|
66 |
width: auto;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
}
|
68 |
</style>
|
69 |
</head>
|
70 |
-
<body>
|
71 |
<!-- الهيدر -->
|
72 |
-
<header class="premium-gradient text-white">
|
73 |
-
<div class="container mx-auto px-
|
74 |
<nav class="flex justify-between items-center">
|
75 |
-
<div class="flex items-center gap-
|
76 |
-
<img src="https://ufastpro.com/wp-content/uploads/2025/01
|
77 |
<div>
|
78 |
-
<h1 class="text-2xl font-bold"
|
79 |
-
<p class="text-sm text-gray-300"
|
80 |
</div>
|
81 |
</div>
|
82 |
-
<div class="flex gap-
|
83 |
-
<a href="https://
|
84 |
-
<button onclick="showLegalChat()" class="premium-button text-gray-900 px-6 py-2 rounded-lg font-bold">
|
85 |
اسأل سؤال قانوني
|
86 |
</button>
|
87 |
</div>
|
@@ -89,9 +101,9 @@
|
|
89 |
</div>
|
90 |
</header>
|
91 |
|
92 |
-
<main class="container mx-auto px-
|
93 |
<!-- قسم البحث الرئيسي -->
|
94 |
-
<div class="
|
95 |
<div class="max-w-3xl mx-auto">
|
96 |
<h2 class="text-3xl font-bold text-center mb-8 text-gray-800">البحث في التشريعات والأحكام القضائية</h2>
|
97 |
<div class="flex gap-4">
|
@@ -99,7 +111,7 @@
|
|
99 |
<i class="fas fa-search absolute right-4 top-4 text-gray-400"></i>
|
100 |
<input type="text"
|
101 |
id="searchInput"
|
102 |
-
class="w-full p-
|
103 |
placeholder="ابحث في القوانين، الأحكام، والمواد القانونية...">
|
104 |
</div>
|
105 |
<button onclick="handleSearch()" class="premium-button px-8 py-3 rounded-xl font-bold flex items-center gap-2">
|
@@ -107,93 +119,59 @@
|
|
107 |
بحث
|
108 |
</button>
|
109 |
</div>
|
110 |
-
<div id="searchResults" class="mt-4 custom-scroll"></div>
|
111 |
</div>
|
112 |
</div>
|
113 |
|
114 |
<!-- الخدمات الرئيسية -->
|
115 |
-
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8
|
116 |
<!-- تحليل القضايا -->
|
117 |
-
<div class="feature-card
|
118 |
<div class="flex items-center gap-4 mb-6">
|
119 |
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center">
|
120 |
<i class="fas fa-gavel gold-accent text-xl"></i>
|
121 |
</div>
|
122 |
<h3 class="text-xl font-bold">تحليل القضايا</h3>
|
123 |
</div>
|
124 |
-
<p class="text-gray-600 mb-6">تحليل متقدم للقضايا باستخدام أحدث التقنيات والذكاء الاصطناعي مع مراعاة القوانين المصرية</p>
|
125 |
-
<button onclick="showCaseAnalysis()" class="w-full
|
126 |
تحليل قضية جديدة
|
127 |
</button>
|
128 |
</div>
|
129 |
|
130 |
<!-- اسأل الموضوع -->
|
131 |
-
<div class="feature-card
|
132 |
<div class="flex items-center gap-4 mb-6">
|
133 |
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center">
|
134 |
<i class="fas fa-comments gold-accent text-xl"></i>
|
135 |
</div>
|
136 |
<h3 class="text-xl font-bold">اسأل الموضوع</h3>
|
137 |
</div>
|
138 |
-
<p class="text-gray-600 mb-6">اطرح سؤالك حول أي موضوع قانوني وسنقوم بتحليله والإجابة عليه بدقة</p>
|
139 |
-
<button onclick="showAskTopic()" class="w-full
|
140 |
اطرح سؤالك
|
141 |
</button>
|
142 |
</div>
|
143 |
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
<h3 class="text-xl font-bold">كتابة العقود والوثائق بالذكاء الاصطناعي</h3>
|
150 |
-
</div>
|
151 |
-
<p class="text-gray-600 mb-6">كتابة العقود والمواثيق والاوراق الهامة اصبح سهل الان مع سبيدي</p>
|
152 |
-
<div class="w-full bg-gray-100 text-gray-800 py-3 rounded-xl hover:bg-gray-200 transition-colors font-bold text-center cursor-pointer">
|
153 |
-
خلي سبيدي يكتبلك وثيقتك او عقدك
|
154 |
-
</div>
|
155 |
-
</a>
|
156 |
-
<!-- الأدوات القانونية -->
|
157 |
-
<h2 class="text-2xl font-bold mb-6 text-gray-800">الأدوات القانونية المتخصصة</h2>
|
158 |
-
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
|
159 |
-
<div class="feature-card bg-white p-6 rounded-xl">
|
160 |
-
<div class="flex items-center gap-3">
|
161 |
-
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center">
|
162 |
-
<i class="fas fa-calendar gold-accent"></i>
|
163 |
-
</div>
|
164 |
-
<span class="font-bold">(لم يعمل بعد)إدارة الجلسات</span>
|
165 |
-
</div>
|
166 |
-
</div>
|
167 |
-
<div class="feature-card bg-white p-6 rounded-xl">
|
168 |
-
<div class="flex items-center gap-3">
|
169 |
-
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center">
|
170 |
-
<i class="fas fa-book gold-accent"></i>
|
171 |
-
</div>
|
172 |
-
<span class="font-bold">(لم يعمل بعد)المكتبة القانونية</span>
|
173 |
-
</div>
|
174 |
-
</div>
|
175 |
-
<div class="feature-card bg-white p-6 rounded-xl">
|
176 |
-
<div class="flex items-center gap-3">
|
177 |
-
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center">
|
178 |
-
<i class="fas fa-calculator gold-accent"></i>
|
179 |
-
</div>
|
180 |
-
<span class="font-bold">(لم يعمل بعد)حاسبة الأتعاب</span>
|
181 |
-
</div>
|
182 |
-
</div>
|
183 |
-
<div class="feature-card bg-white p-6 rounded-xl">
|
184 |
-
<div class="flex items-center gap-3">
|
185 |
-
<div class="w-10 h-10 rounded-lg premium-gradient flex items-center justify-center">
|
186 |
-
<i class="fas fa-file-signature gold-accent"></i>
|
187 |
</div>
|
188 |
-
<
|
189 |
</div>
|
|
|
|
|
|
|
|
|
190 |
</div>
|
191 |
</div>
|
192 |
</main>
|
193 |
|
194 |
<!-- نافذة الدردشة القانونية -->
|
195 |
-
<div id="legalChatModal" class="hidden fixed inset-0 bg-black bg-opacity-
|
196 |
-
<div class="
|
197 |
<div class="flex justify-between items-center mb-6">
|
198 |
<h3 class="text-2xl font-bold text-gray-800">اسأل سؤال قانوني</h3>
|
199 |
<button onclick="hideLegalChat()" class="text-gray-500 hover:text-gray-700">
|
@@ -204,7 +182,10 @@
|
|
204 |
<!-- الرسائل ستظهر هنا -->
|
205 |
</div>
|
206 |
<div class="flex gap-2">
|
207 |
-
<input type="text"
|
|
|
|
|
|
|
208 |
<button onclick="sendMessage()" class="premium-button px-6 py-2 rounded-xl font-bold">
|
209 |
إرسال
|
210 |
</button>
|
@@ -213,20 +194,21 @@
|
|
213 |
</div>
|
214 |
|
215 |
<!-- نافذة تحليل القضايا -->
|
216 |
-
<div id="caseAnalysisModal" class="hidden fixed inset-0 bg-black bg-opacity-
|
217 |
-
<div class="
|
218 |
<div class="flex justify-between items-center mb-6">
|
219 |
<h3 class="text-2xl font-bold text-gray-800">تحليل قضية جديدة</h3>
|
220 |
<button onclick="hideCaseAnalysis()" class="text-gray-500 hover:text-gray-700">
|
221 |
<i class="fas fa-times text-xl"></i>
|
222 |
</button>
|
223 |
</div>
|
224 |
-
<div class="modal-
|
225 |
<textarea
|
226 |
-
class="w-full p-4 border-2 rounded-xl mb-6 h-48 focus:border-
|
227 |
placeholder="اكتب تفاصيل القضية هنا..."
|
228 |
></textarea>
|
229 |
-
<div class="
|
|
|
230 |
<button onclick="hideCaseAnalysis()" class="px-6 py-3 border-2 rounded-xl hover:bg-gray-50 font-bold">
|
231 |
إلغاء
|
232 |
</button>
|
@@ -239,20 +221,20 @@
|
|
239 |
</div>
|
240 |
|
241 |
<!-- نافذة اسأل الموضوع -->
|
242 |
-
<div id="askTopicModal" class="hidden fixed inset-0 bg-black bg-opacity-
|
243 |
-
<div class="
|
244 |
<div class="flex justify-between items-center mb-6">
|
245 |
<h3 class="text-2xl font-bold text-gray-800">اسأل الموضوع</h3>
|
246 |
<button onclick="hideAskTopic()" class="text-gray-500 hover:text-gray-700">
|
247 |
<i class="fas fa-times text-xl"></i>
|
248 |
</button>
|
249 |
</div>
|
250 |
-
<div class="modal-
|
251 |
<div>
|
252 |
<label class="block text-gray-700 font-bold mb-2">النص القانوني</label>
|
253 |
<textarea
|
254 |
id="legalText"
|
255 |
-
class="w-full p-4 border-2 rounded-xl h-48 focus:border-
|
256 |
placeholder="أدخل النص القانوني هنا..."
|
257 |
></textarea>
|
258 |
</div>
|
@@ -260,12 +242,11 @@
|
|
260 |
<label class="block text-gray-700 font-bold mb-2">سؤالك حول النص</label>
|
261 |
<textarea
|
262 |
id="userQuestion"
|
263 |
-
class="w-full p-4 border-2 rounded-xl h-24 focus:border-
|
264 |
placeholder="اكتب سؤالك هنا..."
|
265 |
></textarea>
|
266 |
</div>
|
267 |
-
|
268 |
-
<div id="askTopicResult" class="hidden mt-4 p-4 bg-gray-50 rounded-xl"></div>
|
269 |
<div class="flex justify-end gap-4">
|
270 |
<button onclick="hideAskTopic()" class="px-6 py-3 border-2 rounded-xl hover:bg-gray-50 font-bold">
|
271 |
إلغاء
|
@@ -279,10 +260,11 @@
|
|
279 |
</div>
|
280 |
|
281 |
<script>
|
|
|
282 |
const API_URL = 'https://j8fp9mu44k547j-7777.proxy.runpod.net/proxy/9000/chat';
|
283 |
const LEGAL_PROMPT = 'أريد منك أن تتصرف كمحامٍ خبير في القانون المصري. قم بتحليل الموضوعات القانونية التي سأطرحها عليك، مستندًا إلى القوانين المصرية الحديثة والمبادئ القانونية الراسخة. يجب أن تكون إجاباتك دقيقة ومحددة، وتقدم النصائح بناءً على القوانين واللوائح المصرية المعمول بها. إذا كان الموضوع يتطلب تفصيلاً قانونياً أكثر عمقًا، فأرجو أن تسألني عن المزيد من التفاصيل. الآن، إليك القضية التي أح��اج لتحليلها: ';
|
284 |
|
285 |
-
// دوال
|
286 |
function showLegalChat() {
|
287 |
document.getElementById('legalChatModal').classList.remove('hidden');
|
288 |
document.body.style.overflow = 'hidden';
|
@@ -291,8 +273,35 @@
|
|
291 |
function hideLegalChat() {
|
292 |
document.getElementById('legalChatModal').classList.add('hidden');
|
293 |
document.body.style.overflow = 'auto';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
}
|
295 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
async function sendMessage() {
|
297 |
const input = document.getElementById('chatInput');
|
298 |
const messagesDiv = document.getElementById('chatMessages');
|
@@ -318,7 +327,7 @@
|
|
318 |
headers: {
|
319 |
'Content-Type': 'application/json'
|
320 |
},
|
321 |
-
body: JSON.stringify({ message })
|
322 |
});
|
323 |
|
324 |
if (!response.ok) throw new Error('Network response was not ok');
|
@@ -347,119 +356,102 @@
|
|
347 |
}
|
348 |
}
|
349 |
|
350 |
-
|
351 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
try {
|
353 |
const response = await fetch(API_URL, {
|
354 |
method: 'POST',
|
355 |
headers: {
|
356 |
'Content-Type': 'application/json'
|
357 |
},
|
358 |
-
body: JSON.stringify({
|
359 |
-
message: "
|
360 |
})
|
361 |
});
|
362 |
|
363 |
-
if (!response.ok)
|
364 |
-
throw new Error(`HTTP error! status: ${response.status}`);
|
365 |
-
}
|
366 |
|
367 |
const data = await response.json();
|
368 |
-
|
|
|
|
|
|
|
|
|
369 |
} catch (error) {
|
370 |
console.error('Error:', error);
|
371 |
-
|
|
|
|
|
|
|
|
|
372 |
}
|
373 |
}
|
374 |
|
375 |
-
|
376 |
-
|
377 |
-
const
|
378 |
-
const searchResults = document.getElementById('searchResults');
|
379 |
-
const query = searchInput.value;
|
380 |
|
381 |
-
if (!
|
382 |
-
alert('الرجاء إدخال
|
383 |
return;
|
384 |
}
|
385 |
|
386 |
-
|
387 |
-
const
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
// تحليل القضايا
|
392 |
-
async function analyzeLegalCase(caseDetails) {
|
393 |
try {
|
394 |
const response = await fetch(API_URL, {
|
395 |
method: 'POST',
|
396 |
headers: {
|
397 |
'Content-Type': 'application/json'
|
398 |
},
|
399 |
-
body: JSON.stringify({
|
400 |
-
message: LEGAL_PROMPT +
|
401 |
})
|
402 |
});
|
403 |
|
404 |
-
if (!response.ok)
|
405 |
-
throw new Error(`HTTP error! status: ${response.status}`);
|
406 |
-
}
|
407 |
|
408 |
const data = await response.json();
|
409 |
-
|
|
|
410 |
} catch (error) {
|
411 |
console.error('Error:', error);
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
async function handleCaseAnalysis() {
|
418 |
-
const caseText = document.querySelector('#caseAnalysisModal textarea').value;
|
419 |
-
if (!caseText.trim()) {
|
420 |
-
alert('الرجاء إدخال تفاصيل القضية');
|
421 |
-
return;
|
422 |
-
}
|
423 |
-
|
424 |
-
const analysisButton = document.querySelector('#caseAnalysisModal .premium-button');
|
425 |
-
const originalButtonText = analysisButton.innerHTML;
|
426 |
-
analysisButton.innerHTML = 'جاري التحليل...';
|
427 |
-
analysisButton.disabled = true;
|
428 |
-
|
429 |
-
const result = await analyzeLegalCase(caseText);
|
430 |
-
|
431 |
-
const resultsDiv = document.createElement('div');
|
432 |
-
resultsDiv.className = 'mt-4 p-4 bg-gray-50 rounded-xl';
|
433 |
-
resultsDiv.innerHTML = result;
|
434 |
-
|
435 |
-
const oldResults = document.querySelector('#caseAnalysisModal .analysis-results');
|
436 |
-
if (oldResults) {
|
437 |
-
oldResults.remove();
|
438 |
}
|
439 |
-
|
440 |
-
resultsDiv.classList.add('analysis-results');
|
441 |
-
document.querySelector('#caseAnalysisModal .modal-content').appendChild(resultsDiv);
|
442 |
-
|
443 |
-
analysisButton.innerHTML = originalButtonText;
|
444 |
-
analysisButton.disabled = false;
|
445 |
}
|
446 |
|
447 |
-
// معالجة اسأل الموضوع
|
448 |
async function handleAskTopic() {
|
449 |
-
const legalText = document.getElementById('legalText').value;
|
450 |
-
const userQuestion = document.getElementById('userQuestion').value;
|
451 |
-
const resultDiv = document.getElementById('
|
452 |
-
|
453 |
-
if (!legalText
|
454 |
alert('الرجاء إدخال النص القانوني والسؤال');
|
455 |
return;
|
456 |
}
|
457 |
-
|
458 |
const submitButton = document.querySelector('#askTopicModal .premium-button');
|
459 |
const originalButtonText = submitButton.innerHTML;
|
460 |
submitButton.innerHTML = 'جاري المعالجة...';
|
461 |
submitButton.disabled = true;
|
462 |
-
|
463 |
try {
|
464 |
const response = await fetch(API_URL, {
|
465 |
method: 'POST',
|
@@ -467,20 +459,18 @@
|
|
467 |
'Content-Type': 'application/json'
|
468 |
},
|
469 |
body: JSON.stringify({
|
470 |
-
message: `النص القانوني: ${legalText}\n\nالسؤال: ${userQuestion}`
|
471 |
})
|
472 |
});
|
473 |
|
474 |
-
if (!response.ok)
|
475 |
-
throw new Error(`HTTP error! status: ${response.status}`);
|
476 |
-
}
|
477 |
|
478 |
const data = await response.json();
|
479 |
resultDiv.innerHTML = data.response;
|
480 |
resultDiv.classList.remove('hidden');
|
481 |
} catch (error) {
|
482 |
console.error('Error:', error);
|
483 |
-
resultDiv.innerHTML = 'حدث خطأ في معالجة السؤال.
|
484 |
resultDiv.classList.remove('hidden');
|
485 |
} finally {
|
486 |
submitButton.innerHTML = originalButtonText;
|
@@ -488,65 +478,6 @@
|
|
488 |
}
|
489 |
}
|
490 |
|
491 |
-
// معالجة رفع الملفات
|
492 |
-
function handleFileUpload(event) {
|
493 |
-
const file = event.target.files[0];
|
494 |
-
if (file) {
|
495 |
-
const formData = new FormData();
|
496 |
-
formData.append('file', file);
|
497 |
-
|
498 |
-
fetch(API_URL, {
|
499 |
-
method: 'POST',
|
500 |
-
body: formData
|
501 |
-
})
|
502 |
-
.then(response => {
|
503 |
-
if (!response.ok) {
|
504 |
-
throw new Error(`HTTP error! status: ${response.status}`);
|
505 |
-
}
|
506 |
-
return response.json();
|
507 |
-
})
|
508 |
-
.then(data => {
|
509 |
-
alert('تم تحليل المستند بنجاح');
|
510 |
-
})
|
511 |
-
.catch(error => {
|
512 |
-
console.error('Error:', error);
|
513 |
-
alert('حدث خطأ أثناء تحليل المستند');
|
514 |
-
});
|
515 |
-
}
|
516 |
-
}
|
517 |
-
|
518 |
-
// دوال إظهار وإخفاء النوافذ المنبثقة
|
519 |
-
function showCaseAnalysis() {
|
520 |
-
document.getElementById('caseAnalysisModal').classList.remove('hidden');
|
521 |
-
document.body.style.overflow = 'hidden';
|
522 |
-
}
|
523 |
-
|
524 |
-
function hideCaseAnalysis() {
|
525 |
-
document.getElementById('caseAnalysisModal').classList.add('hidden');
|
526 |
-
document.body.style.overflow = 'auto';
|
527 |
-
document.querySelector('#caseAnalysisModal textarea').value = '';
|
528 |
-
const oldResults = document.querySelector('#caseAnalysisModal .analysis-results');
|
529 |
-
if (oldResults) {
|
530 |
-
oldResults.remove();
|
531 |
-
}
|
532 |
-
}
|
533 |
-
|
534 |
-
function showAskTopic() {
|
535 |
-
document.getElementById('askTopicModal').classList.remove('hidden');
|
536 |
-
document.body.style.overflow = 'hidden';
|
537 |
-
}
|
538 |
-
|
539 |
-
function hideAskTopic() {
|
540 |
-
const modal = document.getElementById('askTopicModal');
|
541 |
-
const resultDiv = document.getElementById('askTopicResult');
|
542 |
-
modal.classList.add('hidden');
|
543 |
-
document.body.style.overflow = 'auto';
|
544 |
-
document.getElementById('legalText').value = '';
|
545 |
-
document.getElementById('userQuestion').value = '';
|
546 |
-
resultDiv.innerHTML = '';
|
547 |
-
resultDiv.classList.add('hidden');
|
548 |
-
}
|
549 |
-
|
550 |
// إضافة مستمعي الأحداث
|
551 |
document.getElementById('searchInput').addEventListener('keypress', function(e) {
|
552 |
if (e.key === 'Enter') {
|
@@ -554,7 +485,7 @@
|
|
554 |
}
|
555 |
});
|
556 |
|
557 |
-
document.getElementById('chatInput')
|
558 |
if (e.key === 'Enter') {
|
559 |
sendMessage();
|
560 |
}
|
@@ -562,18 +493,19 @@
|
|
562 |
|
563 |
// إغلاق النوافذ المنبثقة عند النقر خارجها
|
564 |
window.onclick = function(event) {
|
565 |
-
const
|
566 |
-
|
567 |
-
|
|
|
|
|
568 |
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
}
|
577 |
</script>
|
578 |
</body>
|
579 |
</html>
|
|
|
11 |
|
12 |
body {
|
13 |
font-family: 'Tajawal', sans-serif;
|
14 |
+
background: linear-gradient(135deg, #f0f2f5 0%, #e5e7eb 100%);
|
15 |
}
|
16 |
|
17 |
.premium-gradient {
|
18 |
+
background: linear-gradient(135deg, #1e3a8a 0%, #1e40af 100%);
|
19 |
}
|
20 |
|
21 |
.gold-accent {
|
22 |
+
color: #fbbf24;
|
23 |
}
|
24 |
|
25 |
.feature-card {
|
26 |
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
27 |
border: 1px solid rgba(229, 231, 235, 0.5);
|
28 |
+
background: rgba(255, 255, 255, 0.9);
|
29 |
+
backdrop-filter: blur(10px);
|
30 |
}
|
31 |
|
32 |
.feature-card:hover {
|
33 |
transform: translateY(-5px);
|
34 |
+
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
|
35 |
+
border-color: #fbbf24;
|
36 |
}
|
37 |
|
38 |
.premium-button {
|
39 |
+
background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
|
40 |
transition: all 0.3s ease;
|
41 |
}
|
42 |
|
43 |
.premium-button:hover {
|
44 |
transform: translateY(-2px);
|
45 |
+
box-shadow: 0 5px 15px rgba(251, 191, 36, 0.4);
|
46 |
}
|
47 |
|
48 |
.custom-scroll::-webkit-scrollbar {
|
49 |
+
width: 6px;
|
50 |
}
|
51 |
|
52 |
.custom-scroll::-webkit-scrollbar-track {
|
53 |
background: #f1f1f1;
|
54 |
+
border-radius: 3px;
|
55 |
}
|
56 |
|
57 |
.custom-scroll::-webkit-scrollbar-thumb {
|
58 |
+
background: #fbbf24;
|
59 |
+
border-radius: 3px;
|
60 |
}
|
61 |
|
62 |
+
.search-container {
|
63 |
+
background: rgba(255, 255, 255, 0.95);
|
64 |
+
backdrop-filter: blur(10px);
|
65 |
}
|
66 |
|
67 |
.logo-img {
|
68 |
max-height: 60px;
|
69 |
width: auto;
|
70 |
+
filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.1));
|
71 |
+
}
|
72 |
+
|
73 |
+
.modal-container {
|
74 |
+
backdrop-filter: blur(5px);
|
75 |
+
}
|
76 |
+
|
77 |
+
.modal-content {
|
78 |
+
background: rgba(255, 255, 255, 0.98);
|
79 |
}
|
80 |
</style>
|
81 |
</head>
|
82 |
+
<body class="min-h-screen">
|
83 |
<!-- الهيدر -->
|
84 |
+
<header class="premium-gradient text-white shadow-lg">
|
85 |
+
<div class="container mx-auto px-6 py-4">
|
86 |
<nav class="flex justify-between items-center">
|
87 |
+
<div class="flex items-center gap-4">
|
88 |
+
<img src="https://ufastpro.com/wp-content/uploads/2025/01/مستشارك__3_-removebg-preview.png" alt="شعار المنصة" class="logo-img">
|
89 |
<div>
|
90 |
+
<h1 class="text-2xl font-bold"></h1>
|
91 |
+
<p class="text-sm text-gray-300"></p>
|
92 |
</div>
|
93 |
</div>
|
94 |
+
<div class="flex gap-6 items-center">
|
95 |
+
<a href="https://ufastpro.com/speedy-chat/" class="text-white hover:text-yellow-300 transition-colors">اتكلم مع سبيدي</a>
|
96 |
+
<button onclick="showLegalChat()" class="premium-button text-gray-900 px-6 py-2 rounded-lg font-bold hover:shadow-xl">
|
97 |
اسأل سؤال قانوني
|
98 |
</button>
|
99 |
</div>
|
|
|
101 |
</div>
|
102 |
</header>
|
103 |
|
104 |
+
<main class="container mx-auto px-6 py-12">
|
105 |
<!-- قسم البحث الرئيسي -->
|
106 |
+
<div class="search-container rounded-3xl shadow-2xl p-8 mb-12 border-t-4 border-yellow-400">
|
107 |
<div class="max-w-3xl mx-auto">
|
108 |
<h2 class="text-3xl font-bold text-center mb-8 text-gray-800">البحث في التشريعات والأحكام القضائية</h2>
|
109 |
<div class="flex gap-4">
|
|
|
111 |
<i class="fas fa-search absolute right-4 top-4 text-gray-400"></i>
|
112 |
<input type="text"
|
113 |
id="searchInput"
|
114 |
+
class="w-full p-4 pr-12 border-2 border-gray-200 rounded-xl focus:border-yellow-400 focus:ring-2 focus:ring-yellow-400 focus:ring-opacity-50 outline-none transition-all"
|
115 |
placeholder="ابحث في القوانين، الأحكام، والمواد القانونية...">
|
116 |
</div>
|
117 |
<button onclick="handleSearch()" class="premium-button px-8 py-3 rounded-xl font-bold flex items-center gap-2">
|
|
|
119 |
بحث
|
120 |
</button>
|
121 |
</div>
|
122 |
+
<div id="searchResults" class="mt-4 custom-scroll max-h-96"></div>
|
123 |
</div>
|
124 |
</div>
|
125 |
|
126 |
<!-- الخدمات الرئيسية -->
|
127 |
+
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
|
128 |
<!-- تحليل القضايا -->
|
129 |
+
<div class="feature-card rounded-2xl p-8">
|
130 |
<div class="flex items-center gap-4 mb-6">
|
131 |
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center">
|
132 |
<i class="fas fa-gavel gold-accent text-xl"></i>
|
133 |
</div>
|
134 |
<h3 class="text-xl font-bold">تحليل القضايا</h3>
|
135 |
</div>
|
136 |
+
<p class="text-gray-600 mb-6 leading-relaxed">تحليل متقدم للقضايا باستخدام أحدث التقنيات والذكاء الاصطناعي مع مراعاة القوانين المصرية</p>
|
137 |
+
<button onclick="showCaseAnalysis()" class="w-full premium-button py-3 rounded-xl font-bold text-gray-900">
|
138 |
تحليل قضية جديدة
|
139 |
</button>
|
140 |
</div>
|
141 |
|
142 |
<!-- اسأل الموضوع -->
|
143 |
+
<div class="feature-card rounded-2xl p-8">
|
144 |
<div class="flex items-center gap-4 mb-6">
|
145 |
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center">
|
146 |
<i class="fas fa-comments gold-accent text-xl"></i>
|
147 |
</div>
|
148 |
<h3 class="text-xl font-bold">اسأل الموضوع</h3>
|
149 |
</div>
|
150 |
+
<p class="text-gray-600 mb-6 leading-relaxed">اطرح سؤالك حول أي موضوع قانوني وسنقوم بتحليله والإجابة عليه بدقة</p>
|
151 |
+
<button onclick="showAskTopic()" class="w-full premium-button py-3 rounded-xl font-bold text-gray-900">
|
152 |
اطرح سؤالك
|
153 |
</button>
|
154 |
</div>
|
155 |
|
156 |
+
<!-- كتابة العقود -->
|
157 |
+
<div class="feature-card rounded-2xl p-8">
|
158 |
+
<div class="flex items-center gap-4 mb-6">
|
159 |
+
<div class="w-12 h-12 rounded-full premium-gradient flex items-center justify-center">
|
160 |
+
<i class="fas fa-file-contract gold-accent text-xl"></i>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
</div>
|
162 |
+
<h3 class="text-xl font-bold">كتابة العقود والوثائق</h3>
|
163 |
</div>
|
164 |
+
<p class="text-gray-600 mb-6 leading-relaxed">كتابة العقود والمواثيق والاوراق الهامة اصبح سهل الان مع سبيدي</p>
|
165 |
+
<a href="https://ufastpro.com/okod/" class="block w-full premium-button py-3 rounded-xl font-bold text-center text-gray-900">
|
166 |
+
خلي سبيدي يكتبلك وثيقتك او عقدك
|
167 |
+
</a>
|
168 |
</div>
|
169 |
</div>
|
170 |
</main>
|
171 |
|
172 |
<!-- نافذة الدردشة القانونية -->
|
173 |
+
<div id="legalChatModal" class="hidden fixed inset-0 bg-black bg-opacity-30 modal-container flex items-center justify-center z-50">
|
174 |
+
<div class="modal-content rounded-2xl p-8 w-full max-w-2xl mx-4">
|
175 |
<div class="flex justify-between items-center mb-6">
|
176 |
<h3 class="text-2xl font-bold text-gray-800">اسأل سؤال قانوني</h3>
|
177 |
<button onclick="hideLegalChat()" class="text-gray-500 hover:text-gray-700">
|
|
|
182 |
<!-- الرسائل ستظهر هنا -->
|
183 |
</div>
|
184 |
<div class="flex gap-2">
|
185 |
+
<input type="text"
|
186 |
+
id="chatInput"
|
187 |
+
class="flex-grow p-3 border-2 rounded-xl focus:border-yellow-400 focus:ring-2 focus:ring-yellow-400 focus:ring-opacity-50 outline-none"
|
188 |
+
placeholder="اكتب سؤالك هنا...">
|
189 |
<button onclick="sendMessage()" class="premium-button px-6 py-2 rounded-xl font-bold">
|
190 |
إرسال
|
191 |
</button>
|
|
|
194 |
</div>
|
195 |
|
196 |
<!-- نافذة تحليل القضايا -->
|
197 |
+
<div id="caseAnalysisModal" class="hidden fixed inset-0 bg-black bg-opacity-30 modal-container flex items-center justify-center z-50">
|
198 |
+
<div class="modal-content rounded-2xl p-8 w-full max-w-2xl mx-4">
|
199 |
<div class="flex justify-between items-center mb-6">
|
200 |
<h3 class="text-2xl font-bold text-gray-800">تحليل قضية جديدة</h3>
|
201 |
<button onclick="hideCaseAnalysis()" class="text-gray-500 hover:text-gray-700">
|
202 |
<i class="fas fa-times text-xl"></i>
|
203 |
</button>
|
204 |
</div>
|
205 |
+
<div class="modal-body">
|
206 |
<textarea
|
207 |
+
class="w-full p-4 border-2 rounded-xl mb-6 h-48 focus:border-yellow-400 focus:ring-2 focus:ring-yellow-400 focus:ring-opacity-50 outline-none transition-all custom-scroll"
|
208 |
placeholder="اكتب تفاصيل القضية هنا..."
|
209 |
></textarea>
|
210 |
+
<div id="analysisResult" class="mt-4 p-4 bg-gray-50 rounded-xl hidden"></div>
|
211 |
+
<div class="flex justify-end gap-4 mt-4">
|
212 |
<button onclick="hideCaseAnalysis()" class="px-6 py-3 border-2 rounded-xl hover:bg-gray-50 font-bold">
|
213 |
إلغاء
|
214 |
</button>
|
|
|
221 |
</div>
|
222 |
|
223 |
<!-- نافذة اسأل الموضوع -->
|
224 |
+
<div id="askTopicModal" class="hidden fixed inset-0 bg-black bg-opacity-30 modal-container flex items-center justify-center z-50">
|
225 |
+
<div class="modal-content rounded-2xl p-8 w-full max-w-2xl mx-4 max-h-[90vh] overflow-y-auto">
|
226 |
<div class="flex justify-between items-center mb-6">
|
227 |
<h3 class="text-2xl font-bold text-gray-800">اسأل الموضوع</h3>
|
228 |
<button onclick="hideAskTopic()" class="text-gray-500 hover:text-gray-700">
|
229 |
<i class="fas fa-times text-xl"></i>
|
230 |
</button>
|
231 |
</div>
|
232 |
+
<div class="modal-body space-y-6">
|
233 |
<div>
|
234 |
<label class="block text-gray-700 font-bold mb-2">النص القانوني</label>
|
235 |
<textarea
|
236 |
id="legalText"
|
237 |
+
class="w-full p-4 border-2 rounded-xl h-48 focus:border-yellow-400 focus:ring-2 focus:ring-yellow-400 focus:ring-opacity-50 outline-none transition-all custom-scroll"
|
238 |
placeholder="أدخل النص القانوني هنا..."
|
239 |
></textarea>
|
240 |
</div>
|
|
|
242 |
<label class="block text-gray-700 font-bold mb-2">سؤالك حول النص</label>
|
243 |
<textarea
|
244 |
id="userQuestion"
|
245 |
+
class="w-full p-4 border-2 rounded-xl h-24 focus:border-yellow-400 focus:ring-2 focus:ring-yellow-400 focus:ring-opacity-50 outline-none transition-all custom-scroll"
|
246 |
placeholder="اكتب سؤالك هنا..."
|
247 |
></textarea>
|
248 |
</div>
|
249 |
+
<div id="topicResult" class="mt-4 p-4 bg-gray-50 rounded-xl hidden"></div>
|
|
|
250 |
<div class="flex justify-end gap-4">
|
251 |
<button onclick="hideAskTopic()" class="px-6 py-3 border-2 rounded-xl hover:bg-gray-50 font-bold">
|
252 |
إلغاء
|
|
|
260 |
</div>
|
261 |
|
262 |
<script>
|
263 |
+
// تكوين عنوان API
|
264 |
const API_URL = 'https://j8fp9mu44k547j-7777.proxy.runpod.net/proxy/9000/chat';
|
265 |
const LEGAL_PROMPT = 'أريد منك أن تتصرف كمحامٍ خبير في القانون المصري. قم بتحليل الموضوعات القانونية التي سأطرحها عليك، مستندًا إلى القوانين المصرية الحديثة والمبادئ القانونية الراسخة. يجب أن تكون إجاباتك دقيقة ومحددة، وتقدم النصائح بناءً على القوانين واللوائح المصرية المعمول بها. إذا كان الموضوع يتطلب تفصيلاً قانونياً أكثر عمقًا، فأرجو أن تسألني عن المزيد من التفاصيل. الآن، إليك القضية التي أح��اج لتحليلها: ';
|
266 |
|
267 |
+
// دوال التحكم في النوافذ المنبثقة
|
268 |
function showLegalChat() {
|
269 |
document.getElementById('legalChatModal').classList.remove('hidden');
|
270 |
document.body.style.overflow = 'hidden';
|
|
|
273 |
function hideLegalChat() {
|
274 |
document.getElementById('legalChatModal').classList.add('hidden');
|
275 |
document.body.style.overflow = 'auto';
|
276 |
+
document.getElementById('chatInput').value = '';
|
277 |
+
}
|
278 |
+
|
279 |
+
function showCaseAnalysis() {
|
280 |
+
document.getElementById('caseAnalysisModal').classList.remove('hidden');
|
281 |
+
document.body.style.overflow = 'hidden';
|
282 |
+
}
|
283 |
+
|
284 |
+
function hideCaseAnalysis() {
|
285 |
+
document.getElementById('caseAnalysisModal').classList.add('hidden');
|
286 |
+
document.body.style.overflow = 'auto';
|
287 |
+
document.querySelector('#caseAnalysisModal textarea').value = '';
|
288 |
+
document.getElementById('analysisResult').classList.add('hidden');
|
289 |
+
}
|
290 |
+
|
291 |
+
function showAskTopic() {
|
292 |
+
document.getElementById('askTopicModal').classList.remove('hidden');
|
293 |
+
document.body.style.overflow = 'hidden';
|
294 |
}
|
295 |
|
296 |
+
function hideAskTopic() {
|
297 |
+
document.getElementById('askTopicModal').classList.add('hidden');
|
298 |
+
document.body.style.overflow = 'auto';
|
299 |
+
document.getElementById('legalText').value = '';
|
300 |
+
document.getElementById('userQuestion').value = '';
|
301 |
+
document.getElementById('topicResult').classList.add('hidden');
|
302 |
+
}
|
303 |
+
|
304 |
+
// دوال معالجة الطلبات
|
305 |
async function sendMessage() {
|
306 |
const input = document.getElementById('chatInput');
|
307 |
const messagesDiv = document.getElementById('chatMessages');
|
|
|
327 |
headers: {
|
328 |
'Content-Type': 'application/json'
|
329 |
},
|
330 |
+
body: JSON.stringify({ message: LEGAL_PROMPT + message })
|
331 |
});
|
332 |
|
333 |
if (!response.ok) throw new Error('Network response was not ok');
|
|
|
356 |
}
|
357 |
}
|
358 |
|
359 |
+
async function handleSearch() {
|
360 |
+
const searchInput = document.getElementById('searchInput');
|
361 |
+
const searchResults = document.getElementById('searchResults');
|
362 |
+
const query = searchInput.value.trim();
|
363 |
+
|
364 |
+
if (!query) {
|
365 |
+
alert('الرجاء إدخال نص للبحث');
|
366 |
+
return;
|
367 |
+
}
|
368 |
+
|
369 |
+
searchResults.innerHTML = '<div class="text-center p-4">جاري البحث...</div>';
|
370 |
+
|
371 |
try {
|
372 |
const response = await fetch(API_URL, {
|
373 |
method: 'POST',
|
374 |
headers: {
|
375 |
'Content-Type': 'application/json'
|
376 |
},
|
377 |
+
body: JSON.stringify({
|
378 |
+
message: LEGAL_PROMPT + "ابحث عن: " + query
|
379 |
})
|
380 |
});
|
381 |
|
382 |
+
if (!response.ok) throw new Error('Network response was not ok');
|
|
|
|
|
383 |
|
384 |
const data = await response.json();
|
385 |
+
searchResults.innerHTML = `
|
386 |
+
<div class="bg-white p-6 rounded-xl shadow-md">
|
387 |
+
${data.response}
|
388 |
+
</div>
|
389 |
+
`;
|
390 |
} catch (error) {
|
391 |
console.error('Error:', error);
|
392 |
+
searchResults.innerHTML = `
|
393 |
+
<div class="bg-red-100 p-4 rounded-xl text-red-700">
|
394 |
+
حدث خطأ في البحث. يرجى المحاولة مرة أخرى.
|
395 |
+
</div>
|
396 |
+
`;
|
397 |
}
|
398 |
}
|
399 |
|
400 |
+
async function handleCaseAnalysis() {
|
401 |
+
const caseText = document.querySelector('#caseAnalysisModal textarea').value.trim();
|
402 |
+
const resultDiv = document.getElementById('analysisResult');
|
|
|
|
|
403 |
|
404 |
+
if (!caseText) {
|
405 |
+
alert('الرجاء إدخال تفاصيل القضية');
|
406 |
return;
|
407 |
}
|
408 |
|
409 |
+
const submitButton = document.querySelector('#caseAnalysisModal .premium-button');
|
410 |
+
const originalButtonText = submitButton.innerHTML;
|
411 |
+
submitButton.innerHTML = 'جاري التحليل...';
|
412 |
+
submitButton.disabled = true;
|
413 |
+
|
|
|
|
|
414 |
try {
|
415 |
const response = await fetch(API_URL, {
|
416 |
method: 'POST',
|
417 |
headers: {
|
418 |
'Content-Type': 'application/json'
|
419 |
},
|
420 |
+
body: JSON.stringify({
|
421 |
+
message: LEGAL_PROMPT + caseText
|
422 |
})
|
423 |
});
|
424 |
|
425 |
+
if (!response.ok) throw new Error('Network response was not ok');
|
|
|
|
|
426 |
|
427 |
const data = await response.json();
|
428 |
+
resultDiv.innerHTML = data.response;
|
429 |
+
resultDiv.classList.remove('hidden');
|
430 |
} catch (error) {
|
431 |
console.error('Error:', error);
|
432 |
+
resultDiv.innerHTML = 'حدث خطأ في تحليل القضية. يرجى المحاولة مرة أخرى.';
|
433 |
+
resultDiv.classList.remove('hidden');
|
434 |
+
} finally {
|
435 |
+
submitButton.innerHTML = originalButtonText;
|
436 |
+
submitButton.disabled = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
}
|
439 |
|
|
|
440 |
async function handleAskTopic() {
|
441 |
+
const legalText = document.getElementById('legalText').value.trim();
|
442 |
+
const userQuestion = document.getElementById('userQuestion').value.trim();
|
443 |
+
const resultDiv = document.getElementById('topicResult');
|
444 |
+
|
445 |
+
if (!legalText || !userQuestion) {
|
446 |
alert('الرجاء إدخال النص القانوني والسؤال');
|
447 |
return;
|
448 |
}
|
449 |
+
|
450 |
const submitButton = document.querySelector('#askTopicModal .premium-button');
|
451 |
const originalButtonText = submitButton.innerHTML;
|
452 |
submitButton.innerHTML = 'جاري المعالجة...';
|
453 |
submitButton.disabled = true;
|
454 |
+
|
455 |
try {
|
456 |
const response = await fetch(API_URL, {
|
457 |
method: 'POST',
|
|
|
459 |
'Content-Type': 'application/json'
|
460 |
},
|
461 |
body: JSON.stringify({
|
462 |
+
message: LEGAL_PROMPT + `النص القانوني: ${legalText}\n\nالسؤال: ${userQuestion}`
|
463 |
})
|
464 |
});
|
465 |
|
466 |
+
if (!response.ok) throw new Error('Network response was not ok');
|
|
|
|
|
467 |
|
468 |
const data = await response.json();
|
469 |
resultDiv.innerHTML = data.response;
|
470 |
resultDiv.classList.remove('hidden');
|
471 |
} catch (error) {
|
472 |
console.error('Error:', error);
|
473 |
+
resultDiv.innerHTML = 'حدث خطأ في معالجة السؤال. يرجى المحاولة مرة أخرى.';
|
474 |
resultDiv.classList.remove('hidden');
|
475 |
} finally {
|
476 |
submitButton.innerHTML = originalButtonText;
|
|
|
478 |
}
|
479 |
}
|
480 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
481 |
// إضافة مستمعي الأحداث
|
482 |
document.getElementById('searchInput').addEventListener('keypress', function(e) {
|
483 |
if (e.key === 'Enter') {
|
|
|
485 |
}
|
486 |
});
|
487 |
|
488 |
+
document.getElementById('chatInput').addEventListener('keypress', function(e) {
|
489 |
if (e.key === 'Enter') {
|
490 |
sendMessage();
|
491 |
}
|
|
|
493 |
|
494 |
// إغلاق النوافذ المنبثقة عند النقر خارجها
|
495 |
window.onclick = function(event) {
|
496 |
+
const modals = {
|
497 |
+
'legalChatModal': hideLegalChat,
|
498 |
+
'caseAnalysisModal': hideCaseAnalysis,
|
499 |
+
'askTopicModal': hideAskTopic
|
500 |
+
};
|
501 |
|
502 |
+
Object.entries(modals).forEach(([modalId, hideFunction]) => {
|
503 |
+
const modal = document.getElementById(modalId);
|
504 |
+
if (event.target === modal) {
|
505 |
+
hideFunction();
|
506 |
+
}
|
507 |
+
});
|
508 |
+
};
|
|
|
509 |
</script>
|
510 |
</body>
|
511 |
</html>
|