/**
  * date-accouchement.js
  *
  * @author	InterFaceWeb - SÃ©bastien LATIL <sebastien.latil@free.fr> (http://www.webmasterfrance.fr/)
  * @version	23 novembre 2010
  * @copyright	2010 - LEATI (http://www.leati.com/)
*/

var leMois;
var lAnnee;
var jChoisi, mChoisi, aChoisi;
var tousLesMois=new Array('Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin','Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
function initDA() {

  objCalendrier=document.getElementById('calendrier');
  objImgCal=document.getElementById('imgCal');
  objDate=document.getElementById('date');
  objResultat=document.getElementById('resultat');

  objChoixRegle=document.getElementById('choixRegle');
  objChoixConception=document.getElementById('choixConception');
  objCycleDiv=document.getElementById('cycleDiv');
  objCycle=document.getElementById('cycle');

  objCalendrier.style.display='none';
  objCycleDiv.style.display='';
  objCycle.value='28';
  objDate.value="";
  objResultat.innerHTML="";
  objChoixRegle.checked=true;
  objChoixConception.checked=false;
}

function initialise() {
  /*==== RECHERCHE DE LA DATE ACTUEL ====*/
  var laDate=new Date();
  leMois=laDate.getMonth()+1;
  lAnnee=laDate.getFullYear();
}

function affCalendrier() {
  if (objCalendrier.style.display=='none') {
    initialise();
    construitCalendrier();

    objImgCal.src='no_calendar_edit.png';
    objCalendrier.style.display='';
    objCalendrier.style.position='absolute';
 /*   posGauche=recuperePositionGauche(objDate);
    posHaut=recuperePositionHaut(objDate)+objDate.offsetHeight;*/
    posGauche=150; posHaut=138;
    objCalendrier.style.left=posGauche+'px';
    objCalendrier.style.top=posHaut+'px';
    objCalendrier.scrollIntoView();
  }
  else {
    objCalendrier.style.display='none';
    objImgCal.src='calendar_edit.png';
  }
}

function formatDate(j, m, a) {
  j2='00'+j;
  j2=j2.substr(j2.length - 2);
  m2='00'+m;
  m2=m2.substr(m2.length - 2);
  return j2+'/'+m2+'/'+a;
}

function ecritDate(j,m,a) {
  affCalendrier();
  jChoisi=j;
  mChoisi=m;
  aChoisi=a;
  objDate.value=formatDate(j,m,a);
  affResultat();
}

function changeAnnee(nouvelleAnnee) {
  lAnnee=nouvelleAnnee;
  construitCalendrier();
}

function changeMois(nouveauMois) {

  if (nouveauMois<1) {
    leMois=12;
    lAnnee--;
  }
  else if (nouveauMois>12) {
    leMois=1;
    lAnnee++;
  }
  else leMois=nouveauMois;
  construitCalendrier();
}

function recuperePositionGauche(element) {
  var tmp=element.offsetLeft;
  element=element.offsetParent;
  while(element) {
    tmp += element.offsetLeft;
    element = element.offsetParent;
  }
  return tmp;
}
function recuperePositionHaut(element) {
  var tmp = element.offsetTop;
  element = element.offsetParent
  while(element) {
    tmp += element.offsetTop;
    element = element.offsetParent;
  }
  return tmp;
}

function construitCalendrier() {
  var calendierConstruction="";
  calendierConstruction+=enteteCalendrier();
  calendierConstruction+=moisCalendrier();
  calendierConstruction+=semaineCalendrier();
  calendierConstruction+=jourCalendrier();
  calendierConstruction+='</table>';
  objCalendrier.innerHTML=calendierConstruction;
}

function jourCalendrier() {

  var construitDate = new Date();
  construitDate.setMonth(leMois-1);
  construitDate.setFullYear(lAnnee);
  construitDate.setDate(1);
  var numPremierJour=construitDate.getDay();

  if (leMois==1||leMois==3||leMois==5||leMois==7||leMois==8||leMois==10||leMois==12) nbreJour=31;
  else if (leMois==4||leMois==6||leMois==9||leMois==11) nbreJour=30;
  else nbreJour=(lAnnee%4==0)?29:28;

  tousLesJours='<tr>';
  premiereBoucle=1;

  if (numPremierJour!=0) tousLesJours+='<td style="cursor: pointer" colspan="' + numPremierJour + '">&nbsp;</td>';
  var j=numPremierJour;
  for (i=1; i<=nbreJour; i++) {

    if (j==0&&!premiereBoucle) tousLesJours+='</tr><tr>';
    premiereBoucle=0;
    tousLesJours+='<td style="cursor: pointer" onclick="ecritDate('+i+','+leMois+','+lAnnee+');">'+i+'</td>';
    j++;
    j%=7;
  }
  if (j<7) tousLesJours+='<td style="cursor: pointer" colspan="' + (7-j) + '">&nbsp;</td>';
  tousLesJours+='</tr>';
  return tousLesJours;
}

function moisCalendrier() {
  return '<tr class="entete">'+
    '<td colspan="7">'+tousLesMois[leMois-1]+' '+lAnnee+'</td>'+
  '</tr>';

}

function enteteCalendrier() {
  return '<table cellpadding="3" cellspacing="1">'+ 
    '<tr class="entete">'+
      '<td style="cursor: pointer" onclick="changeAnnee('+(lAnnee-1)+');">&lt;&lt;</td>'+
      '<td style="cursor: pointer" onclick="changeMois('+(leMois-1)+');">&lt;</td>'+
      '<td style="cursor: pointer" onclick="affCalendrier();" colspan="3">Fermer</td>'+
      '<td style="cursor: pointer" onclick="changeMois('+(leMois+1)+');">&gt;</td>'+
      '<td style="cursor: pointer" onclick="changeAnnee('+(lAnnee+1)+');">&gt;&gt;</td>'+
    '</tr>';
}

function semaineCalendrier() {
  return '<tr class="jour">'+
    '<td>Dim</td>'+
    '<td>Lun</td>'+
    '<td>Mar</td>'+
    '<td>Mer</td>'+
    '<td>Jeu</td>'+
    '<td>Ven</td>'+
    '<td>Sam</td>'+
  '</tr>';
}

function calculerDate(jEnPlus) {
      var new_date = new Date(aChoisi, mChoisi - 1, jChoisi + jEnPlus);

      var leJourAcc=new_date.getDate();
      leJourAcc=((leJourAcc<10)?'0':'')+leJourAcc; 
      var leMoisAcc=new_date.getMonth()+1;
      leMoisAcc=((leMoisAcc<10)?'0':'')+leMoisAcc;
      var lAnneeAcc=new_date.getYear();
      lAnneeAcc=((lAnneeAcc<200)?1900:0)+lAnneeAcc;  

      return leJourAcc+' '+tousLesMois[leMoisAcc-1]+' '+lAnneeAcc;
}

function affResultat() {

  texteResultat="";
  laDateChoisie=objDate.value;
  if (laDateChoisie!="") {
   
    if (objChoixRegle.checked==true)  ajustement=objCycle.value-15;
    if (objChoixConception.checked==true)  ajustement=0;

    /* LES RESULTATS */
    texteResultat+='<hr>';
	texteResultat+='<p>Date Pr&eacute;vue d\'Accouchement pour une première grossesse : '+calculerDate(274+ajustement)+'<p>';
    texteResultat+='<p>Date Pr&eacute;vue d\'Accouchement grossesses suivantes : '+calculerDate(269+ajustement)+'<p>';
	texteResultat+='<h3 style="margin-top:20px">1er trimestre de grossesse</h3><ul>';
    texteResultat+='<li>Le risque de fausses couches est r&eacute;duit le '+calculerDate(14+ajustement)+'</li>';
    texteResultat+='<li>Les organes commencent &agrave; se former le '+calculerDate(21+ajustement)+'</li>';
    texteResultat+='<li>Les principaux organes sont form&eacute;s le '+calculerDate(35+ajustement)+'</li>';
    texteResultat+='<li>Certains pr&eacute;matur&eacute;s sont viables &agrave; partir du '+calculerDate(77+ajustement)+'</li>';

    texteResultat+='</ul><h3>2eme trimestre de grossesse</h3><ul>';
    texteResultat+='<li>Premi&egrave;re &eacute;chographie le '+calculerDate(84+ajustement)+'</li>';
    texteResultat+='<li>En compl&eacute;ment de la premi&egrave;re &eacute;chographie vous est propos&eacute; une prise de sang permettant d\'&eacute;valuer le risque de trisomie 21 le '+calculerDate(112+ajustement)+'</li>';
    texteResultat+='<li>Deuxi&egrave;me &eacute;chographie le '+calculerDate(154+ajustement)+'</li>';

    texteResultat+='</ul><h3>3eme trimestre de grossesse</h3><ul>';
    texteResultat+='<li>Troisi&egrave;me &eacute;chographie le '+calculerDate(224+ajustement)+'</li>';
    texteResultat+='</ul>';
    objResultat.innerHTML=texteResultat;
  }
  else alert('Veuillez indiquer une date');
}

function ajusteCycle() {
  laDateChoisie=objDate.value;
  if (laDateChoisie!="") affResultat();
}

function choixDateClick(idRadioBouton) {
  if (idRadioBouton=="choixRegle") objCycleDiv.style.display='';
  if (idRadioBouton=="choixConception") objCycleDiv.style.display='none';

  laDateChoisie=objDate.value;
  if (laDateChoisie!="") affResultat();
}
