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" : ""; } }