//===========================================
//Customisation
//===========================================
var mks_modedate=0; //0 pour MM/DD/YYYY
//1 pour JJ/MM/AAAA

var mks_readonly=1; //0 la date ne peut être rentrée par le selecteur ou dans le champ de saisie
//1 la date ne peut être rentrée que par le selecteur

//===========================================
//AddDateSelector permet de creer un selecteur de date
// inputename est l'identifiant du selecteur au cas ou vous voudriez en mettre plusieurs sur une meme page
// default est la date par defaut
function AddDateSelector(inputename, value, vinfo)
{
    document.write('<input maxlength="12" size="12" type="text" id="'+inputename+'" class="f" name="'+inputename+'" value="'+value+'"');
    if(mks_readonly) document.write(' readonly');
    //document.write('><input id="'+inputename+'btn" name="'+inputename+'btn" type="button" value="'+vinfo+'"  onclick="mks_opendateselector(\''+inputename+'\', event)">');
	    document.write('><input id="'+inputename+'btn" name="'+inputename+'btn" class="f" type="button" value="MM/JJ/AA"   onclick="mks_opendateselector(\''+inputename+'\', event)">');

}

//===========================================
function mks_getcel(contenu, classt, value)
{
    
    sortie='<td class="'+classt+'">';
    if(value!="")
    {
        sortie+='<input width="2" class="'+classt+'"  onclick="mks_selectdate(\''+value+'\');" value="'+contenu+'">';
    }
    else 
    {
        sortie+=contenu;
    }
    sortie+='<\/td>';
    
    return sortie;
}

function mks_getcalendar(amois, aans, seletedval)
{
    divdateselector=document.getElementById('dateselector');
    if(divdateselector)
    {
        chaine='';
        
        //Date selected
        var seleted=new Date(seletedval);
        var selected_mois = seleted.getMonth() + 1;
        var selected_an = seleted.getYear();
        if(selected_an < 999) selected_an+=1900;
        var selected_jour = seleted.getDate();
        
        nom_mois = new Array("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet", "Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
        jour = new Array ("Lu","Ma","Me","Je","Ve","Sa","Di");
        
        //Today
        var maintenant = new Date();
        var ce_mois = maintenant.getMonth() + 1;
        var cette_annee = maintenant.getYear();
        if(cette_annee < 999) cette_annee+=1900;
        var ce_jour = maintenant.getDate();
        
        var temps = new Date(aans,amois-1,1);
        var Start = temps.getDay();
        if(Start > 0) Start--;
        else Start = 6;
        var Stop = 31;
        if(amois==4 ||amois==6 || amois==9 || amois==11 ) --Stop;
        if(amois==2)
        {
            Stop = Stop - 3;
            if(aans%4==0) Stop++;
            if(aans%100==0) Stop--;
            if(aans%400==0) Stop++;
        }
        chaine+="<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\">";
        chaine+='<tr><td class="mks_sd_annee">';
        chaine+='<input type="button" class="mks_sd_btn" onclick="mks_closedateselector();" value="X">';
        chaine+='<\/td><td class="mks_sd_annee" colspan="5">';
        tmpmois=amois-1;
        tmpans=aans;
        if(tmpmois==0)
        {
            tmpmois=12;
            tmpans--;
        }
        chaine+='<input type="button" class="mks_sd_btn" onclick="mks_getcalendar('+tmpmois+','+tmpans+',\''+seleted+'\');" value="<">';
        chaine+=nom_mois[amois-1];
        tmpmois=amois+1;
        tmpans=aans;
        if(tmpmois==13)
        {
            tmpmois=1;
            tmpans++;
        }
        chaine+='<input type="button" class="mks_sd_btn" onclick="mks_getcalendar('+tmpmois+','+tmpans+',\''+seleted+'\');" value=">">';
        chaine+='<input type="button" class="mks_sd_btn" onclick="mks_getcalendar('+amois+','+(aans-1)+',\''+seleted+'\');" value="<">';
        chaine+=aans;
        chaine+='<input type="button" class="mks_sd_btn" onclick="mks_getcalendar('+amois+','+(aans+1)+',\''+seleted+'\');" value=">">';
        chaine+='<\/td><td class="mks_sd_annee">';
        chaine+='<input type="button" class="mks_sd_btn" onclick="mks_getcalendar('+ce_mois+','+cette_annee+',\''+seleted+'\');" value="O">';
        chaine+='<\/td><\/tr><tr>';
        for(var i=0;i<=6;i++)
        {
            chaine+='<td class="mks_sd_semaine">';
            chaine+=jour[i];
            chaine+='<\/td>';
        }
        chaine+="<\/tr>";
        
        var nombre_jours = 1;
        for(var i=0;i<=5 && nombre_jours <= Stop;i++)
        {
            chaine+="<tr>";
            for(var j=0;j<=6;j++)
            {
                if(i==0 && j<Start) chaine+=mks_getcel("&#160;", "mks_sd_dayoutmonth", "");
                else
                {
                    if(nombre_jours > Stop) chaine+=mks_getcel("&#160;", "mks_sd_dayoutmonth", "");
                    else
                    {
                        if(mks_modedate==1) valdate=nombre_jours+'/'+amois+'/'+aans;
                        else valdate=amois+'/'+nombre_jours+'/'+aans;
                        
                        if(aans==selected_an && amois==selected_mois && nombre_jours==selected_jour)
                        chaine+=mks_getcel(nombre_jours, "mks_sd_selected", valdate);
                        else if(aans==cette_annee && amois==ce_mois && nombre_jours==ce_jour)
                        chaine+=mks_getcel(nombre_jours, "mks_sd_today", valdate);
                        else chaine+=mks_getcel(nombre_jours, (j==6 ? "mks_sd_weekend" :"mks_sd_dayofmonth"), valdate);
                        nombre_jours++;
                    }
                }
            }
            
            chaine+="<\/tr>";
        }
        chaine+="<\/table>";
        
        
        divdateselector.innerHTML=chaine;
    }
}

var mks_curselectorinput;
function mks_selectdate(c)
{
    document.getElementById(mks_curselectorinput).value=c;
    mks_closedateselector();
}

function mks_opendateselector(o, e)
{
    test=false;
    selecto=document.getElementById('dateselector').style;
    if(selecto.visibility=="visible")
    {
        mks_closedateselector();
        test=true;
    }
    if(!test || o!=mks_curselectorinput)
    {
        selecto.visibility="visible";
        if(document.all)
        {
            selecto.left=event.x+document.body.scrollLeft;
            selecto.top=event.y+document.body.scrollTop+20;
        }
        else
        if(document.getElementById)
        {
            selecto.left=e.clientX+window.pageXOffset;
            selecto.top=e.clientY+window.pageYOffset+20;
        }
        mks_curselectorinput=o;
        
        var val=document.getElementById(mks_curselectorinput).value;
        resultat = val.match(/[0-9]*/gi);
        if(resultat.length==6)
        {
            if(mks_modedate==1)
            {
                val=resultat[2]+'/'+resultat[0]+'/'+resultat[4];
            }
            else
            {
                val=resultat[0]+'/'+resultat[2]+'/'+resultat[4];
            }
        } 
        else
        {
            val="";
        }
        
        
        if(val=="")
        {
            var d = new Date();
            mks_getcalendar(d.getMonth()+1, d.getFullYear(), '');
            
            document.getElementById(mks_curselectorinput).value=val;
        }
        else
        {
            var d = new Date(val);
            mks_getcalendar(d.getMonth()+1, d.getFullYear(), val);
            
            if(mks_modedate==1) valdate=d.getDate()+'/'+(d.getMonth()+1)+'/'+d.getFullYear();
            else valdate=(d.getMonth()+1)+'/'+d.getDate()+'/'+d.getFullYear();
            document.getElementById(mks_curselectorinput).value=valdate;
        }
    }
}

function mks_closedateselector()
{
    document.getElementById('dateselector').style.visibility="hidden";
}
