// document.getElementById() shortcut if (typeof $ == 'undefined') { var $ = function(e) { return document.getElementById(e); } } init = function() { var cd = new Date(); $('birthdate').value = cd.getDate() + '/' + (cd.getMonth()+1) + '/' + cd.getFullYear(); $('studydate').value = (cd.getMonth()+1) + '/' + cd.getFullYear(); //$('birthtime').value = formatTime(cd); } start = function() { var dres = $('bdres'); var h1 = $('h1'); var splitDate = $('studydate').value.split("/"); var cd = new Date(splitDate[1], splitDate[0]-1); splitDate = $('birthdate').value.split("/"); var bd = new Date(splitDate[2], splitDate[1]-1, splitDate[0]); if (isNaN(bd) || isNaN(cd)) { dres.firstChild.data = 'Date invalide'; return; } else dres.firstChild.data = ' '; dnf = new Array ("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"); h1.firstChild.data = 'Votre rythme - Né(e) le ' + dnf[bd.getDay()] + ' ' + bd.getDate() + '/' + (bd.getMonth()+1) + '/' + bd.getFullYear(); // + ' à ' + formatTime(bd); if ($('displ').checked) startLists(bd, cd); else startCurves(bd, cd); return false; } startLists = function(bd, cd) { var ctnr = $('container'); ctnr.innerHTML = ""; ctnr.appendChild(showCalendar(bd, cd)); ctnr.appendChild(showCalendar(bd, cd)); ctnr.appendChild(showCalendar(bd, cd)); ctnr.appendChild(showCalendar(bd, cd)); return false; } startCurves = function(bd, cd) { var ctnr = $('container'); ctnr.innerHTML = ""; var div = document.createElement('h1'); div.appendChild(document.createTextNode(getMonthName(cd) + ' ' + cd.getFullYear())); ctnr.appendChild(div); ctnr.appendChild(showCurve(bd, cd)); div = document.createElement('h1'); div.appendChild(document.createTextNode(getMonthName(cd) + ' ' + cd.getFullYear())); ctnr.appendChild(div); ctnr.appendChild(showCurve(bd, cd)); div = document.createElement('h1'); div.appendChild(document.createTextNode(getMonthName(cd) + ' ' + cd.getFullYear())); ctnr.appendChild(div); ctnr.appendChild(showCurve(bd, cd)); } showCalendar = function(bd, cd) { var span = document.createElement('div'); var ca = document.createAttribute('class'); ca.nodeValue = 'l_outer'; span.setAttributeNode(ca); var da = $('dispall').checked; // display all var div = document.createElement('h1'); div.appendChild(document.createTextNode(getMonthName(cd) + ' ' + cd.getFullYear())); span.appendChild(div); cd.setDate(1); c_month = cd.getMonth(); dn = new Array ("Di","Lu","Ma","Me","Je","Ve","Sa"); for (var i = 0 ; i < 31 ; i++) { if (cd.getMonth() != c_month) break; div = document.createElement('div'); p = document.createElement('p'); p.appendChild(document.createTextNode(dn[cd.getDay()] + ' ' + cd.getDate())); ca = document.createAttribute('class'); ca.nodeValue = 'd'; p.setAttributeNode(ca); div.appendChild(p); /* ============== P 1 - 7 - 12 - 18 (- 23) E 1 - 8 - 15 - 22 (- 28) I 1 - 9 - 17 - 26 (- 33) ================= */ /* var cdt = cd.getTime() / 1000; var bdt = bd.getTime() / 1000;*/ var cdt = Date.UTC(cd.getFullYear(), cd.getMonth(), cd.getDate()) / 1000; var bdt = Date.UTC(bd.getFullYear(), bd.getMonth(), bd.getDate()) / 1000; var dif = Math.floor((cdt-bdt) / 86400) ; // days count from birthday to current date if (dif >= 0) { var cp = dif%23; var ce = dif%28; var ci = dif%33; if ((cp == 0) || (cp == 6) || (cp == 11) || (cp == 17)) { p = document.createElement('p'); //p.appendChild(document.createTextNode('PHYSIQUE (' + (cp+1) + ')')); p.appendChild(document.createTextNode('P(' + (cp+1) + ')')); ca = document.createAttribute('class'); ca.nodeValue = 'p'; p.setAttributeNode(ca); div.appendChild(p); } else if (da) { p = document.createElement('p'); p.appendChild(document.createTextNode('P(' + (cp+1) + ')')); div.appendChild(p); } if ((ce == 0) || (ce == 7) || (ce == 14) || (ce == 21)) { p = document.createElement('p'); //p.appendChild(document.createTextNode('EMOTIONNEL (' + (ce+1) + ')')); p.appendChild(document.createTextNode('E(' + (ce+1) + ')')); ca = document.createAttribute('class'); ca.nodeValue = 'e'; p.setAttributeNode(ca); div.appendChild(p); } else if (da) { p = document.createElement('p'); p.appendChild(document.createTextNode('E(' + (ce+1) + ')')); div.appendChild(p); } if ((ci == 0) || (ci == 8) || (ci == 16) || (ci == 25)) { p = document.createElement('p'); //p.appendChild(document.createTextNode('INTELLECTUEL (' + (ci+1) + ')')); p.appendChild(document.createTextNode('I(' + (ci+1) + ')')); ca = document.createAttribute('class'); ca.nodeValue = 'i'; p.setAttributeNode(ca); div.appendChild(p); } else if (da) { p = document.createElement('p'); p.appendChild(document.createTextNode('I(' + (ci+1) + ')')); div.appendChild(p); } } span.appendChild(div); cd.setDate(cd.getDate() + 1); //cd.setTime(cd.getTime() + 86400000); } return span; } showCurve = function(bd, cd) { var cbg = document.createElement('div'); var ca = document.createAttribute('class'); ca.nodeValue = 'c_bg'; cbg.setAttributeNode(ca); cd.setDate(1); c_month = cd.getMonth(); dn = new Array ("Di","Lu","Ma","Me","Je","Ve","Sa"); var daynbr = 0; /* var cdt = cd.getTime() / 1000; var bdt = bd.getTime() / 1000;*/ var cdt = Date.UTC(cd.getFullYear(), cd.getMonth(), cd.getDate()) / 1000; var bdt = Date.UTC(bd.getFullYear(), bd.getMonth(), bd.getDate()) / 1000; var dif = (cdt-bdt) / 3600; //var dif = Math.ceil((cdt-bdt) / 86400) ; // days count from birthday to current date var cp=0; var ce=0; var ci=0; //if (dif <0) // dif = Math.abs(dif); dif = -1 * dif; //if (dif >= 0) { cp = dif%(23*24); ce = dif%(28*24); ci = dif%(33*24); //} //alert(cp + " " + ce + " " + ci); curve = document.createElement('div'); ca = document.createAttribute('class'); ca.nodeValue = 'c_phy'; curve.setAttributeNode(ca); curve.style.backgroundPosition = (cp) + "px"; cbg.appendChild(curve); curve = document.createElement('div'); ca = document.createAttribute('class'); ca.nodeValue = 'c_emo'; curve.setAttributeNode(ca); curve.style.backgroundPosition = (ce) + "px"; cbg.appendChild(curve); curve = document.createElement('div'); ca = document.createAttribute('class'); ca.nodeValue = 'c_int'; curve.setAttributeNode(ca); curve.style.backgroundPosition = (ci) + "px"; cbg.appendChild(curve); for ( ; daynbr < 31 ; daynbr++) { if (cd.getMonth() != c_month) break; div = document.createElement('div'); ca = document.createAttribute('class'); ca.nodeValue = 'c_d'; div.setAttributeNode(ca); p = document.createElement('p'); p.appendChild(document.createTextNode(dn[cd.getDay()] + ' ' + cd.getDate())); ca = document.createAttribute('class'); ca.nodeValue = 'c_d_p'; p.setAttributeNode(ca); div.appendChild(p); cbg.appendChild(div); cd.setDate(cd.getDate() + 1); } cbg.style.width = (daynbr*24) + "px"; return cbg; } getMonthName = function(d) { var mn = new Array ("Janvier","Février","Mars","Avril","Mai","Juin","Juillet", "Août","Septembre","Octobre","Novembre","Décembre"); return mn[d.getMonth()]; } formatTime = function(d) { var md = d.getMinutes(); return d.getHours() + ":" + ((md < 10) ? "0" + md : md); } window.captureEvents(Event.KEYPRESS); window.onkeypress = chkkey; function chkkey(e) { if (e.which == 13) start(); else if (e.which == 97 || e.which == 65) { da = true; start(); } }