// Vérification formulaire ouverture compte

function isformok_ouvrecompte(){
if(document.formouvrecompte.Societe.value.length == 0)
	{alert("Le nom de la société doit être saisi, merci"); 
    return false;} 

if(document.formouvrecompte.Nom.value.length == 0)
	{alert("Votre nom doit être saisi, merci"); 
    return false;} 

if(document.formouvrecompte.Prenom.value.length == 0)
	{alert("Votre prénom doit être saisi, merci"); 
    return false;} 

if(document.formouvrecompte.Adresse.value.length == 0)
	{alert("L'adresse de la société doit être saisie, merci"); 
    return false;}

if(document.formouvrecompte.Cp.value.length == 0)
	{alert("Le code postal de la société doit être saisi, merci"); 
    return false;}

if(document.formouvrecompte.Ville.value.length == 0)
	{alert("La ville doit être saisie, merci"); 
    return false;}

if(document.formouvrecompte.Tel.value.length == 0)
	{alert("Le numéro de téléphone doit être saisi, merci"); 
    return false;}
	
if(document.formouvrecompte.Fax.value.length == 0)
	{alert("Le numéro de Fax doit être saisi, merci"); 
    return false;}

if(document.formouvrecompte.Siret.value.length == 0)
	{alert("Le numéro de Siret (14 chiffres) doit être saisi, merci"); 
    return false;}

if(document.formouvrecompte.APE.value.length == 0)
	{alert("Le code APE ou NAF doit être saisi, merci"); 
    return false;}

if(document.formouvrecompte.email.value.length == 0)
	{alert("Votre adresse email doit être saisie, merci"); 
    return false;}

return true;
}

/***************************************************************************************/
/* 20070430 GB : Fonctions de validations */
/* ex d'utilisation :
 * <input type="text" name="monChampTexte" value=""
 *     xxrequired="Ce champ est obligatoire !"
 *     xxregex="\d{1,5}" xxregexmsg="Ce champ est un entier (1 à 5 chiffre)"
 *     xxcustomvalidate="maFonctionDeValidationCustomisee"
 *     onblur="javascript:return xxValidateField(this);" />
 *
 * L'utilisation de 'onblur="javascript:return xxValidateField(this);"' est obligatoire.
 * Il est possible de passer une fonction en 2eme parametre pour permettre des traitements (affichages ?)
 * particuliers dans le cas de champs obligatoires
 * ex :
 * <script language="javascript>
 * function traitementVisuel()
 * {
 *     alert('exemple');
 * }
 * </script>
 * <input type="text" name="monChampTexte" value=""
 *     xxrequired="Ce champ est obligatoire !"
 *     xxregex="\d{1,5}" xxregexmsg="Ce champ est un entier (1 à 5 chiffre)"
 *     xxcustomvalidate="maFonctionDeValidationCustomisee"
 *     onblur="javascript:return xxValidateField(this, traitementVisuel);" />
 *
 * pour l'utilisation de 'xxcustomvalidate', voir la fonction 'xxValidateField'
 *
 * Pour indiquer qu'un bouton doit valider le formulaire, ex :
 * <input type="image" name="Envoyer" value="Envoyer" src="images/envoyer.gif" onclick=""
 *     onclick="if (typeof(xxValidateForm) == 'function') return xxValidateForm(this);" language="javascript" />
 */

/* fonction de controle d'un champ de type 'text' requis */
function xxRequiredText()
{
	var field = arguments[0];
	var xxrequired = arguments[1];
	var value = field.value.replace('\n', '').replace('\r', '');
	var func = null;
	if (arguments.length != 2)
		func = arguments[2];
	if (value.replace( /\s+/, '') == '') {
		if (func == null)
			alert(xxrequired);
		return false;
	}
	return true;
}

/* fonction de controle d'un champ de type 'radio' ou 'checkbox' requis */
function xxRequiredRadioCheck()
{
	var field = arguments[0];
	var xxrequired = arguments[1];
	var oform = xxGetFormFromField(field);
	var fieldName = (field.id != null) ? field.id : field.name;
	var radiocheck = null;
	var func = null;
	var valid = false;
	var index = 0;
	if (arguments.length != 2)
		func = arguments[2];
	
	eval('radiocheck = oform.' + fieldName + ';');
	if (radiocheck != null) {
		if (radiocheck.type == 'checkbox' || radiocheck.type == 'radio')
			valid = radiocheck.checked;
		else
			for(index = 0; !valid && index<radiocheck.length; index++)
				valid |= radiocheck[index].checked;
	}
	if (!valid && func == null)
		alert(xxrequired);
	return valid;
}

/* fonction de controle d'un champ de type 'select-one' requis */
function xxRequiredSelectOne()
{
	var field = arguments[0];
	var xxrequired = arguments[1];
	var valid = (field.selectedIndex != 0);
	var func = null;
	if (arguments.length != 2)
		func = arguments[2];
	if (!valid && func == null)
		alert(xxrequired);
	return valid;
}

/* fonction de controle d'un champ de type 'select-multipe' requis */
function xxRequiredSelectMulti()
{
	var field = arguments[0];
	var xxrequired = arguments[1];
	var func = null;
	var valid = false;
	var index = 0;
	if (arguments.length != 2)
		func = arguments[2];
	for (index = 0; !valid && index<field.options.length; index++)
		valid |= field.options[index].selected;
	if (!valid && func == null)
		alert(xxrequired);
	return valid;
}

/* récupère le forum parent du champ */
function xxGetFormFromField()
{
	var field = arguments[0];
	while (field != null && field.tagName != 'FORM')
		field = field.parentNode;
	return field;
}

/* récupère l'objet 'règle' associé au type du champ */
function xxGetFieldTypeRule()
{
	var result = null;
	var index;
	for(index = 0; index<xxFieldTypeRules.length; index++) {
		if (xxFieldTypeRules[index].type == arguments[0]) {
			result = xxFieldTypeRules[index];
			break;
		}
	}
	return result;
}

/* fonction de validation d'un champ */
function xxValidateField()
{
	var valid = true;
	if (arguments.length != 0) {
		var field = arguments[0];
		var func = null;
		if (arguments.length != 1)
		    func = arguments[1];
		var fieldRule = xxGetFieldTypeRule(field.type);
		if (fieldRule != null) {
			if (fieldRule.canRequired) {
			    /* Est-ce un champs requis ? */
				var xxrequired = field.getAttribute('xxrequired');
				if (xxrequired != null) {
				    if (func == null)
					    valid = fieldRule.requiredFunc(field, xxrequired);
					else
					    valid = fieldRule.requiredFunc(field, xxrequired, func);
				}
			}
			if (fieldRule.canRegular) {
				var value = field.value.replace('\n', '').replace('\r', '');
				if (value.replace( /\s+/, '') != '') {
			        /* Expression régulière de formatage */
					var xxregex = field.getAttribute('xxregex');
			        /* Message dans le cas où l'expression régulière de formatage n'est pas bonne */
					var xxregexmsg = field.getAttribute('xxregexmsg');
					if (xxregex != null && xxregex.replace( /\s+/, '') != '') {
						var rregex = '/' + xxregex + '/g';
						var matched = null;
						eval('matched = value.match(' + rregex + ');');
						if (matched == null || matched.join(',').replace(',', '') != value) {
           			        /* Message par défaut */
							if (xxregexmsg == null || xxregexmsg.replace( /\s+/, '') == '')
								xxregexmsg = 'format invalide'
							alert(xxregexmsg);
							valid = false;
						}
					}
				}
			}
		    /* on regarde si une fonction de validation customisée est configuré */
			var xxcustomvalidate = field.getAttribute('xxcustomvalidate');
			if (xxcustomvalidate != null && xxcustomvalidate.length != 0) {
			    /* La fonction customisée doit etre du format 'function maFonction(champ, args) { ... }' */
			    /* args est un objet avec 2 propriétés : value = la valeur du champ, isValid = validité du champ */
			    /* La fonction customisée peut modifier la valeur de isValid pour indiquer aux fonctions de validations la validité du champ */
			    /* ex :
			     * function maFonction(champ, args)
			     * {
			     *     args.isValid = (args.value != '');
			     * }
			     */
				var args = { 'value':'', 'isValid':true };
				args.value = field.value;
				args.isValid = valid;
				eval('' + xxcustomvalidate + '(field, args);');
				valid = args.isValid;
			}
		}
	}
	return valid;
}

/* fonction de validation d'un formulaire */
/* on passe le champ qui permet de valider le formulaire en paramètre */
function xxValidateForm(field)
{
    /* on désactive le bouton le temps de la vérification */
	field.disabled = true;
	/* on récupère le formulaire parent */
	var oform = xxGetFormFromField(field);
	/* var valid = true; */
	var valid;
	var index = 0;
	var xxerror;
	for (index = 0; index<oform.elements.length; index++) {
	    /* on lance la validation sur chacun des champs */
		if (oform.elements[index].onblur != null) {
			tmp = oform.elements[index].onblur();
		 	xxerror = oform.elements[index].getAttribute('xxerror');
			if (xxerror==1) {
				valid = false;
			}
		}	
	}
	
	if(document.getElementById("strBirthdayDAY"))
	{
		if(document.getElementById("strBirthdayDAY").value!='' ||
		document.getElementById("strBirthdayMONTH").value!=''||
		document.getElementById("strBirthdayYYYY").value!=''		)
		{
			if(document.getElementById("strBirthdayDAY").value=='' ||
			document.getElementById("strBirthdayMONTH").value==''||
			document.getElementById("strBirthdayYYYY").value=='')
			{
				alert('Veuillez vérifier votre date de naissance');
				valid = false;
			}
		}
		
	}
	
	
	/* si le formulaire est valide, on envoie */
	if (valid)
		oform.submit();
    /* on réactive le bouton une fois que c'est ok */
	field.disabled = false;
	return valid;
}

/* NE PAS MODIFIER CE TABLEAU */
/* Tableau d'objets de type règles d'utilisation des champs d'un formulaire */
/* canRequired = indique que le champ peut etre un champ requis, utilisation de xxrequired */
/* canRegular = indique que le champ peut utiliser une expression reguliere pour etre valider, utilisation de xxregex et xxregexmsg */
/* requiredFunc = fonction qui controle lorsque le champ est requis */
var xxFieldTypeRules = [
	{'type':'text', 'canRequired':true, 'canRegular':true, 'requiredFunc':xxRequiredText},
	{'type':'password', 'canRequired':true, 'canRegular':true, 'requiredFunc':xxRequiredText},
	{'type':'textarea', 'canRequired':true, 'canRegular':true, 'requiredFunc':xxRequiredText},
	{'type':'radio', 'canRequired':false, 'canRegular':false, 'requiredFunc':xxRequiredRadioCheck},
	{'type':'checkbox', 'canRequired':true, 'canRegular':false, 'requiredFunc':xxRequiredRadioCheck},
	{'type':'file', 'canRequired':true, 'canRegular':false, 'requiredFunc':xxRequiredText},
	{'type':'select-one', 'canRequired':true, 'canRegular':false, 'requiredFunc':xxRequiredSelectOne},
	{'type':'select-multiple', 'canRequired':true, 'canRegular':false, 'requiredFunc':xxRequiredSelectMulti}
];

/* Affichage du picto d'erreur a cote de l'input */
function AffError(name,field,Err)
{
	if (Err==1) {
		document.getElementById(name).src = '/images/erreur_form.gif';
		document.getElementById(field.name).setAttribute('xxerror','1');
	} else {
		document.getElementById(name).src = '/images/spacer.gif';
		document.getElementById(field.name).setAttribute('xxerror','0');
	}	
}
