function _CF_onError(form_object, input_object, object_value, error_message)
    {
	alert(error_message);
	input_object.style.background='#F1FFA6';
	input_object.focus();
	
       	return false;	
    }

function _CF_checkeurodate(object_value)
    {
    //Retourne vrai si la date est au format europpéen ou NULL
    //sinon, retourne faux
    if (object_value.length == 0)
        return true;
    //retourne vrai si la date est au format dd/mm/yyyy
	isplit = object_value.indexOf('/');
	if (isplit == -1 || isplit == object_value.length)
		return false;
    sDay = object_value.substring(0, isplit);
	isplit = object_value.indexOf('/', isplit + 1);
	if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
		return false;
    sMonth = object_value.substring((sDay.length + 1), isplit);
	sYear = object_value.substring(isplit + 1);
	if (!_CF_checkinteger(sMonth)) //verifie le mois
		return false;
	else
	if (!_CF_checkrange(sMonth, 1, 12)) // verifie le mois
		return false;
	else
	if (!_CF_checkinteger(sYear)) //verifie l'annee
		return false;
	else
	if (!_CF_checkrange(sYear, 0, null)) //verifie l'anne
		return false;
	else
	if (!_CF_checkinteger(sDay)) //verifie le jour
		return false;
	else
	if (!_CF_checkday(sYear, sMonth, sDay)) //verifie le jour
		return false;
	else
		return true;
    }

function _CF_checkday(checkYear, checkMonth, checkDay)
    {
	maxDay = 31;
	if (checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	if (checkMonth == 2)
	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else
		if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}
	return _CF_checkrange(checkDay, 1, maxDay); //verifie le jour
    }

function _CF_checkinteger(object_value)
    {
    //Retourne vrai si l'object est un nombre faux sinon	
    if (object_value.length == 0)
        return false;
    //Retourne vrai si la valeur est un entier defini comme
    //   ayant un + ou un - comme premier caractère
    //  ou bien un chiffre compris entre 0 et 9
	var decimal_format = ".";
	var check_char;
    //Le premier caractere peut-etre +- espace ou un chiffre
	check_char = object_value.indexOf(decimal_format)
    //Etait-ce un decimal
    if (check_char < 1)
	return _CF_checknumber(object_value);
    else
	return false;
    }

function _CF_numberrange(object_value, min_value, max_value)
    {
    //verifie le minimum
    if (min_value != null)
	{
        if (object_value < min_value)
		return false;
	}
    // verifie le maximum
    if (max_value != null)
	{
	if (object_value > max_value)
		return false;
	}
    //tous les tests sont passé, donc...
    return true;
    }

	function _CF_checknumber(object_value)
    {
    //Retourne vrai si l'object est un nombre faux sinon	
    if (object_value.length == 0)
        return true;
    //Retourne vrai si la valeur est un entier defini comme
    //   ayant un + ou un - comme premier caractère
    //  ou bien un chiffre compris entre 0 et 9
	//  ou au plus un "."
	var start_format = " .,+-0123456789";
	var number_format = " .,0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
    //Le premier caractere peut-etre +- espace ou un chiffre
	check_char = start_format.indexOf(object_value.charAt(0))
    //Etait-ce un decimal
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1)
		return false;
	//Les caracteres restant peuvent seulement etre ., un chiffre mais seulement une decimale
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{
			if (decimal)		// Seconde decimale.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
        // ignore les blancs au départ
		}
	        else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
    //Tous les test passés donc...
    return true;
    }

function _CF_checkrange(object_value, min_value, max_value)
    {
    //Si l'objet est dans les limites vrai, faux sinon
    if (object_value.length == 0)
        return true;
    if (!_CF_checknumber(object_value))
	{
	return false;
	}
    else
	{
	return (_CF_numberrange((eval(object_value)), min_value, max_value));
	}
    //Tous les tests passés, donc...
    return true;
    }

function _CF_checklength(object_value)
    {
	if (object_value == 0)
    	return false;
	else return true;
	}

function _CF_checkcheckbox(object_value, number)
    {
	var i, trouve = 0;
	for(i = 0; i < number ; i++)
	{
		if (object_value[i].checked == true)
    		trouve = 1;
	}
	if (trouve == 1)
		return true
	else 
		return false;
	}

function _CF_checklist(object_value, number)
    {
	if (object_value.options[object_value.selectedIndex].value > number)
		return true;
	else
		return false;
	}

function _CF_checklist2(object_value, number)
    {
	if (object_value.options[object_value.selectedIndex].value != number)
		return true;
	else
		return false;
	}
	
function _CF_checkmail(object_value, vide) {
	if (vide == 1) {
		if (object_value == 0) {
			return false;
		}
	}
	else
		if (object_value != "")	{
			var Pat = /^[a-z][a-z0-9_\.-]+@[a-z0-9_\.\-]+\.[a-z]{2,3}$/i
			if (object_value.match(Pat))
				return true;
			else
				return false;
		}
	
	return true;
}
