var sEmpty="";

// ____________    Les variables dates
var gNow = new Date();
var p_year = new String(gNow.getFullYear().toString());
var rss="00";

// ____________    verifie si la variable V est une chaîne vide
function itsEmpty(V)
	{
	if(V=='')
		{
		return true;
		}
	else
		{
		return false;
		}
	}

// ____________    lorsque il y a focusOut sur un controle
function ctrOnBlur(ctrId,ctrType)
	{
	switch (ctrType)
		{ 
		case 'DATSHT':   
			myDateFormat(ctrId);    
			break;  
		case 'DATLNG':       
			myDateLongFormat(ctrId);
			break;  
		default: 
			return false;
		}
	}

// ____________    fonction qui vide un controle
function ctrEmpty(ctrId)
	{
	document.getElementById(ctrId).value=sEmpty;
	}

// ____________    fonction qui retourne la valeur d'un controle
function ctrValueOf(ctrId)
	{
	return document.getElementById(ctrId).value;
	}

// ____________    fonction qui rempli un controle
function ctrFullfill(ctrId,v)
	{
	document.getElementById(ctrId).value=v;
	}

// ____________    transforme la saisie en un forma date
function myDateFormat(ctrId)
	{
	var val=ctrValueOf(ctrId);
	if(itsEmpty(val))
		{
		return false;
		}
	var rdat;
	var lenn=val.length;
	var Is_DigitString=false;

	for(i=0;i<lenn;i++)
		{
		C = val.substring(i, i+1);
		if (C<"0" || C>"9")
			{
			Is_DigitString=true;
			i=lenn;
			}
		}
	if(!Is_DigitString)
		{
		//no slash in the string
		if(lenn!=4 && lenn!=6 && lenn!=8)
			{
			ctrEmpty(ctrId);
			return false;
			}
		dd = val.substring(0, 2);
		mm = val.substring(2, 4);
		rdat = dd + '/' + mm + '/';
		if(lenn==4)
			{
			yy = p_year;
			}
		if(lenn==6)
			{
			yy = p_year.substring(0, 2) + val.substring(4, lenn);
			}
		if(lenn==8)
			{
			yy = val.substring(4, lenn);
			}
		rdat += yy;
		if(itsDate(rdat))
			{
			ctrFullfill(ctrId,rdat);
			}
		else
			{
			ctrEmpty(ctrId)
			}
		}
	else
		{
		//slash in the string
		if(lenn != 6 && lenn != 8 && lenn != 10)
			{
			ctrEmpty(ctrId);
			return false;
			}
		if(val.substring(2, 3) != '/' || val.substring(5, 6) != '/')
			{
			ctrEmpty(ctrId);
			return false;
			}
		dd = val.substring(0, 2);
		mm = val.substring(3, 5);
		rdat = dd + '/' + mm + '/';
		if(lenn==6)
			{
			yy = p_year;
			}
		if(lenn==8)
			{
			yy = p_year.substring(0, 2) + val.substring(6, lenn);
			}
		if(lenn==10)
			{
			yy = val.substring(6, lenn);
			}
		rdat += yy;
		if(itsDate(rdat))
			{
			ctrFullfill(ctrId,rdat);
			}
		else
			{
			ctrEmpty(ctrId);
			}
		}
	}

// ____________    transforme la date  en un format long date
function myDateLongFormat(ctrId)
	{
	var val=ctrValueOf(ctrId);
	if(itsEmpty(val))
		{
		return false;
		}	
	if(val.indexOf(' ')==-1)
		{
		ctrEmpty(ctrId);
		return false;
		}		
	var d=val.substring(0,val.indexOf(' '));
	var t=val.substring(val.indexOf(' ')+1,val.length);

	if(itsEmpty(d))
		{
		ctrEmpty(ctrId);
		return false;
		}
	// verification de la date
	var rdat;
	var lenn=d.length;
	var Is_DigitString=false;
		
	for(i=0;i<lenn;i++)
		{
		C = d.substring(i, i+1);
		if (C<"0" || C>"9")
			{
			Is_DigitString=true;
			i=lenn;
			}
		}
		
	if(!Is_DigitString)
		{
		//no slash in the string
		if(lenn!=4 && lenn!=6 && lenn!=8)
			{
			ctrEmpty(ctrId);
			return false;
			}
		dd = d.substring(0, 2);
		mm = d.substring(2, 4);
		rdat = dd + '/' + mm + '/';
		if(lenn==4)
			{
			yy = p_year;
			}
		if(lenn==6)
			{
			yy = p_year.substring(0, 2) + d.substring(4, lenn);
			}
		if(lenn==8)
			{
			yy = d.substring(4, lenn);
			}
		rdat += yy;
		if(itsDate(rdat))
			{
			d =rdat;
			}
		else
			{
			ctrEmpty(ctrId)
			}
		}
	else
		{
		//slash in the string
		if(lenn != 6 && lenn != 8 && lenn != 10)
			{
			ctrEmpty(ctrId);
			return false;
			}
		if(d.substring(2, 3) != '/' || d.substring(5, 6) != '/')
			{
			ctrEmpty(ctrId);
			return false;
			}
		dd = d.substring(0, 2);
		mm = d.substring(3, 5);
		rdat = dd + '/' + mm + '/';
		if(lenn==6)
			{
			yy = p_year;
			}
		if(lenn==8)
			{
			yy = p_year.substring(0, 2) + d.substring(6, lenn);
			}
		if(lenn==10)
			{
			yy = d.substring(6, lenn);
			}
		rdat += yy;
		if(itsDate(rdat))
			{
			d=rdat;
			}
		else
			{
			ctrEmpty(ctrId);
			}
		}
	
	// verification du temps
	var rdat;
	var lenn=t.length;
	var Is_DigitString=false;	

	for(i=0;i<lenn;i++)
		{
		C = t.substring(i, i+1);
		if (C<"0" || C>"9")
			{
			Is_DigitString=true;
			i=lenn;
			}
		}

	if(!Is_DigitString)
		{
		//no ":" in the string
		if(lenn!=2 && lenn!=4 && lenn!=6)
			{
			ctrEmpty(ctrId);
			return false;
			}
		hh = t.substring(0, 2);
		nn = t.substring(2, 4);
		rdat = hh + ':' + nn + ':';
		if(lenn==4)
			{
			ss = rss;
			}
		if(lenn==6)
			{
			ss = t.substring(4, lenn);
			}
		rdat += ss;	
		if(itsTime(rdat))
			{
			t=rdat;
			}
		else
			{
			ctrEmpty(ctrId)
			return false;
			}
		}
	else
		{
		// ":" in the string
		if(lenn != 6 && lenn != 8)
			{
			ctrEmpty(ctrId);
			return false;
			}
		if(t.substring(2, 3) != ':' || t.substring(5, 6) != ':')
			{
			ctrEmpty(ctrId);
			return false;
			}
		hh = t.substring(0, 2);
		nn = t.substring(3, 5);
		rdat = hh + ':' + nn + ':';
		if(lenn==6)
			{
			ss = rss;
			}
		if(lenn==8)
			{
			ss = t.substring(6, lenn);
			}
		rdat += ss;
		if(itsTime(rdat))
			{
			t=rdat;
			}
		else
			{
			ctrEmpty(ctrId);
			return false;
			}
		}
	ctrFullfill(ctrId,d + ' ' + t);
	}

// ____________    verifie si la variable date est une date
function itsDate(date)
	{
		var arr = date.split('/');
		if(arr.length!=3)
			{
			return false;
			}
		var d = arr[0];
		var m = arr[1];
		var y = arr[2];
		if(!itsInteger(d) || !inRange(d,1,31))
			{
			return false;
			}
		if(!itsInteger(m) || !inRange(m,1,12))
			{
			return false;
			}
		if(!itsInteger(y))
			{
			return false;
			}
	  if( (m==4) || (m==6) || (m==9) || (m==11))
			{
			if(d==31)
				{
				return false;
				}
			}
	  if(m==2)
			{
			if(isLeap(y))
				{
				if(d>29)
					{
					return false;
					}
				}
	   else
			{
	    if(d>28)
				{
	      return false;
				}
			}
	  }
	return true;
	}

// ____________    verifie si la variable time est un temps
function itsTime(time)
	{
		var arr = time.split(':');
		if(arr.length!=3)
			{
			return false;
			}
		var h = arr[0];
		var n = arr[1];
		var s = arr[2];
		if(!itsInteger(h) || !inRange(h,0,23))
			{
			return false;
			}
		if(!itsInteger(n) || !inRange(n,0,59))
			{
			return false;
			}
		if(!itsInteger(s) || !inRange(s,0,59))
			{
			return false;
			}			
	return true;
	}

// ____________    verifie si la variable myVar est un entier
function itsInteger(V)
	{
	if(isNaN(parseInt(V,10)) || (parseInt(V,10)!=V))
		{
			return false;
		}
	else
		{
			return true;
		}
	}

// ____________    verifie si la variable number est comprise entre begin et end
function inRange(number,begin,end)
	{
	if(number > end || number< begin)
		{
		return false;
		}
	return true;
	}

// ____________    verification de l'année
function isLeap(year)
	{
  if(year % 4 != 0) return false;
  if(year % 100 !=0)return true;
  if(year % 400 ==0)return true;
  return false;
	}
