// FONCTION BBCODE ET SMILEYs (by Elarnon, si ça bug, faut crier dessus !) :p
//
function gras()
{
	insertion("[b]", "[/b]")
}
function italique()
{
	insertion("[i]", "[/i]");
}
function souligne()
{
	insertion("[u]", "[/u]");
}
function insertion(repdeb, repfin) {
	var input = document.envoi_mp.message;
	input.focus();
	/* pour Internet Explorer */
	if(typeof document.selection != 'undefined') 
	{
		/* Insertion du code de formatage */
		var range = document.selection.createRange();
		var insText = range.text;
		range.text = repdeb + insText + repfin;
		/* Ajustement de la position du curseur */
		range = document.selection.createRange();
		if (insText.length == 0) {
			range.move('character', -repfin.length);
		} else {
			range.moveStart('character', repdeb.length + insText.length + repfin.length);
		}
		range.select();
	}
	/* pour navigateurs plus récents basés sur Gecko*/
	else if(typeof input.selectionStart != 'undefined')
	{
		/* Insertion du code de formatage */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + repdeb + insText + repfin + input.value.substr(end);
		/* Ajustement de la position du curseur */
		var pos;
		if (insText.length == 0) {
			pos = start + repdeb.length;
		} else {
			pos = start + repdeb.length + insText.length + repfin.length;
		}
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	/* Pour les autres navigateurs(qui ne supportent pas la séléction) (J'ai remis le code d'apéRO au lieu du code mis par l'auteur de la fonction */
	else
	{
		input.value = input.value + repdeb + "texte" + repfin;
	}
}
function insertSmiley(smiley)
{
	var input = document.envoi_mp.message;
	input.focus();
	/* Pour Internet Explorer */
	if(typeof document.selection != 'undefined')
	{
		/* Insertion du smiley */
		var range = document.selection.createRange();
		range.text = smiley;
		/* Ajustement de la position du curseur */
		range = document.selection.createRange();
		range.moveStart('character', smiley.length);
		range.select();
	}
	/* Pour navigateurs plus récents basés sur Gecko (Mozilla, Safari, ...) */
	else if(typeof input.selectionStart != 'undefined')
	{
		/* Insertion du smiley */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		input.value = input.value.substr(0, start) + smiley + input.value.substr(end);
		/* Ajustement de la position du curseur */
		var pos = start + smiley.length;
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	/* Pour les autres navigateurs, on rajoute le smiley à la fin */
	else
	{
		input.value = input.value + smiley;
	}
}
////incrémentation + et - d'un champ javascript
function moins(saut,NomChamp,min)
{                   
	var Valeur=document.getElementById(NomChamp).value
	var NewValeur=Number(Valeur)-Number(saut);
	if(NewValeur>=min)
	{
		document.getElementById(NomChamp).value=NewValeur;
	}
}

function plus(saut,NomChamp,max)
{
	var Valeur=document.getElementById(NomChamp).value
	var NewValeur=Number(Valeur)+Number(saut);
	if(NewValeur<=max)
	{
		document.getElementById(NomChamp).value=NewValeur;
	}
}
////////////////////changement de valeur
function changeValue(nomChamp,valeur)
{
	document.getElementById(nomChamp).value = valeur;
}
/////////////////Calcul du total////
function calculplus(saut,NomChamp1,MaxChamp,NomChamp2,valeur,MaxTotal) //incrémente une valeur + calcul un total
{
	//NomChamp1 = nom du champs de texte où la valeur est rentrée
	//MaxChamp = maximum de cette valeur
	//NomChamp2 = nom du champs où est inscrit le total
	//valeur = valeur du produit
	//saut = quantité d'incrémentation (x+saut)
	//MaxTotal = valeur maximale du total
	var soustotal=document.getElementById(NomChamp2).innerHTML;
	var total=Number(soustotal)+(Number(valeur)*saut);
	if(total<=MaxTotal)
	{
		plus(saut,NomChamp1,MaxChamp);
		document.getElementById(NomChamp2).innerHTML = total;
	}
}
function calculmoins(saut,NomChamp1,MinChamp,NomChamp2,valeur,MinTotal) //décrémente une valeur + calcul un total
{
	//NomChamp1 = nom du champs de texte où la valeur est rentrée
	//max = maximum de cette valeur
	//NomChamp2 = nom du champs où est inscrit le total
	//valeur = valeur du produit
	//saut = quantité de décrémentation (y-saut)
	//MinTotal = valeur minimale du total
	var soustotal=document.getElementById(NomChamp2).innerHTML;
	var total=Number(soustotal)-(Number(valeur)*saut);
	var Valeur=document.getElementById(NomChamp1).value
	var NewValeur=Number(Valeur)+Number(saut);
	if(total>=MinTotal&&NewValeur>=MinChamp)
	{
		moins(saut,NomChamp1,MinChamp);
		document.getElementById(NomChamp2).innerHTML = total;
	}
}
function calculmax(NomChamp1,NomChamp2,quantite,valeur,MaxTotal) //monte une valeur à son maximum + adapte le total
{
	//NomChamp1 = nom du champs de texte où la valeur est rentrée
	//NomChamp2 = span où est inscrit le total
	//quantité = quantité maximale
	//valeur = valeur du produit
	//MaxTotal = valeur maximale du total
	var ValChamp1=document.getElementById(NomChamp1).value
	var saut=Number(quantite)-Number(ValChamp1);
	calculplus(saut,NomChamp1,quantite,NomChamp2,valeur,MaxTotal);
}
///////////////////////changement de visibilité (oeil fermé <-> oeil ouvert + passage 0<->1 dans la table)/////////////////
function chgOnOff(id,idPj)
{
  var xmlHttp=null;
  try
  {// Firefox, Opera 8.0+, Safari, IE7
    xmlHttp=new XMLHttpRequest();
  }
  catch(e)
  {// Old IE
  try
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  catch(e)
    {
    alert ("Votre navigateur ne supporte pas XMLHTTP!");
    return;  
    }
  }
  var changement;
  var changement=document.getElementById(id).src.indexOf(1);
  if(document.getElementById(id).src.indexOf('visible')!=-1)//si ça touche a visibilité des skills
  { 
    if(changement==-1)//passage à visible
    {
      document.getElementById(id).src = 'images/visible-1.png';
      document.getElementById(id).title = 'Skill visible, cliquer pour rendre invisible en combat';
      document.getElementById(id).alt = 'skill visible';
      var chgt='1';
      var UrlType='1';
    }
    else
    {
      document.getElementById(id).src = 'images/visible-0.png';
      document.getElementById(id).title = 'Skill invisible, cliquer pour rendre visible en combat';
      document.getElementById(id).alt = 'skill invisible';
      var chgt='0';
      var UrlType='1';
    }
  }
  else if(document.getElementById(id).src.indexOf('prio')!=-1)//si ça touche la priorité des quêtes
  {
    if(changement==-1)//passage à quête prioritaire
    {
      document.getElementById(id).src = 'images/prio-1.gif';
      document.getElementById(id).title = 'Qu&ecirc;te prioritaire, cliquer pour rendre non-prioritaire';
      document.getElementById(id).alt = 'Qu&ecirc;te prioritaire';
      var chgt='1';
      var UrlType='2';
    }
    else
    {
      document.getElementById(id).src = 'images/prio-0.gif';
      document.getElementById(id).title = 'Qu&ecirc;te non-prioritaire, cliquer pour rendre prioritaire';
      document.getElementById(id).alt = 'Qu&ecirc;te non-prioritaire';
      var chgt='0';
      var UrlType='2';
    }
  }                    
  var url="change.php?z=" + chgt + "&y="+id+"&type="+UrlType;
  xmlHttp.open("GET",url,false);
  xmlHttp.send(null);
}
//////////////////////////vérification d'un mot code avec bouton On/off sans table//////////////////////////
function VerifCode(id,idPj)
{
   var xmlHttp=null;
  try
  {// Firefox, Opera 8.0+, Safari, IE7
    xmlHttp=new XMLHttpRequest();
  }
  catch(e)
  {// Old IE
  try
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  catch(e)
    {
    alert ("Votre navigateur ne supporte pas XMLHTTP, veuillez installer un navigateur plus récent (IE7+, FF2+, Opera 8+, Safari, Chrome)");
    return;  
    }
  }
  if(document.getElementById(id).src.indexOf('dragon')!=-1)//si ça touche aux statues du sanctuaire des dragons
  {
    if(id==1){var i='a';}else if(id==2){var i='b';}else if(id==3){var i='c';}else if(id==4){var i='d';}else if(id==5){var i='e';}
    else if(id==6){var i='f';}else if(id==7){var i='g';}else if(id==8){var i='h';}else if(id==9){var i='i';}else if(id==10){var i='j';}
    else if(id==11){var i='k';}else if(id==12){var i='l';}else if(id==13){var i='m';}
    document.getElementById(id).disabled = true;
    if(document.getElementById(id).src.indexOf('dragond')!=1) //si c'est celui qui regarde à droite, vérification du mot code
    {
      var NewSrc='images/bouton/dragond'+i+'-1.png'; 
    }
    else //si c'est celui qui regarde à gauche, pas de réaction quoiqu'il arrive
    {
      var NewSrc='images/bouton/dragong'+i+'-1.png';
    }
    document.getElementById(id).src=NewSrc;
    document.getElementById(id).title='Rune';
    document.getElementById(id).alt='Rune enfoncée';
    if(document.getElementById(id).src.indexOf('dragond')!=1)
    {
      if(id==3||id==7||id==9||id==13) //si la rune appuyée est celle du code
      {
        var test=true;
        var k;
        for (k=1; k<=13; k++)    //on vérifie la position de chacune des runes
        {
          if(k!=id)
          {
            if(k==3||k==7||k==9||k==13)     //si une des 4 runes qui doit être enfoncée, ne l'est pas, test devient faux
            {
               if(document.getElementById(k).src.indexOf(0)!=-1){test=false;}
            }
            else //si les runes ne devant pas être enforcée l'est, test devient faux
            {
              if(document.getElementById(k).src.indexOf(1)!=-1){test=false;}
            }
          }
        }
        if(test==true)//si la rune marche, on va vérifier que la personne n'a pas déjà pillé le dragon (histo_prise)
        {
          var url="change.php?z=1&y=22566&type=3";
          xmlHttp.open("GET",url,false);
          xmlHttp.send(null);
          alert (xmlHttp.responseText);
        }
      }
    }
  }
  else if(document.getElementById(id).src.indexOf('saurien')!=-1)//si ça touche à la stèle de l'émynloce.
  {
    if(id==1){var i='a';}else if(id==2){var i='b';}else if(id==3){var i='c';}else if(id==4){var i='d';}else if(id==5){var i='e';}
    else if(id==6){var i='f';}else if(id==7){var i='g';}else if(id==8){var i='h';}else if(id==9){var i='i';}else if(id==10){var i='j';}
    document.getElementById(id).disabled = true;
    var NewSrc='images/bouton/saurien'+i+'-1.png';
    document.getElementById(id).src=NewSrc;
    document.getElementById(id).title='Rune';
    document.getElementById(id).alt='Rune enfoncée';
    if(id==1||id==4||id==8||id==10) //si la rune appuyée est celle du code
    {
      var test=true;
      var k;
      for (k=1; k<=10; k++)    //on vérifie la position de chacune des runes
      {
        if(k!=id)
        {
          if(k==1||k==4||k==8||k==10)     //si une des 4 runes qui doit être enfoncée, ne l'est pas, test devient faux
          {
             if(document.getElementById(k).src.indexOf(0)!=-1){test=false;}
          }
          else //si les runes ne devant pas être enforcée l'est, test devient faux
          {
            if(document.getElementById(k).src.indexOf(1)!=-1){test=false;}
          }
        }
      }
    }
    if(test==true)//si la rune marche, on va vérifier que la personne n'a pas déjà pillé le dragon (histo_prise)
    {
      var url="change.php?z=1&y=93715&type=4";
      xmlHttp.open("GET",url,false);
      xmlHttp.send(null);
      alert("Vous avez été téléporté.");
      window.location.replace("carte.php");
    }
  }
} 
/////////////////////////vérification des colonnes pour les Grâcieuses/////////////////
function VerifGracieuse(rune,idPj,colonne)
{
  if(rune>6||colonne>8) //pas besoin de réagir si la personne a bidouillé la fonction !
  {
    return false;
  }
  /*******définition de l'objet xmlHttp qui va faire la liaison entre le javascript et le php*/
  var xmlHttp=null;
  try
  {// Firefox, Opera 8.0+, Safari, IE7
    xmlHttp=new XMLHttpRequest();
  }
  catch(e)
  {// Old IE
  try
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  catch(e)
    {
    alert ("Votre navigateur ne supporte pas XMLHTTP, veuillez installer un navigateur plus récent (IE7+, FF2+, Opera 8+, Safari, Chrome)");
    return;  
    }
  }
  xmlHttp.onreadystatechange = function() 
  {
  	if (xmlHttp.readyState == 4 && (xmlHttp.status == 200 || xmlHttp.status == 0)) 
    {
      var jayson = xmlHttp.responseText;  //on récupère le json du PHP
      jayson=JSON.parse(jayson);
      /****tout ce qu'on fait avec le retour de PHP se passe ICI !!!****/
      if(jayson.test==0)//s'il y a un problème
      {
        alert(jayson.message);
        return false;
      }
      //on lance l'alert en cas de blessure (2) ou de téléportation (3). Et on reload uniquement en cas de téléportation.
      else if(jayson.test==3)
      {
        alert("Tout autour de vous tourbillonne, vous sombrez dans l'inconscience et reprenez conscience ailleurs...");
        window.location.replace("carte.php");
        return false;
      }
      else if(jayson.test==2) 
      {
        alert("Sortis des huit colonnes, un trait de foudre s'abat sur vous ! Vous perdez "+jayson.PVperdu+" PV");
        document.getElementById("pv").src='images/pv/'+jayson.dessin+'.gif';
        document.getElementById("pvtext").innerHTML=jayson.PVrestant;
      }
      for (id=1; id<=6; id++)     //on réactive le clic
      {
        document.getElementById(id).enabled = true;
      }
  	}
  };
  for (id=1; id<=6; id++)     //désactive le clic
  {
    document.getElementById(id).disabled = true;
  }
  //on lance à l'ajax que la rune n°rune de la colonne a été activé
  var url="change.php?z="+rune+"&y="+colonne+"&type=5";
  xmlHttp.open("GET",url,false);
  xmlHttp.send(null);                  
  //on change l'image de la rune
  var lettre='a'; var sens=0; var k;
  for(k=1;k<=6;k++)
  {
    if(k==rune){sens=1;}else{sens=0;}
    document.getElementById(k).src='images/bouton/gracieuse'+lettre+'-'+sens+'.png';
    lettre = String.fromCharCode(lettre.charCodeAt(0)+1);
  }
}
/////////////////////////spoiler///////////////////
function show_hide(bloc) 
{
  if (document.getElementById(bloc).style.display == 'none') 
  { 
    document.getElementById(bloc).style.display='block'; 
  } 
  else 
  { 
    document.getElementById(bloc).style.display='none'; 
  } 
}
/////////////////////////lecture de description/////
function voirdesc(id)
{
	var id2="bloc"+id;
	var id3="fleche"+id;
	show_hide(id2);
  //changer le sens de la flèche
  if(document.getElementById(id3).src.indexOf('bas')!=-1)//si c'est vers le bas
  {
    document.getElementById(id3).src='images/fleche-haut.png';
    document.getElementById(id3).title='Cacher la description';
    document.getElementById(id3).alt='Cacher la description';
  }
  else
  {
    document.getElementById(id3).src='images/fleche-bas.png';
    document.getElementById(id3).title='Dévoiler la description';
    document.getElementById(id3).alt='Dévoiler la description';
  }
}
/////////////////////////lecture de mp////////////////////
function liremp(id,etat)
{
  var id2="bloc"+id;
  var id3="img"+id;
  var id4="fleche"+id;
  //passage de lu à non-lu
  if(etat==2)
  {
    var xmlHttp=null;
    try
    {// Firefox, Opera 8.0+, Safari, IE7
      xmlHttp=new XMLHttpRequest();
    }
    catch(e)
    {// Old IE
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch(e)
      {
      alert ("Votre navigateur ne supporte pas XMLHTTP, veuillez installer un navigateur plus récent (IE7+, FF2+, Opera 8+, Safari, Chrome)");
      return;  
      }
    }
    var url="communication2.php?id="+id+"&type=0";
    xmlHttp.open("GET",url,false);
    xmlHttp.send(null);
    document.getElementById(id3).src='images/mp-ouvert.png';
    document.getElementById(id3).title='MP lu';
    document.getElementById(id3).alt='MP lu';
  }
  //voir/cacher le mp
  show_hide(id2);
  //changer le sens de la flèche
  if(document.getElementById(id4).src.indexOf('bas')!=-1)//si c'est vers le bas
  {
    document.getElementById(id4).src='images/fleche-haut.png';
    document.getElementById(id4).title='Fermer le mp';
    document.getElementById(id4).alt='Fermer le mp';
  }
  else
  {
    document.getElementById(id4).src='images/fleche-bas.png';
    document.getElementById(id4).title='Dérouler le mp';
    document.getElementById(id4).alt='Dérouler le mp';
  }
}
////////////////////////vérification pseudo existant/////////////////////
var xmlHttp=null;

function pseudoexistant(idinput,type)
{
var str = document.getElementById(idinput).value;
if (str.length==0)
  { 
  return;
  }
try
  {// Firefox, Opera 8.0+, Safari, IE7
  xmlHttp=new XMLHttpRequest();
  }
catch(e)
{// Old IE
try
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
catch(e)
  {
  alert ("Votre navigateur ne supporte pas XMLHTTP!");
  return;  
  }
}
var url="verif.php?q=" + encodeURIComponent(str) + "&type=" + type;
url=url+"&sid="+Math.random();
xmlHttp.open("GET",url,false);
xmlHttp.send(null);
alert (xmlHttp.responseText);
return false;
}

//////////////////////////////////vérification de l'inscription///////////////////////////////
function verification()
{
var login= document.getElementById("login").value;
var mdp1 = document.getElementById("password").value;
var mdp2 = document.getElementById("pass2").value;
var pseudo = document.getElementById("pseudo").value;
	if (login.length<4){
		alert("votre login est trop court (minimum 4 caractères)");
		return false;
	}
	else if (login.length>50){
		alert("votre login est trop long (maximum 50 caractères)");
		return false;
	};
	if (mdp1.length < 6){
		alert("Votre mot de passe est trop court (minimum 6 caractères)");
		return false;
	}
	if (mdp1.length > 20){
		alert("Votre mot de passe est trop long (maximum 20 caractères)");
		return false;
	}
	if (mdp1 != mdp2)
	{
		alert("différence entre les 2 mdp");
		return false;
	}
	if (pseudo.length <4){
		alert("votre pseudo est trop court (minimum 4 caractères)");
		return false;
	}
	else if (pseudo.length > 40){
		alert("Votre pseudo est trop long (maximum 40 caractères)");
		return false;
	}
	// manque vérification pour savoir si pas de chiffre dans le pseudo!
}
