var weekend = [0,6]; var weekendColor = "#ffcccc"; var fontface = "Arial"; var fontsize = 2; var gNow = new Date(); var ggWinCal; var jsFile = "calpop.js"; var CalBGColor="#ffffff"; var CalLinkColor="#003399"; var CalTextColor="#003399"; var CalHeaderColor="#000000"; isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false; isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false; Calendar.Months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; Calendar.get_month = Calendar_get_month; Calendar.get_daysofmonth = Calendar_get_daysofmonth; Calendar.calc_month_year = Calendar_calc_month_year; function Calendar(p_item, p_WinCal, p_month, p_year, p_format) { if ((p_month == null) && (p_year == null)){ return; } if (p_WinCal == null){ this.gWinCal = ggWinCal; }else{ this.gWinCal = p_WinCal; this.gMonthName = Calendar.get_month(p_month); this.gMonth = new Number(p_month); this.gYearly = false; } this.gYear = p_year; this.gFormat = p_format; this.gBGColor = "#ffffff"; this.gFGColor = "#003399"; this.gTextColor = "#003399"; this.gHeaderColor = "#003399"; this.gReturnItem = p_item; } function Calendar_get_month(monthNo) { return Calendar.Months[monthNo]; } function Calendar_get_daysofmonth(monthNo, p_year) { if ((p_year % 4) == 0) { if ((p_year % 100) == 0 && (p_year % 400) != 0){ return Calendar.DOMonth[monthNo]; }else{ return Calendar.lDOMonth[monthNo]; } }else{ return Calendar.DOMonth[monthNo]; } } function Calendar_calc_month_year(p_Month, p_Year, incr) { var ret_arr = new Array(); if (incr == -1) { // B A C K W A R D if (p_Month == 0) { ret_arr[0] = 11; ret_arr[1] = parseInt(p_Year) - 1; } else { ret_arr[0] = parseInt(p_Month) - 1; ret_arr[1] = parseInt(p_Year); } } else if (incr == 1) { // F O R W A R D if (p_Month == 11) { ret_arr[0] = 0; ret_arr[1] = parseInt(p_Year) + 1; } else { ret_arr[0] = parseInt(p_Month) + 1; ret_arr[1] = parseInt(p_Year); } } return ret_arr; } function Calendar_calc_month_year(p_Month, p_Year, incr) { var ret_arr = new Array(); if (incr == -1) { // B A C K W A R D if (p_Month == 0) { ret_arr[0] = 11; ret_arr[1] = parseInt(p_Year) - 1; } else { ret_arr[0] = parseInt(p_Month) - 1; ret_arr[1] = parseInt(p_Year); } } else if (incr == 1) { // F O R W A R D if (p_Month == 11) { ret_arr[0] = 0; ret_arr[1] = parseInt(p_Year) + 1; } else { ret_arr[0] = parseInt(p_Month) + 1; ret_arr[1] = parseInt(p_Year); } } return ret_arr; } new Calendar(); Calendar.prototype.show = function() { var vCode = ""; this.gWinCal.document.open(); this.wwrite("\n"); this.wwrite("Calendar\n"); this.wwrite(" \n"); //this.wwrite(" <\/scr" + "ipt>\n"); this.wwrite("\n"); this.wwrite("\n"); var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1); var prevMM = prevMMYYYY[0]; var prevYYYY = prevMMYYYY[1]; var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1); var nextMM = nextMMYYYY[0]; var nextYYYY = nextMMYYYY[1]; this.wwrite("\n"); this.wwrite(" \n"); this.wwrite(" \n"); this.wwrite(" \n"); this.wwrite(" \n"); this.wwrite(" \n"); this.wwrite(" \n"); this.wwrite(" \n"); this.wwrite("
 " + this.gMonthName + " " + this.gYear + "<<\/a>><\/a> 
\n"); vCode = this.getMonthlyCalendarCode(); this.wwrite(vCode); this.wwrite(""); this.gWinCal.document.close(); } Calendar.prototype.getMonthlyCalendarCode = function() { var vCode = ""; var vHeader_Code = ""; var vData_Code = ""; vCode = vCode + "\n"; vHeader_Code = this.cal_header(); vData_Code = this.cal_data(); vCode = vCode + vHeader_Code + vData_Code; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + "
\n"; vCode = vCode + "\n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + "
  
\n"; return vCode; } Calendar.prototype.cal_header = function() { var vCode = ""; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " Sun\n"; vCode = vCode + " Mon\n"; vCode = vCode + " Tue\n"; vCode = vCode + " Wed\n"; vCode = vCode + " Thu\n"; vCode = vCode + " Fri\n"; vCode = vCode + " Sat\n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; vCode = vCode + " \n"; return vCode; } Calendar.prototype.cal_data = function() { var vDate = new Date(); vDate.setDate(1); vDate.setMonth(this.gMonth); vDate.setFullYear(this.gYear); var vFirstDay=vDate.getDay(); var vDay=1; var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear); var vOnLastDay=0; var vCode = ""; vCode = vCode + "\n"; for (i=0; i< vFirstDay; i++) { vCode = vCode + "  \n"; } // Write rest of the 1st week for (j=vFirstDay; j<7; j++) { vCode = vCode + " " + this.format_day(vDay) + "\n"; vDay=vDay + 1; } vCode = vCode + "\n"; vCode = vCode + "\n"; vCode = vCode + " \n"; vCode = vCode + "\n"; // Write the rest of the weeks for (k=2; k<7; k++) { vCode = vCode + "\n"; for (j=0; j<7; j++) { vCode = vCode + " " + this.format_day(vDay) + "\n"; vDay=vDay + 1; if (vDay > vLastDay) { vOnLastDay = 1; break; } } if (j == 7){ vCode = vCode + "\n"; vCode = vCode + "\n"; vCode = vCode + " \n"; vCode = vCode + "\n"; } if (vOnLastDay == 1){ break; } } // Fill up the rest of last week with proper blanks, so that we get proper square blocks for (m=1; m<(7-j); m++) { vCode = vCode + " " + m + "\n"; } return vCode; } Calendar.prototype.format_day = function(vday) { var vNowDay = gNow.getDate(); var vNowMonth = gNow.getMonth(); var vNowYear = gNow.getFullYear(); if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear){ return ("" + vday + ""); }else{ return (vday); } } Calendar.prototype.write_weekend_string = function(vday) { var i; // Return special formatting for the weekend day. for (i=0; i< weekend.length; i++) { if (vday == weekend[i]){ return (" bgcolor=\"" + weekendColor + "\""); } } return ""; } Calendar.prototype.format_data = function(p_day) { var vData; var vMonth = 1 + this.gMonth; vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth; var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase(); var vFMon = Calendar.get_month(this.gMonth).toUpperCase(); var vY4 = new String(this.gYear); var vY2 = new String(this.gYear.substr(2,2)); var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day; switch (this.gFormat) { case "MM\/DD\/YYYY" : vData = vMonth + "\/" + vDD + "\/" + vY4; break; case "MM\/DD\/YY" : vData = vMonth + "\/" + vDD + "\/" + vY2; break; case "MM-DD-YYYY" : vData = vMonth + "-" + vDD + "-" + vY4; break; case "MM-DD-YY" : vData = vMonth + "-" + vDD + "-" + vY2; break; case "DD\/MON\/YYYY" : vData = vDD + "\/" + vMon + "\/" + vY4; break; case "DD\/MON\/YY" : vData = vDD + "\/" + vMon + "\/" + vY2; break; case "DD-MON-YYYY" : vData = vDD + "-" + vMon + "-" + vY4; break; case "DD-MON-YY" : vData = vDD + "-" + vMon + "-" + vY2; break; case "DD\/MONTH\/YYYY" : vData = vDD + "\/" + vFMon + "\/" + vY4; break; case "DD\/MONTH\/YY" : vData = vDD + "\/" + vFMon + "\/" + vY2; break; case "DD-MONTH-YYYY" : vData = vDD + "-" + vFMon + "-" + vY4; break; case "DD-MONTH-YY" : vData = vDD + "-" + vFMon + "-" + vY2; break; case "DD\/MM\/YYYY" : vData = vDD + "\/" + vMonth + "\/" + vY4; break; case "DD\/MM\/YY" : vData = vDD + "\/" + vMonth + "\/" + vY2; break; case "DD-MM-YYYY" : vData = vDD + "-" + vMonth + "-" + vY4; break; case "DD-MM-YY" : vData = vDD + "-" + vMonth + "-" + vY2; break; default : vData = vMonth + "\/" + vDD + "\/" + vY4; } return vData; } function Build(p_item, p_month, p_year, p_format) { var p_WinCal = ggWinCal; gCal = new Calendar(p_item, p_WinCal, p_month, p_year, p_format); gCal.gBGColor=CalBGColor; gCal.gLinkColor=CalLinkColor; gCal.gTextColor=CalTextColor; gCal.gHeaderColor=CalHeaderColor; gCal.show(); } function show_calendar() { /* p_month : 0-11 for Jan-Dec; 12 for All Months. p_year : 4-digit year p_format: Date format (mm/dd/yyyy, dd/mm/yy, ...) p_item : Return Item. */ p_item = arguments[0]; if (arguments[1] == null){ p_month = new String(gNow.getMonth()); }else{ p_month = arguments[1]; } if (arguments[2] == "" || arguments[2] == null){ p_year = new String(gNow.getFullYear().toString()); }else{ p_year = arguments[2]; } if (arguments[3] == null){ p_format = "MM/DD/YYYY"; }else{ p_format = arguments[3]; } vWinCal = window.open("", "Calendar", "width=255,height=220,status=no,resizable=no,menubar=no,directories=no,dependent=yes,titlebar=no,toolbar=no,top=200,left=200"); vWinCal.opener = self; ggWinCal = vWinCal; Build(p_item, p_month, p_year, p_format); } Calendar.prototype.wwrite = function(wtext) { this.gWinCal.document.writeln(wtext); } Calendar.prototype.wwriteA = function(wtext) { this.gWinCal.document.write(wtext); }