
// ############################################################################################### CALENDRIER
// Voir aussi calendar.js

var nomJour	= new Array("Dim","Lun","Mar","Mer","Jeu","Ven","Sam"); 
var f = 0;
var dateGrossesse;

function calCalcul(Calendar, date) {
  var form = $('#calGrossesse');
  dateGrossesse = date;
  if (!Calendar.dateClicked) {
    return false;
  } else {
  	var D = Calendar.date;
    var A = Calendar.date.getFullYear();
    var M = Calendar.date.getMonth();
    var J = Calendar.date.getDate();
    //alert('OK... la date saisie invalide ('+ d+'/'+m+'/'+y +')');
  }

  var SEM = 7;
  var debut_regles =  parseInt($('#cal_dbregles').val() || 14);
  if ( isNaN(debut_regles) ) debut_regles = 14;
  $('#cal_dbregles').val(debut_regles + '');
  $('#cal_ddg').val('' + buildDate (J+debut_regles, M, A));
  $('#J_GROSS').val(getJG(D) + " Jours G.");
  $('#cal_sa').val(getSA ( getJG(D) ) + " S.A");
  $('#cal_dpa').val(buildDate(J+14, M+9, A));

	$('#cal_declar').html('Avant le ' + buildDate (J+(15*SEM), M, A));
	$('#cal_12SA').html('Entre le ' + buildDate (J+(11*SEM), M, A) + ' et le ' + buildDate (J+6+(13*SEM), M, A));
	$('#cal_16SA').html('Entre le ' + buildDate (J+(15*SEM), M, A) + ' et le ' + buildDate (J+(18*SEM), M, A));
	$('#cal_22SA').html('Entre le ' + buildDate (J+(20*SEM), M, A) + ' et le ' + buildDate (J+(24*SEM), M, A));
	$('#cal_26SA').html('~ ' + buildDate (J+(26*SEM), M, A) ); // O Sullivan
	$('#cal_32SA').html('Entre le ' + buildDate (J+(30*SEM), M, A) + ' et le ' + buildDate (J+(33*SEM), M, A));


	$('#cal_anest').html('Entre le ' + buildDate (J+14, M+7, A) + ' et le ' + buildDate (J+14+14, M+8, A));

	// form.D6DP.value = buildDate (J1+14, M+5, A);		// Préparation
	$('#cal_6DP').html('A partir du : ' + buildDate(J+14, M+5, A) );

	$('#cal_4M').html('Entre le ' + buildDate (J+14, M+3, A) + ' et le ' + buildDate (J-1+14, M+4, A));
	$('#cal_5M').html('Entre le ' + buildDate (J+14, M+4, A) + ' et le ' + buildDate (J-1+14, M+5, A));
	$('#cal_6M').html('Entre le ' + buildDate (J+14, M+5, A) + ' et le ' + buildDate (J-1+14, M+6, A));
	$('#cal_7M').html('Entre le ' + buildDate (J+14, M+6, A) + ' et le ' + buildDate (J-1+14, M+7, A));
	$('#cal_8M').html('Entre le ' + buildDate (J+14, M+7, A) + ' et le ' + buildDate (J+14+14, M+7, A));
	$('#cal_9M').html('Entre le ' + buildDate (J+14, M+8, A) + ' et le ' + buildDate (J+14+14, M+8, A));


  // calcul du congé prénatal
  //*************************
  
  if ( $('#cal_nbEnfants').val() == "" && !$('#cal_jumeaux').is(':checked') && !$('#cal_jumeaux').is(':checked') )
  {
	$('#cal_conge').val("Entrer 1 nombre");
  }
  else
  {
	Date_acc = new Date(A,M+9,J+14);
	Time_acc = Date_acc.getTime();
	Time_SEM = 7*24*3600*1000;
	
	if ( $('#cal_triples').is(':checked') ) (Time_conge = Time_acc -( 24 * Time_SEM));
	else if ( $('#cal_jumeaux').is(':checked') ) (Time_conge = Time_acc -( 12 * Time_SEM));
	else if ( $('#cal_nbEnfants').val() > 1 ) (Time_conge = Time_acc -( 8 * Time_SEM));
	else { Time_conge = Time_acc -( 6 * Time_SEM); }
	
	Date_Conge = new Date (Time_conge);
	Jc = Date_Conge.getDate();
	mc = Date_Conge.getMonth()+1;
	ac = Date_Conge.getFullYear();	
	jsc = nomJour[Date_Conge.getDay()];
	Sc = jsc + " " + Jc + "/" + mc + "/" + ac;
	$('#cal_conge').val(Sc);
	
  }


$('#calIntervalles').show();
$('#calDates').show();

/*  form.D11SA.value 	= buildDate (J+(11*SEM), M, A);
  form.D13SA.value 	= buildDate (J+6+(13*SEM), M, A);
  form.D15SA.value 	= buildDate (J+(15*SEM), M, A);
  form.D18SA.value 	= buildDate (J+(18*SEM), M, A);
  form.D20SA.value 	= buildDate (J+(20*SEM), M, A);
  form.D24SA.value 	= buildDate (J+(24*SEM), M, A);
  form.D30SA.value 	= buildDate (J+(30*SEM), M, A);
  form.D33SA.value 	= buildDate (J+(33*SEM), M, A);

  // Proposition de dates
  if (f == undefined || f == 0) {
	J1 = J;
	J2 = J;
	if (jourSemaine == "Sam") (J1=J+2);		// Elimine les Samedis
	if (jourSemaine == "Dim") (J1=J+1);		// Elimine les Dimanches
	if (jourSemaine == "Jeu") (J2=J+1);		// Elimine les Dimanches (Marqueurs sériques)
	form.D12SA.value	= buildDate (J1+(12*SEM), M, A);	// Echo 1e T
	form.D16SA.value 	= buildDate (J2+3+(15*SEM), M, A);	// Marqueurs
	form.D22SA.value 	= buildDate (J1+(22*SEM), M, A);	// Echo 2e T
	form.D26SA.value 	= buildDate (J1+(26*SEM), M, A);	// OSullivan
	form.D32SA.value 	= buildDate (J1+(32*SEM), M, A);	// Echo 3e T
	form.D6DP.value 	= buildDate (J1+14, M+5, A);		// Préparation
	if (jourSemaine == "Dim") (J1=J1+1);		// Elimine les Dimanches
	form.D6DP.value 	= buildDate (J1+14, M+5, A);		// Préparation
  } else {
	f = 0;
  }
  // Visites Prénatales D pour Début et F pour Fin
  form.D4D.value 		= buildDate (J+14, M+3, A);
  form.D4F.value 		= buildDate (J-1+14, M+4, A);
  form.D5D.value 		= buildDate (J+14, M+4, A);
  form.D5F.value 		= buildDate (J-1+14, M+5, A);
  form.D6D.value 		= buildDate (J+14, M+5, A);
  form.D6F.value 		= buildDate (J-1+14, M+6, A);
  form.D7D.value 		= buildDate (J+14, M+6, A);
  form.D7F.value 		= buildDate (J-1+14, M+7, A);
  form.D8D.value 		= buildDate (J+14, M+7, A);
  form.D8F.value 		= buildDate (J+14+14, M+7, A);
  form.D8DA.value	 	= buildDate (J+14, M+7, A);		// Anesthésiste
  form.D9D.value 		= buildDate (J+14, M+8, A);
  form.D9F.value 		= buildDate (J+14+14, M+8, A);
  form.D9FA.value 	= buildDate (J+14+14, M+8, A);	// Anesthésiste
  
  // calcul du congé prénatal
  //*************************
  Date_acc = new Date(A,M+9,J+14);
  Time_acc = Date_acc.getTime();
  Time_SEM = 7*24*3600*1000;
  Time_conge = Time_acc -( 6 * Time_SEM);
  
  if ( form.cal_nbEnfants.value > 1 ) (Time_conge = Time_acc -( 8 * Time_SEM));
  if (form.cal_jumeaux.checked == true) (Time_conge = Time_acc -( 12 * Time_SEM));
  if(form.cal_triples.checked == true ) (Time_conge = Time_acc -( 24 * Time_SEM));
  
  Date_Conge = new Date (Time_conge);
  Jc = Date_Conge.getDate();
  mc = Date_Conge.getMonth()+1;
  ac = Date_Conge.getFullYear();	
  jsc = nomJour[Date_Conge.getDay()];
  Sc = jsc + " " + Jc + "/" + mc + "/" + ac;
  form.cal_conge.value = Sc;
  form.cal_conge.value =( form.cal_nbEnfants.value == "" && form.cal_jumeaux.checked == false && form.cal_triples.checked == false)? "Entrer 1 nombre": form.cal_conge.value;
*/
}


function dateInterval(JJ, JJ2, MM, AA) {
  var D = new Date(AA, MM, JJ);
  jourSemaine   = nomJour[D.getDay()];
  jour 	        = D.getDate();
  mois	        = D.getMonth()+1;
  annee 	    = D.getFullYear();
  var date1 = jourSemaine + " " + jour + "/" + mois + "/" + annee;
  var D = new Date(AA, MM, JJ);
  jourSemaine   = nomJour[D.getDay()];
  jour 	        = D.getDate();
  mois	        = D.getMonth()+1;
  annee 	    = D.getFullYear();
  var date2 = jourSemaine + " " + jour + "/" + mois + "/" + annee;	
  return 'Entre le ' + date1 + ' et le ' + date2;
}

function buildDate(JJ, MM, AA) {
  var D = new Date(AA, MM, JJ);
  jourSemaine   = nomJour[D.getDay()];
  jour 	        = D.getDate();
  mois	        = D.getMonth()+1;
  annee 	    = D.getFullYear();
  return jourSemaine + " " + jour + "/" + mois + "/" + annee;
}

// Convertit en Jours la Différence entre une date DD et la date du Jour
function getJG(DD) {
  var D_NOW   = new Date();
  var T_NOW   = D_NOW.getTime();
  var T_DD    = DD.getTime();
  // Déduit le Nbre de Jours du Nombre de Millisecondes
  return Math.floor( (T_NOW - T_DD) / (1000 * 3600 * 24) );
}

// Convertit en Semaines d'aménorhée un Nombre de Jours de grossesse
function getSA(N) {
  var S = Math.floor (N/7);
  var J = (N - (S*7));
  return S+(J/10);
}

function fnc_Enregistrer(form) {
  setCookie ("DDG", DateDG.getTime(), STOP);
}

function fnc_Effacer() {
  DeleteCookie("DDG");
  alert("Données effacées");
}

function fnc_Examens(form) {
  if (form.DDG.value == "") {
    alert("Vous n'avez pas saisi de Date de Début de Grossesse");
  } else {
    fnc_Enregistrer(form);
    window.location = "examens.htm"
  }
}

function fnc_Calendrier(form) {
  if (form.DDG.value == "") {
    alert("Vous n'avez pas saisi de Date de Début de Grossesse");
  } else {
    fnc_Enregistrer(form);
    window.location = "calendar.htm"
  }
}

// calGrossesse (formulaire) et calendrier-grossesse (conteneur calendrier) existent ?
// => On affiche le calendrier
var calgros = null;
function loadCalendar(type) {
  if (type=='grossesse' && $('#calGrossesse') != null && $('#calendrier-grossesse') != null) {
    calgros = Calendar.setup({ flat: "calendrier-grossesse", weekNumbers: false, flatCallback : calCalcul });
	if ( $('#calIntervalles') != null ) $('#calIntervalles').hide();
	if ( $('#calDates') != null ) $('#calDates').hide();
  }
}


// ##################################################################################################### DICO
function CraftDef(contener, terme, def){
	var regex = new RegExp(">([^<]*)?("+terme+")([^>]*)?<","gi");
	//var regex = new RegExp("("+terme+" )","gi");
	//var regex = new RegExp("([^<a[^>]*>[^<]*]"+terme+"[^[^<]*</a>])","gi");
	var temp = document.getElementById(contener).innerHTML;
	document.getElementById(contener).innerHTML = temp.replace(regex,"<span class='rerecherche' onMouseOver=\"Tip('"+def+"',WIDTH,300)\" onMouseOut=\"UnTip()\">$1</span>");
}

// ################################################################################# CONFIRMATION SUPPRESSION

function confirmation(form) {
	if( confirm("Souhaitez-vous réellement effectuer cette opération ?") == true) {
		document.form.submit();
	} else return false;
}

// ##################################################################################################### MENU

var timeoutCacheMenu = null;
var lastelement = null;
function montre(menu,elem){
	baseelement =menu;
	//elem = document.getElementById(id);
	menu = document.getElementById(menu).childNodes[1];
	//alert(menu.childNodes[0].childNodes[1]);
	if(lastelement && lastelement.style && ( lastelement.id.indexOf("lien_") ==(-1)))
	{ 
		lastelement.style.display='none';
		lastelement=null;
	}
	
	for (i=0;i<menu.childNodes.length;i++){
		s_menu = menu.childNodes[i].childNodes[1];
		
		if(s_menu)
		{
			if(elem.childNodes[1]){
				if((s_menu.id != elem.childNodes[1].id) && ( s_menu.id.indexOf("lien_") ==(-1))  ){
					//on cache les autres sous menu
					s_menu.style.display='none';
					//					alert('cache '+s_menu.id);
				} else {
					s_menu.style.display='block';
					//clearTimeout(timeoutCacheMenu);
					//setTimeout('montre("'+baseelement+'",document)',2000);
					lastelement = s_menu;
				}
			} else {
			 
			}
		}else{
			 
		}
	}
}



