// JavaScript IP Monde


/* ========================================================================================
	::	Variables globales
======================================================================================== */

	/* 	- VARIABLES_001 -------------------------------------------------------------------
	|	VARIABLES UTILISEES PAR LES FONCTIONS
	|		:: getObjet()
	------------------------------------------------------------------------------------ */
	var ns4 = (document.layers)?true:false;
	var ie4 = (document.all)?true:false;
	var dom = (document.getElementById)?true:false; // NS 7.02, Mozilla FireFox, Mozilla, IE6



	/* 	- VARIABLES_001 -------------------------------------------------------------------
	|	Détection du navigateur
	|	VARIABLES UTILISEES PAR LES FONCTIONS
	|		:: getObjet()
	------------------------------------------------------------------------------------ */
	var nav = "";
	switch(window.navigator.appName){
		case "Netscape":
			switch(window.navigator.vendor){
				case "Firefox": nav = "Firefox" ; break; // FireFox
				case "Netscape": // Netscape
				default: nav = "Netscape"; break;
			}
		break;
		case "Microsoft Internet Explorer": // Internet Explorer
		default: nav = "IE"; break;
	}



/* fin Variables globales=============================================================================== */










/* ========================================================================================
	::	Scripts Généraux
======================================================================================== */








	/* 	- changeClassName() -------------------------------------------------------
	|	Description :
	|		-	Modifier la classe d'un objet
	|	Aguments OBLIGATOIRES
	|		- argument 0 (objet)	 : o			=>	objet sur lequel agir
	|		- argument 1 (string)	 : newClassName	=>	nom de la nouvelle classe de style à appliquer
	|	Return :
	|		- NULL
	------------------------------------------------------------------------------------ */
	function changeClassName(o,newClassName){

		if(o){
			o.className = newClassName;
		}

	}
	// fin Fonction changeClassName(objId,newClassName)--------------------------------------





	/* 	- getObjet() -----------------------------------------------------------------------
	|	Description :
	|		-	Atteindre un objet en fonction du navigateur utilisé
	|	Variables Globales Utilisées :
	|		- dom (bool)
	|		- ie4 (bool)
	|		- ns4 (bool)
	|	Aguments OBLIGATOIRES
	|		- argument 0 (string)	 : id		=>	id de l'objet à atteindre
	|	Return :
	|		- une référence à l'objet dont l'id est passé en paramètre
	|	Infos :
	|		- plusieurs fonction utilisent cette fonction dans leur scripts
	------------------------------------------------------------------------------------ */
	function getObjet(id){

		if(id){
			if (dom) obj = window.document.getElementById(id);
			else if (ie4) obj = window.document.all[id];

			else if (ns4) obj = window.document.layers[id];
		}else{
			obj = false;
		}
		return obj;

	}
	// fin Fonction getObjet(id)-----------------------------------------------------------





	// Instanciation d'un objet XmlHttpRequest
	// quelque soit le navigateur
	function getHTTPObject(){

		var xmlhttp = false;

		// Compilation conditionnelle d'IE
		/*@cc_on
		@if (@_jscript_version >= 5)
			try{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			}catch (e){
				try{
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				}catch (E){
					xmlhttp = false;
				}
			}
		@else
			xmlhttp = false;
		@end @*/

		// on essaie de créer l'objet si ce n'est pas déjà fait
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){
			try{
				xmlhttp = new XMLHttpRequest();
			}catch (e){
				xmlhttp = false;
			}
		}

		if (xmlhttp){
			// on définit ce qui doit se passer quand la page répondra
			xmlhttp.onreadystatechange = function(){
				// 4 : état "complete"
				if (xmlhttp.readyState == 4){
					// 200 : code HTTP pour OK
					if (xmlhttp.status == 200){
						/*
						Traitement de la réponse.
						Ici on affiche la réponse dans une boîte de dialogue.
						*/
						alert(xmlhttp.responseText);
					}
				}
			}
		}

		return xmlhttp;

	}



	function changeContentPage(iMenu){

		if(iMenu == "" || isNaN(iMenu)) return;
		document.location.href = "index.php?menu="+iMenu;

	}




	function postComment(oForm){

		if(oForm == null) return false;
		var bCheckForm = verifFormAvis(oForm);
		if(!bCheckForm) return false;


		// Poster le message de l'internaute
		var sMessage	= escape(oForm.message.value);
		var sAuteur		= escape(oForm.auteur.value);

		new Ajax.Request(
			'ajax/postComment.php',
			{
				asynchronous: false,
				method: 'post',
				parameters: {
					message		: sMessage,
                    auteur	 	: sAuteur,
                    addComment 	: "Poster"
				},
				onSuccess: function(transport, json) {
					var bText	 = (transport.responseText	 ? true : false);
					var bXML	 = (transport.responseXML	 ? true : false);
					var bJson	 = (json	 ? true : false);
					/*
					alert(" 2. On obtient la réponse :\n"
						+ "=> transport.responseText : " + transport.responseText + "\n"
		                + "=> transport.responseXML : " + transport.responseXML + "\n"
		                + "=> json : " + json
		                + "=> bResponse : " + json.root.bResponse
		                + "=> bResult : " + json.root.bResult
		                + "=> sMessage : " + json.root.sMessage
					);
					*/
					/*
					// Si le login existe déjà on indique l'erreur
					if(bText) {
						var sResponse = transport.responseText;
						if(sResponse == "true"){
							sErreur = sErreur + " - Identifiant déjà utilisé !\n";
							aFocus[iError] = "par_login";
							iError++;
							f.par_login.value = "";
						}
					}
					if(bXML) {

					}
					*/
					if(bJson && json.root.bResult) {
						// On vide les champs du formulaire
						oForm.message.value	 = "";
						oForm.auteur.value	 = "";

						var sMemo = $("reponse").innerHTML;
						$("reponse").update(unescape(json.root.sMessage));
						window.setTimeout('$("reponse").update("'+ sMemo.replace(/'/,"\'") +'")',3000);

						//setTimeout("changeContentPage(4)",3000);
					}
					//alert(sData);
	            }
	        }
		);

		return false;

	}

	/* 	- verifFormAvis() ----------------------------------------------------------
	|	Description :	-	Vérification du formulaire des Messages des Internautes
	|	Pages appellantes :
	|		- content/avis.php
	|	Return :
	|		- true	 : si tous les champs obligatoires sont complétées
	|		- false	 : si au moins un des champs obligatoires n'est pas complété
	------------------------------------------------------------------------------------ */
	function verifFormAvis(oForm)
	{
		var msg_erreur			 = "";							// construction du message d'erreur par concaténation successives
		var en_tete				 = "";							// en-tête du message d'erreur
		var nb_erreur			 = 0;							// comptabilisation des erreurs
		var tab_focus			 = new Array();					// tableau de mémorisation du focus pour se repositionner sur le premier éléments manquant
		var f					 = oForm;						// référence au formulaire à analyser


		if(f.auteur.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer qui est l'auteur du message (nom, prénom ou pseudo...) !\n";
			tab_focus[nb_erreur] = "auteur";
			nb_erreur = nb_erreur + 1;
		}

		if(f.message.value == "") {
			msg_erreur = msg_erreur + " - Veuillez entrer votre message !\n";
			tab_focus[nb_erreur] = "message";
			nb_erreur = nb_erreur + 1;
		}



		if(nb_erreur != 0) {
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "*     Vous avez "+nb_erreur+" erreur"+(nb_erreur > 1 ? 's':'')+" à corriger :     *\n" + en_tete;
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "                                                    \n" + en_tete;

			msg_erreur = en_tete + msg_erreur;
			alert(msg_erreur);
			eval("document.avisClients." + tab_focus[0]).focus();
			return false;
		}else{
			return true;
		}
	}
	// fin Vérification du formulaire des Messages des internautes-------------------------------------


/* fin Scripts Généraux================================================================================= */

