/* --- Swazz Javascript Calendar --- /* --- v 1.0 3rd November 2006 By Oliver Bryant http://calendar.swazz.org Optimized for Spitfire */ function Calendar (ielem, suffix) { var ielem = ielem; var suffix = suffix ? suffix : ""; var now = new Date; var sccm=now.getMonth(); var sccy=now.getFullYear(); var ccm=now.getMonth(); var ccy=now.getFullYear(); function checkClick(e) { var fcobj = document.getElementById (ielem+'_fc'); e?evt=e:evt=event; CSE=evt.target?evt.target:evt.srcElement; if (fcobj && !isChild(CSE,fcobj)) fcobj.style.display='none'; } function isChild(s,d) { while(s) { if (s==d) return true; s=s.parentNode; } return false; } function Left(obj) { var curleft = 0; if (obj.offsetParent) { while (obj.offsetParent) { curleft += obj.offsetLeft obj = obj.offsetParent; } } else if (obj.x) curleft += obj.x; return curleft; } function Top(obj) { var curtop = 0; if (obj.offsetParent) { while (obj.offsetParent) { curtop += obj.offsetTop obj = obj.offsetParent; } } else if (obj.y) curtop += obj.y; return curtop; } // Calendar script this.lcs = function (event) { var fcobj = document.getElementById (ielem+'_fc'); var updobj = document.getElementById (ielem); event.cancelBubble=true; fcobj.style.left=Left(updobj); fcobj.style.top=Top(updobj); fcobj.style.display=''; fcobj.style.left=Left(updobj) + updobj.offsetWidth - fcobj.offsetWidth; // First check date is valid curdt=updobj.value; curdt=curdt.split(' ')[0]; curdtarr=curdt.split('-'); isdt=true; for(var k=0;k= (cd -(-1))) && (d<=cd-(-marr[cm]))) { dip=((d-cd < sd)&&(cm==sccm)&&(cy==sccy)); htd=((hd!='')&&(d-cd==hd)); if (dip) f_cpps(v); else if (htd) f_hds(v); else f_cps(v); v.onmouseover=(dip)?null:cs_over; v.onmouseout=(dip)?null:cs_out; v.onclick=(dip)?null:cs_click; v.innerHTML=d-cd; calvalarr[d]=''+cy+'-'+((cm-(-1))<=9 ? '0' : '')+(cm-(-1))+'-'+((d-cd)<=9 ? '0' : '')+(d-cd); } else { v.innerHTML=' '; v.onmouseover=null; v.onmouseout=null; v.style.cursor='default'; } } } function caddm() { marr=((ccy%4)==0)?mnl:mnn; ccm+=1; if (ccm>=12) { ccm=0; ccy++; } cdayf(); prepcalendar('',ccm,ccy); } function csubm() { marr=((ccy%4)==0)?mnl:mnn; ccm-=1; if (ccm<0) { ccm=11; ccy--; } cdayf(); prepcalendar('',ccm,ccy); } function cdayf() { if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm))) return; else { ccy=sccy; ccm=sccm; } } document.write(''); document.write(''); document.write(''); for(var kk=1;kk<=6;kk++) { document.write(''); for(var tt=1;tt<=7;tt++) { num=7 * (kk-1) - (-tt); document.write(''); } document.write(''); } document.write(''); document.addEventListener('click',checkClick,false); document.getElementById (ielem+'_csubm').addEventListener('click',csubm,false); document.getElementById (ielem+'_caddm').addEventListener('click',caddm,false); prepcalendar('',ccm,ccy); }