//------------------------------------------------
function IsFloat(fVal, strZone)
{
	if(fVal == null || fVal.length == 0)
	{
		strMsg += strZone + " : La zone doit contenir une valeur numérique\n";
		return false;
	}
	var str = fVal.toString();
	var Decimal = false;

	for(var i = 0; i < str.length; i++)
	{
		var c = str.charAt(i);
		if (c == "." && !Decimal)
		{
			Decimal = true;
			continue;	
		}
 		if(c < "0" || c > "9")
		{
			strMsg += strZone + " : La zone contient des caractères alphabétiques\n";
			return false;	
		}
	}
	return true;
}
//------------------------------------------------
function IsNull(strVal)
{
	if(strVal == null ||strVal.length == 0)
		return true;
	else
		return false;
}
//------------------------------------------------
function IsEmpty(strVal, strZone)
{
	if(strVal == null ||strVal.length == 0)
	{
		strMsg += strZone + " : La zone est obligatoire\n";
		return true;
	}
	return false;
}
//------------------------------------------------
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\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\n";
  return false;
 }
 if((iValDD > Months[iValMM-1]) && !((iValMM == 2) && (iValDD > 28)))
 {
  strMsg += strZone + " : La zone contient une date erronnée\n";
  return false;
 }
 if(!(Leap) && (iValMM == 2) && (iValDD > 28))
 {
  strMsg += strZone + " : La zone contient une date erronnée\n";
  return false;
 }
 if((Leap)  && (iValMM == 2) && (iValDD > 29))
 {
  strMsg += strZone + " : La zone contient une date erronnée\n"
  return false;
 }

  return new Date(iValYYYY, iValMM - 1,  iValDD);
}


//------------------------------------------------
function IsNumber(lVal, strZone)
{
	if(lVal == null || lVal.length == 0)
	{
		strMsg += strZone + " : La zone doit contenir une valeur numérique\n";
		return false;
	}

	var str = lVal.toString();

	for(var i = 0; i < str.length; i++)
	{
		var c = str.charAt(i);
		if(c < "0" || c > "9")
		{
			strMsg += strZone + " : La zone contient des caractères alphabétiques\n";
			return false;	
		}
	}
	return true;
}

function Ispolice(lVal, strZone)
{
	
	var reg = /^[a-z0-9._-]+\/[a-z0-9.-]+$/ 

	if(lVal == null || lVal.length == 0) {
		strMsg += strZone + " : La zone n'est pas valide (alphanumérique séparé par un /)\r\n";
		return false;
	}
	else
  	  if (reg.exec(lVal) == null){
		strMsg += strZone + " : La zone n'est pas valide (alphanumérique séparé par un /)\r\n";
		return false;
	  }
	return true;
}

//------------------------------------------------
function GetDay(strVal)
{
	return parseInt(strVal.substring(0, 2), 10);
}
//------------------------------------------------
function GetMonth(strVal)
{
	return 	parseInt(strVal.substring(3, 5), 10);
}
//------------------------------------------------
function GetYear(strVal)
{
	return parseInt(strVal.substring(6, strVal.length), 10);
}

function IsEmail(emailStr, strZone)
{
	var reg = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/ 
	
	if(emailStr == null || emailStr.length == 0) {
		strMsg += strZone + " : L'adresse email est obligatoire\n";
		return false;
	}
	else
  	  if (reg.exec(emailStr) == null){
		strMsg += strZone + " : L'adresse email n'est pas valide\n";
		return false;
	 }
			
	return true;
}

function StrToDate(strDate)
{
 return new Date(GetYear(strDate), GetMonth(strDate) - 1, GetDay(strDate));
}

function DateToStr(dt)
{
 var j = dt.getDate()
 var m = dt.getMonth() + 1
 var y = dt.getFullYear()
 if (j < 10)
	j = "0" + j;
 if (m < 10)
	m = "0" + m;
 return (j + "/" + m + "/" + y);
}

function DiffDateToMonth(diffDt)
{
  return (diffDt * 12) / (1000*60*60*24*365.25)
}

applyDates = function() { 
  var inputs = document.getElementsByTagName("input"); 

  for(var i = 0, length = inputs.length; i < length; i++) { 
		if (inputs[i].className == 'jj/mm/aaaa') { 
				inputs[i].setAttribute('autocomplete', 'off'); 
				inputs[i].onfocus = function() { 
				if(this.value== '') { 
					this.value=this.className;
					if (this.setSelectionRange)
						this.setSelectionRange(0,0)
					else	{
						this.select();
						var s = this.createTextRange();
						s.collapse(true);
						s.select();
					}
				}	
      } 
             
      inputs[i].onblur = function() { 
				if(this.value==this.className) 
					this.value=''; 
       }
            
       inputs[i].onkeydown=function(){
				if(this.value==this.className)
					this.value = ''

				this.onkeyup();

       }
     
		inputs[i].onkeyup=function(e){
			var ev = (window.event) ? window.event: e;
			var KCode = ev.keyCode

			if (KCode != 8 && KCode != 46){
				var val = this.value;
				if(val.length == 2 && val.indexOf('/') < 0)
					this.value += '/';
					
				if (val.length == 5 && val.lastIndexOf('/')==2)
					this.value += '/';
			}
     }

    } 
  } 
} 

