var ie=document.all;

var nn6=document.getElementById&&!document.all;

var isdrag=false;

var intervalID;

var moveList;

var vraiment_a_jour = false;

var jouer_ordi = true;

var left_source, top_source, left_courant, top_courant, x,y;

var match_recommencer_attendre_ajax = false;

var bool_animer_piece = true;	

var premier_reset = true;

var entrain_animer_piece = false;

var dobj;

var different_board = true;
var possible_lecture_son = true;
var prise_en_passant = false;

var proposer_question = true;

var deja_echec_son = false;

var son_devient = false;

// VALEURS A METTRE DANS PICTURES.PHP
var blanc=100;
var noir = 200;
var abandon=222;
var nul=333;
var recommencer=444;
// VALEURS A METTRE DANS PICTURES.PHP

var ajax_met_a_jour_coup = false;

var debut_programme = true;

var changer_couleur_timer = false;

var numligne = 0;

var taille_largeur = 0;
var taille_hauteur = 0;

var bouger_souris = false;

var plus_de_son_abandon = false;

var j1 = 0;
var i1 = 0;
var j2 = 0;
var i2 = 0;

var match_nul = false;
var match_recommencer = false;

var bool_abandonner = false;

var bool_init_svg = true;

var piece_to_piece = new Array();

var tab_id_piece = new Array();

for (var i=0; i<= 7; i++) {

	tab_id_piece[i] = new Array();
}

var tmp_mp3 = 0;

var old_dernier_j2 = 0;

var ancienne_case_dest = '';
var ancien_ancienne_case_dest = '';

var mat = 0;

var nom_image, nom_image2;

var obj;

var top2, left2;

var proposer=true;

var top1, left1;

var debut = 0;

var tab_image = new Array();

var premiere_fois = true;

var ajax_3 = false;

var hors_limite = 0;

var hors_limite_move_mouse = 0;

var client_x = 0; var client_y = 0;

var ajax_3 = false;

var premier_affichage_board = true;

var chessboard; // il s'agit du dernier echiquier affiché par la fonction afficher_echiquier

var move_souris = false;

var dernier_eval_json = 'QUE DALLE'; // important de mettre une valeur ici

var timer_blanc = 0;
var timer_noir = 0;

var tmp_timer_noir = 0;
var tmp_timer_blanc = 0;

var bool_vingt_minutes_noir 		= false;
var	bool_vingt_minutes_blanc 		= false;

var bool_quinze_minutes_noir 		= false;
var	bool_quinze_minutes_blanc 	= false;

var bool_dix_minutes_noir 			= false;
var	bool_dix_minutes_blanc 			= false;

var bool_cinq_minutes_noir 			= false;
var	bool_cinq_minutes_blanc 		= false;

var bool_une_minute_noir 				= false;
var	bool_une_minute_blanc 			= false;

var bool_dix_secondes						= false;
var bool_neuf_secondes					= false;
var bool_huit_secondes					= false;
var bool_sept_secondes					= false;
var bool_six_secondes						= false;
var bool_cinq_secondes					= false;
var bool_quatre_secondes				= false;
var bool_trois_secondes					= false;
var bool_deux_secondes					= false;
var bool_une_secondes						= false;

var sauver_name2 = new Array();
var old_sauver_name2 = new Array();

var W3CDOM = (document.createElement && document.getElementsByTagName);

if (window.attachEvent && !window.opera) {
	try {
		var plg = new ActiveXObject("Adobe.SVGCtl");
	}
	catch(e) {
		window.alert("Vous n'avez pas le plugin Adobe SVG !");
	}
}

function SVGscale(scalex, scaley) {
	
	if (!W3CDOM) return;
		
	window.SVGsetDimension(379*scalex,390*scaley);
	window.SVGsetScale(scalex,scaley);	
	var box 	= document.getElementById('svgid');
	box.width  	= Math.round(379*scalex);
	box.height 	= Math.round(390*scaley);
	
	var div_damier = document.getElementById('damier');
	
	box.style.marginLeft = (div_damier.offsetWidth-box.offsetWidth) / 2 + 'px';
	box.style.marginTop = (div_damier.offsetHeight-box.offsetHeight) / 2 + 'px';
}

function getSVGwidth() {
  
  if (!W3CDOM) return;
  
	var box 	= document.getElementById('svgid');
	
	return box.offsetWidth;
}

function verrouiller_clic() {
	
		window.SVGverrouiller_clic();	
}

function animer_piece(x1, y1, x2, y2) {
	
		window.SVGanimer_piece(x1, y1, x2, y2);	
}

function montrer_coord(str) {
	
		window.SVGmontrer_coord(str);	
}

function initialiser_pieces_svg() {
	
		window.SVGinitialiser_element();	
}

function permettre_clic() {
	
		window.SVGpermettre_clic();	
}

function cacher_piece(x, y) {
	
		window.SVGcacher_piece(x, y);	
}

function cacher_piece(x, y) {
	
		window.SVGcacher_piece(x, y);	
}

function montrer_echiquier() {
	
		window.SVGmontrer_echiquier();	
}

function init_les_pieces() {
	
		window.SVGinit_les_pieces();	
}

function montrer_piece(x, y) {
	
		return window.SVGmontrer_piece(x, y);	
}

function placer_piece(x, y, la_piece) {
	
		return window.SVGplacer_piece(x, y, la_piece);	
}

function getSVGheight() {
  
  if (!W3CDOM) return;
  
	var box 	= document.getElementById('svgid');
	
	return box.offsetHeight;
}

for (var i = 1; i <= 8; i++) {	
	
			sauver_name2[i] = new Array();
			old_sauver_name2[i] = new Array();
}		

function ultra_mauvais_coup(deb, h1, v1, h2, v2) {
	
		var ch = new Array();	
		
		ch[1] = 'a'; ch[2] = 'b'; ch[3] = 'c'; ch[4] = 'd';
		ch[5] = 'e'; ch[6] = 'f'; ch[7] = 'g'; ch[8] = 'h';
		
		var ch2 = new Array();
				
		ch2['a'] = 1; ch2['b'] = 2; ch2['c'] = 3; ch2['d'] = 4;
		ch2['e'] = 5; ch2['f'] = 6; ch2['g'] = 7; ch2['h'] = 8;
		
		var coup_cpu = ch[h1] + v1 + ch[h2] + v2;
		var move_cpu;
		
		var transfo = (((echiquier[h1][v1] == 'Pb') && (v1 == 7) && (v2 == 8)) 
							 || ((echiquier[h1][v1] == 'Pn') && (v1 == 2) && (v2 == 1)));	
		
		//if (transfo) { alert('transfo = true'); }
		
		/*						
						 if (flags == moveflagEP) flags = 2 << 12;
        else if (flags == moveflagEPC) flags = 2 << 12;
        else if (flags == moveflagCastleQueen) flags = 5 << 12;
        else if (flags == moveflagCastleKing) flags = 4 << 12;
        else if (flags == (moveflagPromotion | moveflagPromoteKnight)) flags = 7 << 12;
        else if (flags == (moveflagPromotion | moveflagPromoteQueen)) flags = 10 << 12;
        else if (flags == (moveflagPromotion | moveflagPromoteBishop)) flags = 8 << 12;
        else if (flags == moveflagPromotion) flags = 9 << 12; // Rook is implicit
		*/
				
		var flag_cavalier = (moveflagPromotion | moveflagPromoteKnight);
		var flag_reine		= (moveflagPromotion | moveflagPromoteQueen);
		var flag_fou			= (moveflagPromotion | moveflagPromoteBishop);
		var flag_tour			= moveflagPromotion;
		
		for (j = 0; j <= moveList.length-1; j++) {
			
				move_cpu = FormatMove(moveList[j]);
				
				var x1 = ch2[move_cpu.charAt(0)];
				var y1 = parseInt(move_cpu.charAt(1));
				var x2 = ch2[move_cpu.charAt(2)];
				var y2 = parseInt(move_cpu.charAt(3));
				
				if (verif_transform(h2)) {	
					
						if ( ((moveList[j].piece == 73) && ((y2 == 8) && (y1 == 7)))
						||   ((moveList[j].piece == 49) && ((y2 == 1) && (y1 == 2))) ) {								
								
										if (((h2 == 'Cb') && (moveList[j].flags == flag_cavalier))
										|| ((h2 == 'Tb') && (moveList[j].flags == flag_tour))
										|| ((h2 == 'Fb') && (moveList[j].flags == flag_fou))
										|| ((h2 == 'Db') && (moveList[j].flags == flag_reine))
										
										|| ((h2 == 'Cn') && (moveList[j].flags == flag_cavalier))
										|| ((h2 == 'Tn') && (moveList[j].flags == flag_tour))
										|| ((h2 == 'Fn') && (moveList[j].flags == flag_fou))
										|| ((h2 == 'Dn') && (moveList[j].flags == flag_reine))) {	
											
												//alert('flags : ' + moveList[j].flags);										
								
												MakeMove(moveList[j]);
												
												break;										
										}
						} 		
				
				} else if ((!transfo) && (move_cpu == coup_cpu)) {
							
						MakeMove(moveList[j]);
								
						break;								
				}
		} 
			
		if (((echiquier[h1][v1] == 'Rb') || (echiquier[h1][v1] == 'Rn')) && (Math.abs(h1-h2) == 2)) { 
			
				return 0; // gestion du roc
		
		} else if (verif_transform(h2)) { 
			
				return 0; // gestion de la transformation
		
		} else if ((v1 == noir) || (v1 == blanc)) { return 0; }
	
		else return mauvais_coup(h1, v1, h2, v2);
}

function eval2(str, num) {
	
	var temp = new Array();
	temp = str.split(';');
	
	var MonReg = /(\n)*coup\([0-1]{1},[0-9]{1,4},[0-9]{1,4},[0-9]{1,4},[0-9]{1,4}\)/;
	var MonReg2 = /(\n)*coup\([0-1]{1},[0-9]{1,4},[0-9]{1,4},'(Tb)|(Cb)|(Fb)|(Db)|(Tn)|(Cn)|(Fn)|(Dn)',[0-9]{1,4}\)/;
	
	if (!num) {
		
			num = temp.length - 1;
	}
	
	var reg = new RegExp("(\n)*", "g");
	var reg2 = new RegExp("( )*", "g");
	
	for (var i = 0; i < num; i++) {
		
			temp[i] = temp[i].replace(reg,"");
			temp[i] = temp[i].replace(reg2,"");
		
			mcoup = "var mauv_coup = ultra_mauvais_" + temp[i] + ";" ;
			
			var faire_coup = temp[i] + ";" ;
			
			if ((!MonReg.test(temp[i])) && (!MonReg2.test(temp[i])) && (temp[i] != '')) {
					
					alert('L\'expression syntaxique [ ' + temp[i] + ' ] est invalide... Merci de signaler ce problème au webmaster : undavid@free.fr !');
					
					return;
			}
			
			var tmp_echiquier = sauvegarder_echiquier();			
			
			eval(mcoup);
			
			echiquier = restaurer_echiquier(tmp_echiquier);
		
			if (!mauv_coup) {
				
					//alert('Coup à vérifier s\'il fonctionne : ' + faire_coup);
			
					eval(faire_coup);		
					
					if (!trouver_un_pion_en_derniere_ligne()) {
						
							moveList = GenerateValidMoves(); // génère la liste de tous les mouvements possibles pour l'IA			
					}
		
			} else {
				
					alert('Cette expression est un mauvais coup [ ' + temp[i] + ' ]... Merci de signaler ce problème au webmaster : undavid@free.fr !');
					
					return;
			}
	}
}

function hasard(maximum) {
	
	return Math.floor(Math.random()*maximum+1);
}

function proposer_un_nul(forcer) {
	
	if (mat || bool_abandonner || (sens_echiquier == 3)) { return 0; }
	
	 if ((!forcer) && (((sens_echiquier == 1) && (!echiquier['aux_blancs']))
	  || ((sens_echiquier == 2) && (echiquier['aux_blancs'])))) {
	 	
	 			document.getElementById('chrono').innerHTML = '<b><font color=blue>Vous devez attendre que ce<br>soit à votre tour de jouer pour<br>proposer un match nul.';
	 			
	 			return 0;
	 			
	 } else {
	 	
	 				document.getElementById('chrono').innerHTML = '<b><font color=green>Votre adversaire va recevoir votre proposition de match nul.';
		}
	
		if (sens_echiquier == 1) {
			
				if (((avant_dernier_i2 == nul) && (avant_dernier_i1 == blanc))
						|| ((!echiquier['aux_blancs']) && (!forcer)))	{
					
							return 0;
								
				} else  {
	
						j1 = 1;
						i1 = blanc
						j2 = 1;
						i2 = nul;
						
						bool_abandonner = true;
				}
				
		} else if (sens_echiquier == 2) {
			
					if (((avant_dernier_i2 == nul) && (avant_dernier_i1 == noir))
							|| ((echiquier['aux_blancs']) && (!forcer))) {
					
										return 0;								
					} else {
						
							j1 = 1;
							i1 = noir
							j2 = 1;
							i2 = nul;
					}
		}
		
		actualiser_ajax(4);
		
		possible_lecture_son = true;
		
		afficher_status_partie(true);
}

function proposer_recommencer(forcer) {
	
	if (bool_abandonner || (sens_echiquier == 3)) { return 0; }
	
	if ((!forcer) && (((sens_echiquier == 1) && (!echiquier['aux_blancs']))
	  || ((sens_echiquier == 2) && (echiquier['aux_blancs'])))) {
	  	
	  		if (!mat) {
	 	
	 					document.getElementById('chrono').innerHTML = '<b><font color=blue>Vous devez attendre que ce<br>soit à votre tour de jouer pour<br>proposer à votre adversaire<br>de recommencer la partie<br>en plein match.';
	 			
	 					return 0;
	 		
	 			} else {
	 				
						document.getElementById('chrono').innerHTML = '<b><font color=green>Votre adversaire va recevoir<br>votre proposition pour<br>recommencer la partie.';
	 			}
	 			
	 } else {
	 	
	 				document.getElementById('chrono').innerHTML = '<b><font color=green>Votre adversaire va recevoir<br>votre proposition pour<br>recommencer la partie.';
		}
	
	if (sens_echiquier == 1) {
			
					j1 = 1;
					i1 = blanc
					j2 = 1;
					i2 = recommencer;
						
					bool_abandonner = true;
								
	} else if (sens_echiquier == 2) {
			
					j1 = 1;
					i1 = noir
					j2 = 1;
					i2 = recommencer;
		}
		
		actualiser_ajax(4);
		
		possible_lecture_son = true;
		
		afficher_status_partie(true);
}

function abandonner_partie() {
	
	if (mat || bool_abandonner || (sens_echiquier == 3)) { return 0; }
	
		bool_abandonner = true;
	
		if (sens_echiquier == 1)  {
	
				j1 = 1;
				i1 = blanc
				j2 = 1;
				i2 = abandon;
				
		} else {
			
				j1 = 1;
				i1 = noir
				j2 = 1;
				i2 = abandon;
		}
				
		actualiser_ajax(4);
		
		possible_lecture_son = true;
		
		afficher_status_partie(true);
}

function lire_son(mp3, version_hasard) {
	
	if (version_hasard == undefined) { version_hasard = 3; }
	
	if ((niftyplayer('niftyPlayer1')) && (	
	(niftyplayer('niftyPlayer1').getPlayingState() == 'loading') ||
	(niftyplayer('niftyPlayer1').getState() == 'playing')
	)) { 
		
				niftyplayer('niftyPlayer1').registerEvent('onStop', 'lire_son(\''+mp3+'\','+version_hasard+')');
				
				return false;
	}

	var version = hasard(version_hasard);
	
	if (tmp_mp3 != mp3) {
		
			tmp_mp3 = mp3;
	
			if (hasard(2) == 1) {
					
					var rep = 'homme/';
					
			} else { var rep = 'femme/'; }
			
				if (possible_lecture_son) {
			
					if (niftyplayer('niftyPlayer1')) { 
						
								niftyplayer('niftyPlayer1').loadAndPlay('sons/' + rep + mp3 + version + '.mp3');
					}
				}				
		}	
		
		possible_lecture_son = false;
}

function piece_devient(h1, v1, str) {
	
		if (str == 1) { str = 'Db';	}
		else if (str == 2) { str = 'Fb';	}
		else if (str == 3) { str = 'Cb';	}
		else if (str == 4) { str = 'Tb';	}
			
		else if (str == 5) { str = 'Dn';	}
		else if (str == 6) { str = 'Fn';	}
		else if (str == 7) { str = 'Cn';	}
		else if (str == 8) { str = 'Tn';	}
	
		i1 = v1;
		i2 = v1;
		j1 = h1;
		j2 = str;
	
		coup(0, h1, v1, str, v1);
		
		i1 = v1;
		i2 = v1;
		j1 = h1;
		j2 = str;
		
		dernier_j2 = str;
									
		actualiser_ajax();
							
		afficher_status_partie(true);
		
		document.getElementById('transformation_des_pieces').innerHTML = '';
}

function traiter_graphique_pion_derniere_ligne() {

		trouver_pion = trouver_un_pion_en_derniere_ligne();
		
		if (trouver_pion) {
			
			if (couleur == 'blanc') {		
				
				if (sens_echiquier == 2) {
					
							info2  = "<font color=green><b>Votre adversaire va choisir une pièce blanche pour son pion " + chiffre[h1] + v1 +"</b> : </font>";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Db.PNG'></img></a> ";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Fb.PNG'></img></a> ";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Cb.PNG'></img></a> ";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Tb.PNG'></img></a>";		
				
				} else {
		
						info2  = "<font color=green><b>Choisissez une pièce blanche pour votre pion " + chiffre[h1] + v1 +"</b> : </font>";
						info2  = info2 + "<a href='#' onclick='piece_devient(h1, v1, 1)'><img border=0 width=30 height=30 src='images/Db.PNG'></img></a> ";
						info2  = info2 + "<a href='#' onclick='piece_devient(h1, v1, 2)'><img border=0 width=30 height=30 src='images/Fb.PNG'></img></a> ";
						info2  = info2 + "<a href='#' onclick='piece_devient(h1, v1, 3)'><img border=0 width=30 height=30 src='images/Cb.PNG'></img></a> ";
						info2  = info2 + "<a href='#' onclick='piece_devient(h1, v1, 4)'><img border=0 width=30 height=30 src='images/Tb.PNG'></img></a>";
				}
								
			} else {
				
				if (sens_echiquier == 1) {
					
							info2  = "<font color=green><b>Votre adversaire va choisir une pièce noire pour son pion " + chiffre[h1] + v1 +"</b> : </font>";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Dn.PNG'></img></a> ";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Fn.PNG'></img></a> ";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Cn.PNG'></img></a> ";
							info2  = info2 + "<a href='#'><img border=0 width=30 height=30 src='images/Tn.PNG'></img></a>";		
				
				} else {
		
						info2  = "<font color=green><b>Choisissez une pièce noire pour votre pion " + chiffre[h1] + v1 + "</b> : </font>";
					  info2	 = info2 + "<a href='#' onclick='piece_devient(h1, v1, 5)'><img border=0 width=30 height=30 src='images/Dn.PNG'></img></a> ";
						info2  = info2 + "<a href='#' onclick='piece_devient(h1, v1, 6)'><img border=0 width=30 height=30 src='images/Fn.PNG'></img></a> ";
						info2  = info2 + "<a href='#' onclick='piece_devient(h1, v1, 7)'><img border=0 width=30 height=30 src='images/Cn.PNG'></img></a> ";
						info2  = info2 + "<a href='#' onclick='piece_devient(h1, v1, 8)'><img border=0 width=30 height=30 src='images/Tn.PNG'></img></a>";
				}
				
			}
			
			 { document.getElementById('transformation_des_pieces').innerHTML = info2 + '<br><br>'; }	
		}
}

function bonne_valeur_timer(nb) {
	
		return (temps_minute * 60 - nb);
}

function timer_limite() {
	
	bool_vingt_minutes_noir 		= ((!echiquier['aux_blancs']) && (bonne_valeur_timer(timer_noir) <= 60 * 20) && (bonne_valeur_timer(tmp_timer_noir) >= 60 * 20));
	bool_vingt_minutes_blanc 		= ((echiquier['aux_blancs']) && (bonne_valeur_timer(timer_blanc) <= 60 * 20) && (bonne_valeur_timer(tmp_timer_blanc) >= 60 * 20));
		
	bool_quinze_minutes_noir 		= ((!echiquier['aux_blancs']) && (bonne_valeur_timer(timer_noir) <= 60 * 15) && (bonne_valeur_timer(tmp_timer_noir) >= 60 * 15));
	bool_quinze_minutes_blanc 	= ((echiquier['aux_blancs']) && (bonne_valeur_timer(timer_blanc) <= 60 * 15) && (bonne_valeur_timer(tmp_timer_blanc) >= 60 * 15));
	
	bool_dix_minutes_noir 			= ((!echiquier['aux_blancs']) && (bonne_valeur_timer(timer_noir) <= 60 * 10) && (bonne_valeur_timer(tmp_timer_noir) >= 60 * 10));
	bool_dix_minutes_blanc 			= ((echiquier['aux_blancs']) && (bonne_valeur_timer(timer_blanc) <= 60 * 10) && (bonne_valeur_timer(tmp_timer_blanc) >= 60 * 10));
		
	bool_cinq_minutes_noir 			= ((!echiquier['aux_blancs']) && (bonne_valeur_timer(timer_noir) <= 60 * 5) && (bonne_valeur_timer(tmp_timer_noir) >= 60 * 5));
	bool_cinq_minutes_blanc 		= ((echiquier['aux_blancs']) && (bonne_valeur_timer(timer_blanc) <= 60 * 5) && (bonne_valeur_timer(tmp_timer_blanc) >= 60 * 5));
	
	bool_une_minute_noir 				= ((!echiquier['aux_blancs']) && (bonne_valeur_timer(timer_noir) <= 60) && (bonne_valeur_timer(tmp_timer_noir) >= 60));
	bool_une_minute_blanc 			= ((echiquier['aux_blancs']) && (bonne_valeur_timer(timer_blanc) <= 60) && (bonne_valeur_timer(tmp_timer_blanc) >= 60));
	
	if (echiquier['aux_blancs']) {
		
			bool_dix_secondes					= ((bonne_valeur_timer(timer_blanc) <= 10) && (bonne_valeur_timer(tmp_timer_blanc) >= 10));
			bool_neuf_secondes				= ((bonne_valeur_timer(timer_blanc) <= 9) && (bonne_valeur_timer(tmp_timer_blanc) >= 9));
			bool_huit_secondes				= ((bonne_valeur_timer(timer_blanc) <= 8) && (bonne_valeur_timer(tmp_timer_blanc) >= 8));
			bool_sept_secondes				= ((bonne_valeur_timer(timer_blanc) <= 7) && (bonne_valeur_timer(tmp_timer_blanc) >= 7));
			bool_six_secondes					= ((bonne_valeur_timer(timer_blanc) <= 6) && (bonne_valeur_timer(tmp_timer_blanc) >= 6));
			bool_cinq_secondes				= ((bonne_valeur_timer(timer_blanc) <= 5) && (bonne_valeur_timer(tmp_timer_blanc) >= 5));
			bool_quatre_secondes			= ((bonne_valeur_timer(timer_blanc) <= 4) && (bonne_valeur_timer(tmp_timer_blanc) >= 4));
			bool_trois_secondes				= ((bonne_valeur_timer(timer_blanc) <= 3) && (bonne_valeur_timer(tmp_timer_blanc) >= 3));
			bool_deux_secondes				= ((bonne_valeur_timer(timer_blanc) <= 2) && (bonne_valeur_timer(tmp_timer_blanc) >= 2));
			bool_une_secondes					= ((bonne_valeur_timer(timer_blanc) <= 1) && (bonne_valeur_timer(tmp_timer_blanc) >= 1));
			
	} else {
		
			bool_dix_secondes					= ((bonne_valeur_timer(timer_noir) <= 10) && (bonne_valeur_timer(tmp_timer_noir) >= 10));
			bool_neuf_secondes				= ((bonne_valeur_timer(timer_noir) <= 9) && (bonne_valeur_timer(tmp_timer_noir) >= 9));
			bool_huit_secondes				= ((bonne_valeur_timer(timer_noir) <= 8) && (bonne_valeur_timer(tmp_timer_noir) >= 8));
			bool_sept_secondes				= ((bonne_valeur_timer(timer_noir) <= 7) && (bonne_valeur_timer(tmp_timer_noir) >= 7));
			bool_six_secondes					= ((bonne_valeur_timer(timer_noir) <= 6) && (bonne_valeur_timer(tmp_timer_noir) >= 6));
			bool_cinq_secondes				= ((bonne_valeur_timer(timer_noir) <= 5) && (bonne_valeur_timer(tmp_timer_noir) >= 5));
			bool_quatre_secondes			= ((bonne_valeur_timer(timer_noir) <= 4) && (bonne_valeur_timer(tmp_timer_noir) >= 4));
			bool_trois_secondes				= ((bonne_valeur_timer(timer_noir) <= 3) && (bonne_valeur_timer(tmp_timer_noir) >= 3));
			bool_deux_secondes				= ((bonne_valeur_timer(timer_noir) <= 2) && (bonne_valeur_timer(tmp_timer_noir) >= 2));
			bool_une_secondes					= ((bonne_valeur_timer(timer_noir) <= 1) && (bonne_valeur_timer(tmp_timer_noir) >= 1));
	}
	
	return (
	
				 (timer_noir == temps_minute * 60) 	|| (timer_blanc == temps_minute * 60) ||
				 
				 (bool_vingt_minutes_noir) || (bool_vingt_minutes_blanc) || (bool_quinze_minutes_noir) || (bool_quinze_minutes_blanc) || (bool_dix_minutes_noir) || (bool_dix_minutes_blanc)
				 || (bool_cinq_minutes_noir) || (bool_cinq_minutes_blanc) || (bool_une_minute_noir) || (bool_une_minute_blanc) || (bool_dix_secondes)	|| (bool_neuf_secondes)
				  || (bool_huit_secondes) || (bool_sept_secondes) ||	 (bool_six_secondes) || (bool_cinq_secondes) || (bool_quatre_secondes) || (bool_trois_secondes)	
				  || (bool_deux_secondes) || (bool_une_secondes)
				
				 );
}

function chrono_auditif() {
	
	if (bool_une_secondes) 				{ lire_son('une',1); return 1; } 		else
	if (bool_deux_secondes) 			{ lire_son('deux',1); return 1; } 	else
	if (bool_trois_secondes) 			{ lire_son('trois',1); return 1; } 	else
	if (bool_quatre_secondes) 		{ lire_son('quatre',1); return 1; } else
	if (bool_cinq_secondes) 			{ lire_son('cinq',1); return 1; } 	else
	if (bool_six_secondes) 				{ lire_son('six',1); return 1; } 		else
	if (bool_sept_secondes) 			{ lire_son('sept',1); return 1; } 	else
	if (bool_huit_secondes) 			{ lire_son('huit',1); return 1; } 	else
	if (bool_neuf_secondes) 			{ lire_son('neuf',1); return 1; } 	else
	if (bool_dix_secondes) 				{ lire_son('dix',1); return 1; } 		else
	
	if (bool_une_minute_noir) 		{ lire_son('moins_dune_minute_noir'); return 1; } else
	if (bool_une_minute_blanc)		{ lire_son('moins_dune_minute_blanc'); return 1; } else
			
	if (bool_cinq_minutes_noir) 	{ lire_son('moins_de_cinq_minutes_noir'); return 1; } else
	if (bool_cinq_minutes_blanc) 	{ lire_son('moins_de_cinq_minutes_blanc'); return 1; } else
	
	if (bool_dix_minutes_noir) 		{ lire_son('moins_de_dix_minutes_noir'); return 1; } else
	if (bool_dix_minutes_blanc) 	{ lire_son('moins_de_dix_minutes_blanc'); return 1; }	else
		
	if (bool_quinze_minutes_noir) 	{ lire_son('moins_de_quinze_minutes_noir'); return 1; } else
	if (bool_quinze_minutes_blanc) 	{ lire_son('moins_de_quinze_minutes_blanc'); return 1; } else
		
	if (bool_vingt_minutes_noir) 		{ lire_son('moins_de_vingt_minutes_noir'); return 1; } else
	if (bool_vingt_minutes_blanc) 	{ lire_son('moins_de_vingt_minutes_blanc'); return 1; }
}

function afficher_status_partie(bool) {

		if (bouger_souris) { return false; }
		if (!bool_animer_piece) { return false; }

		verrouiller_clic();
	
		var tmp_echiquier = sauvegarder_echiquier();
		var old_j1 = j1;  var old_j2 = j2; var old_i1 = i1; var old_i2 = i2;
		
		var tmp_dernier_i1 = dernier_i1;
		var tmp_dernier_i2 = dernier_i2;
		var tmp_dernier_j1 = dernier_j1;
		var tmp_dernier_j2 = dernier_j2;
	
		var echec_au_roi	= verifier_echec();		
		
		echiquier = restaurer_echiquier(tmp_echiquier);
		
		if (bool == undefined) { bool = false; }
		
		bool = (bool || different_board);
		
		if (bool) { 
			
					 { document.getElementById('infos_partie').innerHTML = ''; }
		}		
		
		if (((chessboard != undefined) && (chessboard['aux_blancs'] != echiquier['aux_blancs'])) || timer_limite()) {
			
					possible_lecture_son = true;
		}	
				
		if (plus_de_son_abandon || deja_echec_son || (son_devient && (!echec_au_roi))) { possible_lecture_son = false; } else { possible_lecture_son = true; }
		
			if (echiquier['aux_blancs']) {
						
						if (bool) {  { document.getElementById('infos_partie').innerHTML = document.getElementById('infos_partie').innerHTML + 
							"<font color=blue><b>C'est à " + joueur_blanc + " de jouer le prochain demi-coup !</b></font>"; }	}
			}	else {
						
							if (bool) {  { document.getElementById('infos_partie').innerHTML = document.getElementById('infos_partie').innerHTML + 
						 	"<font color=blue><b>C'est à " + joueur_noir + " de jouer le prochain demi-coup !</b></font>";	} }				
			}							
										
							mat = echec_et_mat(); 
							
							traiter_graphique_pion_derniere_ligne();
							
							echiquier['echec'] = echec_au_roi;
							
							if ((echiquier['roi_en_echec']) || (echiquier['echec'])) {
					
									// faire une fonction match nul qui regarde si pas d'echec et que position mat quand même, renvoyer 2
					
							} else if (mat) { 
				
										mat = mat + 1;
							}
							
							var str_mat = '';			
							
							if (match_recommencer) {
								
										match_recommencer = false;
										match_recommencer_attendre_ajax = true;
								
										plus_de_son_abandon = true;			
										bool_abandonner = true;					
											
										initialiser_echiquier(); actualiser_ajax(1);
									
							} else if ((tmp_dernier_i2 == recommencer) && (proposer_question)) {
								
									if (((sens_echiquier == 2) && (tmp_dernier_i1 == blanc))
									|| ((sens_echiquier == 1) && (tmp_dernier_i1 == noir))) {
									
											proposer_question = false;
											
											echiquier['aux_blancs'] = 1-echiquier['aux_blancs'];
										
											document.getElementById('chrono').innerHTML = "<b><font color=red>Votre adversaire vous<br>propose de recommencer la partie.</font></b><br><br><a href='#' onclick='proposer_recommencer(true);'>Pour l'accepter, cliquez ici</a>";																					
											
											if (echiquier['aux_blancs']) {
												
													lire_son('noir_proposer_recommencer');
													
											} else {
												
													lire_son('blanc_proposer_recommencer');
											}
									}
							}			
							
							if (match_nul) {
								
										plus_de_son_abandon = true;			
										bool_abandonner = true;					
											
										mat = 2;
									
							} else if ((tmp_dernier_i2 == nul) && (proposer_question)) {
								
									if (((sens_echiquier == 2) && (tmp_dernier_i1 == blanc))
									|| ((sens_echiquier == 1) && (tmp_dernier_i1 == noir))) {
									
											proposer_question = false;
											
											echiquier['aux_blancs'] = 1-echiquier['aux_blancs'];
										
											document.getElementById('chrono').innerHTML = "<b><font color=red>Votre adversaire vous<br>propose un match nul.</font></b><br><br><a href='#' onclick='proposer_un_nul(true);'>Pour l'accepter, cliquez ici</a>";																					
											
											if (echiquier['aux_blancs']) {
												
													lire_son('noir_propose_nul');
													
											} else {
												
													lire_son('blanc_propose_nul');
											}
									}
							}
									
							if ((tmp_dernier_i1 == blanc) && (tmp_dernier_i2 == abandon)) {
								
											lire_son('blanc_perdu_par_abandon');	
											
											plus_de_son_abandon = true;			
											bool_abandonner = true;					
												
											str_mat = '<font color=green><b>Les joueurs blancs ont perdu par abandon</b></font>';
												
											mat = 10;
												
							} else if ((tmp_dernier_i1 == noir) && (tmp_dernier_i2 == abandon)) {								
								
											lire_son('noir_perdu_par_abandon');			
												
											plus_de_son_abandon = true;		
											bool_abandonner = true;				
												
											str_mat = '<font color=green><b>Les joueurs noirs ont perdu par abandon</b></font>';
												
											mat = 11;
							}
							
					if (mat || numligne || ultra_verrouillage || (verrouiller_blanc && (echiquier['aux_blancs']))
					|| (verrouiller_noir && (!echiquier['aux_blancs'])) || trouver_un_pion_en_derniere_ligne()) {
						
							 verrouiller_clic();
					}
					
					if (mat == 1) {
																
								if (!echiquier['aux_blancs']) { lire_son('mat_blanc'); } 
								else 													{ lire_son('mat_noir'); }
					
								str_mat = "<font color=green><b>Echec et mat !</b></font>";
													
					}	else if (mat == 2) {
				
								lire_son('match_nul');
									
								str_mat = "<font color=green><b>Match nul !</b></font>";
			
					}	else if (timer_noir == temps_minute * 60) { 
						
								lire_son('perdu_au_temps_noir');
								
								mat = 4; 
								str_mat = "<font color=green><b>Les blancs ont gagné la partie car les noirs ont épuisé leur temps de jeu !</b></font>";
					
					}	else if (timer_blanc == temps_minute * 60) 	{ 
						
								lire_son('perdu_au_temps_blanc');
						
								mat = 5;
								str_mat = "<font color=green><b>Les noirs ont gagné la partie car les blancs ont épuisé leur temps de jeu !</b></font>";
				
					} else if (echiquier['echec'] && (!mat)) {
				
									if (!echiquier['aux_blancs']) { lire_son('echec_noir'); deja_echec_son = true; } 
									else 													{ lire_son('echec_blanc'); deja_echec_son = true; }
					
									str_mat = "<font color=green><b>Echec au roi !</b></font>";	
													
					} else {
						
								chrono_auditif();
					}
			
					if (bool) { 
						
								 if ((!mat) && (!echiquier['echec'])) { 
								 	
								 			if (str_mat) { document.getElementById('infos_mauvais_coup').innerHTML = str_mat; }
								
								 } else {
								 	
								 			document.getElementById('infos_partie').innerHTML = str_mat;
								 }						 
								
								if (bool_animer_piece) {		
		
										// traitement de l'animation de la dernière pièce - DEBUT
										bool_animer_piece = false;	
										
										if (sens_echiquier == 2) {
										
												var tdernier_j1 = 9-tourner_indice_j(tmp_dernier_j1);
												var tdernier_j2 = 9-tourner_indice_j(tmp_dernier_j2);
												var tdernier_i1 = 7-tourner_indice_i(tmp_dernier_i1);
												var tdernier_i2 = 7-tourner_indice_i(tmp_dernier_i2);
										
										} else {
											
												var tdernier_j1 = tmp_dernier_j1-1;
												var tdernier_j2 = tmp_dernier_j2-1;
												var tdernier_i1 = 8-tmp_dernier_i1;
												var tdernier_i2 = 8-tmp_dernier_i2;
										}
												
										/*
										alert('dernier j1=' + dernier_j1 + 't : ' + tdernier_j1);
										alert('dernier i1=' + dernier_i1 + 't : ' + tdernier_i1);
										alert('dernier j2=' + dernier_j2 + 't : ' + tdernier_j2);
										alert('dernier i2=' + dernier_i2 + 't : ' + tdernier_i2);
										*/	
										
										if (((tdernier_j1 < 0) || (tdernier_j1 >= 8))
										|| ((tdernier_i1 < 0) || (tdernier_i1 >= 8))
										|| ((tdernier_j2 < 0) || (tdernier_j2 >= 8))
										|| ((tdernier_i2 < 0) || (tdernier_i2 >= 8))) {
											
											// ici, rien faire
										
										} else if (((!echiquier['aux_blancs']) && (!verrouiller_noir)) 
										|| ((echiquier['aux_blancs']) && (!verrouiller_blanc))
										|| ultra_verrouillage || numligne) {
												
												animer_piece(
												tdernier_j1, 
												tdernier_i1, 
												tdernier_j2, 
												tdernier_i2);
										}
										
										// traitement de l'animation de la dernière pièce - FIN
								}
						
								if (numligne) {
									
											 { document.getElementById('infos_partie').innerHTML = '<font color=red><b>Ce mode vous permet de revoir tous les coups joués précédemment...</b></font><br><br> [ <u><a href="#" onclick="numligne=0; afficher_status_partie(); ">Quitter ce mode</a></u> ]'; }
								}
					}				
					
					j1 = old_j1;  j2 = old_j2; i1 = old_i1; i2 = old_i2;
					
					echiquier = restaurer_echiquier(tmp_echiquier);			
					
					dernier_i1 = tmp_dernier_i1;
					dernier_i2 = tmp_dernier_i2;
					dernier_j1 = tmp_dernier_j1;
					dernier_j2 = tmp_dernier_j2;
					
					//possible_lecture_son = true;
					
					afficher_echiquier();	

					if (!bouger_souris) { montrer_echiquier(); }
}

function tourner_indice_i(i) {
	
		if (sens_echiquier == 1) {
			
				return (i+1);
		
		} else if (sens_echiquier == 2) {
			
				return (7-i)+1;
		
		} else {
			
				if (echiquier['aux_blancs']) { return (i+1); }
				else { return (7-i)+1; }
		}
}

function tourner_indice_j(j) {
	
		if (sens_echiquier == 1) {
			
				return (7-j)+1;
		
		} else if (sens_echiquier == 2) {
			
				return (j+1);
		
		} else {
			
				if (echiquier['aux_blancs']) { return (7-j)+1; }
				else { return (j+1); }
		}
}

function ajax_toutes_les_5_secondes () {
	
	alert3('appels de timeout');
	
	if (!bouger_souris && !entrain_animer_piece) {
	
			setTimeout('actualiser_ajax(3)', fluidite * 1000);				

	} else {
		
		setTimeout('ajax_toutes_les_5_secondes()', 500);		
	}
}

function precharger(url) {
	
		image = new Image(width, height);
		image.src = url;		
		
		if (image.src == undefined) {
			
				alert('Le préchargement de ' + url + ' a échoué pour une raison X. Contactez le webmaster à l\'adresse undavid@free.fr');
		}
		
		return image;
}

function init_image() {
	
	width = Math.round(taille_largeur/8);
	height = Math.round(taille_hauteur/8);
	
	{
	
		tab_image['Rb'] = precharger('images/Rb.PNG');	
		tab_image['Rn'] = precharger('images/Rn.PNG');	
	
		tab_image['Db'] = precharger('images/Db.PNG');	
		tab_image['Dn'] = precharger('images/Dn.PNG');	
	
		tab_image['Fb'] = precharger('images/Fb.PNG');	
		tab_image['Fn'] = precharger('images/Fn.PNG');	
	
		tab_image['Cb'] = precharger('images/Cb.PNG');	
		tab_image['Cn'] = precharger('images/Cn.PNG');	
	
		tab_image['Tb'] = precharger('images/Tb.PNG');	
		tab_image['Tn'] = precharger('images/Tn.PNG');	
	
		tab_image['Pb'] = precharger('images/Pb.PNG');	
		tab_image['Pn'] = precharger('images/Pn.PNG');	
		
		tab_image['vide'] = precharger('images/Xx.PNG');	
	}
}

function afficher_zero_piece() {
	
	for (i = 1; i <= 8; i++) {
			
			for (j = 1; j <= 8; j++) {
				
					echiquier[i][j] = '';
			}
	}
	
	afficher_echiquier();	
}

function init_echiquier() {	
	
	 if (premier_reset)	{
	
			premier_reset = false;
	 	
	 		ResetGame();	
	 
	 } else ResetBoard();	 // initialiser aussi la partie pour l'IA
	 
	 moveList = GenerateValidMoves(); // génère la liste de tous les mouvements possibles pour l'IA	
	 
	 ancienne_case_dest = '';	
	 ancien_ancienne_case_dest = '';	
	 old_dernier_j2 = 0;
	 
	 bool = (echiquier[8] == undefined);
	 
	 dernier_i1 = 0;
	 dernier_i2 = 0;
	 dernier_j1 = 0;
	 dernier_j2 = 0;

		if (bool) { echiquier[8] = new Array(); }
	
		echiquier[8][1] = 'Tb';
		echiquier[8][2] = 'Pb';
		echiquier[8][3] = '';
		echiquier[8][4] = '';
		echiquier[8][5] = '';
		echiquier[8][6] = '';
		echiquier[8][7] = 'Pn';
		echiquier[8][8] = 'Tn';
		
		if (bool) { echiquier[7] = new Array(); }
		
		echiquier[7][1] = 'Cb';
		echiquier[7][2] = 'Pb';
		echiquier[7][3] = '';
		echiquier[7][4] = '';
		echiquier[7][5] = '';
		echiquier[7][6] = '';
		echiquier[7][7] = 'Pn';
		echiquier[7][8] = 'Cn';
		
		if (bool) { echiquier[6] = new Array(); }
		
		echiquier[6][1] = 'Fb';
		echiquier[6][2] = 'Pb';
		echiquier[6][3] = '';
		echiquier[6][4] = '';
		echiquier[6][5] = '';
		echiquier[6][6] = '';
		echiquier[6][7] = 'Pn';
		echiquier[6][8] = 'Fn';
		
		if (bool) { echiquier[5] = new Array(); }
		
		echiquier[5][1] = 'Rb';
		echiquier[5][2] = 'Pb';
		echiquier[5][3] = '';
		echiquier[5][4] = '';
		echiquier[5][5] = '';
		echiquier[5][6] = '';
		echiquier[5][7] = 'Pn';
		echiquier[5][8] = 'Rn';
		
		if (bool) { echiquier[4] = new Array(); }
		
		echiquier[4][1] = 'Db';
		echiquier[4][2] = 'Pb';
		echiquier[4][3] = '';
		echiquier[4][4] = '';
		echiquier[4][5] = '';
		echiquier[4][6] = '';
		echiquier[4][7] = 'Pn';
		echiquier[4][8] = 'Dn';
		
		if (bool) { echiquier[3] = new Array(); }
		
		echiquier[3][1] = 'Fb';
		echiquier[3][2] = 'Pb';
		echiquier[3][3] = '';
		echiquier[3][4] = '';
		echiquier[3][5] = '';
		echiquier[3][6] = '';
		echiquier[3][7] = 'Pn';
		echiquier[3][8] = 'Fn';
		
		if (bool) { echiquier[2] = new Array(); }
		
		echiquier[2][1] = 'Cb';
		echiquier[2][2] = 'Pb';
		echiquier[2][3] = '';
		echiquier[2][4] = '';
		echiquier[2][5] = '';
		echiquier[2][6] = '';
		echiquier[2][7] = 'Pn';
		echiquier[2][8] = 'Cn';
		
		if (bool) { echiquier[1] = new Array(); }
		
		echiquier[1][1] = 'Tb';
		echiquier[1][2] = 'Pb';
		echiquier[1][3] = '';
		echiquier[1][4] = '';
		echiquier[1][5] = '';
		echiquier[1][6] = '';
		echiquier[1][7] = 'Pn';
		echiquier[1][8] = 'Tn';
		
		echiquier['aux_blancs'] = 1;
		
		echiquier['echec'] = 0;
	 	echiquier['mat'] = 0; 	
	 	
	 	for (var i = 1; i <= 8; i++) {
	 		
	 			for (var j = 1; j <= 8; j++) {
	 		
	 					echiquier['case_deplacee'][j][i] = 0;
	 			}
	 	}
		
		// ici, pour éviter les bugs, 
		// faudra mettre à zéro toutes les subtilités : transformation, roc_blanc, etc.
}

function initialiser_echiquier() {
	
	init_echiquier();
	
	document.getElementById('chrono').innerHTML = '';
	
	document.getElementById('transformation_des_pieces').innerHTML = '';
	
	 initialiser_pieces_svg();
	ajax_met_a_jour = false;
	
	vraiment_a_jour = false;
	
	entrain_animer_piece = false;

	bool_init_svg = true;
	
	proposer_question = true;
	
	deja_echec_son = false;
	
	son_devient = false;
	
	proposer=true;
	
	bool_abandonner = false;
	
	match_nul = false;
	
	avant_dernier_i1 = 0;
	
	plus_de_son_abandon = false;
	
	 timer_noir = 0;
	 timer_blanc = 0;
	 
	 mat = 0;
	 
	 changer_couleur_timer = false;
	
	premier_affichage_board = true;
	
	afficher_status_partie(true);
}

function indice_k(j1,i1) {
	
	var name1 = '';
	
	var onbreak = 0;
	
	for (var i = 1; i <= 8; i++) {	
		
			if (onbreak) { break; }
			
			for (var j = 1; j <= 8; j++) {
				
				left1 						= Math.round((j-1) * ((taille_largeur) / 8));
				top1						= Math.round((i-1) * ((taille_hauteur) / 8));			
		
				name1						= left1.toString() + '-' + top1.toString();		
				
				if ((i == i1) && (j == j1)) {
					
						onbreak = 1; break;
				}
			}
		}
		
		return name1;
}

/*function ratio_moins_largeur(largeur) {
	
		return Math.round(largeur * (365/352));
}

function ratio_moins_hauteur(hauteur) {
	
		return Math.round(hauteur * (370/352));
}
*/

function multiple_de_huit(nb) {
	
		return Math.round(nb/8) * 8;
}

function plateau_blanc() {
	
	return (((sens_echiquier == 1) || (sens_echiquier == 3)) && (echiquier['aux_blancs']));
				
}

function afficher_echiquier(bool_afficher) {
	
	if (bouger_souris) { return false; }
	
	if ((!bool_afficher) && (ajax_met_a_jour_coup)) { return false; }	
		
		verrouiller_clic();
	
		var k = 0;
		
		var str;
		
		var ind;
		
		var old_premier_affichage = premier_affichage_board;
		
		if (bool_afficher != undefined) {
			
				premier_affichage_board = bool_afficher;
		}
		
		different_board = (premier_affichage_board || (chessboard['sens_echiquier'] != sens_echiquier)
										|| (chessboard['aux_blancs'] != echiquier['aux_blancs']));
				
		if (premier_affichage_board) {
			
					// reconsidérer toute la taille de l'échiquier en rapport à la taille initiale de 352 fixée en PNG
					
					// FORMULES POUR CONSERVER LA PROPORTION CARREE DE L'IMAGE
					
					// x = la largeur de la résolution choisie.
					// y = la hauteur de la résolution choisie.
					// imgX = largeur de ton image.
					// imgY = hauteur de ton image. 
					
					// FORMULES POUR CONSERVER LA PROPORTION CARREE DE L'IMAGE
					
					// x = la largeur de la résolution choisie.
					// y = la hauteur de la résolution choisie.
					// imgX = largeur de ton image.
					// imgY = hauteur de ton image. 
				
					var id_damier = document.getElementById('damier');
					
					taille_largeur = multiple_de_huit(Math.round(id_damier.offsetWidth / (379 / 360)));
					taille_hauteur = multiple_de_huit(Math.round(id_damier.offsetHeight / (390 / 360)));
					
					// davidou
				
					var r1 = screen.width / screen.height;
				  var nombre_or = 1.618033988749;
				  
				  var taux_y = nombre_or/r1;
				
					if (taille_largeur < taille_hauteur) {
						
							document.getElementById('svgid').height = multiple_de_huit(Math.round(taille_largeur / (360 / 379) * taux_y));
							
							taille_hauteur = multiple_de_huit(taille_largeur * taux_y);
															
					} else {
						
							document.getElementById('svgid').width = multiple_de_huit(Math.round(taille_hauteur / (360 / 390) / taux_y));
														
							taille_largeur = multiple_de_huit(taille_hauteur / taux_y);
					}
					
					SVGscale((taille_largeur / 379), (taille_hauteur / 390));
		}
		
		if (plateau_blanc()) {
			
					// afficher image de fond du plateau dans le sens BLANC en bas					
					
					if (different_board) { 
						
						montrer_coord('coord_blanc');
					}
		
		} else {

					// afficher image de fond du plateau dans le sens NOIR en bas
					
					if (different_board) { 
						
						montrer_coord('coord_noir');
					}		
		}

		montrer_echiquier();
		
		//document.getElementById('chrono').innerHTML = '';
		
		if (different_board) {
		
				// On met tous les visiblity des pièces à hidden
				
				for (var i = 0; i <= 7; i++) {	
					
					for (var j = 0; j <= 7; j++) {
						
							cacher_piece(i,j);							
					}
				}	
				
				// On initialise les numéros des pièces : exemple : Tn1, Tn2, etc...
				
				if (!bouger_souris) { 
						
						init_les_pieces();
				}
				
				for (var i = 0; i <= 7; i++) {	
					
					for (var j = 0; j <= 7; j++) {
						
							verrouiller_clic();

							tab_id_piece[i][j] = placer_piece(i,j,echiquier[tourner_indice_i(i)][tourner_indice_j(j)]);
							
							//document.getElementById('chrono').innerHTML = 
							//document.getElementById('chrono').innerHTML + 'Placer_piece - ';
					}
				}	

				for (var i = 0; i <= 7; i++) {	
					
					for (var j = 0; j <= 7; j++) {
						
							montrer_piece(i,j);
					}
				}	
		}

		bool_init_svg = false;	
		
		if ((possible_lecture_son) && (dernier_j2 != 0) && (echiquier[dernier_j2] != undefined)) {
			
							afficher_dernier_coup();
			
							if ((echiquier[dernier_j2][dernier_i2] == 'Rb') && (dernier_j2-dernier_j1 == -2)) {
								
										lire_son('grand_roc_roi_blanc'); 
										
							} else if ((echiquier[dernier_j2][dernier_i2] == 'Rb') && (dernier_j2-dernier_j1 == 2)) {
								
										lire_son('petit_roc_roi_blanc'); 
											
							} else if ((echiquier[dernier_j2][dernier_i2] == 'Rn') && (dernier_j2-dernier_j1 == -2)) {
								
										lire_son('grand_roc_roi_noir'); 
										
							} else if ((echiquier[dernier_j2][dernier_i2] == 'Rn') && (dernier_j2-dernier_j1 == 2)) {
								
										lire_son('petit_roc_roi_noir'); 
											
							} else if ((!echiquier['prise_en_passant']) && (!verif_transform(old_dernier_j2))) {
																
									lire_son(echiquier[dernier_j2][dernier_i2] + ancien_ancienne_case_dest);							
							} 	
		}
						
		if (mat || numligne || ultra_verrouillage || (verrouiller_blanc && (echiquier['aux_blancs']))
					|| (verrouiller_noir && (!echiquier['aux_blancs']))	
					|| trouver_un_pion_en_derniere_ligne()) {
						
				verrouiller_clic();
					
		} else if (angle_egal_tour() || (sens_echiquier == 3)) {
								
				permettre_clic();
							
		} else {
								
				verrouiller_clic();							
		}	
		
		chessboard = sauvegarder_echiquier(echiquier);
		chessboard['sens_echiquier'] = sens_echiquier;
		
		premier_affichage_board = false;	
}

function angle_egal_tour() {
	
	return ( 
						(echiquier['aux_blancs'] && (sens_echiquier == 1))	
	  || 			(!echiquier['aux_blancs'] && (sens_echiquier == 2))
	  
	  			); 
}

function toujours_permettre_clic() {
	
	return (sens_echiquier == 3);
}

function retourner_k(i1, j1) {
		
		var k = 0;
		var break_ok = false;
		
		for (i = 1; i <= 8; i++) {	
			
			if (break_ok) { break; }
			
			for (j = 1; j <= 8; j++) {
				
				k++;
				
				if ((i == i1) && (j == j1)) {
					
						break_ok = true;
					
						break;
				}
			}
		}
		
		return k;
}

function alert2(str) {
	
	//document.getElementById('infos_partie').innerHTML = document.getElementById('infos_partie').innerHTML + 'aux_blancs : ' + echiquier['aux_blancs'];
	
}

function alert3(str) {
	
	//document.getElementById('liste_coups').innerHTML = 
	//document.getElementById('liste_coups').innerHTML + str + ' - ';
}

function traiter_coordonnees_dest() {	
	
		nom_image = '' + left1.toString() + '-' + top1.toString(); 
		
		j1 = tourner_indice_j(Math.round((left1 / (taille_largeur / 8) + 1)));
		
		i1 = tourner_indice_i(Math.round(((top1 / (taille_hauteur / 8) + 1))));	
		
		alert2('j1 : ' + j1);
		alert2('i1 : ' + i1);
		
		obj = document.getElementById('' + nom_image);
		var obj4 = document.getElementById('damier');
		
		if (obj) {
		
				top2 = (obj.style.top).replace('px','');
				left2 = (obj.style.left).replace('px',''); 
		
		} else {
			
			//alert ('OBJET (obj - traiter coordonnees dest) ABSENT - Contactez le programmeur à l''adresse undavid@free.fr !');
		}
		
		top2 = top2.replace('pt','');
		left2 = left2.replace('pt',''); 
		
		var signe_top, signe_left;
		
		if (top2 == '') { top2 = 0; }
		if (left2 == '') { left2 = 0; }
		
		top_relatif = top_courant.replace('px','');
		left_relatif = left_courant.replace('px','');
		
		j2 = tourner_indice_j(parseInt((parseInt(left_relatif) + (taille_largeur/16)) / (taille_largeur / 8))) + 1;
		i2 = tourner_indice_i(parseInt((parseInt(top_relatif) + (taille_hauteur/16)) / (taille_hauteur / 8))) - 1;
		
		if (i2 == tourner_indice_i(i2)) {
			
					// cela signifie qu'on est tourné dans le sens joueur NOIR en bas
					
					j2 = j2 - 2;
					i2 = i2 + 2;
		}
			
		//if (j2 < 1) j2 = 1; if (j2 > 10) j2 = 10;
		//if (i2 < 1) i2 = 1; if (i2 > 9) i2 = 9;		
		
		alert2('j2 : ' + j2);
		alert2('i2 : ' + i2);
		
		var ultra_top = Math.floor((tourner_indice_i(i2) - 1) * (taille_hauteur / 8));
		
		var ultra_left = Math.floor((tourner_indice_j(j2) - 1) * (taille_largeur / 8));
		
		alert2('ultra_top : ' + ultra_top);
		alert2('ultra_left : ' + ultra_left);
		
		nom_image2 = '' + ultra_left.toString() + '-' + ultra_top.toString(); 
		
		alert2('nom dest : ' + nom_image2);		
}

function renvoi_nom_id(j, i) {
	
		var ultra_top = Math.floor((tourner_indice_i(i) - 1) * (taille_hauteur / 8));
		var ultra_left = Math.floor((tourner_indice_j(j) - 1) * (taille_largeur / 8));
	
		var nom = '' + ultra_left.toString() + '-' + ultra_top.toString(); 
		
		return nom;
}

function effacer_dernier_coup() {
	
	if (dernier_j1 == 0) { return 0; }
	
	var nom_id_source 	= renvoi_nom_id(dernier_j1, dernier_i1);
	var nom_id_dest 		= renvoi_nom_id(dernier_j2, dernier_i2);
	
	//document.getElementById(nom_id_source).style.border = '0px solid black';
	//document.getElementById(nom_id_dest).style.border 	= '0px solid black';
}


function afficher_dernier_coup() {
	
	effacer_dernier_coup();
		
						if ((move_souris) || (dernier_j1 == 0)) { return 0; }
				
						var nom_id_source 	= renvoi_nom_id(dernier_j1, dernier_i1);
						var nom_id_dest 		= renvoi_nom_id(dernier_j2, dernier_i2);
	
						//document.getElementById(nom_id_source).style.border = '2px dotted #000000';
						//document.getElementById(nom_id_dest).style.border 	= '2px solid black';
}

function afficher_case_bleu_dest() {
	
	  left1				=	left_source.replace('px','');
		top1				=	top_source.replace('px','');
			
		traiter_coordonnees_dest();
		
		if (((i1 != i2) || (j1 != j2)) && (bon_coup[j2][i2])) document.getElementById(nom_image2).style.border = '2px solid #000000';
}

function effacer_case_verte_dest() {
	
	var i, j;
	
		for (i = 1; i <= 8; i++) {	
	
			for (j = 1; j <= 8; j++) {
		
				left2 			= Math.round((j-1) * (taille_largeur / 8));
				top2 				= Math.round((i-1) * (taille_hauteur / 8));			
			
				name2				= left2.toString() + '-' + top2.toString();			
				
				if (bon_coup[tourner_indice_j(j)][tourner_indice_i(i)]) {
					
					if (name2 != undefined) {
					
						document.getElementById(name2).style.border = '0px solid black';
					}
				}
			}
		}		
}

function afficher_case_verte_dest() {
	
	var i, j;
	
		for (i = 1; i <= 8; i++) {	
	
			for (j = 1; j <= 8; j++) {
		
				left2 			= Math.round((j-1) * (taille_largeur / 8));
				top2 				= Math.round((i-1) * (taille_hauteur / 8));			
			
				name2				= left2.toString() + '-' + top2.toString();					
				
				if ((!(((i1 != i2) || (j1 != j2)) && (bon_coup[j2][i2]))) 
				&& (bon_coup[tourner_indice_j(j)][tourner_indice_i(i)])) {
					
					alert2(name2);
					
					document.getElementById(name2).style.border = '2px dotted #000000';
				}
			}
		}		
}

function verif_hors_limite(e) {
	
	  var limite_x = dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x;

    var limite_y = dobj.style.top  = nn6 ? ty + e.clientY - y : ty + event.clientY - y;
    
    if ((limite_x < -taille_largeur / 16) 
    || (limite_y < -taille_hauteur / 16)
    || (limite_x > taille_largeur - (taille_largeur / 16)) 
    || (limite_y > taille_hauteur - (taille_hauteur / 16)))  { return 1; } else { return 0; }
}

function sauvegarder_coordonnees(e) {
	left_source = dobj.style.left;
  top_source = dobj.style.top;	
  left_courant = dobj.style.left;
  top_courant = dobj.style.top;  
  
  client_x = x;
  client_y = y;
}

function movemouse(e) {	
	
	hors_limite_move_mouse = verif_hors_limite(e);
	
	 if (isdrag) {  		 	
	 	
	 	move_souris = true;
  	 	
  	if (document.getElementById(nom_image2)) {
  		
  		if (!bon_coup[j2][i2]) document.getElementById(nom_image2).style.border = '0px solid black'
  		else { document.getElementById(nom_image2).style.border = '2px dotted #000000'; }
  	}

    dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x;

    dobj.style.top  = nn6 ? ty + e.clientY - y : ty + event.clientY - y;
    
    left_courant = dobj.style.left;
    top_courant = dobj.style.top; 
    
    afficher_case_verte_dest();     
    
    afficher_case_bleu_dest();  
    
    return false;

  }
}

function repositionner(e, bool) {
	
	  	isdrag = false;
		  
		  if (bool) {
		  	
	  		dobj.style.left = left_source;
	  		dobj.style.top = top_source;
	  	
	   		x = client_x;
  			y = client_y;
  			
				afficher_status_partie();	 
	  	}
	  	
      return false;    
}

function alerter_clic_droit(e) {
	
		selectmouse;
	
		if (!e) var e = window.event;
	  var rightclick;
	  if(e.which) rightclick = (e.which == 3);
	  else if(e.button) rightclick = (e.button == 2);
	  
	 	if (rightclick) {
	 		
	 		repositionner(e, true);		
			alert('Le clic droit est interdit : merci de ne pas l\'utiliser...');
		}	
}

function selectmouse(e) {	
	
	hors_limite_move_mouse = false;
	
	move_souris = true;
	
	debut = 1;
	
  var fobj       = nn6 ? e.target : event.srcElement;

  var topelement = nn6 ? "HTML" : "BODY";

  while (fobj.tagName != topelement && fobj.className != "dragme")

  {

    fobj = nn6 ? fobj.parentNode : fobj.parentElement;

  }

  if (fobj.className=="dragme")

  {

    isdrag = true;

    dobj = fobj;
 
	  sauvegarder_coordonnees(e);
	  
    afficher_case_bleu_dest();   
    
		hors_limite = false;
		
		tmp_echiquier = sauvegarder_echiquier();
    
    renvoyer_bon_coups(j1, i1);   
    
    echiquier = restaurer_echiquier(tmp_echiquier);
    
	  afficher_case_verte_dest();   
	  
	  afficher_case_bleu_dest();    

    tx = parseInt(dobj.style.left+0);

    ty = parseInt(dobj.style.top+0);

    x = nn6 ? e.clientX : event.clientX;

    y = nn6 ? e.clientY : event.clientY;
    
    document.onmousemove=movemouse;   

    return false;

  }
}

function getHTTPObject() {
 var xhr = false;
 if (window.XMLHttpRequest) {
  xhr = new XMLHttpRequest();
 } else if (window.ActiveXObject) {
  try {
   xhr = new ActiveXObject("Msxml2.XMLHTTP");
  } catch(e) {
   try {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
   } catch(e) {
    xhr = false;
   };
  };
 };
 return xhr;
}

function remplacer_tout(occurence, occurence2, chaine) {
		
		var a			=	chaine;
		var i 		= a.indexOf(occurence);
		while (i >= 0) {
			a=a.replace(occurence,occurence2);
			i=a.indexOf(occurence);
		}
		
		return a;
}

function quotient_division_entiere(nombre, diviseur) {

	if (diviseur == 0) { return 0; } else return Math.floor(nombre / diviseur);
}

function reste_division_entiere(nombre, diviseur) {

	return (nombre % diviseur);
}

function mettre_les_zeros (nb) {

	if (nb == 0) {
		
			return '00';
			
	} else if (nb < 10) { return '0' + nb; } else return nb;
}

function inverser_temps(nb, tps_en_minute) {
	
	nb = tps_en_minute * 60 - nb;
	
	return nb;
}

function ecoulement(nb, tps_en_minute) {
	
	nb = inverser_temps(nb, tps_en_minute);
	
	str = quotient_division_entiere(nb,60) + ':' + mettre_les_zeros(reste_division_entiere(nb,60));
	
	return str;	
}

function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);}

function afficher_progressbar1() {
	
		var tps_restant = inverser_temps(timer_blanc, temps_minute);
	
		var pcent = (temps_minute*60) / (tps_restant);
				
		document.getElementById('progressbar1').style.width = Math.round(document.getElementById('chrono_blanc').offsetWidth / pcent) + 'px';
		
		var green = d2h(Math.round(133 / pcent));
		
		var red = d2h(200-h2d(green));
	  
	  document.getElementById('progressbar1').style.background = '#' + red + green + '00';
}

function afficher_progressbar2() {
	
		var tps_restant = inverser_temps(timer_noir, temps_minute);
	
		var pcent = (temps_minute*60) / (tps_restant); 
				
		document.getElementById('progressbar2').style.width = Math.round(document.getElementById('chrono_noir').offsetWidth / pcent) + 'px';
		
		var green = d2h(Math.round(133 / pcent));
		var red = d2h(200-h2d(green));
		
		document.getElementById('progressbar2').style.background = '#' + red + green + '00';
}

function gerer_ajax_3(json) {
	
		ajax_3 = true;
										
		vraiment_a_jour = false;
	
		if ((dernier_eval_json != json[0]) && (!bouger_souris) && (!entrain_animer_piece)) {
			
					ajax_met_a_jour_coup = false;	// l'echiquier est vraiment mis à jour
					vraiment_a_jour = true;
					
					init_echiquier();									

					eval2(json[0],numligne); // joue de façon interne tous les coups de la partie jusqu'au dernier
																	// la fonction coup renvoit le dernier coup joué	
			
					if (((echiquier['aux_blancs']) && (ordi_blanc)) 
					|| ((!echiquier['aux_blancs']) && (ordi_noir))) { 
						
							if ((joueur_blanc == 'ordi-debutant') || (joueur_noir == 'ordi-debutant')) {
								
									g_timeout = 2500;
						
							} else if ((joueur_blanc == 'ordi-moyen') || (joueur_noir == 'ordi-moyen')) {
								
									g_timeout = 5000;
									
							} else if ((joueur_blanc == 'ordi-expert') || (joueur_noir == 'ordi-expert')) {
								
									g_timeout = 7500;
							}
					
							if ((!mat) && (!premier_reset) && (!ultra_verrouillage)) { 
							 	
							 			setTimeout('Search(); jouer_coup_cpu();', 1000);
							}
					}
					
					document.getElementById('transformation_des_pieces').innerHTML = '';
								
					bool_animer_piece = true;	
					deja_echec_son = false;
					possible_lecture_son = true;
					son_devient = false;
					
					proposer = true;
					proposer_question = true;
					
					if (json[0].length < 6) {

								initialiser_echiquier();	
								
								//document.location.reload();																	
					}										
		
		}	else {
			
					possible_lecture_son = false;
		}
								
		dernier_eval_json = json[0];	
								
		tmp_timer_noir = timer_noir;
		tmp_timer_blanc = timer_blanc;		
		
		if (!mat) {											
			
				eval(json[1]); // ré-affecte les variables timer_noir et timer_blanc par échange ajax 
		}
		
		if (timer_noir >= temps_minute * 60) { 

				timer_noir = temps_minute * 60;
		}
		
		if (timer_blanc >= temps_minute * 60) { 

				timer_blanc = temps_minute * 60;
		}
								
		if (echiquier['aux_blancs']) {
			
				if (!changer_couleur_timer) { var gras_white = '<b>'; var gras_fin_white = '</b>'; } else  { var gras_white = ''; var gras_fin_white = ''; }
				if (!changer_couleur_timer) { var gras_black = ''; var gras_fin_black = ''; }	else { var gras_black = '<b>'; var gras_fin_black  = '</b>'; }
				
				if (timer_blanc > temps_minute * 60) {
							
							timer_blanc = temps_minute * 60;														
				}											
		
		} else {
			
				if (!changer_couleur_timer) { var gras_white = ''; var gras_fin_white = ''; } else { var gras_white = '<b>'; var gras_fin_white = '</b>'; }
				if (!changer_couleur_timer) { var gras_black = '<b>'; var gras_fin_black  = '</b>'; } else { var gras_black = ''; var gras_fin_black = ''; }	
					
				if (timer_noir > temps_minute * 60) {
							
						timer_noir = temps_minute * 60;														
				}																			
		}
							
		var str_blanc = '';					
		var str_noir = '';
		
		var gras_deb_blanc = '';
		var gras_deb_noir = '';
		
		var gras_fin_blanc = '';
		var gras_fin_noir = '';
																	
		if (sens_echiquier == 1) {	str_blanc	= 'checked'; }
		else if (sens_echiquier == 2) {	str_noir = 'checked'; }
			
		if (echiquier['aux_blancs'])  { gras_deb_blanc = '<b>'; gras_fin_blanc = '</b>'; }
		else													{ gras_deb_noir = '<b>'; gras_fin_noir = '</b>'; }
								
		document.getElementById('chrono_blanc').innerHTML = '<input id="radio_blanc" name="choix" ' + str_blanc + ' value="e_blancs" onclick="sens_echiquier=1; afficher_status_partie(); " type="radio" />'
		+ 'blancs : <b><font color=green>' + joueur_blanc + '<font color=blue> (</b>elo : <b>' + elo_blanc + ')</font></b><br></font><font color=black><u>Temps restant</u> : [ ' + gras_deb_blanc + ecoulement(timer_blanc,temps_minute) + ' minute(s) '+ gras_fin_blanc +' ]</font>';
		
		document.getElementById('chrono_noir').innerHTML = '<input id="radio_noir" name="choix" ' + str_noir + ' value="e_noirs" onclick="sens_echiquier=1; afficher_status_partie(); " type="radio" />'
		+ 'noirs : <b><font color=green>' + joueur_noir + '<font color=blue> (</b>elo : <b>' + elo_noir + ')</font></b> </font><br><font color=black><u>Temps restant</u> : [ ' + gras_deb_noir + ecoulement(timer_noir,temps_minute) + ' minute(s) '+ gras_fin_noir +' ]</font>';
		  
		afficher_progressbar1();
		afficher_progressbar2();
																				
		if (echiquier['prise_en_passant']) {																						
			
				if (echiquier['aux_blancs']) {
					
						lire_son('ppassant_noir');
				
				} else {
					
						lire_son('ppassant_blanc');
				}
		}
											
		else if (dernier_j2 == 'Db')				 	{ lire_son('Pb_Db');	son_devient = true; }							
		else if (dernier_j2 == 'Fb') 		{ lire_son('Pb_Fb');	son_devient = true; }
		else if (dernier_j2 == 'Cb')		{ lire_son('Pb_Cb');	son_devient = true; }
		else if (dernier_j2 == 'Tb') 		{ lire_son('Pb_Tb');	son_devient = true; }

		else if (dernier_j2 == 'Dn') 		{ lire_son('Pn_Dn');	son_devient = true; }
		else if (dernier_j2 == 'Fn') 		{ lire_son('Pn_Fn');	son_devient = true; }
		else if (dernier_j2 == 'Cn') 		{ lire_son('Pn_Cn');	son_devient = true; }
		else if (dernier_j2 == 'Tn') 		{ lire_son('Pn_Tn');	son_devient = true; }		
			
		if (echiquier['echec'])	{ possible_lecture_son = false; }								
	
		afficher_status_partie(true);			
			
		ajax_toutes_les_5_secondes();							
		
		ajax_3 = false;
		
		bool_abandonner = false;	
}

function actualiser_ajax (initia)
{ 	
		if (replay) { 
		
					var json = new Array();
		
					json[0] = '';
					json[1] = ''; // timer
					json[2] = 'inconnu';
					json[3] = 'inconnu';
					json[4] = '';
					
					gerer_ajax_3(json);		
							
					return 0;
		}
	
		alert3('actu');
			
		var xhr_object = getHTTPObject();
		var method = 'POST';
		
		if (!mat) { mat = 0; }
		
		if (initia == 1) {
		
			var filename = 'pictures.php?init=1&nom_partie='+nom_partie+'&num_ligne='+num_ligne; 
			
		} else if (initia == 3) {
			
			var filename = 'pictures.php?mat=' + mat + '&init=' + initia + '&nom_partie='+nom_partie+'&num_ligne='+num_ligne; 
		
		} else {				
			
				verrouiller_clic();
			
				var trans_timer = 0;
				
				if (!mat) { mat = 0; }
			
				if ((echiquier[j2]) && (echiquier[j2][i2] == 'Pb') && (i2 == 8)) { trans_timer = 1; }
				if ((echiquier[j2]) && (echiquier[j2][i2] == 'Pn') && (i2 == 1)) { trans_timer = 1; }
				
				var nul_ou_recommencer;
				
				if (initia == 4) { trans_timer = 1; nul_ou_recommencer = 1; mat = 0; } 
				else { nul_ou_recommencer = 0; }
				
				var filename = 'pictures.php?ordi_blanc=' + ordi_blanc + '&ordi_noir = ' + ordi_noir + '&nul_ou_recommencer=' + nul_ou_recommencer + '&mat='+mat+'&tour='+(1-echiquier['aux_blancs'])+'&transformation_pour_timer='+trans_timer+'&nom_partie='+nom_partie+'&num_ligne='+num_ligne+'&j1='+j1+'&i1='+i1+'&j2='+j2+'&i2='+i2; 
				
				ajax_met_a_jour_coup = true;
		}
				
		xhr_object.open(method, filename, true);
		
	  xhr_object.onreadystatechange = function() {
		
			if(xhr_object.readyState == 4) {				
				
				if (match_recommencer_attendre_ajax) {
					
						match_recommencer_attendre_ajax = false;
					
						initialiser_echiquier();				
				}
				
				//alert3('On readay state = 4');
		
				var old_tmp = tmp;
		
				var tmp = xhr_object.responseText;
				
				if (tmp == 'rediriger') {
					
							document.location.href = 'index.php';
				}
				
				tmp = tmp.replace('ï»¿','');
				var json = tmp.split("**suite**"); 
				
				if (json.length >= 1) { 
					
							elo_blanc = parseInt(json[2]);
							elo_noir = parseInt(json[3]);
							
							document.forms.enregistrer_partie.fichier_partie.value = json[4];
				}
				
				if (initia == 1) {
					
					document.getElementById('liste_coups').innerHTML = tmp;
					
					initialiser_echiquier();
										
				} else {
					
							if (initia == 3) {							
															
									gerer_ajax_3(json);								
							
							} else { document.getElementById('liste_coups').innerHTML = json[0]; }	
							
							//afficher_echiquier();					
				}		
				
			}			
			
		}
			
		xhr_object.send(null);		
}		

function chess (e)
{ 		
move_souris = false;
	
		if (!((!isdrag) && (debut))) { 
		
					repositionner(e, true);				
		}
	
			if ((!isdrag) && (debut) && (echiquier[j1] != undefined)) {							
				
					move_souris = false;
				
					hors_limite = hors_limite_move_mouse;	 			
				
					var old_j1 = j1;  var old_j2 = j2; var old_i1 = i1; var old_i2 = i2;
					
					var piece_source = echiquier[j1][i1];
					
					var bad_coup = mauvais_coup(j1, i1, j2, i2);
					
					j1 = old_j1;  j2 = old_j2; i1 = old_i1; i2 = old_i2;
					
					dernier_j2 = j2; dernier_i2 = i2;
					
					if (bad_coup) {
						
						repositionner(e, true);					
							
					} else {									
						
							coup(0, j1, i1, j2, i2);							
							
							actualiser_ajax();
							
							possible_lecture_son = true;
							
							afficher_status_partie(true);
							
							 { document.getElementById('infos_partie').innerHTML = document.getElementById('infos_partie').innerHTML + "<br><br><font color=green><b>Coup correct !</b></font>";	}				
					}						
					
					var obj3 = document.getElementById("" + nom_image2);
				
					// on pique LE DIV IMAGE source pour le mettre dans LE DIV IMAGE destination
						
					var tmp_left3 = obj3.style.left;
					var tmp_top3 = obj3.style.top; 
								
					j1 = old_j1;  j2 = old_j2; i1 = old_i1; i2 = old_i2;								
								
					if (!bad_coup) {				
						
						var img	 = document.getElementById(retourner_k(tourner_indice_i(i2),tourner_indice_j(j2)));
						
						//alert ('i2 = ' + i2 + ', j2 = ' + j2);
						
						//alert('image destination : ' + img.src);
								
						img.src = tab_image[piece_source].src; 
					
						obj3.className = "dragme";
						obj3.style.left = tmp_left3; 
						obj3.style.top = tmp_top3;
								
						// on créé un DIV IMAGE source avec un contenu d'image VIDE
						
						var name_id = obj.id;
						
						var width_vide = Math.round(taille_largeur / 8) - 3;
						var height_vide = Math.round(taille_hauteur / 8) - 3;				
						
						if ((i1 != i2) || (j1 != j2)) {
							
							img	 		= document.getElementById(retourner_k(tourner_indice_i(i1),tourner_indice_j(j1)));
							
							//alert ('i1 = ' + i1 + ', j1 = ' + j1);
							
							//alert('image source : ' + img.src);
						
							img.src = tab_image['vide'].src;
						}
					}
						
					obj3.style.border = '0px solid black';
										
					effacer_case_verte_dest();
					
					obj.style.left = parseInt(left_source.replace('px','')) + 'px';
					obj.style.top = parseInt(top_source .replace('px','')) + 'px';
					obj.className = "dragme";				
					
					afficher_status_partie(true);							
					
					if (bad_coup) {
						
						 { document.getElementById('infos_partie').innerHTML = document.getElementById('infos_partie').innerHTML + "<br><br><font color=green><b><u>Mauvais coup</u> : </font><font color=red>" + bad_coup + "</b></font>";	}			
					}				
			}
			
}

function resize()
{
 	afficher_echiquier(true);
}

//document.onmousedown=selectmouse;
//document.onmouseup=chess;
window.onresize=resize;

// ci-dessous, une fonction qui détecte si la souris ne bouge plus...

/*    
document.onmousemove = (function() {
var onmousestop = function() {    	
			bouger_souris = false;
}, thread;
 
return function() {
clearTimeout(thread);
thread = setTimeout(onmousestop, 250);
};
})();

*/
