var _ERROR_REPORTER_;
var editURL = "";
var preferencesURL = "";
var origDate = null;

function goDay(year, month, day){
setView("D");
if(year != null && month != null && day != null)
return submitCalendar((new MyDate()).setFromValues(year, month, day));
return submitCalendar();
}
function goUserDate(){
submitForm();
}
function goWeek(week){
setView("W");
var curDate = getOrigDate();
if(week != null) curDate.setWeekInMonth(week);
return submitCalendar(curDate);
}
function goMonth(year, month){
setView("M");
var curDate = getOrigDate();
var day = curDate.day;
curDate.day = 1;
if(year != null) curDate.year = year;
if(month != null) curDate.month = month;
curDate.day = (day > curDate.getDaysInMonth()) ? curDate.getDaysInMonth() : day;
return submitCalendar(curDate);
}
function goList(year, month){
setView("L");
var curDate = getOrigDate();
var day = curDate.day;
curDate.day = 1;
if(year != null) curDate.year = year;
if(month != null) curDate.month = month;
curDate.day = (day > curDate.getDaysInMonth()) ? curDate.getDaysInMonth() : day;
return submitCalendar(curDate);
}
function goToday(){
return submitCalendar((new MyDate()).setFromDate(currentDateTime()));
}
function addEvent(hour, minute){
if(hour == "ALLDAY"){
document.calendarNav.time.value = hour;
}else if(hour != null){
if(minute == null) minute = 0;
if(minute < 10) minute = "0" + minute;
var time = hour % 12;
if(time == 0) time = 12;
time = time + ":" + minute;
time += (hour < 12) ? "am" : "pm";
document.calendarNav.time.value = time;
}
document.calendarNav.eventSeq.value = "";
document.calendarNav.action = editURL;
return submitCalendar();
}
function goPreferences(){
document.calendarNav.action = preferencesURL + (preferencesURL.indexOf("?") == -1 ? "?" : "&") + "destURL=" + escape(window.location.href);
return submitCalendar();
}
function prevList(){
var curDate = getOrigDate();
curDate.addMonths(-6, true);
return submitCalendar(curDate);
}
function nextList(){
var curDate = getOrigDate();
curDate.addMonths(6, true);
return submitCalendar(curDate);
}
function prevMonth(){
var curDate = getOrigDate();
curDate.addMonths(-1, true);
return submitCalendar(curDate);
}
function nextMonth(){
var curDate = getOrigDate();
curDate.addMonths(1, true);
return submitCalendar(curDate);
}
function prevWeek(){
var curDate = getOrigDate();
curDate.addWeeks(-1);
return submitCalendar(curDate);
}
function nextWeek(){
var curDate = getOrigDate();
curDate.addWeeks(1);
return submitCalendar(curDate);
}
function prevDay(){
var curDate = getOrigDate();
curDate.addDays(-1);
return submitCalendar(curDate);
}
function nextDay(){
var curDate = getOrigDate();
curDate.addDays(1);
return submitCalendar(curDate);
}
function setView(view){
view = view.substring(0, 1).toUpperCase();
if(view == "M" || view == "W" || view == "D")
document.calendarNav._view.value = view;
}
function submitCalendar(date){
document.calendarNav._date.value = ((date != null) ? date : getOrigDate()).getAsString();

if(_ERROR_REPORTER_ == true && formObjs["calendarNav"] != null){
submitForm("calendarNav");
}else{
document.calendarNav.submit();
}
return void(null);
}
function getOrigDate(){
if(origDate == null)
return (new MyDate()).setFromString(document.calendarNav._date.value)
return (new MyDate()).setFromString(origDate)
}
var _SR_;
if(_SR_ != null) _SR_.notify("calendar.js");
