
HJ.DailyAgenda = Class.create();

HJ.DailyAgenda.prototype = Object.extend(new HJ.Agenda(), {

	initialize: function(calendarTitle, calendarArea, calendarHeader, allDayEvents, todaysCalendarLink) {
	    this.calendarTitle = calendarTitle;
		this.calendarArea = calendarArea;
	    this.calendarHeader = calendarHeader;
	    this.allDayEvents = allDayEvents;
	    this.todaysCalendarLink = todaysCalendarLink;
	    this.tbody2 = document.createElement("tbody");
	},
	
	cleanup: function() {
	  this.tbody2.style.display = "none";
	  this.allDayEvents.appendChild(this.tbody2);
	},
	
	render: function(schedules, date) {
        app.showBusy();
	   this.allDayEvents.className = "allDay";
	   this.allDayEvents.style.tableLayout = "auto";
	   removeAll(this.allDayEvents);
	   this.allDayEvents.appendChild(this.tbody2);
	   removeAll(this.tbody2);
	   this.allDayEvents.onclick = this.tableClicked.bindAsEventListener(this);
	   
	   this.schedules = schedules;
	   this.date = date;

       app.schedule.loadEventData(this.date);

	   this.startTime = new Date(this.date.getTime());
	   
	   this.endTime = new Date(this.date.getTime());
	   this.endTime.setHours(24, 0, 0);
	   
	   if (this.todaysCalendarLink != null) {
	      var dt = new Date();
	      dt.setHours(0,0,0,0);
	      if (dt.getTime() == this.date.getTime()) {
	         this.todaysCalendarLink.className = "todaysCalendar_on";
	      } else {
	         this.todaysCalendarLink.className = "todaysCalendar_off";
	      }
	   }
		  
	   this.calendarTitle.innerHTML = this.daysLong[this.date.getDay()] + ", " + this.months[this.date.getMonth()] + " " + this.date.getDate() + ", " + this.date.getFullYear();
	   removeAll(this.calendarArea);
	   removeAll(this.calendarHeader);
	   this.calendarArea.className = 'calDayAgenda';
	   this.allDayEvents.style.display = "";
	   var tbl = document.createElement("table");
	   //tbl.style.width = (this.calendarArea.offsetWidth - 23) + "px";
	   tbl.cellSpacing = "2";
	   this.calendarArea.appendChild(tbl);
	   var tbody = document.createElement('tbody');
	   tbl.appendChild(tbody);
	   
	   var eventList = this.getVisibleEventsList(this.date, this.startTime, this.endTime, true);
	   var hasAllDayEvent = false;
	   for (var i=0; i<eventList.length; i++) {
	      var o = eventList[i];
	      if (o.event["timeFlag"] + "" == "false") {
	         hasAllDayEvent = true;
	         var tr = document.createElement("tr");
             this.tbody2.appendChild(tr);
             td = this.getAgendaEventCell(o.schedule, o.scindex, o.event, o.eventindex, o.actualDate);
             tr.appendChild(td);
	      } else {
	          var tr = document.createElement("tr");
	          tbody.appendChild(tr);
			  var td = this.getTimeCell(o.schedule, o.event);
			  td.style.width = "20%";
			  tr.appendChild(td);
		      
			  td = this.getAgendaEventCell(o.schedule, o.scindex, o.event, o.eventindex, o.actualDate);
			  td.style.width = "80%";
			  tr.appendChild(td);
	      }
	   }
	   if (!hasAllDayEvent) {
	      var tr = document.createElement("tr");
          this.tbody2.appendChild(tr);
          var td = document.createElement("td");
          td.style.height = "20px";
          tr.appendChild(td);
          td.innerHTML = "&nbsp;";
	   }
	   this.allDayEvents.style.marginLeft = "19px";
	   
	   this.allDayEvents.style.width = "650px";
	   this.allDayEvents.style.tableLayout = "fixed";
	   tbl.onclick = this.tableClicked.bindAsEventListener(this);
        app.endBusy();
	},
	
	next: function() {
	   var t = new Date(this.startTime.getTime());
	   t.setDate(t.getDate() + 1);
	   this.render(this.schedules, t);
	   app.schedule.saveCurrentCalendarDate();
	},
	
	previous: function() {
	   var t = new Date(this.startTime.getTime());
	   t.setDate(t.getDate() - 1);
	   this.render(this.schedules, t);
	   app.schedule.saveCurrentCalendarDate();
	}

});

