Description des fonctions et fonctionnalités javascripts
========================================================

Fonctions javascript
--------------------
Les appels ajax:

	Les principales fonctions sont:
		call_action(server_nb, nom de l'action, nom de la balise)
		call_plugin(server_nb, nom de l'action, [...[nom du parametre, valeur du parametre]...], nom de la balise)
		formValidForm(server_nb, nom de l'action repondant, [noms des formulaires], nom de la balise, 
                                [...[nom du parametre, valeur du parametre]...]) 

le paramètre nom de la balise est facultatif, il vaut 'content' par défaut, 
il permet de ne rafraichir qu'une partie de l'action en cour de traitement.
les paramètres pour la validation du formulaire sont facultatifs également.

Les fonctions de traitement de formulaire:

	Des controles de type sont disponible pour les formulaires:
		testVoid, testIp, testNetMask, testNumber
	Pour éxécuter ces fonctions à la validation du formulaire, rajouter l'attribut _blur dans 
	la balise html correspondante:
::

	"<input onblur="testVoid('group_name', 'error_group_name')" _blur="testVoid('group_name', 'error_group_name')"
		 				id="group_name" name="group_name" type="text">
	<div id="error_group_name" class="formeol_error"></div>"



Les fonctions d'animation:
	
	Des fonctions permettent de donner du dynamisme à l'ead:

		Le menu d'action:
			dans frontend/web/static/script/nested.js la fonction toggleMenu permet de réduire et
			aggrandir les menus par manipulation de classe css.

		Le menu d'administration:
			dans frontend/web/static/script/nested.js la fonction ToggleAdminMenu permet de réduire
			et aggrandir le menu d'administration.

		Système d'accordéon:
			En ajoutant un lien Reduce et un lien Increase on peut réduire ou aggrandir des sections.
			IncreaseOnly permet d'aggrandir sans réduire les autres éléments.
			Le masquage se fait par modification de l'attribut de style `display`
			exemples de lien:
			<a href="javascript:Reduce('nom de la balise à vider')">Réduire</a>
			<a href="javascript:Increase('nom de la balise à remplir')">Aggrandir</a>
			<a href="javascript:IncreaseOnly('nom de la balise')">Aggrandir</a>

Retours ajax
------------

Pour les requêtes ajax, une normalisation permet d'éxécuter des fonctionnalités utiles.
La fonction set_content qui est responsable de la communication ajax, parse le résultat
et détecte des mots clés auquel il associe une action spécifique. (pas très générique!! ... mais efficace).

-On peut rediriger l'api en renvoyant la string : "redirect:%s"%url de redirection.

-On peut demander un rafraichissement de page en renvoyant : 'refresh'.

-Dans le cas d'une balise script qu'on renverrait en compagnie d'un code html,
 une seule balise est tolérée par le système:

::
	'<div><div id='toto'>Mon contenu</div><script>window.alert('toto');window.alert('titi')</script></div>'
	Fonctionne (affiche 'toto' puis 'titi').
	'<div><div id='toto'>Mon contenu</div><script>window.alert('toto')</script><script>window.alert('titi')</script></div>'
	Ne fonctionne pas (n'affiche que 'toto').
