// C  O  N  F  I  G 
//
// ROOT
var root = 'http://dedimania.com/SITE/';

// VARABLES GLOBALES
var histo_content = new Array(20);
for(i=0;i<20;i++){
	histo_content[i] = "";
}
var histo_index	  = 0;

var maniaUpdate   = 0;

var pageCourante = "pageHome";

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Fonction qui permet la compatibilité avec les différents browsers pour la recherche par id
 */
function GetElementById(id) {
	if(document.layers) return document.layersid;
	if(document.all && !document.getElementById) return document.allid;
	if(document.all && document.getElementById) return document.getElementById(id);
	if(!document.all && document.getElementById) return document.getElementById(id);
}

/*
function redim() {
	ok=0;
	if (document.all) {
   document.body.scrollLeft=2;
   if ((document.body.scrollLeft>0) && (ww<(screen.width-step))) {
      ww+=step;
      self.window.resizeTo(ww,hh);
      ok=1;
   }
   document.body.scrollTop=2;
   if (document.body.scrollTop>0) {
      hh+=step;
      self.window.resizeTo(ww,hh);
      ok=1;
   }
   if (ok==1) {setTimeout('redim();',10)};
}
}
*/


// Code DHTML pour ajuster la hauteur
// d'une iframe suivant son contenu

function hautIE( obj , obj2, plus){
	alert("ok");
	window.scrollTo(0, 10000);
	alert(document.getElementById(obj).document.documentElement.scrollTop);
    var h = document.getElementById(obj).document.documentElement.clientHeight+document.getElementById(obj).document.documentElement.scrollTop;
    document.getElementById(obj).style.height = h + 25 + "px";
    document.getElementById(obj2).style.height = plus + h + 25 + "px";
}

// Fonction javascript:
function haut( obj , obj2, plus){
  if (navigator.appName=="Microsoft Internet Explorer") {
	setTimeout("hautIE('"+obj+"' , '"+obj2+"', "+plus+")",2000);
  } else {
    var h = document.getElementById(obj).contentDocument.documentElement.clientHeight;
    document.getElementById(obj).style.height = h + 25 + "px";
    document.getElementById(obj2).style.height = plus + h + 25 + "px";
  }
/*  
var h;
  // calcul de la hauteur du contenu suivant le navigateur:
  if (document.documentElement.clientHeight) {

	  
	  window.scrollTo(0, 10000);
	  alert(document.getElementById(obj).document.documentElement.scrollTop);
      h = 2*document.getElementById(obj).document.documentElement.clientHeight+document.getElementById(obj).document.documentElement.scrollTop;
	  //document.getElementById(obj).document.documentElement.clientHeight + document.getElementById(obj).document.documentElement.scrollHeight;
    } else {
      h = document.getElementById(obj).contentDocument.documentElement.clientHeight;
    }
    
  }
  if (typeof(window.innerHeight)=='number') {
    h = document.getElementById(obj).contentDocument.body.innerHeight;

  }
    
  if (document.body.clientHeight && navigator.appName!="Microsoft Internet Explorer") 
    h = document.getElementById(obj).contentDocument.body.clientHeight;
    
  // Ajustement de la hauteur de frame:
  document.getElementById(obj).style.height = h + 25 + "px";
  document.getElementById(obj2).style.height = plus + h + 25 + "px";
*/
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * gestion de l'historique
 */
function historique(action,arg) {
 	if(action == 'Next') {
		if(histo_index < 19){
			if(histo_content[histo_index] != "") {
				var act = "internalLink('"+histo_content[histo_index]+"')";
				histo_index = histo_index+1;
				setTimeout(act,1);
			}
		}
	}
	if(action == 'Previous') {
		if(histo_index > 1) {
			var act = "internalLink('"+histo_content[histo_index-2]+"')";
			histo_index = histo_index-1;
			setTimeout(act,1);
		}
	}
	
	if(action == 'New') {
		if(histo_index<19){
			histo_content[histo_index] = arg;
			for(i=histo_index+1;i<20;i++){
				histo_content[i] = "";
			}
			histo_index++;
		} else {
			for(i=0;i<19;i++) histo_content[i] = histo_content[i+1];
			histo_content[19]=arg;
			histo_index=19;
		}
	}
	
	if(action == 'Refresh'){
		var act = "internalLink('"+histo_content[histo_index-1]+"')";
		setTimeout(act,1);
	}	
	
	if(action == 'Debug'){
		alert(histo_index);
		alert(histo_content.toString());
	}
	 histo_button();
 }
 
////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Gere les bouton historiqueq
 */ 

 /*
GetElementById("histo_previous").src 	= "images/histo_previous.gif";
GetElementById("histo_next").src 		= "images/histo_next.gif";
*/
function histo_button() {
	if(histo_index < 19 && histo_content[histo_index] != "")
		GetElementById("histo_next").src = "images/histo_next.gif";
	else
		GetElementById("histo_next").src = "images/histo_next2.gif";

	if(histo_index > 1 && histo_content[histo_index-2] != "")
		GetElementById("histo_previous").src = "images/histo_previous.gif";
	else
		GetElementById("histo_previous").src = "images/histo_previous2.gif";
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Permet de mettre un code sur chaque sous page du site
 */ 
function internalLink(code) {
	var type 	= code.substr(0,6);
	var arg		= code.substr(7);
	
	switch(type) {
		// Player Id
		case "player":
			refresh_data('_view_player_info'+arg);
			break;

		// Challenge Id
		case "chllge":
			refresh_data('_view_challenge_info'+arg);
			break;
		
		// Server Id
		case "server":
			refresh_data('_view_server_info'+arg);
			break;
			
		case "p_find":
			refresh_data('_search_player'+arg);
			break;

		case "c_find":
			refresh_data('_search_challenge'+arg);
			break;

		case "s_find":
			refresh_data('_search_server'+arg);
			break;						
	}
}
 
////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Réactualise la liste des servers
 */
function refresh_data(action)
{
	var isSearchInternalLink = false;
	var isViewInternalLink = false;
	var data = "";

	if(action.substr(0,7) == "_search") {
		isSearchInternalLink = true;
		action = action.substr(1);
	}
	if(action.substr(0,5) == "_view") {
		isViewInternalLink = true;
		action = action.substr(1);
	}
	
	var page = 'ajax/ajax.home.php';
	var servlist = "";

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	
	if(!isSearchInternalLink) {
		var data = 'search_type='+action;
		// S E R V E R
		var server_game 	= GetElementById("server_game").value;					data += "&server_game="+server_game;
		var server_name		= GetElementById("server_name").value;					data += "&server_name="+server_name;
		//var host 			= document.getElementById("server_host").value;
		var mode			= GetElementById("server_mode").value;					data += "&mode="+mode;
		//var country			= document.getElementById("server_country").value;
		//var environment		= document.getElementById("server_environment").value;
		var server_private	= (GetElementById("server_private").checked)?"1":"0"; 	data += "&server_private="+server_private;
		
		// P L A Y E R
		var player_game		= GetElementById("player_game").value;					data += "&player_game="+player_game;
		var player_name 	= GetElementById("player_name").value;					data += "&player_name="+player_name;
		var player_login 	= GetElementById("player_login").value;					data += "&player_login="+player_login;
		var player_status 	= (GetElementById("player_status").checked)?"1":"0";	data += "&player_status="+player_status;
		var player_isColor	= (GetElementById("player_isColor").checked)?"1":"0";	data += "&player_isColor="+player_isColor;
		
		// C H A L L E N G E
		var challenge_env	= GetElementById("challenge_env").value;				data += "&challenge_env="+challenge_env;
		var challenge_name	= GetElementById("challenge_name").value;				data += "&challenge_name="+challenge_name;
		var author_login	= GetElementById("author_login").value;					data += "&author_login="+author_login;
		var challenge_isColor=(GetElementById("challenge_isColor").checked)?"1":"0";data += "&challenge_isColor="+challenge_isColor;
		
		// C O M M O N
		if(action.substr(0,4)!='view') {
			if(GetElementById("server_search").style.display!='none') 				action = 'search_server';
			if(GetElementById("player_search").style.display!='none') 				action = 'search_player';
			if(GetElementById("challenge_search").style.display!='none')			action = 'search_challenge';
		} else {
			if(action.substr(0,16)=='view_player_info') {
				var player_id 	= action.substr(16);								data += "&player_id="+player_id;
				action = 'view_player_info';
				if(!isViewInternalLink)	historique('New','player:'+player_id);
			} else if(action.substr(0,19)=='view_challenge_info') {
				var challenge_id = action.substr(19);								data += "&challenge_id="+challenge_id;
				action = 'view_challenge_info';
				if(!isViewInternalLink)	historique('New','chllge:'+challenge_id);
			} else if(action.substr(0,16)=='view_server_info') {
				var server_id = action.substr(16);									data += "&server_id="+server_id;
				action = 'view_server_info';
				if(!isViewInternalLink)	historique('New','server:'+server_id);
			}
		}
		data += "&action="+action;	
		var compteur		= GetElementById("getCompteur").value;					data += "&compteur="+compteur;
		var total_page		= GetElementById("getTotalPage").value;					data += "&total_page="+total_page;
	} else {
		if(action.substr(0,13)=='search_player') {
			var arg = action.substr(13);
			//historique('Display','p_find:'+arg);
			action = 'search_player';
			var data = 'action='+action;
			data += '&search_type=update';
			var args 	= arg.split("|");
			data += "&compteur="+args[0];
			data += "&player_game="+args[1];
			data += "&player_name="+args[2];
			data += "&player_login="+args[3];
			data += "&player_status="+args[4];
			data += "&player_isColor="+args[5];
			
			GetElementById("player_game").value = args[1];
			GetElementById("player_name").value = args[2];
			GetElementById("player_login").value = args[3];
			GetElementById("player_status").checked = args[4]==1;
			GetElementById("player_isColor").checked = args[5]==1;
			server_player_challenge('player');
			refresh_onglet('search','1','click','2','3');
		}

		if(action.substr(0,16)=='search_challenge') {
			var arg = action.substr(16);
			//historique('Display','c_find:'+arg);
			action = 'search_challenge';
			var data = 'action='+action;
			data += '&search_type=update';
			var args 	= arg.split("|");
			data += "&compteur="+args[0];
			data += "&challenge_env="+args[1];
			data += "&challenge_name="+args[2];
			data += "&author_login="+args[3];
			data += "&challenge_isColor="+args[4];
			
			GetElementById("challenge_env").value = args[1];
			GetElementById("challenge_name").value = args[2];
			GetElementById("author_login").value = args[3];
			GetElementById("challenge_isColor").checked = args[4]==1;
			server_player_challenge('challenge');
			refresh_onglet('search','1','click','3','3');
		}
		
		if(action.substr(0,13)=='search_server') {
			var arg = action.substr(13);
			//historique('Display','s_find:'+arg);
			action = 'search_server';
			var data = 'action='+action;
			data += '&search_type=update';
			var args 	= arg.split("|");
			data += "&compteur="+args[0];
			data += "&server_game="+args[1];
			data += "&server_name="+args[2];
			data += "&mode="+args[3];
		
			GetElementById("server_game").value = args[1];
			GetElementById("server_name").value = args[2];
			GetElementById("server_mode").value = args[3];
			server_player_challenge('server');
			refresh_onglet('search','1','click','1','3');			
		}
	}

	//définition de l'endroit d'affichage:
	content_nbserver 		= GetElementById("nbserver");
	content_compteur 		= GetElementById("compteur");
	content_serverlist		= GetElementById("server_list");
	content_result_info		= GetElementById("result_info");
	content_result_search	= GetElementById("result_search");
	
	//message loading
	if(action=='new') {
		content_nbserver.innerHTML 		= "<b>Loading...</b>";
		content_compteur.innerHTML 		= "";
		content_serverlist.innerHTML 	= "";
		
	} else {
		content_nbserver.innerHTML 		= "<b>Loading...</b>";
	}

	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);

	//separateur dans la reponse
	var separator = "<!-- separator -->";

	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				if(action.substr(0,4)=='view') {
					content_result_info.innerHTML = XhrObj.responseText;
					content_result_search.style.display = 'none';
					content_result_info.style.display = '';
				} else {
					var res = XhrObj.responseText.split(separator);
					content_nbserver.innerHTML 		= res[0];
					content_compteur.innerHTML 		= res[1];
					servlist = res[2];
					content_serverlist.innerHTML 	= servlist;
					content_result_info.style.display = 'none';
					content_result_search.style.display = '';
				}
				if(!isSearchInternalLink){
					compteur = GetElementById("getCompteur").value;
					if(action=='search_player')
						historique('New','p_find:'+compteur+'|'+player_game+'|'+player_name+'|'+player_login+'|'+player_status+'|'+player_isColor);
					if(action=='search_server')
						historique('New','s_find:'+compteur+'|'+server_game+'|'+server_name+'|'+mode);
					if(action=='search_challenge')
						historique('New','c_find:'+compteur+'|'+challenge_env+'|'+challenge_name+'|'+author_login+'|'+challenge_isColor);
				}
				if(action=='search_player') {
						maniaUpdate   = (new Date()).getMilliseconds();
						setManiaStar(0,20,maniaUpdate);
				}
		}
	}

	// bloque ??????
	//data+="&userLogin="+GetElementById('login').value;
	
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	XhrObj.send(data);
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Affiche les maniastar apres la liste des joueurs soit affiché
 */
function setManiaStar(i,j,date) {
	if(i>j || maniaUpdate != date) return;
	var gamePlayer = GetElementById("gamePlayer"+i).value;
	var loginPlayer = GetElementById("loginPlayer"+i).value;
	var data = "game="+gamePlayer+"&login="+loginPlayer;
	
	var page = "./script/maniastar.php";

	//Verification si une popup existe;
	
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
			
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
					if(maniaUpdate == date) {
						if(XhrObj.responseText != "")
							GetElementById("maniastar"+i).innerHTML = XhrObj.responseText;
						setManiaStar(i+1,j,date);
					}
		}
	}
	
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');;
	XhrObj.send(data);
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Ouvre dans une popup la page indiqué en argument (tpl)
 */
function open_topic(topic) {
	window.location.replace(topic);
	return;
	/*
	var data = "tpl=pageForum&topic="+encodeURIComponent(topic);
	var page = "./ajax/ajax.menu.php";

	//Verification si une popup existe;
	
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	//définition de l'endroit d'affichage:
	var content = document.getElementByTag("html");
	content.innerHTML = "Loading...";
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
			//GetElementById('mainDiv').style.height = "1410px";
			content.innerHTML=XhrObj.responseText;
		
		}
	}
	
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');;
	XhrObj.send(data);
	*/
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Ouvre dans une popup la page indiqué en argument (tpl)
 */
function open_menu_page(tpl) {
	pageCourante = tpl;
	var data = "tpl="+tpl;

	var page = "./ajax/ajax.menu.php";

	//Verification si une popup existe;
	
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	//définition de l'endroit d'affichage:
	var content = GetElementById('mainContent');
	content.innerHTML = "Loading...";
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
			GetElementById('mainDiv').style.height = "1500px";
			content.innerHTML=XhrObj.responseText;
		}
	}
	
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');;
	XhrObj.send(data);
}


var oldContent = "";

function setOldContent() {
	GetElementById('mainContent').innerHTML = oldContent;
	oldContent = "";
	GetElementById('table_chatters').innerHTML = "";
    oldChatterList = new Array();
}


function affichePoll(id) {
	var data = "page="+encodeURIComponent('http://dedimania.com/SITE/stats/poll2.php?id='+id)
	var page = "./ajax/ajax.base.php";

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	//définition de l'endroit d'affichage:
	var content = GetElementById('mainContent');
	oldContent = content.innerHTML;
	content.innerHTML = "Loading...";
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
			content.innerHTML=XhrObj.responseText;
		}
	}
	
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');;
	XhrObj.send(data);
}

function afficheFight(l1,l2) {
	var data = "page="+encodeURIComponent('http://dedimania.com/SITE/stats/battle2.php?login1='+l1+'&login2='+l2)
	var page = "./ajax/ajax.base.php";
	
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	//définition de l'endroit d'affichage:
	var content = GetElementById('mainContent');
	oldContent = content.innerHTML;
	content.innerHTML = "Loading...";
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
			content.innerHTML=XhrObj.responseText;
		}
	}
	
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');;
	XhrObj.send(data);
}
////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////

// If NS -- that is, !IE -- then set up for mouse capture
if (!document.all) document.captureEvents(Event.MOUSEMOVE)

// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;

// variables to hold mouse x-y pos.s
var mouseX = 0
var mouseY = 0

// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
  if (document.all) { // grab the x-y pos.s if browser is IE
    mouseX = event.clientX + document.body.scrollLeft
    mouseY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    mouseX = e.pageX
    mouseY = e.pageY
  }  
  // catch possible negative values in NS4
  if (mouseX < 0){mouseX = 0}
  if (mouseY < 0){mouseY = 0}  
  return true
}



/**
 * Ouvre dans une popup la page indiqué en argument (tpl)
 */
function open_popup(id, tpl) {
	if(tpl=='popup.controller') {
		var ip = GetElementById('serverip').value;
		var port = GetElementById('serverport').value;
		var AuthLogin 	= GetElementById('AuthLogin').value;
		var AuthPass 	= GetElementById('AuthPass').value;
		id = ip+":"+port;
		var data = "id="+id+"&tpl="+tpl+"&ip="+ip+"&port="+port+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;
	} else {
		var data = "id="+id+"&tpl="+tpl;
	}
	
	if(GetElementById(id)== null && GetElementById("isopen"+id) == null)
	{
		var page = "./ajax/ajax.popup.php";
	
		//Verification si une popup existe;
		
		if (window.ActiveXObject)
		{
			//Internet Explorer
			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else
		{
			var XhrObj = new XMLHttpRequest();
		}
		//définition de l'endroit d'affichage:
		if(GetElementById(id) == null)
			var popup_container = GetElementById('popup_container');
		else
			var popup_container = GetElementById(id);
			
		//Ouverture du fichier en methode POST
		XhrObj.open("POST", page);
		
		//Ok pour la page cible
		XhrObj.onreadystatechange = function()
		{
			if (XhrObj.readyState == 4 && XhrObj.status == 200)
			{
						var type = "div";
						var noeud_element = document.createElement(type);
						noeud_element.style.position="absolute";
						noeud_element.style.top=""+mouseY+"px";
						noeud_element.innerHTML=XhrObj.responseText;//appendChild(noeud_texte);
						noeud_element.id="popup"+id;
						//content_chat.appendChild(noeud_element);
						popup_container.appendChild(noeud_element);
						//popup_container.innerHTML += XhrObj.responseText;
			}
		}
		
		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');;
		XhrObj.send(data);
	}
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Ferme une popup
 */
function close_popup(id) {
	//content	= GetElementById(id);
	//content.innerHTML = '';
	var popup_container = GetElementById('popup_container');
	var popup_old = GetElementById("popup"+id);
	popup_container.removeChild(popup_old);
}



////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Rafraichissement des styles des onglets
 */
function refresh_onglet(id,type,action,currOnglet,totOnglet)
{
	var ongletid	= "onglet"+id+currOnglet;
	var element 	= GetElementById(ongletid);
	
	if(action=='mouseover' && element.style.backgroundImage.search('images/onglet_select')==-1)
	{
		if(type==0)	element.style.backgroundImage='url(./images/onglet_rollover.gif)';
		else		element.style.backgroundImage='url(./images/onglet_rollover2.gif)';
	}
	
	if(action=='mouseout' && element.style.backgroundImage.search('images/onglet_rollover')!=-1)
	{
		if(type==0) element.style.backgroundImage='url(./images/onglet_out.gif)';
		else		element.style.backgroundImage='url(./images/onglet_out2.gif)';
	}
	
	if(action=='click' && element.style.backgroundImage.search('images/onglet_select')==-1)
	{
		for(i=1;i<=totOnglet;i++)
		{
			ongletid = "onglet"+id+i;
			onglet = GetElementById(ongletid);
			if(type==0) {
				if(onglet.style.backgroundImage=='url(./images/onglet_select.gif)')
					onglet.style.backgroundImage='url(./images/onglet_out.gif)';
			} else {
				if(onglet.style.backgroundImage=='url(./images/onglet_select2.gif)')
					onglet.style.backgroundImage='url(./images/onglet_out2.gif)';
			}
		}
		if(type==0) element.style.backgroundImage='url(./images/onglet_select.gif)';
		else		element.style.backgroundImage='url(./images/onglet_select2.gif)';
	}
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Gestion page onglet pour les recherches de servers
 */
function server_player_challenge(page)
{
	content_server		= GetElementById("server_search");
	content_player		= GetElementById("player_search");
	content_challenge	= GetElementById("challenge_search");

	if(page=='server')
	{
		content_challenge.style.display = 'none';
		content_player.style.display = 'none';		
		content_server.style.display = '';
		
	} else if(page=='player') {
		content_challenge.style.display = 'none';
		content_server.style.display = 'none';
		content_player.style.display = '';
				
	} else {
		content_server.style.display = 'none';
		content_player.style.display = 'none';		
		content_challenge.style.display = '';
	}
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Gestion page onglet pour server controm panel
 */
function admin_panel(page)
{
	content_list					= 	GetElementById("admin_list");
	content_add_choose_method		= 	GetElementById("admin_add_choose_method");
	content_add_ip					=	GetElementById("admin_add_ip");
	content_add_login				=	GetElementById("admin_add_login");
	content_tm_proto				=	GetElementById("dltmproto");

	if(page=='list')
	{
		content_add.style.display = 'none';		
		content_list.style.display = '';
	}else{
		content_list.style.display = 'none';
		content_add_ip.style.display = 'none';
		content_add_login.style.display = 'none';		
		content_add_choose_method.style.display = '';
		content_tm_proto.style.display = '';
	}
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Affiche la page donné en argument a l'endroit indiqué par 'id'
 */
function controller_display_page(id, tpl)
{
	var game 			= GetElementById("game"+id).value;
	var serverip 		= GetElementById("ip"+id).value;
	var serverport 	 	= GetElementById("port"+id).value;
	var AuthLogin		= GetElementById("AuthLogin"+id).value;	
	var AuthPass		= GetElementById("AuthPass"+id).value;	
	var data	 		= "game="+game+"&id="+id+"&tpl="+tpl+"&ip="+serverip+"&port="+serverport+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;
	var page 			= "./ajax/ajax.popup.php";

	GetElementById("tpl"+id).value = tpl;	

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:
	content	= GetElementById("controller_container"+id);	
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				content.innerHTML = XhrObj.responseText.toString(); 
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	content.innerHTML = "<div align='left'>&nbsp;&nbsp;&nbsp;<b>Loading...</b></div><br><br><br><br><br><br>";
	XhrObj.send(data);
}



/*
		  S  E  A  R  C  H      A  J  A  X
*/

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/*
function refresh_data(action)
{
	var data = 'action=search&search_type='+action;
	var page = 'ajax/ajax.home.php';
	var servlist = "";

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	var name 			= GetElementById("server_name").value;
	//var host 			= document.getElementById("server_host").value;
	//var mode			= document.getElementById("server_mode").value;
	//var country			= document.getElementById("server_country").value;
	//var environment		= document.getElementById("server_environment").value;
	//var private			= document.getElementById("server_private").checked;
	var compteur		= GetElementById("getCompteur").value;
	var total_page		= GetElementById("getTotalPage").value;
	
	//définition de l'endroit d'affichage:
	content_nbserver 	= GetElementById("nbserver");
	content_compteur 	= GetElementById("compteur");
	content_serverlist	= GetElementById("server_list");

	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);

	//separateur dans la reponse
	var separator = "<!-- separator -->";
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				var res = XhrObj.responseText.split(separator);
				content_nbserver.innerHTML 		= res[0];
				content_compteur.innerHTML 		= res[1];
				servlist = res[2];
				//if(servlist.length == 1) servlist = "No server listed";
				content_serverlist.innerHTML 	= servlist;
		}
	}
	
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data+"&total_page="+total_page+"&compteur="+compteur+"&name="+name);
}
*/

/*
		 C  O  N  T  R  O  L  L  E  R 
*/


function startController(typeconnection,tryconnection) {
	var isBasic 	= GetElementById("ctrl_"+typeconnection+"_basic").checked;
	var isOnyx 		= GetElementById("ctrl_"+typeconnection+"_onyx").checked;
	var isTmweb 	= GetElementById("ctrl_"+typeconnection+"_tmweb").checked;
	var isRemotecp 	= GetElementById("ctrl_"+typeconnection+"_remotecp").checked;
	
	if(tryconnection==false) {
		if(isBasic||isOnyx||isTmweb||isRemotecp) {
			tryConnection(typeconnection);
		} else {
			if(typeconnection == 'ip') {
				content	= GetElementById("tryConnectionReport");
			} else {
				content	= GetElementById("tryConnectionReport2");
			}
			content.innerHTML = "<font color='#FF0000'>Choose a controller</font>";
			setTimeout("content.innerHTML = '&nbsp;'",3000);
		}
		return;
	} else {
		if(isBasic) window.open('http://www.dndnetworks.com/onyx/controller/Basic/index.php?NAME=&PORT='+GetElementById('serverport').value+'&IP='+GetElementById('serverip').value+'&authLogin='+GetElementById('AuthLogin').value+'&authPassword='+GetElementById('AuthPass').value,'','left=20,top=20,width=900,height=600,toolbar=0,resizable=1,scrollbars=1');
		//else if(isOnyx) open_popup('', 'popup.controller');
		else if(isOnyx) window.open('http://www.dndnetworks.com/onyx/controller/OnyxController/index.php?NAME=&PORT='+document.getElementById('serverport').value+'&IP='+document.getElementById('serverip').value+'&authLogin='+document.getElementById('AuthLogin').value+'&authPassword='+document.getElementById('AuthPass').value,'','left=20,top=20,width=900,height=600,toolbar=0,resizable=1,scrollbars=1');
		else if(isTmweb) window.open('http://www.dndnetworks.com/onyx/controller/TMWeb/index.php?NAME=&PORT='+GetElementById('serverport').value+'&IP='+GetElementById('serverip').value+'&authLogin='+GetElementById('AuthLogin').value+'&authPassword='+GetElementById('AuthPass').value,'','left=20,top=20,width=1000,height=600,toolbar=0,resizable=1,scrollbars=1');
		else if(isRemotecp) window.open('http://www.dndnetworks.com/onyx/controller/RemoteCP2/index.php?NAME=&PORT='+GetElementById('serverport').value+'&IP='+GetElementById('serverip').value+'&authLogin='+GetElementById('AuthLogin').value+'&authPassword='+GetElementById('AuthPass').value,'','left=20,top=20,width=900,height=600,toolbar=0,resizable=1,scrollbars=1');

		//Stats sur l'utilisation des controllers
		if(isBasic) statsController('Basic');
		else if(isOnyx) statsController('Onyx');
		else if(isTmweb) statsController('Tmweb');
		else if(isRemotecp) statsController('Remotecp');
	}		
}

function tryConnection(typeconnection) {
	if(typeconnection == "login"){
		var nadeoLogin		= GetElementById('dedimaniaServerLogin').value;
		var nadeoPassword	= GetElementById('dedimaniaServerPass').value;
		var authLogin		= GetElementById('dedimaniaAuthLogin').value;
		var authPassword	= GetElementById('dedimaniaAuthPass').value;
		
		var data = "Login="+nadeoLogin+"&Password="+nadeoPassword;
		var page = 'utils/getIpFromNadeoAccount.php';
	
		if (window.ActiveXObject)
		{
			//Internet Explorer
			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}
		else
		{
			var XhrObj = new XMLHttpRequest();
		}
	
		//définition de l'endroit d'affichage:
		content 	= GetElementById("tryConnectionReport");
	
		//Ouverture du fichier en methode POST
		XhrObj.open("POST", page);
	
		//Ok pour la page cible
		XhrObj.onreadystatechange = function()
		{
			if (XhrObj.readyState == 4 && XhrObj.status == 200)
			{
					var res = XhrObj.responseText.split("|");
					GetElementById('serverip').value = res[0];
					GetElementById('serverport').value = res[1];
					if(res[1]=="443"||res[1]=="873"||res[1]=="2086"||res[1]=="2087"||res[1]=="2089"||res[1]=="3306")
						trycon(res[0],res[1],authLogin,authPassword,'login');
					else
						window.open('xmlrpchelp.htm','xmlrpc','location=0,status=0,scrollbars=0,width=350,height=450');
			}
		}
		
		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XhrObj.send(data);
		
	} else {
		var ip			 	= GetElementById('serverip').value;
		var port 			= GetElementById('serverport').value;
		var authLogin		= GetElementById('AuthLogin').value;
		var authPassword	= GetElementById('AuthPass').value;
		trycon(ip, port, authLogin, authPassword,'ip');
	}
}

function trycon(ip, port, authLogin, authPassword,typeconnection) {
	var data = "ip="+ip+"&port="+port+"&AuthLogin="+authLogin+"&AuthPass="+authPassword;
	var page = 'utils/tryconnection.php';

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:
	if(typeconnection=='ip')
		content 	= GetElementById("tryConnectionReport");
	else
		content 	= GetElementById("tryConnectionReport2");

	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);

	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				var res = XhrObj.responseText;
				if(res=="tryconnection_Success") {
					content.innerHTML = "<font color='#00CC00'>Controller is opening...</font>";
					setTimeout("content.innerHTML = '&nbsp;'",3000);
					startController(typeconnection,true);
				} else {
					content.innerHTML = "<font color='#FF0000'>"+res+"</font>";
					setTimeout("content.innerHTML = '&nbsp;'",3000);
				}
				
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}


function statsController(controller) {
	var data = "controller="+controller;
	var page = 'stats/stats.controller.php';

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:

	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);

	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{

		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}


function statsTool(toolid) {
	var data = "toolid="+toolid;
	var page = 'stats/stats.tool.php';

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:

	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);

	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{

		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}


function statsPoll(pollid) {
	var data = "pollid="+pollid;
	var page = 'stats/stats.poll.php';

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:

	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);

	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{

		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}

function statsGeneral(variable) {
	var data = "variable="+variable;
	var page = 'stats/stats.general.php';

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:

	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);

	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{

		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}
////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Fonction qui gère les différentes actions réalisable par le controlleur
 */
function ctrl(action,serverid)
{
	var data;
	var page;
	
	var _action;
	var _callback = "";

	//définition de l'endroit d'affichage:
	var Login = "";
	var Password = "";
	if(null!= GetElementById('ip'+serverid))		var ip			= GetElementById('ip'+serverid).value;
	if(null!= GetElementById('port'+serverid))		var port		= GetElementById('port'+serverid).value;
	if(null!= GetElementById('AuthLogin'+serverid)) var authlogin	= GetElementById('AuthLogin'+serverid).value;
	if(null!= GetElementById('AuthPass'+serverid)) 	var authpass	= GetElementById('AuthPass'+serverid).value;
	if(null!= GetElementById('NadeoLogin'+serverid)) 	Login		= GetElementById('NadeoLogin'+serverid).value;
	if(null!= GetElementById('NadeoPassword'+serverid)) 	Password= GetElementById('NadeoPassword'+serverid).value;

	if(action == "StartStopServer") {
		var isLan 		= GetElementById("isLan"+serverid).checked;
		var button		= GetElementById("ButtonStartStop"+serverid);
		var isRunning 	= 0;
		if(button.src.search('next') != -1) isRunning = 1;
		if(button.src.search('stop') != -1) isRunning = 2;
		if(isRunning==1) {
			if(isLan) {
				ctrl('StartServerLan',serverid);
			} else {
				ctrl('StartServerInternet',serverid);
			}
			button.src = "images/next.gif";
		}
		if(isRunning == 2) {
			ctrl('StopServer',serverid);
			//action='StopServer';
			button.src = root+"images/stop.gif";
		}
		return;
	}
	
	if(action=='StartServerLan'||action=='StartServerInternet'||action=='StopServer' || action=='NextChallenge' || action=='ChallengeRestart' || action=='PreviousChallenge')
	{
		_action = action;
		if(action=='ChallengeRestart'){
			GetElementById('buttonRestart'+serverid).src = "images/reload.gif";
		}
		if(action=='NextChallenge'){
			GetElementById('buttonNext'+serverid).src = "images/next.gif";
		}
		if(action=='PreviousChallenge'){
			GetElementById('buttonPrevious'+serverid).src = "images/previous.gif";
		}
		data = "action="+action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&Login="+Login+"&Password="+Password;
		page = "./utils/nadeo.control.php";
	}
	
	
	if(action=='SetServerOptions')
	{
		var name			= GetElementById("name"+serverid).value;
		var playerpass		= GetElementById("playerpass"+serverid).value;
		var specpass 		= GetElementById("specpass"+serverid).value;
		var maxplayer 		= GetElementById("maxplayer"+serverid).value;
		var maxspec 		= GetElementById("maxspec"+serverid).value;
		var comment 		= GetElementById("comment"+serverid).value;
		var p2pdown 		= GetElementById("p2pdown"+serverid).checked;
		var p2pup 			= GetElementById("p2pup"+serverid).checked;
		var timeout 		= GetElementById("timeout"+serverid).value;
		var ratio 			= GetElementById("ratio"+serverid).value;
		var trackdown 		= GetElementById("trackdown"+serverid).checked;
		var ladder 			= GetElementById("ladder"+serverid).selectedIndex;//GetElementById(""+serverid);

		data = "action="+action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		if(p2pup) {data += "&IsP2PUpload=1";}// else {data += "&IsP2PUpload=0";}
		if(p2pdown) {data += "&IsP2PDownload=1";}// else {data += "&IsP2PDownload=0";}
		if(trackdown) {data += "&AllowChallengeDownload=1";}// else {data += "&AllowChallengeDownload=0";}
		data += "&ServerName="+name;
		data += "&ServerComment="+comment;
		data += "&ServerPassword="+playerpass;
		data += "&SpectatorPassword="+specpass;
		data += "&NextMaxPlayers="+maxplayer;
		data += "&NextMaxSpectators="+maxspec;
		data += "&NextLadderMode="+ladder;
		data += "&NextVehicleNetQuality="+"high";
		data += "&NextCallVoteTimeOut="+timeout;
		data += "&CallVoteRatio="+ratio;
		data += "&NextLadderMode="+ladder;

		page = "./utils/nadeo.control.php";
	}
	
	if(action=='SetGameInfos')
	{
		var GameMode 					= GetElementById("mode"+serverid).selectedIndex;
		var ChatTime 					= GetElementById("chattime"+serverid).value;
		var RoundsPointsLimit 			= GetElementById("roundpointlimit"+serverid).value;
		var TimeAttackLimit 			= GetElementById("talimit"+serverid).value;
		var TimeAttackSynchStartPeriod	= GetElementById("tasync"+serverid).value;
		var TeamPointsLimit				= GetElementById("teamlimit"+serverid).value;
		var TeamMaxPoints 				= GetElementById("teammax"+serverid).value;
		var LapsNbLaps 					= GetElementById("lapsnb"+serverid).value;
		var LapsTimeLimit 				= GetElementById("lapslimit"+serverid).value;
		var RoundsUseNewRules 			= GetElementById("roundalt"+serverid).checked;
		var TeamUseNewRules 			= GetElementById("teamalt"+serverid).checked;

		data = "action="+action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		if(RoundsUseNewRules) data += "&NextRoundsUseNewRules=true";
		if(TeamUseNewRules) data += "&NextTeamUseNewRules=true";
		data+= "&Game="+GetElementById("game"+serverid).value;

		data += "&NextGameMode="+GameMode;
		data += "&NextChatTime="+ChatTime;
		data += "&NextRoundsPointsLimit="+RoundsPointsLimit;
		data += "&NextTimeAttackLimit="+TimeAttackLimit;
		data += "&NextTimeAttackSynchStartPeriod="+TimeAttackSynchStartPeriod;
		data += "&NextTeamPointsLimit="+TeamPointsLimit;
		data += "&NextTeamMaxPoints="+TeamMaxPoints;
		data += "&NextLapsNbLaps="+LapsNbLaps;
		data += "&NextLapsTimeLimit="+LapsTimeLimit;

		page = "./utils/nadeo.control.php";
	}

	if(action.substr(0,4)=='Kick')
	{
		var n			= action.substr(4,action.length-4);
		var PlayerLogin = GetElementById("player"+serverid+n).value;
		data = "action="+action.substr(0,4)+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&PlayerLogin="+PlayerLogin;
		
		page = "./utils/nadeo.control.php";
		//setTimeout("controller_display_page('"+serverid+"', 'controller.players')",500);
	}
	
	if(action.substr(0,3)=='Ban')
	{
		var n			= action.substr(3,action.length-3);
		var PlayerLogin = GetElementById("player"+serverid+n).value;
		data = "action="+action.substr(0,3)+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&PlayerLogin="+PlayerLogin;
		
		page = "./utils/nadeo.control.php";
		//setTimeout("controller_display_page('"+serverid+"', 'controller.players')",500);
	}
	
	if(action.substr(0,15)=='ChatSendToLogin')
	{
		var messageid		= action.substr(15,action.length-15);
		var Login 			= GetElementById("player"+messageid).value;
		var ChatText	 	= GetElementById("message_text"+messageid).value;
		data = "action=ChatSendToLogin"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&Login="+Login+"&ChatText="+ChatText;
		
		page = "./utils/nadeo.control.php";
		//setTimeout("controller_display_page('"+serverid+"', 'controller.players')",500);
	}

	if(action.substr(0,15)=='RemoveChallenge')
	{
		_action = 'RemoveChallenge';		
		var ChallengeId				= action.substr(15,action.length-15);
		var ChallengeFileName		= GetElementById("challenge_filename"+ChallengeId).value;
		var pos						= GetElementById("challenge_list_position"+serverid).value;
		//var n						= GetElementById("challenge_index"+serverid).value;
		data = "action=RemoveChallenge"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ChallengeFileName="+ChallengeFileName;
		
		page = "./utils/nadeo.control.php";
	}
	
	if(action.substr(0,19)=='ChooseNextChallenge')
	{
		_action = 'ChooseNextChallenge';
		var ChallengeFileName		= action.substr(19,action.length-19);
		//var pos						= GetElementById("challenge_list_position"+serverid).value;
		data = "action=ChooseNextChallenge"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ChallengeFileName="+ChallengeFileName;
		page = "./utils/nadeo.control.php";
	}

	if(action == 'RemoveAllChallenges'|| action == 'RandomizeChallengeList')
	{
		_action = action;
		GetElementById('server_playlist'+serverid).innerHTML="<b>Loading...</b>";
		data = "action="+action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		//alert(action);
		page = "./utils/nadeo.control.php";
	}

	if(action.substr(0,12) == 'AddChallenge' && action.substr(0,22) != 'AddChallengeToBookmark' && action.substr(0,16) != 'AddChallengeFrom')
	{
		_action = 'AddChallenge';

		var CallBackT 	= action.substr(12,action.length-12).split(",");
		var ChallengeURLEncoded = encodeURIComponent(CallBackT[0]);
		var _data 		= CallBackT[CallBackT.length-1];
		var CallBack = "";
		if(CallBackT.length > 0) CallBack=CallBackT[0];
		
		data = "action="+"AddChallenge"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += _data;//"&ChallengeFileName="+ChallengeFileName;
		page = "./utils/nadeo.control.php";
	}

	if(action == 'AddChallengeFromHD') {
		var ChallengeUrl = GetElementById('ChallengeUrl'+serverid).value;
		ctrl('AddChallengeToBookmark'+ChallengeUrl,serverid);
		return;
	}

	if(action.substr(0,19) == 'AddChallengeFromTMX') {
		var ChallengeUrl 	= action.substr(19);
		var ChallengeId		= serverid+encodeURIComponent(ChallengeUrl);
		
		GetElementById('ActionChallenge'+GetElementById('ChallengeUrlToID'+ChallengeId).value).innerHTML = "...";
		ctrl('AddChallengeToBookmark'+ChallengeUrl,serverid);
		return;
	}

	if(action.substr(0,22) == 'AddChallengeToBookmark')
	{
		var _action 		= 'AddChallengeToBookmark';
		var content			= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex 	= content.options.selectedIndex;
		var CurrentPage 	= GetElementById("tpl"+serverid).value;
		if(CurrentPage == "controller.addchallengesHD") BookmarkIndex = 0;
		var BookmarkId 		= content.options[BookmarkIndex].value;

		var ChallengeId 	= action.substr(22,action.length-22);
		if(BookmarkId == -1) {
			ctrl('DownloadChallenge'+ChallengeId,serverid);
		} else {
			bookmark('AddChallenge'+ChallengeId,serverid);
		}
		return;
	}

	if(action.substr(0,17) == 'DownloadChallenge')
	{
		_action = 'DownloadChallenge';
		var ChallengeInfo = action.substr(17,action.length-17).split(",");
		var ChallengeUrl = ChallengeInfo[ChallengeInfo.length-1];
		var CallBack = "";
		if(ChallengeInfo.length > 0) CallBack=ChallengeInfo[0]+",";
		GetFileNameFromUrl(ChallengeUrl,'StartDownloadChallenge'+CallBack,serverid);
		return;
	}

	if(action.substr(0,22) == 'StartDownloadChallenge')
	{
		_action = 'DownloadChallenge';
		
		var CallBackT 	= action.substr(22,action.length-22).split(",");
		var _data 		= CallBackT[CallBackT.length-1];
		var CallBack = "";
		if(CallBackT.length > 0) CallBack=CallBackT[0]+",";
				
		data = "action="+"DownloadChallenge"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += _data;
		page = "./utils/nadeo.control.php";
	}
	
	if(action.substr(0,16) == 'DownloadBookmark') {
		_action = 'DownloadBookmark';
		var BookmarkId 				= action.substr(16,action.length-16);
		var BookmarkDatabaseId 		= GetElementById("bookmark_database_id"+BookmarkId).value;

		//Bookmark de destination
		var content					= GetElementById("bookmark_select"+serverid);
		var BookmarkDestIndex 		= content.options.selectedIndex;
		var BookmarkDestId 			= content.options[BookmarkDestIndex].value;
		
		if(BookmarkDestId==-1) {
			GetElementById('ProgressBarDisplay'+BookmarkId).innerHTML="<font color='#FF0000'><b>0%</b></font>";
			bookmark('GetListUrl'+BookmarkId+","+BookmarkDatabaseId,serverid);
		} else {

			bookmark('CopyBookmark'+BookmarkId,serverid);
		}
		return;
	}
	
	if(action.substr(0,21) == 'StartDownloadBookmark') {
		_action = 'StartDownloadBookmark';

		var BookmarkListUrl 		= action.substr(21,action.length-21);
		//alert('BookmarkListUrl='+BookmarkListUrl);
		var BookmarkListUrlTable 	= BookmarkListUrl.split(',');
		//alert('BookmarkListUrlTable='+BookmarkListUrlTable);
		var BookmarkDatabaseNb 		= BookmarkListUrlTable.length;
		var RealBookmarkDBNb 		= BookmarkListUrlTable.length-1;
		//alert('BookmarkDatabaseNb='+BookmarkDatabaseNb);
			
		for(i=1;i<BookmarkDatabaseNb;i=i+1) {
			ctrl('AddChallengeToBookmark'+BookmarkListUrlTable[0]+"_-_"+RealBookmarkDBNb+","+BookmarkListUrlTable[i],serverid);
		}
		return;
	}
	
	if(action.substr(0,14) == 'ActivateScript') {
		_action = 'ActivateScript';
		var ScriptId 	= action.substr(14,action.length-14);
		var ScriptPath 	= unescape(GetElementById("script_fullname"+ScriptId).value);
		content = GetElementById('status_script_img'+ScriptId);
		if(content != null) content.src = "<img src='./images/download_process.gif'>";
		data = "action="+"ActivateScript"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ScriptPath="+escape(ScriptPath);
		//alert(data);
		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'ModifyScriptArgumentsNextStep') {
		_action = 'ModifyScriptArgumentsNextStep';
		var isActivated = (GetElementById("isActivated"+serverid).value)=='1';
		var args = GetElementById("ScriptArgs"+serverid).value;
		if(args == "") {
			var ScriptPath 	= GetElementById("ScriptUrl"+serverid).value;	
		} else {
			var ScriptPath 	= GetElementById("ScriptUrl"+serverid).value+"?args="+args;	
		}
		data = "action="+"AddScript"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ScriptPath="+ScriptPath;

		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'ModifyScriptArgumentsNextStep2') {
		_action = 'ModifyScriptArgumentsNextStep2';
		var args = GetElementById("ScriptArgs"+serverid).value;
		if(args == "") {
			var ScriptPath 	= GetElementById("ScriptUrl"+serverid).value;	
		} else {
			var ScriptPath 	= GetElementById("ScriptUrl"+serverid).value+"?args="+args;	
		}
		data = "action="+"ActivateScript"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ScriptPath="+escape(ScriptPath);

		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'ModifyScriptArguments') {
		_action = 'ModifyScriptArguments';
		var ScriptPath 	= GetElementById("ScriptFullPath"+serverid).value;	
		data = "action="+"RemoveScript"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ScriptPath="+escape(ScriptPath);
		buttonModify	= GetElementById("buttonModifyArgs"+serverid);	
		buttonModify.disabled = true;
	
		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'AddScriptFromDnD') {
		_action = 'AddScript';
		var args = GetElementById("ScriptArgs"+serverid).value;
		if(args == "") {
			var ScriptPath 	= GetElementById("ScriptUrl"+serverid).value;	
		} else {
			var ScriptPath 	= GetElementById("ScriptUrl"+serverid).value+"?args="+args;	
		}
		data = "action="+"AddScript"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ScriptPath="+escape(ScriptPath);
	
		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'AddScript') {
		_action = 'AddScript';
		var ScriptPath 	= unescape(GetElementById("add_script_path"+serverid).value);
		data = "action="+"AddScript"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ScriptPath="+escape(ScriptPath);
		
		page = "./utils/nadeo.control.php";
	}	

	if(action.substr(0,12) == 'RemoveScript') {
		_action = 'RemoveScript';
		var ScriptId 	= action.substr(12,action.length-12);
		var ScriptPath 	= unescape(GetElementById("script_fullname"+ScriptId).value);
		data = "action="+"RemoveScript"+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&ScriptPath="+escape(ScriptPath);
		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'SaveMatchSettings') {
		_action = action;
		var MatchSettingsFilename		= GetElementById('MatchSettingsFilename'+serverid).value;
		if (MatchSettingsFilename == "" || MatchSettingsFilename == " ") MatchSettingsFilename = 'LastServerConfig'
		var FullMatchSettingsFilename 	= 'MatchSettings/'+MatchSettingsFilename+'.xml';
		data = "action="+_action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&MatchSettingsFileName="+FullMatchSettingsFilename;
		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'LoadMatchSettings') {
		_action = action;
		var MatchSettingsFilename		= GetElementById('MatchSettingsFilenameLoad'+serverid).value;
		data = "action="+_action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&MatchSettingsFileName="+MatchSettingsFilename;
		page = "./utils/nadeo.control.php";
	}
	
	if(action == 'LoadOnyxMatchSettings') {
		_action = action;
		var MatchSettingsFilename		= GetElementById('MatchSettingsFilenameLoad'+serverid).value;
		data = "action="+_action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&MatchSettingsFileName="+MatchSettingsFilename+"&Game="+GetElementById("game"+serverid).value;
		page = "./utils/nadeo.control.php";
		alert(data);
	}
	
	if(action == 'SaveOnyxMatchSettings') {
		_action = action;
		var MatchSettingsFilename		= GetElementById('MatchSettingsFilename'+serverid).value;
		data = "action="+_action+"&id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+authlogin+"&AuthPass="+authpass;
		data += "&MatchSettingsFileName="+MatchSettingsFilename+"&Game="+GetElementById("game"+serverid).value;
		page = "./utils/nadeo.control.php";
		alert(data);
	}
	
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}	

	//Ouverture du fichier en methode POST
	XhrObj.open("POST",page);


	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
			var response = XhrObj.responseText;
			//alert(response); // DEBUG
			
			if(action == 'StartServerLan' || action == 'StartServerInternet') {
				if(response.search(action+'_Success') != -1) {
					refreshStartStopButton(serverid, 'StartServer', 0);
				}
			}
			
			if(action == 'StopServer') {
				if(response.search(action+'_Success') != -1) {
					refreshStartStopButton(serverid, 'StopServer', 0);
				}
			}
			
			if(action == 'SaveMatchSettings' || action == 'LoadMatchSettings' || action == 'AppendPlaylistFromMatchSettings') {
				if(response.search('MatchSettings_Success') != -1) {
					alert(response);
				}
			}
			
			if(action == 'LoadOnyxMatchSettings') {
				alert(response);
			}
			
			if(action == 'SaveOnyxMatchSettings') {
				alert(response);
			}
			
			if(_action == 'ChallengeRestart' || _action == 'NextChallenge' || _action == 'PreviousChallenge') {
				setTimeout("refreshChallengeButton('"+serverid+"', '"+_action+"' ,0)", 1000);
			}
			
			if(_action == 'DownloadChallenge') {
				if(response.search('DownloadChallenge_Success') != -1) {
					var actual_page = GetElementById("tpl"+serverid).value;
					if(actual_page == 'controller.bookmarklist') {
						var CallBackBookmarkIDDl = CallBack.split('_-_')[0];
						var CallBackBookmarkNBDl = CallBack.split('_-_')[1].substr(0,CallBack.split('_-_')[1].length-1);
						ProgressBarDl(CallBackBookmarkIDDl,CallBackBookmarkNBDl-1);
					}
					ctrl('AddChallenge'+CallBack+_data,serverid);
				} else {
					//alert('error during the download');
					ctrl('AddChallenge'+CallBack+_data,serverid);
					//if (GetElementById('ActionChallenge'+ChallengeId) != null)
					//	GetElementById('ActionChallenge'+ChallengeId).innerHTML = "<img src='http://support.axiolearning.org/readiness/imgs/error.gif'/>";
				}
			}

			if(_action == 'AddChallenge') {
				var ChallengeUrl = unescape(_data.substring(_data.lastIndexOf("&ChallengeUrl=")+14));
				if(response.search('AddChallenge_Success') != -1) {
					var actual_page = GetElementById("tpl"+serverid).value;
					if(actual_page == 'controller.addchallengesHD') {
						controller_addchallengeHD_display_info(serverid);
					} else if (actual_page == 'controller.bookmarklist') {
						var CallBackBookmarkIDAdd = CallBack.split('_-_')[0];
						var CallBackBookmarkNBAdd = CallBack.split('_-_')[1];
						ProgressBarAdd(CallBackBookmarkIDAdd,CallBackBookmarkNBAdd-1);
					} else if (actual_page == 'controller.addchallengesTMX' || actual_page == 'controller.addchallenges') {
						ChallengeId = GetElementById("ChallengeUrlToID"+serverid+ChallengeURLEncoded).value;
						GetElementById('ActionChallenge'+ChallengeId).innerHTML = "<img src='./images/ok.gif'/>";						
					} else {
						if (GetElementById('ChallengeUrlToID'+serverid+encodeURIComponent(ChallengeUrl)) != null) {
							GetElementById('ActionChallenge'+GetElementById('ChallengeUrlToID'+serverid+encodeURIComponent(ChallengeUrl)).value).innerHTML = "<img src='http://support.axiolearning.org/readiness/imgs/passed.gif'/>";//"<img src='./images/ok.gif'/>";
						}
						//GetElementById('ActionChallenge'+ChallengeId).innerHTML = "<img src='http://support.axiolearning.org/readiness/imgs/passed.gif'/>";//"<img src='./images/ok.gif'/>";
					}
				} else {
					var actual_page = GetElementById("tpl"+serverid).value;
					if(actual_page == 'controller.bookmarklist') {
						var CallBackBookmarkIDAdd = CallBack.split('_-_')[0];
						var CallBackBookmarkNBAdd = CallBack.split('_-_')[1];
						ProgressBarAdd(CallBackBookmarkIDAdd,CallBackBookmarkNBAdd-1);
					} else if (actual_page == 'controller.addchallengesTMX' || actual_page == 'controller.addchallenges') {
						ChallengeId = GetElementById("ChallengeUrlToID"+serverid+ChallengeURLEncoded).value;
						GetElementById('ActionChallenge'+ChallengeId).innerHTML = "<img src='http://support.axiolearning.org/readiness/imgs/error.gif'/>";
					}
					//_callback = "ctrl('AddChallenge"+ChallengeId+"','"+serverid+"');";
					//if (GetElementById('ActionChallenge'+ChallengeId) != null)
					//	GetElementById('ActionChallenge'+ChallengeId).innerHTML = "<img src='http://support.axiolearning.org/readiness/imgs/error.gif'/>";
				}
			}

			if(_action=='RemoveChallenge') {
				/*if(response.search('RemoveChallenge_Success') != -1) {
					var index = ChallengeId.substring(serverid.length,ChallengeId.length)-1;
					var ChallengeList = document.getElementById("challenge_list_table"+serverid);
					ChallengeList.deleteRow(index);
				}*/
				var pos = GetElementById("challenge_list_position"+serverid).value;
				setTimeout("controller_challenge_display_page('"+serverid+"', 'controller.challengelist'), '"+pos+"'",500);
			}
			
			if(_action=='RemoveAllChallenges') {
				if(response.search('RemoveAllChallenges_Success') != -1) {
					_callback = "controller_challenge_display_page('"+serverid+"','controller.challengelist','')";
					setTimeout(_callback,200);
				}
			}
			
			if(_action == 'RandomizeChallengeList') {
				if(response.search('RandomizeChallengeList_Success') != -1) {
					_callback = "controller_challenge_display_page('"+serverid+"','controller.challengelist','')";
					setTimeout(_callback,200);
				}
			}
			
			if(_action == 'ActivateScript') {
				if(response.search('Activate_Success') != -1) {
					var status = GetElementById('status_script'+ScriptId).value;
					if(status == 'active') {
						GetElementById('status_script_img'+ScriptId).checked = false;
						GetElementById('status_script'+ScriptId).value = 'inactive';
					} else {
						GetElementById('status_script_img'+ScriptId).checked = true;
						GetElementById('status_script'+ScriptId).value = 'active';						
					}
				}
			}
			
			if(_action == 'AddScript') {
				if(response.search('AddScript_Success') != -1) {
					controller_challenge_display_page(serverid,'controller.pluginslist','0')
				} else {
					alert('AddScript_Error');
				}
			}
			
			if(_action == 'RemoveScript') {
				if(response.search('RemoveScript_Success') != -1) {
					controller_challenge_display_page(serverid,'controller.pluginslist','0');
				} else {
					alert('RemoveScript_Error');
				}
			}
			
			if(_action == 'ModifyScriptArguments') {
				if(response.search('RemoveScript_Success') != -1) {
					ctrl('ModifyScriptArgumentsNextStep',serverid);
				} else {
					alert('ModifyScriptArguments_Error');
				}
			}
			
			if(_action == 'ModifyScriptArgumentsNextStep') {
				if(response.search('AddScript_Success') != -1) {
					if(isActivated) {
						ctrl('ModifyScriptArgumentsNextStep2',serverid);
					} else {
						controller_challenge_display_page(serverid,'controller.pluginslist','0');
					}
				} else {
					alert('ModifyScriptArguments_Error');
				}
			}
			
			if(_action == 'ModifyScriptArgumentsNextStep2') {
				if(response.search('Activate_Success') != -1) {
					controller_challenge_display_page(serverid,'controller.pluginslist','0');
				} else {
					alert('ModifyScriptArguments_Error');
				}
			}
			if(_action == 'ChooseNextChallenge') {
				if(response.search('ChooseNextChallenge_Success') != -1) {
					var tmp = "controller_challenge_display_page('"+serverid+"','controller.challengelist','')";
					setTimeout(tmp,20);
				} else {
					alert(response);
				}
			}							
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Rafraichi le status du server dans la page home du controlleur
 */
function refresh_status(serverid,compteur)
{
	var time_check	= 10;
	var ip 			= GetElementById("ip"+serverid).value;
	var port 	 	= GetElementById("port"+serverid).value;
	var AuthLogin	= GetElementById("AuthLogin"+serverid).value;	
	var AuthPass	= GetElementById("AuthPass"+serverid).value;
	var data		= "info=Status"+"&ip="+ip+"&port="+port+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;
	var page		= "./utils/get2.php";
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				var status = XhrObj.responseText;
				var content_status = GetElementById('status'+serverid);
				var content_bouton = GetElementById('bouton'+serverid);				
				if(status=='Waiting'){
					content_status.innerHTML = '<b><font color=\"#79B4F1\">Waiting</font></b>';
					content_bouton.innerHTML = "<input type=\"button\" value=\"Start Server\" onClick=\"ctrl('StartServerLan','"+serverid+"');refresh_status('"+serverid+"',0);\">";
				}
				if(status=='Running - Synchronization'){
					content_status.innerHTML = '<b><font color=\"#79B4F1\">Running - Synchronization</font></b>';
					content_bouton.innerHTML = "<input type=\"button\" value=\"Processing...\">";
				}
				if(status=='Running - Play'){
					content_status.innerHTML = '<b><font color=\"#79B4F1\">Running - Play</font></b>';
					content_bouton.innerHTML = "<input type=\"button\" value=\"Stop Server\" onClick=\"ctrl('StopServer','"+serverid+"');refresh_status('"+serverid+"',0);\">";
				}
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
	
	compteur += 1;
	if(compteur < time_check)
		setTimeout("refresh_status('"+serverid+"', "+compteur+")", 1000);
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Rafraichi les boutons next, previous et restart dans la page challenges du controlleur
 */
function refreshChallengeButton(serverid, action, compteur) {
	var time_check	= 100;
	var ip 			= GetElementById("ip"+serverid).value;
	var port 	 	= GetElementById("port"+serverid).value;
	var AuthLogin	= GetElementById("AuthLogin"+serverid).value;	
	var AuthPass	= GetElementById("AuthPass"+serverid).value;
	var data		= "info=Status"+"&ip="+ip+"&port="+port+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;
	var page		= "./utils/get2.php";
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				var status = XhrObj.responseText;
				if(compteur<time_check) {
					if(status != "Running - Play") {
						compteur++;
						setTimeout("refreshChallengeButton('"+serverid+"', '"+action+"' ,"+compteur+")", 1000);
					} else {
						if(action == "ChallengeRestart")
							GetElementById('buttonRestart'+serverid).src = './images/reload.png';
						if(action == "NextChallenge") {
							GetElementById('buttonNext'+serverid).src = './images/next.png';
							bookmark('View',serverid);
						}
						if(action == "PreviousChallenge") {
							GetElementById('buttonPrevious'+serverid).src = './images/previous.png';
							bookmark('View',serverid);
						}
					}
				} else {
					if(action == "ChallengeRestart") 
						GetElementById('buttonRestart'+serverid).src = './images/reload.png';
					if(action == "NextChallenge") 
						GetElementById('buttonNext'+serverid).src = './images/next.png';
					if(action == "PreviousChallenge") 
						GetElementById('buttonPrevious'+serverid).src = './images/previous.png';
				}
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Rafraichi les start / stop page home
 */
function refreshStartStopButton(serverid, action, compteur) {
	var time_check	= 60;
	var ip 			= GetElementById("ip"+serverid).value;
	var port 	 	= GetElementById("port"+serverid).value;
	var AuthLogin	= GetElementById("AuthLogin"+serverid).value;	
	var AuthPass	= GetElementById("AuthPass"+serverid).value;
	var data		= "info=Status"+"&ip="+ip+"&port="+port+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;
	var page		= "./utils/get2.php";
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				var status = XhrObj.responseText;
				if(compteur<time_check) {
					if(action == "StartServer") {
						if(status != "Running - Play") {
							compteur++;
							setTimeout("refreshStartStopButton('"+serverid+"', '"+action+"' ,"+compteur+")", 1000);
							return;
						} else {
							GetElementById("ButtonStartStop"+serverid).src = './images/stop.gif';
							//GetElementById("OptionsStartServer"+serverid).style.display= 'none';
							GetElementById('isLan'+serverid).disabled=true;
							GetElementById('NadeoLogin'+serverid).disabled=true;
							GetElementById('NadeoPassword'+serverid).disabled=true;
							return;
						}
					} else if(action == "StopServer") {
						if(status != "Waiting") {
							compteur++;
							setTimeout("refreshStartStopButton('"+serverid+"', '"+action+"' ,"+compteur+")", 1000);
							return;
						} else {
							GetElementById("ButtonStartStop"+serverid).src = './images/next.png';
							GetElementById("OptionsStartServer"+serverid).style.display= '';
							GetElementById('isLan'+serverid).disabled=false;
							if(!GetElementById('isLan'+serverid).checked) {
								GetElementById('NadeoLogin'+serverid).disabled=false;
								GetElementById('NadeoPassword'+serverid).disabled=false;
							}
							return;
						}
					}
				} else {
					return;
				}
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Gere la liste déroulante dans la page challenge essentiellement
 */
function dynamic_table(serverid,n,nbChallengeView) {
	var PosUp;
	var PosDown;
	var PosNew;
	var index1;
	var index2;
	var content1;
	var content2;
	var val1 = (n-nbChallengeView+1);
	var val2 = 1*n;
	
	var CurrPos	= GetElementById('challenge_list_position'+serverid).value;

	if(val1==CurrPos) {
		PosUp 		= 1*n;
		PosDown 	= 1*n-1*nbChallengeView+1;
		index1 		= 1*PosDown;
		index2 		= 1*PosUp + 1;
		PosNew		= 1*PosDown + 1;
		content1 	= GetElementById('challenge_list_tr'+serverid+index1);
		content2 	= GetElementById('challenge_list_tr'+serverid+index2);		
		if (content1 != null && content2 != null) {
			content1.style.display = 'none';
			content2.style.display = '';
		}
		GetElementById('challenge_list_position'+serverid).value = ""+PosNew; 
	}
	if(val2==CurrPos) {
		PosUp 		= 1*n+1*nbChallengeView-1;
		PosDown 	= 1*n;
		index1 		= 1*PosDown - 1;
		index2 		= 1*PosUp;
		PosNew 		= 1*PosDown - 1;
		content1 	= GetElementById('challenge_list_tr'+serverid+index1);
		content2 	= GetElementById('challenge_list_tr'+serverid+index2);		
		if (content1 != null && content2 != null) {
			content1.style.display = '';
			content2.style.display = 'none';
		}
		GetElementById('challenge_list_position'+serverid).value = ""+PosNew; 
	} 
}



////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Affiche le contenu de la page tpl dans la sous page de la page challenge
 */
function controller_challenge_display_page(serverid,tpl,arg) {
	var game 		= GetElementById("game"+serverid).value;	
	var ip 			= GetElementById("ip"+serverid).value;
	var port 	 	= GetElementById("port"+serverid).value;
	var AuthLogin	= GetElementById("AuthLogin"+serverid).value;	
	var AuthPass	= GetElementById("AuthPass"+serverid).value;
	var data		= "game="+game+"&id="+serverid+"&tpl="+tpl+"&ip="+ip+"&port="+port+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;
	
	GetElementById("tpl"+serverid).value = tpl;
	
	if(tpl=='controller.TMXchallengelist') {
		var tmx_game = game;
		/*if(game == "united")
			tmx_game = GetElementById("tmx_game"+serverid).value;
		*/
		var searchText	= GetElementById("TMX_search_text"+serverid).value;
		data += "&tmx_game="+tmx_game+"&SearchType="+arg+"&SearchText="+searchText;
	}
	
	if(tpl=='controller.TMXchallengeinfo') {
		var searchType	= GetElementById("SearchType"+serverid).value;
		var searchText	= GetElementById("SearchText"+serverid).value;
		var url			= GetElementById("ChallengeUrl"+arg).value;
		var filename	= GetElementById("ChallengeFilename"+arg).value;
		var challengeid	= arg;
		var TMXID		= GetElementById("ChallengeTMXID"+arg).value;
		data += "&TMXID="+TMXID+"&SearchText="+searchText+"&SearchType="+searchType;
		data += "&Url="+encodeURIComponent(url)+"&FileName="+filename+"&ChallengeId="+challengeid;
	}
	
	if(tpl=='controller.bookmarkchallengelist') {
		data += "&BookmarkId="+arg;
	}
	
	if(tpl=='controller.challengelist') {
		var pos = 1;
		var content	= GetElementById("challenge_list_position"+serverid);
		if(content != null) pos = GetElementById("challenge_list_position"+serverid).value;
		// AMELiorer qd on suppreime une map de la fin
		data += "&ChallengeStart="+pos;
	}
	
	if(tpl=='controller.confirmation') {
		var conf_action	= GetElementById(arg+'_Action'+serverid).value;
		var conf_dest	= GetElementById(arg+'_Dest'+serverid).value;
		var conf_text	= GetElementById(arg+'_Text'+serverid).value;
		var conf_button	= arg;		
		data += "&Action="+conf_action+"&Dest="+conf_dest+"&Button="+arg+"&Text="+encodeURIComponent(conf_text);
	}
	
	if(tpl=='controller.pluginsoptions') {
		data += "&Name="+GetElementById("script_name"+arg).value+"&FullPath="+GetElementById("script_fullname"+arg).value;
		var isActivated = (GetElementById("status_script_img"+arg).checked)?"1":"0";
		data += "&isActivated="+isActivated;
	}
	
	
	var page = "./ajax/ajax.popup.php";

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:
	server_playlist	= GetElementById("server_playlist"+serverid);	
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				server_playlist.innerHTML = XhrObj.responseText.toString();
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	server_playlist.innerHTML = '<b>Loading...</b>';
	XhrObj.send(data);
}



////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Affiche les infos de la map lors de son téléchargement sur le server (page addChallengeFromHD)
 */
function controller_addchallengeHD_display_info(serverid) {

	var Url 	= GetElementById("ChallengeUrl"+serverid).value;
	//_callback = "erase_input('ChallengeUrl"+serverid+"')";
	//setTimeout(_callback,500);	
	var data	= "id="+serverid+"&tpl="+"blk.addchallengesHDinfo"+"&Url="+Url;
	
	var page = "./ajax/ajax.popup.php";
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:

	content	= GetElementById("ActionChallenge"+serverid);	
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				content.innerHTML = XhrObj.responseText;
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Affiche le contenu de la page tpl dans la sous page de la page addChallenge
 */
function controller_addchallenge_display_page(serverid,tpl,arg) {
	GetElementById("tpl"+serverid).value = tpl;	
	var game 		= GetElementById("game"+serverid).value;
	var data		= "game="+game+"&id="+serverid+"&tpl="+tpl;
	var ip 			= GetElementById("ip"+serverid).value;
	var port 	 	= GetElementById("port"+serverid).value;
	var AuthLogin	= GetElementById("AuthLogin"+serverid).value;	
	var AuthPass	= GetElementById("AuthPass"+serverid).value;
	data			+= "&ip="+ip+"&port="+port+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;

	var page = "./ajax/ajax.popup.php";

	
	content_TMX = GetElementById("add_challenge_from_TMX"+serverid);
	content_DND = GetElementById("add_challenge_from_DND"+serverid);
	content_PL = GetElementById("add_challenge_from_PL"+serverid);
	content_HD = GetElementById("add_challenge_from_HD"+serverid);
	// remise a zero
	content_HD.style.backgroundColor = "#F7F7F7";
	content_HD.style.borderBottom = "#ddd solid 1px";
	content_TMX.style.backgroundColor = "#F7F7F7";
	content_TMX.style.borderBottom = "#ddd solid 1px";
	content_DND.style.backgroundColor = "#F7F7F7";
	content_DND.style.borderBottom = "#ddd solid 1px";
	content_PL.style.backgroundColor = "#F7F7F7";
	content_PL.style.borderBottom = "#ddd solid 1px";

	// page challenges (et plugin egalement qui recupere la coloration des bouton au mouseover, mouseout..
	if(arg=='TMX') {
		content_TMX.style.backgroundColor = "#FCFCFE";
		content_TMX.style.borderBottom = "";
	}
	if(arg=='DND') {
		content_DND.style.backgroundColor = "#FCFCFE";
		content_DND.style.borderBottom = "";
	}
	if(arg=='PL') {
		content_PL.style.backgroundColor = "#FCFCFE";
		content_PL.style.borderBottom = "";
	}
	if(arg=='HD') {
		content_HD.style.backgroundColor = "#FCFCFE";
		content_HD.style.borderBottom = "";
	}
	
	// pr la page plugin
	if(arg.substr(0,8)=='CATEGORY') {
		data += "&category="+arg.substr(8);
	}
	
	if(arg.substr(0,6)=='SCRIPT') {
		data += "&filename="+arg.substr(6);
	}	

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:
	content	= GetElementById("add_challenge_add_container"+serverid);	
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				content.innerHTML = XhrObj.responseText;
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//content.innerHTML = '<b>Loading...</b>';
	XhrObj.send(data);
}


////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Gère les bookmark
 */
function bookmark(action,serverid) {
	var data;
	var page;
	
	if(action.substr(0,10) ==  'GetListUrl') {
		_action 		= 'GetListUrl';
		var BookmarkIds	= action.substr(10,action.length-10);
		var BookMarkDatabaseID = BookmarkIds.split(',')[1];
		data 			= "Action="+_action;
		data 			+= "&Id="+BookMarkDatabaseID;
	}
	
	if(action.substr(0,12) == 'CopyBookmark') {
		_action = 'CopyBookmark';
		var content				= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex 		= content.options.selectedIndex;
		var BookmarkDestId 		= content.options[BookmarkIndex].value;
		var BookmarkSiteId		= action.substr(12);
		var BookmarkDatabaseID	= GetElementById('bookmark_database_id'+BookmarkSiteId).value;
		
		data = "Action="+_action;
		data += "&BookmarkId="+BookmarkDatabaseID+"&BookmarkDestId="+BookmarkDestId;
	}
	
	if(action == 'View') {
		_action = 'View';
		var content		= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex = content.options.selectedIndex;
		var BookmarkId = content.options[BookmarkIndex].value;

		if(BookmarkId==-1) {
			controller_challenge_display_page(serverid,'controller.challengelist','');
		} else {
			controller_challenge_display_page(serverid,'controller.bookmarkchallengelist',BookmarkId);
		}
	}
	
	if(action=='Create') {
		_action = action;
		var game 			= GetElementById("game"+serverid).value;
		var BookmarkName	= GetElementById("new_bookmark"+serverid).value;
		data = "Action="+action;
		data += "&Game="+game+"&Name="+BookmarkName+"&Author=Temp";
	}
	
	if(action=='Delete') {
		_action = action;
		var content	= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex = content.options.selectedIndex;
		var BookmarkId = content.options[BookmarkIndex].value;
		data = "Action="+action;
		data += "&BookmarkId="+BookmarkId;
	}
	
	if(action.substr(0,12) == 'AddChallenge')
	{
		_action = 'AddChallenge';
		var ip 			= GetElementById("ip"+serverid).value;
		var port 	 	= GetElementById("port"+serverid).value;
		var AuthLogin	= GetElementById("AuthLogin"+serverid).value;	
		var AuthPass	= GetElementById("AuthPass"+serverid).value;
		var data		= "id="+serverid+"&ip="+ip+"&port="+port+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;

		//var ChallengeId 		= action.substr(12,action.length-12);
		var content				= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex 		= content.options.selectedIndex;
		var BookmarkId 			= content.options[BookmarkIndex].value;

		var CallBackT 	= action.substr(12,action.length-12).split(",");
		var ChallengeUrl 		= CallBackT[CallBackT.length-1];
		var CallBack = "";
		if(CallBackT.length > 0) CallBack=CallBackT[0];

		//var ChallengeUrl		= action.substr(12,action.length-12);//GetElementById("ChallengeUrl"+ChallengeId).value
		//alert('BookmarkChallengeUrl='+ChallengeUrl);

		data += "&Action="+"AddChallenge";
		data += "&BookmarkId="+BookmarkId;
		data += "&ChallengeUrl="+encodeURIComponent(ChallengeUrl);
		//alert('ChallengeUrl='+encodeURIComponent(ChallengeUrl));
	}
	
	if(action.substr(0,15) == 'DeleteChallenge')
	{
		_action = 'DeleteChallenge';
		var ChallengeId 		= action.substr(15,action.length-15);
		var ChallengeUid		= GetElementById("ChallengeUId"+ChallengeId).value;
		var content				= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex 		= content.options.selectedIndex;
		var BookmarkId 			= content.options[BookmarkIndex].value;
		
		data = "Action="+"DeleteChallenge";
		data += "&BookmarkId="+BookmarkId;
		data += "&ChallengeUid="+ChallengeUid;
	}
	
	if(action == 'Share') {
		_action = 'Share';
		var content				= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex 		= content.options.selectedIndex;
		var BookmarkId 			= content.options[BookmarkIndex].value;
		var RealAction 			= GetElementById("button_share"+serverid).value;
		data = "Action="+RealAction;
		data += "&BookmarkId="+BookmarkId;
	}
	
	if(action == 'IsShared') {
		_action = 'IsShared';
		var content				= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex 		= content.options.selectedIndex;
		var BookmarkId 			= content.options[BookmarkIndex].value;
		data = "Action="+'IsShared';
		data += "&BookmarkId="+BookmarkId;
	}
	
	if(action == 'IsControlable') {
		_action = 'IsShared';
		var content				= GetElementById("bookmark_select"+serverid);
		var BookmarkIndex 		= content.options.selectedIndex;
		var BookmarkId 			= content.options[BookmarkIndex].value;
		if(BookmarkId == "-1")
			message_open('controlButton'+serverid);
		else
			message_close('controlButton'+serverid);
		return;
	}
	
	var page = "./script/bookmark.php";

	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:
	block_bookmark	= GetElementById("block_bookmark"+serverid);	
	
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
			response = XhrObj.responseText;
			//alert('bookmark='+response); //debug

			if(_action == 'GetListUrl') {
				//alert('GetUrl='+response);
				var BookMarkID = BookmarkIds.split(',')[0];
				ctrl('StartDownloadBookmark'+BookMarkID+","+response,serverid);
				//alert('StartDownloadBookmark'+BookMarkID+","+response);
				return;
			}
			
			if(_action == 'CopyBookmark') {
				if(response.search('CopyBookmark_Success') != -1) {
					GetElementById('ProgressBarDisplay'+BookmarkSiteId).innerHTML="<img src='./images/ok.gif'/>";
				} else {
				}
			}
			
			if(_action=='Create') {
				if(response.search('Create_Success') != -1) {
					var BookmarkId 	= response.substr(14,response.length-14); 
					var content		= GetElementById("bookmark_select"+serverid);
					content.options[content.options.length] = new Option(BookmarkName,BookmarkId,false,true);
					bookmark('IsShared',serverid);
					message_close('manage_bookmark_new'+serverid);
					message_open('manage_bookmark'+serverid);
				} else {
					alert(response);
				}
			}
			
			if(_action=='Delete') {
				if(response.search('Delete_Success') != -1) {
					content	= GetElementById("bookmark_select"+serverid);
					for (i = BookmarkIndex; i < Number(content.options.length-1); i++){
					  content.options[i] = new Option((content.options[ Number(i+1) ].text ),(content.options[ Number(i+1) ].value) );
					}
					content.options.length--;
					bookmark('View',serverid);
					bookmark('IsControlable',serverid);
				} else {
					alert(response);
				}
			}
			
			
			if(_action == 'AddChallenge') {
				if(response == 'AddChallenge_Error') {
					//GetElementById('ActionChallenge'+GetElementById('ChallengeUrlToID'+serverid+encodeURIComponent(ChallengeUrl)).value).innerHTML = "<img src='http://support.axiolearning.org/readiness/imgs/error.gif'/>";
				} else {
					var actual_page = GetElementById("tpl"+serverid).value;
					if(actual_page == 'controller.addchallengesHD') {
						controller_addchallengeHD_display_info(serverid);
					} else if (actual_page == 'controller.addchallenges' || actual_page == 'controller.addchallengesTMX') {
								var ChallengeId	= serverid+encodeURIComponent(ChallengeUrl);
								GetElementById('ActionChallenge'+GetElementById('ChallengeUrlToID'+ChallengeId).value).innerHTML = "<img src='./images/ok.gif'/>";
					}
				}
			}
			
			if(_action == 'DeleteChallenge') {
				if(response == 'DeleteChallenge_Error') {
					alert(response);
				} else {
					bookmark('View',serverid);
				}
			}

			if(_action == 'Share') {
				if(response == 'Share_Error' || response == 'Unshare_Error') {
					alert('Error when sharing');
				} else {
					var IsShared = GetElementById("button_share"+serverid).value;
					if(IsShared=='Share') GetElementById("button_share"+serverid).value = 'Unshare';
					else GetElementById("button_share"+serverid).value = 'Share';
				}
			}
			
			if(_action == 'IsShared') {
				if(response == '0') {
					GetElementById("button_delete"+serverid).disabled = false;
					GetElementById("button_share"+serverid).disabled = false;
					GetElementById("button_share"+serverid).value = 'Share';
				} else
				if(response == '1') {
					GetElementById("button_delete"+serverid).disabled = false;
					GetElementById("button_share"+serverid).disabled = false;
					GetElementById("button_share"+serverid).value = 'Unshare';
				} else
				if(response == '-1') {
					GetElementById("button_delete"+serverid).disabled = true;
					GetElementById("button_share"+serverid).disabled = true;
					GetElementById("button_share"+serverid).value = 'Share';
				} else {
					//alert('IsShared_Error: response='+response);
				}
			}
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}

/*
		 F  O  N  C  T  I  O  N  S     U  T  I  L  E  S
*/

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function message_close(id) {
	content	= GetElementById(id);
	content.style.display = 'none';
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function message_open(id) {
	content	= GetElementById(id);
	content.style.display = '';
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function erase(id) {
	content	= GetElementById(id);
	content.innerHTML = '';
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function erase_input(id) {
	content	= GetElementById(id);
	//alert(content.value);
	content.value = '';
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function _close(id) {
	content	= GetElementById(id);
	content.style.display = 'none';
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function _open(id) {
	content	= GetElementById(id);
	content.style.display = '';
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function changeInputValue(id,val) {
	GetElementById(id).value = val;
}

////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
function internet_lan(serverid) {
	if(GetElementById('isLan'+serverid).checked) {
		GetElementById('NadeoLogin'+serverid).disabled=true;
		GetElementById('NadeoPassword'+serverid).disabled=true;
	} else {
		GetElementById('NadeoLogin'+serverid).disabled=false;
		GetElementById('NadeoPassword'+serverid).disabled=false;
	}
}


function newArgument(serverid) {
	document.getElementById("arguments"+serverid).appendChild(document.createElement("li"));
	document.getElementsByTagName("li")[document.getElementsByTagName("li").length-1].innerHTML="<input type='checkbox' checked/>&nbsp;<input class='text_input4' type='text' value=''/>";//appendChild(nouveautexteli);
}
////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
/**
 * Renvoie le filename de la map a partir de son url
 */
function GetFileNameFromUrl(url,arg,serverid) {
	var serverip 		= GetElementById("ip"+serverid).value;
	var serverport 	 	= GetElementById("port"+serverid).value;
	var AuthLogin		= GetElementById("AuthLogin"+serverid).value;	
	var AuthPass		= GetElementById("AuthPass"+serverid).value;	
	var data	 		= "ip="+serverip+"&port="+serverport+"&AuthLogin="+AuthLogin+"&AuthPass="+AuthPass;
	data 				+= "&action=GetFileNameFromUrl&Url="+encodeURIComponent(url);

	var page = "./utils/nadeo.control.php";
	
	if (window.ActiveXObject)
	{
		//Internet Explorer
		var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
	}
	else
	{
		var XhrObj = new XMLHttpRequest();
	}

	//définition de l'endroit d'affichage:
		
	//Ouverture du fichier en methode POST
	XhrObj.open("POST", page);
	
	//Ok pour la page cible
	XhrObj.onreadystatechange = function()
	{
		if (XhrObj.readyState == 4 && XhrObj.status == 200)
		{
				if(arg.substr(0,22) =='StartDownloadChallenge') {
					var _data = "&ChallengeFileName="+encodeURIComponent(XhrObj.responseText)+"&ChallengeUrl="+encodeURIComponent(url);
					var CallBack = arg.substr(22);
					ctrl('StartDownloadChallenge'+CallBack+_data,serverid);
					
					var actual_page = GetElementById("tpl"+serverid).value;
					if(actual_page == 'controller.bookmarklist') {
						var CallBackBookmarkIDFilename = CallBack.split('_-_')[0];
						var CallBackBookmarkNBFilename = CallBack.split('_-_')[1].substr(0,CallBack.split('_-_')[1].length-1);
						ProgressBarFilename(CallBackBookmarkIDFilename,CallBackBookmarkNBFilename-1);
					}
					return;					
				}
		}
	}
	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XhrObj.send(data);
}



////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////

function ProgressBarAdd(CallBackBookmarkID,CallBackBookmarkNB) {
	var BarreDim = 30;
	//GetElementById('ProgressBar'+CallBackBookmarkID).style.backgroundColor = "#0000FF";
	
	var Nb 			= GetElementById('ProgressBarNb'+CallBackBookmarkID).value;
	var Percent 	= GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML; //='<b>12%<b/>';
	Nb 				= 1*Nb+1;	GetElementById('ProgressBarNb'+CallBackBookmarkID).value = Nb;
	Percent 		= Percent.substr(3,Percent.length-5);
	Percent 		= Math.round(Nb*100/(3*CallBackBookmarkNB));
	var NextDim		= Math.round(BarreDim * Percent/100);
		
	//GetElementById('ProgressBar'+CallBackBookmarkID).style.width = NextDim+'px';
	if (Nb < 3*CallBackBookmarkNB && Percent <100)
		GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML="<font color='#FF0000'><b>"+Percent+"%</b></font>";
	else
		GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML="<font color='#43EC21'><b>100%</b></font>";
};

function ProgressBarDl(CallBackBookmarkID,CallBackBookmarkNB) {
	var BarreDim = 30;
	//GetElementById('ProgressBar'+CallBackBookmarkID).style.backgroundColor = "#0000FF";
	
	var Nb 			= GetElementById('ProgressBarNb'+CallBackBookmarkID).value;
	var Percent 	= GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML; //='<font color="#FF0000"><b>12%<b/></font>';
	Nb 				= 1*Nb+1;	GetElementById('ProgressBarNb'+CallBackBookmarkID).value = Nb;
	Percent 		= Percent.substr(25,Percent.length-12);
	Percent 		= Math.round(Nb*100/(3*CallBackBookmarkNB));
	var NextDim		= Math.round(BarreDim * Percent/100);

	if (Nb < 3*CallBackBookmarkNB && Percent <100)
		GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML="<font color='#FF0000'><b>"+Percent+"%</b></font>";
	else
		GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML="<font color='#43EC21'><b>100%</b></font>";
};

function ProgressBarFilename(CallBackBookmarkID,CallBackBookmarkNB) {
	var BarreDim = 30;
	//GetElementById('ProgressBar'+CallBackBookmarkID).style.backgroundColor = "#0000FF";
	
	var Nb 			= GetElementById('ProgressBarNb'+CallBackBookmarkID).value;
	var Percent 	= GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML; //='<b>12%<b/>';
	Nb 				= 1*Nb+1;	GetElementById('ProgressBarNb'+CallBackBookmarkID).value = Nb;
	Percent 		= Percent.substr(3,Percent.length-5);
	Percent 		= Math.round(Nb*100/(3*CallBackBookmarkNB));
	var NextDim		= Math.round(BarreDim * Percent/100);

	if (Nb < 3*CallBackBookmarkNB && Percent <100)
		GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML="<font color='#FF0000'><b>"+Percent+"%</b></font>";
	else
		GetElementById('ProgressBarDisplay'+CallBackBookmarkID).innerHTML="<font color='#43EC21'><b>100%</b></font>";
};

function sleep(millisecondi)
{
    var now = new Date();
    var exitTime = now.getTime() + millisecondi;

    while(true)
    {
        now = new Date();
        if(now.getTime() > exitTime) return;
    }
}

// MOUSE WHEEL
var scroll_serverid;
/** This is high-level function; REPLACE IT WITH YOUR CODE.
 * It must react to delta being more/less than zero.
 */
function handle(delta) {
	var nbChallengeView = 10;
	var serverid = scroll_serverid;
	var currPos = GetElementById('challenge_list_position'+serverid).value;
	var index1;
	var index2;

	if(delta < 0) {
		index1 = 1*currPos;
		index2 = 1*currPos+1*nbChallengeView;
		content1 	= GetElementById('challenge_list_tr'+serverid+index1);
		content2 	= GetElementById('challenge_list_tr'+serverid+index2);
		if (content2 != null) {
			content1.style.display = 'none';
			content2.style.display = '';
			GetElementById('challenge_list_position'+serverid).value = 1*currPos+1; 
		}
	}
	if(delta > 0) {
		index1 = 1*currPos-1;
		index2 = 1*currPos+1*nbChallengeView-1;
		content1 	= GetElementById('challenge_list_tr'+serverid+index1);
		content2 	= GetElementById('challenge_list_tr'+serverid+index2);
		if (content1 != null) {
			content1.style.display = '';
			content2.style.display = 'none';
			GetElementById('challenge_list_position'+serverid).value = 1*currPos-1; 
		}
	} 
}

function wheel(event){
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera) delta = -delta;
	} else if (event.detail) {
		delta = -event.detail/3;
	}
	if (delta)
		handle(delta);
        if (event.preventDefault)
                event.preventDefault();
        event.returnValue = false;
}

function dediscroll(table_id, server_id) {
scroll_serverid = server_id;
e = GetElementById(table_id);
/* Initialization code. */
if (e.addEventListener)
	e.addEventListener('DOMMouseScroll', wheel, false);
	//window.onmousewheel = e.onmousewheel = wheel;
}
