//Constructeur de la classe Formulaire
function Formulaire(unIdFormulaire)
{
	if(unIdFormulaire === undefined)
		throw new Error("Ce constructeur attend un argument : Formulaire(unIdFormulaire)");
	
	//Propriétés d'instances privées (pour faire public, on fait this. .... au lieu de var ...) (BUG : les accesseurs marchent pas si on met var à la place de this.... l'inconvénient c'est que avec this elles sont publiques...)
	this.idFormulaire = unIdFormulaire;
	this.sDonneesescapeesFormulaire = '';
}

//info : tous les attributs et méthodes d'une classe JavaScript sont Publiques des lors qu'ils sont associés au mot clé this ou à un prototype (http://www.asp-php.net/tutorial/scripting/javascript-et-poo.php?page=5)


//Méthode d'instance de la classe Formulaire : CreerTableFormulaire()    (Pour créer une méthode statique (ou méthode de classe), il ne faut pas mettre "prototype", mais nous ne pourrons dans ce cas plus utiliser this)
Formulaire.prototype.GetDonneesEscapeesFormulaire = function()
{
	this.sDonneesescapeesFormulaire = '';
	
	if(this.idFormulaire !== undefined) //Si la variable est définie
	{
		var formulaire = document.forms[this.idFormulaire];
		if(formulaire !== undefined)
		{
			for (var i=0 ; i < formulaire.length ; i++)	//Nous renvoie le nombre d'input
			{
				switch(formulaire.elements[i].type)
				{
					case 'checkbox':
						if(formulaire.elements[i].checked)
						{
							this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
						}
					break;
					case 'button':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'hidden':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'file':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'image':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'password':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'radio':
						if(formulaire.elements[i].checked)
						{
							this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
						}
					break;
					
					case 'text':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'select-one':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'select-multiple':
						for (var j = 0 ; j < formulaire.elements[i].options.length ; j++)
						{
							if(formulaire.elements[i].options[j].selected)
							{
								this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].options[j].value);
							}
						}
					break;
					
					case 'textarea':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
					case 'submit':
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					default:
						this.sDonneesescapeesFormulaire += ((this.sDonneesescapeesFormulaire == '')?'':'&')+escape(formulaire.elements[i].name)+'='+escape(formulaire.elements[i].value);
					break;
					
				}
			}
		}
	}
	return this.sDonneesescapeesFormulaire;
};

//Accesseur get de l'attribut idFormulaire
Formulaire.prototype.getIdFormulaire = function ()
{
	return this.idFormulaire;
};

//Accesseur set de l'attribut idFormulaire
Formulaire.prototype.setIdFormulaire = function (nouvelIdFormulaire)
{
	this.idFormulaire = nouvelIdFormulaire;
};

