/****************************************************************************************
SMI (Services Maintenance Interventions) est une gestion libre de maintenance et de SAV

Version 0.9.7

Copyright (C) 2006-2007  Sylvain FATOME
This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation; 
either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program
(in the directory docs); 
if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
Boston, MA  02110-1301, USA.

Contact : galawa@free.fr

Web : http://smitst.homelinux.com
****************************************************************************************/

// Scripts permettant les contrôles et modifs de champs de formulaires

/****************************************************/
/* MAJ zone de texte en fonction sélection multiple */
/****************************************************/

function utxtfromselm(idsel,idtxt)
{
	var selectBox=document.getElementById(idsel);
	// var selectedList = new Array();
	var txt = "";
	var txtfinal = "";
	for (var i=1; i<selectBox.options.length; i++)
	{
		if (selectBox.options[i].selected) 
		{
			txt += selectBox.options[i].value+"_";
		} 
	}
	txtfinal = txt.substring(0,txt.length-1);
	var selectTxt=document.getElementById(idtxt);
	selectTxt.value=txtfinal;
}

/******************************/
/* Contrôles pour les exports */
/******************************/

function aff_depex()
{
	var selectedList = new Array();
	var selectBox = document.exp_maj.dep; 
	var txtdep = "";
	var txtdepfinal = "";
	for (var i=1; i<selectBox.options.length; i++) { 
	  if (selectBox.options[i].selected) 
	  {
		txtdep += selectBox.options[i].value+"_";
	  } 
	}
	txtdepfinal = txtdep.substring(0,txtdep.length-1);
	window.document.exp_maj.deptxt.value=txtdepfinal;
}

function aff_famex()
{
	var selectedList = new Array();
	var selectBox = document.exp_maj.fam; 
	var txtfam = "";
	var txtfamfinal = "";
	for (var i=1; i<selectBox.options.length; i++) { 
	  if (selectBox.options[i].selected) 
	  {
		txtfam += selectBox.options[i].value+"_";
	  } 
	}
	txtfamfinal = txtfam.substring(0,txtfam.length-1);
	window.document.exp_maj.famtxt.value=txtfamfinal;
}

/************************************/
/* Contrôles pour les interventions */
/************************************/

// Contrôle de la zone N° de facture en fonction du choix de garantie
function verif_gar(valgar)
{
  switch (valgar)
  {
	// non, pas besoin de numéro de facture
	case '0' :
		document.int_maj.fgar.value='';
		break;
	// oui, on ne fait rien
	case '1' :
		if (document.int_maj.fgar.value == '')
		{
			alert ("Il faut impérativement saisir une référence de facture.\nSinon la garantie ne sera pas validée.");
			document.int_maj.fgar.focus();
		}
		break;
	default :
		return '';
		break;
  }
}

// Contrôle de la zone N° de facture en fonction du choix de garantie (ordres)
function verif_gar2(valgar)
{
  switch (valgar)
  {
	// non, pas besoin de numéro de facture
	case '0' :
		document.ot_maj.fgar.value='';
		break;
	// oui, on ne fait rien
	case '1' :
		if (document.ot_maj.fgar.value == '')
		{
			alert ("Il faut impérativement saisir une référence de facture.\nSinon la garantie ne sera pas validée.");
			document.ot_maj.fgar.focus();
		}
		break;
	default :
		return '';
		break;
  }
}

// Contrôle de la zone garantie oui/non en fonction de la zone de références facture
function verif_fgar(valfgar)
{
  with (document.int_maj)
  {
	  if (valfgar == "")
	  {
		gar.selectedIndex = '0';
	  }
	  else
	  {
		gar.selectedIndex = '1';
	  }
  }
}

// Contrôle de la zone garantie oui/non en fonction de la zone de références facture (ordres)
function verif_fgar2(valfgar)
{
  with (document.ot_maj)
  {
	  if (valfgar == "")
	  {
		gar.selectedIndex = '0';
	  }
	  else
	  {
		gar.selectedIndex = '1';
	  }
  }
}

// Contrôle de la zone lieu d'intervention si date de RDV
function warn_rdv()
{
	alert ("Pensez à vérifier le lieu d'intervention et l'heure de rendez-vous (si nécessaire).");
	document.int_maj.codelieu.focus();
	return true;
}

// Contrôle de la zone lieu d'intervention si date de RDV (ordres)
function warn_rdv2()
{
	alert ("Pensez à vérifier le lieu d'intervention et l'heure de rendez-vous (si nécessaire).");
	document.ot_maj.codelieu.focus();
	return true;
}

// Contrôle que la date de traitement et le détail sont remplis, si le technicien est choisi
function verif_tecr()
{
	var champok = true;
	var messerr = 'Rappel important :\n';
	
	if ((document.int_maj.codetec.options[document.int_maj.codetec.selectedIndex].value != '') && (document.int_maj.codetec.options[document.int_maj.codetec.selectedIndex].value != '-1'))
	{
		if (document.int_maj.fait.value == '')
		{
			messerr += "\nPensez à saisir le détail du travail effectué.";
			document.getElementById("f_fait").className = 'rubfrmrelief';
			document.int_maj.fait.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_fait").className = 'rubfrm';
		}
		if (document.int_maj.tect.value == '')
		{
			messerr += "\nPensez à saisir le détail des horaires et les techniciens traitants.";
			document.getElementById("f_tect").className = 'rubfrmrelief';
			document.getElementById("f_duree").className = 'rubfrmrelief';
			document.int_maj.duree.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_tect").className = 'rubfrm';
		}
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	else
	{
		if (document.int_maj.tect.value != '')
		{
			messerr += "\nIl y a déjà des détails horaires et des techniciens traitants.";
			document.getElementById("f_tect").className = 'rubfrm';
			document.getElementById("f_duree").className = 'rubfrm';
			document.getElementById("f_codetec").className = 'rubfrmrelief';
			document.int_maj.codetec.focus();
			champok = false;
		}
		if (document.int_maj.fait.value != '')
		{
			messerr += "\nIl y a déjà eu du travail effectué saisi.";
			document.getElementById("f_fait").className = 'rubfrm';
			document.getElementById("f_codetec").className = 'rubfrmrelief';
			document.int_maj.codetec.focus();
			champok = false;
		}
	}
	if (champok == false)
	{
		alert (messerr);
	}
	return champok
}

// Contrôle que la date de traitement et le détail sont remplis, si le technicien est choisi (ordres)
function verif_tec2()
{
	var champok = true;
	var messerr = 'Rappel important :\n';
	
	if ((document.ot_maj.codetec.options[document.ot_maj.codetec.selectedIndex].value != '') && (document.ot_maj.codetec.options[document.ot_maj.codetec.selectedIndex].value != '-1'))
	{
		if (document.ot_maj.fait.value == '')
		{
			messerr += "\nPensez à saisir le détail du travail effectué.";
			document.getElementById("f_fait").className = 'rubfrmrelief';
			document.ot_maj.fait.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_fait").className = 'rubfrm';
		}
		if (document.ot_maj.tect.value == '')
		{
			messerr += "\nPensez à saisir le détail des horaires et les techniciens traitants.";
			document.getElementById("f_tect").className = 'rubfrmrelief';
			document.getElementById("f_duree").className = 'rubfrmrelief';
			document.ot_maj.duree.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_tect").className = 'rubfrm';
		}
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	else
	{
		if (document.ot_maj.tect.value != '')
		{
			messerr += "\nIl y a déjà des détails horaires et des techniciens traitants.";
			document.getElementById("f_tect").className = 'rubfrm';
			document.getElementById("f_duree").className = 'rubfrm';
			document.getElementById("f_codetec").className = 'rubfrmrelief';
			document.ot_maj.codetec.focus();
			champok = false;
		}
		if (document.ot_maj.fait.value != '')
		{
			messerr += "\nIl y a déjà eu du travail effectué saisi.";
			document.getElementById("f_fait").className = 'rubfrm';
			document.getElementById("f_codetec").className = 'rubfrmrelief';
			document.ot_maj.codetec.focus();
			champok = false;
		}
	}
	if (champok == false)
	{
		alert (messerr);
	}
	return champok
}

// Contrôle que la date de traitement est remplie et le technicien choisi, si le détail est rempli
function verif_fait()
{
	var champok = true;
	var messerr = 'Erreur de validation du détail du travail effectué :\n';
	
	if (document.int_maj.fait.value!='')
	{
		if (document.int_maj.tect.value == '')
		{
			messerr += "\nVous devez saisir un détail horaire et les techniciens traitants.";
			document.getElementById("f_tect").className = 'rubfrmrelief';
			document.getElementById("f_duree").className = 'rubfrmrelief';
			document.int_maj.duree.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_tect").className = 'rubfrm';
			document.getElementById("f_duree").className = 'rubfrm';
		}
		if ((document.int_maj.codetec.options[document.int_maj.codetec.selectedIndex].value == '') || (document.int_maj.codetec.options[document.int_maj.codetec.selectedIndex].value == '-1'))
		{
			messerr += "\nVous devez choisir un technicien responsable du dossier.";
			document.getElementById("f_codetec").className = 'rubfrmrelief';
			document.int_maj.codetec.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_codetec").className = 'rubfrm';
		}
		if (champok == false)
		{
			alert (messerr);
		}
	}
	else
	{
		document.getElementById("f_fait").className = 'rubfrm';
		document.getElementById("f_tect").className = 'rubfrm';
		document.getElementById("f_duree").className = 'rubfrm';
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	return champok
}

// Contrôle que la date de traitement est remplie et le technicien choisi, si le détail est rempli (ordres)
function verif_fait2()
{
	var champok = true;
	var messerr = 'Erreur de validation du détail du travail effectué :\n';
	
	if (document.ot_maj.fait.value!='')
	{
		if (document.ot_maj.tect.value == '')
		{
			messerr += "\nVous devez saisir un détail horaire et les techniciens traitants.";
			document.getElementById("f_tect").className = 'rubfrmrelief';
			document.getElementById("f_duree").className = 'rubfrmrelief';
			document.ot_maj.duree.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_tect").className = 'rubfrm';
			document.getElementById("f_duree").className = 'rubfrm';
		}
		if ((document.ot_maj.codetec.options[document.ot_maj.codetec.selectedIndex].value == '') || (document.ot_maj.codetec.options[document.ot_maj.codetec.selectedIndex].value == '-1'))
		{
			messerr += "\nVous devez choisir un technicien responsable du dossier.";
			document.getElementById("f_codetec").className = 'rubfrmrelief';
			document.ot_maj.codetec.focus();
			champok = false;
		}
		else
		{
			document.getElementById("f_codetec").className = 'rubfrm';
		}
		if (champok == false)
		{
			alert (messerr);
		}
	}
	else
	{
		document.getElementById("f_fait").className = 'rubfrm';
		document.getElementById("f_tect").className = 'rubfrm';
		document.getElementById("f_duree").className = 'rubfrm';
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	return champok
}

// Contrôle que la date de traitement est remplie,le technicien choisi, et le détail remplis, 
// si la date d'appel client est remplie -->
function verif_dprev()
{
	var champok = true;
	var messerr = 'Erreur de validation de la date appel :\n';
	
	if (document.int_maj.fait.value == '')
	{
		messerr += "\nVous devez saisir un détail du travail effectué.";
		document.getElementById("f_fait").className = 'rubfrmrelief';
		document.int_maj.fait.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_fait").className = 'rubfrm';
	}
	if (document.int_maj.tect.value == '')
	{
		messerr += "\nVous devez saisir un détail horaire et les techniciens traitants.";
		document.getElementById("f_tect").className = 'rubfrmrelief';
		document.getElementById("f_duree").className = 'rubfrmrelief';
		document.int_maj.duree.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_tect").className = 'rubfrm';
		document.getElementById("f_duree").className = 'rubfrm';
	}
	if ((document.int_maj.codetec.options[document.int_maj.codetec.selectedIndex].value == '') || (document.int_maj.codetec.options[document.int_maj.codetec.selectedIndex].value == '-1'))
	{
		messerr += "\nVous devez choisir un technicien responsable du dossier.";
		document.getElementById("f_codetec").className = 'rubfrmrelief';
		document.int_maj.codetec.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	if (champok == false)
	{
		document.int_maj.dateprevf.value = '';
		alert (messerr);
	}
	return champok;
}

// Contrôle que la date de traitement est remplie,le technicien choisi, et le détail remplis, 
// si la date d'appel client est remplie (ordres) -->
function verif_dprev2()
{
	var champok = true;
	var messerr = 'Erreur de validation de la date appel :\n';
	
	if (document.ot_maj.fait.value == '')
	{
		messerr += "\nVous devez saisir un détail du travail effectué.";
		document.getElementById("f_fait").className = 'rubfrmrelief';
		document.ot_maj.fait.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_fait").className = 'rubfrm';
	}
	if (document.ot_maj.tect.value == '')
	{
		messerr += "\nVous devez saisir un détail horaire et les techniciens traitants.";
		document.getElementById("f_tect").className = 'rubfrmrelief';
		document.getElementById("f_duree").className = 'rubfrmrelief';
		document.ot_maj.duree.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_tect").className = 'rubfrm';
		document.getElementById("f_duree").className = 'rubfrm';
	}
	if ((document.ot_maj.codetec.options[document.ot_maj.codetec.selectedIndex].value == '') || (document.ot_maj.codetec.options[document.ot_maj.codetec.selectedIndex].value == '-1'))
	{
		messerr += "\nVous devez choisir un technicien responsable du dossier.";
		document.getElementById("f_codetec").className = 'rubfrmrelief';
		document.ot_maj.codetec.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	if (champok == false)
	{
		document.ot_maj.dateprevf.value = '';
		alert (messerr);
	}
	return champok;
}

// Contrôle que les dates traitement et appel, le détail réparation, et le technicien sont remplis, 
//	 si la date de fin est remplie -->
function verif_dfin()
{
	var champok = true;
	var messerr = 'Erreur de validation de la date de fin :\n';
	modereg = document.int_maj.codereg.options[document.int_maj.codereg.selectedIndex].value;
	
	if ((modereg == 'EC') || (modereg == ''))
	{
		messerr += "\nVous devez d\'abord saisir un mode de règlement.";
		document.getElementById("f_codereg").className = 'rubfrmrelief';
		document.int_maj.codereg.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_codereg").className = 'rubfrm';
	}
	if (document.int_maj.dateprevf.value == '')
	{
		messerr += "\nVous devez d\'abord saisir une date d\'appel client.";
		document.getElementById("f_dateprevf").className = 'rubfrmrelief';
		document.int_maj.dateprevf.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_dateprevf").className = 'rubfrm';
	}
	if (document.int_maj.fait.value == '')
	{
		messerr += "\nVous devez d\'abord remplir le descriptif du travail effectué.";
		document.getElementById("f_fait").className = 'rubfrmrelief';
		document.int_maj.fait.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_fait").className = 'rubfrm';
	}
	if (document.int_maj.tect.value == '')
	{
		messerr += "\nVous devez saisir un détail horaire et les techniciens traitants.";
		document.getElementById("f_tect").className = 'rubfrmrelief';
		document.getElementById("f_duree").className = 'rubfrmrelief';
		document.int_maj.duree.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_tect").className = 'rubfrm';
		document.getElementById("f_duree").className = 'rubfrm';
	}
	tecresp = document.int_maj.codetec.options[document.int_maj.codetec.selectedIndex].value ;
	if ((tecresp == '') || (tecresp == '-1'))
	{
		messerr += "\nVous devez d\'abord choisir un technicien responsable du dossier.";
		document.getElementById("f_codetec").className = 'rubfrmrelief';
		document.int_maj.codetec.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	if (champok == false)
	{
		document.int_maj.datefinf.value = '';
		alert (messerr);
	}
	return champok;
}

// Contrôle que les dates traitement et appel, le détail réparation, et le technicien sont remplis, 
//	 si la date de fin est remplie (ordres) -->
function verif_dfin2()
{
	var champok = true;
	var messerr = 'Erreur de validation de la date de fin :\n';
	modereg = document.ot_maj.codereg.options[document.ot_maj.codereg.selectedIndex].value;
	
	if ((modereg == 'EC') || (modereg == ''))
	{
		messerr += "\nVous devez d\'abord saisir un mode de règlement.";
		document.getElementById("f_codereg").className = 'rubfrmrelief';
		document.ot_maj.codereg.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_codereg").className = 'rubfrm';
	}
	if (document.ot_maj.dateprevf.value == '')
	{
		messerr += "\nVous devez d\'abord saisir une date d\'appel client.";
		document.getElementById("f_dateprevf").className = 'rubfrmrelief';
		document.ot_maj.dateprevf.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_dateprevf").className = 'rubfrm';
	}
	if (document.ot_maj.fait.value == '')
	{
		messerr += "\nVous devez d\'abord remplir le descriptif du travail effectué.";
		document.getElementById("f_fait").className = 'rubfrmrelief';
		document.ot_maj.fait.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_fait").className = 'rubfrm';
	}
	if (document.ot_maj.tect.value == '')
	{
		messerr += "\nVous devez saisir un détail horaire et les techniciens traitants.";
		document.getElementById("f_tect").className = 'rubfrmrelief';
		document.getElementById("f_duree").className = 'rubfrmrelief';
		document.ot_maj.duree.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_tect").className = 'rubfrm';
		document.getElementById("f_duree").className = 'rubfrm';
	}
	tecresp = document.ot_maj.codetec.options[document.ot_maj.codetec.selectedIndex].value ;
	if ((tecresp == '') || (tecresp == '-1'))
	{
		messerr += "\nVous devez d\'abord choisir un technicien responsable du dossier.";
		document.getElementById("f_codetec").className = 'rubfrmrelief';
		document.ot_maj.codetec.focus();
		champok = false;
	}
	else
	{
		document.getElementById("f_codetec").className = 'rubfrm';
	}
	if (champok == false)
	{
		document.ot_maj.datefinf.value = '';
		alert (messerr);
	}
	return champok;
}

<!-- Fonction pour vérifier si résumé contrat doit être affiché -->
function tst_res_cocl(index,premier)
{
	if (index>0)
	{
		display('res','block');
		display('pas_res','none');
		display('choixsiteoui','block');
		display('choixsitenon','none');
		if (premier==false)
		{
			if (document.int_maj.nbsites.value==0)
			{
				display('choixsiteoui','none');
				display('choixsitenon','block');
				document.int_maj.idsite.value='0';
				document.getElementById('nomsite').innerHTML='<strong>Site principal</strong>';
			}
			else
			{
				display('choixsiteoui','block');
				display('choixsitenon','none');
				document.int_maj.idsite.value='';
				document.getElementById('nomsite').innerHTML='';
			}
		}
	}
	else
	{
		display('res','none');
		display('pas_res','block');
		if (document.int_maj.nbsites.value==0)
		{
			display('choixsiteoui','none');
			display('choixsitenon','block');
			document.int_maj.idsite.value='0';
			document.getElementById('nomsite').innerHTML='<strong>Site principal</strong>';
		}
		else
		{
			display('choixsiteoui','block');
			display('choixsitenon','none');
		}
	}
}

<!-- Fonction pour vérifier si le temps offert doit être affiché -->
function tst_aff_tpsoff(valoff)
{
	if (valoff)
	{
		if (valoff!='')
		{
			var tab_heure = valoff.split(':');
			var nbsec = (Number(tab_heure[0])*3600)+(Number(tab_heure[1])*60);
			if (nbsec>0)
			{
				display('affoffoui','block');
				display('affoffnon','none');
			}
			else
			{
				display('affoffoui','none');
				display('affoffnon','block');
			}
		}
		else
		{
			display('affoffoui','none');
			display('affoffnon','block');
		}
	}
}

<!-- Fonction pour vérifier les ordres de sous-traitance -->
function verif_ot(nbot,nbotactifs)
{
	var objet = window.opener.document.getElementById('strot');
	if (nbot>0)
	{
		var texte='<span class="annot_petit_it">';
		texte+='(Actuellement : '+nbot+' bon';
		if (nbot>1)
			texte+='s';
		texte+=' de travail';
		if (nbotactifs>0)
			texte+=', dont '+nbotactifs+' non termin&eacute;';
		if (nbotactifs>1)
			texte+='s';
		texte+=')';
		texte+='</span>';
		objet.innerHTML=texte;
		objet.style.visibility = 'visible';
	}
	else
		objet.style.visibility = 'hidden';
}
/************************************************/
/* Contrôles pour les historiques interventions */
/************************************************/

<!-- Fonction pour mettre à jour la fiche intervention  -->
function maj_int(duree,dureeoff,ntect)
{
	window.opener.document.int_maj.duree.value=duree;
 	window.opener.document.int_maj.dureeoff.value=dureeoff;
 	window.opener.document.int_maj.tect.value=ntect;

  	var objet1 = window.opener.document.getElementById("affoffoui");
	var objet2 = window.opener.document.getElementById("affoffnon");
	var tab_duree = dureeoff.split(":");
	nbsec = (Number(tab_duree[0])*3600)+(Number(tab_duree[1])*60);

	if (nbsec>0)
	{
		objet1.style.display = 'block';
		objet2.style.display = 'none';
	}
	else
	{
		objet1.style.display = 'none';
		objet2.style.display = 'block';
	}
}

/*****************************************/
/* Contrôles pour les historiques ordres */
/*****************************************/

<!-- Fonction pour mettre à jour la fiche ordre  -->
function maj_ot(duree,dureeoff,ntect)
{
	window.opener.document.ot_maj.duree.value=duree;
 	window.opener.document.ot_maj.dureeoff.value=dureeoff;
 	window.opener.document.ot_maj.tect.value=ntect;

  	var objet1 = window.opener.document.getElementById("affoffoui");
	var objet2 = window.opener.document.getElementById("affoffnon");
	var tab_duree = dureeoff.split(":");
	nbsec = (Number(tab_duree[0])*3600)+(Number(tab_duree[1])*60);

	if (nbsec>0)
	{
		objet1.style.display = 'block';
		objet2.style.display = 'none';
	}
	else
	{
		objet1.style.display = 'none';
		objet2.style.display = 'block';
	}
}

/***************************************/
/* Contrôles pour les contrats clients */
/***************************************/

// Contrôle de la zone N° de facture en fonction du choix de garantie
function verif_renouv(valrenouv)
{
  switch (valrenouv)
  {
	// non, pas besoin de numéro de facture
	case '0' :
		document.cocl_maj.num.value='';
		break;
	// oui, on ne fait rien
	case '1' :
		if (document.int_maj.num.value == '')
		{
			alert ("Il faut impérativement saisir une référence de contrat.\nSinon le renouvellement ne sera pas effectif.");
			document.int_maj.num.focus();
		}
		break;
	default :
		return '';
		break;
  }
}

// Contrôle de la zone renouvelé oui/non en fonction de la zone de numéro de contrat
function verif_num(valnum)
{
  with (document.cocl_maj)
  {
	  if (valnum == "")
	  {
		renouv.selectedIndex = '0';
	  }
	  else
	  {
		renouv.selectedIndex = '1';
	  }
  }
}

// Contrôle que le délai est rempli si la périodicité est à la demande
function verif_delai()
{
	var champok = true;
	var messerr = 'Rappel important :\n\n';

	var txt_sel = document.cocl_maj.cope.options[document.cocl_maj.cope.selectedIndex].text;
	var exist_str = txt_sel.indexOf('demande',0);

	if (exist_str >= 0)
	{
		if ((document.cocl_maj.delai.value == '') || (document.cocl_maj.delai.value == '0'))
		{
			messerr += "\nPensez à choisir un délai d\'intervention.";
			document.getElementById("f_delai").className = 'rubfrmrelief';
			champok = false;
		}
		else
		{
			document.getElementById("f_delai").className = 'rubfrm';
		}
	}
	else
	{
		document.cocl_maj.delai.value = '';
		document.getElementById("f_delai").className = 'rubfrm';
	}

	if (champok == false)
	{
		alert (messerr);
		document.getElementById("delai").focus();
	}
	return champok;
}

/******************************/
/* Contrôles pour les clients */
/******************************/

<!-- Fonction pour vérifier si une icône pour les sites doit être affichée -->
function tst_sites_client(texte)
{
	if (texte!="")
	{
		display('site','block');
		display('pas_site','none');
	}
	else
	{
		display('site','none');
		display('pas_site','block');
	}
}

/******************************/
/* Contrôles pour les relevés */
/******************************/

<!-- Fonction pour afficher ou pas des champs en fonction du mode IP -->
function tst_modeip(mode)
{
	if (mode==0)
	{
		document.getElementById('sdhcp').style.backgroundColor='#CCCCCC';
		document.getElementById('sdhcp').style.color='#000000';
		document.getElementById('sdhcp').disabled=false;
		var valsdhcp = document.getElementById('sdhcp').value;
		if (valsdhcp=="Oui")
		{
			document.getElementById('ip1').style.backgroundColor='#CCCCCC';
			document.getElementById('ip1').style.color='#000000';
			document.getElementById('ip1').disabled=false;
			document.getElementById('ip2').style.backgroundColor='#CCCCCC';
			document.getElementById('ip2').style.color='#000000';
			document.getElementById('ip2').disabled=false;
			document.getElementById('mdhcp').style.backgroundColor='#CCCCCC';
			document.getElementById('mdhcp').style.color='#000000';
			document.getElementById('mdhcp').disabled=false;
		}
		else
		{
			document.getElementById('ip1').style.backgroundColor='#FFFFFF';
			document.getElementById('ip1').style.color='#CCCCCC';
			document.getElementById('ip1').value='';
			document.getElementById('ip1').disabled=true;
			document.getElementById('ip2').style.backgroundColor='#FFFFFF';
			document.getElementById('ip2').style.color='#CCCCCC';
			document.getElementById('ip2').value='';
			document.getElementById('ip2').disabled=true;
			document.getElementById('mdhcp').style.backgroundColor='#FFFFFF';
			document.getElementById('mdhcp').style.color='#CCCCCC';
			document.getElementById('mdhcp').value='';
			document.getElementById('mdhcp').disabled=true;
		}
		document.getElementById('ip').style.backgroundColor='#CCCCCC';
		document.getElementById('ip').style.color='#000000';
		document.getElementById('ip').disabled=false;
		document.getElementById('masq').style.backgroundColor='#CCCCCC';
		document.getElementById('masq').style.color='#000000';
		document.getElementById('masq').disabled=false;
		document.getElementById('pass').style.backgroundColor='#CCCCCC';
		document.getElementById('pass').style.color='#000000';
		document.getElementById('pass').disabled=false;
	}

	if (mode==1)
	{
		document.getElementById('sdhcp').style.backgroundColor='#FFFFFF';
		document.getElementById('sdhcp').style.color='#CCCCCC';
		document.getElementById('sdhcp').options[1].selected=true;
		document.getElementById('sdhcp').disabled=true;
		document.getElementById('ip1').style.backgroundColor='#FFFFFF';
		document.getElementById('ip1').style.color='#CCCCCC';
		document.getElementById('ip1').value='';
		document.getElementById('ip1').disabled=true;
		document.getElementById('ip2').style.backgroundColor='#FFFFFF';
		document.getElementById('ip2').style.color='#CCCCCC';
		document.getElementById('ip2').value='';
		document.getElementById('ip2').disabled=true;
		document.getElementById('mdhcp').style.backgroundColor='#FFFFFF';
		document.getElementById('mdhcp').style.color='#CCCCCC';
		document.getElementById('mdhcp').value='';
		document.getElementById('mdhcp').disabled=true;
		document.getElementById('ip').style.backgroundColor='#FFFFFF';
		document.getElementById('ip').style.color='#CCCCCC';
		document.getElementById('ip').value='';
		document.getElementById('ip').disabled=true;
		document.getElementById('masq').style.backgroundColor='#FFFFFF';
		document.getElementById('masq').style.color='#CCCCCC';
		document.getElementById('masq').value='';
		document.getElementById('masq').disabled=true;
		document.getElementById('pass').style.backgroundColor='#FFFFFF';
		document.getElementById('pass').style.color='#CCCCCC';
		document.getElementById('pass').value='';
		document.getElementById('pass').disabled=true;
	}
}

<!-- Fonction pour afficher ou pas des champs si serveur DHCP -->
function tst_sdhcp(valsdhcp)
{
	if (valsdhcp=="Oui")
	{
		document.getElementById('ip1').style.backgroundColor='#CCCCCC';
		document.getElementById('ip1').style.color='#000000';
		document.getElementById('ip1').disabled=false;
		document.getElementById('ip2').style.backgroundColor='#CCCCCC';
		document.getElementById('ip2').style.color='#000000';
		document.getElementById('ip2').disabled=false;
		document.getElementById('mdhcp').style.backgroundColor='#CCCCCC';
		document.getElementById('mdhcp').style.color='#000000';
		document.getElementById('mdhcp').disabled=false;
	}
	else
	{
		document.getElementById('ip1').style.backgroundColor='#FFFFFF';
		document.getElementById('ip1').style.color='#CCCCCC';
		document.getElementById('ip1').value='';
		document.getElementById('ip1').disabled=true;
		document.getElementById('ip2').style.backgroundColor='#FFFFFF';
		document.getElementById('ip2').style.color='#CCCCCC';
		document.getElementById('ip2').value='';
		document.getElementById('ip2').disabled=true;
		document.getElementById('mdhcp').style.backgroundColor='#FFFFFF';
		document.getElementById('mdhcp').style.color='#CCCCCC';
		document.getElementById('mdhcp').value='';
		document.getElementById('mdhcp').disabled=true;
	}
}

/********************/
/* Contrôles divers */
/********************/

// Contrôle la puissance d'un mot de passe
function verif_pw(valpw,warn,idimg)
{
	var nivpw=0;	// Niveau calculé
	var nivmax=9;  // Niveau maximum possible

	if ((valpw) && (valpw!=""))
	{
		// Vérification longueur (7 caractères étant un minimum, sinon résultat nul)
		if (valpw.length >=7)
		{
			var messerr="Vous pouvez renforcer ce mot de passe :\n";
	
			nivpw++;

			// Vérification majuscules
			if (valpw.match(/[A-Z]/))
			{
				nivpw++;
			}
			else
			{
				messerr += "\nEn insérant au moins une majuscule.";
			}
	
			// Vérification minuscules
			if (valpw.match(/[a-z]/))
			{
				nivpw++;
			}
			else
			{
				messerr += "\nEn insérant au moins une minuscule.";
			}
	
			// Vérification si caractères numériques
			if (valpw.match(/\d/))
			{
				nivpw++;
			}
			else
			{
				messerr += "\nEn insérant au moins un chiffre.";
			}
	
			// Vérification présence caractère souligné
			if (valpw.indexOf("_") > -1) 
			{
				nivpw++;
			}
			else
			{
				messerr += "\nEn insérant au moins le caractère souligné ('_').";
			}
	
			// Il doit y avoir un caractère spécial
			if (valpw.match(/[\-\#\@\%\!\$\*\&\<\>]/))
			{
				nivpw++;
			}
			else
			{
				messerr += "\nEn insérant au moins un caractère spécial ('-,#,@,%,!,$,*,&,<,>').";
			}
	
			// Il doit y avoir une parenthèse spéciale
			if (valpw.match(/[\{\}\[\]]/))
			{
				nivpw++;
			}
			else
			{
				messerr += "\nEn insérant au moins une parenthèse spéciale ('[,],{,}').";
			}
	
			//  Il vaut mieux commencer avec une lettre
			if (valpw.match(/^[a-zA-Z]+/))
			{
				nivpw++;
			}
			else
			{
				messerr += "\nEn commencant au moins par une lettre.";
			}
			
			// Les espaces ne sont pas recommandés
			var invalide = " ";
			if (valpw.indexOf(invalide) > -1) 
			{
				messerr += "\nIl n'est pas recommandé d'entrer des espaces.";
			}
			else
			{
				nivpw++;
			}
		}
		else
		{
			var messerr="La longueur doit faire au moins 7 caractères.";
		}

		if ((idimg) && (idimg!=""))
		{
			var champimg=document.getElementById(idimg);

			if (champimg)
			{
				champimg.innerHTML='<img src="../img/niv'+nivpw+'.jpg" title="Niveau mot de passe '+nivpw+'/'+nivmax+'" align="absmiddle">';
			}
		}
		
		if ((warn) && (warn==true))
		{
			if (nivpw != nivmax)
			{
				switch (nivpw)
				{
					case 0 :
					case 1 :
					case 2 :
						var txterr="Puissance de mot de passe : "+nivpw+"/"+nivmax+" (mauvais)\n\n"+messerr;
						break;
					case 3 :
					case 4 :
					case 5 :
						var txterr="Puissance de mot de passe : "+nivpw+"/"+nivmax+" (moyen)\n\n"+messerr;
						break;
					case 6 :
					case 7 :
						var txterr="Puissance de mot de passe : "+nivpw+"/"+nivmax+" (correct)\n\n"+messerr;
						break;
					case 8 :
					case 9 :
						var txterr="Puissance de mot de passe : "+nivpw+"/"+nivmax+" (bon)\n\n"+messerr;
						break;
				}
				alert (txterr);
			}
		}

	}
	else
	{
		if ((idimg) && (idimg!=""))
		{
			var champimg=document.getElementById(idimg);

			if (champimg)
			{
				champimg.innerHTML='<img src="../img/niv0.jpg" title="Niveau mot de passe 0/'+nivmax+'" align="absmiddle">';
			}
		}
	}
}


// Contrôle si une date est dépassée
function verif_dout(valdte,idtxt,typalert)
{
	if ((idtxt) && (idtxt!=""))
	{
		var champtxt=document.getElementById(idtxt);

		if (champtxt)
		{
			if ((valdte) && (valdte!=""))
			{
				var tab_date = valdte.split("-");
				jour=Number(tab_date[0]);
				mois=Number(tab_date[1]);
				annee=Number(tab_date[2]);
		
				var datetst = new Date(annee, Number(mois-1), jour);
		
				var aujourdhui = new Date();
				var jour=aujourdhui.getDate();
				var mois=aujourdhui.getMonth();
				var annee=aujourdhui.getFullYear();
				var datea = new Date(annee, mois, jour);
				
				if (datetst.getTime()<datea.getTime())
				{
					var valtxt='<span class="alerte1">';
					switch (parseInt(typalert))
					{
						// Echéance dépassée
						case 0 : 
							valtxt+="Ech&eacute;ance d&eacute;pass&eacute;e";
							break;
						// Validité dépassée
						case 1 :
							valtxt+="Validit&eacute; d&eacute;pass&eacute;e";
							break;
						// Garantie dépassée
						case 2 :
							valtxt+="Plus sous garantie";
							break;
					}
					valtxt+='</span>';
					champtxt.innerHTML=valtxt;
				}
				else
				{
					champtxt.innerHTML='';
				}
			}
			else
			{
				champtxt.innerHTML='';
			}
		}
	}
}

// Contrôle si un maximum est atteint ou dépassé
function verif_max(valeur,idtxt,maxi)
{
	if ((idtxt) && (idtxt!=""))
	{
		var champtxt=document.getElementById(idtxt);

		if (champtxt)
		{
			if ((valeur) && (valeur!=""))
			{
				if ((maxi) && (maxi!=""))
				{
					if (parseInt(valeur)>=parseInt(maxi))
					{
						var valtxt='<span class="alerte1">';
	
						if (parseInt(valeur)>parseInt(maxi))
						{
							valtxt+="Maximum d&eacute;pass&eacute;";
						}
						else
						{
							valtxt+="Maximum atteint";
						}
						valtxt+='</span>';
						champtxt.innerHTML=valtxt;
					}
					else
					{
						champtxt.innerHTML='';
					}
				}
				else
				{
					champtxt.innerHTML='';
				}
			}
			else
			{
				champtxt.innerHTML='';
			}
		}
	}
}

