joermd commited on
Commit
5c477bd
·
verified ·
1 Parent(s): deb85aa

Update reg.html

Browse files
Files changed (1) hide show
  1. reg.html +115 -99
reg.html CHANGED
@@ -248,7 +248,11 @@
248
  </div>
249
  <div class="nav-link" data-section="precedents">
250
  <i class="fas fa-gavel ml-3"></i>
251
- <span>الأحكام والسوابق</span>
 
 
 
 
252
  </div>
253
  </nav>
254
  </div>
@@ -265,14 +269,14 @@
265
  <!-- قسم الرئيسية -->
266
  <section id="home" class="section">
267
  <h2 class="text-3xl font-bold text-gray-800 mb-8">الخدمات القانونية</h2>
 
268
  <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
269
- <!-- بطاقات الخدمة -->
270
  <div class="feature-card p-6">
271
  <div class="text-center">
272
  <i class="fas fa-balance-scale text-3xl mb-4 text-blue-600"></i>
273
  <h3 class="text-xl font-bold text-gray-800 mb-3">التحليل القانوني</h3>
274
  <p class="text-gray-600 mb-4">
275
- تحليل متكامل للقضايا والمستندات القانونية باستخدام الذكاء الاصطناعي
276
  </p>
277
  <button class="action-button" onclick="showSection('analysis')">ابدأ التحليل</button>
278
  </div>
@@ -282,7 +286,7 @@
282
  <i class="fas fa-project-diagram text-3xl mb-4 text-blue-600"></i>
283
  <h3 class="text-xl font-bold text-gray-800 mb-3">خريطة التفكير</h3>
284
  <p class="text-gray-600 mb-4">
285
- نظم قضية بشكل احترافي باستخدام خطوات منهجية قوية تساعدك على التفكير مع النموذج
286
  </p>
287
  <button class="action-button" onclick="showSection('mindMap')">إنشاء خريطة التفكير</button>
288
  </div>
@@ -292,7 +296,7 @@
292
  <i class="fas fa-search text-3xl mb-4 text-blue-600"></i>
293
  <h3 class="text-xl font-bold text-gray-800 mb-3">البحث القانوني</h3>
294
  <p class="text-gray-600 mb-4">
295
- ابحث عن معلومات قانونية مع برومبت ثابت يشمل منصات: منصة1، منصة2، منصة3
296
  </p>
297
  <button class="action-button" onclick="showSection('search')">ابدأ البحث</button>
298
  </div>
@@ -302,7 +306,7 @@
302
  <i class="fas fa-file-alt text-3xl mb-4 text-blue-600"></i>
303
  <h3 class="text-xl font-bold text-gray-800 mb-3">المستندات</h3>
304
  <p class="text-gray-600 mb-4">
305
- إنشاء وتحرير المستندات القانونية بمساعدة الذكاء الاصطناعي
306
  </p>
307
  <button class="action-button" onclick="showSection('documents')">إنشاء مستند</button>
308
  </div>
@@ -312,7 +316,7 @@
312
  <i class="fas fa-language text-3xl mb-4 text-blue-600"></i>
313
  <h3 class="text-xl font-bold text-gray-800 mb-3">الترجمة القانونية</h3>
314
  <p class="text-gray-600 mb-4">
315
- ترجمة احترافية للوثائق القانونية مع إمكانية تنزيلها كملف PDF
316
  </p>
317
  <button class="action-button" onclick="showSection('translation')">ترجمة</button>
318
  </div>
@@ -322,12 +326,45 @@
322
  <i class="fas fa-comments text-3xl mb-4 text-blue-600"></i>
323
  <h3 class="text-xl font-bold text-gray-800 mb-3">استشارة قانونية</h3>
324
  <p class="text-gray-600 mb-4">
325
- احصل على استشارة قانونية فورية من خبرائنا
326
  </p>
327
  <button class="action-button" onclick="showSection('consultation')">استشر الآن</button>
328
  </div>
329
  </div>
330
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  </section>
332
 
333
  <!-- قسم التحليل القانوني -->
@@ -361,7 +398,7 @@
361
  <section id="mindMap" class="section hidden">
362
  <h2 class="text-3xl font-bold text-gray-800 mb-4">خريطة التفكير القانونية</h2>
363
  <p class="mb-4 text-gray-700">
364
- أدخل الأفكار والخيوط المتعددة لتنظيم القضية بطريقة إبداعية باستخدام منهجيات قوية مثل تحليل SWOT و5 خطوات لتحليل الأسباب الجذرية. ساعد نفسك في التفكير مع النموذج.
365
  </p>
366
  <div id="mindMapFields">
367
  <div class="mb-4">
@@ -382,58 +419,25 @@
382
  <div id="mindMapResult" class="mt-4 response-container mind-map-output"></div>
383
  </section>
384
 
385
- <!-- قسم البحث القانوني -->
386
- <section id="search" class="section hidden">
387
- <h2 class="text-3xl font-bold text-gray-800 mb-8">البحث القانوني</h2>
388
  <div class="input-group bg-white rounded p-6 shadow">
389
- <textarea class="w-full p-3 border rounded" placeholder="اكتب استعلام البحث القانوني..." ></textarea>
390
- <button class="action-button mt-4" onclick="handleSubmit('search')">بحث</button>
391
- <div id="searchResult" class="mt-4 response-container"></div>
 
392
  </div>
393
  </section>
394
 
395
- <!-- قسم الترجمة القانونية -->
396
- <section id="translation" class="section hidden">
397
- <h2 class="text-3xl font-bold text-gray-800 mb-8">الترجمة القانونية</h2>
398
  <div class="input-group bg-white rounded p-6 shadow">
399
- <textarea class="w-full p-3 border rounded" placeholder="اكتب النص المراد ترجمته..."></textarea>
400
- <label class="block text-gray-700 mb-2 mt-4">أو قم بإرفاق ملف PDF:</label>
401
- <input type="file" accept=".pdf" class="w-full p-3 border rounded" id="translationPDF" />
402
- <div class="flex gap-4 my-4">
403
- <select class="p-3 rounded border w-full" id="fromLang">
404
- <option value="ar">العربية</option>
405
- <option value="en">الإنجليزية</option>
406
- <option value="de">الألمانية</option>
407
- <option value="zh">الصينية</option>
408
- <option value="fr">الفرنسية</option>
409
- <option value="it">الإيطالية</option>
410
- <option value="es">الإسبانية</option>
411
- </select>
412
- <select class="p-3 rounded border w-full" id="toLang">
413
- <option value="en">الإنجليزية</option>
414
- <option value="ar">العربية</option>
415
- <option value="de">الألمانية</option>
416
- <option value="zh">الصينية</option>
417
- <option value="fr">الفرنسية</option>
418
- <option value="it">الإيطالية</option>
419
- <option value="es">الإسبانية</option>
420
- </select>
421
  </div>
422
- <div class="flex gap-4">
423
- <button class="action-button" onclick="handleSubmit('translation')">ترجمة</button>
424
- <button id="downloadPDFButton" class="action-button">تنزيل الترجمة كملف PDF</button>
425
- </div>
426
- <div id="translationResult" class="mt-4 response-container"></div>
427
- </div>
428
- </section>
429
-
430
- <!-- قسم الاستشارة القانونية -->
431
- <section id="consultation" class="section hidden">
432
- <h2 class="text-3xl font-bold text-gray-800 mb-8">استشارة قانونية</h2>
433
- <div class="input-group bg-white rounded p-6 shadow">
434
- <textarea class="w-full p-3 border rounded" placeholder="اكتب سؤالك القانوني هنا..."></textarea>
435
- <button class="action-button mt-4" onclick="handleSubmit('consultation')">احصل على استشارة</button>
436
- <div id="consultationResult" class="mt-4 response-container"></div>
437
  </div>
438
  </section>
439
 
@@ -530,7 +534,7 @@
530
  // استخدام API كما كان سابقاً
531
  const API_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/chat';
532
 
533
- // دالة الحصول على البادئة (prompt prefix) بناءً على القسم مع برومبت ثابت للبحث
534
  function getPromptPrefix(section) {
535
  switch(section) {
536
  case 'analysis':
@@ -545,6 +549,9 @@
545
  return 'قم بترجمة هذا النص القانوني: ';
546
  case 'consultation':
547
  return 'أحتاج استشارة قانونية في الموضوع التالي: ';
 
 
 
548
  default:
549
  return '';
550
  }
@@ -557,7 +564,7 @@
557
  const section = e.currentTarget.getAttribute("data-section");
558
  if(section) {
559
  showSection(section);
560
- // إخفاء الشريط الجانبي على الأجهزة المحمولة بعد النقر
561
  if(window.innerWidth < 768) {
562
  document.querySelector(".sidebar").classList.remove("open");
563
  }
@@ -601,17 +608,34 @@
601
  // دالة إرسال الطلبات العامة لجميع الأقسام باستخدام API الموحد
602
  async function handleSubmit(section) {
603
  const container = document.getElementById(section);
604
- const textarea = container.querySelector("textarea");
605
- const resultDiv = container.querySelector(".response-container");
606
- const text = textarea.value.trim();
607
- if (!text) {
608
- alert("الرجاء إدخال نص");
609
- return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
610
  }
611
- const payload = {
612
- message: getPromptPrefix(section) + text,
613
- history: []
614
- };
615
  try {
616
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';
617
  const response = await fetch(API_URL, {
@@ -619,7 +643,7 @@
619
  headers: { "Content-Type": "application/json" },
620
  body: JSON.stringify(payload)
621
  });
622
- if (!response.ok) {
623
  throw new Error("Network response was not ok");
624
  }
625
  const data = await response.json();
@@ -657,7 +681,7 @@
657
  document.querySelectorAll("#firstPartyID, #secondPartyID").forEach(input => {
658
  input.addEventListener("input", function() {
659
  this.value = this.value.replace(/[^0-9]/g, '');
660
- if (this.value.length > 14) {
661
  this.value = this.value.slice(0, 14);
662
  }
663
  });
@@ -688,8 +712,6 @@
688
  document.getElementById("generateButton").addEventListener("click", async function() {
689
  const button = this;
690
  const outputDiv = document.getElementById("contractOutput");
691
-
692
- // جمع بيانات النموذج
693
  const formData = {
694
  contractTitle: document.getElementById("contractTitle").value.trim(),
695
  contractDate: document.getElementById("contractDate").value,
@@ -706,12 +728,9 @@
706
  contractPreamble: document.getElementById("contractPreamble").value.trim(),
707
  contractTerms: document.getElementById("contractTerms").value.trim()
708
  };
709
-
710
- // التحقق من البيانات المطلوبة
711
  const requiredFields = Object.keys(formData);
712
  const missingFields = requiredFields.filter(field => !formData[field]);
713
-
714
- if (missingFields.length > 0) {
715
  outputDiv.innerHTML = `
716
  <div class="text-red-500 font-bold mb-4">يرجى ملء جميع الحقول المطلوبة</div>
717
  <ul class="list-disc list-inside text-red-500">
@@ -720,8 +739,6 @@
720
  `;
721
  return;
722
  }
723
-
724
- // تحديث واجهة المستخدم لحالة التحميل
725
  button.textContent = 'جاري إنشاء العقد...';
726
  button.disabled = true;
727
  outputDiv.innerHTML = `
@@ -730,17 +747,13 @@
730
  <span>جاري إنشاء العقد باستخدام الذكاء الاصطناعي...</span>
731
  </div>
732
  `;
733
-
734
  try {
735
- // تحويل التاريخ إلى التنسيق العربي
736
  const dateObj = new Date(formData.contractDate);
737
  const arabicDate = new Intl.DateTimeFormat('ar-EG', {
738
  year: 'numeric',
739
  month: 'long',
740
  day: 'numeric'
741
  }).format(dateObj);
742
-
743
- // إنشاء نص الطلب
744
  const prompt = `قم بإنشاء عقد قانوني مصري رسمي باللغة العربية يتضمن البيانات التالية:
745
 
746
  عنوان العقد: ${formData.contractTitle}
@@ -771,27 +784,17 @@ ${formData.contractTerms}
771
  2. بند حكم التمهيد يوضح أن التمهيد جزء لا يتجزأ من العقد
772
  3. تنسيق قانوني رسمي
773
  4. مكان للتوقيع في النهاية مع كتابة "طرف أول" و "طرف ثاني"`;
774
-
775
- // إرسال الطلب إلى API الخاص بالعقود
776
  const response = await fetch(API_URL, {
777
  method: 'POST',
778
- headers: {
779
- 'Content-Type': 'application/json'
780
- },
781
- body: JSON.stringify({
782
- message: prompt,
783
- history: []
784
- })
785
  });
786
-
787
- if (!response.ok) {
788
  throw new Error(`HTTP error! status: ${response.status}`);
789
  }
790
-
791
  const data = await response.json();
792
  outputDiv.innerHTML = `<div dir="rtl" style="white-space: pre-wrap;">${data.response}</div>`;
793
-
794
- } catch (error) {
795
  outputDiv.innerHTML = `
796
  <div class="text-red-600 font-bold">
797
  عذراً، حدث خطأ في إنشاء العقد. يرجى المحاولة مرة أخرى.
@@ -804,14 +807,14 @@ ${formData.contractTerms}
804
  button.textContent = 'إنشاء العقد';
805
  button.disabled = false;
806
  }
807
- });
808
 
809
  // وظيفة تنزيل الترجمة كملف PDF (باستخدام مكتبة jsPDF)
810
  document.getElementById("downloadPDFButton").addEventListener("click", function() {
811
  const { jsPDF } = window.jspdf;
812
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
813
  const content = document.getElementById("translationResult").innerText;
814
- if (!content.trim()) {
815
  alert("لا يوجد نص للترجمة لتنزيله");
816
  return;
817
  }
@@ -825,7 +828,7 @@ ${formData.contractTerms}
825
  const { jsPDF } = window.jspdf;
826
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
827
  const content = document.getElementById("analysisResult").innerText;
828
- if (!content.trim()) {
829
  alert("لا يوجد نص للتحليل لتنزيله");
830
  return;
831
  }
@@ -854,7 +857,7 @@ ${formData.contractTerms}
854
  collectedText += `الخيط ${index + 1}: ${value}\n`;
855
  }
856
  });
857
- if (!collectedText.trim()) {
858
  alert("الرجاء إدخال بعض الأفكار لإنشاء خريطة التفكير");
859
  return;
860
  }
@@ -877,6 +880,19 @@ ${formData.contractTerms}
877
  });
878
  }
879
 
 
 
 
 
 
 
 
 
 
 
 
 
 
880
  // تهيئة الصفحة بالعرض الافتراضي للقسم "home"
881
  document.addEventListener("DOMContentLoaded", () => {
882
  showSection("home");
 
248
  </div>
249
  <div class="nav-link" data-section="precedents">
250
  <i class="fas fa-gavel ml-3"></i>
251
+ <span>الأحكام والقوانين</span>
252
+ </div>
253
+ <div class="nav-link" data-section="latestUpdates">
254
+ <i class="fas fa-newspaper ml-3"></i>
255
+ <span>آخر التحديثات</span>
256
  </div>
257
  </nav>
258
  </div>
 
269
  <!-- قسم الرئيسية -->
270
  <section id="home" class="section">
271
  <h2 class="text-3xl font-bold text-gray-800 mb-8">الخدمات القانونية</h2>
272
+ <!-- أول مجموعة (الخدمات الأساسية) -->
273
  <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
 
274
  <div class="feature-card p-6">
275
  <div class="text-center">
276
  <i class="fas fa-balance-scale text-3xl mb-4 text-blue-600"></i>
277
  <h3 class="text-xl font-bold text-gray-800 mb-3">التحليل القانوني</h3>
278
  <p class="text-gray-600 mb-4">
279
+ تحليل متكامل للقضايا والمستندات القانونية باستخدام الذكاء الاصطناعي.
280
  </p>
281
  <button class="action-button" onclick="showSection('analysis')">ابدأ التحليل</button>
282
  </div>
 
286
  <i class="fas fa-project-diagram text-3xl mb-4 text-blue-600"></i>
287
  <h3 class="text-xl font-bold text-gray-800 mb-3">خريطة التفكير</h3>
288
  <p class="text-gray-600 mb-4">
289
+ نظم قضية بشكل إبداعي باستخدام خطوات منهجية قوية.
290
  </p>
291
  <button class="action-button" onclick="showSection('mindMap')">إنشاء خريطة التفكير</button>
292
  </div>
 
296
  <i class="fas fa-search text-3xl mb-4 text-blue-600"></i>
297
  <h3 class="text-xl font-bold text-gray-800 mb-3">البحث القانوني</h3>
298
  <p class="text-gray-600 mb-4">
299
+ ابحث عن معلومات قانونية مع برومبت ثابت يشمل منصات: منصة1، منصة2، منصة3.
300
  </p>
301
  <button class="action-button" onclick="showSection('search')">ابدأ البحث</button>
302
  </div>
 
306
  <i class="fas fa-file-alt text-3xl mb-4 text-blue-600"></i>
307
  <h3 class="text-xl font-bold text-gray-800 mb-3">المستندات</h3>
308
  <p class="text-gray-600 mb-4">
309
+ أنشئ وحرر المستندات القانونية بسهولة.
310
  </p>
311
  <button class="action-button" onclick="showSection('documents')">إنشاء مستند</button>
312
  </div>
 
316
  <i class="fas fa-language text-3xl mb-4 text-blue-600"></i>
317
  <h3 class="text-xl font-bold text-gray-800 mb-3">الترجمة القانونية</h3>
318
  <p class="text-gray-600 mb-4">
319
+ ترجمة احترافية للوثائق القانونية مع إمكانية التنزيل كملف PDF.
320
  </p>
321
  <button class="action-button" onclick="showSection('translation')">ترجمة</button>
322
  </div>
 
326
  <i class="fas fa-comments text-3xl mb-4 text-blue-600"></i>
327
  <h3 class="text-xl font-bold text-gray-800 mb-3">استشارة قانونية</h3>
328
  <p class="text-gray-600 mb-4">
329
+ احصل على استشارة قانونية فورية من الخبراء.
330
  </p>
331
  <button class="action-button" onclick="showSection('consultation')">استشر الآن</button>
332
  </div>
333
  </div>
334
  </div>
335
+ <!-- مجموعة الخدمات الإضافية -->
336
+ <div class="mt-8">
337
+ <h2 class="text-2xl font-bold text-gray-800 mb-4">خدمات إضافية</h2>
338
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
339
+ <!-- الأعمال الإدارية -->
340
+ <div class="feature-card p-6">
341
+ <div class="text-center">
342
+ <i class="fas fa-cogs text-3xl mb-4 text-blue-600"></i>
343
+ <h3 class="text-xl font-bold text-gray-800 mb-3">الأعمال الإدارية</h3>
344
+ <p class="text-gray-600 mb-4">الوصول إلى أدوات الإدارة المتقدمة.</p>
345
+ <button class="action-button" onclick="window.location.href='admin.html'">الأعمال الإدارية</button>
346
+ </div>
347
+ </div>
348
+ <!-- مقارنة النصوص القانونية -->
349
+ <div class="feature-card p-6">
350
+ <div class="text-center">
351
+ <i class="fas fa-exchange-alt text-3xl mb-4 text-blue-600"></i>
352
+ <h3 class="text-xl font-bold text-gray-800 mb-3">مقارنة النصوص القانونية</h3>
353
+ <p class="text-gray-600 mb-4">قارن بين نصين قانونيين بسهولة.</p>
354
+ <button class="action-button" onclick="showSection('precedents')">مقارنة النصوص</button>
355
+ </div>
356
+ </div>
357
+ <!-- آخر التحديثات القانونية -->
358
+ <div class="feature-card p-6">
359
+ <div class="text-center">
360
+ <i class="fas fa-newspaper text-3xl mb-4 text-blue-600"></i>
361
+ <h3 class="text-xl font-bold text-gray-800 mb-3">آخر التحديثات القانونية في مصر</h3>
362
+ <p class="text-gray-600 mb-4">تابع أحدث الأخبار القانونية.</p>
363
+ <button class="action-button" onclick="showSection('latestUpdates')">آخر التحديثات</button>
364
+ </div>
365
+ </div>
366
+ </div>
367
+ </div>
368
  </section>
369
 
370
  <!-- قسم التحليل القانوني -->
 
398
  <section id="mindMap" class="section hidden">
399
  <h2 class="text-3xl font-bold text-gray-800 mb-4">خريطة التفكير القانونية</h2>
400
  <p class="mb-4 text-gray-700">
401
+ أدخل الأفكار والخيوط المتعددة لتنظيم القضية بطريقة إبداعية باستخدام منهجيات قوية مثل تحليل SWOT و5 خطوات لتحليل الأسباب الجذرية. ساعد نفسك على التفكير مع النموذج.
402
  </p>
403
  <div id="mindMapFields">
404
  <div class="mb-4">
 
419
  <div id="mindMapResult" class="mt-4 response-container mind-map-output"></div>
420
  </section>
421
 
422
+ <!-- قسم مقارنة النصوص القانونية -->
423
+ <section id="precedents" class="section hidden">
424
+ <h2 class="text-3xl font-bold text-gray-800 mb-8">مقارنة النصوص القانونية</h2>
425
  <div class="input-group bg-white rounded p-6 shadow">
426
+ <textarea class="w-full p-3 border rounded mb-4" placeholder="أدخل النص القانوني الأول للمقارنة..."></textarea>
427
+ <textarea class="w-full p-3 border rounded mb-4" placeholder="أدخل النص القانوني الثاني للمقارنة..."></textarea>
428
+ <button class="action-button" onclick="handleSubmit('precedents')">مقارنة النصوص القانونية</button>
429
+ <div id="precedentsResult" class="mt-4 response-container"></div>
430
  </div>
431
  </section>
432
 
433
+ <!-- قسم آخر التحديثات القانونية في مصر -->
434
+ <section id="latestUpdates" class="section hidden">
435
+ <h2 class="text-3xl font-bold text-gray-800 mb-8">آخر التحديثات القانونية في مصر</h2>
436
  <div class="input-group bg-white rounded p-6 shadow">
437
+ <button class="action-button" onclick="fetchLatestUpdates()">عرض آخر التحديثات</button>
438
+ <div id="latestUpdatesResult" class="mt-4 response-container">
439
+ <!-- سيتم تعبئتها بأحدث الأخبار -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
441
  </div>
442
  </section>
443
 
 
534
  // استخدام API كما كان سابقاً
535
  const API_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/chat';
536
 
537
+ // دالة الحصول على البادئة (prompt prefix) بناءً على القسم
538
  function getPromptPrefix(section) {
539
  switch(section) {
540
  case 'analysis':
 
549
  return 'قم بترجمة هذا النص القانوني: ';
550
  case 'consultation':
551
  return 'أحتاج استشارة قانونية في الموضوع التالي: ';
552
+ case 'precedents':
553
+ // سيتم التعامل مع حالة المقارنة في handleSubmit
554
+ return '';
555
  default:
556
  return '';
557
  }
 
564
  const section = e.currentTarget.getAttribute("data-section");
565
  if(section) {
566
  showSection(section);
567
+ // إخفاء الشريط الجانبي على الأجهزة المحمولة
568
  if(window.innerWidth < 768) {
569
  document.querySelector(".sidebar").classList.remove("open");
570
  }
 
608
  // دالة إرسال الطلبات العامة لجميع الأقسام باستخدام API الموحد
609
  async function handleSubmit(section) {
610
  const container = document.getElementById(section);
611
+ let payload = { message: "", history: [] };
612
+ let resultDiv = container.querySelector(".response-container");
613
+
614
+ // حالة خاصة لقسم المقارنة (precedents)
615
+ if(section === "precedents") {
616
+ const textareas = container.querySelectorAll("textarea");
617
+ if(textareas.length < 2) {
618
+ alert("الرجاء إدخال كلا النصين للمقارنة");
619
+ return;
620
+ }
621
+ const text1 = textareas[0].value.trim();
622
+ const text2 = textareas[1].value.trim();
623
+ if(!text1 || !text2) {
624
+ alert("الرجاء إدخال كلا النصين للمقارنة");
625
+ return;
626
+ }
627
+ payload.message = "قم بمقارنة النصين القانونيين التاليين:\nالنص الأول: " + text1 + "\nالنص الثاني: " + text2;
628
+ } else {
629
+ // باقي الأقسام
630
+ const textarea = container.querySelector("textarea");
631
+ const text = textarea.value.trim();
632
+ if(!text) {
633
+ alert("الرجاء إدخال نص");
634
+ return;
635
+ }
636
+ payload.message = getPromptPrefix(section) + text;
637
  }
638
+
 
 
 
639
  try {
640
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';
641
  const response = await fetch(API_URL, {
 
643
  headers: { "Content-Type": "application/json" },
644
  body: JSON.stringify(payload)
645
  });
646
+ if(!response.ok) {
647
  throw new Error("Network response was not ok");
648
  }
649
  const data = await response.json();
 
681
  document.querySelectorAll("#firstPartyID, #secondPartyID").forEach(input => {
682
  input.addEventListener("input", function() {
683
  this.value = this.value.replace(/[^0-9]/g, '');
684
+ if(this.value.length > 14) {
685
  this.value = this.value.slice(0, 14);
686
  }
687
  });
 
712
  document.getElementById("generateButton").addEventListener("click", async function() {
713
  const button = this;
714
  const outputDiv = document.getElementById("contractOutput");
 
 
715
  const formData = {
716
  contractTitle: document.getElementById("contractTitle").value.trim(),
717
  contractDate: document.getElementById("contractDate").value,
 
728
  contractPreamble: document.getElementById("contractPreamble").value.trim(),
729
  contractTerms: document.getElementById("contractTerms").value.trim()
730
  };
 
 
731
  const requiredFields = Object.keys(formData);
732
  const missingFields = requiredFields.filter(field => !formData[field]);
733
+ if(missingFields.length > 0) {
 
734
  outputDiv.innerHTML = `
735
  <div class="text-red-500 font-bold mb-4">يرجى ملء جميع الحقول المطلوبة</div>
736
  <ul class="list-disc list-inside text-red-500">
 
739
  `;
740
  return;
741
  }
 
 
742
  button.textContent = 'جاري إنشاء العقد...';
743
  button.disabled = true;
744
  outputDiv.innerHTML = `
 
747
  <span>جاري إنشاء العقد باستخدام الذكاء الاصطناعي...</span>
748
  </div>
749
  `;
 
750
  try {
 
751
  const dateObj = new Date(formData.contractDate);
752
  const arabicDate = new Intl.DateTimeFormat('ar-EG', {
753
  year: 'numeric',
754
  month: 'long',
755
  day: 'numeric'
756
  }).format(dateObj);
 
 
757
  const prompt = `قم بإنشاء عقد قانوني مصري رسمي باللغة العربية يتضمن البيانات التالية:
758
 
759
  عنوان العقد: ${formData.contractTitle}
 
784
  2. بند حكم التمهيد يوضح أن التمهيد جزء لا يتجزأ من العقد
785
  3. تنسيق قانوني رسمي
786
  4. مكان للتوقيع في النهاية مع كتابة "طرف أول" و "طرف ثاني"`;
 
 
787
  const response = await fetch(API_URL, {
788
  method: 'POST',
789
+ headers: { 'Content-Type': 'application/json' },
790
+ body: JSON.stringify({ message: prompt, history: [] })
 
 
 
 
 
791
  });
792
+ if(!response.ok) {
 
793
  throw new Error(`HTTP error! status: ${response.status}`);
794
  }
 
795
  const data = await response.json();
796
  outputDiv.innerHTML = `<div dir="rtl" style="white-space: pre-wrap;">${data.response}</div>`;
797
+ } catch(error) {
 
798
  outputDiv.innerHTML = `
799
  <div class="text-red-600 font-bold">
800
  عذراً، حدث خطأ في إنشاء العقد. يرجى المحاولة مرة أخرى.
 
807
  button.textContent = 'إنشاء العقد';
808
  button.disabled = false;
809
  }
810
+ }
811
 
812
  // وظيفة تنزيل الترجمة كملف PDF (باستخدام مكتبة jsPDF)
813
  document.getElementById("downloadPDFButton").addEventListener("click", function() {
814
  const { jsPDF } = window.jspdf;
815
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
816
  const content = document.getElementById("translationResult").innerText;
817
+ if(!content.trim()) {
818
  alert("لا يوجد نص للترجمة لتنزيله");
819
  return;
820
  }
 
828
  const { jsPDF } = window.jspdf;
829
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
830
  const content = document.getElementById("analysisResult").innerText;
831
+ if(!content.trim()) {
832
  alert("لا يوجد نص للتحليل لتنزيله");
833
  return;
834
  }
 
857
  collectedText += `الخيط ${index + 1}: ${value}\n`;
858
  }
859
  });
860
+ if(!collectedText.trim()) {
861
  alert("الرجاء إدخال بعض الأفكار لإنشاء خريطة التفكير");
862
  return;
863
  }
 
880
  });
881
  }
882
 
883
+ // وظيفة جلب آخر التحديثات القانونية (محاكاة)
884
+ function fetchLatestUpdates() {
885
+ const resultDiv = document.getElementById("latestUpdatesResult");
886
+ resultDiv.innerHTML = '<div class="loading-spinner"></div>';
887
+ setTimeout(() => {
888
+ resultDiv.innerHTML = `<p>آخر التحديثات القانونية في مصر:<br>
889
+ - تحديث 1: نص الخبر الأول.<br>
890
+ - تحديث 2: نص الخبر الثاني.<br>
891
+ - تحديث 3: نص الخبر الثالث.
892
+ </p>`;
893
+ }, 1000);
894
+ }
895
+
896
  // تهيئة الصفحة بالعرض الافتراضي للقسم "home"
897
  document.addEventListener("DOMContentLoaded", () => {
898
  showSection("home");