مرحباً بك في EduCraft AI

منصة التعليم الذكية التي تحول أفكارك إلى مواد تعليمية مذهلة! ✨

EduCraft AI

المستند المصدر


${content.replace(/contenteditable="true"/g, '')}

تم الإنشاء باستخدام EduCraft AI - ${new Date().toLocaleDateString('ar-SA')}

`); printWindow.document.close(); // Wait for content to load then print setTimeout(() => { printWindow.print(); showAlert('جاري فتح نافذة الطباعة...', 'info'); }, 500); } function deleteElement(element) { if (confirm('هل أنت متأكد من حذف هذا العنصر؟')) { element.remove(); selectedElement = null; } } function resizeImage(element, size) { const img = element.querySelector('.image-element'); if (size === 'small') { img.style.maxWidth = '200px'; } else if (size === 'large') { img.style.maxWidth = '500px'; } } // Add keyboard shortcuts document.addEventListener('keydown', function(e) { // Ctrl+S to save if ((e.ctrlKey || e.metaKey) && e.key === 's') { e.preventDefault(); saveDocument(); } // Delete key to remove selected element if (e.key === 'Delete' && selectedElement) { deleteElement(selectedElement); } // Ctrl+B for bold if ((e.ctrlKey || e.metaKey) && e.key === 'b') { e.preventDefault(); formatText('bold'); } // Ctrl+I for italic if ((e.ctrlKey || e.metaKey) && e.key === 'i') { e.preventDefault(); formatText('italic'); } }); function showAlert(message, type) { const alertDiv = document.createElement('div'); alertDiv.className = `fixed top-4 right-4 z-50 px-6 py-4 rounded-lg shadow-lg ${ type === 'success' ? 'bg-green-500 text-white' : type === 'error' ? 'bg-red-500 text-white' : 'bg-blue-500 text-white' }`; alertDiv.textContent = message; document.body.appendChild(alertDiv); setTimeout(() => { alertDiv.remove(); }, 3000); } function applyFontSize() { if (!selectedElement) return; const fontSize = document.getElementById('fontSize').value; selectedElement.className = selectedElement.className.replace(/\btext-(xs|sm|base|lg|xl|2xl|3xl|4xl)\b/, ''); selectedElement.classList.add(fontSize); } function applyTextColor() { if (!selectedElement) return; const color = document.getElementById('textColor').value; selectedElement.style.color = color; } // Additional Utility Functions function addImageElement() { const editor = document.getElementById('documentEditor'); const imageContainer = document.createElement('div'); imageContainer.className = 'editable-element image-container mb-4 p-2 rounded-lg border-2 border-transparent hover:border-gray-400'); imageContainer.innerHTML = `
`; editor.appendChild(imageContainer); selectElement(imageContainer); feather.replace(); } function addVideoElement() { const editor = document.getElementById('documentEditor'); const videoContainer = document.createElement('div'); videoContainer.className = 'editable-element video-container mb-4 p-2 rounded-lg border-2 border-transparent hover:border-gray-400'); videoContainer.innerHTML = `

عنصر فيديو - يمكن إضافة رابط فيديو هنا

`; editor.appendChild(videoContainer); selectElement(videoContainer); feather.replace(); } function addQuizElement() { const editor = document.getElementById('documentEditor'); const quizContainer = document.createElement('div'); quizContainer.className = 'editable-element quiz-container mb-4 p-2 rounded-lg border-2 border-transparent hover:border-gray-400'); quizContainer.innerHTML = `

سؤال اختياري

ما هو الجواب الصحيح؟

الإجابة الأولى
الإجابة الثانية
الإجابة الثالثة
`; editor.appendChild(quizContainer); selectElement(quizContainer); feather.replace(); } function clearDocument() { if (confirm('هل أنت متأكد من مسح المستند بالكامل؟')) { const editor = document.getElementById('documentEditor'); editor.innerHTML = ''; addTextElement(); } } function duplicateElement() { if (!selectedElement) return; const clonedElement = selectedElement.cloneNode(true); const editor = document.getElementById('documentEditor'); editor.appendChild(clonedElement); selectElement(clonedElement); feather.replace(); } function moveElementUp() { if (!selectedElement) return; const previousElement = selectedElement.previousElementSibling; if (previousElement) { selectedElement.parentNode.insertBefore(selectedElement, previousElement); } function moveElementDown() { if (!selectedElement) return; const nextElement = selectedElement.nextElementSibling; if (nextElement) { selectedElement.parentNode.insertBefore(nextElement, selectedElement); } } // Enhanced AI Content Generation function enhanceAIContent(topic, subject, type, details) { const enhancedTemplates = { 'شرح': `

شرح شامل: ${topic}

${topic} يمثل أحد المفاهيم الأساسية في ${subject} التي تهدف إلى فهم ${details || 'المبادئ العلمية الأساسية'}.

الأهداف التعليمية:

  • فهم المبادئ النظرية لـ ${topic}
  • تطبيق المفاهيم في سياقات عملية
  • تحليل الأمثلة والتطبيقات

المفاهيم الرئيسية:

  • التعريف والمفهوم الأساسي
  • التطبيقات العملية
  • الأمثلة التوضيحية

الخطوات العملية:

  1. الخطوة الأولى: فهم الأساسيات
  2. الخطوة الثانية: التطبيق العملي
  3. الخطوة الثالثة: التحليل والتقييم
`, 'أسئلة': `

أسئلة تفاعلية: ${topic}

السؤال الأول (10 درجات):

اشرح مفهوم ${topic} مع ذكر أمثلة من ${subject}.

تلميح: ركز على الجوانب العملية والتطبيقية

السؤال الثاني (15 درجة):

ما هي العلاقة بين ${topic} والمفاهيم الأخرى في ${subject}؟

السؤال الثالث (25 درجة):

حل المسألة التالية المتعلقة بـ ${topic}:

${details || 'قم بتحليل وتطبيق المفاهيم التي تعلمتها.'}

`, 'ملخص': `

ملخص شامل: ${topic}

النقاط الأساسية:

  • التعريف: ${topic} هو...
  • الأهمية: يساعد في فهم...
  • التطبيقات: يستخدم في...

الكلمات المفتاحية:

مفهوم أساسي تطبيقات عملية أمثلة توضيحية

الخلاصة:

${topic} يمثل حجر الأساس في فهم ${subject} ويتطلب...

`, 'امتحان': `

امتحان تقييمي: ${topic}

المادة: ${subject}

الزمن: 60 دقيقة

الدرجة الكلية: 100

اسم الطالب: _______________

القسم الأول: الاختيار من متعدد (40 درجة)

السؤال 1 (10 درجات):

أي من العبارات التالية تعبر بشكل صحيح عن مفهوم ${topic}؟

الإجابة (أ)
الإجابة (ب)

القسم الثاني: الأسئلة المقالية (60 درجة)

السؤال 2 (30 درجة):

اشرح بالتفصيل مفهوم ${topic} مع ذكر ثلاثة أمثلة عملية من ${subject}.

` }; return enhancedTemplates[type] || templates[type] || '

المحتوى المُنشأ سيظهر هنا...

'; } // Document Templates function applyTemplate(templateType) { let templateContent = ''; switch(templateType) { case 'lesson': templateContent = `

${document.getElementById('lessonTopic').value || 'عنوان الدرس'}

الأهداف التعليمية

في نهاية هذا الدرس، سيكون الطالب قادراً على:

  • فهم المفاهيم الأساسية
  • تطبيق المبادئ العملية
  • تحليل الأمثلة والتطبيقات

المفاهيم الرئيسية

  • المفهوم الأول
  • المفهوم الثاني
  • المفهوم الثالث

المواد المطلوبة

كتاب الطالب، دليل المعلم، وسائل تعليمية

`; break; case 'worksheet': templateContent = `

ورقة عمل - ${document.getElementById('lessonTopic').value || 'الموضوع'}

اسم الطالب: _______________

التاريخ: _______________

الجزء الأول: الأسئلة الموضوعية

السؤال 1:

${document.getElementById('additionalDetails').value || 'أجب عن الأسئلة التالية بناءً على ما تعلمته.'}

`; break; default: templateContent = '

اختر قالباً للمستند...

'; } const editor = document.getElementById('documentEditor'); editor.innerHTML = templateContent; showAlert('تم تطبيق القالب بنجاح!', 'success'); } // Auto-save functionality let autoSaveInterval; function startAutoSave() { autoSaveInterval = setInterval(() => { if (currentUser) { saveDocument(); } }, 30000); // Auto-save every 30 seconds showAlert('تم تفعيل الحفظ التلقائي', 'info'); } function stopAutoSave() { if (autoSaveInterval) { clearInterval(autoSaveInterval); showAlert('تم إيقاف الحفظ التلقائي', 'info'); } // Keyboard shortcuts help function showKeyboardShortcuts() { const shortcuts = `

اختصارات لوحة المفاتيح

Ctrl+S حفظ المستند
Delete حذف العنصر المحدد
Ctrl+B عريض
Ctrl+I مائل
Ctrl+U تحته خط
`; const modal = document.createElement('div'); modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">

اختصارات لوحة المفاتيح

Ctrl+S حفظ المستند
Delete حذف العنصر المحدد
Ctrl+B عريض
Ctrl+I مائل
Ctrl+U تحته خط
`; document.body.appendChild(modal); feather.replace(); } // Enhanced image handling function addImageFromURL() { const url = prompt('أدخل رابط الصورة:'); if (url) { const editor = document.getElementById('documentEditor'); const imageContainer = document.createElement('div'); imageContainer.className = 'editable-element image-container mb-4 p-2 rounded-lg border-2 border-transparent hover:border-gray-400'); imageContainer.innerHTML = `
`; editor.appendChild(imageContainer); selectElement(imageContainer); feather.replace(); } } // Document statistics function showDocumentStats() { const editor = document.getElementById('documentEditor'); const wordCount = editor.textContent.trim().split(/\s+/).length; const elementCount = editor.querySelectorAll('.editable-element').length; const imageCount = editor.querySelectorAll('.image-container').length; const modal = document.createElement('div'); modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">

إحصائيات المستند

عدد الكلمات: ${wordCount}
عدد العناصر: ${elementCount}
عدد الصور: ${imageCount}
آخر تحديث: ${new Date().toLocaleTimeString('ar-SA')}
`; document.body.appendChild(modal); feather.replace(); } // Document collaboration features let collaborators = []; function inviteCollaborator() { const email = prompt('أدخل بريد المحرر المشارك:'); if (email) { collaborators.push(email); showAlert(`تمت دعوة ${email} للمشاركة في التحرير`, 'info'); } function showCollaborators() { const modal = document.createElement('div'); modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">

المحررون المشاركون

${collaborators.map(collab => `
${collab}
`).join('')} ${collaborators.length === 0 ? '

لا يوجد محررون مشاركون

`; document.body.appendChild(modal); feather.replace(); } function removeCollaborator(email) { collaborators = collaborators.filter(collab => collab !== email); showAlert(`تم إزالة ${email} من المشاركة`, 'info'); } // Document version history let documentHistory = []; function saveDocumentVersion() { const editor = document.getElementById('documentEditor'); const version = { id: Date.now().toString(), content: editor.innerHTML, timestamp: new Date().toISOString(), user: currentUser ? currentUser.email : 'guest' }; documentHistory.push(version); if (documentHistory.length > 10) { documentHistory.shift(); // Keep only last 10 versions } function showVersionHistory() { const modal = document.createElement('div'); modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">

سجل التعديلات

${documentHistory.map(version => `

${new Date(version.timestamp).toLocaleString('ar-SA')}" class="cursor-pointer hover:bg-gray-50 p-2 rounded"> نسخة ${new Date(version.timestamp).toLocaleTimeString('ar-SA')}" onclick="restoreVersion('${version.id}')"> ${new Date(version.timestamp).toLocaleString('ar-SA')}

`).join('')} ${documentHistory.length === 0 ? '

لا يوجد سجل تعديلات

`; document.body.appendChild(modal); feather.replace(); } function restoreVersion(versionId) { const version = documentHistory.find(v => v.id === versionId); if (version) { const editor = document.getElementById('documentEditor'); editor.innerHTML = version.content; showAlert('تم استعادة النسخة المحددة', 'success'); } // Real-time collaboration simulation function simulateCollaboration() { if (collaborators.length > 0) { const editor = document.getElementById('documentEditor'); const newElement = document.createElement('div'); newElement.className = 'editable-element text-container mb-4 p-2 rounded-lg border-2 border-green-500 bg-green-50">

تعديل مشارك: ${collaborators[0]} - ${new Date().toLocaleTimeString('ar-SA')}" class="text-sm">تمت إضافة عنصر بواسطة محرر مشارك

`; editor.appendChild(newElement); showAlert(`تمت إضافة عنصر بواسطة ${collaborators[0]}", 'info'); } // Advanced AI features function analyzeDocumentQuality() { const editor = document.getElementById('documentEditor'); const content = editor.innerHTML; // Simple quality analysis let score = 0; const elements = editor.querySelectorAll('.editable-element'); const images = editor.querySelectorAll('.image-container'); const wordCount = editor.textContent.trim().split(/\s+/).length; if (wordCount > 100) score += 30; if (elements.length > 3) score += 30; if (images.length > 0) score += 20; if (content.includes('= 80 ? 'ممتاز' : score >= 60 ? 'جيد جداً' : score >= 40 ? 'جيد' : 'يحتاج تحسين'; showAlert(`جودة المستند: ${score}/100 (${qualityLevel})", 'info'); } // Export to various formats function exportToWord() { const editor = document.getElementById('documentEditor'); const content = editor.innerHTML; // Create downloadable HTML file that can be opened in Word const blob = new Blob([` EduCraft AI Document ${content} `], { type: 'application/msword' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'مستند-EduCraft-AI.doc'; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); showAlert('تم تصدير المستند إلى Word', 'success'); } function exportToPPT() { const editor = document.getElementById('documentEditor'); const slides = editor.querySelectorAll('.editable-element'); if (slides.length === 0) { showAlert('لا يوجد محتوى لتصديره', 'error'); return; } showAlert('جاري إعداد العرض التقديمي...', 'info'); // Create a simple presentation structure const pptContent = ` EduCraft AI Presentation

عرض تقديمي من EduCraft AI

`; const blob = new Blob([pptContent], { type: 'application/vnd.ms-powerpoint' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'عرض-EduCraft-AI.ppt'; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); } // Document templates library const templatesLibrary = { 'math_worksheet': { name: 'ورقة عمل رياضيات', content: `

ورقة عمل في الرياضيات

الأسئلة

السؤال 1:

حل المعادلة: 2x + 5 = 15

السؤال 2:

احسب محيط المستطيل الذي طوله 8 سم وعرضه 5 سم.

السؤال 3:

ما هو ناتج ¾ × ⅔؟

` }, 'science_report': { name: 'تقرير علمي', content: `

تقرير تجربة علمية

الهدف من التجربة

دراسة تأثير العوامل المختلفة على الظاهرة العلمية.

المواد والأدوات

  • مادة التجربة
  • أدوات القياس
  • وسائل السلامة
` }, 'arabic_essay': { name: 'موضوع تعبير عربي', content: `

موضوع التعبير

المقدمة

في هذا الموضوع سأتحدث عن أهمية القراءة في حياة الإنسان.

` } }; function showTemplatesLibrary() { const modal = document.createElement('div'); modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">

مكتبة القوالب

${Object.entries(templatesLibrary).map(([key, template]) => `

${template.name}

`).join('')}
`; document.body.appendChild(modal); feather.replace(); } function applyTemplateFromLibrary(templateKey) { const template = templatesLibrary[templateKey]; if (template) { const editor = document.getElementById('documentEditor'); editor.innerHTML = template.content; showAlert(`تم تطبيق قالب ${template.name}", 'success'); } } // Enhanced document sharing function shareDocument() { const documentData = { title: 'مستند EduCraft AI', content: document.getElementById('documentEditor').innerHTML, createdAt: new Date().toISOString() }; const shareUrl = `data:text/json;charset=utf-8,${encodeURIComponent(JSON.stringify(documentData))}'; const a = document.createElement('a'); a.href = shareUrl; a.download = 'مستند-EduCraft-AI.json'; document.body.appendChild(a); a.click(); document.body.removeChild(a); showAlert('تم إنشاء رابط مشاركة المستند', 'success'); } // Document backup and restore function backupDocument() { const editor = document.getElementById('documentEditor'); const backup = { id: Date.now().toString(), content: editor.innerHTML, timestamp: new Date().toISOString() }; localStorage.setItem('documentBackup', JSON.stringify(backup)); showAlert('تم إنشاء نسخة احتياطية', 'success'); } function restoreBackup() { const backup = localStorage.getItem('documentBackup'); if (backup) { const backupData = JSON.parse(backup); const editor = document.getElementById('documentEditor'); editor.innerHTML = backupData.content; showAlert('تم استعادة النسخة الاحتياطية', 'success'); } // Advanced editing features function findAndReplace() { const findText = prompt('أدخل النص المراد البحث عنه:'); if (!findText) return; const replaceText = prompt('أدخل النص البديل:'); const editor = document.getElementById('documentEditor'); const content = editor.innerHTML; const newContent = content.replace(new RegExp(findText, 'g'), replaceText); editor.innerHTML = newContent; showAlert('تم استبدال النص', 'success'); } function wordCount() { const editor = document.getElementById('documentEditor'); const text = editor.textContent || editor.innerText || ''; const words = text.trim().split(/\s+/); showAlert(`عدد الكلمات: ${words.length}", 'info'); } // Document collaboration chat let chatMessages = []; function showCollaborationChat() { const modal = document.createElement('div'); modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">

دردشة التعاون

${chatMessages.map(msg => `

${msg.user}

${msg.message}

`).join('')} ${chatMessages.length === 0 ? '

لا توجد رسائل بعد

`; document.body.appendChild(modal); feather.replace(); } function sendChatMessage() { const input = document.getElementById('chatInput'); const message = input.value.trim(); if (message) { chatMessages.push({ user: currentUser ? currentUser.name : 'مستخدم', message: message, timestamp: new Date().toISOString() }; input.value = ''; showCollaborationChat(); } // Final initialization document.addEventListener('DOMContentLoaded', function() { feather.replace(); checkAuthStatus(); initializeEditor(); // Auto-save for authenticated users if (currentUser) { startAutoSave(); } // Save initial document version saveDocumentVersion(); });