
// cette fonction a pour but de contrôler une date saisie à la main au format jj/mm/aaaa
/*
* @author : gregory
* @return : 0 si la date est fausse 1 sinon
* @param : on prend un champ input type="text"
* @param : on prend la langue sur 2 lettres
*/


function checkMaDate(maDate, langue) {
	if (langue == '' || langue == null) {
		langue = 'fr';
	}
	var valeurDeLaDate = maDate.value;

	if (valeurDeLaDate == '')
	{
		if (langue == 'fr') {
			alert('Votre date est vide');
		} else {
			alert('Your date is empty');
		}
		return 0;
	}
	if (langue == 'fr') {
		var regexp = new RegExp("[0-3][0-9]/[0-1][0-9]/[0-9]{4}","g");
	} else {
		var regexp = new RegExp("[0-9]{4}-[0-1][0-9]-[0-3][0-9]","g");
	}
	if (valeurDeLaDate.match(regexp))
	{
		if (langue == 'fr') {
			var jour = valeurDeLaDate.substr(0,2);
			var mois = valeurDeLaDate.substr(3,2);
			var annee = valeurDeLaDate.substr(6,4);
		} else {
			var jour = valeurDeLaDate.substr(8,2);
			var mois = valeurDeLaDate.substr(5,2);
			var annee = valeurDeLaDate.substr(0,4);				
		}
		var longueurDate = valeurDeLaDate.length;
		if (longueurDate > 10)
		{
			if (langue == 'fr') {
				alert('La longueur de la date saisie est invalide');
			} else {
				alert('Invalid date');
			}
			maDate.value = '' ;
			return 0;
		}
		if (jour > 31)
		{
			if (langue == 'fr') {				
				alert('Le jour est incorrect');
			} else {
				alert('Incorrect day');
			}
			maDate.value = '' ;
			return 0;
		}
		if (mois > 12)
		{
			if (langue == 'fr') {								
				alert('Le mois est incorrect');
			} else {
				alert('Incorrect month');
			}
			maDate.value = '' ;
			return 0;
		}
		//alert('La date est bonne');
		if (jour > 30 && (mois == 2 || mois == 4 || mois == 6 || mois == 9 || mois == 11))
		{
			if (langue == 'fr') {								
				alert('Ce jour n\'existe pas');
			} else {
				alert('This day does not exist');
			}
			maDate.value = '';
			return 0;
		}
		if (mois == 2 )
		{
			if (annee % 4 == 0 && annee % 100 != 0)
			{
				// ici l'année est belle et bien bissextile
				if (jour > 29)
				{
					if (langue == 'fr') {								
						alert('Ce jour n\'existe pas');
					} else {
						alert('This day does not exist');
					}
					maDate.value = '';
					return 0;
				}
				else
				{
					return 1;
				}
			}
			if (annee % 400 == 0)
			{
				// ici l'année est belle et bien bissextile
				if (jour > 29)
				{
					if (langue == 'fr') {								
						alert('Ce jour n\'existe pas');
					} else {
						alert('This day does not exist');
					}
					maDate.value = '';
					return 0;
				}
				else
				{
					return 1;
				}
			}
			// ici l'année n'est pas bissextile
			if (jour > 28)
			{
				if (langue == 'fr') {								
					alert('Ce jour n\'existe pas');
				} else {
					alert('This day does not exist');
				}
				maDate.value = '';
				return 0;
			}
		}
		return 1;
	}
	else
	{
		if (langue == 'fr') {								
			alert('La date saisie est invalide');
		} else {
			alert('Invalid date');
		}
		maDate.value = '' ;
		return 0;
	}
}
