<style>
ul {list-style-type: none;}
.inlineMonth {
display:inline-block;
width:32%;
list-style-type: none;
}
#firstMonth {
float: left;
}
#secondMonth {
width: 32%;
margin-left:2%;
margin-right:1%;
}
#thirdMonth {
float: right;
}
#calContainer {
width: 100%;
background: #013564;
padding-left: 1px;
padding-right: 1px;
padding-bottom: 1px;
}
/* Month header */
.month {
padding: 10px 0px;
width: 100%;
background: #11518a;
text-align: center;
list-style-type: none;
}
.titleSpan {
padding: 25px 0px;
padding-bottom: 15px;
width: 100%;
background: #013564;
text-align: center;
list-style-type: none;
}
.selectionSpan {
padding: 0px;
padding-bottom: 0px;
width: 100%;
background: #013564;
text-align: center;
}
.selectionSpan ul{
}
.selectionSpan li {
display: inline-block;
width: 49%;
text-align: center;
color: white;
font-size: 20px;
text-transform: uppercase;
letter-spacing: 3px;
height:100%;
}
#checkIn {
margin-left:0px;
margin-right: .5%;
padding: 10px 5px;
cursor: pointer;
}
#checkOut {
display: inline-block;
padding: 10px 5px;
cursor: pointer;
margin-left: .5%;
}
.active {
padding: 10px 5px;
background: #11518a;
color: white !important
}
/* Month list */
.month ul {
margin: 0;
padding: 0;
list-style-type: none;
text-align: center;
}
.month ul li {
color: white;
font-size: 20px;
text-transform: uppercase;
letter-spacing: 3px;
}
/* Month list */
.titleSpan ul {
margin: 0;
padding: 0;
list-style-type: none;
}
.titleSpan ul li {
color: white;
font-size: 20px;
text-transform: uppercase;
letter-spacing: 3px;
}
/* Previous button inside month header */
#prev {
float: left;
padding-top: 10px;
margin-left: 10px;
cursor: pointer;
}
/* Next button */
#next {
float: right;
padding-top: 10px;
margin-right: 10px;
cursor: pointer;
}
/* Weekdays (Mon-Sun) */
.weekdays {
margin: 0;
padding: 10px 0;
background-color:#ddd;
width: 100%;
}
.weekdays li {
display: inline-block;
width: 13.5%;
color: #666;
text-align: center;
margin-left:1%;
font-size: 12px;
}
/* Days (1-31) */
.days {
padding: 10px 0;
background: #eee;
margin: 0;
}
.days li {
list-style-type: none;
display: inline-block;
width: 13.5%;
text-align: center;
margin-bottom: 3px;
font-size:10px;
color: #777;
}
/* Highlight the "current" day */
.days li .active {
padding: 6px 6px;
background: #11518a;
color: white !important
}
.entry-content ul li, .entry-content ol li {
margin-left: 0px;
}
</style>
<div id="calContainer">
<div class="titleSpan">
<ul>
<li id="prev">❮</li>
<li id="next">❯</li>
<li> Availability<br>
Calendar
</li>
</ul>
</div>
<div class="selectionSpan">
<ul>
<li id="checkIn" class="active">
CHECK-IN
</li>
<li id="checkOut">
CHECK-OUT
</li>
</ul>
</div>
<div class="inlineMonth" id="firstMonth">
<div class="month">
<ul>
<li id="mOneHeader">
MONTH YEAR
</li>
</ul>
</div>
<ul class="weekdays">
<li>S</li>
<li>M</li>
<li>T</li>
<li>W</li>
<li>T</li>
<li>F</li>
<li>S</li>
</ul>
<ul class="days">
</ul>
</div>
<div class="inlineMonth" id="secondMonth">
<div class="month">
<ul>
<li id="mTwoHeader">
MONTH YEAR
</li>
</ul>
</div>
<ul class="weekdays">
<li>S</li>
<li>M</li>
<li>T</li>
<li>W</li>
<li>T</li>
<li>F</li>
<li>S</li>
</ul>
<ul class="days">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<a href=""><li>1</li></a>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li><span class="active">10</span></li>
<li><span class="active">11</span></li>
<li><span class="active">12</span></li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>24</li>
<li>25</li>
<li>26</li>
<li>27</li>
<li>28</li>
<li>29</li>
<li>30</li>
<li>31</li>
</ul>
</div>
<div class="inlineMonth" id="thirdMonth">
<div class="month">
<ul>
<li id="mThreeHeader">
MONTH YEAR
</li>
</ul>
</div>
<ul class="weekdays">
<li>S</li>
<li>M</li>
<li>T</li>
<li>W</li>
<li>T</li>
<li>F</li>
<li>S</li>
</ul>
<ul class="days">
<li></li>
<a href=""><li>1</li></a>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li><span class="active">10</span></li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>24</li>
<li>25</li>
<li>26</li>
<li>27</li>
<li>28</li>
<li>29</li>
<li>30</li>
<li>31</li>
</ul>
</div>
</div>
<script>
$j=jQuery.noConflict();
function resize() {
//Script to auto size calendar heights to maintain even structure
var firstCal = document.querySelector('#firstMonth .days');
console.log(firstCal.clientHeight);
var secondCal = document.querySelector('#secondMonth .days');
console.log(secondCal.clientHeight);
var thirdCal = document.querySelector('#thirdMonth .days');
console.log(thirdCal.clientHeight);
var firstHeight = firstCal.clientHeight;
var secondHeight = secondCal.clientHeight;
var thirdHeight = thirdCal.clientHeight;
if(firstHeight >= secondHeight && firstHeight >= thirdHeight){
//set css props
secondCal.style.height = firstHeight + "px";
thirdCal.style.height = firstHeight + "px";
} else if(secondHeight >= firstHeight && secondHeight >= thirdHeight){
//set css props
firstCal.style.height = secondHeight + "px";
thirdCal.style.height = secondHeight + "px";
} else if(thirdHeight >= firstHeight && thirdHeight >= secondHeight){
//set css props
secondCal.style.height = thirdHeight + "px";
firstCal.style.height = thirdHeight + "px";
}
}
window.onresize = function() {
if(window.innerWidth <= 750){
$j("#secondMonth").css("display","none");
$j("#thirdMonth").css("display","none");
$j("#firstMonth").css("float","none");
$j("#firstMonth").css("width","96%");
$j("#firstMonth").css("margin-left","2%");
$j(".days li").css("width","14%");
$j(".weekdays li").css("width","14%");
} else if(window.innerWidth > 750){
$j("#secondMonth").css("display","inline-block");
$j("#thirdMonth").css("display","inline-block");
$j("#firstMonth").css("float","left");
$j("#firstMonth").css("width","32%");
$j("#firstMonth").css("margin-left","0");
$j(".days li").css("width","13.5%");
$j(".weekdays li").css("width","13.5%");
}
}
var selected = 0; //0 = checkin 1 = checkout
document.getElementById("checkIn").onclick = function(){
$j("#checkOut").removeClass("active");
$j("#checkIn").addClass("active");
selected = 0;
}
document.getElementById("checkOut").onclick = function(){
$j("#checkIn").removeClass("active");
$j("#checkOut").addClass("active");
selected = 1;
}
var d = new Date();
var month = d.getMonth();
console.log(month);
var monthStr = getMonthString(month);
var year = d.getFullYear();
//init data pop
populateData(month);
var monthTracker = month;
var maxMonth = 7 - 2;
var distanceTravel = 0;
//click functionality month swap
$j("#next").onclick = function(){
if(distanceTravel != maxMonth){
monthTracker++;
distanceTravel++;
populateData(monthTracker);
}
console.log("next test");
};
function populateData(seedMonth){
setMonthHeaders(seedMonth);
fillMonthData(seedMonth,0);
fillMonthData(seedMonth+1,1);
fillMonthData(seedMonth+2,2);
}
function setMonthHeaders(seedMonthNumber){
var date = new Date();
var monthStr = getMonthString(seedMonthNumber);
var year = d.getFullYear();
$j("#mOneHeader").html("" + monthStr + " <br>" + year);
if((++seedMonthNumber) == 12){ //start of new year
seedMonthNumber = 0;
year++;
}
monthStr = getMonthString(seedMonthNumber);
$j("#mTwoHeader").html("" + monthStr + " <br>" + year);
if((++seedMonthNumber) == 12){ //start of new year
seedMonthNumber = 0;
year++;
}
monthStr = getMonthString(seedMonthNumber);
$j("#mThreeHeader").html("" + monthStr + " <br>" + year);
}
function fillMonthData(monthNum, subNum){
var selector;
switch(subNum){
case 0: selector = $j("#firstMonth .days");
break;
case 1: selector = $j("#secondMonth .days");
break;
case 2: selector = $j("#thirdMonth .days");
break;
default: selector = $j("#null");
break;
}
var labeler = 1;
var today = new Date();
var year = today.getFullYear();
var firstDay = new Date(year,monthNum,1).getDay();
console.log(firstDay);
selector.html("");
for(i = 0; i < firstDay; i++){
selector.append("<li></li>");
console.log("HEY");
console.log(i);
console.log(firstDay);
}
if(today.getMonth() == monthNum){ //do additional segmenting for past dates
for(i = 0; i < today.getDate()-1; i++){
selector.append("<li></li>");
}
labeler = today.getDate();
}
var maxDate = getMaxNumberOfDays(year,monthNum);
for(x = labeler; x <= maxDate; x++){
selector.append("<li>"+x+"</li>");
var dop = new Date(year,monthNum,x).getDay();
}
resize();
}
function getMaxNumberOfDays(year, month){
return new Date(year,++month,0).getDate();
}
function getMonthString(monthNum){
switch(monthNum){
case 0: return "Jan";
case 1: return "Feb";
case 2: return "Mar";
case 3: return "Apr";
case 4: return "May";
case 5: return "Jun";
case 6: return "Jul";
case 7: return "Aug";
case 8: return "Sep";
case 9: return "Oct";
case 10: return "Nov";
case 11: return "Dec";
default: return "Null";
}
}
</script>
