/* all javascripts used in aidop */

// 
function searchPlantIndex(id){
	for (i=0; i<plants.length; i++){
		var plantID = plants[i].id;
		if(plantID == id)
			return(i);
	}
	return false;
}

// for config page (the comp and plant chooser)
function fillCompPlantLists(){
	// Option constructor :
	// new Option(text, value, defaultSelected, selected)
	// text = text property (optionnal)
	// value = value property (optionnal)
	// defaultSelected = defaultSelected property (boolean) (optionnal)
	// selected = selected property (boolean) (optionnal)
	//alert("loc_id = " + loc_id);

	var listeCompanies = document.configuration.company;
		
	// we empty the companies list
	listeCompanies.options.length = 0;
	
		
	// we fill the companies list again
	for (i=0; i<companies.length; i++){
		listeCompanies.options[i] = 
			new Option(companies[i].value, companies[i].id);
	}
	
	// show first element
	listeCompanies.selectedIndex=0;
	
	
	//var listePlants = document.configuration.plant;
	var listePlants = document.getElementById('plant');
	// we empty the precision list
	listePlants.options.length = 0;	
}

function fillListPlants(comp_id){
	// Option constructor :
	// new Option(text, value, defaultSelected, selected)
	// text = text property (optionnal)
	// value = value property (optionnal)
	// defaultSelected = defaultSelected property (boolean) (optionnal)
	// selected = selected property (boolean) (optionnal)
	// alert("comp_id = " + comp_id);

	//var listePlants = document.configuration.plant;
	var listePlants = document.getElementById('plant');
		
	// first, we empty the precision list
	listePlants.options.length = 0;
		
	// if nothing available, we finish
	if(goodchoice[comp_id] == null)
		return;
	
	// else, we fill the precision list again
	listePlants.options[0] = 
		new Option(plants[0].value, plants[0].id);
			
	for (j=0; j<goodchoice[comp_id].length; j++){
		// precision value
		var plant_id = goodchoice[comp_id][j];
		var plantIndex = searchPlantIndex(plant_id);
		var plantValue = plants[plantIndex].value;
		
		listePlants.options[j+1] = 
			new Option(plantValue, plant_id);
	}
		
	listePlants.selectedIndex=0
}

// to build <option></option> list 
function opt(id, value){
	this.id = id;
	this.value = value;
}

function searchPrecisionIndex(id){
	for (i=0; i<precision_loc_machine.length; i++){
		var precisionID = precision_loc_machine[i].id;
		if(precisionID == id)
			return(i);
	}	}

function fillLists(){
	// Option constructor :
	// new Option(text, value, defaultSelected, selected)
	// text = text property (optionnal)
	// value = value property (optionnal)
	// defaultSelected = defaultSelected property (boolean) (optionnal)
	// selected = selected property (boolean) (optionnal)
	//alert("loc_id = " + loc_id);

	var listeLoc = document.formulaire.localisation
		
	// we empty the localisation list
	listeLoc.options.length = 0;
	
		
	// we fill the localisation list again
	for (i=0; i<loc_machine.length; i++){
		listeLoc.options[i] = 
			new Option(loc_machine[i].value, loc_machine[i].id)
	}
	
	// show first element
	listeLoc.selectedIndex=0;
	
	
	var listePrecisions = document.formulaire.precision_localisation;
	// we empty the precision list
	listePrecisions.options.length = 0;	
}

function fillListPrecision(loc_id){
	// Option constructor :
	// new Option(text, value, defaultSelected, selected)
	// text = text property (optionnal)
	// value = value property (optionnal)
	// defaultSelected = defaultSelected property (boolean) (optionnal)
	// selected = selected property (boolean) (optionnal)
	
	//alert("loc_id = " + loc_id);

	var listePrecisions = document.formulaire.precision_localisation
		
	// first, we empty the precision list
	listePrecisions.options.length = 0;
		
	// if nothing available, we finish
	if(goodchoice[loc_id] == null)
		return;
	
	// else, we fill the precision list again
	listePrecisions.options[0] = 
		new Option(precision_loc_machine[0].value, precision_loc_machine[0].id)
			
	for (j=0; j<goodchoice[loc_id].length; j++){
		// precision value
		var precision_id = goodchoice[loc_id][j];
		var precisionIndex = searchPrecisionIndex(precision_id);
		var precisionValue = precision_loc_machine[precisionIndex].value;
		
		listePrecisions.options[j+1] = 
			new Option(precisionValue, precision_id)
	}
		
	listePrecisions.selectedIndex=0
}

/*********************************************************************************************/
/* PARTIE ADMIN - DEFAUTS DE PROCEDE                                                         */
/* FONCTIONS PERMETTANT DE GERER L'AFFECTATION DES OPTIONS DE DEFAUTS DANS LES LISTES        */
/*********************************************************************************************/
function addAllDefect(){
  var obj = document.getElementById('defect_list');
  var objSelected = document.getElementById('list_defect_selected');
  
  // on vide la seconde liste
  objSelected.length = 0;
  
  // on ajoute toutes les options de la première liste dans la seconde
  for(i=0; i<obj.length; i++){
    objSelected.length++;
    objSelected[objSelected.length-1].text = obj[i].text;
    objSelected[objSelected.length-1].value = obj[i].value;
  }
	
  deselectAll();
  initDysfunction();
}

function addDefect(){
  var obj = document.getElementById('defect_list');
  var objSelected = document.getElementById('list_defect_selected');
  
  // on ajoute les options sélectionnées
  for(i=0; i<obj.length; i++){
    if(obj[i].selected){
      objSelected.length++;
      objSelected[objSelected.length-1].text = obj[i].text;
      objSelected[objSelected.length-1].value = obj[i].value;
    }
  }
	
  deselectAll();
  initDysfunction();
}

function deleteAllDefect(){
  var objSelected = document.getElementById('list_defect_selected');
  
  // on vide la seconde liste
  objSelected.length = 0;
  
  deselectAll();
  initDysfunction();
}

function deleteDefect(){
  var objSelected = document.getElementById('list_defect_selected');
  var j=0;
  var tab = new Array();

  // on enregistre toutes les valeurs de la seconde liste qui ne sont pas sélectionnées
  for(i=0; i<objSelected.length; i++){
    if(!objSelected[i].selected){
      tab[j] = new Array();
      tab[j]["value"] = objSelected[i].value;
      tab[j]["text"] = objSelected[i].text;
      j++;
    }
  }
  
  // on vide complètement la seconde liste
  objSelected.length = 0;

  // on  remet les options sélectionnées
  for(i=0; i<j; i++){
    objSelected.length++;
    objSelected[objSelected.length-1].value = tab[i]["value"];
    objSelected[objSelected.length-1].text = tab[i]["text"];
  }

  deselectAll();
  initDysfunction();
}

function deselectAll(){
  var obj = document.getElementById('defect_list');
  var objSelected = document.getElementById('list_defect_selected');
  
  // on enlève la surbrillance des options sélectionnées de la première liste
  for(i=0; i<obj.length; i++){
    obj[i].selected=false;
  }

  // on enlève la surbrillance des options sélectionnées de la seconde liste
  for(i=0; i<objSelected.length; i++){
    objSelected[i].selected=false;
  }
}

function initDysfunction(){
  var obj = document.getElementById('defect_list');
  var nbObj = document.getElementById('nb_defect');
  var objSelected = document.getElementById('list_defect_selected');
  var nbObjSelected = document.getElementById('nb_defect_selected');
  
  nbObj.innerHTML = '('+obj.length+')';
  nbObjSelected.innerHTML = '('+objSelected.length+')';
}
/*********************************************************************************************/




/*********************************************************************************************/
/* PARTIE FRONT - DEFAUTS                                                                    */
/* FONCTIONS GERANT L'AFFICHAGE DES ONGLETS                                                  */
/*********************************************************************************************/
function afficheDefectOnglet(num){
	var nb_onglet = 2;
	
	// on rend invisible et on applique le css inactif sur tous les onglets avant d'afficher celui selectionne
	for(i=1;i<=nb_onglet;i++){
		if(i==num){
			document.getElementById('div_onglet'+num).style.display = "block";
			document.getElementById('lib_onglet'+num).className = "observation-active";
		}
		else{
			document.getElementById('div_onglet'+i).style.display = "none";
			document.getElementById('lib_onglet'+i).className = "observation-inactive";
		}
	}
}
/*********************************************************************************************/



/*********************************************************************************************/
/* PARTIE ADMIN - DEFAUTS DE PROCEDE                                                         */
/* FONCTIONS GERANT LE FORMULAIRE                                                            */
/*********************************************************************************************/
function validFormDysfunction(msg_titre, msg_risque, msg_organe, msg_defaut, msg_group, msg_cause){
  var msg = "";
  var nb_group = document.getElementById('mem_nb_group').value;
  var verif_group = true;
  var verif_cause = true;
  
  // vérification des 3 premiers champs
  if(document.getElementById('dysf_title').value==''){
    msg += msg_titre+"\n";
	document.getElementById('dysf_lib_title').style.color = '#FF0000';
  }
  if(document.getElementById('dysf_risk').value==''){
    msg += msg_risque+"\n";
	document.getElementById('dysf_lib_risk').style.color = '#FF0000';
  }
  if(document.getElementById('dysf_organ').value==''){
	msg += msg_organe+"\n";
	document.getElementById('dysf_lib_organ').style.color = '#FF0000';
  }
  
  // vérification que des défauts ont été sélectionnés
  obj_defect = document.getElementById('list_defect_selected');
  obj_mem_defect = document.getElementById('mem_list_defect_selected');
  if(obj_defect.length==0){
	msg += msg_defaut+"\n";
	document.getElementById('dysf_lib_defect_selected').style.color = '#FF0000';
  }
  // si c'est le cas on concatene la liste des défaits sélectionnés pour les récupérer en php
  else{
    for(i=0; i<obj_defect.length; i++){
      obj_mem_defect.value += ","+obj_defect[i].value;
	}
  }
  
  // vérification des groupes de causes
  // le premier groupe doit être remplit
  // les autres groupes, qui ont au moins une cause, doivent avoir un titre
  for(i=0; i<=nb_group; i++){
	obj_group = document.getElementById('name_group'+i);
	obj_cause = document.getElementById('name_cause'+i+'0');
	if((i==0)&&(obj_group.value=='')){verif_group=false;}
	else if((obj_group.value=='')&&(obj_cause.value!='')){verif_group=false;}
	else if((obj_group.value!='')&&(obj_cause.value=='')){verif_cause=false;}
  }
  if(!verif_group){msg += msg_group+"\n";}
  if(!verif_cause){msg += msg_cause+"\n";}
  
  if(msg!=""){
    alert(msg);
  }
  else{
	document.getElementById('form_dysfunction').submit();
  }
}

function deleteFormDysfunction(msg){
  if(confirm(msg)){
	document.getElementById('is_delete').value = 1;
	document.getElementById('form_dysfunction').submit();
  }
}

// we put all td of the cause in white bgcolor and the selected one in yellow
function linkCa(num){
	nb_cause = parseInt($F('mem_nb_cause'));
	for(i=0;i<nb_cause;i++){
		$('td_cause'+i).style.background = '#fff';
	}
	$('td_cause'+num).style.background = '#ff0';
}

function openPopupVerrier(){
	$('myform').target = "_blank";
	$('myform').action = "popup_verrier.php";
	$('myform').submit();
	$('myform').target = "_self";
	$('myform').action = "index.php?action=23";
}

function deleteFormAbout(msg, type, num_field){
	if(confirm(msg)){
		$('update_file').value=1;
		switch(type){
			case 'staff':
				$('staff_name_'+num_field).value='';
				$('staff_function_'+num_field).value='';
				break;
			
			case 'contributor':
				$('contributor_name_'+num_field).value='';
				$('contributor_country_'+num_field).value='';
				break;
			
			case 'testimonial':
				$('testimonial_name_'+num_field).value='';
				$('testimonial_text_'+num_field).value='';
				break;
		}
		return true;
	}
	else{
		return false;
	}
}

function validFormUser(myaction, msg){
	boolOut = true;
	$('myaction').value = myaction;
	
	if($F('user_id')==""){
		$('error_user_id').style.display = "table-row";
		boolOut = false;
	}
	else{$('error_user_id').style.display = "none";}

	if($F('user_fname')==""){
		$('error_user_fname').style.display = "table-row";
		boolOut = false;
	}
	else{$('error_user_fname').style.display = "none";}

	if($F('user_lname')==""){
		$('error_user_lname').style.display = "table-row";
		boolOut = false;
	}
	else{$('error_user_lname').style.display = "none";}

	if($F('user_email')==""){
		$('error_user_email').style.display = "table-row";
		boolOut = false;
	}
	else{$('error_user_email').style.display = "none";}

	if($F('user_comp_id')==""){
		$('error_user_comp_id').style.display = "table-row";
		boolOut = false;
	}
	else{$('error_user_comp_id').style.display = "none";}

	if($F('user_plant_id')==""){
		$('error_user_plant_id').style.display = "table-row";
		boolOut = false;
	}
	else{$('error_user_plant_id').style.display = "none";}

	if(boolOut && msg!='' && !confirm(msg)){boolOut = false;}
	
	return boolOut;
}

function deleteUser(action, user_id, msg){
	if(confirm(msg)){
		document.location.href = 'index.php?action='+action+'&user_id='+user_id+'&myaction=delete';
	}
}
/*********************************************************************************************/
