/**
* Ce fichier fait parti d'un package, toute modification doit entrainer la génération
* d'un nouveau package pour être pris en compte.
* voir l'objet ObjFichierPackage pour connaitre la marche à suivre pour regénérer un package
* @since 20/05/2009 Olivier REYT <reyt@benchmark.fr> 
*/

/**
 * @package bibliotheque
 * @subpackage benchmark
 * @filesource
 */

/**
 * objet (virtuel) collection de fonctions agissant sur les formulaires
 * 	
 * @author Damien BENOIT <benoit@benchmark.fr>
 * @package bibliotheque
 * @subpackage html_include
 * @version 1.00
 * @since 15/04/09 création du fichier
 */

if (typeof benchmark == 'undefined') 				{ var benchmark = new Object();} 
if (typeof benchmark.framework == "undefined") 			{ benchmark.framework = new Object();}
if (typeof benchmark.framework.util == 'undefined') 		{ benchmark.framework.util = new Object();} 
if (typeof benchmark.framework.util.form == 'undefined') 	{ benchmark.framework.util.form = new Object();} 
if (typeof benchmark.framework.util.form == 'undefined') 	{ benchmark.framework.util.form = new Object();} 

if (typeof benchmark.framework.util.form.getFormulaireDonneeTableau == 'undefined') {
	/**
	* retournes les valeurs d'un formulaire au format tableau en prenant compte des valeurs par défaut (mises à 0)
	* @param string selecteur jquery du formulaire souhaité
	* @author Damien BENOIT <benoit@benchmark.fr>
	* @return tableau js
	* @todo codée par principe, vérifier et valider le fonctionnement !
	*/
	benchmark.framework.util.form.getFormulaireDonneeTableau = function (selecteur) 
	{
		if(typeof(selecteur) == 'string')
		{
			benchmark.execution.objValeurParDefaut.valeurVide(selecteur);
			var retour = $(selecteur).serializeArray(); 
			benchmark.execution.objValeurParDefaut.valeurParDefaut(selecteur);
			return retour;
		}
		else 
		{
			return false;
		}
	};
}

if (typeof benchmark.framework.util.form.getFormulaireDonneeJson == 'undefined') {
	/**
	* retournes les valeurs d'un formulaire au format json en prenant compte des valeurs par défaut (mises à 0)
	* @param string selecteur jquery du formulaire souhaité
	* @author Damien BENOIT <benoit@benchmark.fr>
	* @return objet json
	*/
	benchmark.framework.util.form.getFormulaireDonneeJson = function (selecteur,sansValeurNull) 
	{
		if(typeof(sansValeurNull) == 'undefined')
		{
			sansValeurNull = false;
		}
		
		if(typeof(selecteur) == 'string')
		{
			var retour = {};
			if( typeof(benchmark.execution) != 'undefined' && typeof(benchmark.execution.objValeurParDefaut) != 'undefined' )
			{
				benchmark.execution.objValeurParDefaut.valeurVide(selecteur);
				var tableau = $(selecteur).serializeArray(); 		
				benchmark.execution.objValeurParDefaut.valeurParDefaut(selecteur);
			}
			else
			{
				var tableau = $(selecteur).serializeArray(); 		
			}
			
			if( tableau.length < 1 )
			{
				return false;
			}
			else 
			{
				for (var ligne in tableau)
				{
					if( sansValeurNull)
					{
						if( tableau[ligne]['value'] != '' && tableau[ligne]['value'] != 'null' )
						{
							retour[tableau[ligne]['name']] = tableau[ligne]['value'];						
						}
					}
					else 
					{
						retour[tableau[ligne]['name']] = tableau[ligne]['value'];
					}
				} 
				return retour;
			}
		}
		else 
		{
			return false;
		}
	};
}

if (typeof benchmark.framework.util.form.getFormulaireDonneeUrl == 'undefined') {
	/**
	* retournes les valeurs d'un formulaire au format url en prenant compte des valeurs par défaut (mises à 0)
	* @param string selecteur jquery du formulaire souhaité
	* @author Damien BENOIT <benoit@benchmark.fr>
	* @return string url des parametres
	*/
	benchmark.framework.util.form.getFormulaireDonneeUrl = function (selecteur) 
	{
		if(typeof(selecteur) == 'string')
		{
			benchmark.execution.objValeurParDefaut.valeurVide(selecteur);
			var retour = $(selecteur).serialize(); 
			benchmark.execution.objValeurParDefaut.valeurParDefaut(selecteur);
			return retour;
		}
		else 
		{
			return false;
		}
	};
}
