//////////////////////////////////////////////////////////////////
// Utilitaire.js                                               //
// Copyright BGP Indosuez 2003								   //
////////////////////////////////////////////////////////////////


// Test si une date est valide
function isValidDate(dd, mm, yyyy) {
  if (isNaN(dd) || isNaN(mm) || isNaN(yyyy)) return false
  if (dd.length<1 || mm.length<1 || yyyy.length<1) return false ;

  if (dd < 1 || dd > 31 || mm < 1 || mm > 12) return false
  if (mm == 2) {
    if (dd == 30 || dd == 31) return false
    if (dd == 29) return ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0)
  }
  else if (dd == 31)
    return !( mm == 4 || mm == 6 || mm == 9 || mm == 11 )
  return true
}

// Test que la valeur d'un champ n'est pas vide
function nonVide(mt)
{
	if (mt.value.length<1)
	{
		return false;
	}
	else
	{ 
		return true; 
	}
}

// Test que la valeur d'un champ est vide
function estVide(mt)
{
	return !nonVide(mt) ;
}

/**
 * Test si l'email est valide ou non
 */
function isValidEmail(str) {
   return (str.indexOf("@") != "-1" && str.indexOf(".") != "-1" && str.value != "") ;   
}

// Test que la valeur de l'objet est bien un numérique
function estNumerique(tag) {

var ch=tag.value;
var chresu=ch.replace(/,/g,".");

  if (isNaN(chresu)) {
    return false
  }
  else return true;
}

// Test que les champs sont bien numeriques
function testChampsDateEstNumerique(t1, t2, t3) {
	if (nonVide(t1))
	{
		if (!estNumerique(t1))
		{
			alert("Le champ jour de la date de recherche est incorrecte ou mal formatée.");
			t1.focus();
			return false;
		}
	}
	if (nonVide(t2))
	{
		if (!estNumerique(t2))
		{
			alert("Le champ mois de la date de recherche est incorrecte ou mal formatée.");
			t2.focus();
			return false;
		}
	}
	if (nonVide(t3))
	{
		if (!estNumerique(t3))
		{
			alert("Le champ année de la date de recherche est incorrecte ou mal formatée.");
			t3.focus();
			return false;
		}
	}
	return true;

}

// Fonction estDate
// Test si un champ est au format d'une date
// du type jj/mm/aaaa
function estDate(c)
{
	etat = 0;
	j = -1;
	m = -1;
	a = -1;
	len = c.value.length;
	temp = "";
	texte = c.value;

	for(i=0; i<len; i++)
	{
		if (texte.charAt(i) != '/')
		{
			temp = temp + texte.charAt(i);
		}
		else
		{
			if (etat==0)
			{
				j = parseInt(temp);
			}
			if (etat==1)
			{
				m = parseInt(temp);
			}
			etat++;
			temp = "";
		}
	}
	a = parseInt(temp);
	
	if (isNaN(j) || isNaN(m) || isNaN(a))
	{
		return false;
	}
	else
	{
		return true;
	}
}

//////////////////////////////////////////////////////////
//	Gestion des heures
//////////////////////////////////////////////////////////
function isValidHeure(hh, mm) {
  if (isNaN(hh) || isNaN(mm) ) return false

  if (hh < 0 || hh > 23 || mm < 0 || mm > 59) return false
  
  return true
}


function ValiderHeure(tag) {
  var theHeure;
  
  theHeure=tag.value;
  
  if ( theHeure.length < 5 ) {
    	return false;	
  }
  
  if (theHeure=="") {
    return false;
  }
  else {
    if (theHeure.substr(2,1)!=":") {
      return false;
    }
    else {
      if (isValidHeure(theHeure.substr(0,2),theHeure.substr(3,2))==false) {
        return false;
      }
    }
  }

  return true;
}



// Ouvre une pop-up
function ouvrePopUp(adresse)
{
	// Exemple de lien
	// <a href="#" onClick="ouvrePJ('../Elements/List')">Liste des pièces jointes</a>
	window.open(adresse,'disclaimer','width=700, height=300, status=yes, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, resizable=yes');
}

// Ouvre une nouvelle fenetre
function ouvreFenetre(adresse)
{
	// Exemple de lien
	// <a href="#" onClick="ouvrePJ('../Elements/List')">Liste des pièces jointes</a>
	window.open(adresse,'disclaimer','width=800, height=600, status=yes, directories=yes, toolbar=yes, location=yes, menubar=yes, scrollbars=yes, resizable=yes');
}

// Gestion des checkbox 
// selectionne toutes les cases
// par defaut, on considere qu'il n'y a que des cases a cocher parmi les
// champ
function SelectUnSelectAll( flag, my_form)
{
	len	=	my_form.elements.length;
	var	index	=	0;
	for( index=0; index < len; index++ )
	{
		
		
			my_form.elements[index].checked=flag;
		
	}
}
function newSelectUnSelectAll( my_form, field_name )
{
    if(my_form.clickcontrol.checked)
           {
               flag = true;
           }
    else
           {
               flag = false;
           }
   len     =       my_form.elements.length;
   var     index   =       0;
    for( index=0; index < len; index++ )
    {
        if( my_form.elements[index].name == field_name )
        {
            my_form.elements[index].checked=flag;
        }
    }
}

function checkIsSelected(my_form) 
{

	len	=	my_form.elements.length;
	var	index	=	0;
	var flag = false ;
	for( index=0; index < len; index++ )
	{
		
		if(my_form.elements[index].checked) {
			flag = true ;
		}
		
	}
	return flag ;
}

/**
 */
function mandatoryFieldContact(){
/*	var strChaineErr = "" ;
	if (estVide(document.contactForm.nom)) {
		strChaineErr += "Veuillez renseigner votre nom svp.\n" ;
	}
	if (estVide(document.contactForm.email)) {
		strChaineErr += "Veuillez renseigner votre email svp." ;
	} else if (!isValidEmail(document.contactForm.email.value)) {
		strChaineErr += "Veuillez entrer un email valide svp." ;
	}
	if (strChaineErr != "") {
		alert(strChaineErr) ;
	} else {
		document.contactForm.submit() ;
	}*/

	document.contactForm.submit() ;
}
