// variables communes au fonctionnement

var MODE_INI=0;
var MODE_ACCUEIL=1;
var MODE_QUESTION=2;
var MODE_PHOTO=3;
var MODE_LISTE_PERSO=4;
var MODE_RAPPORT=5;

var MODE_AJOUT_PHOTO=6;
var MODE_FIN_PARTIE=7;
var MODE_SOUND_LIKE=8;
var MODE_INFO_JOUEUR=9;
var MODE_PROMO_MOBILE=10;

var divs;
var dispo; // tableau de n_modes 
var etape_proposition = -1;
var attitude_courante = "aki_defi";
var mode = MODE_INI;
var flagEnCours=0;
var n_partie;
var signature;
var age = -1;
var sexe = "I";
var email = "";
var remember= 0;
var email_sent = 0;
var valide_play = 1;
var engine=-1;
var engine_partie=-1;
var nqp=0;
var bascule_accueil_done=0;
var timeouter;
var numMessageAccueil=1;

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//  fonctions communes au  du fonctionnement
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

// Gestion des modes d'affichages
function init()
{
 
  divs = [ document.getElementById("aki_defi"),
	   document.getElementById("petite_bulle"),
           document.getElementById("reponse"),
           document.getElementById("historique"),
           document.getElementById("sous_bulle"),
           document.getElementById("photo"),
           document.getElementById("haut"),
           document.getElementById("bas"),
           document.getElementById("haut_et_bas"),
           document.getElementById("menu_fin_partie"),
           document.getElementById("maximal"),
           document.getElementById("joueur"),
	   document.getElementById("promomobile")
         ];

  dispo = [// AKI BUL REP HIS SBU PHO HAU BAS HEB FIN MAX INF MOB
            [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,0], // mode initial
            [ 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,0], // mode accueil
            [ 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,0], // mode question
            [ 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,0], // mode photo 
            [ 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,0], // mode liste perso
            [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 ,0], // mode rapport
            [ 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 0 ,0], // mode ajout photo
            [ 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 ,0], // mode fin partie
            [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 ,0], // mode sound like
            [ 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ,0], // mode info joueur
	    [ 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,1] // mode promo mobile
	  ];

  frame_petite_bulle.document.body.style.textAlign="center";
  frame_petite_bulle.document.body.style.font="22px \"Tahoma\",\"Verdana\"";
  frame_petite_bulle.document.body.style.backgroundColor="transparent";
  mode_accueil();
  //tailleDivs();  
 setTimeout("charge_attitudes();",2000);
}
 
function HTMLentities(texte) {

texte = texte.replace(/"/g,' '); // 34 22
texte = texte.replace(/&/g,' '); // 38 26
texte = texte.replace(/\'/g,' '); // 39 27
texte = texte.replace(/</g,' '); // 60 3C
texte = texte.replace(/>/g,' '); // 62 3E
return texte;
}


function change_mode(new_mode)
{
  //alert ("nouveau mode "+new_mode);
  if (mode==new_mode)
   return;

  var dispo_old = dispo[mode];
  var dispo_new = dispo[new_mode];
  var i;

  for (i=0;i<divs.length;i++)
  {
    if ((dispo_old[i]==0) && (dispo_new[i]==1))    
      divs[i].style.visibility="visible";
    else if ((dispo_old[i]==1) && (dispo_new[i]==0))    
      divs[i].style.visibility="hidden";
  }
  
  mode=new_mode;
}

function bascule_accueil()
{
	bascule_accueil_done=1;

	if(mode==MODE_ACCUEIL) 
	{
		numMessageAccueil=(numMessageAccueil+1)%2;
	        switch(numMessageAccueil)
	        {
        	 case 0:
                	message_bulle(message_accueil);
	                break;
        	 case 1:
	                message_bulle(message_accueil2);
	                break;
        	}

	        timeouter=setTimeout("bascule_accueil()",5000);   
	}
}

/*function stop_bascule_accueil()
{
	clearTimeout(timeouter);
}*/

function mode_accueil()
{
  
  change_mode(MODE_ACCUEIL);
  message_bulle(message_accueil);

  changeAki("aki_defi");
	
}




function mode_promo_mobile()
{
  document.getElementById("promomobile").style.zIndex=12;
  changeAki("aki_mobile");
  message_bulle(message_promo);
  frame_promo.document.location.href="promo_mobile.html";
  change_mode(MODE_PROMO_MOBILE); 
  
 
}


function mode_partie()
{
//  stop_bascule_accueil();
  document.getElementById("petite_bulle").style.zIndex=5;
  change_mode(MODE_QUESTION);
}



// chargement des attitudes d'akinator dans les DIV supperposées
function charge_attitudes()
{
  document.getElementById("image_serein").src="imgs/attitudes/akinator_2_serein.png";
  document.getElementById("image_concentration_intense").src="imgs/attitudes/akinator_3_concentration_intense.png";
  document.getElementById("image_inspiration_legere").src="imgs/attitudes/akinator_4_inspiration_legere.png";
  document.getElementById("image_inspiration_forte").src="imgs/attitudes/akinator_5_inspiration_forte.png";
  document.getElementById("image_leger_decouragement").src="imgs/attitudes/akinator_7_leger_decouragement.png";
  document.getElementById("image_vrai_decouragement").src="imgs/attitudes/akinator_8_vrai_decouragement.png";
  document.getElementById("image_confiant").src="imgs/attitudes/akinator_9_confiant.png";
  document.getElementById("image_triomphe").src="imgs/attitudes/akinator_10_triomphe.png";
  document.getElementById("image_deception").src="imgs/attitudes/akinator_11_deception.png";
  document.getElementById("image_etonnement").src="imgs/attitudes/akinator_6_etonnement.png";
  document.getElementById("image_pianote").src="imgs/attitudes/akinator_mobile.png";
 }


//Modif attitude Aki
function changeAki(attitude)
{

 if (attitude_courante!=attitude)
  {
    document.getElementById(attitude).style.visibility=divs[0].style.visibility;
    divs[0].style.visibility='hidden';
    
    divs[0]=document.getElementById(attitude);
    attitude_courante=attitude;
  }
}


//message dans la bulle
function message_bulle(message)
{	
  frame_petite_bulle.document.body.innerHTML="<TABLE width='100%' height='100%'><tr><td valign='middle' align='center' style='font:20px  \"Verdana\",\"Bitstream Vera Sans\"'  dir='LTR'>"+message+"</td></tr></table>";
}


//lance partie
function demarrer_partie()
{
  if (!valide_play)
    return;

  if (joueur.length <=0)
  {
    message_bulle(message_indication);
    change_mode(MODE_INFO_JOUEUR);
    document.getElementById("nom_joueur").focus();
    return;
  }

  if (!(/^[0-9]+$/.test(age))) 
  {
    message_bulle(message_indication);
    change_mode(MODE_INFO_JOUEUR);
    document.getElementById("age_joueur").focus();
    return;
  }


  // affichage
  mode_partie();

  message_bulle("");

  etape_proposition=-1;

  changeAki("aki_serein");

  // chargement de la premiere question
  if ( flagAutorisePartie ==1)
  {
    annuleSession();

    if (engine!= engine_partie)
      {
	if (engine==0) 
	  change_libelle_reponse("Ja","Wahrscheinlich<br>Teilweise","Ich weiß nicht","Wahrscheinlich nicht<br>nicht wirklich","Nein");
	else
	  change_libelle_reponse("Ja","meistens<br>eher","Ich weiß nicht<br>Es kommt darauf an","selten<br>nicht wirklich","Nein");
      engine_partie=engine;
      }
    frame_petite_bulle.document.location="new_session.php?prio="+oirp+"&joueur="+joueur+"&partner_id="+partner_id+"&age="+age+"&sexe="+sexe+"&email="+email+"&ms="+email_sent+"&remember="+remember+"&engine="+engine;
    email_sent = 1;
  }
  else
     message_bulle("Es tut mir leid.<br>es spielen derzeit zuviele Spieler.<br>Versuch es Bitte in ein paar Minuten nocheinmal");
}


// modifie l'attitude d'AKi et propose un perso
function charge_photo(url_photo,id_item,nom,desc,confiance,nqp)
{
  if (confiance == 2)
    changeAki("aki_confiant");
  else 
  if (confiance==1)
    changeAki("aki_inspiration_legere");
  else
    changeAki("aki_leger_decouragement");
 
  etape_proposition=nqp;
  frame_photo.document.body.innerHTML="";
  frame_photo.document.location.href="charge_photo.php?signature="+signature+"&partie="+n_partie+"&photo="+url_photo+"&id="+id_item+"&nom="+nom+"&desc="+desc+"&nqp="+nqp+"&engine="+engine_partie;
}

// afficher l'accueil
function afficher_accueil()
{
  if (valide_play)
    {  
     mode_accueil();
     histo.document.location="dernieres_parties.php?engine="+engine+"&prio="+oirp+"&age="+age;
    }
}

// choix du perso affiché
function accepte_perso(id,nom,desc,pathPhoto)
{
  change_mode(MODE_FIN_PARTIE);
  changeAki("aki_triomphe");
  message_bulle(message_victoire);
  frame_menu_fin_partie.document.location="valide_perso.php?path_photo="+encodeURIComponent(pathPhoto)+"&prio="+oirp+"&partie="+n_partie+"&signature="+signature+"&choix="+id+"&first=1&nom="+encodeURIComponent(nom)+"&desc="+encodeURIComponent(desc)+"&engine="+engine_partie;
  flagEnCours=0;
}

//choix perso dans la liste
function accepte_liste(id,nom,desc,pathPhoto)
{
  message_bulle(message_liste);
  change_mode(MODE_FIN_PARTIE);
  frame_menu_fin_partie.document.location="valide_perso.php?path_photo="+encodeURIComponent(pathPhoto)+"&prio="+oirp+"&partie="+n_partie+"&signature="+signature+"&choix="+id+"&first=0&nom="+encodeURIComponent(nom)+"&desc="+encodeURIComponent(desc)+"&engine="+engine_partie;
  flagEnCours=0;
}

//affiche rapport de partie
function affiche_rapport()
{
  change_mode(MODE_RAPPORT);
  frame_haut_et_bas.document.location="voir_session.php?prio="+oirp+"&n_partie="+n_partie+"&signature="+signature+"&engine="+engine_partie;
}

// refus du perso proposé
function refuse_perso(nqp)
{
  change_mode(MODE_FIN_PARTIE);
  changeAki("aki_deception");
  message_bulle(message_echec);
  setTimeout("propose_liste("+nqp+")",3000);
}

// affichage liste best perso
function propose_liste(nqp)
{
  change_mode(MODE_SOUND_LIKE);
  frame_maximal.document.body.innerHTML="";
  frame_maximal.document.location="liste_best.php?prio="+oirp+"&partie="+n_partie+"&signature="+signature+"&nqp="+nqp+"&age=" +age+ "&engine="+engine_partie;  
}

// affichage formulaire de contact
function afficheContactForm()
{
  frame_maximal.document.body.innerHTML="";
  frame_maximal.document.location="contact.php";  
}



// plus de question
function continue_partie(nqp)
{
  // affichage
  change_mode(MODE_QUESTION);

  // chargement de la premiere question
  frame_petite_bulle.document.location="continue_partie.php?prio="+oirp+"&partie="+n_partie+"&signature="+signature+"&nqp="+nqp+"&age="+age+"&engine="+engine_partie;
}

//passage mode ajout question
function ajouter_question()
{
  frame_haut.document.location = "mot_cle_question.php?partie="+n_partie+"&signature="+signature+"&engine="+engine_partie;
  change_mode(MODE_AJOUT_PHOTO);  
}

// Affichage d'une page hors jeu 
function affiche_centre(urlToLoad)
{
  if (!valide_play)
    return;
  // affichage
  change_mode(MODE_SOUND_LIKE);

  // chargement de la premiere question
  frame_maximal.document.body.innerHTML="";
  frame_maximal.document.location=urlToLoad;
  
  if (flagRP==1)
    parent.rechargePubAffichageCentre();
}

// Affichage comme un rapport
function affiche_comme_rapport(urlToLoad)
{
  // affichage
  change_mode(MODE_RAPPORT);
  
  frame_haut_et_bas.document.body.innerHTML="";
  frame_haut_et_bas.document.location=urlToLoad;
}

//Affichage d'une partie
function visu_partie(id,sign)
{
  change_mode(MODE_SOUND_LIKE);
  frame_maximal.document.location="voir_session.php?prio="+oirp+"&n_partie="+id+"&signature="+sign+"&retour=1"+"&engine="+engine;
  if (flagRP==1)
    parent.rechargePubAffichageCentre();
}

// info formulaire stockés en JS
function enregistre_info()
{
  joueur = HTMLentities(document.getElementById("nom_joueur").value);

  age = HTMLentities(document.getElementById("age_joueur").value);
  if (document.getElementById("sexe_f").checked)
    sexe="F";
  else if (document.getElementById("sexe_m").checked)
    sexe="M";


  demarrer_partie();
}

// info sessions mémorisées en JS
function commenceSession(part,sign)
{
  n_partie=part;
  signature=sign;
  flagEnCours=1;
  nqp=0;
}

// appelé en fin de session
function termineSession()
{
  flagEnCours=0;
}

// session annulée car démarrage d'une nouvelle
function annuleSession()
{
 if (flagEnCours==1)
 {
   frame_photo.document.location="annule_session.php?partie="+n_partie+"&signature="+signature+"&engine="+engine_partie;
   flagEnCours=0;
 }
}

//blocage en cas de saturation
function bloquePartie()
{
  flagAutorisePartie=0;
  setTimeout("flagAutorisePartie=1",15000);  
}

// modification du moteur
function choixEngine(new_engine)
{
    if (engine!=new_engine)
    {
       engine=new_engine;
       afficher_accueil();
    }
}

function change_libelle_reponse(lib_0,lib_1,lib_2,lib_3,lib_4)
{
  document.getElementById("libelle_rep_0").innerHTML=lib_0;
  document.getElementById("libelle_rep_1").innerHTML=lib_1;
  document.getElementById("libelle_rep_2").innerHTML=lib_2;
  document.getElementById("libelle_rep_3").innerHTML=lib_3;
  document.getElementById("libelle_rep_4").innerHTML=lib_4;
}

