calendar render entirely in js