var strMsg = "";
//------------------------------------------------
function IsNumber(lVal, strZone)
{
	if(lVal == null || lVal.length == 0) return false;

	if (isNaN(lVal)){
		strMsg += strZone + " : La zone contient des caractères alphabétiques\r\n";
		return false;	
	}

	return true;
}
//------------------------------------------------
function IsNumberBool(lVal)
{
	if(lVal == null || lVal.length == 0)
		return false;
	if (isNaN(lVal)){
		return false;	
	}
	return true;
}

//------------------------------------------------
function IsEmpty(strVal, strZone)
{
	if(strVal == null ||strVal.length == 0)
	{
		strMsg += strZone + " : La zone est obligatoire\r\n";
		return true;
	}
	return false;
}
//------------------------------------------------
function IsEmail(emailStr, strZone)
{
	var emailPat		= /^(.+)@(.+)$/;
	var specialChars	= "\\(\\)<>@,;:éèâôàùçàù\\\\\\\"\\.\\[\\]";
	var validChars		= "\[^\\s" + specialChars + "\]";
	var firstChars		= validChars;
	var quotedUser		= "(\"[^\"]*\")";
	var ipDomainPat		= /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom			= "(" + firstChars + validChars + "*" + ")";
	var word			= "(" + atom + "|" + quotedUser + ")";
	var userPat			= new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat		= new RegExp("^" + atom + "(\\." + atom +")*$");

	var matchArray		= emailStr.match(emailPat);
	if (matchArray == null)
	{
		strMsg += strZone + " : L'adresse email est incorrect\r\n";
		return true;	
	}
	var user = matchArray[1];
	var domain = matchArray[2];
	if (user.match(userPat) == null)
	{
		strMsg += strZone + " : L'adresse email est incorrect\r\n";
		return false;	
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray != null)
	{
		for (var i = 1; i <= 4; i++)
		{
			if (IPArray[i] > 255)
			{
				strMsg += strZone + " : L'adresse email est incorrect\r\n";
				return false;	
			}
		}
		strMsg += strZone + " : L'adresse email est incorrect\r\n";
		return false;	
	}

	var domainArray = domain.match(domainPat);
	if (domainArray == null)
	{
		strMsg += strZone + " : L'adresse email est incorrect\r\n";
		return false;	
	}
	var atomPat = new RegExp(atom, "g");
	var domArr = domain.match(atomPat)
	var len = domArr.length 
	if (domArr[domArr.length - 1].length < 2 || domArr[domArr.length - 1].length > 4)
	{	
		strMsg += strZone + " : L'adresse email est incorrect\r\n";
		return false;	
	}
	return true;
}
function IsDate(strVal, strZone)
{
 if(strVal == null || strVal.length == 0)
	return false;

 var Delim = strVal.indexOf("/");
 var Delim1= strVal.lastIndexOf("/");
 var iValDD = 0;
 var iValMM = 0;
 var iValYYYY = 0;
 
 if (strVal.length < 10)
 {
  strMsg += strZone + " : La zone contient une date erronnée (Format JJ/MM/AAAA)\r\n";
  return false;
 }

 if(Delim != -1 && Delim1 == Delim)
 {
  strMsg += strZone + " : La zone contient des séparateurs invalides (Format JJ/MM/AAAA)\r\n";
  return false;
 }
 iValDD = strVal.substring(0, Delim);
 iValMM  = strVal.substring(Delim + 1, Delim1);
 iValYYYY  = strVal.substring(Delim1 + 1, strVal.length);
 Months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 Leap  = false;

 if (isNaN(iValDD) || isNaN(iValMM) || isNaN(iValYYYY))
 {
  strMsg += strZone + " : La zone contient une date erronnée\r\n";
  return false;
 }
 if((iValYYYY % 4 == 0) && ((iValYYYY % 100 != 0) || (iValYYYY %400 == 0)))
  Leap = true;
 if((iValDD < 1) || (iValDD > 31) || (iValMM < 1) || (iValMM > 12) || (iValYYYY < 0))
 {
  strMsg += strZone + " : La zone contient une date erronnée\r\n";
  return false;
 }
 if((iValDD > Months[iValMM-1]) && !((iValMM == 2) && (iValDD > 28)))
 {
  strMsg += strZone + " : La zone contient une date erronnée\r\n";
  return false;
 }
 if(!(Leap) && (iValMM == 2) && (iValDD > 28))
 {
  strMsg += strZone + " : La zone contient une date erronnée\r\n";
  return false;
 }
 if((Leap)  && (iValMM == 2) && (iValDD > 29))
 {
  strMsg += strZone + " : La zone contient une date erronnée\r\n"
  return false;
 }

  return new Date(iValYYYY, iValMM - 1,  iValDD);
}
