var b ;

var cps = 0 ; 
var cph = 0 ; 
var cdx = 0 ; 
var cit = 0 ; 
var cma = 0 ;

var UNV = "" ;

function AffCGU() {
	s = "toolbar=no,dependent,resizable,scrollbars=1, width=640, height=400" ;
	var fen = window.open('../cgu.php', "", s); 
}



function startGame() {
  adr = "http://" + DOMAINE + "/Univers/magicien.php" ;
  document.getElementsByName("fm")[0].method = "post" ;
  document.getElementsByName("fm")[0].action = adr ;
  document.getElementsByName("fm")[0].submit() ;
	
}

function divsel() {
  ob = document.getElementsByName("dv")[0] ;
  for (i=0; ob[i] != undefined; i++) if (ob[i].selected) return i+1 ;
  return 0 ;
}

function affdiv(divi) {
	if (divi == 0)
    r = divsel() ;
  else
    r = divi;
  s="<TABLE style='color:#FFFFFF; font-size:80%;'><TR><TD width=50% align=center>";
  switch(r) {
    case 2: 
      s = s + "Les sombres m&eacute;diums sont les ma&icirc;tres de l'&acirc;me.<BR>Ils savent parfaitement la manipuler." ;
      cps = 12 ; cph = 10 ; cdx = 10 ; cit = 10 ; cma = 10 ; b = 1 ; 
      break ;
    case 3: 
      s = s + "Les redoutables templiers sont les ma&icirc;tres du corps.<BR>Leurs pouvoirs s'exercent sur toutes les capacit&eacute;s physiques." ; 
      cps = 10 ; cph = 12 ; cdx = 10 ; cit = 10 ; cma = 10 ; b = 1 ; 
      break ;
    case 4: 
      s = s + "Les subtiles arlequins sont les ma&icirc;tres du temps.<BR>Leurs sorts d&eacute;forment la r&eacute;alit&eacute;." ;
      cps = 10 ; cph = 10 ; cdx = 12 ; cit = 10 ; cma = 10 ; b = 1 ; 
      break ;
    case 5: 
      s = s + "Les sages philosophes sont les ma&icirc;tres de l'esprit.<BR>Le monde de la folie n'a plus de secrets pour eux." ;
      cps = 10 ; cph = 10 ; cdx = 10 ; cit = 12 ; cma = 10 ; b = 1 ; 
      break ;
    case 6: 
      s = s + "Les v&eacute;neneux chamans sont les ma&icirc;tres des sens.<BR>Leurs victimes affrontent les pires cauchemars." ;
      cps = 10 ; cph = 10 ; cdx = 10 ; cit = 10 ; cma = 12 ; b = 1 ; 
      break ;
    default:
      s = "" ; 
      b = 0 ;
      break ;
  } 
  if (b) {
    s = s + "<TD width=50% align=center><TABLE class=tc style='font-size:100%'><TR class=t><TD colspan=2>Caract&eacute;ristiques<TR class=r><TD>R&eacute;sistance psychique :<TD><B class=f>" + cps + "</B><TR class=r><TD>R&eacute;sistance physique :<TD><B class=f>" + cph + "</B><TR class=r><TD>Dexterit&eacute; :<TD><B class=f>" + cdx + "</B><TR class=r><TD>Intelligence :<TD><B class=f>" + cit + "</B><TR class=r><TD>Ma&icirc;trise de soi :<TD><B class=f>" + cma + "</B></TABLE></TABLE>";
  }

  document.getElementById("dx").innerHTML = s ;
}

var pathModulesInc="./ajax/";

function GetEltById(v_id){return document.getElementById?(document.getElementById(v_id)?document.getElementById(v_id):null):document.all[v_id];}
// Get objects with their  name
function GetEltByName(v_n){return document.getElementsByName?document.getElementsByName(v_n)[0]:new Array();}
// Get objects with their tag name
function GetEltByTagName(v_t){return document.getElementsByTagName?document.getElementsByTagName(v_t):new Array();}

// Fonctions de service Ajax
function CreateAjaxObj()
{
	var httprequest=false
	if (window.XMLHttpRequest) { // if Mozilla, Safari etc
		httprequest=new XMLHttpRequest()
		if (httprequest.overrideMimeType)
			httprequest.overrideMimeType('text/xml')
	}
	else if (window.ActiveXObject) { // if IE
		try {
			httprequest=new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){
			try{
				httprequest=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	return httprequest
}


var perso = new Session();
var joueurExistant = 0;

// Session
function Session()
{
	this.ajaxObj = CreateAjaxObj();
}

Session.prototype.AjaxCallMod=function(script, param, obj, pfn) {
	this.AjaxCall(pathModulesInc, script+".php", param, obj, pfn);
}

Session.prototype.AjaxCall=function(path, script, param, obj, pfn) {
	var ajax=CreateAjaxObj();
	var bErreur=false;
	if (ajax){
		ajax.open('GET',path+script+"?"+param, true);
		ajax.onreadystatechange=function() {  // Attention obligatoirement après open pour IE7 !!!!
			if (ajax.readyState == 4) {
				if (ajax.status==200){ //if request was successful
					var xmldata=ajax.responseXML;
					if(xmldata.getElementsByTagName("Erreur").length!=0) {
						alert("Probleme execution script:" + xmldata.getElementsByTagName("Erreur")[0].firstChild.nodeValue);
						bErreur=true;
					}
					pfn.call(obj, bErreur, xmldata);
				}
			}
		}
		ajax.send(null);
	}
}

function rtrim (myString) 
{ 
var l_str=myString.replace(/\s+$/g,'') ;
l_str=l_str.replace(/\xA0+$/g,'') ;
return l_str;
}

instkp_nm=function() {
	document.onkeyup = check_nm; 
}
uninstkp_nm=function() {
	document.onkeyup = null; 
}
check_nm=function() {
	var ident=rtrim(GetEltByName('nm').value);
	var txtStat=GetEltById('statut_nm');
	if (ident.length < 4) {
		txtStat.innerHTML='Votre pseudo doit faire au moins quatre caractères.';
		txtStat.style.color='red';
	}
	else {
		var param="operation=checkPseudo&pseudo="+ident;
		perso.AjaxCallMod('chkPerso', param, this, onCheck_nm);		
	}
} 

onCheck_nm=function(bErreur, xml) {
	var txtStat=GetEltById('statut_nm');
	var retour=xml.getElementsByTagName("Retour");
	if (retour==null || bErreur) {
		alert('Module connexion: une erreur interne est survenue.');
	}
	var code=parseInt(retour[0].getElementsByTagName("Code")[0].firstChild.nodeValue);
	if (code == -1) {
		txtStat.innerHTML="Ce pseudonyme est d\xE9j\xE0 utilis\xE9 par quelqu'un d'autre dans ce monde";
		txtStat.style.color='red';
		joueurExistant = 0;
	}
	else if (code == -2) {
		txtStat.innerHTML="Ce pseudonyme est d\xE9j\xE0 utilis\xE9 par un joueur dans un autre monde. Si vous êtes ce joueur, vous pouvez utiliser le m\xEAme pseudonyme dans ce monde \xE0 condition de fournir le mot de passe utilis\xE9 dans l'autre monde.";
		txtStat.style.color='orange';
		joueurExistant = 1;
	}
	else if (code == -3) {
		txtStat.innerHTML="Ce pseudonyme a \xE9t\xE9 bloqu\xE9 dans un autre monde et ne peut pas \xEAtre utilis\xE9.";
		txtStat.style.color='red';
		joueurExistant = 0;
	}
	else {
		txtStat.innerHTML='Pseudonyme correct.';
		txtStat.style.color='green';
		joueurExistant = 0;
	}
	confPwdHidden = (joueurExistant == 1) ? 'hidden':'visible';
	l_ob=GetEltById("confPwd");
	l_ob.style.visibility = confPwdHidden;
}

checkPwd1=function() {
	var ident=rtrim(GetEltByName('nm').value);
	var txtStat=GetEltById('statut_pw1');
	var mdp=rtrim(GetEltByName('pw').value);
	if (joueurExistant) {
		var param="operation=checkPwdJoueurExistant&pseudo="+ident+"&mdp="+mdp;
		perso.AjaxCallMod('chkPerso', param, this, onCheck_pw1);		
	
	}
	else {
		if (mdp.length < 4) {
			txtStat.innerHTML="Votre mot de passe doit comporter au moins quatre caract\xE8res.";
			txtStat.style.color='red';
		}
		else {
			txtStat.innerHTML="Mot de passe correct";
			txtStat.style.color='green';		
		}
	}
}

onCheck_pw1=function(bErreur, xml) {
	var txtStat=GetEltById('statut_pw1');
	var retour=xml.getElementsByTagName("Retour");
	if (retour==null || bErreur) {
		alert('Module connexion: une erreur interne est survenue.');
	}
	var code=parseInt(retour[0].getElementsByTagName("Code")[0].firstChild.nodeValue);
	if (code) {
		txtStat.innerHTML="Ce mot de passe est invalide";
		txtStat.style.color='red';
	}
	else {
		txtStat.innerHTML='Mot de passe correct.';
		txtStat.style.color='green';
		GetEltByName('pc').value = GetEltByName('pw').value;
	}
}

checkPwd2=function() {
	var txtStat=GetEltById('statut_pw2');
	var mdp=rtrim(GetEltByName('pw').value);
	var mdp2=rtrim(GetEltByName('pc').value);
	if (mdp != mdp2) {
		txtStat.innerHTML="La confirmation du mot de passe est incorrecte";
		txtStat.style.color='red';
	}
	else {
		txtStat.innerHTML="Confirmation correcte";
		txtStat.style.color='green';		
	}
}

checkDiv=function() {
	var txtStat=GetEltById('statut_div');
	var l_sel=divsel();
	if (l_sel<2) {
		txtStat.innerHTML="Vous devez s\xE9lectionner la classe de votre personnage.";
		txtStat.style.color='red';
	}
	else {
		txtStat.innerHTML="";
		txtStat.style.color='green';		
	}
}

checkEmailParrain=function() {
	var emailParrain=GetEltByName('par').value;
	var txtStat=GetEltById('statut_emp');
	if (emailParrain.length >0) {
		var param="operation=checkEmailParrain&email="+emailParrain;
		perso.AjaxCallMod('chkPerso', param, this, onCheckEmailParrain);		
	}
	else {
		txtStat.innerHTML="";
		txtStat.style.color='green';		
	}
} 

onCheckEmailParrain=function(bErreur, xml) {
	var txtStat=GetEltById('statut_emp');
	var retour=xml.getElementsByTagName("Retour");
	if (retour==null || bErreur) {
		alert('Module connexion: une erreur interne est survenue.');
	}
	var code=parseInt(retour[0].getElementsByTagName("Code")[0].firstChild.nodeValue);
	if (code != 0) {
		txtStat.innerHTML="L'adresse email de votre parrain est inconnue.";
		txtStat.style.color='red';
	}
	else {
		txtStat.innerHTML='Adresse email parrain correcte.';
		txtStat.style.color='green';
	} 	
}

checkEmail1=function() {
	var email=GetEltByName('em').value;
	var txtStat=GetEltById('statut_em');
	if (email.length == 0) {
		txtStat.innerHTML="Vous devez saisir votre email.";
		txtStat.style.color='red';
	}
	else {
		var param="operation=checkEmail&email="+email;
		perso.AjaxCallMod('chkPerso', param, this, onCheckEmail1);		
	}
} 

onCheckEmail1=function(bErreur, xml) {
	var txtStat=GetEltById('statut_em');
	var retour=xml.getElementsByTagName("Retour");
	if (retour==null || bErreur) {
		alert('Module connexion: une erreur interne est survenue.');
	}
	var code=parseInt(retour[0].getElementsByTagName("Code")[0].firstChild.nodeValue);
	if (code == -1) {
		txtStat.innerHTML="Cette adresse email est d\xE9j\xE0 utilis\xE9 par quelqu'un d'autre";
		txtStat.style.color='red';
	}
	else if (code == -2) {
		txtStat.innerHTML="Format adresse email invalide";
		txtStat.style.color='red';
	}
	else if (code == -3) {
		txtStat.innerHTML="Adresse email invalide (domaine inconnu)";
		txtStat.style.color='red';
	}
	else {
		txtStat.innerHTML='Adresse email correcte.';
		txtStat.style.color='green';
	} 	
}

checkEmail2=function() {
	var txtStat=GetEltById('statut_cm');
	var email=GetEltByName('em').value;
	var email2=GetEltByName('cm').value;
	if (email != email2) {
		txtStat.innerHTML="La confirmation de votre adresse email est incorrecte";
		txtStat.style.color='red';
	}
	else {
		txtStat.innerHTML="Confirmation correcte";
		txtStat.style.color='green';		
	}
}

function inscrire(){
	if (document.getElementsByName("acgj")[0].checked == false)
	{
		alert ("Vous devez lire et valider les conditions générales d'utilisation du jeu pour continuer");
		return ;
	}
	else {
		check_nm();
		checkPwd1();
		checkPwd2();
		checkDiv();
		checkEmailParrain();
		checkEmail1();
		checkEmail2();

		var txt_nm=GetEltById('statut_nm');
		var txt_pw1=GetEltById('statut_pw1');
		var txt_pw2=GetEltById('statut_pw2');
		var txt_div=GetEltById('statut_div');
		var txt_emp=GetEltById('statut_emp');
		var txt_em=GetEltById('statut_em');
		var txt_cm=GetEltById('statut_cm');
		
		if (	 txt_nm.style.color == 'red'
				|| txt_pw1.style.color == 'red'
				|| txt_pw2.style.color == 'red'
				|| txt_div.style.color == 'red'
				|| txt_emp.style.color == 'red'
				|| txt_em.style.color == 'red'
				|| txt_cm.style.color == 'red'
			 ) {
				alert ("Veuillez corriger les erreurs indiquées.");
				return ;
		}
		
	}

	document.getElementsByName("cpsy")[0].value = cps ;
	document.getElementsByName("cphy")[0].value = cph ;
	document.getElementsByName("cdex")[0].value = cdx ;
	document.getElementsByName("cint")[0].value = cit ;
	document.getElementsByName("cmai")[0].value = cma ;
	adr = "http://" + DOMAINE + "/Univers/ins.php" ;  
	document.getElementsByName("fm")[0].method = "post" ;
  document.getElementsByName("fm")[0].action = adr ;
  document.getElementsByName("fm")[0].submit() ;
}