****************************************************************************************
VFORM est un script de contrôle de formulaire

Version 1.02

Copyright (C) 2006-2009  Sylvain FATOME

This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation; 
either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; 
if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
Boston, MA  02110-1301, USA.

Contact : galawa@free.fr

Web : http://smitst.homelinux.com
****************************************************************************************

						-- Utilisation du script VFORM--
						           version 0.9
	
Définir un tableau (chaque paramètre doit être séparés par un ";", mais il n'y a  pas d'ordre imposé) pour détailler les champs.
	
IMPORTANT : ne pas metre d'espace autour des ':'.
	
>>> Paramètres :
	
	nom:nom_du_champ						Nom du champ dans le formulaire
	
	format:format_de_saisie					Format de la saisie
	
		alpha			: Alphabétique
		alphamin		: Alphabétique (minuscules seulement)
		alphamaj		: Alphabétique (majuscules seulement)
		alphanum		: Alphanumérique
		alphanummin		: Alphanumérique (minuscules seulement)
		alphanummaj		: Alphanumérique (majuscules seulement)
		chemin			: chemin (alphanumérique + '_'), type "/xxxx/xxxx"
		cp				: Code postal (le pays détermine le code postal)
		cp_codepays		: Code postal pour un codepays donné
		date			: Date
						masques possibles :
							mmddyy		mmddyyyy	mm/dd/yy	mm/dd/yyyy
							jjmmaa		jjmmaaaa	jj/mm/aa	jj/mm/aaaa
							mm-dd-yy	mm-dd-yyyy	jj-mm-aa	jj-mm-aaaa

		duree			: Durée (format hh:mm:ss), pas de contrôle sur les heures
		dureehhmm		: Durée (format hh:mm), pas de contrôle sur les heures (hh : de 1 à ...)
		ean8			: code EAN-8
		ean13			: code EAN-13
		entier			: Entier signé
		extens			: extension de fichier (type ".xxx")
		gtin8			: code GTIN-8 (format international seulement)
		gtin12			: code GTIN-12
		gtin13			: code GTIN-13 (ou GLN)
		gtin14			: code GTIN-14
		heure			: Heure (format hh:mm:ss)
		heurehhmm		: Heure (format hh:mm)
		hexa			: Hexadécimal
		iban			: IBAN (le pays détermine l'IBAN)
		iban_codepays	: IBAN pour un code pays donné
		imt				: Numéro d'immatriculation (le pays détermine le format)
		imt_codepays	: Numéro d'immatriculation pour un code pays donné
		ip				: Adresse IP V4
		ip6				: Adresse IP V6
		isbn10			: code ISBN-10
		isbn13			: code ISBN-13
		issn10			: code ISSN
		mac				: Adresse MAC (xx:xx:xx:xx:xx:xx ou xx-xx-xx-xx-xx-xx)
		mail			: Email
		nf				: Numéro fiscal (le pays détermine le numéro fiscal)
		nf_codepays		: Numéro fiscal pour un code pays donné
		pw				: Mot de passe
						il faut aussi donner le niveau de "qualité" minimum (de 0 à 9) avec la variable pwq
		reel			: Réel signé
		reel_ns			: Réel non signé
		rib				: Relevé d'Identité Bancaire (le pays détermine le RIB)
		rib_codepays	: Relevé d'Identité Bancaire pour un code pays donné
		secu			: Numéro de SECURITE SOCIALE (le pays détermine le type de numéro)
		secu_codepays	: Numéro de SECURITE SOCIALE pour un code pays donné
		siren			: Numéro de SIREN (le pays détermine le type de numéro)
		siren_codepays	: Numéro de SIREN pour un code pays donné
		siret			: Numéro de SIRET (le pays détermine le type de numéro)
		siret_codepays	: Numéro de SIRET pour un code pays donné
		sscc			: code SSCC
		naf				: Numéro de NAF (le pays détermine le type de numéro)
		naf_codepays	: Numéro de NAF pour un code pays donné
		tva				: Numéro de TVA (le pays détermine le type de numéro)
		tva_codepays	: Numéro de TVA pour un code pays donné
		tel				: Numéro de téléphone (le pays détermine le type de numéro)
						Si pas de pays, format international
		tel_codepays	: Numéro de téléphone pour un code pays donné
						Si code pays inconnu, format international
		tel_int			: Numéro de téléphone international
		telp			: Numéro de téléphone portable (le pays détermine le type de numéro)
						Si pas de pays, format international
		telp_codepays	: Numéro de téléphone portable pour un code pays donné
						Si code pays inconnu, format international
		txt				: Tout type de texte
		unsigned		: Entier non signé
		url_pref		: url (avec préfixe http, https, ftp, sftp, ftps, gopher, telnet)
						Conforme à la norme xxxx://log:mdp@xxx.xxxxxx.xxx:1234/xxxx?xxx=123&xxx=123
						Accepte aussi les adresse IP au lieu des noms de domaines
		url_npref		: url (sans préfixe)
						Conforme à la norme log:mdp@xxx.xxxxxx.xxx:1234/xxxx?xxx=123&xxx=123
						Accepte aussi les adresse IP au lieu des noms de domaines


	req:Y ou y ou O ou o					Champ requis ?
		(si rien, pas requis)

	lmn										Longueur minimum
		(Entier non signé. si rien : 0)
		Pour les listes multiples	: nb minimum de lignes à choisir

	lmx										Longueur maximum
		(Entier non signé)
		Pour les listes multiples	: nb maximum de lignes à choisir

	vmn										Valeur minimum
		(Entier non signé)

		Pour les listes     : n° minimum de la 1ère ligne
		Pour les "à cocher" : n° minimum de la 1ère case ou du 1er bouton
		Pour les dates	    : date minimum
		Pour les valeurs    : valeur minimum
		
		S'il n'y a pas de valeur maximum, le test juste effectué par rapport à la valeur minimum

	vmx										Valeur maximum
		(Entier non signé)

		Pour les listes     : n° maximum de la dernière ligne sélectionnable
		Pour les "à cocher" : n° minimum de la dernière case ou du dernier bouton
		Pour les dates	    : date maximum
		Pour les valeurs    : valeur maximum
		
		S'il n'y a pas de valeur minimum, le test juste effectué par rapport à la valeur maximum
				
	masque								définition du masque de saisie
		(Pour les dates. OBLIGATOIRE dans ce cas)

	stok								Style si champ ok
		(Si rien, on n'y touche pas)

	stbad								Style si champ pas ok
		(Si rien, on n'y touche pas)

	txt									Texte descriptif du champ pour popup erreur
		(Si rien, le script fabrique une chaîne avec le nom du champ)

	comp								Champ à comparer (détection de champs identiques)
		On y entre le nom du champ qui doit être comparé
		
		Pour les textes : comparaison des 2 saisies
		Pour les boutons et cases à cocher : comparaison des structures et 
			cases/boutons cochés
		Pour les listes simples : comparaison des structures et de la ligne choisie
		Pour les listes multiples : comparaison des structures et de la (des) 
			ligne(s) choisie(s)
			
	carenum								Caractère d'énumération
		Sur la base du format de champ défini, on peut demander une énumération
		avec un caractère de séparation.
		Chaque saisie entre ce caractère est alors analysée sur le format défini (avec les
		critères qui s'appliquent alors à cette saisie) pour vérifier que c'est ok.

		Par exemple, si vous définissez une énumération d'extensions de fichier, sur une 
		longueur minimale de 3 caractères, et maximale de 4, et un séparateur ',', VForm va 
		analyser chaque saisie entre les ',' pour vérifier que c'est bien une extension (".xxx"),
		avec une longueur minimale de 3 caractères, et maximale de 4 caractères.

		On peut tout mettre, sauf ';'.


	La fonction s'appelle par :
	
				VForm(nom_du_formulaire,tableau_de_définition,pays,langage)
				
	Nota :
		Si pas de pays défini, Françe ('fr') par défaut
		Si pas de langage défini, Français ('fr') par défaut
