﻿//fonction verif_form teste si les champs obligatoires sont pas vide , si les champs numeriques sont du bon type et si les email sont valides: 
// entrÃ©e : une chaÃ®ne
// sortie : true si pas de probleme / false si un champs n'est pas correct ( avec affichage de la liste des champs non numÃ©riques)
test_text = "*";
test_num = "numerique";
test_email = "email";
message = "Merci de remplir tous les champs obligatoires(*).";

function verif_form(formulaire) 
{
email = 1
numerique = 0 
erreurNumerique = ""
vide = 0;
	
	for ( var i=0; i<formulaire.getElementsByTagName("label").length; i++ ) 
	{
		element_label = formulaire.getElementsByTagName("label")[i];
		txt_label = element_label.firstChild.nodeValue;   
		class_label = element_label.className;


		if ( test_email != "" && class_label == test_email ) 
		{
			if ( element_label.getAttribute("htmlFor") || element_label.getAttribute("for") ) 
			{
				if ( document.all ) 
				{	
					id_champs = element_label.getAttribute("htmlFor");
				}
				else 
					{
					id_champs = element_label.getAttribute("for");
					}	
				champs = document.getElementById(id_champs);
				champsEmail = champs.value.replace(/(^\s*)|(\s*$)/g,'');
				if (champsEmail !="")
				{
					if ( champsEmail.replace(/[\-\w]+[\.\-\w]*@[\-\w]+\.[\-\w]+[\.\-\w]*/, '*')=="*") 
							email = 1;
					else
							email = 0;
				}						
			}				
		}
		
		if ( test_num != "" && class_label == test_num ) 
		{
			if ( element_label.getAttribute("htmlFor") || element_label.getAttribute("for") ) 
			{
				if ( document.all ) 
				{	
					id_champs = element_label.getAttribute("htmlFor");
				}
				else 
					{
					id_champs = element_label.getAttribute("for");
					}	
				champs = document.getElementById(id_champs);
				
				if ( isNaN(champs.value) )
				{	
					numerique = 1;
					erreurNumerique = erreurNumerique + "\n"  + txt_label;
				}	
			}				
		}		
		
//		if ( (test_text != "" && txt_label.indexOf(test_text) != -1) || (test_class != "" && class_label == test_class) ) 
		if ( test_text != "" && txt_label.indexOf(test_text) != -1) 
		{
			if ( element_label.getAttribute("htmlFor") || element_label.getAttribute("for") ) 
			{
				if ( document.all ) 
					id_champs = element_label.getAttribute("htmlFor");
				else	
					id_champs = element_label.getAttribute("for");
					champs = document.getElementById(id_champs);
					if ( champs.tagName == "INPUT" && champs.getAttribute("type") == "text" ) 
					{
						if ( champs.value == "" ) 
							vide ++;

					}
					else if ( champs.tagName == "INPUT" && champs.getAttribute("type") == "file" ) 	
					{
						if ( champs.value == "" ) 
							vide ++;
						
					}
					else if ( champs.tagName == "TEXTAREA" && champs.value == "" ) 	
							vide ++;

							
			}
			else 
			{
				if ( element_label.getElementsByTagName("input")[0] ) 
				{
					input_label = element_label.getElementsByTagName("input")[0];
					if ( input_label.getAttribute("type") == "text" && input_label.value == "" ) 				
							vide ++;
					if ( input_label.getAttribute("type") == "file" && input_label.value == "" ) 				
							vide ++; 	
					
				}
				else if ( element_label.getElementsByTagName("textarea")[0] && element_label.getElementsByTagName("textarea")[0].value == "" ) 		
						
						vide ++;
						
			}
		}
	}

	for (var j=0; j<formulaire.getElementsByTagName("select").length; j++ ) 
	{
		liste = formulaire.getElementsByTagName("select")[j];
		for ( var k=0; k<liste.options.length; k++) 
		{
			if ( liste.options[k].selected == true && liste.options[k].value == "" ) 
						
							vide ++;
		}

	}

		
	if ( vide != 0 ) 
	{
		alert(message);
		return false;
	}
	else if (email != 1 )
	{
		alert('Votre adresse email est non valide');
		return false;
	}
	else if (numerique == 1 )
	{
		alert("Le ou les champs de saisie ne sont pas numériques : "+ erreurNumerique);
		return false;
	}	
	else
	{
		return true;
	}
}

/*Dans un formulaire, un label permet de donner un titre à un champ. 

Un label peut être lié explicitement ou implicitement à un champs :
- implicitement : le champ se trouve à l'intérieur des balises label
- explicitement : le champ doit avoir son attribut id de renseigné, cette même valeur est donnée à l'attribut for de la balise label, ce qui permet de les lier

implicite : <label class="rouge">Nom : <input name="nom" type="text"></label>

explicite : <label for="prenom" class="rouge">Prénom : </label> <input name="prenom" type="text" id="prenom">

Grâce à la fonction getElementsByTagName() on construit une boucle qui va passer en revue tous les labels de la fonction.
Pour chacun, on récupère le texte présent entre les balises ainsi que la classe appliquée.
On teste quelle variable à été renseignée (test_class ou test_text), s'il s'agit de la classe, on la compare avec celle du label, s'il s'agit d'une chaîne de caractères on la compare avec le texte du label.

Chaque label est lié à un champ grâce à l'attribut for de la balise label dont la valeur est égale à l'id du champ correspondant (for de label = id de input par exemple).
On récupère donc la valeur de for avec getAttribute(). Cependant, il faudra faire attention car pour internet explorer, for s'obtient avec getAttribute("htmlFor") alors que sous les autres navigateurs on utilise simplement getAttribute("for").

Avec la valeur récupérée, on peut facilement cibler le champ en utilisant document.geElementById().

On vérifie ensuite qu'il s'agit bien d'un input de type=text ou d'un textarea avec tagName qui nous renvoie le nom de la balise.
Enfin, on teste la valeur du champ, si le champ est vide alors on incrémente la variable nommée vide. */




function CheckFormProduit(formulaire) 

{
	
	var StrMessage 	 = "Des erreurs sont survenues durant le traitement de votre formulaire !\nMerci de faire les corrections suivantes :\n\n\n";
	var LibelProduit = formulaire.strLibelProduit.value;
	var Description	 = formulaire.txtDescrProduit.value;
	

	if (LibelProduit == '') 
		{
		alert (StrMessage + "Un Libellé est obligatoire !");
		formulaire.strLibelProduit.focus();
		} 
	else 
		{
		if (Description == '') 
			{
			alert (StrMessage + "Une description est obligatoire !");
			formulaire.txtDescrProduit.focus();
			}
		else 
			{	
				formulaire.submit();
			}
		}
}	
/*   */


//fonction de confirmation
function confirmAction(message,action)
	{
		 if(confirm(message))
			{
				eval(action);
			}
	}

function CheckFormOffre(formulaire) 

{
	
	var StrMessage 	 = "Des erreurs sont survenues durant le traitement de votre formulaire !\nMerci de faire les corrections suivantes :\n\n\n";
	var LibelOffre = formulaire.strLibelOffre.value;
	var strLibelMotCle = formulaire.strLibelMotCle.value;
	var Description	 = formulaire.txtDescOffre.value;
	

	if (LibelOffre == '') 
		{
		alert (StrMessage + "Un Libellé est obligatoire !");
		formulaire.strLibelOffre.focus();
		} 
	else 
	
		{	
		if (strLibelMotCle=="")
			{
			alert (StrMessage + "Un mot clé est obligatoire !");
			formulaire.strLibelMotCle.focus();	
			}
		else
		
			{	
			formulaire.submit();
			}
		}
}


//fonction de contrôle des champs Libellé, Chemin d'accs du pdf, et du type de Pdf
function CheckFormPdf(formulaire) 
{
	var strMessage 	 		= "Des erreurs sont survenues durant le traitement de votre formulaire !\nMerci de faire les corrections suivantes :\n\n\n" ;
	var strLibelPdf 		= formulaire.strLibelPdf.value;
	var strNomFichierPdf	= formulaire.strNomFichierPdf.value;
	if (strLibelPdf == '') 
		{
		alert (strMessage + "Un Libellé est obligatoire !");
		formulaire.strLibelPdf.focus();
		} 
	else
		
		{
			formulaire.submit();
			
		}
			
		
							
}


function CheckFormTypePdf(formulaire) 
{
	var strMessage 	 		= "Des erreurs sont survenues durant le traitement de votre formulaire !\nMerci de faire les corrections suivantes :\n\n\n" ;
	var strLibelTypepdf 	= formulaire.strLibelTypepdf.value;
	var strIconeTypePdf		= formulaire.strIconeTypePdf.value;
	if (strLibelTypepdf == '') 
		{
		alert (strMessage + "Un libellé est obligatoire !");
		formulaire.strLibelTypepdf.focus();
		} 
	else
		{
		if (strIconeTypePdf == '') 
			{
			alert (strMessage + "La sélection d'une icone est obligatoire !");
			formualire.strIconeTypePdf.focus();
			
			}
		 
		else
			
			{
			formulaire.submit();
			}
			
		}					
}

function CheckFormTypePdf2(formulaire) 
{
	var strMessage 	 		= "Des erreurs sont survenues durant le traitement de votre formulaire !\nMerci de faire les corrections suivantes :\n\n\n" ;
	var strLibelTypePdf 	= formulaire.strLibelTypePdf.value;
	if (strLibelTypePdf == '') 
		{
		alert (strMessage + "Un libellé est obligatoire !");
		formulaire.strLibelTypePdf.focus();
		} 
	else
		{
			formulaire.submit();
			
		}					
}

//fonction menu dynamique
function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=20; i++) 
	{
		if (document.getElementById('smenu'+i)) 
		{	
			document.getElementById('smenu'+i).style.display='none'	;
		}
	}
if (d) 
{	
	d.style.display='block'; 
	
}

}

function verif_CP(formulaire)
{

var code_postal = formulaire.strCodePostal.value.length;
if (code_postal != 5) 
			{
			alert ("Le code postal n'est pas valide");
			}
		else 
			{	
				formulaire.submit();
			}
}


function fct(evt)
{
    evt = (evt)? evt : event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if(charCode == 13)
    {
        document.login.submit(); 
 
    }
    
}


function CheckFormCheckBox(formulaire) {
	// Test sur les cases a cocher
	//Test si presence de case a cocher dans le formulaire
	tmp = true;
	isCheckbox = 0;
	for (var j=0; j<formulaire.getElementsByTagName("input").length; j++ ) 
	{
		input_label = formulaire.getElementsByTagName("input")[j];
		if (input_label.getAttribute("type") == "checkbox") 
		{
			isCheckbox = 1;
		}
	}
	
	if (isCheckbox)
	{
		coche = 0;
		for (var j=0; j<formulaire.getElementsByTagName("input").length; j++ ) 
		{
			input_label = formulaire.getElementsByTagName("input")[j];
			if (input_label.getAttribute("type") == "checkbox" && input_label.checked == true) 
			{
				coche = coche + 1;
			}
		}
		if (coche == 0) 
		{
			alert("Merci de sélectionner au moins un destinataire.");
			tmp = false;
		}
	}
	return tmp;
}
