/****************************************
*	Control Date format		*
*****************************************/

// get date mil (M)  
function getDateMil(){
	var mydate=new Date();
	var year=mydate.getYear().toString();
	if (year != null)
	year = year.substring(year.length-1,year.length);

	return year;
}

// get year (YYYY)  
function getCurrentYear(){
	var mydate=new Date();
	var year=mydate.getYear().toString();

	if (year != null)
		year = year.substring(year.length-4,year.length);

	return year;
}

// get month (MM)  
function getCurrentMonth(){
	var mydate=new Date();
	var month=(mydate.getMonth()+1).toString();

	if (month != null)
		month = month.substring(month.length-2,month.length);

	return month;
}

// get current date (format: DD/MM/YYYY HH24:MI) 
function getCurrentDate(){
    var mydate=new Date();
    day = (mydate.getDate() > 9) ? mydate.getDate() : "0"+mydate.getDate();
    month = ((mydate.getMonth()+1) > 9) ? (mydate.getMonth()+1) : "0"+(mydate.getMonth()+1);
    return day+"/"+month+"/"+mydate.getFullYear()+" "+mydate.getHours()+":"+mydate.getMinutes();
}


// Année bissextile?
function isLeapYear(year)
{
	if (((year % 100 == 0) && (year % 400 == 0)) ||  ((year % 4) == 0)) return true;
	else return false;
}

// Contrôle le format d'une date
function isValidDate(data)
{
	var dateFormat = /^\d{2}\/\d{2}\/\d{4}$/;

	// Check Date format
	var result = dateFormat.test(data);

	if (result == false) 
		alert("Please, the date must respect the format DD/MM/YYYY.");
	else
	{
		var tmpArray = data.split('/');
		var mounth = eval(tmpArray[1]);

		if (mounth< 1 || mounth >12) 
		{
			alert("Please, the month must be between 1 to 12.");
			return false;
		}

		var day = eval(tmpArray[0]);

		if (day < 1 || day >31) 
		{
			alert("Please, the day must be between 1 to 31.");
			return false;
		}

		var year = eval(tmpArray[2]);
		var max_mounth = new Array();
		for (n=1;n<=12;n++)
		{
			if (n==4 || n==6 || n==9 || n==11) max_mounth[n] = 30;
			else max_mounth[n] = 31;
		}

		if (isLeapYear(year)) max_mounth[2] = 29;
		else max_mounth[2] = 28;

		result = (day<=max_mounth[mounth] && mounth<=12 && mounth>=1)

		if (result == false) 
			alert("Please, control the day with the mounth.");
	}

 	return result;
}


// Return true if startDate > endDate
function isDateSuperior(startDate,endDate)
{
	var splitStartDate = startDate.split('/');
	var splitEndDate = endDate.split('/');

	// control year
	if (parseFloat(splitStartDate[2]) < parseFloat(splitEndDate[2]))	return false;
	if (parseFloat(splitStartDate[2]) > parseFloat(splitEndDate[2]))	return true;

	// control month
	if (parseFloat(splitStartDate[1]) < parseFloat(splitEndDate[1]))	return false;
	if (parseFloat(splitStartDate[1]) > parseFloat(splitEndDate[1]))	return true;

	// control day
	if (parseFloat(splitStartDate[0]) <= parseFloat(splitEndDate[0]))	return false;
	else return true;
}


// Return true if the difference between startDate and endDate is equal to daysNb
function isDateDifferenceNbDays(startDate,endDate,daysNb){
	var mSecIn20Days = 1000*60*60*24*daysNb;
	
	var splitStartDate = startDate.split('/');
	var splitEndDate = endDate.split('/');

	// splitStartDate[0] : day
	// splitStartDate[1] : month
	// splitStartDate[2] : year
	//Month is 0-11 in JavaScript
	var myStartDate = new Date(splitStartDate[2], splitStartDate[1]-1, splitStartDate[0],0,0,0);
	var myEndDate = new Date(splitEndDate[2], splitEndDate[1]-1, splitEndDate[0]);

	var nTempsStart = myStartDate.getTime();
	var nTempsEnd  = myEndDate.getTime();

	var diff = nTempsEnd - nTempsStart;
	if(diff >= mSecIn20Days){
		return true;
	}else{
		return false;
	}
}




// Return true if date >= today
function isDateBefore(startDate)
{
	var splitStartDate = startDate.split('/');
	var now= new Date();
	var nDay=now.getDate();
	var nMonth=now.getMonth()+1;
	var nYear=now.getYear();


	// control year
	if (parseFloat(splitStartDate[2]) < parseFloat(nYear))	return false;
	if (parseFloat(splitStartDate[2]) > parseFloat(nYear))	return true;

	// control month
	if (parseFloat(splitStartDate[1]) < parseFloat(nMonth))	return false;
	if (parseFloat(splitStartDate[1]) > parseFloat(nMonth))	return true;

	// control day
	if (parseFloat(splitStartDate[0]) < parseFloat(nDay))	return false;
	else return true;
}



// Return true if date <= today
function isDateMin(startDate)
{
	var splitStartDate = startDate.split('/');
	var now= new Date();
	var nDay=now.getDate();
	var nMonth=now.getMonth()+1;
	var nYear=now.getYear();


	// control year
	if (parseFloat(splitStartDate[2]) > parseFloat(nYear))	return false;

	// control month
	if (parseFloat(splitStartDate[1]) > parseFloat(nMonth))	return false;

	// control day
	if (parseFloat(splitStartDate[0]) > parseFloat(nDay))	return false;
	else return true;
}



// Return true if the dates have the same year
function isSameYear(startDate,endDate)
{
	var tmpStart = startDate.split('/') ;
	var tmpEnd = endDate.split('/') ;

	if (tmpStart[2] != tmpEnd[2])
		return false;
	else
		return true;	
}



// Return true if data is a valid time
function isValidTime(data)
{
	var formatNumber = /^[0-2][0-9]:[0-5][0-9]$/ ;

	var result = formatNumber.test(data);

	if (result == false)
	{
		alert("Please, you must type a valid time like hh:mm.");
		return false;
	}

	var tmpTime = data.split(':');

	if ( (parseInt(tmpTime[0]) > 24) || ((parseInt(tmpTime[0])== 24) && (parseInt(tmpTime[1]) > 0)) )
	{
		alert("Please, the time can not be superior at 24h00.");
		return false;
	}

	return result;
}




//Return true if data is a valid time 
function isTimeSuperior(startTime,timeReference) {
    startTime = startTime.replace(":","");
    timeReference = timeReference.replace(":","");
       
    if (parseFloat(startTime) > parseFloat(timeReference))
            return true;
    else    return false;
}



// Return true if Data is a number
function isValidNumber(data)
{
	var formatNumber = /^[0-9]+$/ ;

	var result = formatNumber.test(data);

	if (result == false)
	{
		alert("Please, you must type only digit number.");
		return false;
	}

	return result;
}

