
//lancement de la greyBox sur la page d'accueil au chargement'
//$(document).ready(function(){
//});

var regInt = /^[0-9]+$/; //controle du champ
var nbEssai = 0; //nombre d'essai d'entree dans le site
var redirection = "http://www.google.fr" //l'url de redirection

//ajout de la fonction au click du bouton entrer
Event.observe(window, 'load', function(){
    Event.observe('enter', 'click', function() {
        enter($$("input[name='jour']")[0].getValue(), $$("input[name='mois']")[0].getValue(),  $$("input[name='annee']")[0].getValue());
    });
});

    


/**
 * cette methode autorise ou non l'entree dans le site
 */
function enter(jour, mois, annee)
{
    //initialisation du text
    $$(".p_erreurVerifAge").each(function(el){
        el.innerHTML = "";
    });
	
    var ageLegal = 18 //l'age legal
    var isMajeur;
    isMajeur = verifAge(jour, mois, annee, ageLegal);

    switch(isMajeur){
        case 1:
			//ajoute dans la variable de session 
			new Ajax.Request(
				 '/templates/1/javascripts/ajax/isMajor.php'
			);
            //supprime la greyBox
            $("verifAge").remove();
            break;
        case 0:
            nbEssai++; //incrementation du nombre d'essai
            $$(".p_erreurVerifAge").each(function(el){
                el.innerHTML = "Vous n'êtes pas autorisé(e) à entrer dans ce site.";	//avertissement
            });
            break;
        case -1:
            $$(".p_erreurVerifAge").each(function(el){
                el.innerHTML = "Veuillez taper une date cohérente.";	//avertissement
            });
            break;
    }
	
    if(nbEssai>=2) //2 essais maxi
    {
        //redirection
        document.location.href=redirection;
    }
}

/**
 * cette methode verifie l'age
 * int minAge l'age legal
 * return int 	0  mineur
 *				1  majeur
 *				-1 erreur de données
 */
function verifAge(jour, mois, annee, minAge){

    var isMajeur = -1;

    if(jour != '' && mois!=''&& annee!='') //les champs ne sont pas vides
    {
        if( regInt.test(jour) &&  regInt.test(mois) &&  regInt.test(annee)) //ce sont des entiers
        {
            //parse les composante en int
            jour = parseInt(jour, 10);
            mois = parseInt(mois, 10);
            annee = parseInt(annee, 10);

            //verif de la date
            if(isDate(jour,mois,annee))
            {
			
                isMajeur = 0;
                //la date de l'utilisateur additionner de l'age de la majorite
                var dateUtilisateur = new Date();
                dateUtilisateur.setDate(jour);
                dateUtilisateur.setMonth(mois - 1);
                dateUtilisateur.setFullYear(annee + minAge);

                //la date du jour
                var aujourdhui = new Date;
                aujourdhui = aujourdhui.setDate(aujourdhui.getDate());


                //difference au jour du pres
                var difference = dateUtilisateur - aujourdhui;
                var diff_jour = (difference/(86400000));
                diff_jour = Math.round(diff_jour) ;

                if ( diff_jour <= 0) {
                    isMajeur = 1;
                }
            }
        }
    }
    return isMajeur;

}



/**
* verifie la validite d'une date
*/
function isDate(jour, mois, annee){

    var isDate = false;

    var aujourdhui = new Date;
    var yearToDay = aujourdhui.getYear();

    if (yearToDay < 100)
    {
        yearToDay = yearToDay + 1900;
    }
    else{
        yearToDay = yearToDay - 100 + 2000;
    }

	
    if(annee <= yearToDay)
    {
        //pour les mois de janvier, mars, mai, juillet, aout, octobre, decembre
        if(mois==1 || mois==3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12)
        {
            if(jour <= 31){
                isDate=true;
            }
        }
        else if(mois==2 || mois==4 || mois==6 || mois==9 || mois==11){
            //pour le mois de fevrier
            if(mois==2) {
                if(jour <= 28)
                {
                    isDate=true;
                }
                //Le 29 février n'existe que tous les quatre ans (rythme des années bissextiles) du calendrier julien.
                else if((annee%4==0) && jour <= 29)
                {
                    isDate=true;
		    
                    //Dans le calendrier grégorien on exclut en outre les millésimes divisibles par 100 mais non par 400,
                    //comme par exemple : 1700, 1800, 1900 ;
                    //ainsi l'an 2000, divisible par 400, était bissextile.
                    if((annee%100==0) && (annee%400!=0))
                    {
                        isDate=false;
                    }
                }
            }
            //pour les mois de avril, juin, septembre, novembre
            else
            {
                if(jour <= 30)
                {
                    isDate=true;
                }
            }
        }
    }
    
    return isDate;
}


