var oDate = new Date();
var jour = 0;
var jours = 0;
function DateAdd(c,n)
{
	jour = jour-n;
	c.value = oDate.dateFormat('d/m/Y', (oDate.dateFormat('U') - 24 * 3600 * jour));
}

function DateAddToday(c,n)
{
	jours = n;
	c.value = oDate.dateFormat('d/m/Y', (oDate.dateFormat('U') - 24 * 3600 * jours));
}

function checkDate( oDateToCheck ) 
{ 
	// <input type="text" id="myDate" onchange="checkDate(this);"> 

	var dDate;    // Utilisé pour générer un objet Date 
    var nDate;    // Utilisé pour générer une référence temporelle numérique ! 
     
    var aDate;    // Tableau des éléments du champs de saisie séparés par de "/" 

    // Messages d'erreur.     
    var sErrFormat = "La date doit être saisie dans le format JJ/MM/AAAA !"; 
    var sErrFormatJour = "Le jour doit être compris entre 1 et 31 !"; 
    var sErrFormatMois = "Le mois doit être compris entre 1 et 12 !"; 
    var sErrFormatAnnee = "L'année doit être sur 1,2 ou 4 chiffres !"; 
     
	if (oDateToCheck.value.toUpperCase().charAt(0)=="J")
	{
		dDate = new Date(); 
		if (oDateToCheck.value.length=="1")
		{
			oDateToCheck.value = dDate.getDate() + "/" + (dDate.getMonth()+1) + "/" + dDate.getFullYear(); ;
		}
		else if (oDateToCheck.value.charAt(1)=="+" || oDateToCheck.value.charAt(1)=="-")
		{
			if (oDateToCheck.value.charAt(1)=="+") 
			{
				var signe= -1;
			}
			else
			{
				var signe= 1;
			}
			nbj = oDateToCheck.value.substring(2);
			DateAddToday(oDateToCheck,nbj*signe)
			return true;
		}
	}

	// Suppression des espaces du début 
    oDateToCheck.value = oDateToCheck.value.replace( /^s+/, "" ); 

    // Suppression des espaces de fin 
    oDateToCheck.value = oDateToCheck.value.replace( /s+$/, "" ); 

    // Remplacement des espaces par des / 
    oDateToCheck.value = oDateToCheck.value.replace( /s+/, "/" ); 
    oDateToCheck.value = oDateToCheck.value.replace( /s+/, "/" ); 
    oDateToCheck.value = oDateToCheck.value.replace( /s+/, "/" ); 

	// Remplacement des - par des /
	oDateToCheck.value = oDateToCheck.value.replace( "-", "/" ); 
	oDateToCheck.value = oDateToCheck.value.replace( "-", "/" ); 

    oDateToCheck.ok = false; 

    //cas d'une date vide 
    if( oDateToCheck.value == "" ) 
    { 
        oDateToCheck.ok = true; 
        return true; 
    } 
     
    // Séparation des éléments de la date. 
    aDate = oDateToCheck.value.split( "/" ); 

    // On vérifie qu'on a bien 3 éléments     
    if( aDate.length != 3 ) 
    { 
        // S'il n'y as pas de /, on découpe la chaine en 3 si sa longueur est 6 ou 8 
        if( aDate.length == 1 ) 
        { 
			if( oDateToCheck.value.length < 3 ) 
            { 
                dDate = new Date(); 
                aDate[0] = oDateToCheck.value; 
                aDate[1] = "" + ( dDate.getMonth() + 1 ); 
                aDate[2] = "" + dDate.getFullYear(); 
            } 
            else if( oDateToCheck.value.length == 6 ) 
            { 
                aDate[0] = oDateToCheck.value.substr( 0, 2); 
                aDate[1] = oDateToCheck.value.substr( 2, 2); 
                aDate[2] = oDateToCheck.value.substr( 4, 2); 
            } 
            else if( oDateToCheck.value.length == 8 ) 
            { 
                aDate[0] = oDateToCheck.value.substr( 0, 2); 
                aDate[1] = oDateToCheck.value.substr( 2, 2); 
                aDate[2] = oDateToCheck.value.substr( 4, 4); 
            } 
            else 
            { 
                alert( sErrFormat ); 
                return false; 
            } 
        } 
        else 
        { 
            alert( sErrFormat ); 
            return false; 
        } 
    } 

    // On vérifie que c'est bien des nombres 
    if( isNaN( aDate[0] ) ||  isNaN( aDate[1] ) || isNaN( aDate[2] )  ) 
    { 
        alert( sErrFormat ); 
        return false; 
    } 

    // Vérification grossière sur le jour 
    if( aDate[0] > 31 || aDate[0] < 1 ) 
    { 
        alert( sErrFormatJour ); 
        return false; 
    } 
     
    // Vérification du mois 
    if( aDate[1] > 12 || aDate[1] < 1 ) 
    { 
        alert( sErrFormatMois ); 
        return false; 
    } 

    // Vérifier que l'année est bien sur 1, 2 ou 4 chiffres 
    if( aDate[2].length != 1 && aDate[2].length != 2 && aDate[2].length != 4  ) 
    { 
        alert( sErrFormatAnnee ); 
        return false; 
    } 

    // Si l'année est sur 1 ou 2 chiffres, on la remet sur 4 
    if( aDate[2] < 50 ) 
    { 
        aDate[2] = 2000 + parseInt( aDate[2] ); 
    } 
    else 
    { 
        if( aDate[2] >= 50 && aDate[2] < 100 ) 
        { 
            aDate[2] = 1900 + parseInt( aDate[2] ); 
        } 
    } 

    // Création d'une référence temporelle numérique à partir des élémentnt de la date     
    nDate = Date.parse( aDate[1] + "/" + aDate[0] + "/" + aDate[2]  ); 

    // Vérification que la référence temporelle est une date valide 
    if( isNaN( nDate ) ) 
    { 
        alert( oDateToCheck.value + " n'est pas une date valide !" ); 
        return false; 
    } 
    else 
    { 
        // On renvoie la date formatée 
        dDate = new Date( nDate );
		j = dDate.getDate();
		if(j<10)
			j = "0"+j
		else j = dDate.getDate();
		
		m = dDate.getMonth() + 1
		if(m<10)
			m = "0"+m
		else m = dDate.getMonth()+1;

        oDateToCheck.value = j + "/" + m + "/" + dDate.getFullYear(); 
        oDateToCheck.ok = true; 
        return true; 
    } 
} 

var display = 'none';
function showDisplay(id) 
{ 
	if (display=='none') 
	{
		display = 'block';
	}
	else
	{
		display = 'none';
	}
	document.getElementById(id).style.display=display; 
}

function SetDisplay(id, statut) 
{ 
	if (statut=='1') 
	{
		affiche = 'block';
	}
	else
	{
		affiche = 'none';
	}
	document.getElementById(id).style.display=affiche; 
}

function openwin(target) 
{ 
	exemple=window.open (target,"winimg", "width=680,height=550,scrollbars=yes, toolbar=no, location=no, directories=no, status=no") 
	exemple.focus();
}

