/**
* 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 objets
 * 	
 * @author Damien BENOIT <benoit@benchmark.fr>
 * @package bibliotheque
 * @subpackage html_include
 * @version 1.00
 * @since 26/09/08 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.objet == 'undefined') 	{ benchmark.framework.util.objet = new Object();} 

if (typeof benchmark.framework.util.objet.fusion == 'undefined') {
	/**
	* fusionne deux objets js en un (pour configuration, parametrage template données+param objet, etc)
	* @param objet1 (privilegié en cas de duplicat)
	* @param objet2
	* @return objet
	*/
	benchmark.framework.util.objet.fusion = function (objet1,objet2) 
	{
		objetRetour = new Object();
		for ( var valueName in objet2 )
		{
			objetRetour[valueName] = objet2[valueName];
		}
		
		for ( var valueName in objet1 )
		{
			objetRetour[valueName] = objet1[valueName];
		}
		delete(valueName);
		return objetRetour;
	};
}

if (typeof benchmark.framework.util.objet.taille == 'undefined') {
	/**
	* retourne la taille d'un objet ou d'un tableau associatif ( .length retourne undefined si associatif)
	* @param objet
	* @return int taille
	*/
	benchmark.framework.util.objet.taille = function (objet) 
	{
		var j = 0;
		for ( var i in objet)
		{
		    j++;
		}
		return j;
	};
}
