
// Fonction qui vérifie qu'un mot de passe ne contienne pas de caractères non autorisés
// On autorise que les chiffres, lettres, underscore (_), tiret (-) et point (.)
function  verifPassword(pass)
{
	var exp	= new RegExp("^[0-9A-Z_.-]{2,50}$", "i");
	if(exp.test(pass) == false)
		return false;
	else
		return true;
}

// Fonction qui vérifie les données d'un formulaire de coordonnées
function verifUtilisateur()
{
	var longueur = 2;
	if(document.forms[0].prenom.value == "")
	{
		window.alert("Veuillez renseigner votre prénom.");
		document.forms[0].prenom.focus();
		return false;
	}
	else if(document.forms[0].nom.value == "")
	{
		window.alert("Veuillez renseigner votre nom.");
		document.forms[0].nom.focus();
		return false;
	}
	else if(document.forms[0].email.value == "")
	{
		window.alert("Veuillez renseigner votre adresse email.");
		document.forms[0].email.focus();
		return false;
	}
	else if(document.forms[0].password.value != "")
	{
		if(document.forms[0].oldpassword.value == "")
		{
			window.alert("Veuiller renseigner votre ancien mot de passe");
			document.forms[0].oldpassword.focus();
			return false;
		}
		else if(document.forms[0].password.value.length < longueur)
		{
			alert('Votre mot de passe doit être composé d\'au minimum '+longueur+' caractères');
			document.forms[0].password.value = "";
			document.forms[0].password2.value = "";
			document.forms[0].password.focus();
			return false;
		}
		else if(verifPassword(document.forms[0].password.value) == false)
		{
			var message = 'Votre mot de passe contient des caractères qui ne sont pas autorisés.';
			message += '\nLes caractères autorisés sont les chiffres, les lettres, ';
			message += 'le trait de soulignement (_), le tiret (-) ou le point (.).';
			message += '\nLes accents et autres symboles ne sont pas autorisés.';
			alert(message);
			document.forms[0].password.value = "";
			document.forms[0].password2.value = "";
			document.forms[0].password.focus();
			return false;
		}
		else if(document.forms[0].password.value != document.forms[0].password2.value)
		{
			alert('Veuillez saisir le même mot de passe dans les 2 champs.');
			document.forms[0].password.value = "";
			document.forms[0].password2.value = "";
			document.forms[0].password.focus();
			return false;
		}
		else
			return true;
	}
	
	else
	{
		return true;
	}
}

// Fonction qui vérifie les données d'un formulaire Client (création)
function verifClient()
{
	var longueur = 2;
	if(document.forms[0].societe.value == "")
	{
		window.alert("Veuillez renseigner le nom de la société.");
		document.forms[0].societe.focus();
		return false;
	}
	else if(document.forms[0].adresse1.value == "")
	{
		window.alert("Veuillez renseigner l'adresse de client.");
		document.forms[0].adresse1.focus();
		return false;
	}
	else if(document.forms[0].cp.value == "")
	{
		window.alert("Veuillez renseigner le code postal du client.");
		document.forms[0].cp.focus();
		return false;
	}
	else if(document.forms[0].ville.value == "")
	{
		window.alert("Veuillez renseigner la ville du client.");
		document.forms[0].ville.focus();
		return false;
	}
	else if(document.forms[0].login.value == "")
	{
		window.alert("Veuillez renseigner l'identifiant du client.");
		document.forms[0].login.focus();
		return false;
	}
	else if(document.forms[0].password.value == "")
	{
		window.alert("Veuillez renseigner le mot de passe du client.");
		document.forms[0].password.focus();
		return false;
	}
	else if((document.forms[0].jour_debut.value == "") || (document.forms[0].mois_debut.value == "") || (document.forms[0].annee_debut.value == ""))
	{
		window.alert("Veuillez renseigner la date de début du contrat.");
		document.forms[0].jour_debut.focus();
		return false;
	}
	else if((document.forms[0].jour_fin.value == "") || (document.forms[0].mois_fin.value == "") || (document.forms[0].annee_fin.value == ""))
	{
		window.alert("Veuillez renseigner la date de fin du contrat.");
		document.forms[0].jour_fin.focus();
		return false;
	}
	else if(document.forms[0].temps_reponse.value == "")
	{
		window.alert("Veuillez renseigner le temps de réponse pour ce contrat.");
		document.forms[0].temps_reponse.focus();
		return false;
	}
	else if(document.forms[0].prenom.value == "")
	{
		window.alert("Veuillez renseigner le prénom du contact.");
		document.forms[0].prenom.focus();
		return false;
	}
	else if(document.forms[0].nom.value == "")
	{
		window.alert("Veuillez renseigner le nom du contact.");
		document.forms[0].nom.focus();
		return false;
	}
	else if(document.forms[0].commercial.value == "")
	{
		window.alert("Veuillez renseigner le commercial en charge du dossier.");
		document.forms[0].commercial.focus();
		return false;
	}
	
	else
	{
		return true;
	}
}

// Fonction qui vérifie les données d'un formulaire Client (modif)
function verifClient2()
{
	var longueur = 2;
	if(document.forms[0].societe.value == "")
	{
		window.alert("Veuillez renseigner le nom de la société.");
		document.forms[0].societe.focus();
		return false;
	}
	else if(document.forms[0].adresse1.value == "")
	{
		window.alert("Veuillez renseigner l'adresse de client.");
		document.forms[0].adresse1.focus();
		return false;
	}
	else if(document.forms[0].cp.value == "")
	{
		window.alert("Veuillez renseigner le code postal du client.");
		document.forms[0].cp.focus();
		return false;
	}
	else if(document.forms[0].ville.value == "")
	{
		window.alert("Veuillez renseigner la ville du client.");
		document.forms[0].ville.focus();
		return false;
	}
	else if(document.forms[0].login.value == "")
	{
		window.alert("Veuillez renseigner l'identifiant du client.");
		document.forms[0].login.focus();
		return false;
	}
	else if(document.forms[0].password.value == "")
	{
		window.alert("Veuillez renseigner le mot de passe du client.");
		document.forms[0].password.focus();
		return false;
	}
	else if((document.forms[0].jour_debut.value == "") || (document.forms[0].mois_debut.value == "") || (document.forms[0].annee_debut.value == ""))
	{
		window.alert("Veuillez renseigner la date de début du contrat.");
		document.forms[0].jour_debut.focus();
		return false;
	}
	else if((document.forms[0].jour_fin.value == "") || (document.forms[0].mois_fin.value == "") || (document.forms[0].annee_fin.value == ""))
	{
		window.alert("Veuillez renseigner la date de fin du contrat.");
		document.forms[0].jour_fin.focus();
		return false;
	}
	else if(document.forms[0].temps_reponse.value == "")
	{
		window.alert("Veuillez renseigner le temps de réponse pour ce contrat.");
		document.forms[0].temps_reponse.focus();
		return false;
	}
	else if(document.forms[0].contact.value == "")
	{
		window.alert("Veuillez renseigner le contact principal pour ce client.");
		document.forms[0].contact.focus();
		return false;
	}
	else if(document.forms[0].commercial.value == "")
	{
		window.alert("Veuillez renseigner le commercial en charge du dossier.");
		document.forms[0].commercial.focus();
		return false;
	}
	
	else
	{
		return true;
	}
}

// Fonction qui vérifie les données d'un contact
function verifContact()
{
	var longueur = 2;
	if(document.forms[0].prenom.value == "")
	{
		window.alert("Veuillez renseigner le prénom du contact.");
		document.forms[0].prenom.focus();
		return false;
	}
	else if(document.forms[0].nom.value == "")
	{
		window.alert("Veuillez renseigner le nom du contact.");
		document.forms[0].nom.focus();
		return false;
	}
	else if(document.forms[0].client.value == "")
	{
		window.alert("Veuillez selectionner la société de ce contact.");
		document.forms[0].client.focus();
		return false;
	}
	
	else
	{
		return true;
	}
}

// Fonction qui vérifie les données d'une intervention
function verifInterv()
{
	//alert(document.forms[0].elements["initClient"].checked);
	//alert(document.forms[0].elements["initiative"].value);
	
	if(document.forms[0].elements["libelle"].value == "")
	{
		window.alert("Veuillez renseigner le libellé de l'intervention.");
		document.forms[0].libelle.focus();
		return false;
	}
	else if(document.forms[0].elements["client"].value == "")
	{
		window.alert("Veuillez selectionner le client.");
		document.forms[0].client.focus();
		return false;
	}
	else if(document.forms[0].elements["intervenant"].value == "")
	{
		window.alert("Veuillez selectionner le consultant.");
		document.forms[0].intervenant.focus();
		return false;
	}
	else if(document.forms[0].elements["base_concernee"].value == "")
	{
		window.alert("Veuillez indiquer la base de données concernée par l'intervention.");
		document.forms[0].base_concernee.focus();
		return false;
	}
	else if((document.forms[0].elements["jour_date_debut"].value == "") || (document.forms[0].elements["mois_date_debut"].value == "") || (document.forms[0].elements["annee_date_debut"].value == "") || (document.forms[0].elements["heure_date_debut"].value == "") || (document.forms[0].elements["minute_date_debut"].value == ""))
	{
		window.alert("Veuillez renseigner la date/heure de début d'intervention.");
		document.forms[0].jour_date_debut.focus();
		return false;
	}
	else if(document.forms[0].elements["commanditaire"].value == "")
	{
		window.alert("Veuillez indiquer le nom du commanditaire de l'intervention.");
		document.forms[0].commanditaire.focus();
		return false;
	}
	else if((document.forms[0].elements["initClient"].checked == false) && (document.forms[0].elements["initQualea"].checked == false))
	{
		window.alert("Veuillez indiquer qui est à l'initiative de l'appel pour cette intervention.");
		document.forms[0].initClient.focus();
		return false;
	}
	else if((document.forms[0].elements["jour_date_fin"].value == "") || (document.forms[0].elements["mois_date_fin"].value == "") || (document.forms[0].elements["annee_date_fin"].value == "") || (document.forms[0].elements["heure_date_fin"].value == "") || (document.forms[0].elements["minute_date_fin"].value == ""))
	{
		window.alert("Veuillez renseigner la date/heure de fin d'intervention.");
		document.forms[0].jour_date_fin.focus();
		return false;
	}
	else if(document.forms[0].elements["contact_fin_interv"].value == "")
	{
		window.alert("Veuillez indiquer le nom du contact appelé pour la fin de l'intervention.");
		document.forms[0].contact_fin_interv.focus();
		return false;
	}
	else if(document.forms[0].elements["periode"].value == "")
	{
		window.alert("Veuillez selectionner la période d'execution de l'intervention.");
		document.forms[0].periode.focus();
		return false;
	}
	else if((document.forms[0].elements["heure_duree"].value == "") || (document.forms[0].elements["minute_duree"].value == ""))
	{
		window.alert("Veuillez indiquer la durée d'intervention.");
		document.forms[0].heure_duree.focus();
		return false;
	}
	else if(document.forms[0].elements["nb_tickets"].value == "")
	{
		window.alert("Le nombre de tickets n'est pas indiqué.");
		document.forms[0].nb_tickets.focus();
		return false;
	}
	else if(document.forms[0].elements["symptomes"].value == "")
	{
		window.alert("Veuillez indiquer les symptomes pour cette intervention.");
		document.forms[0].symptomes.focus();
		return false;
	}
	else if(document.forms[0].elements["causes"].value == "")
	{
		window.alert("Veuillez indiquer les causes pour cette intervention.");
		document.forms[0].causes.focus();
		return false;
	}
	else if(document.forms[0].elements["actions"].value == "")
	{
		window.alert("Veuillez indiquer les actions pour cette intervention.");
		document.forms[0].actions.focus();
		return false;
	}
	else if((document.forms[0].elements["dossierBox"].checked == true) && (document.forms[0].elements["dossier"].value == ""))
	{
		window.alert("Veuillez sélectionner un dossier");
		document.forms[0].dossier.focus();
		return false;
	}
	else
	{
		return true;
	}
	
	/*
	var longueur = 2;
	if(document.forms[0].libelle.value == "")
	{
		window.alert("Veuillez renseigner le libellé de l'intervention.");
		document.forms[0].libelle.focus();
		return false;
	}
	else if(document.forms[0].client.value == "")
	{
		window.alert("Veuillez selectionner le client.");
		document.forms[0].client.focus();
		return false;
	}
	else if(document.forms[0].intervenant.value == "")
	{
		window.alert("Veuillez selectionner le consultant.");
		document.forms[0].intervenant.focus();
		return false;
	}
	else if(document.forms[0].plage_horaire.value == "")
	{
		window.alert("Veuillez selectionner la période d'execution de l'intervention.");
		document.forms[0].plage_horaire.focus();
		return false;
	}
	else if((document.forms[0].heure_duree.value == "") || (document.forms[0].minute_duree.value == ""))
	{
		window.alert("Veuillez indiquer la durée d'intervention.");
		document.forms[0].heure_duree.focus();
		return false;
	}
	else if(document.forms[0].nb_tickets.value == "")
	{
		window.alert("Veuillez indiquer le nombre de tickets utilisés.");
		document.forms[0].nb_tickets.focus();
		return false;
	}
	else if(document.forms[0].base_concernee.value == "")
	{
		window.alert("Veuillez indiquer la base de données concernée par l'intervention.");
		document.forms[0].base_concernee.focus();
		return false;
	}
	else if((document.forms[0].jour_date_debut.value == "") || (document.forms[0].mois_date_debut.value == "") || (document.forms[0].annee_date_debut.value == "") || (document.forms[0].heure_date_debut.value == "") || (document.forms[0].minute_date_debut.value == ""))
	{
		window.alert("Veuillez renseigner la date/heure de début d'intervention.");
		document.forms[0].jour_date_debut.focus();
		return false;
	}
	else if(document.forms[0].commanditaire.value == "")
	{
		window.alert("Veuillez indiquer le nom du commanditaire de l'intervention.");
		document.forms[0].commanditaire.focus();
		return false;
	}
	else if(document.forms[0].initiative.value == "")
	{
		window.alert("Veuillez indiquer qui est à l'initiative de l'appel pour cette intervention.");
		document.forms[0].initiative.focus();
		return false;
	}
	else if((document.forms[0].jour_date_fin.value == "") || (document.forms[0].mois_date_fin.value == "") || (document.forms[0].annee_date_fin.value == "") || (document.forms[0].heure_date_debut.value == "") || (document.forms[0].minute_date_fin.value == ""))
	{
		window.alert("Veuillez renseigner la date/heure de fin d'intervention.");
		document.forms[0].jour_date_fin.focus();
		return false;
	}
	else if(document.forms[0].contact_fin_interv.value == "")
	{
		window.alert("Veuillez indiquer le nom du contact appelé pour la fin de l'intervention.");
		document.forms[0].contact_fin_interv.focus();
		return false;
	}
	else if(document.forms[0].symptomes.value == "")
	{
		window.alert("Veuillez indiquer les symptomes pour cette intervention.");
		document.forms[0].symptomes.focus();
		return false;
	}
	else if(document.forms[0].causes.value == "")
	{
		window.alert("Veuillez indiquer les causes pour cette intervention.");
		document.forms[0].causes.focus();
		return false;
	}
	else if(document.forms[0].actions.value == "")
	{
		window.alert("Veuillez indiquer les actions pour cette intervention.");
		document.forms[0].actions.focus();
		return false;
	}
	
	else
	{
		return true;
	}
	*/
}

// Fonction qui vérifie les données d'un formulaire Dossier (création)
function verifDossier()
{
	var longueur = 2;
	if(document.forms[0].libelleD.value == "")
	{
		window.alert("Veuillez renseigner le libellé du dossier.");
		document.forms[0].libelleD.focus();
		return false;
	}
	else if(document.forms[0].jour_date_limite.value == "")
	{
		window.alert("Veuillez renseigner le jour de la date d'échéance du dossier.");
		document.forms[0].jour_date_limite.focus();
		return false;
	}
	else if(document.forms[0].mois_date_limite.value == "")
	{
		window.alert("Veuillez renseigner le mois de la date d'échéance du dossier.");
		document.forms[0].mois_date_limite.focus();
		return false;
	}
	else if(document.forms[0].annee_date_limite.value == "")
	{
		window.alert("Veuillez renseigner l'année de la date d'échéance du dossier.");
		document.forms[0].annee_date_limite.focus();
		return false;
	}
	else if(document.forms[0].client.value == "")
	{
		window.alert("Veuillez renseigner le client en rapport avec le dossier.");
		document.forms[0].client.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function verifDate()
{
	if(document.forms[0].choixJour.value == "")
	{
		window.alert("Veuillez renseigner le jour de la date de debut.");
		document.forms[0].choixJour.focus();
		return false;
	}
	else if(document.forms[0].choixMois.value == "")
	{
		window.alert("Veuillez renseigner le mois de la date de debut.");
		document.forms[0].choixMois.focus();
		return false;
	}
	else if(document.forms[0].choixAn.value == "")
	{
		window.alert("Veuillez renseigner l'année de la date de debut.");
		document.forms[0].choixAn.focus();
		return false;
	}
	if(document.forms[0].choixJour2.value == "")
	{
		window.alert("Veuillez renseigner le jour de la date de fin.");
		document.forms[0].choixJour2.focus();
		return false;
	}
	else if(document.forms[0].choixMois2.value == "")
	{
		window.alert("Veuillez renseigner le mois de la date de fin.");
		document.forms[0].choixMois2.focus();
		return false;
	}
	else if(document.forms[0].choixAn2.value == "")
	{
		window.alert("Veuillez renseigner l'année de la date de fin.");
		document.forms[0].choixAn2.focus();
		return false;
	}
	else if(!verifValidDate())
	{
		window.alert("Veuillez renseigner des dates valides.");
		document.forms[0].choixJour.focus();
		return false;
	}
	else return true;
}

function verifValidDate()
{
	if((document.forms[0].choixAn2.value) < (document.forms[0].choixAn.value))
		return false;			
	if((document.forms[0].choixAn2.value) == (document.forms[0].choixAn.value))
	{
		if((document.forms[0].choixMois2.value) < (document.forms[0].choixMois.value))
			return false;
		if((document.forms[0].choixMois2.value) == (document.forms[0].choixMois.value))
		{
			if((document.forms[0].choixJour2.value) < (document.forms[0].choixJour.value))
				return false;
			else
				 return true;
		}
		else return true;
	}
	else return true;
}

// Vérifie si un champ contient une valeur numérique
function verifChampNumerique(valeur)
{
	var exp		= new RegExp("^[0-9]{1,15}$");
	if(exp.test(valeur) == false)
		return false;
	else
		return true;
}

// Fonction qui remplie une liste en fonction du choix dans une autre liste
function remplirListe(formulaire)
{
	mark = formulaire.client.options[formulaire.client.selectedIndex].value;
	
	formulaire.contact.options.length = 0;
	var opt0 = new Option('                             ', 0);
	formulaire.contact.options[0] = opt0;
	
	var k=1;
	
	// Ajout des contacts en rapport avec le client selectionné
	for(var j=0; j < t.length; j++)
	{
		if(t[j][0] == mark)
		{
			var opt = new Option(t[j][2], t[j][1]);
			formulaire.contact.options[k] = opt;
			k++;
		}
	}
	
	var opt = new Option('------------------------------', 0);
	formulaire.contact.options[k] = opt;
	k++;
	
	// Ajout des contacts sans id_client (alertes email, etc...)
	for(var j=0; j < t.length; j++)
	{
		if(t[j][0] == '')
		{
			var opt = new Option(t[j][2], t[j][1]);
			formulaire.contact.options[k] = opt;
			k++;
		}
	}
}

// Fonction qui remplie une liste en fonction du choix dans une autre liste
function remplirListe2(formulaire)
{
	mark = formulaire.client.options[formulaire.client.selectedIndex].value;
	
	formulaire.dossier.options.length = 0;
	var opt0 = new Option('                    ', "");
	formulaire.dossier.options[0] = opt0;
	
	var k=1;
	for(var j=0; j < t2.length; j++)
	{
		if(t2[j][0] == mark)
		{
			var opt = new Option(t2[j][2], t2[j][1]);
			formulaire.dossier.options[k] = opt;
			k++;
		}
	}
}

function remplirListe3(formulaire)
{
	mark = formulaire.client.options[formulaire.client.selectedIndex].value;
	
	formulaire.intervention.options.length = 0;
	//var opt0 = new Option('                    ', "");
	//formulaire.intervention.options[0] = opt0;
	
	var k=0;
	for(var j=0; j < t.length; j++)
	{
		if(t[j][0] == mark)
		{
			var opt = new Option(t[j][2], t[j][1]);
			formulaire.intervention.options[k] = opt;
			k++;
		}
	}
}

// Fonction qui modifie le nombre de tickets (proposés) dans le champ en question...
function modifTickets()
{
	//window.alert("test");
	
	heure_deb	= document.forms[0].elements["heure_date_debut"].value;
	minute_deb	= document.forms[0].elements["minute_date_debut"].value;
	heure_fin	= document.forms[0].elements["heure_date_fin"].value;
	minute_fin	= document.forms[0].elements["minute_date_fin"].value;
	periode		= document.forms[0].elements["periode"].value;
	//heure_deb	= document.getElementById('heure_date_debut').getAttribute('value')
	
	/*
	heure_deb	= document.getElementById("heure_date_debut");
	minute_deb	= document.getElementById("minute_date_debut");
	heure_fin	= document.getElementById("heure_date_fin");
	minute_fin	= document.getElementById("minute_date_fin");
	periode		= document.getElementById("periode");
	*/
	
	//window.alert("Heure : " + heure_deb + ":" + minute_deb + ":00");
	
	if((periode != '') && (heure_deb != '') && (minute_deb != '') && (heure_fin != '') && (minute_fin != ''))
	{
		var idcli		= document.forms[0].elements["client"].value;
		var tickets		= document.forms[0].elements["tickets"].value;
		var acces_nuit	= document.forms[0].elements["acces_nuit"].value;
		var acces_weekend	= document.forms[0].elements["acces_weekend"].value;
		var	duree	= 0;
		var nb		= 0;
		var coeff	= 0;
		diff_heures		= (document.forms[0].elements["heure_date_fin"].value - document.forms[0].elements["heure_date_debut"].value);
		diff_minutes	= (document.forms[0].elements["minute_date_fin"].value - document.forms[0].elements["minute_date_debut"].value);
		duree			= diff_minutes + (60 * diff_heures);
		
		diff_jour	= document.forms[0].elements["jour_date_debut"].value - document.forms[0].elements["jour_date_fin"].value;
		
		// si l'intervention à commencé la veille on enleve 1 jour
		if(diff_jour < 0)
			duree = duree - (60*24*diff_jour);
		
		//duree	= parseInt(document.forms[0].minute_duree.value);
		//duree	+= ( 60 * parseInt(document.forms[0].heure_duree.value) );
		
		// Nb de tickets pour la durée calculée (1 ticket = 15 minutes)
		nb	= Math.ceil(duree / 15);
		
		//alert("tabTickets["+idcli+"]["+periode+"]");
		
		// à chaque période correspond un coefficient...
		coeff	= tabTickets[idcli][periode];
		
		//if(document.forms[0].jour_date_debut.value < document.forms[0].jour_date_fin.value)	heures	= heures + 24;
		
		heures	= Math.floor(duree / 60);
		minutes	= duree % 60;
		//si une intervention est fait hors des limites du contrat
		//if(periode ==) 
		
		//si le client est VDI
		if(idcli == 10 && periode == 1)
		{
			var h = (heure_deb*60)-0;
			var m = minute_deb - 0;
			var dte = (h+m) - 0;
			var nbt = 0;
			
			while(nb > 0)
			{
				if(dte<540 && dte>=450) nbt = nbt + 3;
				else nbt = nbt + 1;
				dte = dte +15;
				nb = nb - 1;
			}
			document.forms[0].nb_tickets.value 		= nbt;
		}
		else
		document.forms[0].nb_tickets.value 		= (nb * coeff);
		
		document.forms[0].minute_duree.value	= minutes;
		document.forms[0].heure_duree.value		= heures;
	}
}




