// cette fonction permet de tester une serie de champs
// exemple : 
//  <form method="post" action="send.php" onsubmit="return(valid_text(this,'NOM,PRENOM'));">
//    verifiera que les champs NOM et PRENOM sont non vides.
//    Affiche une alerte avec la liste des champs a complˇter
function valid_text(f,liste)
{
    var msg = '';
    var array = liste.split(',');
    for(var i in array) {
        if(f.elements[array[i]].value == '') {
        	msg += "   ";
            msg += array[i];
            msg += "\n";
        }
    }
    if(msg != '') {
        alert('Il manque les informations suivantes :\n'+msg);
        return(false);
    }
    return(true);    
}


function GetElementValue(f, champ)
{ 
	var result="";
	var objElement = f.elements[champ];
	
	switch (objElement.type) { 
		case "text": 
		case "hidden": 
		case "textarea": 
		case "password": 
			result = objElement.value; 
			break; 
		case "select-one": 
		case "select": 
			if (objElement.selectedIndex >= 0) 
				result = objElement.options[objElement.selectedIndex].value; 
			break; 
		case "radio": 
		case "checkbox": 
			
			for (var i=0; i<objElement.form.elements.length; i++) { 
				if (objElement.form.elements[i].name == objElement.name) { 
					if (objElement.form.elements[i].checked) 
						result += objElement.form.elements[i].value+","; 
				} 
			} 
			break; 
	} 
	return result; 
} 

function GetRadioElementValue(f, champ)
{ 
	var result="";
	for (var i=0; i<f.elements.length; i++) { 
		if (f.elements[i].name == champ) { 
			if (f.elements[i].checked) 
				result += f.elements[i].value+","; 
		} 
	} 
	return result; 
} 

function valid_single_text(f,str)
{
	var val = GetElementValue(f, str);
	if(val == '')
	   return(false);
    return(true);    
}

function valid_phone(f,champ)
{
    var ok = true;
    if(f.elements[champ].value == '')
    	ok = false;
    else {
	  var s;
	  for(var i = 0; i < f.elements[champ].value.length; i++)
	  {
	    // le caractuel est stockˇ dans s.
	    s = f.elements[champ].value.charAt(i);
	    // Caract¸res valides : espace, parenth¸ses, "/", "-" et "+".
	    if( !((s >= 0) && (s <= 9)) && (s != ' ') && (s != '-') && (s != '+') && (s != '/') && (s != '(') && (s != ')'))
	    {
	      ok = false;
	    }
	  }
	}
	
	if(ok != true) {
    	alert('Le champ ' + champ + ' ne peut comporter que des chiffres, '
	       + 'espaces, parentheses, "/", "-" et "+".');
    	return(false);
    }
    return(true); 
}


function valid_phone_silent(f,champ)
{
    var ok = true;
    if(f.elements[champ].value == '')
    	ok = false;
    else {
	  var s;
	  for(var i = 0; i < f.elements[champ].value.length; i++)
	  {
	    // le caractuel est stockˇ dans s.
	    s = f.elements[champ].value.charAt(i);
	    // Caract¸res valides : espace, parenth¸ses, "/", "-" et "+".
	    if( !((s >= 0) && (s <= 9)) && (s != ' ') && (s != '-') && (s != '+') && (s != '/') && (s != '(') && (s != ')'))
	    {
	      ok = false;
	    }
	  }
	}
	
	if(ok != true) {
    	return(false);
    }
    return(true); 
}


function valid_email(f,champ)
{
    var ok = true;
    if(f.elements[champ].value == '')
    	ok = false;
    else {
	  // Puis nous recherchons des espaces dans l'adresse e-mail
	  // '-1' signifie qu'aucun espace n'a ˇtˇ trouvˇ.
	  if(f.elements[champ].value.search(/ /) != '-1')
	  	ok = false;

	  // Pour finir, nous vˇrifions le format. 
	  // Pour cela, nous fractionnons l'adresse en deux.
	  // (avant et apr¸s le caract¸re"@"
	  s = f.elements[champ].value.split(/@/);
	  // Avec un seul caract¸re "@" il ne peut y avoir que deux parties.
	  if((s.length != 2) || s[0] == '' || s[1] == '')
	    ok = false;
	}
	
	if(ok != true) {
	    alert('Une adresse e-mail doit avoir le format "Utilisateur@Domain"');
    	return(false);
    }
    return(true); 
}

function valid_email_silent(f,champ)
{
    var ok = true;
    if(f.elements[champ].value == '')
    	ok = false;
    else {
	  // Puis nous recherchons des espaces dans l'adresse e-mail
	  // '-1' signifie qu'aucun espace n'a ˇtˇ trouvˇ.
	  if(f.elements[champ].value.search(/ /) != '-1')
	  	ok = false;

	  // Pour finir, nous vˇrifions le format. 
	  // Pour cela, nous fractionnons l'adresse en deux.
	  // (avant et apr¸s le caract¸re"@"
	  s = f.elements[champ].value.split(/@/);
	  // Avec un seul caract¸re "@" il ne peut y avoir que deux parties.
	  if((s.length != 2) || s[0] == '' || s[1] == '')
	    ok = false;
	}
	
	if(ok != true) {
    	return(false);
    }
    return(true); 
}

