function DropDownCal(dayObjName, monthObjName, yearObjName, markDay, markMonth, markYear, blankOptions) {
//Methods
this.setMonthDrop = setMonthDrop;
this.setYearDrop = setYearDrop;
this.fillInDays = fillInDays;
this.setSelected = setSelected;
this.dayObjName = dayObjName; //Drop-down object for day
this.monthObjName = monthObjName; //Drop-down object for month
this.yearObjName = yearObjName; //Drop-down object for year
this.blankOptions = blankOptions; //Set to 1 if first index of drop-down object should be blank
//List of items to highlight or select from drop-down
this.markDay = markDay;
this.markMonth = markMonth;
this.markYear = markYear;
this.maxDayYear = new Array(3);
this.maxDayYear[0] = new Array(12);
this.maxDayYear[0][0] = 31;
this.maxDayYear[0][1] = 28;
this.maxDayYear[0][2] = 31;
this.maxDayYear[0][3] = 30;
this.maxDayYear[0][4] = 31;
this.maxDayYear[0][5] = 30;
this.maxDayYear[0][6] = 31;
this.maxDayYear[0][7] = 31;
this.maxDayYear[0][8] = 30;
this.maxDayYear[0][9] = 31;
this.maxDayYear[0][10] = 30;
this.maxDayYear[0][11] = 31;
this.maxDayYear[1] = new Array(12);
this.maxDayYear[1][0] = 31;
this.maxDayYear[1][1] = 29;
this.maxDayYear[1][2] = 31;
this.maxDayYear[1][3] = 30;
this.maxDayYear[1][4] = 31;
this.maxDayYear[1][5] = 30;
this.maxDayYear[1][6] = 31;
this.maxDayYear[1][7] = 31;
this.maxDayYear[1][8] = 30;
this.maxDayYear[1][9] = 31;
this.maxDayYear[1][10] = 30;
this.maxDayYear[1][11] = 31;
this.maxDayYear[2] = new Array(12);
this.maxDayYear[2][0] = 31;
this.maxDayYear[2][1] = 28;
this.maxDayYear[2][2] = 31;
this.maxDayYear[2][3] = 30;
this.maxDayYear[2][4] = 31;
this.maxDayYear[2][5] = 30;
this.maxDayYear[2][6] = 31;
this.maxDayYear[2][7] = 31;
this.maxDayYear[2][8] = 30;
this.maxDayYear[2][9] = 31;
this.maxDayYear[2][10] = 30;
this.maxDayYear[2][11] = 31;
//Need to have list of month names since js doesn't give this to us
this.monthNames = new Array(13);
this.monthNames[1] = "January";
this.monthNames[2] = "February";
this.monthNames[3] = "March";
this.monthNames[4] = "April";
this.monthNames[5] = "May";
this.monthNames[6] = "June";
this.monthNames[7] = "July";
this.monthNames[8] = "August";
this.monthNames[9] = "September";
this.monthNames[10] = "October";
this.monthNames[11] = "November";
this.monthNames[12] = "December";
}
/**
* Create the drop-down elements for month object
*/
function setMonthDrop() {
var monthObj = document.getElementById(this.monthObjName);
monthObj.innerHTML = "";
if (this.blankOptions == 1) {
monthObj.innerHTML = "";
}
for (i=1;i<=12;i++) {
var marked = this.setSelected(i,this.markMonth);
monthObj.innerHTML+= "";
}
//IE may have trouble with "innerHTML" version so check length
if (monthObj.options.length == 0) {
var ieIndex = 0;
if (this.blankOptions == 1) {
monthObj.options[ieIndex] = new Option("--", "");
ieIndex++;
}
for (i=1;i<=12;i++) {
monthObj.options[ieIndex] = new Option(this.monthNames[i], i);
if (i == this.markMonth) { //Select default value
monthObj.options[ieIndex].selected = true;
}
ieIndex++;
}
} //end IE block
}
function setYearDrop() {
var tmpDate = new Date();
var thisYear = tmpDate.getFullYear();
var yearObj = document.getElementById(this.yearObjName);
yearObj.innerHTML = "";
if (this.blankOptions == 1) {
yearObj.innerHTML = "";
}
for(i=-1;i<=1;i++) {
var marked = this.setSelected((thisYear + i),this.markYear);
var showYear = (thisYear + i).toString();
yearObj.innerHTML+= "";
}
//IE may have trouble with "innerHTML" version so check length
if (yearObj.options.length == 0) {
var ieIndex = 0;
if (this.blankOptions == 1) {
yearObj.options[ieIndex] = new Option("--", "");
ieIndex++;
}
for (i=-1;i<=1;i++) {
var showYear = (thisYear + i).toString();
yearObj.options[ieIndex] = new Option(showYear, showYear);
if ((i + thisYear) == this.markYear) { //Select default value
yearObj.options[ieIndex].selected = true;
}
ieIndex++;
}
} //end IE block
}
function fillInDays() {
var monthIndex = document.getElementById(this.monthObjName).selectedIndex;
var yearIndex = document.getElementById(this.yearObjName).selectedIndex;
var dayObj = document.getElementById(this.dayObjName);
//If a blank is allowed, selectedIndex has to be decreased by 1
if (this.blankOptions) {
monthIndex--;
yearIndex--;
}
document.getElementById(this.dayObjName).innerHTML = "";
if (this.blankOptions == 1) {
dayObj.innerHTML = "";
}
for (i=1;i<=this.maxDayYear[yearIndex][monthIndex];i++) {
var marked = this.setSelected(i,this.markDay);
dayObj.innerHTML += "";
}
//IE may have trouble with "innerHTML" version so check length
if (dayObj.options.length == 0) {
var ieIndex = 0;
if (this.blankOptions) {
dayObj.options[ieIndex] = new Option("--", "");
}
for (i=1;i<=this.maxDayYear[yearIndex][monthIndex];i++) {
dayObj.options[ieIndex] = new Option(i, i);
if (i == this.markDay) { //Select default value
dayObj.options[ieIndex].selected = true;
}
ieIndex++;
}
} //end IE block
}
function setSelected(a, b) {
if (!a || !b) return "";
if (a.toString().length == b.toString.length) { return ""; }
else { return (a == b) ? "selected" : ""; }
}