//////////////////////////////////////////////////////////////////////////////////////////
//
//	Fichier		: identite.js
//      Permet la sauvegarde et la récupération d'une identité donnée dans un formulaire dans un cookie
//      Nécessite des fonctions codées dans cookie.js
//	Dernière mise à jour : 28/08/2000
//
//
//	Historique des mises à jour :
//
//      28/08/2000 : adaptation au formulaire a-et-a.com 
//
//      Exemple d'utilisation :
//// Fonction appelée au chargement de la page :
//p = new User("", "", "", "", "", "", "", "", "", "", "", "");
//function initformnom()
//{
//  p.name = "User";
//  p.constructor.name = "User" ;
//  p = getUserFromCookie();
//  p.getIdentityToForm(document.forms[0]);
//  document.forms[0].Nom.select();
//  document.forms[0].Nom.focus();
//}
//
//// Fonction appelée à l'envoi du formulaire
//function validation(objet)
//{
//  if (val(objet)==true)
//	{
//	alert("Le formulaire est correct, vous pouvez l\'imprimer.");
//// 1er Cookie Netscape 4.7 et IE5
//	p.name = "User";
//	p.constructor.name = "User" ;
//      p.setIdentityFromForm(document.forms[0]);
//    	p.saveToCookie();
// 2eme Cookie pour compatibilité avec IE4
//    	p.name = "undefined";
//	p.constructor.name = "undefined" ;
//      p.setIdentityFromForm(document.forms[0]);
//    	p.saveToCookie();	
//	};   
//  return false;
//}	
//////////////////////////////////////////////////////////////////////////////////////////


//
// ************************************ Classe User **************************************
//

// ---------------------------------------------------------------------------------------
// Nom		: User(Titre, Nom, Prenom, Societe, Adresse, Code_postal, Ville, Etat, Pays, Email, Telephone, Fax)
// Classe	: User
// Description	: Construit un nouvel objet de classe User. C'est un utilisateur 
// 		  caractérisé par son nom, son prénom et son adresse e-mail
//		  - Cette fonction étant le constructeur de la classe, toute nouvelle
//		    propriété ou méthode devra etre ajoutée dans cette fonction
// Entrée	: Nom    - String - nom de l'utilisateur
//		  Prenom - String - prénom de l'utilisateur
//		  Email  - String - adresse e-mail de l'utilisateur
function User(Titre, Nom, Prenom, Societe, Adresse, Code_postal, Ville, Etat, Pays, Email, Telephone, Fax) 
{
	// Propriétés
	this.Titre = Titre;
	this.Nom = Nom;
	this.Prenom = Prenom;
	this.Societe = Societe;
	this.Adresse = Adresse;
	this.Code_postal = Code_postal;
	this.Ville = Ville;
	this.Etat = Etat;
	this.Pays = Pays;
	this.Email = Email;
	this.Telephone = Telephone;
	this.Fax = Fax;	

	// Méthodes
	this.saveToCookie        = saveToCookie;
	this.setIdentityFromForm = setIdentityFromForm;
	this.getIdentityToForm   = getIdentityToForm;
	this.identityIsValid     = identityIsValid;
}


// ---------------------------------------------------------------------------------------
// Nom		: saveToCookie()
// Classe	: User
// Description	: Sauve les propriétés de l'objet dans le cookie "User"
//		  - Le chemin est "/" car User est un cookie "global", le domaine est le
//		    domaine courant (qui peut etre positionné par setCookieDomain()).
function saveToCookie() {
	var cookiePath = getCookiePath();	//  sauvegarder le path
	setCookiePath("/");
	setCookieFromObject(this);
	setCookiePath(cookiePath);		// restituer le path
}


// ---------------------------------------------------------------------------------------
// Nom		: setIdentityFromForm(form)
// Classe	: User
// Description	: Recupère l'identité (nom, prénom, e-mail) d'un utilisateur à partir du
//		  formulaire spécifié.
//		  - Ce formulaire doit obligatoirement contenir des champs de type text
//		    nommés "Nom", "Titre" et "Email" car les données sont lues dans ces
//		    champs
//		  - De plus, ces trois champs ("Nom", "Titre" et "Email") doivent etre
//		    tous les trois non vide pour que l'objet les recupère.
// Entrée	: form - Form - Formulaire dans lequel sont lus Nom, Prenom et Email
// Retour	: Boolean :
//		  - true si les trois champs "Nom", "Titre" et "Email" sont tous non 
//		    vides (l'objet a alors gardé ces trois valeurs)
//		  - false si au moins un des trois champs "Nom", "Titre" et "Email" est
//		    vide (l'état de l'objet reste inchangé)
function setIdentityFromForm(form) 
{
	//if (form.Nom.value!="" && form.Titre.value!="" && form.Email.value!="") 
	//{
		this.Titre    = form.Titre.value;
		this.Nom    = form.Nom.value;
		this.Prenom = form.Prenom.value;
		this.Societe = form.Societe.value;
		this.Adresse = form.Adresse.value;
		this.Code_postal = form.Code_postal.value;
		this.Ville = form.Ville.value;
		this.Etat = form.Etat.value;
		this.Pays = form.Pays.value;
		this.Email  = form.Email.value;
		this.Telephone = form.Telephone.value;
		this.Fax = form.Fax.value;
		return true;
	//} else
	//	return false;
}


// ---------------------------------------------------------------------------------------
// Nom		: getIdentityToForm(form)
// Classe	: User
// Description	: Charge l'identité (nom, prénom, e-mail) d'un utilisateur dans le
//		  formulaire spécifié.
//		  - Ce formulaire doit obligatoirement contenir des champs de type text
//		    nommés "Nom", "Prenom" et "Email"
// Entrée	: form - Form - Formulaire dans lequel la méthode place le nom, le prénom
//			et l'e-mail respectivement dans les champs nommés "Nom", "Prenom"
//			et "Email"
function getIdentityToForm(form) 
{
	form.Titre.value    = this.Titre ;
	form.Nom.value    = this.Nom ;
	form.Prenom.value = this.Prenom ;
	form.Societe.value = this.Societe ;
	form.Adresse.value = this.Adresse ;
	form.Code_postal.value = this.Code_postal ;
	form.Ville.value = this.Ville ;
	form.Etat.value = this.Etat;
	form.Pays.value = this.Pays ;
	form.Email.value  = this.Email ;
	form.Telephone.value  = this.Telephone ;
	form.Fax.value  = this.Fax ;

}


// ---------------------------------------------------------------------------------------
// Nom		: identityIsValid()
// Description	: Retourne true si l'identité {Nom, Prenom, Email} est correcte (c'est à
//		  dire si les trois données sont non vides) ou bien false sinon
// Retour	: Boolean - true si les trois propriétés Nom, Prenom et Email sont toutes 
//		  renseignées ou bien false sinon
function identityIsValid() {
	return (this.Nom!="" && this.Prenom!="" & this.Email!="");
}

//
// ********************************* Fonctions globales **********************************
//


// ---------------------------------------------------------------------------------------
// Nom		: getUserFromCookie()
// Description	: Renvoie un objet de classe User dont les propriétés sont lues dans le
//		  cookie "User".
//		  - Les propriétés lues dans le cookie sont placées de manière "brute"
//		    dans l'objet retourné, cela suppose que les valeurs du cookie sont
//		    intègres car aucune vérification n'est faite par cette fonction
//		  - Seules les propriétés lues sont positionnées : si l'objet possède des
//		    propriétés qui ne figurent pas dans le cookie alors les valeurs de 
//		    ces propriétés, pour l'objet retourné, restent à "undefined"
//		  - Les méthodes, si elles existent, sont définies
// Retour	: User - objet de classe User avec les propriétés positionnées aux valeurs
//			du cookie "User", ou new User("", "", "") si le cookie "User" 
//			n'existe pas
function getUserFromCookie() {
	var aUser ;
//	var aUser = new User("", "", "", "", "", "", "", "", "", "", "", "");
//	getCookieToObject(aUser);
	aUser = getCookieToObject("User");
	
//alert(aUser.name) ;
if (aUser == null) { aUser = new User("", "", "", "", "", "", "", "", "", "", "", "")};
aUser.name = "User";
aUser.constructor.name = "User";
// alert(aUser.name) ;
return  (aUser) ;

//      return ( (aUser == null) ? new User("", "", "", "", "", "", "", "", "", "", "", "") : aUser );

}


//
//////////////////////////////////////////////////////////////////////////////////////////
// fin du fichier identite.js
//////////////////////////////////////////////////////////////////////////////////////////






