// Procédures globales du projet
function _NAO(p){if(p==0||p>127)return "toolbar=0,location=0,status=0,scrollbars=0,directories=0,menubar=0,resizable=0";var o="";if(p&1)o+="toolbar=1,";if(p&2)o+="location=1,";if(p&4)o+="status=1,";if(p&8)o+="menubar=1,";if(p&16)o+="scrollbars=1,"
if(p&32)o+="resizable=1,";if(p&64)o+="directories=1,";if(o.length>0)o=o.substr(0, o.length-1);return o}
function _RMP(c,o,r){var p=0;var t=c.indexOf(o);var s=new String();while(t!=-1){s+=c.substring(p,t);s+=r;p=t+o.length;t=c.indexOf(o,p);		}s+=c.substring(p,c.length);return s}
function PROCEDURESGLOBALESDEFIDSTIMNAVIGATEUR_DOWNLOADFICHIER(VLSURLPAGEUPLOAD, VSNOMCOMPOSANT, VSREPERTOIRE, VSNOMFICHIER, VSNOMVIRTUEL ){{
VLSURLPAGEUPLOAD=VLSURLPAGEUPLOAD+(((((((("?BTNREFRESH&NCMP="+VSNOMCOMPOSANT)+"&RCMP=")+VSREPERTOIRE)+"&VNF=")+VSNOMVIRTUEL)+"&FNM=")+VSNOMFICHIER)+"&WD_ACTION_=");open(VLSURLPAGEUPLOAD,"DOWNLOAD".toUpperCase(),_NAO(32)+",width="+400+",height="+170)
}}
function PROCEDURESGLOBALESDEFIDSTIMNAVIGATEUR_CHECKDATESAISIE(VCHAMP ){{var VCH_TAILLE=0;if(((eval(("PAGE."+VCHAMP)).value.indexOf("//")+1)!=0)){eval(("PAGE."+VCHAMP)).value=_RMP(eval(("PAGE."+VCHAMP)).value,"//","/")}
switch(eval(("PAGE."+VCHAMP)).value.length){case 2:;case 5:{if(((VCH_TAILLE!=3)&&(VCH_TAILLE!=6))){eval(("PAGE."+VCHAMP)).value=(eval(("PAGE."+VCHAMP)).value+"/")}else {
eval(("PAGE."+VCHAMP)).value=eval(("PAGE."+VCHAMP)).value.substring(0,(VCH_TAILLE-2))}}break}VCH_TAILLE=eval(("PAGE."+VCHAMP)).value.length}}
function PROCEDURESGLOBALESDEFIDSTIMNAVIGATEUR_OUVREPOPUPSEC(V_NOMPAGE, V_TYPEPOSITION, V_X, V_Y ){{if (V_NOMPAGE==undefined) V_NOMPAGE="";if (V_TYPEPOSITION==undefined) V_TYPEPOSITION="";if (V_X==undefined) V_X=0;if (V_Y==undefined) V_Y=0;{
var VELARG=0;var VEHAUT=0;VELARG=300;VEHAUT=400;switch(V_TYPEPOSITION){case unescape("Centr%E9eEcran"):{
open(V_NOMPAGE,"POPUPWB".toUpperCase(),_NAO(0)+",width="+VELARG+",height="+VEHAUT+",left="+((screen.width/2)-(VELARG/2))+",top="+((screen.height/2)-(VEHAUT/2)))}break;case "PosPerso":{
open(V_NOMPAGE,"POPUPWB".toUpperCase(),_NAO(0)+",width="+VELARG+",height="+VEHAUT+",left="+V_X+",top="+V_Y)}break;case "":{open(V_NOMPAGE,"POPUPWB".toUpperCase(),_NAO(0)+",width="+VELARG+",height="+VEHAUT)}break;default:{
open(V_NOMPAGE,"POPUPWB".toUpperCase(),_NAO(0)+",width="+VELARG+",height="+VEHAUT)}break}return("POPUPWB")}}}
function PROCEDURESGLOBALESDEFIDSTIMNAVIGATEUR_FERMEPOPUP( ){{top.close();return}}
function Agrandir()
{
window.moveTo(0,0);
window.resizeTo(screen.width+5,screen.height-30);
//window.resizeTo(screen.width+5,screen.height-30);
}
function PgN_NmrTouche()
{
return event.keyCode;
}

function JS_FermetureNavigateur()
{
self.close();
//var s = opener.document.location.href
//opener.document.location.href = s + "&wd_action_=refresh";
//opener.location.reload(true)
}
function scrolling(nb,delay,increment) {
pixmax=nb; delai=delay; pix=0; inc=increment
setTimeout("scroll()",delai);
}



function scroll() {
pix=pix+inc;
self.scrollBy(0,inc);
if (pix<pixmax) {setTimeout("scroll()",delai);}
}

function isDate(d)
{
// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
if (d == "") // si la variable est vide on retourne faux
return false;

e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");

if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
return false; // Si pas bon, retourne faux

// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
j = parseInt(d.split("/")[0], 10); // jour
m = parseInt(d.split("/")[1], 10); // mois
a = parseInt(d.split("/")[2], 10); // année

// Si l'année n'est composée que de 2 chiffres on complète automatiquement
if (a < 1000) {
if (a < 89)  a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
else a+=1900;
}

// Définition du dernier jour de février
// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
else fev = 28;

// Nombre de jours pour chaque mois
nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

function CtrletRetourneDate(objet,msgerr)
{
with (objet)                              // Pour l'objet en paramètre
{
valeur=objet.value
if (isDate(value))            			// Si valeur est pas une date correcte, màj au fmt yyyy-mm-dd
{
j = valeur.split("/")[0]; // jour
m = valeur.split("/")[1]; // mois
a = valeur.split("/")[2]; // année
objet.value=a+"-"+m+"-"+j
return true;                            
}
else                                     
{                                         
if (msgerr!="") {alert(msgerr);}         
objet.select();                         // Resélectionne le champ
objet.focus();                          // Resélectionne le contenu
return false;                          
}
}
}

function afterpopup()
{
// La fenêtre appelante est-elle toujours ouverte ?
if (opener.closed)
{
alert('Le navigateur appelant a été fermé.');
return;
}
// Est-ce que le navigateur appelant a changé de page ?
if (opener.PAGE == null)
{
alert('Le navigateur appelant a changé de page.');
return;
}
// Execute afterpopup procédure de raffraichissement sur la page appelante
// (compilation dynamique du code JS)
eval(sCodeJS);
// Fermeture du navigateur courant
self.close();
return;
}


// Début testAdrMail fonction : testAdrMail
// Entrée : adrMail - (String) - Email à analysé.
// Renvoyé : true ou false - (Boolean) - Vrai si l'email est correct sinon Faux

function testAdrMail(adrMail) {

// déclaration et initialisation des variables
adrMailLength=adrMail.length; // longueur de la chaîne adrMail
caractOk="_.-0123456789abcdefghijklmnopqrstuvwxyz"; // caratères corect d'une adresse mail
var posArrobas=adrMail.indexOf('@',1); // position du premier Arrobas
var posPoint=adrMail.lastIndexOf('.',adrMailLength); // position du dernier point
var posCaractFaux=adrMail.indexOf('..',posArrobas+1); // position d'un caractère faux ('..' ou ' ')
var caract=0; // caractère extrait de la chaîne adrMail (utilisée par les boucles while)
var caractFaux=adrMail.charAt(0)+adrMail.charAt(posArrobas-1)+adrMail.charAt(posArrobas+1)+adrMail.charAt(posPoint-1);
var posCaract=0; // position du caractère à extraire de la chaîne adrMail (utilisée par les boucles while)
var posCaractOk=0; // position du caractère extrait de la chaîne adrMail (utilisée par les boucles while)
var posCaractNon=-1;
var retour=false; // l'adresse e-mail est considérée comme fausse au début

// début du teste
// s'il n'existe pas de caractère '..' alors on teste s'il existe un espace dans la chaîne adrMail
if (posCaractFaux!=-1 || adrMail.indexOf(' ',0)!=-1 || adrMail.indexOf('--',0)!=-1 || adrMail.indexOf('__',0)!=-1) {
posCaractFaux=0;
}

// Teste les points ou - ou _ au début de l'adrMail, autour de l'arrobas et autour du dernier point
for (posCaract;posCaract<4;posCaract++) {
caract=caractFaux.charAt(posCaract);
posCaractNon=caractOk.lastIndexOf(caract,2);
if (posCaractNon!=-1) {
posCaractFaux=0;
break;
}
}
// si l'adresse mail contient au moins 1 caractère et qu'elle comporte un arrobas
// et qu'elle comporte un point et que l'arrobas est avant le dernier point
// et qu'elle ne contient pas de '..' ou d'espace et que après le dernier point il y est 2,3 ou 4 caractères
// et qu'il n'y est pas de point autour de l'arrobas et que l'adresse ne commence pas par un point
// Alors
if (adrMailLength>0 && posArrobas!=-1 && posPoint!=-1 && posArrobas<posPoint && posCaractFaux==-1 && adrMailLength-posPoint-1>=2 && adrMailLength-posPoint-1<=4) {

// extraction d'un caractère et teste s'il existe dans la chaîne "_.-0123456789abcdefghijklmnopqrstuvwxyz"
// S'il n'existe pas alors posCaract=-1 donc au prochain 'tour' on passe aux autres boucles (qui ne s'effecturont pas)
// Si il existe on continue la boucle jusqu'au caractère avant l'arrobas et on passe à la boucle while suivante

adrMail=adrMail.toLowerCase();
posCaract=0;

while (posCaract<posArrobas && posCaractOk!=-1) {
caract=adrMail.charAt(posCaract);
posCaractOk=caractOk.indexOf(caract,0);
posCaract++;
}
posCaract++; // on passe l'arrobas

// sur le même principe qu'au dessus mais pour la partie entre l'arrobas et le dernier point
// le test ce fait sur les caractères ".-0123456789abcdefghijklmnopqrstuvwxyz"
// caractOk.indexOf(caract,1) on ne teste plus l'underscore
while (posCaract<posPoint && posCaractOk!=-1) {
caract=adrMail.charAt(posCaract);
posCaractOk=caractOk.indexOf(caract,1);
posCaract++;
}
posCaract++; // on passe le point

// sur le même principe qu'au dessus mais pour la partie entre le dernier point et la fin
// le test ce fait sur les caractères "abcdefghijklmnopqrstuvwxyz"
// caractOk.indexOf(caract,13) on ne teste plus que des lettres
while (posCaract<adrMailLength && posCaractOk!=-1) {
caract=adrMail.charAt(posCaract);
posCaractOk=caractOk.indexOf(caract,13);
posCaract++;
} // fin de la boucle while

// durant le parcour de l'adresse mail si n'y avait pas de caractère interdit
// posCaractOk a changer plusieurs fois de valeur mais na jamais eu la valeur -1
// donc l'adresse est bonne
if (posCaractOk!=-1) {
retour=true;
}
}
return retour; // renvoi le résultat (true ou false)
} // fin de la fonction  

function RtvTailleFic(objet)
{ 
with (objet)
{

var oas = new ActiveXObject("Scripting.FileSystemObject"); 
var d = objet.value; 
var e = oas.getFile(d); 
var f = e.size; 
return f; 
} 
}
function ChargeRepDepuisOuiNon() {
	try 
	{
		if (navOuiNon.document.forms["OUINON"].elements["REPONSE"].value == "") {return;}
		else {document.forms[strPage].elements[strChamp].value = navOuiNon.document.forms["OUINON"].elements["REPONSE"].value;
		}
	}
	
	catch (err )
	{
		//document.writeln("erreur:"+err.message+"<br>")
	}
	finally
	{
		TesteOuvertureOuiNon()
		return;
	}
	
}


function OuiNonEstFerme()
{
	if (navOuiNon.closed) { return true; }
	else { return false; }
	
}

function OuvreOuiNon(sBT,navX,navY)
{
	// Options du navigateur (ne PAS mettre d'espaces entre les options)
	var sOptions = "toolbar=0,location=0,status=0,scrollbars=1,directories=0,menubar=0,resizable=1";
	var navLargeur = 400;
	var navHauteur = 200;
	
	// Mode centré
	if 	(navX==-1) {
		navX=(screen.width-navLargeur)/2; 
		navY=(screen.height-navHauteur)/2;
	}
	
	_b = _PAGE_.WD_BUTTON_CLICK_.value;
	_PAGE_.WD_BUTTON_CLICK_.value = sBT;
	
	
	var e = "OUINON";
	var o = sOptions + ",width=" + navLargeur + ",height=" + navHauteur + ",left=" + navX + ",top="+navY;
	navOuiNon = open("",e,o);
	var t = e;
	_p = _PAGE_;
	_r =_PAGE_.target;
	_PAGE_.target = t;
	_PAGE_.submit();
	//	setTimeout("_JRE()",1);  // je ne me rappelle plus à quoi ça sert. Commenté parce que provoque une erreur de scrpt dans IE
	
	return;
}


