/**
*@addtogroup MEXUP
*
*Mxp_Init
*Permet de gérer des initialisations multiples sur l'évenement "window.onload".
*
*@author François Béliveau <fbeliveau@mexup-soft.com>
*@copyright 2006 MEXUP <http://www.mexup-soft.com>
*@license GNU General Public License <http://www.gnu.org/copyleft/gpl.html>
*@version 0.1.0
*/
var Mxp_Init =
{
	/**
	*set_NouvelleFonction
	*Ajoute une fonction dans la pile des initialisations.
	*Créer à partir des travaux de Dean Edwards/Matthias Miller/John Resig
	* http://dean.edwards.name/weblog/2006/06/again/
	* http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
	* http://simon.incutio.com/archive/2004/05/26/addLoadEvent
	*
	*@param     object[Evenement]
	*
	*@return     boolean
	*/
	set_NouvelleFonction: function(obj_Fonction)
	{
		if(typeof Array.prototype.push == "undefined")
		{
			// méthode push() pour la compatibilité IE5
			Array.prototype.push = function()
				{
					var int_Indice = 0;
					var int_Nb = arguments.length;
					for(int_Indice = 0; int_Indice < int_Nb; int_Indice++)
					{
						this[this.length] = arguments[int_Indice];
					}
					return this.length;
				};
		}

		if(!window.array_MxpInit)
		{
			var exec_Initialisation = function ()
			{
				if(arguments.callee.done)
					return;

				arguments.callee.done = true;
				if(window.int_MxpTimer)
				{
					clearInterval(window.int_MxpTimer);
					window.int_MxpTimer = null;
				}

				var int_Nb = window.array_MxpInit.length;
				for(var int_I=0;int_I < int_Nb;int_I++)
				{
					if(window.array_MxpInit[int_I])
						window.array_MxpInit[int_I]();
				}
				window.array_MxpInit = null;

				/*@cc_on @*/
					/*@if (@_win32)
						document.getElementById("__ie_onload").onreadystatechange = "";
				/*@end @*/
			};

			if(document.addEventListener)
				document.addEventListener("DOMContentLoaded", exec_Initialisation, false);

			// Internet Explorer
			/*@cc_on @*/
				/*@if (@_win32)
					document.write("<scr"+"ipt id=__ie_onload defer src=javascript:void(0)><\/scr"+"ipt>");
				var script = document.getElementById("__ie_onload");
				script.onreadystatechange = function()
				{
					if (this.readyState == "complete")
					{
						exec_Initialisation();
					}
			};
			/*@end @*/

			if(/WebKit/i.test(navigator.userAgent))
			{
				window.int_MxpTimer = setInterval(
					function()
					{
						if (/loaded|complete/.test(document.readyState))
						{
							exec_Initialisation();
						}
					},
					10);
			}

			window.onload = exec_Initialisation;
			window.array_MxpInit = [];
		}

		window.array_MxpInit.push(obj_Fonction);
	}
};
