// Version 2.3
//###########################################################
var xmlhttp;
function loadAJAXGETvals(url,cfunc)
{
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=cfunc;
  xmlhttp.open("GET",url,true);
  xmlhttp.send();
}

//###########################################################
var xmlhttp_mm;
function loadAJAXGETvals_mm(url,cfunc)
{
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp_mm=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp_mm=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp_mm.onreadystatechange=cfunc;
  xmlhttp_mm.open("GET",url,true);
  xmlhttp_mm.send();
}
//###########################################################
var xmlhttp_eq;
function loadAJAXGETvals_eq(url,cfunc)
{
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp_eq=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp_eq=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp_eq.onreadystatechange=cfunc;
  xmlhttp_eq.open("GET",url,true);
  xmlhttp_eq.send();
}

//###########################################################
var xmlhttp_nl;
function loadAJAXGETvals_nl(url,cfunc)
{
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp_nl=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp_nl=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp_nl.onreadystatechange=cfunc;
  xmlhttp_nl.open("GET",url,true);
  xmlhttp_nl.send();
}
//###########################################################
var xmlhttp_gl;
function loadAJAXGETvals_gl(url,cfunc)
{
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp_gl=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp_gl=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp_gl.onreadystatechange=cfunc;
  xmlhttp_gl.open("GET",url,true);
  xmlhttp_gl.send();
}
//###########################################################
var inst_id = '',regr_id = '',equipe_id = '',part_id='';
var sel_name = new Array("un participant","une équipe","un regroupement","une institution");
var url_args;
var send_pref_tag = '';
function return_url_args(pref_tag)
{

  url_args = '';
  
  var inst_id = '',regr_id = '',equipe_id = '',part_id='';
   if(document.getElementById('sel_3_id_'+pref_tag) != null)
   {
	 inst_id = document.getElementById('sel_3_id_'+pref_tag).value;
   }

   if(document.getElementById('sel_2_id_'+pref_tag) != null)
   {
     regr_id = document.getElementById('sel_2_id_'+pref_tag).value;
   }

   if(document.getElementById('sel_1_id_'+pref_tag) != null)
   {
     equipe_id = document.getElementById('sel_1_id_'+pref_tag).value;
   }
   if(document.getElementById('sel_0_id_'+pref_tag) != null)
   {
     part_id = document.getElementById('sel_0_id_'+pref_tag).value;
   }

   var currentTime = new Date();
   var timestamp = currentTime.getTime();

   url_args="&pc="+platform_code;
   url_args=url_args+"&inst_id="+inst_id;
   url_args=url_args+"&regr_id="+regr_id;
   url_args=url_args+"&equipe_id="+equipe_id;
   url_args=url_args+"&part_id="+part_id;
   if(so_tag)
   {
     url_args=url_args+"&pref_tag="+so_tag;
   }
   else
   {
     url_args=url_args+"&pref_tag="+pref_tag;
   }
   
   url_args=url_args+"&t="+timestamp;
}

//###########################################################
var so_tag;
function return_selects(pref_tag,level,min_level)
{
   so_tag = '';
   if(pref_tag.indexOf("init_") >= 0)
   {
	 so_tag = pref_tag.substr(5);
	 return_url_args("niveau");
	 pref_tag = so_tag;
	 so_tag = '';
   }
   else
   {
     return_url_args(pref_tag);
   }

   document.getElementById('div_sel_'+level+'_'+pref_tag).innerHTML ="<img src='images/waiting.gif' width=25>";
   
   var url="get_selects.php";
   url=url+"?l="+level;
   url=url+url_args
   url=url+"&niv_min_app="+min_level;

  loadAJAXGETvals(url,function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
		all_comms =xmlhttp.responseText;
		all_comms = unescape(all_comms);
		document.getElementById('div_sel_'+level+'_'+pref_tag).innerHTML = all_comms;
		sub_level = level-1;
		if(level >= 1 && (level-1) >= min_level)
		{
		  
		  document.getElementById('div_sel_'+sub_level+'_'+pref_tag).style.display='block';
		  document.getElementById('div_sel_'+sub_level+'_'+pref_tag).innerHTML = '<a href="javascript:return_selects(\''+pref_tag+'\','+sub_level+','+min_level+');">Choisir '+sel_name[sub_level]+'</a>';
		}
		if(new_defi && pref_tag == "niveau")
		{
		  niveau_so = level-1;
		  reset_add_so_bt("return_selects");
		  update_duree_min_val();
		}
    }
  });
}

//###########################################################
var new_val;var validate_form;
var id_so_name = '';
function get_idname(level,val_niveau)
{
   var currentTime = new Date();
   var timestamp = currentTime.getTime();
   
   var url="getnamefrid.php";
   url=url+"?l="+level;
   url=url+"&v="+val_niveau;
   url=url+"&t="+timestamp;
   loadAJAXGETvals(url,function()
   {
	if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  new_val_idname =xmlhttp.responseText;
	  if(new_defi)
	  {
  	    document.getElementById('objectif_princ').innerHTML = new_val_idname;
	    id_so = val_niveau;
	    id_so_name = new_val_idname;
	  }
	  if(new_defi && !validate_form)
	  {
		update_so(level,val_niveau);
	  }
    }
  });
}

//###########################################################
function update_so()
{
   return_url_args('niveau');
   var urlso="get_updatevals.php";
   urlso=urlso+"?uso=perm_sous_obj"
   urlso=urlso+url_args
   loadAJAXGETvals(urlso,function()
   {
	if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  new_val_soresp =xmlhttp.responseText;
	  if(new_val_soresp == "oui")
	  {
	    no_so = 0;
		nombre_so = 0;
		reset_add_so_bt('update_so');
		update_duree_min_val();
		for (x in sobj)
		{
		  if(sobj[x])
		  {
			document.getElementById("sobj_"+x).innerHTML = '';
			sobj[x]='';
		  }
		}
	  }
	  else
	  {
	    no_so = 0;
		nombre_so = 0;
		for (x in sobj)
		{
		  if(sobj[x])
		  {
		    document.getElementById("sobj_"+x).innerHTML = '';
			sobj[x]='';
		  }
		}
		
	  }
    }
  });
}

//###########################################################
var pref_valx;
function return_pref_valx(pref_tag)
{
   return_url_args('niveau');
   
   var urlso="get_updatevals.php";
   urlso=urlso+"?uso="+pref_tag;
   urlso=urlso+url_args
   
   var xmlhttp;
   if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET",urlso,false);
  xmlhttp.send();
  pref_valx =xmlhttp.responseText;
   
}

//###########################################################
var main_level;
var found;
function reset_all(level,pref_tag,min_level)
{

  for(i=level-2;i>=0;i--)
  {
    document.getElementById('div_sel_'+i+'_'+pref_tag).innerHTML ='';
	document.getElementById('div_sel_'+i+'_'+pref_tag).style.display='none';
  }
  if((level-1) >= min_level)
  {
     document.getElementById('div_sel_'+(level-1)+'_'+pref_tag).innerHTML ='<a href="javascript:return_selects(\''+pref_tag+'\','+(level-1)+','+min_level+');">Choisir '+sel_name[level-1]+'</a>';
  }
  update_val(pref_tag);
  if(pref_tag == "niveau")
  {
	var val_niveau = document.getElementById('sel_'+level+'_id_'+pref_tag).value;
	if(val_niveau == "all")
	{
	  cl = level + 1;
	  found = '';
	  for(i=cl;i<=4;++i)
	  {
	    valx = document.getElementById('sel_'+i+'_id_'+pref_tag).value;
		if(valx != "all" && !found)
		{
		  val_niveau = document.getElementById('sel_'+i+'_id_'+pref_tag).value;
		  level = i;
		  main_level = i;
		  found = 1;
		  
		}
	  }
	}
	main_level = level;
	get_idname(level,val_niveau);
	if(new_defi)
		{
		  niveau_so = level-1;
//		  reset_add_so_bt('reset_all');
		}
	if(eff_part)
	{
	  document.getElementById('sel_part_list').style.display = 'none';
	  val_niveau = document.getElementById('sel_'+main_level+'_id_niveau').value;
	  update_part_num(val_niveau,main_level);
	  document.getElementById('eff_id').value = val_niveau;
      document.getElementById('eff_niv').value = main_level;
	}	
  }
}

//###########################################################
var count_rsbt = 0;
function reset_add_so_bt(val)
{
  ++count_rsbt;
  return_pref_valx('obj_niv_min');
  obj_niv_min = pref_valx;
  
  return_pref_valx('perm_sous_obj');
  perm_sous_obj = pref_valx;
    
 // alert(niveau_so +" > "+ obj_niv_min +" && "+ nombre_so +" < "+ max_so +" && "+ perm_sous_obj+" == oui " + " Val:"+val+" : "+count_rsbt)
  if(niveau_so >= obj_niv_min && nombre_so < max_so && perm_sous_obj == "oui")
  {
    document.getElementById('add_sous_obj').innerHTML = '<a href="javascript:sous_obj();" class="bouton_blue187" style="text-decoration: none;">Ajouter un sous-objectif</a>';
  }
  else
  {
    document.getElementById('add_sous_obj').innerHTML = '';
  }    
}

//###########################################################
var new_defi;
function update_val(pref_tag)
{
   return_url_args(pref_tag);
  
   var url="get_updatevals.php";
   url=url+"?x=1"
   url=url+url_args
   
   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200 && !new_defi)
    {
      new_val =xmlhttp.responseText;
		new_val = unescape(new_val);
		if(document.getElementById('val_id_'+pref_tag) != null)
		{
		  document.getElementById('val_id_'+pref_tag).value = new_val;
		}
    }
  });
} 


//###########################################################

function update_part_num(val_niveau,main_level)
{
  
   var currentTime = new Date();
   var timestamp = currentTime.getTime();
   
   var url="get_part_num.php";
   url=url+"?id="+val_niveau;
   url=url+"&l="+main_level;
   url=url+"&t="+timestamp;
   
   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200 && !new_defi)
    {
        new_val =xmlhttp.responseText;
		document.getElementById('num_sel').innerHTML = new_val;
    }
  });
}

//###########################################################

function sel_list()
{
   list_id = document.getElementById('eff_id').value;
   var currentTime = new Date();
   var timestamp = currentTime.getTime();
   
   var url="get_part_list.php";
   url=url+"?id="+list_id;
   url=url+"&l="+main_level;
   url=url+"&t="+timestamp;
   
   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200 && !new_defi)
    {
        new_val =xmlhttp.responseText;
		document.getElementById('sel_part_list').style.display = 'block';
		document.getElementById('sel_part_list').innerHTML = new_val;
    }
  });
}

//###########################################################
var det_shown;
function show_details(pref_tag,vitesse)
{
  if(pref_tag == det_shown)
  {
    $('#vals_det_'+pref_tag).slideToggle(vitesse);
	det_shown = '';
  }
  else
  {
    if(det_shown)
	{
	  $('#vals_det_'+det_shown).slideToggle(vitesse);
	}
	$('#vals_det_'+pref_tag).slideToggle(vitesse);
	det_shown = pref_tag;
  }
}

//#############################################################
function toggle_nmbr(state)
{
  if(state == "show")
  {
    $('#nmbr_part').show("normal");
  } 
  else
  {
    $('#nmbr_part').hide("normal");
  }
}

//###########################################################
function toggle_div(id)
{
	$('#'+id).slideToggle("normal");
}

//###########################################################
function confirm_field(source)
{
  if(source == "moi")
  {
    document.getElementById('confirm_div').innerHTML = ' Je confirme que j\'ai bien fait cette activité, pour la durée et l\'intensité mentionnée';
  }
  else if(source == "autre")
  {
    document.getElementById('confirm_div').innerHTML = ' Je confirme que le participant ou le groupe désigné a bien fait cette activité, pour la durée et l\'intensité mentionnée';
  }
  else
  {
    document.getElementById('confirm_div').innerHTML = ' Je confirme que le nombre de participants indiqué a bien fait cette activité, pour la durée et l\'intensité mentionnée';
  }
}

//###########################################################
var added_names = new Array();
var name_list,nmbre_name = 0,base_user = '',base_user_id = '',maxnmbre_name = 0;
function sel_name_list(nameidtoadd)
{
    x='';
	name_list = '';
	if(base_user)
	{
	   name_list += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
	   if(type != "equipes")
	   {
	     name_list += '<img src="images/star_off.png" id="capt_'+base_user_id+'" align="absmiddle" onclick="javascript:select_capt('+base_user_id+');">';
	   }
	   name_list += base_user;
	}
	for (x in added_names)
    {
	  if(added_names[x] != 'x')
	  {
	    if(name_list)
	    {
	      name_list += '<br>';
	    }
	    name_list += '<img src="images/effacer.png" align="absmiddle" onclick="javascript:remove_nm('+x+');"> ';
		if(type != "equipes")
		{
		  name_list += '<img src="images/star_off.png" id="capt_'+x+'" align="absmiddle" onclick="javascript:select_capt('+x+');">';
		}
		name_list += part_name[x];
	  }
	}
    document.getElementById('name_to_add').innerHTML = name_list;
	if(nmbre_name == 0)
    {
      if(type == "equipes")
	  {
	    document.getElementById('name_to_add').innerHTML = '<i>Aucune équipe n\'a été sélectionnée</i>';
	  }
	  else
	  {
	    document.getElementById('name_to_add').innerHTML = '<i>Aucun participant n\'a été sélectionné</i>';
	  }
    }
	if(nmbre_name > 1)
	{
	  plurs = "s";
	}
	else
	{
	  plurs = "";
	}
	if(type == "equipes")
	{
	  document.getElementById('nbr_part').innerHTML = "<i>"+nmbre_name + " équipe"+plurs+" dans le regroupement</i>";
	}
	else
	{
	  document.getElementById('nbr_part').innerHTML = "<i>"+nmbre_name + " participant"+plurs+" dans l'équipe</i>";
	}
}

//###########################################################
function unsel_name_list()
{
  select_list = '<select name="user_list" size="8" id="user_list"  style="width:250px;">';
  x='';
  for (x in part_name)
  {
    if((!added_names[x] || added_names[x] == 'x' || added_names[x] == '') && part_name[x])
	{
	  select_list += '<option value="'+x+'">'+part_name[x]+'</option>';
	}	
  }
  select_list += '</select>';
  document.getElementById('name_sel_list').innerHTML = select_list;
}

//###########################################################
function add_nm()
{
  nameidtoadd = document.getElementById('user_list').value;
  if(nameidtoadd && (!added_names[nameidtoadd] || added_names[nameidtoadd] == 'x') && nmbre_name < maxnmbre_name)
  {
    added_names[nameidtoadd] = 1;
	++nmbre_name;
	sel_name_list();
    unsel_name_list();
	update_name_list_val();
	if(type == "equipes" && add_admin && !mod_regroup)
	{
	  //update_adminlist();
	}
  }
  else if(nameidtoadd && nmbre_name == maxnmbre_name)
  {
    if(type == "equipes")
	{
	  alert("Le nombre maximal d'équipes par regroupement est atteint");
	}
	else
	{
	  alert("Le nombre maximal de participants par équipe est atteint");
	}
	
  }

  if(sel_capitaine)
  {
    select_capt(sel_capitaine);
  }
}

//###########################################################
function add_nm_mod(nameidtoadd)
{
  if(nameidtoadd && (!added_names[nameidtoadd] || added_names[nameidtoadd] == 'x') && nmbre_name < maxnmbre_name)
  {
    added_names[nameidtoadd] = 1;
	++nmbre_name;
	sel_name_list();
	unsel_name_list();
	update_name_list_val();
  }
  else if(nameidtoadd && nmbre_name == maxnmbre_name)
  {
    if(type == "equipes")
	{
	  alert("Le nombre maximal d'équipes par regroupement est atteint");
	}
	else
	{
	  alert("Le nombre maximal de participants par équipe est atteint");
	}
  }

  if(sel_capitaine)
  {
    select_capt(sel_capitaine);
  }
}

//###########################################################
function update_name_list_val()
{
	x='';
	name_list = '';
	if(base_user)
	{
	   name_list += base_user_id;
	}
	for (x in added_names)
    {
	  if(added_names[x] && added_names[x] != 'x')
	  {
	    if(name_list)
	    {
	      name_list += '|';
	    }
	    name_list += x;
	  }
	}
    document.getElementById('liste_de_noms').value = name_list;
}

//###########################################################
function remove_nm(nametormv)
{
  added_names[nametormv] = 'x';
  --nmbre_name;
  if(nametormv == sel_capitaine)
  {
    sel_capitaine = '';
  }
  sel_name_list();
  unsel_name_list();
  update_name_list_val();
  if(type == "equipes" && add_admin && !mod_regroup)
  {
    //update_adminlist();
  }
  if(sel_capitaine)
  {
    select_capt(sel_capitaine);
  }
  if(nmbre_name == 0)
  {
    if(type == "equipes")
	{
	  document.getElementById('name_to_add').innerHTML = '<i>Aucune équipe n\'a été sélectionnée</i>';
	}
	else
	{
	  document.getElementById('name_to_add').innerHTML = '<i>Aucun participant n\'a été sélectionné</i>';
	}
	
  }
}

//###########################################################
var sel_capitaine;
function select_capt(capt_id)
{
  if(sel_capitaine)
  {
    document.getElementById('capt_'+sel_capitaine).src = "images/star_off.png";
  }
  document.getElementById('capt_'+capt_id).src = "images/star_on.png";
  sel_capitaine = capt_id;
  document.getElementById('capitaine_id').value = capt_id;
}
function removeByValue(arr, val) 
{
  for(var i=0; i<arr.length; i++) 
  {
    if(arr[i] == val) 
	{
      arr.splice(i, 1);
      break;
    }
  }
}

//###########################################################
var txt_part_equipe,error = 0;
function sub_equipe()
{
  error = 0;
  reset_form_fields();
  nom_equipe = document.getElementById('equipe').value;
  nom_equipe =  nom_equipe.replace(/^\s+|\s+$/g, '');
  var reg2 = /^([A-Za-z0-9_\-\.\'\’\s\@\!àáâãäåçèéêëìíîïðòóôõöùúûüýÿÀÂÄÇÈÉÊËÌÎÏÔÖÙÛÜ])+$/;
  if(nom_equipe.length <4 || nom_equipe.length >50 || reg2.test(nom_equipe) == false)
  {
	document.getElementById("txt_equipe").style.color = '#ee0000';
	alert ("Veuillez entrer un nom d'équipe de 4-50 caractères, ne comportant que des lettres, des chiffres et les caractères\n _ - . ' @ !");
	error = 1;
  }
  
  if(nmbre_name < minnmbre_name && !error)
  {

	  document.getElementById("txt_add_membre").style.color = '#ee0000';
	  alert ("Votre équipe doit comporter au moins "+minnmbre_name+" participants");

	error = 1;
  }
  if(!sel_capitaine && !error && minnmbre_name > 0)
  {
    alert ("Vous devez désigner le capitaine de l'équipe en cliquant sur l'étoile, à gauche du nom");
	error = 1;
  }

  if(!error)
  {
    check_name();
  }
}

//###########################################################
function sub_regroup()
{
  error = 0;
  reset_form_fields();
  nom_regroup = document.getElementById('regroupement').value;
  nom_regroup = nom_regroup.replace(/^\s+|\s+$/g, '');
  
  var reg2 = /^([A-Za-z0-9_\-\.\'\’\s\@\!àáâãäåçèéêëìíîïðòóôõöùúûüýÿÀÂÄÇÈÉÊËÌÎÏÔÖÙÛÜ])+$/;
  if(nom_regroup.length <4 || nom_regroup.length >50 || reg2.test(nom_regroup) == false)
  {
    document.getElementById("txt_equipe").style.color = '#ee0000';
	alert ("Veuillez entrer un nom de regroupement de 4-50 caractères, ne comportant que des lettres, des chiffres et les caractères\n _ - . ' @ !");
	error = 1;
  }
  
  if(nmbre_name < minnmbre_name && !error)
  {
	document.getElementById("txt_add_membre").style.color = '#ee0000';
	alert ("Votre regroupement doit comporter au moins "+minnmbre_name+" équipes");
	error = 1;
  }

  if(!error)
  {
    check_name();
  }
}

//###########################################################
function reset_form_fields()
{
  
  document.getElementById("txt_equipe").style.color = '#000000';

  document.getElementById("txt_add_membre").style.color = '#000000';
}
var equipe_id;
var regroup_id;
//###########################################################
function check_name()
{
  if(type == "equipes")
  {
	var nom_val = document.getElementById('regroupement').value;
  }
  else
  {
    var nom_val = document.getElementById('equipe').value;
  }
  
   var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="ver_nom_equipe.php";
   url=url+"?ne="+nom_val;
   url=url+"&type="+type;
   url=url+"&equipe_id="+equipe_id;
   url=url+"&regroup_id="+regroup_id;
   url=url+"&t="+timestamp;

   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      response =xmlhttp.responseText;
		if(response == "pris")
		{
		  if(type != "equipes")
  		  {
    	    var txtcode ="<b><font color='#ee0000'>Nom de l'équipe :</font></b>";
		    document.getElementById("txt_equipe").innerHTML = txtcode.toString();
		    alert ("Une autre équipe porte déjà ce nom. Veuillez choisir un autre nom pour votre équipe.");
  		  }
		  else
		  {
		    var txtcode ="<b><font color='#ee0000'>Nom du regroupement :</font></b>";
		    document.getElementById("txt_equipe").innerHTML = txtcode.toString();
		    alert ("Un autre regroupement porte déjà ce nom. Veuillez choisir un autre nom pour votre regroupement.");
		  }
		  
		}
		else
		{
		  document.equipe_form.submit();
		}
    }
  })
   
}

//###########################################################
var shown_list;
function toggle_lists(list_id)
{
  if(shown_list == list_id)
  {
	$('#'+list_id).slideToggle("normal");
	shown_list = '';
  }
  else
  {
    if(shown_list)
	{
	  $('#'+shown_list).slideToggle("normal");
	}
	$('#'+list_id).slideToggle("normal");
	shown_list = list_id;
  }
}

//###########################################################
var shown_table;
function toggle_table(table_id)
{
  if(shown_table)
  {
    $('#'+shown_table).slideUp("normal");
  }
  if(table_id != shown_table)
  {
    $('#'+table_id).slideDown("normal");
  }
  if(shown_table != table_id)
  {
    shown_table = table_id;
  }
  else
  {
    shown_table = '';
  }
}

//###########################################################
var xmlDoc;
var txt,type;
function return_partlist()
{
  var institution_id = document.getElementById('institution_id').value;
  
  for (x in part_name)
  {
    part_name[x] = '';
  }
  var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="return_instit_namelist_xml.php";
   url=url+"?iid="+institution_id;
   url=url+"&t="+timestamp;

   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  xmlDoc = xmlhttp.responseXML;

	  txt="";
	  x=xmlDoc.getElementsByTagName("participant");
	  for (i=0;i<x.length;i++)
  	  {
		  y = x[i].childNodes;
		  for (t=0;t<y.length;t++)
  	      {
		    if(x[i].childNodes[t].nodeName == "id" && x[i].childNodes[t].nodeType == 1)
			{ 
			  idx = x[i].childNodes[t].childNodes[0].nodeValue;
			}
			if(x[i].childNodes[t].nodeName == "nom" && x[i].childNodes[t].nodeType == 1)
			{ 
			  namex= x[i].childNodes[t].childNodes[0].nodeValue;
			}
	      }
		  part_name[idx] = namex +' (part.# '+idx+')';
  	  }
  	  for (x in added_names)
  	  {
        added_names[x] = 'x';
  	  }
	  nmbre_name = 0;
  	  sel_name_list();
  	  unsel_name_list();	
	  update_name_list_val(); 
	  return_grouplist(); 	  		
    }
  });
}
var min_to_show;
var max_to_show;
//###########################################################
function update_min_max(ft)
{
  var institution_id = document.getElementById('institution_id').value;
  
  var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="return_min_max_xml.php";
   url=url+"?inst_id="+institution_id;
   url=url+"&ft="+ft;
   url=url+"&t="+timestamp;

   loadAJAXGETvals_mm(url,function()
   {
    if (xmlhttp_mm.readyState==4 && xmlhttp_mm.status==200)
    {
	  xmlDoc_mm = xmlhttp_mm.responseXML;
	  txt="";
	  x=xmlDoc_mm.getElementsByTagName("valeurs");
	  for (i=0;i<x.length;i++)
  	  {
		  y = x[i].childNodes;
		  for (t=0;t<y.length;t++)
  	      {
		    if(x[i].childNodes[t].nodeName == "min" && x[i].childNodes[t].nodeType == 1)
			{ 
			  minx = x[i].childNodes[t].childNodes[0].nodeValue;
			}
			if(x[i].childNodes[t].nodeName == "max" && x[i].childNodes[t].nodeType == 1)
			{ 
			  maxx= x[i].childNodes[t].childNodes[0].nodeValue;
			}
	      }
  	  }
	  minnmbre_name = minx;
	  if(base_user_id)
	  {
	    min_to_show = minx - 1;
	  }
	  else
	  {
	    min_to_show = minx;
	  }
	  document.getElementById('min_txt').innerHTML = min_to_show;
	  maxnmbre_name	= maxx;	
	  if(base_user_id)
	  {
	    max_to_show = maxx - 1;
	  }
	  else
	  {
	    max_to_show = maxx;
	  }
	  document.getElementById('max_txt').innerHTML = max_to_show;
    }
  });
}

//###########################################################
function return_grouplist()
{
  var regroup_names = new Array();
  
  var institution_id = document.getElementById('institution_id').value;
    
  var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="return_grouplist_xml.php";
   url=url+"?iid="+institution_id;
   url=url+"&t="+timestamp;

   loadAJAXGETvals_gl(url,function()
   {
    if (xmlhttp_gl.readyState==4 && xmlhttp_gl.status==200)
    {
	  xmlDoc = xmlhttp_gl.responseXML;

	  txt="";
	  x=xmlDoc.getElementsByTagName("regroupement");
	  for (i=0;i<x.length;i++)
  	  {
		  y = x[i].childNodes;
		  for (t=0;t<y.length;t++)
  	      {
		    if(x[i].childNodes[t].nodeName == "id" && x[i].childNodes[t].nodeType == 1)
			{ 
			  idx = x[i].childNodes[t].childNodes[0].nodeValue;
			}
			if(x[i].childNodes[t].nodeName == "nom" && x[i].childNodes[t].nodeType == 1)
			{ 
			  namex= x[i].childNodes[t].childNodes[0].nodeValue;
			}
	      }
		  regroup_names[idx] = namex;
  	  }
      select_list = '<select name="regroupement_id" size="5" style="width:250px;">';
  	  x='';
  	  for (x in regroup_names)
  	  {
	    select_list += '<option value="'+x+'">'+regroup_names[x]+'</option>';
  	  }
  	  select_list += '</select>';
  	  document.getElementById('regroupements_list').innerHTML = select_list; 	  		
    }
  });
}

//###########################################################
function show_membres()
{
  var equipe_id = document.getElementById('equipe_id').value;

  var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="return_membres_equipe.php";
   url=url+"?eid="+equipe_id;
   url=url+"&t="+timestamp;

   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  reponse = xmlhttp.responseText; 
	  document.getElementById('part_equipe').innerHTML = reponse; 		
    }
  });
}

//###########################################################
function sub_joindre_equipe()
{
  var equipe_id = document.getElementById('equipe_id').value;
  if(!equipe_id)
  {
    alert("Vous devez sélectionner une équipe");
  }
  else
  {
    document.equipe_form.submit();
  }
  
}

//###########################################################
function return_equipelist()
{
  var institution_id = document.getElementById('institution_id').value;
  
  for (x in part_name)
  {
    part_name[x] = '';
  }
  
  var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="return_equipelist_xml.php";
   url=url+"?iid="+institution_id;
   url=url+"&t="+timestamp;

   loadAJAXGETvals_eq(url,function()
   {
    if (xmlhttp_eq.readyState==4 && xmlhttp_eq.status==200)
    {
	  xmlDoc_eq = xmlhttp_eq.responseXML;
	  txt="";
	  x=xmlDoc_eq.getElementsByTagName("equipe");
	  for (i=0;i<x.length;i++)
  	  {
		  y = x[i].childNodes;
		  for (t=0;t<y.length;t++)
  	      {
		    if(x[i].childNodes[t].nodeName == "id" && x[i].childNodes[t].nodeType == 1)
			{ 
			  idx = x[i].childNodes[t].childNodes[0].nodeValue;
			}
			if(x[i].childNodes[t].nodeName == "nom" && x[i].childNodes[t].nodeType == 1)
			{ 
			  namex= x[i].childNodes[t].childNodes[0].nodeValue;
			}
	      }
		  part_name[idx] = namex;
  	  }
  	  for (x in added_names)
  	  {
        added_names[x] = 'x';
  	  }
	  nmbre_name = 0;
  	  sel_name_list();
  	  unsel_name_list();	
	  update_name_list_val(); 
  		
    }
  });
}

//###########################################################
var admin_list = new Array();
var eq_list,base_admin_val,add_admin;
function update_adminlist()
{
  eq_list = document.getElementById('liste_de_noms').value;
  
  for (x in admin_list)
  {
    admin_list[x] = '';
  }
  if(base_admin_val)
  {
    admin_list[base_admin_val] = base_admin_nom;
  }
  
  var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="return_namelist_xml.php";
   url=url+"?el="+eq_list;
   url=url+"&t="+timestamp;

   loadAJAXGETvals_nl(url,function()
   {
    if (xmlhttp_nl.readyState==4 && xmlhttp_nl.status==200)
    {
	  xmlDoc = xmlhttp_nl.responseXML;
	  text = xmlhttp_nl.responseText;

	  x=xmlDoc.getElementsByTagName("participant");
	  for (i=0;i<x.length;i++)
  	  {
		  if(x[i].childNodes)
		  {
		    y = x[i].childNodes;
			for (t=0;t<y.length;t++)
  	        {
		      if(x[i].childNodes[t].nodeName == "id" && x[i].childNodes[t].nodeType == 1)
			  { 
			    idx = x[i].childNodes[t].childNodes[0].nodeValue;
			  }
			  if(x[i].childNodes[t].nodeName == "nom" && x[i].childNodes[t].nodeType == 1)
			  { 
			    namex= x[i].childNodes[t].childNodes[0].nodeValue;
			  }
	        }
		  }
		  
		  admin_list[idx] = namex;
		  
  	  }
	  admin_list_sel = '';
		  admin_list_sel += '<select name="admin_id" id="admin_id" size="5" style="width:250px;">';
		  for (x in admin_list)
  		  {
    	    if(admin_list[x])
			{
			  admin_list_sel += '<option value="'+x+'" >'+admin_list[x]+'</option>';
			}
  		  }
		  
		  admin_list_sel += '</select>';
		  document.getElementById('admin_list').innerHTML = admin_list_sel;
    }
  });
}

//###########################################################
function sous_obj()
{
  ++iteration;
  ++no_so;
  ++nombre_so;
  sobj[iteration] = 1;
  if(bcgcolor == 'dddddd')
  {
    bcgcolor = 'eeeeee';
  }
  else
  {
    bcgcolor = 'dddddd';
  }
  div_content = '';
  var newdiv = document.createElement('div');
  newdiv.id = "sobj_"+iteration;
  newdiv.style.backgroundColor = '#'+bcgcolor;
  div_content = '<table border="0" cellpadding="5" cellspacing="0"><tr><td width="205" align="right" valign="top"><a href="javascript:remove_sousobj('+iteration+')" class="bt_cadre"><img src="images/effacer.png" align="absmiddle" border=0></a>&nbsp;<div id="txt_so_'+iteration+'" style="display:inline-block;">Sous-objectif '+no_so+'</div></td>';

  div_content += '<td width="152" valign="top"><input name="sous_obj_'+iteration+'" type="text" id="sous_obj_'+iteration+'" size="20" /></td>';
  
  return_pref_valx('obj_niv_min');
  return_level_selector(iteration);
  
  div_content += '<td>'+level_selector+'</td></tr></table>';
  
  newdiv.innerHTML = div_content;
  document.getElementById("sous_obj").appendChild(newdiv);
  return_selects('init_so_'+iteration,niveau_so,pref_valx);
  reset_add_so_bt("sous_obj");
}

//###########################################################
function remove_sousobj(son)
{
  document.getElementById("sobj_"+son).innerHTML = '';
  sobj[son] = '';
  --nombre_so;
  reset_add_so_bt("remove_sousobj");
}

var iteration=0;
var no_so = 0;
nombre_so = 0;
var bcgcolor = 'dddddd';
var level_selector;
var sobj = new Array();
var niveau_so;
var lev_val = '';
//###########################################################
function return_level_selector(iteration)
{
	 return_pref_valx('obj_niv_min');

	 var levels_names = new Array("un participant","une equipe","un regroupement","une institution","une plateforme");
	 level_selector = '';

		  var padd = 0;
		  var hide = '';

		  for(i=4;i>=0;--i)
		  {
			if(niveau_so > i)
		    {
			  if(niveau_so > (i+1))
			  {
			    hide = 'display:none;';
			  }
			  padd = padd + 20;
			  level_selector += '<div id="div_sel_'+i+'_so_'+iteration+'" style="padding-left:'+padd+'px;padding-bottom:10px;'+hide+'">';			  
			  if(niveau_so == (i+1) && pref_valx <= i)
			  {
			    
				level_selector += '<a href="javascript:return_selects(\'so_'+iteration+'\','+i+','+pref_valx+');">Choisir '+levels_names[i]+'</a>';
			  }
			  level_selector += '</div>';
		    }
			else if(niveau_so < i)
			{
			  lev_val = document.getElementById('sel_'+i+'_id_niveau').value;
			  level_selector += '<input type="hidden" name="sel_'+i+'_id_so_'+iteration+'" id="sel_'+i+'_id_so_'+iteration+'" value="'+lev_val+'" />';
			}
		    else if(niveau_so == i)
		    {
		     level_selector += '<div id="div_sel_'+i+'_so_'+iteration+'" style="padding-bottom:10px;"></div>';
			}
		  }
	}

var jour_mois_prec = new Array(0,0,31,59,90,120,151,181,212,243,273,304,334);
var so_val = new Array();
var duree;var vstoday;var error;
var defi_obj_min;var obj_princ_defi;
var defi_obj_max;
var date_debut;
//###########################################################
function sub_defi()
{
  document.getElementById('wait_div').innerHTML = "<img src='images/waiting.gif' width=25 align='absmiddle'> Validation du défi en cours...";
  error = 0;
  reset_all_defi_form_fields();
  for(x in sobj)
  {
    if(sobj[x])
	{
	  mod_defi_form_fields("so_"+x,"000000");
	}
  }
  
  date_debut = document.getElementById('debut').value;
  date_fin = document.getElementById('fin').value;
  obj_princ_defi = document.getElementById('obj_princ_defi').value;
  obj_ind_defi = document.getElementById('obj_ind_defi').value;
  
  return_pref_valx('dur_min_defi');
  duree_min_defi = pref_valx;
  return_pref_valx('dur_max_defi');
  duree_max_defi = pref_valx;
  return_pref_valx('dur_max_defi');
  duree_max_defi = pref_valx;
   
  if(!date_debut)
  {
	error_act_form_fields("txt_debut");
	document.getElementById('wait_div').innerHTML = "";
	alert("Veuillez sélectionner la date de début du défi");
	error = 1;
	
  }
  if(!date_fin && !error)
  {
	error_act_form_fields("txt_fin");
	document.getElementById('wait_div').innerHTML = "";
	alert("Veuillez sélectionner la date de fin du défi");
	
	error = 1;
  }
  if(!error)
  {
    return_duree(date_debut,date_fin);
	if(duree < duree_min_defi)
	{
	  error_act_form_fields("txt_debut");
	  error_act_form_fields("txt_fin");
	  document.getElementById('wait_div').innerHTML = "";
	  alert("La durée minimal d'un défi est de "+duree_min_defi+" jours et la durée indiquée ne fait que "+duree+" jours\n Veuillez augmenter la durée du défi");
	  
	  error = 1;
	}
	if(duree > duree_max_defi)
	{
	  error_act_form_fields("txt_debut");
	  error_act_form_fields("txt_fin");
	  document.getElementById('wait_div').innerHTML = "";
	  alert("La durée maximal d'un défi est de "+duree_max_defi+" jours et la durée indiquée fait "+duree+" jours\n Veuillez diminuer la durée du défi");
	  
	  error = 1;
	}
  }
  
  if(!error && !mod_defi)
  {
	return_vstoday();
	return_pref_valx('defi_debut_max_j');
	debut_max = pref_valx;
	if(vstoday < 0 || vstoday > debut_max)
	{
	  error_act_form_fields("txt_debut");
	  document.getElementById('wait_div').innerHTML = "";
	  alert("Vous ne pouvez pas définir un défi dont la date du début est antérieur à aujourd\'hui ou débutant dans plus de "+debut_max+" jours\n Veuillez corriger la date de début du défi");
	  error = 1;
	}
  }
  if(!error && mod_defi)
  {
	return_jour_2011(orig_debut);
	orig_jours_debut = jour_2011;
	return_jour_2011(date_debut);
	new_jours_debut = jour_2011;
	return_jour_2011(date_today);
	jours_date_today = jour_2011;
	return_pref_valx('defi_debut_max_j');
	debut_max = pref_valx;
	if(new_jours_debut < orig_jours_debut && orig_jours_debut < jours_date_today)
	{
	  error_act_form_fields("txt_debut");
	  document.getElementById('wait_div').innerHTML = "";
	  alert("Vous ne pouvez pas reculer la date de début d'un défi déjà commencé");
	  error = 1;
	}

	if(orig_jours_debut > jours_date_today && (new_jours_debut < jours_date_today || (new_jours_debut - jours_date_today) > debut_max))
	{
	  error_act_form_fields("txt_debut");
	  document.getElementById('wait_div').innerHTML = "";
	  alert("Vous ne pouvez pas définir un défi dont la date du début est antérieur à aujourd\'hui ou débutant dans plus de "+debut_max+" jours\n Veuillez corriger la date de début du défi");
	  error = 1;
	}
  }
  if(!error)
  {
    return_pref_valx('defi_obj_min');
    defi_obj_min = pref_valx;
    return_pref_valx('defi_obj_max');
    defi_obj_max = pref_valx;
	validate_obj(obj_princ_defi,"txt_obj_princ","og");
  }
  
  if(!error)
  {
	return_pref_valx('defi_obj_ind_min');
    defi_obj_min = pref_valx;
    return_pref_valx('defi_obj_ind_max');
    defi_obj_max = pref_valx;
	validate_obj(obj_ind_defi,"txt_obj_ind","oi");
  }
  
  if(!mod_defi)
  {
  for(x in sobj)
  {
    if(sobj[x])
	{
	  //alert("sobj[x]:"+x+"="+sobj[x]);
	  obj_x = document.getElementById('sous_obj_'+x).value;
	  txt_x = document.getElementById('txt_so_'+x).innerHTML;
	  validate_obj(obj_x,"so_"+x,"so");
	  if(!error)
	  {
		niveau_id_val = niveau_so;
		if(niveau_so < 0)
		{
		  niveau_id_val = '0';
		}
		//alert('sel_'+niveau_id_val+'_id_so_'+x);
		sel_val = document.getElementById('sel_'+niveau_id_val+'_id_so_'+x).value;
		if(sel_val == "all" || sel_val == "")
		{
		   error_act_form_fields("so_"+x);
	  	   document.getElementById('wait_div').innerHTML = "";
	  	   alert("Sélectionnez à qui s'applique le sous-objectif");
	  	   error = 1;
		}
	  }
	}
  }
  }
  
  if(!error)
  {
	if(!mod_defi)
	{
	  defi_appl = document.getElementById('sel_'+main_level+'_id_niveau').value;
	}
	check_conflicts(date_debut,date_fin,main_level,defi_appl,mod_defi);
	if(!mod_defi)
	{
	  def_targ_name = id_so_name.replace('<b>','');  
	  def_targ_name = def_targ_name.replace('</b>','');
	  def_targ_name = def_targ_name.replace('&nbsp;',' ');
	}
	
	if(error)
	{
	  document.getElementById('wait_div').innerHTML = "";
	  
	  if(error == 'confl_1')
	  {
	    alert("Un autre défi s'appliquant à "+def_targ_name+" est déjà défini pour cette période.\n");
	  }
	  else if(error == 'confl_2')
	  {
	    alert("Un autre défi s'appliquant à "+def_targ_name+" est déjà défini pour cette période et les sous-défis ne sont pas permis.\n");
	  }
	  else if(error == 'confl_3')
	  {
	    alert("Un autre défi à un niveau inférieur à "+def_targ_name+" est déjà défini pour cette période et les sous-défis ne sont pas permis.\n");
	  }
	  else
	  {
	    alert("Cette période comporte déjà un autre défi.\n"+error);
	  }
	}
  }
  
  if(!error)
  {
    for(x in sobj)
    {
	  if(sobj[x])
	  {
	    for(t=4;t>=0;--t)
		{
		  if(document.getElementById('sel_'+t+'_id_so_'+x) != null)
		  {
		    if(document.getElementById('sel_'+t+'_id_so_'+x).value != "all")
		    {
		      niv_sox = t;
		    }
		  }
		}
		if(so_val[niv_sox] == document.getElementById('sel_'+niv_sox+'_id_so_'+x).value)
		{
		  mod_defi_form_fields("so_"+x,"ee0000");
	  	  document.getElementById('wait_div').innerHTML = "";
	  	  alert("Un sous-objectif a déjà été attribué pour cette cible\n N'attribuez qu'un objectif par cible");
	  	  error = 1;
		}
		else
		{
		  so_val[niv_sox] = document.getElementById('sel_'+niv_sox+'_id_so_'+x).value;
		}
	  }
	}
  }
  
  if(!error)
  {
	document.getElementById('wait_div').innerHTML = "";
	//alert("Soumettre !");
	
	document.nouv_defi.submit();
  }
  
}
//##############################################################
function check_conflicts(date_debut,date_fin,def_level,def_level_id,mod_id)
{
   return_url_args('niveau');
   
   var url="check_conflicts.php";
   url=url+"?dd="+date_debut;
   url=url+"&df="+date_fin;
   url=url+"&lev="+def_level;
   url=url+"&lev_id="+def_level_id;
   url=url+"&mod_id="+mod_id;
   url=url+url_args;
   var xmlhttp;
   if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET",url,false);
  xmlhttp.send();
  response =xmlhttp.responseText;
  if(response != "ok")
  {
    error = response;
  }
}

//##############################################################
function validate_obj(obj_val,txt_zone,target)
{
  if(target == 'so')
  {
    obj_name = "le sous-objectif";
  }
  else if(target == 'og')
  {
    obj_name = "l\'objectif global";
  }
  else
  {
    obj_name = "l\'objectif individuel";
  }
  var reg = /^[0-9]*$/;
  if((!obj_val || reg.test(obj_val) == false) && !error)
  {
	  error_act_form_fields(txt_zone);
	  document.getElementById('wait_div').innerHTML = "";
	  alert("Entrez "+obj_name+" du défi (chiffres seulement)");
	  error = 1;
  }
  
  if((parseInt(obj_val) > defi_obj_max || parseInt(obj_val) < defi_obj_min) && !error)
  {
      error_act_form_fields(txt_zone);
	  document.getElementById('wait_div').innerHTML = "";
	  alert(obj_name+" du défi doit être compris entre "+defi_obj_min+" et "+defi_obj_max);
	  error = 1;
  }
  if(target == 'so' &&  parseInt(obj_val) <= obj_princ_defi && !asopb && !error)
  {
    error_act_form_fields(txt_zone);
	document.getElementById('wait_div').innerHTML = "";
	alert(obj_name+" doit être supérieure à l'objectif principal du défi");
	error = 1;
  }
}
//##########################################################
function return_duree(date_debut,date_fin)
{
  mois_debut = date_debut.substr(5,2);
  jour_debut = date_debut.substr(8,2);
  if(mois_debut.substr(0,1) == '0')
  {
    mois_debut = mois_debut.substr(1,1);
  }
  if(jour_debut.substr(0,1) == '0')
  {
    jour_debut = jour_debut.substr(1,1);
  }
  
  mois_fin = date_fin.substr(5,2);
  jour_fin = date_fin.substr(8,2);
  if(mois_fin.substr(0,1) == '0')
  {
    mois_fin = mois_fin.substr(1,1);
  }
  if(jour_fin.substr(0,1) == '0')
  {
    jour_fin = jour_fin.substr(1,1);
  }

  duree = ((parseInt(date_fin.substr(0,4))-2011)*365 + parseInt(jour_mois_prec[mois_fin]) + parseInt(jour_fin)) - ((parseInt(date_debut.substr(0,4))-2011)*365 + parseInt(jour_mois_prec[mois_debut]) + parseInt(jour_debut));
}
var jours_2011;
//##########################################################
function return_jour_2011(datex)
{
  mois_datex = datex.substr(5,2);
  jour_datex = datex.substr(8,2);
  if(mois_datex.substr(0,1) == '0')
  {
    mois_datex = mois_datex.substr(1,1);
  }
  if(jour_datex.substr(0,1) == '0')
  {
    jour_datex = jour_datex.substr(1,1);
  }

  jour_2011 = (parseInt(datex.substr(0,4))-2011)*365 + parseInt(jour_mois_prec[mois_datex]) + parseInt(jour_datex);
}

//##########################################################
function return_vstoday()
{
  mois_debut = date_debut.substr(5,2);
  jour_debut = date_debut.substr(8,2);
  if(mois_debut.substr(0,1) == '0')
  {
    mois_debut = mois_debut.substr(1,1);
  }
  if(jour_debut.substr(0,1) == '0')
  {
    jour_debut = jour_debut.substr(1,1);
  }
  
  var currentTime = new Date();
  td_y = currentTime.getFullYear();
  td_m = currentTime.getMonth() + 1;
  td_j = currentTime.getDate();

  vstoday = ((parseInt(date_debut.substr(0,4))-2011)*365 + parseInt(jour_mois_prec[mois_debut]) + parseInt(jour_debut)) - ((parseInt(td_y)-2011)*365 + parseInt(jour_mois_prec[td_m]) + parseInt(td_j));
}
//###########################################################
function mod_defi_form_fields(field,color)
{
  if(field == "txt_debut" || field == "all")
  {
	var txtcode ="<font color='#"+color+"'><b>Date de début du défi</b></font>";
	update_field(txtcode,"txt_debut");
  }
  
  if(field == "txt_fin" || field == "all")
  {
    var txtcode ="<font color='#"+color+"'><b>Date de fin du défi</b></font>";
	update_field(txtcode,"txt_fin");
  }
  
  if(field == "txt_obj_princ" || field == "all")
  {
    var txtcode ="<font color='#"+color+"'><b>Objectif du défi</b></font>";
	update_field(txtcode,"txt_obj_princ");
  }
  
  if(field.substr(0,3) == "so_")
  {
    var txtcode ="<font color='#"+color+"'><b>Sous-objectif </b></font>"+field.substr(3);
	update_field(txtcode,"txt_"+field);
  }
  
  if(field == "txt_date")
  {
	var txtcode ="<font color='#"+color+"'><b>Date de l'activité :<b></font>";
	update_field(txtcode,"txt_date");
  }
  
}

//###########################################################
function reset_all_defi_form_fields()
{
  reset_act_form_fields('txt_debut');
  reset_act_form_fields('txt_fin');
  reset_act_form_fields('txt_obj_princ');
  reset_act_form_fields('txt_obj_ind');
}

//#################################################################
function update_field(txtcode,field)
{
  document.getElementById(field).innerHTML = txtcode.toString();
}

var mod_sect_inmod = new Array();
//#################################################################
function mod_sect(sect_no)
{
  if(!mod_sect_inmod[sect_no])
  {
    sect_desc = document.getElementById("sect_"+sect_no).innerHTML;
	sect_desc = sect_desc.replace(/\"/g,'\'');
    mod_sect_inmod[sect_no]= 1;
    document.getElementById("sect_"+sect_no).innerHTML = '<input type="text" id="sect_val_'+sect_no+'" value="'+sect_desc+'" size="40">';
	document.getElementById("sect_check_"+sect_no).innerHTML = '&nbsp;&nbsp;<a href="javascript:mod_sect_send('+sect_no+');" class="bt_cadre"><img src="images/check.png" align="absmiddle"/></a>';
  }  
}
var mod_obj_on;
//#################################################################
function mod_obj(defi_id,modby_id)
{
    sect_desc = document.getElementById('obj_field').innerHTML;
	if(!mod_obj_on)
	{
	  document.getElementById('obj_field').innerHTML = '<input type="text" id="new_obj" value="'+sect_desc+'" size="10">';
	  document.getElementById("obj_check").innerHTML = '&nbsp;&nbsp;<a href="javascript:mod_obj_validate('+defi_id+','+modby_id+');" class="bt_cadre" ><img src="images/check.png" align="absmiddle" border=0/></a>';
	  mod_obj_on = 1;
	}
}
var mod_obj_gen_on;
//#################################################################
function mod_obj_gen(defi_id,modby_id)
{
    sect_desc = document.getElementById('obj_gen_field').innerHTML;
	sect_desc = sect_desc.replace(/<br>/g,'\n');
	sect_desc = sect_desc.replace(/<BR>/g,'\n');
	
	if(!mod_obj_gen_on)
	{
	  document.getElementById('obj_gen_field').innerHTML = '<textarea id="new_obj_gen" cols="70" rows="8">'+sect_desc+'</textarea>';
	  document.getElementById("obj_gen_check").innerHTML = '&nbsp;&nbsp;<a href="javascript:mod_obj_gen_send('+defi_id+','+modby_id+');" class="bt_cadre"><img src="images/check.png" align="absmiddle" border=0/></a>';
	  mod_obj_gen_on = 1;
	}
}
//#################################################################
function mod_obj_validate(defi_id,modby_id)
{
  new_fix_obj = document.getElementById("new_obj").value;
  obj_defx = document.getElementById("obj_def").value;
  low_objx = document.getElementById("low_obj").value;;
  
  return_pref_valx('defi_obj_ind_min');
  defi_obj_min = pref_valx;
  return_pref_valx('defi_obj_ind_max');
  defi_obj_max = pref_valx;
  
  if(Math.abs(new_fix_obj) > Math.abs(defi_obj_max) || Math.abs(new_fix_obj) < Math.abs(defi_obj_min))
  {
    alert("La cible doit être comprise entre "+defi_obj_min+" et "+defi_obj_max+" km santés");
	error = 1;
  }
  if(low_objx != "oui" && Math.abs(new_fix_obj) < Math.abs(obj_defx) && !error)
  {
    alert("Vous ne pouvez pas définir une cible inférieur à la cible du défi ("+obj_defx+")");
	error = 1;
  }
  if(!error)
  {
    mod_obj_send(defi_id,modby_id);
  }
}

//#################################################################
function mod_obj_send(defi_id,modby_id)
{
   document.getElementById("obj_check").innerHTML = "<img src='images/waiting.gif' width=25 align='absmiddle'>";
   return_url_args('niveau');
   
   new_objx = document.getElementById("new_obj").value;
   
   var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="mod_obj_send.php";
   url=url+"?val="+new_objx;
   url=url+"&defi_id="+defi_id;
   url=url+"&modby_id="+modby_id;
   url=url+url_args;

   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  reponse = xmlhttp.responseText; 
	  mod_obj_on = '';
      document.getElementById('obj_field').innerHTML = new_objx;
	  document.getElementById("obj_check").innerHTML = ''; 		
    }
  });
}

var non_valid;
//###########################################################
  function mod_obj_gen_send(defi_id,modby_id)
  { 
    document.getElementById("obj_gen_check").innerHTML = "<img src='images/waiting.gif' width=25 align='absmiddle'>";
   return_url_args('niveau');
   
   new_obj = document.getElementById("new_obj_gen").value;
   new_obj = new_obj.replace(/\n/g, '<br>' );
   un_new_obj = new_obj;
   new_obj = escape(new_obj);
   var url="mod_obj_gen_send.php";
   var params="val="+new_obj;
   params=params+"&defi_id="+defi_id;
   params=params+"&modby_id="+modby_id;
   params=params+url_args;

    var xmlhttp
  	if (window.XMLHttpRequest)
  	{
      // code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
  	}
  	else if (window.ActiveXObject)
  	{
      // code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  	}
  	else
  	{
      var non_valid = 1;
  	}
  
    xmlhttp.open("POST",url,true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length);
    xmlhttp.setRequestHeader("Connection", "close");
	
    if(!non_valid)
    {
	  xmlhttp.onreadystatechange=function()
	  {
	    if(xmlhttp.readyState==4 && xmlhttp.status == 200)
  	    {
		  reponse = xmlhttp.responseText; 
	      mod_obj_gen_on = '';
	      document.getElementById('obj_gen_field').innerHTML = un_new_obj;
	      document.getElementById("obj_gen_check").innerHTML = "<a href='javascript:mod_obj_gen("+defi_id+","+modby_id+");' class='bt_cadre'><img src='images/modify.png' align='absmiddle' border='0'></a>"; 	     
  	    }
	  }
      xmlhttp.send(params);
    }
  }
//#################################################################
function mod_sect_send(sect_no)
{
   new_sect_text = document.getElementById("sect_val_"+sect_no).value;
   
   var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="update_sect.php";
   url=url+"?val="+new_sect_text;
   url=url+"&sn="+sect_no;
   url=url+"&t="+timestamp;

   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  reponse = xmlhttp.responseText; 
	  mod_sect_inmod[sect_no]= '';
      document.getElementById("sect_"+sect_no).innerHTML = new_sect_text;
	  document.getElementById("sect_check_"+sect_no).innerHTML = ''; 		
    }
  });
}
//###################################################################
function update_duree_min_val()
{
  return_pref_valx('dur_min_defi');
  document.getElementById('duree_min').innerHTML = pref_valx;
}

var field_type = "champs";
//####################################################################
function show_field(type)
{
  if(type == "champs")
  {
    if(field_type == "liste")
	{
	  $('#liste').slideUp("normal");
	  $('#champs').slideDown("normal");
	  field_type = "champs";
	}
  }
  if(type == "liste")
  {
    if(field_type == "champs")
	{
	  $('#champs').slideUp("normal");
	  $('#liste').slideDown("normal");

	  field_type = "liste";
	}
  }
}
//####################################################################
function validate_newpass()
{
  var motdepasse = document.getElementById ('motdepasse').value;
  var motdepasse2 = document.getElementById ('motdepasse2').value;
  error = '';
  var reg2 = /^([A-Za-z0-9_\-\.])+$/;
  
  if(!motdepasse || motdepasse.length <4 || motdepasse.length >20 || reg2.test(motdepasse) == false)
  {
	alert ("Veuillez indiquer un mot de passe de 4-20 caractères,\n sans espaces, sans accents, ne contenant que des lettres, des chiffres ou les caractères _ - . ");
	error = 1;
  }
  
  if(motdepasse != motdepasse2)
  {
	alert("Les mots de passe ne sont pas identiques \n Veuillez faire la correction.");
	error = 1;
  }
  
  if(!error)
  {
    document.newpass_form.submit();
  }

}
var act_type;
//#####################################################################
function show_podo()
{
  document.getElementById('podo_title').innerHTML = "Podomètre :";
  document.getElementById('dur_title').innerHTML = "<b>Nombre <br>de pas</b>";
  document.getElementById('pas_field').style.display = 'block';
  document.getElementById('sel_intens').style.display = 'block';
  document.getElementById('titre_act').style.display = 'block';
  document.getElementById('sel_activite').style.display = 'none';
  document.getElementById('duree_field').style.display = 'none';
  document.getElementById('act_intens_field').style.display = 'none';
  document.getElementById('act_type').value = 'podo';
  act_type = "podo";
}

//#####################################################################
function show_acti()
{
  document.getElementById('podo_title').innerHTML = "<i>Podomètre</i>";
  document.getElementById('dur_title').innerHTML = "<b>Durée</b><br>(hh:mm) ";
  document.getElementById('pas_field').style.display = 'none';
  document.getElementById('sel_intens').style.display = 'none';
  document.getElementById('duree_field').style.display = 'block';
  document.getElementById('act_intens_field').style.display = 'block';
  document.getElementById('titre_act').style.display = 'none';
  document.getElementById('sel_activite').style.display = 'block';
  document.getElementById('act_type').value = 'act';
  act_type = "act";
}
var act_type;
var addtowho;
var fct;
var debut_defi_part;
var mod_act;
//###################################################################
function sub_activite()
{
   error = 0;
   addtowho = '';
   document.getElementById('wait_div').innerHTML = "<img src='images/waiting.gif' width=25 align='absmiddle'>";   
   var levels_name = new Array("un participant","une équipe","un regroupement","une institution","la plateforme");
   var niveau_names = new Array("ces participants","ces équipes","ces regroupements","cette institution","cette plateforme");
   
   var fct = document.getElementById("fct").value;
   var date = document.getElementById("date").value;
   var act_select = document.getElementById("act_select").value;
   var duree = document.getElementById("duree").value;
   var pas = document.getElementById("pas").value;
   var confirmation = document.getElementById("confirmation").checked;
   var nombre_part = document.getElementById("nombre_part").value;
   
   return_pref_valx('min_nmbr_act_region');
   min_nmbr_act_region = pref_valx;

   reset_all_act_form_fields();
   
   if(act_pour == "region")
   {
     if(!nombre_part)
	 {
	   document.getElementById('wait_div').innerHTML = ""; 
	   error_act_form_fields("txt_nmbr_part");
	   alert("Indiquez le nombre de personnes ayant pris part à l'activité de groupe");
	   error = 1;
	 }
	 if(Math.abs(nombre_part) < Math.abs(min_nmbr_act_region) && !error)
	 {
	   document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("txt_nmbr_part");
	   alert("Il doit y avoir un minimum de "+min_nmbr_act_region+" participants pour enregistrer une activité régional de groupe");
	   error = 1;
	 }
   }
   if(fct == 'sub_act')
   {

   if(act_pour == "autre")
   {
     return_pref_valx('max_niveau_act_groupe');
     max_gr_level = pref_valx;
   	 return_pref_valx('enreg_act_groupe');
   	 enreg_act_groupe = pref_valx;
   	 if(admin_level > max_gr_level)
   	 {
       max_sel_level = max_gr_level;
   	 }
   	 else
   	 {
       max_sel_level = admin_level;
   	 }
	 
     if(main_level > max_gr_level || (main_level > 0 && enreg_act_groupe == 'non'))
     {
       if(enreg_act_groupe == "oui")
	   {
	     if(pass_part)
	     {
	       min_add_level = 0;
	     }
	     else
	     {
	       min_add_level = 1;
	     }
	     for(i=max_gr_level;i>=min_add_level;--i)
	     {
		   if(i == min_add_level && addtowho)
		   {
		     addtowho += " ou";
		   }
		   else if(addtowho)
		   {
		     addtowho += ",";
		   }
		   addtowho += " "+levels_name[i];
	     }
	   }
	   else
	   {
	     addtowho = "un participant";
	   }
	   document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("txt_pour");
	   alert("Sélectionnez "+addtowho);
	   error = 1;
     }		 
	 
	 if(!error)
     {
       conf_defi_part();
	   if(part_defi_resp == "bad")
	   {
	     document.getElementById('wait_div').innerHTML = "";
		 error_act_form_fields("txt_pour");
	     alert("Aucun défi n'est en cours pour "+niveau_names[main_level]);
	     error = 1;
	   }
     }
   }
   }
      
   if(!date  && !error)
   {
     document.getElementById('wait_div').innerHTML = "";
	 error_act_form_fields("txt_date");
	 alert("Entrez la date de l'activité");
	 error = 1;
   }
   date_debut = debut_defi_part;
   return_vstoday();
   debut_defit = vstoday;
   
   date_debut = date;
   return_vstoday();
   return_pref_valx('max_jour_avant_ajout');
   
   date_activite = vstoday;
   //alert("("+date_activite+" - "+debut_defit+") < 0 && "+act_pour+" != 'autre' && !"+error+" && "+act_pour+" != 'region'");
   if((date_activite - debut_defit) < 0 && act_pour != "autre" && !error && act_pour != "region")
   {
     document.getElementById('wait_div').innerHTML = "";
	 error_act_form_fields("txt_date");
	 alert("Votre activité a été faite avant le début du défi ("+debut_defi_part+"). \n Vous devez seulement inscrire des activités ayant été faites au cours du défi");
	 error = 1;
   }
   
   if((vstoday > 0 || (Math.abs(pref_valx) - Math.abs(vstoday)) < 0)  && !error && !mod_act)
   {
     document.getElementById('wait_div').innerHTML = "";
	 error_act_form_fields("txt_date");
	 alert("La date doit être égal à aujourd'hui ou au plus "+pref_valx+" jours avant aujourd'hui");
	 error = 1;
   }

   if(act_type == "act")
   {
	 if(!act_select && !error)
     {
       document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("txt_act_select");
	   alert("Sélectionnez l'activité");
	   error = 1;
     }
	 
	 if(!duree && !error)
     {
       document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("dur_title");
	   alert("Indiquez la durée");
	   error = 1;
     }

	 var reg = /^[0-9]{1,2}:[0-9]{2}$/;
	 var split_time = duree.split(":");
	 
	 if((reg.test(duree) == false || Math.abs(split_time[1]) >= 60) && !error)
     {
       document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("dur_title");
	   alert("La durée doit avoir la forme hh:mm");
	   error = 1;
     }
	 
	 return_pref_valx('duree_min_act');
	 duree_minutes = Math.abs(split_time[0]*60) + Math.abs(split_time[1]);
	 if(duree_minutes < pref_valx && !error)
     {
       document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("dur_title");
	   alert("Votre activité doit avoir une durée minimal de "+pref_valx+" minutes");
	   error = 1;
     }
	 if(duree_minutes > 600 && !error)
     {
	   document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("dur_title");

	   hr_time = Math.floor(split_time[0]/60);
	   min_time = split_time[0]- hr_time*60
	   if(min_time < 10)
	   {
	     min_time = "0"+min_time;
	   }
	
	   alert("La durée indiqué est de "+split_time[0]+" heures !\nLa durée maximale pour une activité est de 10 heures.\nSi vous désirez indiquer "+split_time[0]+" minutes, entrez plutôt "+hr_time+":"+min_time);
	   error = 1;
     }
   }
   
   return_pref_valx('min_nmbr_pas');
   if(act_type == "podo")
   {	 
	 if(!pas && !error)
     {
       document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("dur_title");
	   alert("Veuillez indiquez le nombre de pas");
	   error = 1;
     }

	 if(pas < Math.abs(pref_valx) && !error)
     {
       document.getElementById('wait_div').innerHTML = "";
	   error_act_form_fields("dur_title");
	   alert("Vous devez entrer un minimum de "+pref_valx+" pas");
	   error = 1;
     }
   }
   
   if(confirmation == false && !error)
   {
     document.getElementById('wait_div').innerHTML = "";
	 alert("Veuillez confirmer l'activité en cochant la case (no. 4)");
	 error = 1;
   }
     
   if(!error)
   {
     if(fct == 'sub_act')
     {
	   document.getElementById("niveau").value = main_level;
	 }
	 var form_id = document.getElementById("form_id").value;
	 store_form_key(form_id);
	 
   }
}
//###########################################################
function reset_all_act_form_fields()
{
  reset_act_form_fields('txt_nmbr_part');
  reset_act_form_fields('txt_pour');
  reset_act_form_fields('txt_date');
  reset_act_form_fields('txt_act_select');
  reset_act_form_fields('dur_title');
}
//###########################################################
function reset_act_form_fields(field)
{
  document.getElementById(field).style.color = '#000000';
  document.getElementById(field).style.fontWeight = 'normal';
}

//###########################################################
function error_act_form_fields(field)
{
  document.getElementById(field).style.color = '#ee0000';
  document.getElementById(field).style.fontWeight = 'bold';
}

var rfid;
//###########################################################
function store_form_key(form_id)
{
   var url="store_form_id.php";
   url=url+"?fid="+form_id;
   
   var xmlhttp;
   if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
	if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  rfid =xmlhttp.responseText;
	  rfid = rfid.replace(/[\s\n\r]/,'');
	  document.getElementById("form_sid").value = rfid;
	  document.sub_activite.submit();
    }
  }
  xmlhttp.open("GET",url,true);
  xmlhttp.send(); 
}

//###########################################################
var part_defi_resp;
function conf_defi_part()
{
   part_defi_resp = '';
   return_url_args('niveau');
   var url="conf_defi_part.php";
   url=url+"?l="+main_level;
   url=url+url_args;
   
   var xmlhttp;
   if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET",url,false);
  xmlhttp.send(); 
  part_defi_resp = xmlhttp.responseText;
  part_defi_resp = part_defi_resp.replace(/[\n\r]/,'');
}
var admin_id;
//#################################################################
function update_inst_part_list()
{
   regr_inst = document.getElementById("institution_id").value;
   var currentTime = new Date();
   var timestamp = currentTime.getTime();
   var url="update_inst_part_list.php";
   url=url+"?inst="+regr_inst;
   url=url+"&aid="+admin_id;
   url=url+"&t="+timestamp;

   loadAJAXGETvals(url,function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
	  reponse_txt = xmlhttp.responseText; 
      document.getElementById("admin_list").innerHTML = reponse_txt;	
    }
  });
}
//################################################################
function active_js()
{
  document.getElementById('jstest').style.display = 'none';
}


//###########################################################
function sub_change_pass()
{
   var form_id = document.getElementById("form_id").value;
   
   var url="store_form_id.php";
   url=url+"?fid="+form_id;
   
   var xmlhttp;
   if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET",url,false);
  xmlhttp.send();
  rfid =xmlhttp.responseText;
  rfid = rfid.replace(/[\s\n\r]/,''); 
  document.getElementById("form_sid").value = rfid;
  document.spassmail.submit();
}


