function envoyer_formulaire( formulaire, fonction_pour_gerer_la_reponse ){
	var requete = construire_requete( formulaire );
	envoyer_requete( cible, requete, fonction_pour_gerer_la_reponse );
	return false();
}

function envoyer_requete( cible, requete, fonction_pour_gerer_la_reponse ){

	if( typeof window.ActiveXObject != 'undefined' ){
		resultat = new ActiveXObject("Microsoft.XMLHTTP");
		resultat.onreadystatechange = fonction_pour_gerer_la_reponse;
	}
	else{
		resultat = new XMLHttpRequest();
		resultat.onload = fonction_pour_gerer_la_reponse;
	}

	resultat.open( "POST", cible, true );
	resultat.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	resultat.send( requete );

	return resultat;

}

// Concatener une requete a partir d'un formulaire
function construire_requete( formulaire ){
	var requete = "";

	for( var i = 0; i < formulaire.elements.length; i++ ){
		var element = formulaire.elements[i];
		switch( element.type ){
			case "text":
				requete += element.name;
				requete += "=";
				requete += escape( element.value );
				requete += "&";
				break;
			case "radio":
				if( element.checked == true ){
					requete += element.name
					requete += "=";
					requete += escape( element.value );
					requete += "&";
				}
				break;
		}

	}

	// Supprimer le dernier &
	requete = requete.substr( 0, ( requete.length - 1 ) );

	return requete;

}

// Abonner
function abonner( formulaire ){
	var requete = construire_requete( formulaire );
	requete += "&action=abonner";
	envoyer_requete( "abonner.php", requete, afficher_message_abo );
}

function desabonner( formulaire ){
	var requete = construire_requete( formulaire );
	requete += "&action=desabonner";
	envoyer_requete( "abonner.php", requete, afficher_message_abo );
}

// Afficher le message Abonnement/desabonnement
function afficher_message_abo(){
	switch( resultat.responseText.substr( 0, 2 ) ){
		case "01":
			alert( "Cette adresse est déjà  abonnée au service demandé." );
			break;
		case "00":
			alert( "Cette adresse n'est pas abonnée au service demandé." );
			break;
		case "11":
			alert( "Votre adresse a bien été abonnée. Merci." );
			break;
		case "10":
			alert( "Votre adresse a bien été supprimée de notre liste. Merci." );
			break;
		case "22":
			alert( "Merci de vérifier l'adresse que vous avez saisie." );
			break;
		default:
			alert( "Ce service est momentanément indisponible." );
	}
}





