/******************************************************************************/
/*             MODULE   GesAlerte                                             */
/******************************************************************************/
/* DATE DE CREATION    : 14/01/02	                                            */
/*                                                                            */
/* AUTEUR              : Matthieu FERON                                       */
/*                                                                            */
/* DESCRIPTION         : Boite d'alerte temporisee                            */
/*                                                                            */
/* INCLUDES            : necessite GesCalque.js                               */
/*                                                                            */
/* FONCTIONS : MFE_Alert(  source ) cree l'info bulle et l'affiche            */
/*                source : source HTML                                        */
/*                utilisation : appel explicite dans javascript               */
/*                              fermeture  est gere implicitement             */
/*             MFE_Alert_Style ( ... ) modifie les styles de boite            */
/*                utilisation : appel explicite avec ou sans arguments        */
/*                sans arguments : réinitialise les styles par défaut         */
/*                avec arguments : nom du style = "Bulle_Texte" ou            */
/*                                                "Bulle_Bordure"             */
/*                                 serie de couple propriete,valeur separe par*/
/*                                 des virgules                               */
/*                                 ex :                                       */
/*                                  "Bulle_Texte","color","black","fontSize",1*/
/*                                                                            */
/******************************************************************************/
/* MODIFIE LE   00/00/00  PAR  x                                              */
/* DESCRIPTION DE LA MODIFICATION : x                                         */
/*                                  x                                         */
/******************************************************************************/

var MFE_Alert_handle=null;     /*  handle du calque popup        */
var MFE_Alert_Verrou=false;    /* si une erreur de crea calque se produit ou si un calque est en cours, empecher les futures crea */
var MFE_Alert_Debug=false;     /* masque toutes les alertes definies dans le source */
var MFE_Alert_Init=false;      /* lors du premier appel a MFE_Alert on reinitialise les styles sauf si la fonction d'init a deja ete appelee */
var MFE_Alert_Index=0;
var MFE_Alert_Objet=null;
/* source obligatoire de la bulle */
var MFE_Alert_Head="<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0><TR><TD CLASS=Alerte_Bordure>";
var MFE_Alert_Part1="<TABLE CELLPADDING=2 CELLSPACING=1 BORDER=0><TR><TD CLASS=Alerte_Texte>";
var MFE_Alert_Part2="</TD></TR></TABLE>";
var MFE_Alert_End="</TD></TR></TABLE>";

/* parametres par defaut */

var MFE_Alert_Texte_Def_backgroundColor = "#FF0000";
var MFE_Alert_Texte_Def_color = "#000000";
var MFE_Alert_Texte_Def_fontFamily = "Arial";
var MFE_Alert_Texte_Def_textAlign = "center"
var MFE_Alert_Bordure_Def_backgroundColor = "#000000";

var MFE_Alert_Texte_Def_IEfontSize = "33px";
var MFE_Alert_Texte_Def_NSfontSize = "36px";

var MFE_Alert_Def_IEcss="\
			TD.Alerte_Bordure {\
				BACKGROUND-COLOR : " + MFE_Alert_Bordure_Def_backgroundColor +
			"}\
			TD.Alerte_Texte {\
				BACKGROUND-COLOR : " + MFE_Alert_Texte_Def_backgroundColor + ";\
				FONT-FAMILY : " + MFE_Alert_Texte_Def_fontFamily + ";\
				FONT-SIZE : " + MFE_Alert_Texte_Def_IEfontSize + ";\
				COLOR : " + MFE_Alert_Texte_Def_color + ";\
				TEXT-ALIGN : " + MFE_Alert_Texte_Def_textAlign + ";\
			}";

function MFE_Alert_Style()
{
	var IB_Si;
	var IB_Sj;
	
	MFE_Alert_Init = true;
	if ( document.all )
	{
		IB_Sj=-1;
		for ( IB_Si=0 ; IB_Si<document.styleSheets.length ; IB_Si++ )
		{
			if ( document.styleSheets[IB_Si].title == "MFEAlertCSS" )
			{
				IB_Sj = IB_Si;
				break;
			}
		}
		if ( IB_Sj == -1 )
		{
			IEcss = document.createStyleSheet();
			IEcss.title = "MFEAlertCSS";
			IEcss.disabled=false;
			IEcss.cssText = MFE_Alert_Def_IEcss;
		}
		else
		{
			IEcss = document.styleSheets[IB_Sj];
		}
		if ( MFE_Alert_Style.arguments.length > 0 )
		{

			for ( IB_Si = 0 ; IB_Si<IEcss.rules.length ; IB_Si++ )
			{
				if ( IEcss.rules[IB_Si].selectorText == "TD." + MFE_Alert_Style.arguments[0] )
				{
					IErule = IEcss.rules[IB_Si];
				}
			}
			for ( IB_Si = 1 ; IB_Si<MFE_Alert_Style.arguments.length ; IB_Si+=2 )
			{
				eval( "IErule.style." + MFE_Alert_Style.arguments[IB_Si] + "='" + MFE_Alert_Style.arguments[IB_Si+1] + "';" );
			}
		}
		else
		{
			IEcss.cssText = MFE_Alert_Def_IEcss;
		}
	}
	else
	{
		document.classes.Bulle_Texte.TD.backgroundColor = MFE_Alert_Texte_Def_backgroundColor;
		document.classes.Bulle_Texte.TD.color = MFE_Alert_Texte_Def_color;
		document.classes.Bulle_Texte.TD.fontFamily = MFE_Alert_Texte_Def_fontFamily;
		document.classes.Bulle_Texte.TD.fontSize = MFE_Alert_Texte_Def_NSfontSize;
		document.classes.Bulle_Texte.TD.textAlign = MFE_Alert_Texte_Def_textAlign;
		document.classes.Bulle_Bordure.TD.backgroundColor = MFE_Alert_Bordure_Def_backgroundColor;
		if ( MFE_Alert_Style.arguments.length > 0 )
		{
			for ( IB_Si = 1 ; IB_Si<MFE_Alert_Style.arguments.length ; IB_Si+=2 )
			{
				eval( "document.classes." + MFE_Alert_Style.arguments[0] + ".TD." + MFE_Alert_Style.arguments[IB_Si] + "='" + MFE_Alert_Style.arguments[IB_Si+1] + "';" );
			}
		}
	}
}

function MFE_Alert_Destroy()
{
	MFE_Alert_handle.hide();
	MFE_Alert_Verrou = false;
}

function MFE_Alert( source )
{
	var IB_source="";
	var coordx=0;
	var coordy=0;
	
	//explore( window.document.body );
	if ( MFE_Alert_Verrou == false )
	{
		if ( MFE_Alert_Init == false )
		{
			MFE_Alert_Style();
		}
		MFE_Alert_Verrou = true;
		if ( MFE_Alert_handle != null )
		{
			MFE_Alert_handle.kill();
			MFE_Alert_handle=null;
		}
		MFE_Alert_handle = new MFE_calque( "popup"+MFE_Alert_Index , "hidden",  0, 0 );
		if ( MFE_Alert_handle != null )
		{
			IB_source = MFE_Alert_Head;
			IB_source += MFE_Alert_Part1;
			IB_source += unescape(source).replace( / /gi, "&nbsp;");
			IB_source += MFE_Alert_Part2;
			IB_source += MFE_Alert_End;
			MFE_Alert_handle.setHTML( IB_source );
			if ( document.all )
			{
			  coordx = ((document.body.clientHeight-MFE_Alert_handle.height)/2);
			  coordy = ((document.body.clientWidth-MFE_Alert_handle.width)/2);
			}
			else
			{
			}
			MFE_Alert_handle.setCoords( coordx, coordy );
			MFE_Alert_handle.show();
			setTimeout( "MFE_Alert_Destroy();", 3000 );
			MFE_Alert_Index++;
	   	}
		else
		{	
   			MFE_Alert_Verrou = true;
			if ( MFE_Alert_Debug == true ) alert( "erreur en création de popup" );
		}
	}
}

