Danool Logo
Giriş yap / Hesap oluştur

Ana Menü

Hızlı Bağlantılar

Bizimle İletişime Geçin

Ticari İsim Oluşturucu akıllı

Su filtreleri ve arıtma tesisleri için şirket isimleri oluşturmaya yönelik en güçlü yapay zeka destekli motor.

Yapay zekâ, akıllı eş anlamlı kelimeler ve kelime kombinasyonları oluşturmak için bu kelimelere dayanacaktır.

Genel değerlendirme ${data.overall_score}%

${data.reason}

Profesyonellik ${data.ratings.professionalism}%
Ezberlemesi kolay ${data.ratings.memorability}%
Pazarlama gücü ${data.ratings.marketing_power}%
SEO Gücü ${data.ratings.seo}%
`; resultsContainer.insertAdjacentHTML('beforeend', cardHtml); gsap.to(`#card-${index}`, { opacity: 1, y: 0, duration: 0.5, delay: i * 0.1 }); }); } // Infinite Scroll Logic const scrollAnchor = document.getElementById('scrollAnchor'); const infiniteLoading = document.getElementById('infiniteLoading'); const observer = new IntersectionObserver(async (entries) => { if(entries[0].isIntersecting && currentResults.length > 0 && !isGenerating) { isGenerating = true; infiniteLoading.classList.remove('hidden'); try { const formData = new FormData(form); currentResults.forEach(r => formData.append('existing_names[]', r.name_en)); const response = await fetch('https://www.danool.com/tr/api/your-brand/generate', { method: 'POST', headers: { 'X-CSRF-TOKEN': '2RMMf5aBPy4IgI9AkGpNMfDHw4CMdncKK1Nve23T', 'Accept': 'application/json' }, body: formData }); const result = await response.json(); if(result.success) { const oldLength = currentResults.length; currentResults = currentResults.concat(result.data); document.getElementById('resultsCount').innerText = currentResults.length; renderCards(result.data, oldLength); } } catch (e) { console.error("Failed to load more brands:", e); } finally { isGenerating = false; infiniteLoading.classList.add('hidden'); } } }, { rootMargin: '200px' }); observer.observe(scrollAnchor); // Modal Logic const reportModal = document.getElementById('reportModal'); let currentBrandNameEn = ''; let currentBrandData = null; function openReportModal(index) { const data = currentResults[index]; currentBrandData = data; currentBrandNameEn = data.name_en; document.getElementById('modalTitle').innerText = `${data.name_en} | ${data.name_ar}`; document.getElementById('modalSlogan').innerText = `"${data.slogan || ''}"`; document.getElementById('modalStory').innerText = data.story; document.getElementById('modalUses').innerText = data.suitable_uses; document.getElementById('modalMarkets').innerText = data.target_markets; // Setup SEO Link const slug = data.name_en.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)+/g, ''); document.getElementById('seoPageLink').href = `/business-name/${slug}`; // Overall Score Animation document.getElementById('modalOverallScore').innerText = '0'; document.getElementById('modalOverallBar').style.width = '0%'; setTimeout(() => { document.getElementById('modalOverallScore').innerText = data.overall_score; document.getElementById('modalOverallBar').style.width = `${data.overall_score}%`; }, 300); // Metrics Grid const metricsMap = { 'الاحترافية': {val: data.ratings.professionalism, color: '#052033'}, 'سهولة الحفظ': {val: data.ratings.memorability, color: '#ffb600'}, 'سهولة النطق': {val: data.ratings.pronunciation_ease, color: '#10b981'}, 'قوة التسويق': {val: data.ratings.marketing_power, color: '#f59e0b'}, 'السيو SEO': {val: data.ratings.seo, color: '#ef4444'}, 'الثقة': {val: data.ratings.trust, color: '#0ea5e9'}, 'العالمية': {val: data.ratings.global_appeal, color: '#6366f1'}, 'الابتكار': {val: data.ratings.innovation, color: '#ec4899'}, 'التصدير': {val: data.ratings.exportability, color: '#14b8a6'}, 'الشعار': {val: data.ratings.logo_potential, color: '#84cc16'} }; const metricsGrid = document.getElementById('metricsGrid'); metricsGrid.innerHTML = ''; Object.entries(metricsMap).forEach(([label, info]) => { metricsGrid.innerHTML += renderMetricCircle(label, info.val, info.color); }); // SWOT document.getElementById('swotS').innerHTML = data.swot.strengths.map(s => `
  • ${s}
  • `).join(''); document.getElementById('swotW').innerHTML = data.swot.weaknesses.map(w => `
  • ${w}
  • `).join(''); document.getElementById('swotO').innerHTML = data.swot.opportunities.map(o => `
  • ${o}
  • `).join(''); document.getElementById('swotT').innerHTML = data.swot.threats.map(t => `
  • ${t}
  • `).join(''); document.getElementById('modalAiNotes').innerText = data.ai_notes; // Identity - Render all palettes const paletteContainer = document.getElementById('colorPalette'); paletteContainer.innerHTML = ''; if (data.identity.palettes && data.identity.palettes.length > 0) { // Set input colors to the first palette document.getElementById('customColor1').value = data.identity.palettes[0][0]; document.getElementById('customColor2').value = data.identity.palettes[0][1]; document.getElementById('customColor3').value = data.identity.palettes[0][2]; data.identity.palettes.forEach((palette, pIndex) => { const isActive = pIndex === 0 ? 'ring-4 ring-[#ffb600]' : 'border-transparent'; let paletteHtml = `
    `; palette.forEach(c => { paletteHtml += `
    `; }); paletteHtml += `
    `; paletteContainer.innerHTML += paletteHtml; }); } else { // Fallback for older data format data.identity.colors.forEach(c => { paletteContainer.innerHTML += `
    `; }); } document.getElementById('modalFontAr').innerText = data.identity.best_arabic_font || 'Almarai'; document.getElementById('modalFontEn').innerText = data.identity.best_english_font || 'Inter'; document.getElementById('modalLogoType').innerText = data.identity.suitable_logo_type || 'Minimalist'; updateLogoPrompt(data.identity.colors); // Reset Checkers document.getElementById('dbCheckContainer').innerHTML = `Canlı inceleme devam ediyor...`; document.getElementById('domainsTableBody').innerHTML = ` Küresel RDAP kayıtları şu anda inceleniyor...`; reportModal.classList.remove('hidden'); gsap.fromTo(reportModal.children[1], { scale: 0.9, opacity: 0, y: 50 }, { scale: 1, opacity: 1, y: 0, duration: 0.4, ease: "back.out(1.2)" }); // Trigger Checks triggerCheckers(data.name_en, index); } function closeReportModal() { gsap.to(reportModal.children[1], { scale: 0.9, opacity: 0, y: 50, duration: 0.2, onComplete: () => reportModal.classList.add('hidden') }); } function renderMetricCircle(label, percentage, color) { return `
    ${percentage} ${label}
    `; } // Trigger GSAP for circles after modal opens reportModal.addEventListener('transitionend', () => { document.querySelectorAll('#reportModal .circle').forEach(circle => { const final = circle.getAttribute('data-final'); circle.setAttribute('stroke-dasharray', `${final}, 100`); }); }); function selectPalette(index, element) { if(!currentBrandData || !currentBrandData.identity.palettes) return; // Update UI Rings document.querySelectorAll('.palette-group').forEach(el => { el.classList.remove('ring-4', 'ring-[#ffb600]'); el.classList.add('border-transparent'); }); element.classList.remove('border-transparent'); element.classList.add('ring-4', 'ring-[#ffb600]'); // Update Prompt const newColors = currentBrandData.identity.palettes[index]; updateLogoPrompt(newColors); // Sync custom color inputs if(newColors[0]) document.getElementById('customColor1').value = newColors[0]; if(newColors[1]) document.getElementById('customColor2').value = newColors[1]; if(newColors[2]) document.getElementById('customColor3').value = newColors[2]; } function applyCustomColors() { if(!currentBrandData) return; const c1 = document.getElementById('customColor1').value; const c2 = document.getElementById('customColor2').value; const c3 = document.getElementById('customColor3').value; // Remove ring from predefined palettes since user chose custom document.querySelectorAll('.palette-group').forEach(el => { el.classList.remove('ring-4', 'ring-[#ffb600]'); el.classList.add('border-transparent'); }); updateLogoPrompt([c1, c2, c3]); } function updateLogoPrompt(colors) { if(!currentBrandData) return; const prompt = `A minimalist logo for a water brand named ${currentBrandData.name_en}, modern, professional, using hex colors ${colors.join(', ')}, vector, clean white background.`; document.getElementById('modalLogoPrompt').innerText = prompt; } async function triggerCheckers(nameEn, index) { try { const formData = new FormData(); formData.append('name_en', nameEn); formData.append('_token', '2RMMf5aBPy4IgI9AkGpNMfDHw4CMdncKK1Nve23T'); const response = await fetch('https://www.danool.com/tr/api/your-brand/check', { method: 'POST', body: formData }); const result = await response.json(); if(result.success) { // DB Status const db = result.db_status; const dbIcon = db.color === 'green' ? 'check-circle' : (db.color === 'yellow' ? 'exclamation-triangle' : 'times-circle'); const dbColorClass = db.color === 'green' ? 'text-green-600' : (db.color === 'yellow' ? 'text-yellow-600' : 'text-red-600'); document.getElementById('dbCheckContainer').innerHTML = ` ${db.text} ${db.color !== 'green' ? `Benzerlik: ${db.percentage}% ile ${db.similar_to}` : ''} `; // Update inline card const inlineCard = document.getElementById(`inlineCheck-${index}`); if(inlineCard) { inlineCard.classList.remove('hidden'); inlineCard.querySelector('.db-res').innerText = db.text; inlineCard.querySelector('.db-res').className = `db-res font-black ${dbColorClass}`; } // Domains const tbody = document.getElementById('domainsTableBody'); tbody.innerHTML = ''; let dotComAvail = false; Object.entries(result.domains).forEach(([dom, status]) => { const isAvail = status === 'Available'; if(dom.toLowerCase() === nameEn.toLowerCase() + '.com' && isAvail) { dotComAvail = true; } tbody.innerHTML += ` ${dom} ${isAvail ? 'Satın alınabilir' : 'Rezerve edildi'} `; }); if(inlineCard) { const domRes = inlineCard.querySelector('.dom-res'); domRes.innerText = dotComAvail ? 'Kullanılabilir (.com)' : 'Rezerve Edilmiş'; domRes.className = `dom-res font-black ${dotComAvail ? 'text-green-600' : 'text-red-600'}`; } } } catch(e) { console.error(e); } } function copyText(text) { navigator.clipboard.writeText(text); alert('Kopyalandı: ' + text); } function copyPrompt() { const p = document.getElementById('modalLogoPrompt').innerText; copyText(p); } function downloadPDF() { const element = document.getElementById('pdfContent'); const opt ​​​​= { margin: 0, filename: `${currentBrandNameEn}_Brand_Report.pdf`, image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, useCORS: true }, jsPDF: { unit: 'in', format: 'a4', orientation: 'portrait' } }; html2pdf().set(opt).from(element).save(); }