error = 0;
errorMsg = '';
function f_TestEmail(entree)
{
    var supported = 0 ;
    if (window.RegExp)
    {
        var tempStr = "a" ;
        var tempReg = new RegExp(tempStr) ;
        if (tempReg.test(tempStr))
        {
            supported = 1 ;
        }
      }
      if (!supported)
    {
        return (str.indexOf(".") > 2) && (str.indexOf("@") > 0) ;
    }
      var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)") ;
      var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$") ;
      return (!r1.test(entree) && r2.test(entree)) ;
    
} // fin f_TestEmail


function checkForm()
{
	var arg = arguments[0];
	//
	error = 0;
	errorMsg = '';
	//document.getElementById('textarea').style.backgroundColor = '';
	allInputs = document.getElementsByTagName('input');
	for (i=0;i<allInputs.length;i++)
	{
		elem = allInputs[i];
		elem.style.backgroundColor = '';
		if (elem.getAttribute('erreur'))
		{
			if (elem.getAttribute('erreur') == 'vide')
			{
				if (elem.value=='')
				{
					addError(elem);
				}
			}
			if (elem.getAttribute('erreur') == 'telephone')
			{
				if (isNotTelephone(elem.value, 'inte') && isNotTelephone(elem.value, 'fixe') && isNotTelephone(elem.value, 'port') && isNotTelephone(elem.value, 'nati'))
				{
					addError(elem);
				}
			}
			if (elem.getAttribute('erreur') == 'email')
			{
				if (!f_TestEmail(elem.value))
				{
					addError(elem);
				}
			}
			
			
			
			if (elem.getAttribute('erreur') == 'captcha')
			{
				if (!f_captcha_est_correct() || elem.value == '' ) 
				{
			        // Traitement en cas d'erreur
           			//f_init_flag_captcha();
           			addError(elem);
		        }
			}			
			
		}
	
	}
	
	var s_new_password = document.getElementById('s_new_password');
	var temp_new_password = document.getElementById('temp_new_password');
	if ((s_new_password)&&(temp_new_password))
	{
	  if (document.getElementById('s_new_password').value != document.getElementById('temp_new_password').value)
	  {
	    error = 222;
	    document.getElementById('s_new_password').style.backgroundColor = '#FFD399';
	    document.getElementById('temp_new_password').style.backgroundColor = '#FFD399';
	   }
	}   
	
		
	
	
	var textarea = document.getElementById('textarea')
	if (textarea)
	{
	  if (document.getElementById('textarea').value == '')
	  {
		error = 111;
		document.getElementById('textarea').style.backgroundColor = '#FFD399';
		allInputs2 = document.getElementsByTagName('textarea');
		
	    for (i=0;i<allInputs2.length;i++)
	   {
	   elem = allInputs2[i];
		elem.style.backgroundColor = '';
		if (elem.getAttribute('erreur'))
		{
			if (elem.getAttribute('erreur') == 'vide')
			{
				if (elem.value == '')
				{
					addError(elem);
				}
			}
		 }
		}
	
      }
	}
	
	// Teste si le l'identifiant ne contient que des lettres et des chiffres
	if(document.getElementsByName('s_code')[0] != undefined)
	{
		var s_code = document.getElementsByName('s_code')[0].value;
		if( (s_code != '') && !f_TestCode(s_code))
		{
			error = 333;
		}	
	}
	
	if (error == 0)
	{	
		$('contactForm').submit();
		
	}
	else
	{    
	    if (error == 222)
			{
			   $('erreur_formulaire').innerHTML = errorMsg + '<br>- Vous avez mal ressaisi votre nouveau mot de passe';
			}
		else
		{
			if (error != 111)
			{
				// Teste si le l'identifiant ne contient que des lettres et des chiffres
				if (error == 333)
					$('erreur_formulaire').innerHTML = 'Les erreurs suivantes doivent être corrigées :' +
							'<br>- Le champ Identifiant ne doit contenir que les lettres (a-z,A-Z) et les chiffres (0-9)' + errorMsg;
				else
					$('erreur_formulaire').innerHTML = 'Les erreurs suivantes doivent être corrigées : ' + errorMsg;
			}
			else
			{
				if (textarea)
				{
				  $('erreur_formulaire').innerHTML = errorMsg + '<br>- Veuillez saisir votre texte';
				}
			}
		}
	}

}

function addError(elem)
{
	errorMsg += "<br>- "+elem.getAttribute('message');
	error += 1;
	elem.style.backgroundColor = '#FFD399';
	//document.images.cryptogram.src='<?php echo $c_chemin; ?>/lib/captcha/cryptographp.php?cfg=0&&'+Math.round(Math.random(0)*1000)+1;
}

var regExpTelephoneFixe=/^(01|02|03|04|05)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'fixe'. Ex : 01.34.12.52.30 ou 0134125230
var regExpTelephonePortable=/^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;			// Accepte un numero de téléphone de type 'portable'.
var regExpTelephoneNational=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'national' y compris numéros en '08'.
var regExpTelephoneInternational=/^(\+[0-9]{2})[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;	// Accepte un numero de téléphone de type 'international'. Ex : (+33) 1 34 12 52 30

//Les deux fonction suivantes servent à identifier si une chaine de caractère est compatible ou non avec une expression régulière passée en paramètre
function matchRegularExpression(valeur, regularExpression)
{
	var resultat = valeur.match(regularExpression);
	if(resultat!=null && resultat.length==1) return true;
	else return false;
}

function doesntMatchRegularExpression(valeur, regularExpression)
{
	if(matchRegularExpression(valeur, regularExpression)) return false;
	else return true;
}

function isNotTelephone(valeur, mode)
{
	switch (mode)
	{
		case "fixe" : 
			return doesntMatchRegularExpression(valeur, regExpTelephoneFixe);
			break;
		case "port" :
			return doesntMatchRegularExpression(valeur, regExpTelephonePortable);
			break;
		case "nati" :
			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);
			break;
		case "inte" :
			return doesntMatchRegularExpression(valeur, regExpTelephoneInternational);
			break;
		default : 
			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);
			break;
	}
}


