function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function Check_year(thedate)
{
	Now_ = new Date();
	YY = thedate.substring(eval(C2+1),thedate.length);
	if (YY > Now_.getYear())
		alert('nok');
		//return false;
	else
		alert('ok');
		//return true;
	
}
function ConvertToEuroDate(thedate)
{
	C1 = thedate.indexOf('/');
	C2 = thedate.indexOf('/',eval(C1+1));
	DD = thedate.substring(0,C1);
	MM = thedate.substring(eval(C1+1),C2);
	YY = thedate.substring(eval(C2+1),thedate.length);
	Newdate = new Date(YY,MM,DD)
//	window.alert(Newdate);
	return Newdate;
}
function daysElapsed(date1,date2) 
{
	Newdate1 = ConvertToEuroDate(date1);
	Newdate2 = ConvertToEuroDate(date2);
    var difference =
        Date.UTC(y2k(Newdate1.getYear()),Newdate1.getMonth(),Newdate1.getDate(),0,0,0)
      - Date.UTC(y2k(Newdate2.getYear()),Newdate2.getMonth(),Newdate2.getDate(),0,0,0);
    return difference/1000/60/60/24;
}
function _CF_checkeurodate(object_value){
   //Returns true if value is a eurodate format or is NULL
   //otherwise returns false	
   if (object_value.length == 0)
       return true;
   		//Returns true if value is a date in the dd/mm/yyyy format
	isplit = object_value.indexOf('/');
	if (isplit == -1){
		isplit = object_value.indexOf('.');
	}

	if (isplit == -1 || isplit == object_value.length)
		return false;
		
		sDay = object_value.substring(0, isplit);
		monthSplit = isplit + 1;
		isplit = object_value.indexOf('/', monthSplit);
		if (isplit == -1){
			isplit = object_value.indexOf('.', monthSplit);
			}
		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)) //check month
		return false;
	else
	if (!_CF_checkrange(sMonth, 1, 12)) // check month
		return false;
	else
		if (!_CF_checkinteger(sYear)) //check year
			return false;
		else
			if (!_CF_checkrange(sYear, 0, null)) //check year
				return false;
			else
				if (!_CF_checkinteger(sDay)) //check day
					return false;
				else
					if (!_CF_checkday(sYear, sMonth, sDay)) //check day
						return false;
					else
						return true;
}

//*******************************************

function _CF_checknumber(object_value){
   //Returns true if value is a number or is NULL
   //otherwise returns false	
   if (object_value.length == 0)
       return true;
   //Returns true if value is a number defined as
   //   having an optional leading + or -.
   //   having at most 1 decimal point.
   //   otherwise containing only the characters 0-9.
var start_format = " .+-0123456789";
var number_format = " .0123456789";
var check_char;
var decimal = false;
var trailing_blank = false;
var digits = false;

   //The first character can be + - .  blank or a digit.
check_char = start_format.indexOf(object_value.charAt(0))
   //Was it a decimal?
if (check_char == 1)
    decimal = true;
else if (check_char < 1)
	return false;
       
//Remaining characters can be only . or a digit, but only one decimal.
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)		// Second decimal.
			return false;
		else
			decimal = true;
	}
	else if (check_char == 0)
	{
		if (decimal || digits)	
			trailing_blank = true;
       // ignore leading blanks

	}
        else if (trailing_blank)
		return false;
	else
		digits = true;
}	
   //All tests passed, so...
   return true
}
//*******************************************

function _CF_checkinteger(object_value)
   {
   //Returns true if value is a number or is NULL
   //otherwise returns false	

   if (object_value.length == 0)
       return true;
   //Returns true if value is an integer defined as
   //   having an optional leading + or -.
   //   otherwise containing only the characters 0-9.
var decimal_format = ".";
var check_char;

   //The first character can be + -  blank or a digit.
check_char = object_value.indexOf(decimal_format)
   //Was it a decimal?
   if (check_char < 1)
return _CF_checknumber(object_value);
   else
return false;
   }
function _CF_checkrange(object_value, min_value, max_value)
   {
   //if value is in range then return true else return false

   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));
}

   //All tests passed, so...
   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); //check day
   }

//*******************************************

function _CF_checkrange(object_value, min_value, max_value)
   {
   //if value is in range then return true else return false

   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));
}

   //All tests passed, so...
   return true;
   }
//*******************************************
function _CF_numberrange(object_value, min_value, max_value)
   {
   // check minimum
   if (min_value != null)
{
       if (object_value < min_value)
	return false;
}

   // check maximum
   if (max_value != null)
{
if (object_value > max_value)
	return false;
}

   //All tests passed, so...
   return true;
   }
//*******************************************
function _CF_checktime(object_value)
   {
   //Returns true if value is in time format or is NULL
   //otherwise returns false	

   if (object_value.length == 0)
       return true;

   //Returns true if value is a date in the mm/dd/yyyy format
isplit = object_value.indexOf(':');

if (isplit == -1 || isplit == object_value.length)
	return false;

   sHour = object_value.substring(0, isplit);
iminute = object_value.indexOf(':', isplit + 1);

if (iminute == -1 || iminute == object_value.length)
	sMin = object_value.substring((sHour.length + 1));
else
	sMin = object_value.substring((sHour.length + 1), iminute);

   if (!_CF_checkinteger(sHour)) //check hour
	return false;
   else
   if (!_CF_checkrange(sHour, 0, 23)) //check hour
	return false;

if (!_CF_checkinteger(sMin)) //check minutes
	return false;
else
if (!_CF_checkrange(sMin, 0, 59)) // check minutes
	return false;

// did they specify seconds
   if (iminute != -1)
{
	sSec = object_value.substring(iminute + 1);

	if (!_CF_checkinteger(sSec)) //check seconds
		return false;
	else
	if (!_CF_checkrange(sSec, 0, 59)) //check seconds
		return false;	
}
   
   return true;
   }

