

var Aujourdhui=new Date();

// *********************************************
// function Mois(date,t)
// Donne le mois en toutes lettres 
//   date   : une date quelconque
//   t      = "c" pour format court
//   t      toute autre valeur format long
// *********************************************
function Mois(date,t)
{
tMois = ["janvier" , "février" , "mars" , "avril" , "mai" , "juin" , "juillet" , "aout" , "septembre" , "octobre" , "novembre" , "décembre"];
tMoisCourt = ["jan" , "fév" , "mars" , "avr" , "mai" , "juin" , "jui" , "aout" , "sept" , "oct" , "nov" , "déc"];
   if ( t == "c" )
       w = tMoisCourt[ date.getMonth() ]
   else   
      w = tMois[ date.getMonth() ]
return w;
}

// *********************************************
// function jour(date,t)
// Donne le jour en toutes lettres 
//      date    : une date quelconque
//       t       = "c" pour un format court (3 lettres)
//       t      toute autre valeur, format long
// *********************************************
function jour(date,t)
{
   tJour= ["dimanche" , "lundi" , "mardi" , "mercredi" , "jeudi" , "vendredi" , "samedi"];
   if ( t == "c" )
      { w = tJour[ date.getDay() ].substr( 0 , 3) }
   else
      { w = tJour[ date.getDay() ] }
return w;
}

// *********************************************
// function DateCourte(date,separ)
// Donne une date du style jj/mm/aaaa
//      date    : une date quelconque
//      separ   : le séparateur (par exemple /)
// *********************************************

function DateCourte(date,separ)
{
   w = right("0" + date.getDate() , 2 );
   w = w + separ;
   w = w + right( "0" + ( date.getMonth() + 1 ) , 2 );
   w = w + separ;
   w = w + date.getFullYear();
return w;
}

// *********************************************
// function DateLongue(date)
// Donne une date au format long
//      date    : une date quelconque
// *********************************************
function DateLongue(date)
{
   w = jour( date ) + " ";
   w= w + date.getDate() + " ";
   w= w + Mois( date ) + " ";
   w= w + date.getFullYear();
return w;
}

// *********************************************
// function datedecal(date,n,t)
// Donne une date décalée par raport à une autre
//      date    : la date de référence
//      n       : le nombre d'unités dont on décale
//      t       = "j" pour changer les jours
//      t       = "m" pour changer les mois
//      t       = "a" pour changer les années
//      t       toute autre valeur ne fait rien
// *********************************************

function datedecal(date,n,t)
{
   j = date.getDate();
   m = date.getMonth();
   a = date.getFullYear();
   switch (t)
   {   case "j"    : j = j + n;
               break;
      case "m"   : m = m + n;
               break;
      case "a"   : a = a + n;
               break;
   }
   w = new Date( a , m , j );
return w;
}

// *********************************************
// function DernierJourMois(date)
// Donne une date correspondant au dernier jour du mois
//      date    : une date quelconque
// *********************************************
function DernierJourMois(date)
{
   j = date.getDate();
   m = date.getMonth();
   a = date.getFullYear();
   w = new Date( a , m + 1 , 0 )
return w;
}

// *********************************************
// function right(literal,longueur)
// Renvoie  les premiers caractères d'une chaîne
//      literal    : la chaîne de caractères
//      longueur   : le nombre de caractères
// *********************************************

function right(literal,longueur)
{
   l = literal.length
   w = literal.substr( l - longueur);
return w;
}


// *********************************************
// function estUnNombre(s)
// Renvoie vrai (true) si le paramètre est un nombre
//	s : la valeur à tester
// *********************************************

function estUnNombre(s) { return ( !isNaN( s ) )}


// *********************************************
// function estPositif(s)
// Renvoie vrai (true) si le paramètre est positif
// s : le nombre à tester (doit être un nombre)
// *********************************************

function estPositif(s) {return ( parseInt( s ) >= 0)}


// *********************************************
// function estEntier(s)
// Renvoie vrai (true) si le paramètre est entier
// s : le nombre à tester (doit être un nombre)
// *********************************************
function estEntier(s) {return (parseInt(s) == s)}


// *********************************************
// function Entier(s)
// Teste avec alarm paramètre est entier
// s : le nombre à tester (doit être un nombre)
// *********************************************
function Entier( item ) {
	var valeurchamp = item.value 
	if 	( !estEntier( valeurchamp ) ){ 	
		alert( "Entrez un nombre entier " );
		item.select();
	}
}

// *********************************************
// function Entier(s)
// Teste avec alarm paramètre est entier
// s : le nombre à tester (doit être un nombre)
// *********************************************
function Nombre ( item ) {
	var valeurchamp = item.value 
	if 	( !estUnNombre( valeurchamp ) ){ 	
		alert( "Entrez un nombre +-nombre.dec" );
		item.select();
	}
}


// *********************************************
// function estEntierPositif(s)
// Utilise les fonctions précédentes pour tester
// si un paramètre est un nombre, entier et positif
// Renvoie vrai (true) si c'est le cas
//	s : la valeur à tester
// *********************************************

function estEntierPositif(s) {return (estUnNombre(s) & estEntier(s) & estPositif(s))}



// *********************************************
// function testBornes(item, min, max)
// teste si le champ contient un nombre, entier positif
// compris entre deux bornes
// item : le champ à tester
// min : la valeur minimale
// max : la valeur maximale
// *********************************************

function testBornes(item, min, max) 

{

	var valeurchamp = item.value 

	// Pour l'heure la valeur à retourner est faux (false)
	var returnVal = false	

	// Teste si le champ contient autre chose qu'un entier positif

	if 	( !estEntierPositif( valeurchamp ) )
		{ 	alert( "Entrez un nombre entier positif" );
			item.select();
		}
	// Si non (le contenu est entier positif)
	// teste si le contenu du champ est plus petit que le minimum

	else if (parseInt( valeurchamp ) < min)
		{	alert( "Le nombre " + item.name + " doit être plus grand que ou égal à " + min);
			item.value = min; // facultatif
			item.select();
		}

		// Si non (le contenu n'est pas plus petit que le minimum)
		// test si le contenu du champ est plus grand que le maximum

		else if ( parseInt( valeurchamp ) > max)
			{ 	alert("Le nombre " + item.name + " doit être inférieur ou égal à " + max);
				item.value = max; // facultatif
				item.select();	
			}

			// Si non (	le contenu n'est pas plus petit que le minimum et
			// 			n'est pas plus grand que le maximum)
			// alors le contenu est valable : la valeur à retourner est passée à vrai (true)
			else
			{                     
				returnVal = true;
			}
	return returnVal;
}



// ************************************************************
// Contrôle si le champ date a été rempli et s'il est valide
// Un champ date valide doit être de la forme [J]J/M[M]/AA[AA] 
// (Les parties entre [] sont facultatives, "-" ou "." peuvent êtres utilisés à la place des "/",
// Soit "1/07/2003", "01/7/2003", "01/07/03", "01-07-2003" ou "01.07.2003" sont valides)
// Et doit correspondre à une date valide ("29/02/2003" sera refusé)
// ************************************************************

function ControleDate(champ) {
 if (champ.value == "" || champ.value == "0") {
    	champ.value="0";
	champ.select();
	}
 else {
   var pivot = 20;
   var resultat = true;
   re = /^(\d\d?)(\/|-|\.)(\d\d?)(\/|-|\.)(\d\d)(\d\d)?$/;
   var tab = champ.value.match(re);
   if (!tab) resultat = false;
   else {
     if ((tab.length == 6) || (!tab[6])) 
       tab[5] = ((tab[5] < pivot) ? 2000 : 1900) + parseInt(tab[5]);
     else tab[5] = parseInt(tab[5].concat(tab[6]));
     var unedate = new Date(tab[5], parseInt(tab[3])-1, tab[1]);
     resultat = ((unedate.getFullYear() == tab[5]) && (unedate.getMonth() == tab[3]-1) && (unedate.getDate() == tab[1]));
   }
  
    if (resultat) return "";
   else {
   	alert(  "Date invalide jj/mm/aa " + champ.name);
   	// champ.select();
  }  
 }
}


//
////
////
////
////
////
////
////
////
////
//
function montre(id) {

	var d = document.getElementById(id);

	for (var i = 1; i<=99; i++)  
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}

	if (d) {d.style.display='block';}
}




//
////
////
////
////
////
////
////
////
////
////
//
function montre2(id) {
 
	var d = document.getElementById(id);

	for (var i = 1; i<=99; i++)  {
		if (document.getElementById('menu'+i))
			document.getElementById('menu'+i).style.display='block';

		if (document.getElementById('smenu'+i))
			document.getElementById('smenu'+i).style.display='none';

		if (document.getElementById('menub'+i)) {
			document.getElementById('menub'+i).style.display='none';
			document.getElementById('menub'+i).style.filter = 'alpha(opacity=80)'
			document.getElementById('menub'+i).style.background = "#6db3cd" ;
			document.getElementById('menub'+i).style.color = 'black';
		}
	}

	for (var j = 1; j<=10; j++)
		if ( id == 'menu' + j )
			for (var i = 1; i<=10; i++)
				if (document.getElementById('menub'+j+i))  
					document.getElementById('menub'+j+i).style.display='block'; 
}



// *********************************************
// function Test_Qte(s, modulus)
// Teste avec alarm paramètre est entier
// s : le nombre à tester (doit être un nombre)
// *********************************************
function Test_Qte  ( item , modu ) {
	var valeurchamp = parseInt(Trim(item.value))
        reste = parseInt(  valeurchamp  ) % modu
      //  alert ( item.value + ' '+ modu)
         
	if 	( Trim(item.value) == '' ) 
		return;
/*		
	if ( valeurchamp != Trim(item.value)  ) {
		alert( "Entrez un nombre entier pour la quantité" );
		item.select();
		return;
	}
*/	
	if 	( !  estUnNombre ( item.value ) ){ 	
		alert( "Entrez un nombre pour la quantité " + item.value );
		item.select();
		return;
	}
	
	if 	(  parseInt (item.value / modu)  * modu  != item.value )   { 	
		alert( "La quantité n'est pas compatible avec le minimun de commande : "  + modu + "\nLa quantité a été arrondi" );
		item.value = (parseInt (item.value / modu)+1) * modu ;
		return;
	} 
	 

}

function Test_Qte2 ( item , modu ) {
	var valeurchamp = parseInt(Trim(item.value))
        reste = parseInt(  valeurchamp  ) % modu
        // alert ( item.value + ' '+ modu) ; return;
        
	if 	( Trim(item.value) == '' ) 
		return;
	
	if ( valeurchamp != Trim(item.value)  ) {
		alert( "Entrez un nombre entier pour la quantité !" );
		item.select();
		return;
	}
	
	if 	( ! estPositif( valeurchamp ) ){ 	
		alert( "Entrez un nombre pour la quantité !" );
		item.select();
		return;
	}
	
	if 	(  reste > 0 )   { 	
		alert( "La quantité n'est pas compatible avec le minimun de commande ! : " + modu);
		item.select();
		return;
	} 
	 

}


// *********************************************
// function Trim( string)
//  suppression des blanc a droite et a gauche
// *********************************************
function Trim(string)
{
	return string.replace(/(^\s*)|(\s*$)/g,'');
}

