/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.widget.html.MonthlyCalendar"); dojo.require("dojo.widget.*"); dojo.require("dojo.widget.html.DatePicker"); dojo.require("dojo.widget.MonthlyCalendar"); //dojo.require("dojo.widget.MonthlyCalendar.util"); dojo.require("dojo.event.*"); dojo.require("dojo.html"); dojo.widget.html.MonthlyCalendar= function(){ dojo.widget.MonthlyCalendar.call(this); //dojo.widget.html.DatePicker.call(this); this.widgetType = "MonthlyCalendar"; this.templatePath = dojo.uri.dojoUri("src/widget/templates/HtmlMonthlyCalendar.html"); this.templateCssPath = dojo.uri.dojoUri("src/widget/templates/HtmlMonthlyCalendar.css"); this.iCalendars = []; } dojo.inherits(dojo.widget.html.MonthlyCalendar, dojo.widget.html.DatePicker); dojo.lang.extend(dojo.widget.html.MonthlyCalendar, { cache: function() { }, addCalendar: function(/* dojo.iCalendar */ cal) { dojo.debug("Adding Calendar"); this.iCalendars.push(cal); dojo.debug("Starting init"); this.initUI() dojo.debug("done init"); }, createDayContents: function(node,mydate) { dojo.dom.removeChildren(node); node.appendChild(document.createTextNode(mydate.getDate())); for(var x=0; x0)) { for(var y=0;y 0) { for (var x=0; x0; i--) { currentCalendarNode = calendarNodes.item(dayInWeek); this.createDayContents(currentCalendarNode, nextDate); dojo.html.setClass(currentCalendarNode, this.getDateClassName(nextDate, "current")); dayInWeek--; previousDate = nextDate; nextDate = this.incrementDate(nextDate, false); } for(var i=dayInWeek; i>-1; i--) { currentCalendarNode = calendarNodes.item(i); this.createDayContents(currentCalendarNode, nextDate); dojo.html.setClass(currentCalendarNode, this.getDateClassName(nextDate, "previous")); previousDate = nextDate; nextDate = this.incrementDate(nextDate, false); } } else { nextDate.setDate(1); for(var i=0; i<7; i++) { currentCalendarNode = calendarNodes.item(i); this.createDayContents(currentCalendarNode, nextDate); dojo.html.setClass(currentCalendarNode, this.getDateClassName(nextDate, "current")); previousDate = nextDate; nextDate = this.incrementDate(nextDate, true); } } previousDate.setDate(this.firstSaturday.date); previousDate.setMonth(this.firstSaturday.month); previousDate.setFullYear(this.firstSaturday.year); nextDate = this.incrementDate(previousDate, true); var count = 7; currentCalendarNode = calendarNodes.item(count); while((nextDate.getMonth() == previousDate.getMonth()) && (count<42)) { this.createDayContents(currentCalendarNode, nextDate); dojo.html.setClass(currentCalendarNode, this.getDateClassName(nextDate, "current")); currentCalendarNode = calendarNodes.item(++count); previousDate = nextDate; nextDate = this.incrementDate(nextDate, true); } while(count < 42) { this.createDayContents(currentCalendarNode, nextDate); dojo.html.setClass(currentCalendarNode, this.getDateClassName(nextDate, "next")); currentCalendarNode = calendarNodes.item(++count); previousDate = nextDate; nextDate = this.incrementDate(nextDate, true); } this.setMonthLabel(this.firstSaturday.month); this.setYearLabels(this.firstSaturday.year); } });