//<script language="JavaScript">

// chaine --> date
function ChangeFormat(strVal,strFormatFrom,strFormatTo)
{
	var dt = str2Date(strVal, strFormatFrom);
	return dat2Str(dt, strFormatTo);
}

// chaine --> date
function str2Date(strVal, strFormat)
{
	var dd, mm, yyyy;
	switch (strFormat)
	{
		// fr
		case 'dd/mm/yyyy' :
			dd = strVal.substr(0, 2);
			mm = strVal.substr(3, 2);
			yyyy = strVal.substr(6, 4);
			return new Date(yyyy, mm - 1, dd);
		// us
		case 'yyyy-mm-dd' :
			yyyy = strVal.substr(0, 4);
			mm = strVal.substr(5, 2);
			dd = strVal.substr(8, 2);
			return new Date(yyyy, mm - 1, dd);
	}
}

// date --> chaine
function dat2Str(datVal, strFormat)
{
	var dd = datVal.getDate();
	var mm = datVal.getMonth() + 1;
	var yyyy = datVal.getFullYear();
	switch (strFormat)
	{
		// fr
		case 'dd/mm/yyyy' :
			return twoDigit(dd) + '/' + twoDigit(mm) + '/' + yyyy;
		// us
		case 'yyyy-mm-dd' :
			return yyyy + '-' + twoDigit(mm) + '-' + twoDigit(dd);
	}
}

// nb sur 2 digits
function twoDigit(intVal)
{
	return intVal < 10 ? "0" + intVal : intVal;
}

// date apres date_debut
function datDiff(datVal1, datVal2)
{
	return datVal2.getTime() - datVal1.getTime();
}

// DateDiff
function DateDiff(strType,datVal1, datVal2)
{
	var seconde = 1000;
	var minute	= 60;
	var heure	= 60;
	var jour	= 24;
	var intDuree=0;

	switch(strType)
	{
		case 'd':
			intDuree = ((datVal2 - datVal1)/ (seconde*minute*heure*jour));
			break;
		case 'h':
			intDuree = ((datVal2 - datVal1)/ (seconde*minute*heure*jour));
			break;
		case 'm':
			intDuree = ((datVal2 - datVal1)/ (seconde*minute));
			break;
		case 's':
			intDuree = ((datVal2 - datVal1)/ (seconde));
			break;
	}

	intDuree = Math.round(intDuree);
	return intDuree;
}

// DateAdd
// Permet d'ajouter ou de retranché une durée à une date.

function DateAdd(strType,datVal, lngValue)
{
	lngValue = parseInt(lngValue);
	
	switch(strType)
	{
		case 'd':
			return  new Date(datVal.getFullYear(),datVal.getMonth(),datVal.getDate()+lngValue);
			break;
		case 'm':
			return  new Date(datVal.getFullYear(),datVal.getMonth()+lngValue,datVal.getDate());
			break;
		case 'y':
			return  new Date(datVal.getFullYear()+lngValue,datVal.getMonth(),datVal.getDate());
			break;
	}
	return 0;
}

//DateExiste
//Verifie qu'une date existe
function DateExiste (day,month,year) 
{
    var today = new Date();
    if(!year)	return false;
	
	if(!month) return false;
		
    if (!day) return false;
    
    var test = new Date(year,month-1,day);

    if ( (test.getFullYear() == year) &&
         (month == test.getMonth()+1) &&
         (day == test.getDate()) )
        return true;
    else
        return false;
}

//IsDate
//Verifie qu'une date existe
function IsDate (strVal, strFormat) 
{
	var dd, mm, yyyy;
    var arrDate;
    
	switch (strFormat)
	{
		// fr
		case 'dd/mm/yyyy' :
			arrDate = strVal.split("/");
			dd = arrDate[0];
			mm = arrDate[1];
			yyyy = arrDate[2];
			if ((yyyy.length >= 4) && (parseInt(yyyy) > 1900))
			    return DateExiste(dd,mm,yyyy);
			else
			    return false;
		// us
		case 'yyyy-mm-dd' :
		    arrDate = strVal.split("-");
			dd = arrDate[2];
			mm = arrDate[1];
			yyyy = arrDate[0];			
			if (yyyy.length >= 4)
			    return DateExiste(dd,mm,yyyy);
			else
			    return false;
	} 
}

/*
function IsDate (strVal, strFormat) 
{
	var dd, mm, yyyy;

	switch (strFormat)
	{
		// fr
		case 'dd/mm/yyyy' :
			dd = strVal.substr(0, 2);
			mm = strVal.substr(3, 2);
			yyyy = strVal.substr(6, 4);
			return DateExiste(dd,mm,yyyy);
		// us
		case 'yyyy-mm-dd' :
			yyyy = strVal.substr(0, 4);
			mm = strVal.substr(5, 2);
			dd = strVal.substr(8, 2);
			return DateExiste(dd,mm,yyyy);
	} 
}*/
//</script>