var place_pulsate1 = '';
var place_pulsate2 = '';
var place_pulsate3 = '';
var place_pulsate4 = '';
var place_pulsate5 = '';
var place_pulsate6 = '';
var place_pulsate7 = '';
var place_pulsate8 = '';
var place_pulsate9 = '';
var place_pulsate10 = '';
var place_pulsate11 = '';
var place_pulsate12 = '';
var place_pulsate13 = '';
var big_radar_activated = '';
var big_radar_interval = false;
var fx_style_planet_info;
var fx_style_planet_coord;
var fx_style_planet_ranking;
var load_type = (window.ie ? 'load' : 'domready');

function Xhr(div, file, func)
{
	if( window.XMLHttpRequest ){
	  xhr = new XMLHttpRequest();
	  
	  if ( xhr.overrideMimeType ) xhr.overrideMimeType('text/html; charset=UTF-8'); 
	} else {
	   if ( window.ActiveXObject ){
	    try {
	      xhr = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e) {
	      try {
	        xhr = new ActiveXObject("Microsoft.XMLHTTP");
	      } catch (e) {
	        window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
	      }
	    }
	  }
	}
	
	if( (new RegExp("[\?]", "gi")).test(file) ){
		xhr.open("GET", file + '&rand=' + Math.random(), true);	
	} else {
		xhr.open("GET", file + '?rand=' + Math.random(), true);
	}
	
	xhr.onreadystatechange = function(){	
		if(xhr.readyState == 4){
			if( div != '' ) document.getElementById(div).innerHTML = xhr.responseText;
			if( func != '' ){
				var regex = new RegExp("X", "g");
				eval(func.replace(regex, "xhr.responseText"));
			}
		} else {
			if( document.getElementById(div) ) document.getElementById(div).innerHTML = '<div style="vertical-align:top;margin-left:auto;margin-right:auto;text-align:center;padding:2px;"><img src="images/ajax-loader.gif" alt=""></div>';
		}
	}
	
	xhr.setRequestHeader("Content-type", "charset=UTF-8");
	xhr.send(null);
}

function Xhr3(div, file, func)
{
	if( document.getElementById(div) ){
		if( window.XMLHttpRequest ){
		  xhr = new XMLHttpRequest();
		  
		  if ( xhr.overrideMimeType ) xhr.overrideMimeType('text/html; charset=UTF-8'); 
		} else {
		   if ( window.ActiveXObject ){
		    try {
		      xhr = new ActiveXObject("Msxml2.XMLHTTP");
		    } catch (e) {
		      try {
		        xhr = new ActiveXObject("Microsoft.XMLHTTP");
		      } catch (e) {
		        window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
		      }
		    }
		  }
		}
		
		if( (new RegExp("[\?]", "gi")).test(file) ){
			xhr.open("GET", file + '&rand=' + Math.random(), true);	
		} else {
			xhr.open("GET", file + '?rand=' + Math.random(), true);
		}
		
		xhr.onreadystatechange = function(){	
			if(xhr.readyState == 4){
				if( div != '' ) document.getElementById(div).innerHTML = xhr.responseText;
				if( func != '' ){
					var regex = new RegExp("X", "g");
					eval(func.replace(regex, "xhr.responseText"));
				}
			} else {
				if( div != '' ) document.getElementById(div).innerHTML = '';
			}
		}
		
		xhr.setRequestHeader("Content-type", "charset=UTF-8");
		xhr.send(null);
	}
}

function Xhr2(div, file, func)
{
	if( window.XMLHttpRequest ){
	  xhr = new XMLHttpRequest();
	  
	  if ( xhr.overrideMimeType ) xhr.overrideMimeType('text/html; charset=UTF-8'); 
	} else {
	   if ( window.ActiveXObject ){
	    try {
	      xhr = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e) {
	      try {
	        xhr = new ActiveXObject("Microsoft.XMLHTTP");
	      } catch (e) {
	        window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
	      }
	    }
	  }
	}
	
	if( (new RegExp("[\?]", "gi")).test(file) ){
		xhr.open("GET", file + '&rand=' + Math.random(), true);	
	} else {
		xhr.open("GET", file + '?rand=' + Math.random(), true);
	}
	
	var save = document.getElementById(div).innerHTML;
	
	xhr.onreadystatechange = function(){	
		if(xhr.readyState == 4){
			document.getElementById(div).innerHTML = save + xhr.responseText;
			if( func != '' ){
				var regex = new RegExp("X", "g");
				eval(func.replace(regex, "xhr.responseText"));
			}
		} else {
			if( document.getElementById(div) ) document.getElementById(div).innerHTML = '<div style="vertical-align:top;margin-left:auto;margin-right:auto;text-align:center;padding:2px;"><img src="images/ajax-loader.gif" alt=""></div>';
		}
	}
	
	xhr.setRequestHeader("Content-type", "charset=UTF-8");
	xhr.send(null);
}

function build(id, place){
	Xhr('page', 'game/add_build.php?id=' + id + '&place=' + place, 'apply_build(' + id + ', ' + place + ', X);');
}

function research_techno(id){
	Xhr('page', 'game/research_techno.php?id=' + id, 'apply_research_techno(' + id + ', X);');
}

function update_build(id, place){
	Xhr('page', 'game/update_build.php?id=' + id + '&place=' + place, 'apply_update_build(' + id + ', ' + place + ', X);');
}

function update_research_techno(id){
	Xhr('page', 'game/update_research_techno.php?id=' + id, 'apply_update_research_techno(' + id + ', X);');
}

function trim(string){
	return string.replace(/(^\s*)|(\s*$)/g,'');
} 

function VerifMail(a){
	valide1 = false;
	
	for(var j=1;j<(a.length);j++){
		if(a.charAt(j)=='@'){
			if(j<(a.length-4)){
				for(var k=j;k<(a.length-2);k++){
					if(a.charAt(k)=='.') valide1 = true;
				}
			}
		}
	}
	
	return valide1;
}

function modif_profil(){
	document.getElementById('submit_modif').value = 'Modification en cours ...';
	
	var email = document.getElementById('email').value;
	var description = document.getElementById('desc').value;
	var avatar = document.getElementById('avatar').value;
	
	if( trim(email) != "" ){
		if( avatar.search(/^([http]+[/:/]+[\///])+(.+)?[/\./]+[a-z]{2,4}$/) == -1 ){
			alert('Veuillez entrer une adresse URL convenable.');
			document.getElementById('submit_modif').value = 'Modifier';
		} else if( !VerifMail(email) ) {
			alert('Veuillez entrer un email valide.');
			document.getElementById('submit_modif').value = 'Modifier';
		} else {
			Xhr('', 'game/modif_profil_mysql.php?email=' + escape(email) + '&description=' + escape(description) + '&avatar=' + escape(avatar), 'modif_profil_callback(X);');
		}
	} else {
		alert("Email obligatoire ...");
		document.getElementById('submit_modif').value = 'Modifier';
	}
}

function modif_name_planet(){
	document.getElementById('submit_modif').value = 'Modification en cours ...';
	var name = document.getElementById('name').value;
	
	if( trim(name) != "" ){
		Xhr('', 'game/modif_name_planet_mysql.php?name=' + name, 'modif_name_planet_callback(X);');
	} else {
		alert("Le champs nom est vide ...");
		document.getElementById('submit_modif').value = 'Modifier';
	}
}

function modif_name_planet_callback(response){
	if( response == 'TRUE' ){
		alert('Le nom de votre planète a été modifié avec succès !');
		Xhr('page', 'game/modif_profil.php', 'exec_js();');
	} else {
		if( response == 'NOT_ENOUGH_CRISTAUX' ){
			alert('Vous n\'avez pas assez de cristaux pour effectuer la modification ...');
		} else if( response == 'EMPTY_NAME' ){
			alert('Le champs \'nom\' est vide ...');
		} else if( response == 'ALREADY_EXISTS' ){
			alert('Ce nom existe déjà !');
		} else if( response == 'UPDATE_INVENTORY_ERROR' ){
			alert('Il y a eu une erreur lors de la mise à jour de votre inventaire, veuillez recommencer ...');
		} else if( response == 'SQL_ERROR' ){
			alert('Un erreur SQL n\'a pas permis la modification du nom de votre planète, veuillez contacter l\'administrateur ...');
		}
		
		document.getElementById('submit_modif').value = 'Modifier';
	}
}

function modif_password(){
	document.getElementById('submit_modif_passe').value = 'Modification en cours ...';
	
	var passe1 = trim(document.getElementById('passe1').value);
	var passe2 = trim(document.getElementById('passe2').value);
	var new_passe1 = trim(document.getElementById('new_passe1').value);
	var new_passe2 = trim(document.getElementById('new_passe2').value);
	
	if( passe1 != '' && passe2 != '' && new_passe1 != '' && new_passe2 != '' ){
		if( passe1 == passe2 ){
			if( new_passe1 == new_passe2 ){
				Xhr('', 'game/modif_password_mysql.php?passe1=' + passe1 + '&new_passe1=' + new_passe1 + '&passe2=' + passe2 + '&new_passe2=' + new_passe2, 'modif_password_callback(X);');
			} else {
				alert('Confirmation de votre nouveau mot de passe non correcte.');
				document.getElementById('submit_modif_passe').value = 'Modifier';
			}
		} else {
			alert('Confirmation de votre mot de passe actuel non correcte.');
			document.getElementById('submit_modif_passe').value = 'Modifier';
		}
	} else {
		alert('Vous devez remplir tous les champs.');
		document.getElementById('submit_modif_passe').value = 'Modifier';
	}
}

function modif_profil_callback(response){
	if( response == 'TRUE' ){
		alert('Votre profil a été modifié avec succès.');
		window.location = 'game.php';
	} else if( response == 'ALREADY_EXISTS' ){
		alert('L\'adresse que vous avez entrer existe déjà sur un autre compte.');
	} else {
		alert('La modification de votre profil a échoué.');
	}
	
	document.getElementById('submit_modif').value = 'Modifier';
}

function modif_password_callback(response){
	if( response == 'TRUE' ){
		alert('Votre mot de passe a été modifié avec succès.');
		window.location = 'game.php';
	} else {
		alert('La modification de votre mot de passe a échoué.');
	}
	
	document.getElementById('submit_modif_passe').value = 'Modifier';
}

function apply_build(id, place, xhr){
	if( (new RegExp("Erreur", 'gi')).test(xhr) ){
	} else {
		var obj = document.getElementById('place' + place);
		eval("this.place_pulsate" + place + " = opacity_pulsate('place" + place + "', 1500, 0, 1);");
		obj.title = 'Emplacement #' + place + ' :: Construction en cours ...';
		eval("var Place" + place + " = new Tips($$('.Place" + place + "'), {initialize:function(){this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);},onShow: function(toolTip) {this.fx.start(1);},onHide: function(toolTip) {this.fx.start(0);}});");
		setTimeout("window.location = 'game.php';");
	}
}

function apply_research_techno(id, xhr){
	if( (new RegExp("Erreur", 'gi')).test(xhr) ){
	} else {
		setTimeout("window.location = 'game.php';", 500);
	}
}

function apply_update_build(id, place, xhr){
	if( (new RegExp("Erreur", 'gi')).test(xhr) ){
	} else {
		setTimeout("window.location = 'game.php';");
	}
}

function apply_update_research_techno(id, xhr){
	if( (new RegExp("Erreur", 'gi')).test(xhr) ){
	} else {
		setTimeout("window.location = 'game.php';");
	}
}

function opacity_apply(id, intensity){
	document.getElementById(id).style.opacity = intensity;
    document.getElementById(id).style.MozOpacity = intensity;
    document.getElementById(id).style.KhtmlOpacity = intensity;
    document.getElementById(id).style.filter = "alpha(opacity=" + ( intensity * 100 ) + ")";
}

function opacity_transition_decrease(id, intensity_start, intensity_end){
	var current_intensity = intensity_start;
	
	if(	current_intensity > intensity_end ){
		opacity_apply(id, current_intensity);
		current_intensity = current_intensity - 0.1;
		setTimeout("opacity_transition_decrease('" + id + "', " + current_intensity + ", " + intensity_end + ");", 20);
	}
}

function opacity_transition_increase(id, intensity_start, intensity_end){
	var current_intensity = intensity_start;
	
	if(	current_intensity < intensity_end ){
		opacity_apply(id, current_intensity);
		current_intensity = current_intensity + 0.1;
		setTimeout("opacity_transition_increase('" + id + "', " + current_intensity + ", " + intensity_end + ");", 20);
	}
}

function opacity_transition_combo(id, intensity_start, intensity_end, start){
	var current_intensity = intensity_start;
	
	if(	current_intensity > intensity_end ){
		opacity_apply(id, current_intensity);
		current_intensity = current_intensity - 0.1;
		setTimeout("opacity_transition_combo('" + id + "', " + current_intensity + ", " + intensity_end + ", " + start + ");", 20);
	} else {
		opacity_transition_increase(id, current_intensity, start);
	}
}

function opacity_pulsate(id, freq, min_intensity, max_intensity){
	opacity_transition_combo(id, max_intensity, min_intensity, max_intensity);
	setTimeout("opacity_pulsate('" + id + "', '" + freq + "', '" + min_intensity + "', '" + max_intensity + "')", freq);
}

function decompte_temps_reel2(id, timeleft){
	var t = timeleft;
	var tmp_t = t;
	var hour = 0;
	var minute = 0;
	var seconde = 0;
	var text = '';
	
	if( ( tmp_t / 3600 ) > 1 ){
		hour = Math.floor( tmp_t / 3600 );
		tmp_t = tmp_t - ( hour * 3600 );
	}
	if( ( tmp_t / 60 ) > 1 ){
		minute = Math.floor( tmp_t / 60 );
		tmp_t = tmp_t - ( minute * 60 );
	}
	
	seconde = tmp_t;
	
	if( hour > 0 ){
		text += hour + ' h';
	}
	if( minute > 0 ){
		text += ' ' + minute + ' m';
	}
	if( seconde > 0 ){
		text += ' ' + seconde + ' s';
	}

	document.getElementById(id).innerHTML = text;
				
	if( t >= 0 ){
		setTimeout("decompte_temps_reel2('" + id + "', " + (t - 1) + ");", 1000);
	}
}

function decompte_temps_reel(id, id2, timeleft, total){
	var tmp_t = timeleft;
	var text = '';
	var did = document.getElementById(id);
	var did2 = document.getElementById(id2); 
	
	if( did && did2 ){
		if( timeleft >= 0 ){
			if( ( tmp_t / 3600 ) > 1 ){
				var hour = Math.floor( tmp_t / 3600 );
				tmp_t = tmp_t - ( hour * 3600 );
				text += hour + ' h';
			}
			if( ( tmp_t / 60 ) > 1 ){
				var minute = Math.floor( tmp_t / 60 );
				tmp_t = tmp_t - ( minute * 60 );
				text += ' ' + minute + ' m';
			}
			
			var seconde = tmp_t;
			text += ' ' + seconde + ' s';

			var bar = Math.round( ( 1 - ( timeleft / total ) ) * 100 );
			
			if( bar <= 100 ){
				did2.style.width = bar + '%';
			} else {
				did2.style.width = '100%';
			}
			
			did.innerHTML = text;
			
			setTimeout("decompte_temps_reel('" + id + "', '" + id2 + "', " + (timeleft - 1) + ", " + total + ");", 1000);
		} else {
			window.location = 'game.php';
		}
	}
}

function decompte_temps_reel3(id, id2, id3, timeleft, total){
	var tmp_t = timeleft;
	var text = '';
	var did = document.getElementById(id);
	var did2 = document.getElementById(id2); 
	
	if( did && did2 ){
		if( timeleft >= 0 ){
			if( ( tmp_t / 3600 ) > 1 ){
				var hour = Math.floor( tmp_t / 3600 );
				tmp_t = tmp_t - ( hour * 3600 );
				text += hour + ' h';
			}
			if( ( tmp_t / 60 ) > 1 ){
				var minute = Math.floor( tmp_t / 60 );
				tmp_t = tmp_t - ( minute * 60 );
				text += ' ' + minute + ' m';
			}
			
			var seconde = tmp_t;
			text += ' ' + seconde + ' s';

			var bar = Math.round( ( 1 - ( timeleft / total ) ) * 100 );
			
			if( bar <= 100 ){
				did2.style.width = bar + '%';
			} else {
				did2.style.width = '100%';
			}
			
			did.innerHTML = text;
			
			setTimeout("decompte_temps_reel3('" + id + "', '" + id2 + "', '" + id3 + "', " + (timeleft - 1) + ", " + total + ");", 1000);
		} else {
			var new_nb = parseInt(document.getElementById(id3).innerHTML) - 1;
			if( new_nb > 0 ){
				decompte_temps_reel3(id, id2, id3, total, total);
				document.getElementById(id3).innerHTML = new_nb;
			} else {
				window.location = 'game.php';
			}
		}
	}
}

function make_soldier(id, build) {
	Xhr('', 'game/make_soldier.php?id=' + id + '&id_build=' + build, 'make_soldier_callback(X);');
}

function make_soldier_callback(response){
	if ( response == 'NOT_REQUIRED_BUILD' ) {
		alert("Vous ne possédez pas le bâtiment requis pour produire ce soldat ...");
	} else if ( response == 'TOO_MANY_FORMATION' ) {
		alert("Vous ne pouvez pas former plus de soldat pour le moment ...");
	} else if ( response == 'NOT_ENOUGH_RESSOURCES' ) {
		alert("Vous n'avez pas assez de ressources ...");
	} else if ( response == 'FALSE' ){
		alert("Vous ne pouvez pas former ce soldat ...");
	} else {
		Xhr('page', 'game/build.php?place=' + response, 'exec_js();');
	}
}

function make_spaceship(id, build) {
	Xhr('', 'game/make_spaceship.php?id=' + id + '&id_build=' + build, 'make_spaceship_callback(X);');
}

function make_spaceship_callback(response){
	if ( response == 'NOT_REQUIRED_BUILD' ) {
		alert("Vous ne possédez pas le bâtiment requis pour produire ce soldat ...");
	} else if ( response == 'TOO_MANY_FORMATION' ) {
		alert("Vous ne pouvez pas construire plus de vaisseaux pour le moment ...");
	} else if ( response == 'NOT_ENOUGH_RESSOURCES' ) {
		alert("Vous n'avez pas assez de ressources ...");
	} else if ( response == 'FALSE' ){
		alert("Vous ne pouvez pas construire ce type de vaisseau ...");
	} else {
		Xhr('page', 'game/build.php?place=' + response, 'exec_js();');
	}
}

function exec_js(){
	for( var i=0;i<10;i++ ){
		if( document.getElementById('load_soldier_' + i) ){
			var reg = new RegExp(";", "g");
			var tab = document.getElementById('load_soldier_' + i).innerHTML.split(reg);
			var finish_time = parseInt(tab[0]);
			var made_time = parseInt(tab[1]);
			document.getElementById('load_soldier_' + i).style.display = 'inline';
			decompte_temps_reel('load_soldier_' + i, 'load_soldier_bar_' + i, finish_time, made_time);
		}
		
		if( document.getElementById('research_load_' + i) ){
			var reg = new RegExp(";", "g");
			var tab = document.getElementById('research_load_' + i).innerHTML.split(reg);
			var finish_time = parseInt(tab[0]);
			var made_time = parseInt(tab[1]);
			document.getElementById('research_load_' + i).style.display = 'inline';
			decompte_temps_reel('research_load_' + i, 'research_load_bar_' + i, finish_time, made_time);
		}
	}
	
	if( document.getElementById('load_resu') ){
		var reg = new RegExp(";", "g");
		var tab = document.getElementById('load_resu').innerHTML.split(reg);
		var finish_time = parseInt(tab[0]);
		var made_time = parseInt(tab[1]);
		document.getElementById('load_resu').style.display = 'inline';
		decompte_temps_reel3('load_resu', 'load_resu_bar', 'load_resu_nb', finish_time, made_time);
	}
	
	var load_type = (window.ie ? 'load' : 'domready');
	
	window.addEvent(load_type, function(){
		var Tipsexec = new Tips($$('.Tips'));
		big_radar_update();
	});
}

function display_planet_info(id, name, login, pos_x, pos_y, stargate_coord, ranking, ranking_points){
	this.fx_style_planet_info.start(0.6);
	this.fx_style_planet_coord.start(1);
	this.fx_style_planet_ranking.start(1);
	
	var planet_info = document.getElementById('planet_info2');
	var planet_name = document.getElementById('planet_name');
	var planet_owner = document.getElementById('planet_owner');
	var planet_coord = document.getElementById('planet_coord');
	var planet_stargate_coord = document.getElementById('planet_stargate_coord');
	var ranking_div = document.getElementById('owner_ranking');
	
	var reg = new RegExp(";", "g");
	var tab = stargate_coord.split(reg);
	var html_coord = '';
	
	for ( var i=0;i<tab.length;i++ ) {
		html_coord += '<img src="images/stargate/' + tab[i] + '.png" style="height:40px;width:40px;" \>';
	}
	
	if( id == 0 ){
		planet_name.innerHTML = 'Aucun';
		planet_owner.innerHTML = 'Planète libre';
		planet_coord.innerHTML = pos_x + ' : ' + pos_y;
		ranking_div.innerHTML = '';
	} else if( id == -1 ){
		planet_name.innerHTML = '<span style="color:red;font-weight:bold;">Commerce interplanétaire</span>';
		planet_owner.innerHTML = 'WOS Commerce';
		planet_coord.innerHTML = pos_x + ' : ' + pos_y;
		ranking_div.innerHTML = '';
	} else if( id == -2 ){
		planet_name.innerHTML = '<span style="color:rgb(255,240,0);font-weight:bold;">' + name + '</span>';
		planet_owner.innerHTML = '<span style="color:rgb(255,240,0);font-weight:bold;">' + login + '</span>';
		planet_coord.innerHTML = pos_x + ' : ' + pos_y;
		ranking_div.innerHTML = '';
	} else {
		planet_name.innerHTML = name;
		planet_owner.innerHTML = login;
		planet_coord.innerHTML = pos_x + ' : ' + pos_y;
		ranking_div.innerHTML = '<span style="color:#00FF00;font-family:Verdana;font-size:10px;">Classement : ' + ranking + '<br />Points : ' + Math.floor(parseInt(ranking_points) / 1000) + '</span>';
	}
	
	planet_stargate_coord.innerHTML = html_coord;
	
	planet_info.style.display = 'inline';
}

function undisplay_planet_info(){
	this.fx_style_planet_info.start(0);
	this.fx_style_planet_coord.start(0);
	this.fx_style_planet_ranking.start(0);
		
	var planet_info = document.getElementById('planet_info2');
		
	planet_info.style.display = 'none';
}

function is_numeric(num){
	var exp = new RegExp("^[0-9-.]*$","g");
	return exp.test(num);
}

function add_nb_soldier(id){
	var nb = document.getElementById('base_' + id);
	var add_nb = document.getElementById('add_' + id);
	var final_nb = document.getElementById('final_' + id);
	
	if( add_nb.value.trim() != '' && is_numeric(add_nb.value.trim()) && parseInt(add_nb.value.trim()) > 0 ){
		if( ( parseInt(nb.innerHTML) - parseInt(add_nb.value) ) >= 0 ){
			nb.innerHTML = parseInt(nb.innerHTML) - parseInt(add_nb.value.trim());
			final_nb.innerHTML = parseInt(final_nb.innerHTML) + parseInt(add_nb.value.trim());
			add_nb.value = '';
		} else {
			alert("Vous n'avez pas assez de soldats ...");
		}
	} else {
		alert("Vous devez entrer un nombre positif ...");
	}
}

function add_nb_fleet(id){
	var nb = document.getElementById('base_' + id);
	var add_nb = document.getElementById('add_' + id);
	var final_nb = document.getElementById('final_' + id);
	
	if( add_nb.value.trim() != '' && is_numeric(add_nb.value.trim()) && parseInt(add_nb.value.trim()) > 0 ){
		if( ( parseInt(nb.innerHTML) - parseInt(add_nb.value) ) >= 0 ){
			nb.innerHTML = parseInt(nb.innerHTML) - parseInt(add_nb.value.trim());
			final_nb.innerHTML = parseInt(final_nb.innerHTML) + parseInt(add_nb.value.trim());
			add_nb.value = '';
		} else {
			alert("Vous n'avez pas assez de vaisseaux ...");
		}
	} else {
		alert("Vous devez entrer un nombre positif ...");
	}
}

function add_team(ptab){
	var nb = 0;
	var txt = '';
	var team_name = document.getElementById('team_name');
	
	for( var i=0;i<ptab.length;i++ ){
		nb += parseInt(document.getElementById('final_' + ptab[i]).innerHTML);
		txt += ( txt == '' ) ? ( ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) ) : ( ';' + ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) );
	}
	
	if( nb > 0 ){
		if( team_name.value.trim() != '' ){
			document.getElementById('submit_button').value = 'Requête en cours ...';
			Xhr('', 'game/add_team_mysql.php?name=' + encode64(team_name.value.trim()) + '&team_info=' + encode64(txt), 'add_team_callback(X);');
		} else {
			alert("Vous devez choisir un nom pour votre équipe ...");
		}
	} else {
		alert("Vous devez commencer par choisir vos unités avant de pouvoir créer cette équipe ...");
	}
}

function modif_team(ptab, id){
	var nb = 0;
	var txt = '';
	
	for( var i=0;i<ptab.length;i++ ){
		nb += parseInt(document.getElementById('final_' + ptab[i]).innerHTML);
		txt += ( txt == '' ) ? ( ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) ) : ( ';' + ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) );
	}
	
	if( nb > 0 ){
		document.getElementById('submit_button').value = 'Requête en cours ...';
		Xhr('', 'game/modif_team_mysql.php?id=' + id + '&team_info=' + encode64(txt), 'modif_team_callback(X);');
	} else {
		alert("Vous devez commencer par choisir vos soldats avant de pouvoir modifier cette équipe ...");
	}
}

function modif_fleet(ptab, id){
	var nb = 0;
	var txt = '';
	
	for( var i=0;i<ptab.length;i++ ){
		nb += parseInt(document.getElementById('final_' + ptab[i]).innerHTML);
		txt += ( txt == '' ) ? ( ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) ) : ( ';' + ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) );
	}
	
	if( nb > 0 ){
		document.getElementById('submit_button').value = 'Requête en cours ...';
		Xhr('', 'game/modif_fleet_mysql.php?id=' + id + '&fleet_info=' + encode64(txt), 'modif_fleet_callback(X);');
	} else {
		alert("Vous devez commencer par choisir vos vaisseaux avant de pouvoir modifier cette flotte ...");
	}
}

function modif_fleet_callback(response){
	document.getElementById('submit_button').value = 'Modifier';
	
	if( response.trim() == 'SQL_ERROR' ){
		alert("Une erreur SQL a empéché l'execution de la requète ...");
	} else if( response.trim() == 'EMPTY_UNITS' ){
		alert("Vous n'avez pas choisi d'unités ...");
	} else if( response.trim() == 'EMPTY_SPACESHIP' ){
		alert("Il n'y a pas de vaisseaux ...");
	} else if( response.trim() == 'EMPTY_FLEET_INFO' ){
		alert("Aucune information sur la flotte reçue ...");
	} else if( response.trim() == 'NO_REQUIRED_BUILD' ){
		alert("Vous n'avez pas la construction requise pour créer une flotte ...");
	} else if( response.trim() == 'NOT_ENOUGH_UNITS' ){
		alert("Vous n'avez pas assez d'unités dans une classe pour former cette flotte ...");
	} else if( response.trim() == 'ERROR_UNITS' ){
		alert("Informations sur les unités erronées ...");
	} else if( response.trim() == 'EMPTY_ID' ){
		alert("ID Inconnu ...");
	} else if( response.trim() == 'UNEXIST_FLEET' ){
		alert("Cette flotte n'existe pas ...");
	} else if( response.trim() == 'OCCUPED_FLEET' ){
		alert("Cette flotte n'est pas sur la planète ...");
	} else {
		Xhr('page', 'game/build.php?place=' + response.trim(), 'exec_js();');
	}
}

function modif_team_callback(response){
	document.getElementById('submit_button').value = 'Modifier';
	
	if( response.trim() == 'SQL_ERROR' ){
		alert("Une erreur SQL a empéché l'execution de la requète ...");
	} else if( response.trim() == 'EMPTY_UNITS' ){
		alert("Vous n'avez pas choisi d'unités ...");
	} else if( response.trim() == 'EMPTY_SOLDIER' ){
		alert("Il n'y a pas de soldats ...");
	} else if( response.trim() == 'EMPTY_TEAM_INFO' ){
		alert("Aucune information sur l'équipe reçue ...");
	} else if( response.trim() == 'EMPTY_TEAM_NAME' ){
		alert("Vous n'avez pas choisi de nom pour votre équipe ...");
	} else if( response.trim() == 'NAME_ALREADY_USED' ){
		alert("Le nom d'équipe que vous avez choisi existe déjà ...");
	} else if( response.trim() == 'ERROR_MAX_TEAMS' ){
		alert("Vous avez déjà le nombre maximum d'équipes");
	} else if( response.trim() == 'NO_REQUIRED_BUILD' ){
		alert("Vous n'avez pas la construction requise pour créer une équipe ...");
	} else if( response.trim() == 'NOT_ENOUGH_UNITS' ){
		alert("Vous n'avez pas assez d'unités dans une classe pour former cette équipe ...");
	} else if( response.trim() == 'ERROR_UNITS' ){
		alert("Informations sur les unités erronées ...");
	} else if( response.trim() == 'EMPTY_ID' ){
		alert("ID Inconnu ...");
	} else if( response.trim() == 'UNEXIST_TEAM' ){
		alert("Cette équipe n'existe pas ...");
	} else if( response.trim() == 'OCCUPED_TEAM' ){
		alert("Cette équipe n'est pas sur la planète ...");
	} else {
		Xhr('page', 'game/build.php?place=' + response.trim(), 'exec_js();');
	}
}

function add_team_callback(response){
	document.getElementById('submit_button').value = 'Ajouter';
	
	if( response.trim() == 'SQL_ERROR' ){
		alert("Une erreur SQL a empéché l'execution de la requète ...");
	} else if( response.trim() == 'EMPTY_UNITS' ){
		alert("Vous n'avez pas choisi d'unités ...");
	} else if( response.trim() == 'EMPTY_SOLDIER' ){
		alert("Il n'y a pas de soldats ...");
	} else if( response.trim() == 'EMPTY_TEAM_INFO' ){
		alert("Aucune information sur l'équipe reçue ...");
	} else if( response.trim() == 'EMPTY_TEAM_NAME' ){
		alert("Vous n'avez pas choisi de nom pour votre équipe ...");
	} else if( response.trim() == 'NAME_ALREADY_USED' ){
		alert("Le nom d'équipe que vous avez choisi existe déjà ...");
	} else if( response.trim() == 'ERROR_MAX_TEAMS' ){
		alert("Vous avez déjà le nombre maximum d'équipes");
	} else if( response.trim() == 'NO_REQUIRED_BUILD' ){
		alert("Vous n'avez pas la construction requise pour créer une équipe ...");
	} else if( response.trim() == 'NOT_ENOUGH_UNITS' ){
		alert("Vous n'avez pas assez d'unités dans une classe pour former cette équipe ...");
	} else if( response.trim() == 'ERROR_UNITS' ){
		alert("Informations sur les unités erronées ...");
	} else {
		Xhr('page', 'game/build.php?place=' + response.trim(), 'exec_js();');
	}
}

function add_fleet(ptab){
	var nb = 0;
	var txt = '';
	var fleet_name = document.getElementById('fleet_name');
	
	for( var i=0;i<ptab.length;i++ ){
		nb += parseInt(document.getElementById('final_' + ptab[i]).innerHTML);
		txt += ( txt == '' ) ? ( ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) ) : ( ';' + ptab[i] + '=' + parseInt(document.getElementById('final_' + ptab[i]).innerHTML) );
	}
	
	if( nb > 0 ){
		if( fleet_name.value.trim() != '' ){
			document.getElementById('submit_button').value = 'Requête en cours ...';
			Xhr('', 'game/add_fleet_mysql.php?name=' + encode64(fleet_name.value.trim()) + '&fleet_info=' + encode64(txt), 'add_fleet_callback(X);');
		} else {
			alert("Vous devez choisir un nom pour votre équipe ...");
		}
	} else {
		alert("Vous devez commencer par choisir vos unités avant de pouvoir créer cette équipe ...");
	}
}

function add_fleet_callback(response){
	document.getElementById('submit_button').value = 'Ajouter';
	
	if( response.trim() == 'SQL_ERROR' ){
		alert("Une erreur SQL a empéché l'execution de la requète ...");
	} else if( response.trim() == 'EMPTY_UNITS' ){
		alert("Vous n'avez pas choisi de vaisseaux ...");
	} else if( response.trim() == 'EMPTY_SPACESHIP' ){
		alert("Il n'y a pas de vaisseaux ...");
	} else if( response.trim() == 'EMPTY_FLEET_INFO' ){
		alert("Aucune information sur la flotte reçue ...");
	} else if( response.trim() == 'EMPTY_FLEET_NAME' ){
		alert("Vous n'avez pas choisi de nom pour votre équipe ...");
	} else if( response.trim() == 'NAME_ALREADY_USED' ){
		alert("Le nom d'équipe que vous avez choisi existe déjà ...");
	} else if( response.trim() == 'ERROR_MAX_FLEETS' ){
		alert("Vous avez déjà le nombre maximum de flottes");
	} else if( response.trim() == 'NO_REQUIRED_BUILD' ){
		alert("Vous n'avez pas la construction requise pour créer une flotte ...");
	} else if( response.trim() == 'NOT_ENOUGH_UNITS' ){
		alert("Vous n'avez pas assez d'unités dans une classe pour former cette flotte ...");
	} else if( response.trim() == 'ERROR_UNITS' ){
		alert("Informations sur les vaisseaux erronées ...");
	} else if( response.trim() == 'BLOCKED' ){
		alert("Création des flottes bloqués par les administrateurs ...");
	} else {
		Xhr('page', 'game/build.php?place=' + response.trim(), 'exec_js();');
	}
}

function add_res_on_fleet(id){
	document.getElementById('submit_res').value = 'Demande en cours ...';
	var metaux = document.getElementById('metaux').value;
	var naquadah = document.getElementById('naquadah').value;
	var nourriture = document.getElementById('nourriture').value;
	if( is_numeric(metaux) && is_numeric(naquadah) && is_numeric(nourriture) ){
		metaux = parseInt(metaux);
		naquadah = parseInt(naquadah);
		nourriture = parseInt(nourriture);
		if( metaux == 0 && nourriture == 0 && naquadah == 0 ){
			document.getElementById('submit_res').value = 'Transporter ces ressources';
			alert('Vous devez choisir un nombre positif pour au moins une des ressources ...');
		} else {
			Xhr('', 'game/add_res_on_fleet.php?id=' + id + '&metaux=' + metaux + '&naquadah=' + naquadah + '&nourriture=' + nourriture, 'add_res_on_fleet_callback(X, ' + id + ');');
		}
	} else {
		document.getElementById('submit_res').value = 'Transporter ces ressources';
		alert('Vous devez rentrer des nombres dans les champs ressources ...');
	}
}

function add_res_on_fleet_callback(response, id){
	if( response == 'TRUE' ){
		alert('Transfert des ressources sur la flotte réussi !');
		Xhr('page', 'game/fleet_info.php?id=' + id, 'exec_js();');
	} else {
		document.getElementById('submit_res').value = 'Transporter ces ressources';
		if( response == 'UNKNOWN_ID' ){
			alert('ID Flotte inconnue ...');
		} else if( response == 'NOT_ENOUGH_RES' ){
			alert('Vous n\'avez pas assez de ressources ...');
		} else if( response == 'UNKNOWN_FLEET' ){
			alert('Flotte inconnue ...');
		} else if( response == 'TOO_MANY_RES' ){
			alert('Vous ne pouvez pas transporter toutes ces ressources car la capacité de cette flotte est insuffisante ....');
		} else if( response == 'UNDEFINED_RES' ){
			alert('Vous devez définir au moins une ressource ...');
		} else if( response == 'NOT_NEAR_PLANET' ){
			alert('Vous devez être à proximité de votre planète pour transférer des ressources sur votre flotte ...');
		}
	}
}

function file_res_on_planet(id, planet_id){
	document.getElementById('submit_res2').value = 'Demande en cours ...';
	var metaux = document.getElementById('metaux2').value;
	var naquadah = document.getElementById('naquadah2').value;
	var nourriture = document.getElementById('nourriture2').value;
	if( is_numeric(metaux) && is_numeric(naquadah) && is_numeric(nourriture) ){
		metaux = parseInt(metaux);
		naquadah = parseInt(naquadah);
		nourriture = parseInt(nourriture);
		if( metaux == 0 && nourriture == 0 && naquadah == 0 ){
			document.getElementById('submit_res2').value = 'Transférer ces ressources';
			alert('Vous devez choisir un nombre positif pour au moins une des ressources ...');
		} else {
			Xhr('', 'game/file_res_on_planet.php?planet_id=' + planet_id + '&id=' + id + '&metaux=' + metaux + '&naquadah=' + naquadah + '&nourriture=' + nourriture, 'file_res_on_planet_callback(X, ' + id + ');');
		}
	} else {
		document.getElementById('submit_res2').value = 'Transférer ces ressources';
		alert('Vous devez rentrer des nombres dans les champs ressources ...');
	}
}

function file_res_on_planet_callback(response, id){
	if( response == 'TRUE' ){
		alert('Transfert des ressources sur la planète réussi !');
		Xhr('page', 'game/fleet_info.php?id=' + id, 'exec_js();');
	} else {
		document.getElementById('submit_res2').value = 'Transférer ces ressources';
		if( response == 'UNKNOWN_ID' ){
			alert('ID Flotte inconnue ...');
		} else if( response == 'UNKNOWN_PLANET_ID' ){
			alert('ID Planète inconnue ...');
		} else if( response == 'NOT_EXIST_FLEET' ){
			alert('Flotte inconnue ...');
		} else if( response == 'TOO_MANY_RES' ){
			alert('Vous ne pouvez pas déposer plus de ressources que la flotte n\'en possède ....');
		} else if( response == 'FREE_PLANET_ID'){
			alert('Vous ne pouvez pas déposer de ressources sur une planète libre ...');
		} else if( response == 'NOT_NEAR_PLANET' ){
			alert('La flotte n\'est pas a proximité d\'une planète ...');
		} else if( response == 'SQL_ERROR' ){
			alert('Une erreur MySQL vient de se produire ...');
		} else if( response == 'UNDEFINED_RES' ){
			alert('Vous devez définir au moins une ressource ...');
		} else if( response == 'NOT_ENOUGH_RES_BACK' ){
			alert('Vous ne pouvez pas déposer la quantité de naquadah souhaitée car la quantité restante sera insuffisante pour que la flotte puisse rentrer sur votre planète ...');
		}
	}
}

function back_fleet(id, speed){
	Xhr('', 'game/fleet_back.php?id=' + id + '&speed=' + speed, 'back_fleet_callback(X, ' + id + ');');
}

function back_fleet_callback(response, id){
	if( response == 'TRUE' ){
		alert('La flotte se prépare pour retourner sur la planète !');
		Xhr('page', 'game/fleet_info.php?id=' + id, 'exec_js();');
	} else {
		if( response == 'UNKNOWN_ID' ){
			alert('ID Flotte inconnue ...');
		} else if( response == 'UNKNOWN_FLEET' ){
			alert('Flotte inconnue ...');
		} else if( response == 'NOT_NEAR_PLANET' ){
			alert('La flotte n\'est pas a proximité d\'une planète ...');
		} else if( response == 'SQL_ERROR' ){
			alert('Une erreur MySQL vient de se produire ...');
		} else if( response == 'UNKNOWN_SPEED' ){
			alert('Vitesse erronée ou non définie ...');
		} else if( response == 'NOT_ENOUGH_RES' ){
			alert('Vous n\'avez pas assez de naquadah pour rentrer à cette vitesse ...');
		}
	}
}

function del_fleet(id){
	Xhr('', 'game/del_fleet.php?id=' + id, 'del_fleet_callback(X);');
}

function del_fleet_callback(response){
	if( response == 'UNDEFINED_FLEET_ID' ){
		alert('ID Flotte indéfinie ...');
	} else if( response == 'UNKNOWN_FLEET_ID' ){
		alert('ID Flotte inconnue ...');
	} else if( response == 'OCCUPED_FLEET' ){
		alert('Dissolution impossible car la flotte est en action ...');
	} else if( response == 'SQL_ERROR' ){
		alert('Une erreur MySQL vient de se produire ...');
	} else {
		Xhr('page', 'game/build.php?place=' + response.trim(), 'exec_js();');
	}
}

function del_team(id){
	Xhr('', 'game/del_team.php?id=' + id, 'del_team_callback(X);');
}

function del_team_callback(response){
	if( response == 'UNDEFINED_TEAM_ID' ){
		alert('ID Equipe indéfinie ...');
	} else if( response == 'UNKNOWN_TEAM_ID' ){
		alert('ID Equipe inconnue ...');
	} else if( response == 'OCCUPED_TEAM' ){
		alert('Dissolution impossible car l\'équipe est en action ...');
	} else if( response == 'SQL_ERROR' ){
		alert('Une erreur MySQL vient de se produire ...');
	} else {
		Xhr('page', 'game/build.php?place=' + response.trim(), 'exec_js();');
	}
}

function update_speed(x, y, z){
	Xhr('info_speed', 'game/fleet_info_speed.php?id=' + document.getElementById('fleet_id').value + '&speed=' + document.getElementById('fleet_speed').value + '&x=' + x + '&y=' + y + '&gz=' + z, '');
}

function enable_iris(){
	document.getElementById('button_iris').innerHTML = 'Demande en cours ...';
	Xhr('', 'game/iris.php?type=enable', 'enable_iris_callback(X);');
}

function enable_iris_callback(response){
	if( response == 'TRUE' ){
		alert('L\'iris a été activée avec succès !');
		document.getElementById('button_iris').innerHTML = 'Désactiver l\'iris';
		document.getElementById('button_iris').onclick = new Function('disable_iris();');
		document.getElementById('gate_img').style.background = 'url(images/big_stargate_iris.png) no-repeat';
		document.getElementById('iris_status').style.background = '#38ff38';
		document.getElementById('iris_status').innerHTML = 'Iris activée';
	} else {
		document.getElementById('button_iris').innerHTML = 'Activer l\'iris';
		if( response == 'SQL_ERROR' ){
			alert('Erreur MySQL !');
		} else if( response == 'ALLREADY' ){
			alert('L\'iris est déjà activée ...');
		} else if( response == 'UNDEFINED' ){
			alert('Action sur l\'iris indéfinie ...');
		} else if( response == 'NO_BUILD' ){
			alert('Vous ne possèdez pas d\'iris ...');
		}
	}
}

function disable_iris(){
	document.getElementById('button_iris').innerHTML = 'Demande en cours ...';
	Xhr('', 'game/iris.php?type=disable', 'disable_iris_callback(X);');
}

function disable_iris_callback(response){
	if( response == 'TRUE' ){
		alert('L\'iris a été désactivée avec succès !');
		document.getElementById('button_iris').innerHTML = 'Activer l\'iris';
		document.getElementById('button_iris').onclick = new Function('enable_iris();');
		document.getElementById('gate_img').style.background = 'url(images/big_stargate.png) no-repeat';
		document.getElementById('iris_status').style.background = 'red';
		document.getElementById('iris_status').innerHTML = 'Iris désactivée';
	} else {
		document.getElementById('button_iris').innerHTML = 'Désactiver l\'iris';
		if( response == 'SQL_ERROR' ){
			alert('Erreur MySQL !');
		} else if( response == 'ALLREADY' ){
			alert('L\'iris est déjà inactive ...');
		} else if( response == 'UNDEFINED' ){
			alert('Action sur l\'iris indéfinie ...');
		} else if( response == 'NO_BUILD' ){
			alert('Vous ne possèdez pas d\'iris ...');
		} else if( response == 'IRIS_DELAY' ){
			alert('Vous ne pouvez pas désactiver l\'iris car le délai de désactivation de l\'iris après activation n\'est pas fini ...');
		}
	}
}

var keyStr = "ABCDEFGHIJKLMNOP" +

		   "QRSTUVWXYZabcdef" +

		   "ghijklmnopqrstuv" +

		   "wxyz0123456789+/" +

		   "=";

function encode64(input) {
 input = escape(input);
 
 var output = "";
 var chr1, chr2, chr3 = "";
 var enc1, enc2, enc3, enc4 = "";
 var i = 0;
	
 do {
	chr1 = input.charCodeAt(i++);
	chr2 = input.charCodeAt(i++);
	chr3 = input.charCodeAt(i++);
	
	enc1 = chr1 >> 2;
	enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
	enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
	enc4 = chr3 & 63;
	
	if (isNaN(chr2)) {
	   enc3 = enc4 = 64;
	} else if (isNaN(chr3)) {
	   enc4 = 64;
	}
	
	output = output +
	   keyStr.charAt(enc1) +
	   keyStr.charAt(enc2) +
	   keyStr.charAt(enc3) +
	   keyStr.charAt(enc4);
	
	chr1 = chr2 = chr3 = "";
	enc1 = enc2 = enc3 = enc4 = "";
 } while (i < input.length);
	
 return output;
}



function decode64(input) {
 var output = "";
 var chr1, chr2, chr3 = "";
 var enc1, enc2, enc3, enc4 = "";
 var i = 0;

 var base64test = /[^A-Za-z0-9\+\/\=]/g;
 
 if (base64test.exec(input)) {
	alert("There were invalid base64 characters in the input text.\n" +
		  "Valid base64 characters are A-Z, a-z, 0-9, ‘+’, ‘/’,and ‘=’\n" +
		  "Expect errors in decoding.");
 }
	
 input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
	
 do {
	enc1 = keyStr.indexOf(input.charAt(i++));
	enc2 = keyStr.indexOf(input.charAt(i++));
	enc3 = keyStr.indexOf(input.charAt(i++));
	enc4 = keyStr.indexOf(input.charAt(i++));
	
	chr1 = (enc1 << 2) | (enc2 >> 4);
	chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
	chr3 = ((enc3 & 3) << 6) | enc4;
	
	output = output + String.fromCharCode(chr1);
	
	if (enc3 != 64) {
	   output = output + String.fromCharCode(chr2);
	}
	
	if (enc4 != 64) {
	   output = output + String.fromCharCode(chr3);
	}
	
	chr1 = chr2 = chr3 = "";
	enc1 = enc2 = enc3 = enc4 = "";
 } while (i < input.length);
 
 return unescape(output);
}

function real_time_hour(){
	var today = new Date();
	var date_heure = "";
	h = today.getHours();
	m = today.getMinutes();
	s = today.getSeconds();

    if( h < 10 ){
		h = '0' + h;
	}
    
	if( m < 10 ){
		m = '0' + m;
	}
    
	if( s < 10 ){
		s = '0' + s;
	}
	
	date_heure = 'Heure : ' + h + ' h ' + m + ' m ' + s + ' s ';

	document.getElementById('real_time_hour').innerHTML = date_heure;
}

function radar_update(){
	Xhr3('radar', 'game/radar_infos.php', '');
	
	setTimeout('radar_update()', 60000);
}

function big_radar_update(){
	if( this.big_radar_activated == true ){
		clearInterval(this.big_radar_interval);
	}
	
	Xhr3('big_radar', 'game/big_radar_infos.php', 'show_detected();');
	this.big_radar_activated = true;
	this.big_radar_interval = setInterval("Xhr3('big_radar', 'game/big_radar_infos.php', 'show_detected();');", 10000);
}

function close_big_radar(){
	if( this.big_radar_activated == true ){
		clearInterval(this.big_radar_interval);
		this.big_radar_activated = false;
	}
}

function show_detected(){
	var data = unserialize(document.getElementById('content').innerHTML);
	var html = '<div style="overflow:auto;height:256px;"';
	html += '<table style="width:95%;border:1px solid #3da200;background:#041b00;font-size:8px;" cellpadding="0" cellspacing="0">';
	if( data['angle'] != '' ){
		for( var i=0;i<data['angle'].length;i++ ){
			html += '<tr><td style="border-right:1px solid #3da200;background:#' + data['color'][i] + ';width:10px;">&nbsp;</td><td style="padding:2px;border-right:1px solid #3da200;">' + ( ( trim(data['fleet_infos'][i]) != '' ) ? '<a onclick="Xhr(\'fleet_infos\', \'game/list_spaceships_by_infos.php?fleet_infos=' + data['fleet_infos'][i] + '\', \'exec_js();\');" style="cursor:pointer;">' : '' ) + data['fleet_name'][i] + ( ( trim(data['fleet_infos'][i]) != '' ) ? '</a>' : '' ) + '</td><td style="padding:2px;border-right:1px solid #3da200;"><a href="game.php?page=userinfo&id=' + data['atk_id'][i] + '">' + data['atk_name'][i] + '</a></td><td style="padding:2px;">' + data['time_arrived'][i]  + '</td></tr>';
		}
	}
	html += '</table></div>';
	document.getElementById('radar_list').innerHTML = html;
}

function get_planet_id(zone, posx, posy, type){
	if( trim(posx) != '' && trim(posy) != '' && trim(zone) != '' ){
		Xhr('', 'game/get_planet_id.php?zone=' + zone + '&posx=' + posx + '&posy=' + posy, 'get_planet_id_callback(X, \'' + type + '\');');
	} else {
		alert('Vous devez remplir tous les champs nécessaires ...');
	}
}

function get_planet_id_callback(response, type){
	if( response == 'FALSE' ){
		alert('Une erreur est survenue lors de la recherche ...');
	} else if( response == 'NOT_EXISTS' ){
		alert('Les coordonnées de cette planète n\'existe pas ...');
	} else {
		var id = parseInt(trim(response));
		
		if( type == 1 ){
			window.location = 'game.php?page=planet&id=' + id;
		} else if( type == 2 ){
			window.location = 'game.php?page=planet_actions&type=attack&id=' + id;
		} else if( type == 3 ){
			window.location = 'game.php?page=spy_actions&id=' + id;
		} else if( type == 4 ){
			window.location = 'game.php?page=planet_actions&type=discover&id=' + id;
		}
	}
}

function search_planet(query){
	if( trim(query) != '' ){
		if( trim(query).length >= 3 ){
			Xhr('planet_list', 'game/search_planet.php?query=' + query, '');
		} else {
			alert('Votre recherche doit comporter 3 caractères au minimun ...');
		}
	} else {
		alert('Vous devez entrer une recherche ...');
	}
}

function search_planet2(query){
	if( trim(query) != '' ){
		if( trim(query).length >= 3 ){
			Xhr('user_list', 'game/search_planet.php?query=' + query, '');
		} else {
			alert('Votre recherche doit comporter 3 caractères au minimun ...');
		}
	} else {
		alert('Vous devez entrer une recherche ...');
	}
}

function search_player(query){
	if( trim(query) != '' ){
		if( trim(query).length >= 3 ){
			Xhr('user_list', 'game/search_player.php?query=' + query, '');
		} else {
			alert('Votre recherche doit comporter 3 caractères au minimun ...');
		}
	} else {
		alert('Vous devez entrer une recherche ...');
	}
}

function search_commercial_player(query){
	if( trim(query) != '' ){
		if( trim(query).length >= 3 ){
			Xhr('user_list', 'game/search_commercial_player.php?query=' + query, '');
		} else {
			alert('Votre recherche doit comporter 3 caractères au minimun ...');
		}
	} else {
		alert('Vous devez entrer une recherche ...');
	}
}

function abort_help_team(id){
	Xhr('', 'game/abort_help_team.php?id=' + id, 'abort_help_team_callback(X);');
}

function abort_help_team_callback(response){
	if( response == 'TRUE' ){
		alert('L\'équipe a été rappelée avec succès ...');
		window.location = 'game.php';
	} else {
		if( response == 'UNDEFINED_TEAM_ID' ){
			alert('ID Equipe indéfinie ...');
		} else if( response == 'UNKNOWN_TEAM_ID' ){
			alert('ID Equipe inconnue ...');
		} else if( response == 'FREE_TEAM' ){
			alert('Cette équipe n\'est pas en soutient sur la planète ...');
		} else if( response == 'SQL_ERROR' ){
			alert('Une erreur MySQL vient de se produire ...');
		}
	}
}

function resu(class_id){
	if( class_id != '' ){
		Xhr('', 'game/resu.php?id=' + class_id, 'resu_callback(X);');
	}
}

function resu_callback(response){
	if( response == 'NO_REQUIRED_BUILD' ){
		alert("Vous ne possédez le bâtiment requis ...");
	} else if( response == 'ALREADY_IN_RESU' ){
		alert("La résurrection d'une classe de soldat est déjà en cours ...");
	} else if( response == 'CLASS_NO_EXIST' ){
		alert("Cette classe de soldat n'existe pas ...");
	} else if( response == 'NO_DEAD' ){
		alert("Aucun cadavre pour ce type de soldat ...");
	} else {
		alert("La résurrection va commencer !");
		Xhr('page', 'game/build.php?place=' + response.trim(), 'exec_js();');
	}
}

function tunnel_in_res(id){
	document.getElementById('submit_res2').value = 'Demande en cours ...';
	var metaux = document.getElementById('metaux').value;
	var naquadah = document.getElementById('naquadah').value;
	var nourriture = document.getElementById('nourriture').value;
	if( is_numeric(metaux) && is_numeric(naquadah) && is_numeric(nourriture) ){
		metaux = parseInt(metaux);
		naquadah = parseInt(naquadah);
		nourriture = parseInt(nourriture);
		if( metaux == 0 && nourriture == 0 && naquadah == 0 ){
			document.getElementById('submit_res2').value = 'Ajouter les res.';
			alert('Vous devez choisir un nombre positif pour au moins une des ressources ...');
		} else {
			Xhr('', 'game/tunnel_add_res.php?metaux=' + metaux + '&naquadah=' + naquadah + '&nourriture=' + nourriture, 'tunnel_in_res_callback(X);');
		}
	} else {
		document.getElementById('submit_res2').value = 'Ajouter les res.';
		alert('Vous devez rentrer des nombres dans les champs ressources ...');
	}
}

function tunnel_in_res_callback(response){
	if( response == 'NOT_ENOUGH_RES' ){
		alert('Vous n\'avez pas assez de ressources ...');
	} else if( response == 'UNDEFINED_RES' ){
		alert('Vous devez définir au moins une ressource ...');
	} else if( response == 'BUILD_REQUIRED' ){
		alert('Vous ne possédez pas les bâtiments requis ...');
	} else if( response == 'NOT_EXISTS' ){
		alert('Tunnel inexistant ...');
	} else if( response == 'NOT_ENOUGH_PLACE' ){
		alert('Vous n\'avez pas assez de place pour pouvoir stocker les ressources que vous souhaitez ...');
	} else {
		alert('Transfert des ressources dans le tunnel effectué !');
		Xhr('page', 'game/build.php?place=' + trim(response), 'exec_js();');
	}
	
	document.getElementById('submit_res2').value = 'Ajouter les res.';
}

function tunnel_out_res(id){
	document.getElementById('submit_res1').value = 'Demande en cours ...';
	var metaux = document.getElementById('metaux').value;
	var naquadah = document.getElementById('naquadah').value;
	var nourriture = document.getElementById('nourriture').value;
	if( is_numeric(metaux) && is_numeric(naquadah) && is_numeric(nourriture) ){
		metaux = parseInt(metaux);
		naquadah = parseInt(naquadah);
		nourriture = parseInt(nourriture);
		if( metaux == 0 && nourriture == 0 && naquadah == 0 ){
			document.getElementById('submit_res1').value = 'Retirer les res.';
			alert('Vous devez choisir un nombre positif pour au moins une des ressources ...');
		} else {
			Xhr('', 'game/tunnel_rm_res.php?metaux=' + metaux + '&naquadah=' + naquadah + '&nourriture=' + nourriture, 'tunnel_out_res_callback(X);');
		}
	} else {
		document.getElementById('submit_res1').value = 'Retirer les res.';
		alert('Vous devez rentrer des nombres dans les champs ressources ...');
	}
}

function tunnel_out_res_callback(response){
	if( response == 'NOT_ENOUGH_RES' ){
		alert('Vous n\'avez pas assez de ressources ...');
	} else if( response == 'UNDEFINED_RES' ){
		alert('Vous devez définir au moins une ressource ...');
	} else if( response == 'BUILD_REQUIRED' ){
		alert('Vous ne possédez pas les bâtiments requis ...');
	} else if( response == 'NOT_EXISTS' ){
		alert('Tunnel inexistant ...');
	} else if( response == 'NOT_ENOUGH_PLACE' ){
		alert('Vous n\'avez pas assez de place dans les bâtiments de stockage pour pouvoir retirer les ressources du tunnel que vous souhaitez ...');
	} else {
		alert('Retrait des ressources du le tunnel effectué !');
		Xhr('page', 'game/build.php?place=' + trim(response), 'exec_js();');
	}
	
	document.getElementById('submit_res1').value = 'Retirer les res.';
}

function tunnel_in_units(){
	document.getElementById('submit_res4').value = 'Demande en cours ...';
	var list_units = new Array();
	var total_units = 0;
	for( var i=1;i<=10;i++ ){
		if( document.getElementById('units_' + i) ){
			list_units[i] = parseInt(document.getElementById('units_' + i).value);
			total_units += parseInt(document.getElementById('units_' + i).value);
		}
	}
	
	if( total_units == 0 ){
		document.getElementById('submit_res4').value = 'Ajouter les unités';
		alert('Vous devez choisir un nombre positif pour au moins un des types d\'unités ...');
	} else {
		var txt2 = '';
		var i = 0;
		for( var k in list_units ){
			if( k <= 10 ){
				txt2 += ( i == 0 ) ? ( k + '=' + list_units[k] ) : ( ';' + k + '=' + list_units[k] );
				i++;
			}
		}
		
		var txt3 = encode64(txt2);
		
		Xhr('', 'game/tunnel_add_units.php?infos=' + txt3, 'tunnel_in_units_callback(X);');
	}
}

function tunnel_in_units_callback(response){
	if( response == 'NOT_ENOUGH_UNITS' ){
		alert('Vous n\'avez pas assez d\'unités ...');
	} else if( response == 'EMPTY_UNITS' ){
		alert('Choix d\'unités vide ...');
	} else if( response == 'UNDEFINED_UNITS' ){
		alert('Vous devez définir au moins un type d\'unité ...');
	} else if( response == 'BUILD_REQUIRED' ){
		alert('Vous ne possédez pas les bâtiments requis ...');
	} else if( response == 'NOT_ENOUGH_PLACE' ){
		alert('Vous n\'avez pas assez de place dans le tunnel pour transférer les soldats que vous souhaitez ...');
	} else {
		alert('Transfert des unités dans le tunnel effectué !');
		Xhr('page', 'game/build.php?place=' + trim(response), 'exec_js();');
	}
	
	document.getElementById('submit_res4').value = 'Ajouter les unités';
}

function tunnel_out_units(){
	document.getElementById('submit_res3').value = 'Demande en cours ...';
	var list_units = new Array();
	var total_units = 0;
	for( var i=1;i<=10;i++ ){
		if( document.getElementById('units_' + i) ){
			list_units[i] = parseInt(document.getElementById('units_' + i).value);
			total_units += parseInt(document.getElementById('units_' + i).value);
		}
	}
	
	if( total_units == 0 ){
		document.getElementById('submit_res3').value = 'Retirer les unités';
		alert('Vous devez choisir un nombre positif pour au moins un des types d\'unités ...');
	} else {
		var txt2 = '';
		var i = 0;
		for( var k in list_units ){
			if( k <= 10 ){
				txt2 += ( i == 0 ) ? ( k + '=' + list_units[k] ) : ( ';' + k + '=' + list_units[k] );
				i++;
			}
		}
		
		var txt3 = encode64(txt2);
		
		Xhr('', 'game/tunnel_rm_units.php?infos=' + txt3, 'tunnel_out_units_callback(X);');
	}
}

function tunnel_out_units_callback(response){
	if( response == 'NOT_ENOUGH_UNITS' ){
		alert('Vous n\'avez pas assez d\'unités ...');
	} else if( response == 'EMPTY_UNITS' ){
		alert('Choix d\'unités vide ...');
	} else if( response == 'NO_UNITS' ){
		alert('Il n\'y a pas d\'unités dans le tunnel ...');
	} else if( response == 'UNDEFINED_UNITS' ){
		alert('Vous devez définir au moins un type d\'unité ...');
	} else if( response == 'BUILD_REQUIRED' ){
		alert('Vous ne possédez pas les bâtiments requis ...');
	} else {
		alert('Transfert des unités en dehors du tunnel effectué !');
		Xhr('page', 'game/build.php?place=' + trim(response), 'exec_js();');
	}
	
	document.getElementById('submit_res3').value = 'Retirer les unités';
}

function load_planification(limit){
	Xhr('page', 'game/make_planification_list.php', 'exec_js();load_dragdrop(' + limit +');');
}

function exec_planification(){
	Xhr('', 'game/make_planification.php?list=' + encode64(document.plan_list), 'exec_planification_callback(X);');
}

function exec_planification_callback(response){
	if( response == 'FORBIDDEN_UNITS' ){
		alert('Une des unités de la liste ne peut pas être formée ...');
	} else if( response == 'UNKNOWN_UNITS' ){
		alert('Une des unités de la liste est inconnue ...');
	} else if( response == 'SQL_ERROR' ){
		alert('Erreur MySQL ...');
	} else if( response == 'NOT_REQUIRED_BUILD' ){
		alert('Vous ne possédez pas le bâtiment requis pour former des soldats ...');
	} else if( response == 'BUSY_FORMATION' ){
		alert('Pour lancer une liste de planification il ne doit pas y avoir de soldats en formation ...');
	} else if( response == 'NOT_ENOUGH_RES' ){
		alert('Vous n\'avez pas assez de ressources pour lancer cette liste de planification ...');
	} else if( response == 'EMPTY_LIST' ){
		alert('Votre liste est vide ...');
	} else if( response == 'TOO_MANY_LIST' ){
		alert('Votre liste est trop longue ...');
	} else {
		Xhr('page', 'game/build.php?place=' + response, 'exec_js();');
	}
}

function load_spaceships_planification(limit){
	Xhr('page', 'game/make_spaceships_planification_list.php', 'exec_js();load_dragdrop3(' + limit + ');');
}

function exec_spaceships_planification(){
	Xhr('', 'game/make_spaceships_planification.php?list=' + encode64(document.plan_list), 'exec_spaceships_planification_callback(X);');
}

function exec_spaceships_planification_callback(response){
	if( response == 'FORBIDDEN_UNITS' ){
		alert('Un des vaisseaux de la liste ne peut pas être construit ...');
	} else if( response == 'UNKNOWN_UNITS' ){
		alert('Un des vaisseaux de la liste est inconnu ...');
	} else if( response == 'SQL_ERROR' ){
		alert('Erreur MySQL ...');
	} else if( response == 'NOT_REQUIRED_BUILD' ){
		alert('Vous ne possédez pas le bâtiment requis pour construire des vaisseaux ...');
	} else if( response == 'BUSY_FORMATION' ){
		alert('Pour lancer une liste de planification il ne doit pas y avoir de vaisseaux en construction ...');
	} else if( response == 'NOT_ENOUGH_RES' ){
		alert('Vous n\'avez pas assez de ressources pour lancer cette liste de planification ...');
	} else if( response == 'EMPTY_LIST' ){
		alert('Votre liste est vide ...');
	} else if( response == 'TOO_MANY_LIST' ){
		alert('Votre liste est trop longue ...');
	} else {
		Xhr('page', 'game/build.php?place=' + response, 'exec_js();');
	}
}

function item_transfert(item_id, item_qt, equip_id){
	if( item_id != '' && item_qt != '' && equip_id != '' ){
		if( is_numeric(item_id) && is_numeric(item_qt) && is_numeric(equip_id) && parseInt(item_qt) > 0 ){
			Xhr('', 'game/apply_item_transfert.php?id=' + item_id + '&qt=' + item_qt + '&equip=' + equip_id, 'item_transfert_callback(X);');
		} else {
			alert('La quantité doit être un nombre positif !');
		}
	} else {
		alert('Vous devez remplir tous les champs !');
	}
}

function item_transfert_callback(response){
	if( response == 'UNDEFINED_VAR' ){
		alert('Vous devez remplir tous les champs !');
	} else if( response == 'UNACTIVED_INVENTORY' ){
		alert('Votre inventaire n\'a pas été activé !');
	} else if( response == 'EMPTY_INVENTORY' ){
		alert('Votre inventaire est vide ...');
	} else if( response == 'UNEXIST_ITEM' ){
		alert('Cet objet n\'existe pas ...');
	} else if( response == 'NOTENOUGH_ITEM' ){
		alert('Vous n\'avez pas assez d\'examplaires de cet objet ...');
	} else if( response == 'UNKNOWN_TEAM' ){
		alert('Cette équipe n\'existe pas ...');
	} else if( response == 'OCCUPED_TEAM' ){
		alert('Cette équipe n\'est pas sur la planète ...');
	} else if( response == 'UPDATE_INVENTORY_ERROR' ){
		alert('Une erreur a empéché la mise à jour de l\'inventaire ...');
	} else if( response == 'UPDATE_TEAM_INVENTORY_ERROR' ){
		alert('Une erreur a empéché la mise à jour de l\'inventaire de l\'équipe ...');
	} else if( response == 'BUILD_REQUIRED' ){
		alert('Vous ne possédez pas le C.E.L.E.A ...');
	} else if( response == 'MAX_CAPACITY' ){
		alert('La capacité de votre inventaire est insuffisante pour transférer ces objets ...');
	} else {
		Xhr('page', 'game/build.php?place=' + response, 'exec_js();');
	}
}

function item_team_transfert(item_id, item_qt, equip_id){
	if( item_id != '' && item_qt != '' && equip_id != '' ){
		if( is_numeric(item_id) && is_numeric(item_qt) && is_numeric(equip_id) && parseInt(item_qt) > 0 ){
			Xhr('', 'game/apply_item_team_transfert.php?id=' + item_id + '&qt=' + item_qt + '&equip=' + equip_id, 'item_team_transfert_callback(X);');
		} else {
			alert('La quantité doit être un nombre positif !');
		}
	} else {
		alert('Vous devez remplir tous les champs !');
	}
}

function item_team_transfert_callback(response){
	if( response == 'UNDEFINED_VAR' ){
		alert('Vous devez remplir tous les champs !');
	} else if( response == 'UNACTIVED_INVENTORY' ){
		alert('Votre inventaire n\'a pas été activé !');
	} else if( response == 'UNEXIST_ITEM' ){
		alert('Cet objet n\'existe pas ...');
	} else if( response == 'NOTENOUGH_ITEM' ){
		alert('Vous n\'avez pas assez d\'examplaires de cet objet ...');
	} else if( response == 'UNKNOWN_TEAM' ){
		alert('Cette équipe n\'existe pas ...');
	} else if( response == 'OCCUPED_TEAM' ){
		alert('Cette équipe n\'est pas sur la planète ...');
	} else if( response == 'UPDATE_INVENTORY_ERROR' ){
		alert('Une erreur a empéché la mise à jour de l\'inventaire ...');
	} else if( response == 'UPDATE_TEAM_INVENTORY_ERROR' ){
		alert('Une erreur a empéché la mise à jour de l\'inventaire de l\'équipe ...');
	} else if( response == 'BUILD_REQUIRED' ){
		alert('Vous ne possédez pas le C.E.L.E.A ...');
	} else {
		Xhr('page', 'game/team_info.php?id=' + response, 'exec_js();');
	}
}

function fleet_unit_transfert_to_planet(unit_id, unit_qt, fleet_id){
	if( is_numeric(unit_id) && is_numeric(unit_qt) && is_numeric(fleet_id) ){
		if( unit_qt > 0 ){
			Xhr('', 'game/unit_fleet_to_planet.php?id=' + unit_id + '&qt=' + unit_qt + '&fleet_id=' + fleet_id, 'fleet_unit_transfert_to_planet_callback(X);');
		} else {
			alert("Le nombre d'unités que vous souhaitez transférer doit être un nombre positif ...");
		}
	} else {
		alert("Valeurs numériques attendues ...");
	}
}

function fleet_unit_transfert_to_planet_callback(response){
	if( response == 'UNDEFINED_VAR' ){
		alert("Unité non définie ...");
	} else if( response == 'UNEXISTS_UNIT' ){
		alert("Cette unité n'existe pas ...");
	} else if( response == 'UNEXISTS_FLEET' ){
		alert('Cette flotte n\'existe pas ...');
	} else if( response == 'EMPTY_UNITS' ){
		alert('Vous n\'avez pas d\'unités disponibles ...');
	} else if( response == 'NOT_ENOUGH_UNITS' ){
		alert('Vous n\'avez pas assez d\'unités ...');
	} else if( response == 'SQL_DEL_ERROR' ){
		alert('Erreur MySQL Lors du transfert des unités ...');
	} else if( response == 'MAX_CAPACITY' ){
		alert("La capacité de votre flotte est arrivé au maximum ...");
	} else if( response == 'FLEET_NOT_IN_PLANET' ){
		alert("La flotte n'est pas sur la planète ....");
	} else {
		Xhr('page', 'game/fleet_info.php?id=' + response, 'exec_js();');
	}
}

function fleet_unit_transfert_to_fleet(unit_id, unit_qt, fleet_id){
	if( is_numeric(unit_id) && is_numeric(unit_qt) && is_numeric(fleet_id) ){
		if( unit_qt > 0 ){
			Xhr('', 'game/unit_planet_to_fleet.php?id=' + unit_id + '&qt=' + unit_qt + '&fleet_id=' + fleet_id, 'fleet_unit_transfert_to_fleet_callback(X);');
		} else {
			alert("Le nombre d'unités que vous souhaitez transférer doit être un nombre positif ...");
		}
	} else {
		alert("Valeurs numériques attendues ...");
	}
}

function fleet_unit_transfert_to_fleet_callback(response){
	if( response == 'UNDEFINED_VAR' ){
		alert("Unité non définie ...");
	} else if( response == 'UNEXISTS_UNIT' ){
		alert("Cette unité n'existe pas ...");
	} else if( response == 'UNEXISTS_FLEET' ){
		alert('Cette flotte n\'existe pas ...');
	} else if( response == 'EMPTY_UNITS' ){
		alert('Vous n\'avez pas d\'unités disponibles ...');
	} else if( response == 'NOT_ENOUGH_UNITS' ){
		alert('Vous n\'avez pas assez d\'unités ...');
	} else if( response == 'SQL_DEL_ERROR' ){
		alert('Erreur MySQL Lors du transfert des unités ...');
	} else if( response == 'MAX_CAPACITY' ){
		alert("La capacité de votre flotte est arrivé au maximum ...");
	} else if( response == 'FLEET_NOT_IN_PLANET' ){
		alert("La flotte n'est pas sur la planète ....");
	} else {
		Xhr('page', 'game/fleet_info.php?id=' + response, 'exec_js();');
	}
}

function get_premium_account(type){
	if( type == 1 ){
		if( confirm('Souhaitez vous obtenir le compte Premium pour une durée de 1 semaine ?') ){
			Xhr('', 'game/get_premium_account.php?type=' + type, 'get_premium_account_callback(X);');
		}
	} else if( type == 2 ){
		if( confirm('Souhaitez vous obtenir le compte Premium pour une durée de 2 semaine ?') ){
			Xhr('', 'game/get_premium_account.php?type=' + type, 'get_premium_account_callback(X);');
		}
	}
}

function get_premium_account_callback(response){
	if( response == 'TRUE' ){
		alert('Votre compte standard vient de passer en compte Premium, nous vous remercions de soutenir financièrement le serveur !');
		window.location = 'game.php?page=bonus';
	} else {
		if( response == 'UNKNOWN_TYPE' ){
			alert('Type de compte Premium inconnu ...');
		} else if( response == 'NOT_ENOUGH_CRISTAUX' ){
			alert('Vous n\'avez pas assez de cristaux ...');
		} else if( response == 'INVENTORY_UPDATE_ERROR' ){
			alert('Erreur de mise à jour de votre inventaire, veuillez recommencer ...');
		} else if( response == 'ADD_BONUS_ERROR' ){
			alert('Vous possédez déjà le compte Premium ...');
		}
	}
}

function activate_holidays_mode(){
	Xhr('', 'game/activate_holidays_mode_mysql.php', 'activate_holidays_mode_callback(X);');
}

function activate_holidays_mode_callback(response){
	if( response == 'TRUE' ){
		alert('Votre compte est maintenant en mode Vacances !');
		window.location = 'game.php';
	} else {
		if( response == 'SQL_ERROR' ){
			alert('Erreur MySQL, veuillez contacter l\'administrateur ...');
		} else if( response == 'ALREADY_HOLIDAYS_MODE' ){
			alert('Vous êtes déjà en mode vacances ...');
		} else if( response == 'CURRENT_SPACESHIP' ){
			alert('Vous ne pouvez pas activer le mode vacances, vous avez des vaisseaux en construction ...');
		} else if( response == 'CURRENT_UNIT' ){
			alert('Vous ne pouvez pas activer le mode vacances, vous avez des vaisseaux en formation ...');
		} else if( response == 'CURRENT_RESEARCH' ){
			alert('Vous ne pouvez pas activer le mode vacances, vous avez des technologies en cours de recherche ...');
		} else if( response == 'CURRENT_BUILD' ){
			alert('Vous ne pouvez pas activer le mode vacances, vous avez des bâtiments en construction ...');
		} else if( response == 'CURRENT_ACTION' ){
			alert('Vous ne pouvez pas activer le mode vacances, toutes vos troupes et flottes doivent être sur votre planète ...');
		}
	}
}

function get_temp_bonus(id){
	Xhr('', 'game/get_temp_bonus.php?id=' + parseInt(id), 'get_temp_bonus_callback(X);');
}

function get_temp_bonus_callback(response){
	if( response == 'TRUE' ){
		alert('Ce bonus est maintenant activé !');
		window.location = 'game.php?page=bonus';
	} else {
		if( response == 'NOT_ENOUGH_CRISTAUX' ){
			alert('Vous n\'avez pas assez de cristaux ...');
		} else if( response == 'INVENTORY_UPDATE_ERROR' ){
			alert('Erreur de mise à jour de votre inventaire, veuillez recommencer ...');
		} else if( response == 'ADD_BONUS_ERROR' ){
			alert('Ce bonus est déjà activé ...');
		} else if( response == 'EMPTY_ID' ){
			alert('ID Bonus indéfinie ...');
		} else if( response == 'UNKNOWN_ID' ){
			alert('ID Bonus inconnue ...');
		}
	}
}

function load_dragdrop(limit){
	var drop = $('cart');
	var dropFx = drop.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
	document.max = limit;
	document.count = 0;
	document.plan_list = new Array();
	document.i = 0;
	$$('.item').each(function(item){
	 
		item.addEvent('mousedown', function(e) {
			e = new Event(e).stop();
	 
			var clone = this.clone()
				.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
				.setStyles({'opacity': 0.7, 'position': 'absolute'})
				.addEvent('emptydrop', function() {
					this.remove();
					drop.removeEvents();
				}).inject(document.body);
	 
			drop.addEvents({
				'drop': function() {
					drop.removeEvents();
					clone.remove();
					if( document.count < document.max ){
						item.clone().inject(drop);
						document.count++;
						document.getElementById('bar_img').style.width = Math.round( ( document.count / document.max ) * 100 ) + '%';
						document.getElementById('bar_img').innerHTML = Math.round( ( document.count / document.max ) * 100 ) + ' %';
						dropFx.start('555555').chain(dropFx.start.pass('#252525', dropFx));
						document.plan_list[document.i] = item.id;
						document.i++;
					} else {
						alert('La liste de planification est déjà pleine !');
					}
				},
				'over': function() {
					dropFx.start('555555');
				},
				'leave': function() {
					dropFx.start('252525');
				}
			});
	 
			var drag = clone.makeDraggable({
				droppables: [drop]
			}); // this returns the dragged element
	 
			drag.start(e); // start the event manual
		});
	 
	});
}

function load_dragdrop3(limit){
	var drop = $('cart');
	var dropFx = drop.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
	document.max = limit;
	document.count = 0;
	document.plan_list = new Array();
	document.i = 0;
	$$('.item').each(function(item){
	 
		item.addEvent('mousedown', function(e) {
			e = new Event(e).stop();
	 
			var clone = this.clone()
				.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
				.setStyles({'opacity': 0.7, 'position': 'absolute'})
				.addEvent('emptydrop', function() {
					this.remove();
					drop.removeEvents();
				}).inject(document.body);
	 
			drop.addEvents({
				'drop': function() {
					drop.removeEvents();
					clone.remove();
					if( document.count < document.max ){
						item.clone().inject(drop);
						document.count++;
						document.getElementById('bar_img').style.width = Math.round( ( document.count / document.max ) * 100 ) + '%';
						document.getElementById('bar_img').innerHTML = Math.round( ( document.count / document.max ) * 100 ) + ' %';
						dropFx.start('555555').chain(dropFx.start.pass('#252525', dropFx));
						document.plan_list[document.i] = item.id;
						document.i++;
					} else {
						alert('La liste de planification est déjà pleine !');
					}
				},
				'over': function() {
					dropFx.start('555555');
				},
				'leave': function() {
					dropFx.start('252525');
				}
			});
	 
			var drag = clone.makeDraggable({
				droppables: [drop]
			}); // this returns the dragged element
	 
			drag.start(e); // start the event manual
		});
	 
	});
}

function load_dragdrop2(){
	var drop = $('cart');
	var dropFx = drop.effect('background-color', {wait: false}); // wait is needed so that to toggle the effect,
	document.item_list = new Array();
	document.i = 0;
	$$('.item').each(function(item){
	 
		item.addEvent('mousedown', function(e) {
			e = new Event(e).stop();
	 
			var clone = this.clone()
				.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
				.setStyles({'opacity': 0.7, 'position': 'absolute'})
				.addEvent('emptydrop', function() {
					this.remove();
					drop.removeEvents();
				}).inject(document.body);
	 
			drop.addEvents({
				'drop': function() {
					var total = parseInt(item.innerHTML);
					if( total > 0 ){
						var nb = window.prompt("Quel quantité de cet item souhaitez vous déplacer ?", parseInt(item.innerHTML));
						if( nb != null && parseInt(nb) != 0 ){
							var nb2 = parseInt(nb);
							
							if( nb2 <= total ){
								drop.removeEvents();
								clone.remove();
								item.innerHTML = nb2;
								item.clone().inject(drop);
								document.item_list[document.i] = nb2;
								item.innerHTML = total - nb2;
								document.i++;
							} else {
								alert("Vous ne pouvez pas déplacer plus d'items que vous n'en possédez ...");
							}
						}
					} else {
						drop.removeEvents();
						clone.remove();
					}
				},
				'over': function() {
					dropFx.start('555555');
				},
				'leave': function() {
					dropFx.start('252525');
				}
			});
	 
			var drag = clone.makeDraggable({
				droppables: [drop]
			}); // this returns the dragged element
	 
			drag.start(e); // start the event manual
		});
	 
	});
}

function signal_mp(id){
	Xhr('', 'game/signal_mp.php?id=' + id, 'signal_mp_callback(X);');
}

function signal_mp_callback(response){
	if( response == 'TRUE' ){
		alert('Ce message a été signalé aux modérateurs du jeu avec succès !');
	} else {
		alert('Ce message n\'a pas pu être signalé ...');
	}
}

function abort_techno(id, nb){
	if( confirm('Êtes-vous sûr de vouloir annuler cette technologie ?') ){ 
		Xhr('', 'game/abort_research.php?id=' + id + '&nb=' + nb, '');
		setTimeout("window.location = 'game.php';", 500);
	}
}

setInterval("real_time_hour()", 1000);

window.addEvent(load_type, function(){
	this.fx_style_planet_info = new Fx.Style(document.getElementById('planet_info'), 'opacity', {duration: 200, wait: false}).set(0);
	this.fx_style_planet_coord = new Fx.Style(document.getElementById('planet_stargate_coord'), 'opacity', {duration: 200, wait: false}).set(0);
	this.fx_style_planet_ranking = new Fx.Style(document.getElementById('owner_ranking'), 'opacity', {duration: 200, wait: false}).set(0);
});