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 Calendar = function() {
  var cal = this;
  cal.Name = "";
  cal.CurrentMonth = "";
  cal.SelectedDays = Array();
  cal.CurrentYear = null;
};
var Utils = (function(settings) {
  var utils = this;
  utils.desiredLanguage = "en-us";
  utils.months = null;

  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;
      default:
        local.returnValue = new Array("January", "Februrary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    }

    return local.returnValue;
  }

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

  var cFactory = (function(options) {
    var factory = this;

    factory.create = function(calendarName) {
      var c = new Calendar();
      c.Name = calendarName;
      return c;
    };

    return {
      Create: factory.create
    }
  })(settings);

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

alert(Utils.CalendarFactory.Create("BasicCalendar"));

// 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...