// For a more flexible event registration routine, see
// http://simon.incutio.com/archive/2004/05/26/addLoadEvent
window.onload = attachFormHandlers;

function attachFormHandlers()
{

	// Ensure we're working with a 'relatively' standards
	// compliant browser
	if (document.getElementsByTagName)
	{
		var objForm = document.getElementsByTagName('form');

		for (var iCounter=0; iCounter<objForm.length; iCounter++)
		objForm[iCounter].onsubmit = function(){return checkForm(this);}
	}
}

function checkForm(objForm)
{


	if(document.getElementById('divResultat') && document.getElementById('divResultat').innerHTML!='') {
		alert('Votre email est deja dans notre base!');
		return false;
	}
	var arClass, bValid,err_msg;
	var objField = objForm.getElementsByTagName('*');
	err_msg='';
	for (var iFieldCounter=0; iFieldCounter<objField.length; iFieldCounter++)
	{
		// Allow for multiple values being assigned to the class attribute
		arClass = objField[iFieldCounter].className.split(' ');
		for (var iClassCounter=0; iClassCounter<arClass.length; iClassCounter++)
		{
			switch (arClass[iClassCounter])
			{
				case 'string':
				bValid = isString(objField[iFieldCounter].value.replace(/^\s*|\s*$/g, ''));
				break;
				case 'number' :
				bValid = isNumber(objField[iFieldCounter].value);
				break;
				case 'email' :
				bValid = isEmail(objField[iFieldCounter].value);
				break;
				case 'notEmpty' :
				if(objField[iFieldCounter].value.length>0) bValid=true;else bValid=false;
				break;
				case 'mustBeEmpty' :
				if(objField[iFieldCounter].value.length==0) bValid=true;else bValid=false;
				break;
				case "password":
				if((objField[iFieldCounter].value.length>=6) &&  isString(objField[iFieldCounter].value.replace(/^\s*|\s*$/g, '')))  bValid=true;else {
					err_msg="Votre mot de passe doit comporter au moins 6 caractères";
					bValid=false;
				}

				break;

				case 'siret' :
				if(objField[iFieldCounter].value.length==14) {
					bValid=true;

				}else {
					bValid=false;
					err_msg="Numéro de SIRET invalide";
				}
				break;
				case 'cellPhone' :
				if(objField[iFieldCounter].value.substring(0,2)=="06") bValid=true;else {
					bValid=false;
					err_msg="Votre numero de portable ne commence pas par 06";
				}
				break;


				default:
				bValid = true;
			}

			if (bValid == false)
			{
				// If this field is invalid, leave the testing early,
				// and alert the visitor to this error
				if(err_msg=="") err_msg='Veuillez vérifier que tous les champs sont remplis correctement';
				alert(err_msg);
				objField[iFieldCounter].select();
				objField[iFieldCounter].focus();
				return false;
			}
		}
	}
	return true;
}

function isString(strValue)
{
	return (typeof strValue == 'string' && strValue != '' && isNaN(strValue));
}

function isNumber(strValue)
{
	return (!isNaN(strValue) && strValue != '');
}

function isEmail(strValue)
{
	var objRE = /^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;

	return (strValue != '' && objRE.test(strValue));
}