M
Academia Maxxima
Carregando experiência premium de treinamento...
Maxxima
Academia MaxximaTreinamento Premium
Plataforma oficial Maxxima

Treinamento premium para alta performance comercial e operacional.

Uma jornada clara, objetiva e profissional para formar consultores e regionais mais preparados, com domínio do produto, regulamento, sistema, rotina de vendas e padrão Maxxima.

14 anos
14 anos de mercadoExperiência e presença para reforçar autoridade no treinamento.
Cadastro SUSEP
Associação cadastrada na SUSEPCredibilidade institucional para comunicação comercial.

Escolha o perfil da trilha

O conteúdo e a linguagem se adaptam ao perfil selecionado.

AlunoAluno Maxxima
Progresso0%
Nota final0%
TermoPendente

Módulos do treinamento

Clique em qualquer módulo para abrir diretamente o conteúdo.

AMBIENTE DE TESTE
`; const w = window.open('', '_blank'); if(!w){ alert('Permita pop-ups para imprimir o certificado.'); return; } w.document.open(); w.document.write(doc); w.document.close(); } function renderCertificate(){ const p=progress(); const approved=p.pct===100 && bestScore()>=70 && state.conduct; const issueDate = new Date().toLocaleDateString("pt-BR"); const studentName = state.student?.name || "Aluno Maxxima"; const role = roleLabel(); document.getElementById("content").innerHTML=`
Maxxima
Maxxima Proteção Veicular

Certificado de Conclusão

Certificamos que

${studentName}

concluiu a trilha ${role} com progresso de ${p.pct}% e nota final de ${bestScore()}%.

A Maxxima agradece o seu empenho, dedicação e compromisso durante este treinamento. Seu esforço em buscar conhecimento e excelência fortalece a nossa equipe e eleva o padrão de atendimento aos nossos associados.
Desejamos muito sucesso na sua jornada comercial. Que este aprendizado se transforme em confiança, performance, grandes resultados e muitas conquistas. Boa sorte e conte com a Maxxima para crescer cada vez mais.
Perfil concluído${role}
Progresso${p.pct}%
Nota final${bestScore()}%
Emitido em${issueDate}

${approved?"✅ Certificado liberado":(!state.conduct?"⏳ Aceite o Termo de Conduta para finalizar":"⏳ Pendente de conclusão")}

Equipe Maxxima Proteção VeicularTreinamento oficial • 14 anos de mercado • associação cadastrada na SUSEP
`; } function quizReviewHTML(m){ const mid = moduleId(m); const review = state.quizReviews && state.quizReviews[mid]; if(!review) return ""; const attemptData = moduleAttemptData(mid); const status = review.score >= 70 ? "Aprovado" : "Revisar conteúdo"; const wrongs = review.wrongs || []; const wrongHTML = wrongs.length ? wrongs.map((w, idx)=>`
Erro ${idx+1} — Pergunta ${w.number}
Pergunta: ${w.question}
Resposta marcada: ${w.selectedText}
Resposta correta: ${w.correctText}
Orientação: revise este ponto antes de avançar para garantir uma venda correta e segura.
`).join("") : `
Parabéns! Você acertou todas as perguntas desta avaliação.
`; return `

📌 Revisão da avaliação

Veja abaixo sua nota e os pontos que precisam de revisão.

Antes da correção${attemptData.firstText}
Depois da correção${attemptData.afterText}
Tentativas${attemptData.attemptsText}
Acertos${review.correct}/${review.total}
Status${status}
${review.score < 70 ? `
Você ainda precisa revisar alguns pontos antes de ser liberado. Veja as perguntas erradas abaixo e refaça a prova.
` : `
${review.score === 100 ? "Parabéns! Você concluiu esta etapa com 100% de aproveitamento." : "Parabéns! Você atingiu a nota mínima."} Agora você pode seguir para a próxima etapa do treinamento.
` } ${wrongHTML}
`; } function updateAutoCompletion(mid){ const m=getModule(mid); const lessonsOk=(m.lessons||[]).every((_,i)=>state.lessonDone[mid+"_"+i]); const checksOk=(m.checklist||[]).every((_,i)=>state.checks[mid+"_"+i]); const score=state.quizScores[mid]?.score || 0; if(lessonsOk && checksOk && score>=70) state.completed[mid]=true; } function submitQuiz(){ const mid=state.module, m=getModule(mid); if(isLastModule(mid) && !state.conduct){ alert("Antes de finalizar a última etapa, aceite o Termo de Conduta da Maxxima."); return; } const gateMsg = moduleValidationMessage(m); if(gateMsg){ alert(gateMsg); return; } let correct=0, answered=0; const wrongs = []; (m.quiz||[]).forEach((q,qi)=>{ const selected=document.querySelector(`input[name="q_${mid}_${qi}"]:checked`); if(selected){ answered++; const selectedIndex = Number(selected.value); const correctIndex = Number(q.correct); if(selectedIndex===correctIndex){ correct++; } else { wrongs.push({ number: qi + 1, question: q.q, selectedIndex, selectedText: q.options[selectedIndex] || "Não informado", correctIndex, correctText: q.options[correctIndex] || "Não informado" }); } } }); if(answered < (m.quiz||[]).length){ alert("Responda todas as perguntas antes de finalizar a avaliação."); return; } const total = (m.quiz||[]).length; const score = Math.round(correct / total * 100); const now = new Date().toLocaleString("pt-BR"); if(!state.quizAttempts) state.quizAttempts = {}; if(!state.quizAttempts[mid]) state.quizAttempts[mid] = []; const attempt = { score, correct, total, wrongs, date: now }; state.quizAttempts[mid].push(attempt); if(!state.firstAttemptScores) state.firstAttemptScores = {}; if(!state.firstAttemptScores[mid]){ state.firstAttemptScores[mid] = attempt; } if(!state.quizReviews) state.quizReviews = {}; state.quizReviews[mid] = attempt; if(!state.quizScores) state.quizScores = {}; if(score >= (state.quizScores[mid]?.score || 0)){ state.quizScores[mid] = { score, passed: score >= 70, date: now }; } state.completed[mid] = true; addEvent("avaliação", `Módulo ${m.title}: ${score}% de acerto • tentativa ${state.quizAttempts[mid].length}`); save(); sendToServer("quiz"); render(); toast(score >= 70 ? `Etapa finalizada com ${score}% de acerto.` : `Etapa finalizada com ${score}% de acerto. Revise os erros e tente melhorar.` ); } function markModule(){ const m=getModule(state.module), mid=moduleId(m); const gateMsg = moduleValidationMessage(m); if(gateMsg){ alert(gateMsg); return; } (m.lessons||[]).forEach((_,i)=>state.lessonDone[mid+"_"+i]=true); (m.checklist||[]).forEach((_,i)=>state.checks[mid+"_"+i]=true); const now = new Date().toLocaleString("pt-BR"); if(!state.quizScores[mid]) state.quizScores[mid]={score:100,passed:true,date:now}; if(!state.quizReviews) state.quizReviews = {}; if(!state.quizReviews[mid]){ state.quizReviews[mid] = { score:100, correct:(m.quiz||[]).length, total:(m.quiz||[]).length, wrongs:[], date:now }; } if(!state.firstAttemptScores) state.firstAttemptScores = {}; if(!state.quizAttempts) state.quizAttempts = {}; if(!state.firstAttemptScores[mid]){ state.firstAttemptScores[mid] = { score:100, correct:(m.quiz||[]).length, total:(m.quiz||[]).length, wrongs:[], date:now }; } state.completed[mid]=true; addEvent("conclusão","Módulo concluído: "+m.title); save(); sendToServer("conclusao"); render(); toast("Módulo concluído! Siga para a próxima etapa."); } function exportReport(){ const blob=new Blob([JSON.stringify(performanceData(),null,2)],{type:"application/json"}); const url=URL.createObjectURL(blob); const a=document.createElement("a"); a.href=url; a.download="desempenho_academia_maxxima.json"; document.body.appendChild(a); a.click(); a.remove(); URL.revokeObjectURL(url); toast("Relatório exportado."); } function copyText(txt){ navigator.clipboard.writeText(txt).then(()=>toast("Copiado.")); } function openMediaLibrary(){ state.view="media"; save(); render(); } function renderMediaLibrary(){ document.getElementById("content").innerHTML=`
📲 Biblioteca de mídias Maxxima

Biblioteca refeita com as mídias enviadas por você. Todas as imagens da biblioteca anterior foram substituídas por esta nova seleção.

Carregando...
Abrir biblioteca completa
`; const renderCards=(items)=>{ document.getElementById('mediaCount').textContent=`${items.length} mídia(s)`; const grid=document.getElementById('mediaGridDynamic'); if(!items.length){ grid.innerHTML=`
Nenhuma mídia encontrada para esta busca.
`; return; } grid.innerHTML=items.map(item=>`
${item.filename}

${item.filename}

${item.desc || 'Mídia oficial Maxxima disponível para download.'}

Baixar mídia
`).join(''); }; fetch('./assets/media-library.json') .then(r=>r.json()) .then(data=>{ const allItems=data.items||[]; renderCards(allItems); const input=document.getElementById('mediaSearch'); input.addEventListener('input',()=>{ const q=input.value.trim().toLowerCase(); const filtered=!q ? allItems : allItems.filter(item=>item.filename.toLowerCase().includes(q)); renderCards(filtered); }); }) .catch(()=>{ document.getElementById('mediaCount').textContent='Erro ao carregar'; document.getElementById('mediaGridDynamic').innerHTML=`
Não foi possível carregar a biblioteca de mídias.
`; }); } function openTools(){ state.view="tools"; save(); render(); } function renderConsultantTools(){ const tools=[ {icon:"🌐",title:"Consultor Web",desc:"Acesse a plataforma oficial pelo navegador.",cta:"Acessar plataforma",url:"https://consultor.maxximapv.com.br/conta/login",display:"consultor.maxximapv.com.br/conta/login",qr:"./assets/ferramentas/qr-consultor-web.png"}, {icon:"🤖",title:"App Android",desc:"Baixe o aplicativo oficial no Google Play.",cta:"Baixar para Android",url:"https://play.google.com/store/apps/details?id=com.maxximapvconsultor",display:"Google Play • com.maxximapvconsultor",qr:"./assets/ferramentas/qr-app-android.png"}, {icon:"🍎",title:"App iPhone",desc:"Baixe o aplicativo oficial na App Store.",cta:"Baixar para iPhone",url:"https://apps.apple.com/app/id6760837419",display:"App Store • id6760837419",qr:"./assets/ferramentas/qr-app-iphone.png"} ]; document.getElementById("content").innerHTML=`
Ferramentas oficiais
Ferramentas do Consultor Maxxima

Acesse abaixo os canais oficiais do consultor para sua rotina comercial. Use sempre esses acessos para manter segurança, organização e padronização.

${tools.map(t=>`
${t.icon}

${t.title}

Canal oficial

${t.desc}

QR Code ${t.title} ${t.cta} ${t.display}
`).join("")}
🛡️ Recomendação Maxxima: salve estes acessos e utilize apenas os canais oficiais do consultor.
`; } function render(){ renderProfiles(); renderModules(); renderSimulator(); updateStatus(); if(state.view==="module") renderModule(); else if(state.view==="performance") renderPerformance(); else if(state.view==="certificate") renderCertificate(); else if(state.view==="media") renderMediaLibrary(); else if(state.view==="tools") renderConsultantTools(); else renderHome(); } document.addEventListener("click",e=>{ const module=e.target.closest("[data-module]"); if(module){ e.preventDefault(); openModule(module.dataset.module); return; } const profile=e.target.closest("[data-profile]"); if(profile){ e.preventDefault(); setTrack(profile.dataset.profile); return; } const action=e.target.closest("[data-action]"); if(action){ e.preventDefault(); const a=action.dataset.action; if(a==="start") startStudent(); if(a==="resume") resume(); if(a==="home") goHome(); if(a==="performance") openPerformance(); if(a==="certificate") openCertificate(); if(a==="media") openMediaLibrary(); if(a==="tools") openTools(); if(a==="printCertificate") printCertificate(); if(a==="submitQuiz") submitQuiz(); if(a==="markModule") markModule(); if(a==="validateOnly"){ if(validateModuleCompletion()) toast("Leitura e checklist liberados. Agora faça a avaliação para concluir."); } if(a==="nextModule") goNextModule(); if(a==="export") exportReport(); return; } const copy=e.target.closest("[data-copy]"); if(copy){ e.preventDefault(); copyText(decodeURIComponent(copy.dataset.copy)); } }); document.addEventListener("input",e=>{ if(e.target.dataset.calc){ calc[e.target.dataset.calc]=Number(e.target.value||0); save(); renderSimulator(); } }); document.addEventListener("change",e=>{ if(e.target.id==="conductCheck"){ state.conduct=e.target.checked; if(state.conduct) addEvent("termo","Aceitou o termo"); save(); sendToServer("termo"); updateStatus(); } if(e.target.dataset.lesson!==undefined){ state.lessonDone[state.module+"_"+e.target.dataset.lesson]=e.target.checked; updateAutoCompletion(state.module); save(); } if(e.target.dataset.check!==undefined){ state.checks[state.module+"_"+e.target.dataset.check]=e.target.checked; updateAutoCompletion(state.module); save(); } }); document.addEventListener("DOMContentLoaded",render);