// Procédures globales du projet
// EXE_ExtraitChaine
// ------------------------------------------------------------------------------------------------
// Paramètres :
//	c : chaine de base
//	p : position de la sous-chaine recherchée
//	s : séparateur utilisé
//	n : sens de parcours	1 => sens inverse, autre (inclus undenfined) => sens normal

// Variables locales :
//	d : position de début de la chaine à extraire
//	f : position de fin de la chaine à extraire
//	i : compteur de boucle
function _EC(c,p,s,n)
{
	if (!(n == 1))
	{
		var d=-s.length;
		// on recherche la position du p-1 ème séparateur
		for(var i=0;i<p-1;i++)
		{
			// on cherche la position de la prochaine occurrence du séparateur
			d=c.indexOf(s,d+s.length);
			// si on ne trouve pas de séparateur, on renvoie soit tout, soit rien en fontion de la position demandée
			if(d==-1)return(p==1?c:"\b");
		}
		// on recherche le séparateur suivant
		var f=c.indexOf(s,d+s.length);
		// si f a dépassé, on se place à la fin de la chaine
		if(f==-1)f=c.length;
		// finalement, on extrait et on retourne la sous chaine
		return c.substring(d+s.length,f);
	}
	else
	{
		var d = c.length;
		// on recherche la position du p-1 ème séparateur
		for(var i=0;i<p-1;i++)
		{
			d = c.lastIndexOf(s, d - 1);
			// si on ne trouve pas de séparateur, on renvoie soit tout, soit rien en fontion de la position demandée
			if (d == -1)	return (p==1?c:"\b");
		}
		// on recherche le séparateur précédent
		var f = c.lastIndexOf(s, d - 1);
		// si f a dépassé, on se place au début de la chaine
		if (f == -1)return c.substr(0, d);
		// finalement, on extrait et on retourne la sous chaine
		return c.substr(f + 1, d - f - 1);
	}
}
// EXE_SansEspace
// ------------------------------------------------------------------------------------------------
// Paramètres :
//	c : chaine à traiter
//	o : option indiquant de quel côté on doit retirer les espaces
//						  1 = à gauche , 2 = à droite , 3 = les deux
// Variables locales :
//	d : position de début de la chaîne résultat désirée
//	f : position de fin de la chaîne résultat désirée
function _SAE(c,o)
{
	var d=0;
	// On force la conversion en chaine
	c += ""
	var f=c.length-1;
	// Si on a demandé sans espace à gauche
	if(o&1)while(c.charAt(d)==" ")d++;
	// Si on a demandé sans espace à droite
	if(o&2)while(c.charAt(f)==" ")f--;
	// Sécurité si la chaine n'ets faite que d'espaces
	if (f < d) f= d;
	// On découpe la sous chaine
	return c.substring(d,f+1);
}
function PROCEDURESGLOBALESDEHAWAIINAVIGATEUR_BNETSCAPE( )
{
	{
	return(false);
	return(((navigator.appName.toUpperCase().indexOf("NETSCAPE")+1)>0));
}
}
function PROCEDURESGLOBALESDEHAWAIINAVIGATEUR_BVERIFEMAIL(VPSEMAIL, VPSLISTEEX )
{
	{
	var VSEMAIL=VPSEMAIL.toUpperCase();
	if(((VSEMAIL.indexOf("@")+1)==0))
	{
		return(false);
	}
	var VSSUFFIXE=_EC(VSEMAIL,2,"@",0);
	if(((VSSUFFIXE.indexOf(".")+1)==0))
	{
		return(false);
	}
	var VNDEBUT=0;
	var VNPOS=0;
	while(true)
	{
		VNDEBUT=(VSSUFFIXE.indexOf(".",(VNDEBUT+1)-1)+1);
		if((VNDEBUT==0))
		{
			break;
		}
		VNPOS=VNDEBUT;
	}
	VSSUFFIXE=(VSSUFFIXE + "").substr((VNPOS+1)-1);
	if((_SAE(VSSUFFIXE,3).toUpperCase()==_SAE("",3).toUpperCase()))
	{
		return(false);
	}
	VSSUFFIXE=(("."+_SAE(VSSUFFIXE,3))+"|");
	if(((VPSLISTEEX.indexOf(VSSUFFIXE)+1)==0))
	{
		return(false);
	}
	return(true);
}
}
