


const socket = io();

let barreStress = document.getElementById('barreStress')
let stress = 0;
let maxInterval1;
let maxInterval2;

//  ________________________________________________________________________________________


function test() {
  setInterval(() => {
    stress+=10;
    console.log(stress);
    testBarre();
  }, 1000);
}

function teste(){
  setInterval(() => {
    stress=0;
  }, 15000);
}

function animBarreMax() {
  clearInterval(maxInterval1);
  clearInterval(maxInterval2);

  maxInterval1 = setInterval(() => {
    barreStress.style.backgroundImage = 'url("barre/barreMax1.PNG")';
  }, 250);

  maxInterval2 = setInterval(() => {
    barreStress.style.backgroundImage = 'url("barre/barreMax2.PNG")';
  }, 500);
}


function stopAnimBarreMax() {
  clearInterval(maxInterval1);
  clearInterval(maxInterval2);
}


function testBarre() {
  if (stress < 100) {
    stopAnimBarreMax();
  }

  if (stress <= 10) {
    barreStress.style.backgroundImage = 'url("barre/barre1.PNG")';
  } else if (stress <= 20) {
    barreStress.style.backgroundImage = 'url("barre/barre2.PNG")';
  } else if (stress <= 30) {
    barreStress.style.backgroundImage = 'url("barre/barre3.PNG")';
  } else if (stress <= 40) {
    barreStress.style.backgroundImage = 'url("barre/barre4.PNG")';
  } else if (stress <= 50) {
    barreStress.style.backgroundImage = 'url("barre/barre5.PNG")';
  } else if (stress <= 60) {
    barreStress.style.backgroundImage = 'url("barre/barre6.PNG")';
  } else if (stress <= 70) {
    barreStress.style.backgroundImage = 'url("barre/barre7.PNG")';
  } else if (stress <= 80) {
    barreStress.style.backgroundImage = 'url("barre/barre8.PNG")';
  } else if (stress <= 90) {
    barreStress.style.backgroundImage = 'url("barre/barre9.PNG")';
  } else if (stress >= 100) {
    animBarreMax();
  }
}

//  ________________________________________________________________________________________


function addNoise() {
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');
  canvas.width = window.innerWidth;
  canvas.height = window.innerHeight;
  const imageData = ctx.createImageData(canvas.width, canvas.height);
  const data = imageData.data;

  for (let i = 0; i < data.length; i += 4) {
    const value = Math.random() * 255;
    data[i] = data[i + 1] = data[i + 2] = value;
    data[i + 3] = 255; // alpha
  }

  ctx.putImageData(imageData, 0, 0);
  document.body.style.backgroundImage = `url(${canvas.toDataURL()})`;
}


//  ________________________________________________________________________________________


function lireTexte() {
  // Récupérer le texte à lire depuis l'élément HTML avec l'ID 'texte'
  const Texte = document.getElementById('texte');
  const texteToSpeak = Texte ? Texte.innerText : "Texte par défaut";

  // Appeler l'API backend pour lire le texte
  fetch(`/speak?text=${encodeURIComponent(texteToSpeak)}`)
    .then(reponse => {
      if (!reponse.ok) {
        throw new Error('Erreur réseau lors de l\'appel de l\'API');
      }
      return reponse.text();
    })
    .then(data => {
      console.log(data); // Affiche la réponse du serveur
    })
    .catch(error => {
      console.error('Erreur :', error);
    });
}


//  ________________________________________________________________________________________

let envoyerQuestion = document.getElementById("envoyerQuestion");


function doubleRandomWord(question) {
  let words = question.split(' ');
  if (words.length === 0) return question;

  let randomIndex = Math.floor(Math.random() * words.length);
  words.splice(randomIndex, 0, words[randomIndex]);

  return words.join(' ');
}


function addInsulte(question) {
  let listeInsulte = [
  'PUTE',
  'BITE',
  'CON',
  'CONNARD',
  'SALOPE',
  'MERDE',
  'PUTAIN'
  ];
  let Insulte = listeInsulte[Math.floor(Math.random() * listeInsulte.length)];

  let words = question.split(' ');
  let randomIndex = Math.floor(Math.random() * (words.length + 1));
  words.splice(randomIndex, 0, Insulte);

  return words.join(' ');
}

function submitQuestion (){
  let question = document.getElementById('questionInput').value;
  if (question.trim() !== '') {

    // Modifier la question
    // question = doubleRandomWord(question);
    // question = addInsulte(question);

    // Envoyer la question au serveur via socket.io ou une requête HTTP
    socket.emit('question', question);

    // Afficher la question dans le conteneur de réponses
    const reponseContainer = document.getElementById('reponseContainer');
    const questionElement = document.createElement('div');
    questionElement.textContent = `Question: ${question}`;
    reponseContainer.appendChild(questionElement);

    // Vider le champ de saisie
    document.getElementById('questionInput').value = '';
  }
};


//  ________________________________________________________________________________________


// // Créez une scène, une caméra et un rendu
// const scene = new THREE.Scene();
// const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
// const renderer = new THREE.WebGLRenderer();
// renderer.setSize(window.innerWidth, window.innerHeight);
// document.body.appendChild(renderer.domElement);

// // Ajoutez des lumières
// const light = new THREE.HemisphereLight(0xffffbb, 0x080820, 1);
// scene.add(light);

// // Chargez le modèle .obj
// const objLoader = new THREE.OBJLoader();
// objLoader.load(
//   'cybergirl.obj', // Remplacez par le chemin de votre fichier .obj
//   (object) => {
//     scene.add(object);
//     object.position.set(0, 0, 0); // Ajustez la position si nécessaire
//   },
//   (xhr) => {
//     console.log((xhr.loaded / xhr.total * 100) + '% loaded');
//   },
//   (error) => {
//     console.error('Une erreur est survenue lors du chargement du modèle:', error);
//   }
// );


// const mtlLoader = new THREE.MTLLoader();
// mtlLoader.load('cybergirl.mtl', (materials) => {
//   materials.preload();

//   const objLoader = new THREE.OBJLoader();
//   objLoader.setMaterials(materials);
//   objLoader.load('cybergirl.obj',(object) => {
//       scene.add(object);
//       object.position.set(0, 0, 0); // Ajustez la position si nécessaire
//     },
//     (xhr) => {
//       console.log((xhr.loaded / xhr.total * 100) + '% loaded');
//     },
//     (error) => {
//       console.error('Une erreur est survenue lors du chargement du modèle:', error);
//     }
//   );
// });


// // Positionnez la caméra
// camera.position.z = 5;


// // Fonction de rendu
// function animate() {
//   requestAnimationFrame(animate);
//   renderer.render(scene, camera);
// }
// animate();



//  ________________________________________________________________________________________


let intervalEcoute;
let intervalEcoute1;
let intervalEcoute2;

let tete = document.getElementById('tete');
let tetegif =document.getElementById('teteGif')
let parle = -1;

function animAttente() {
  tete.style.display='none';
  tetegif.style.display='block';
}

function Ecoute() {
  tete.style.display='block';
  tetegif.style.display='none';
}


function animEcoute() {
  tete.style.display='block';
  tetegif.style.display='none';
  clearInterval(intervalEcoute1);
  clearInterval(intervalEcoute2);

  intervalEcoute = setInterval(() => {
    if (parle <= 0) {

      intervalEcoute1 = setInterval(() => {
        clearInterval(intervalEcoute1);
        tete.style.backgroundImage='url("cybergirl_anim/png/^^1.png")';
        console.log('1');

        intervalEcoute2 = setInterval(() => {
          clearInterval(intervalEcoute2);
          tete.style.backgroundImage='url("cybergirl_anim/png/^^2.png")';
          console.log('2');

        }, 1000);  
      }, 1000);    
    } else {
      console.log('stop');
      clearInterval(intervalEcoute);
    }
  }, 2000);
}


function animParle() {
  parle = 0;
}


function animInsulte() {
  
}


//  ________________________________________________________________________________________



envoyerQuestion.addEventListener("click",submitQuestion);
document.addEventListener("keydown", function(event) {
  if (event.key === "Enter") {
      submitQuestion();
  }
});

barreStress.addEventListener("click", lireTexte);
questionInput.addEventListener("click",animEcoute);
addNoise();
teste();
test();


