JSFiddle - React, Tailwind, and code Playground

by David Kyle

HTML

<div id="wrapper">
  <div class="days">

  </div>
</div>

CSS

BODY {
  font-family: Verdana, Arial, sans-serif;
}

.days TABLE {
  background-color: #efefef;
  color: #232323;
  border-radius: 3px 3px 0px 0px;
  border: solid 1px #232323;
  padding: 4px;
}

TABLE TR#first-child td {
  padding: 3px;
  font-weight: bold;
}

JavaScript

var Utils = (function(settings) {
  var utils = this;
  utils.desiredLanguage = "en-us";

  function monthNames(language) {
    var local = this;
    local.returnValue = null;
    switch (language) {
      case "en-us":
        local.returnValue = new Array("January", "Februrary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
        break;
      case "ru":
        local.returnValue = new Array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
        break;
    }

    return local.returnValue;
  }

  function init(properties) {
    alert(properties.StartMonth);
		utils.months = monthNames(properties.Lang);
  }

  init(settings);
  return {
    Months = utils.months
  };
})({
  StartMonth: new Date().getMonth(),
  Lang: "en-us"
});



// calendar.js
var date = new Date();
var currdate = new Date();
var colorclear;
var input;

function insertNodeText(obj, text) {
  var txtNode = document.createTextNode(text);
  obj.appendChild(txtNode);
  return obj;
}

function insertButton(obj, text, flag) {
  var buttons = Array(2);
  for (var i = 0; i < buttons.length; i++) {
    var button = document.createElement('Button');
    button.setAttribute('type', 'button');
    var caption = (i == flag) ? text + text : text;
    button = insertNodeText(button, caption);
    button.onclick = controlButton;
    obj.appendChild(button);
  }
}

function getCoords(elem) {
  var box = elem.getBoundingClientRect();
  var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
  var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft;
  var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
  var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
  var top = box.top + scrollTop - clientTop;
  var left = box.left + scrollLeft...