// Do not edit this compressed file. Download, rename & edit the master version of it.
function Calendar(){this.Settings=new Array();this.Settings.greeting="Aloha";this.Settings.showFullMonthNames=0;try{var test=CalData.length;}
catch(Err){var eMsg="cal-data.js is malformed (bad syntax). Calendar data array cannot be initialized.\n\n";for(member in Err)eMsg+=member+": "+Err[member]+"\n";alert(eMsg);}
this.Settings.futureMonthsAdmin=calMonthsFutureAdmin;this.Settings.futureMonthsPublic=calMonthsFuturePublic;this.Settings.pastMonthsAdmin=calMonthsPastAdmin;this.createLoginMenus=createLoginMenus;this.getCal=getCal;this.getDayOfWeek=getDayOfWeek;this.getMonthName=getMonthName;this.getNumDaysInMonth=getNumDaysInMonth;this.getReadAllLogInGUI=getReadAllLogInGUI;this.init=init;this.logInReadAll=logInReadAll;this.morphView=morphView;this.pollData=pollData;this.pollDataHeader=pollDataHeader;this.writeLegend=writeLegend;this.MsgCal=new Array();this.MsgCal.BackToBack="Click to add a back-to-back<span class='TooltipBullet'>&#149;</span>Click background to reset";this.MsgCal.Confirmed="Confirmed Reservation";this.MsgCal.ConfirmedShort="Confirmed";this.MsgCal.Edit="Click to edit data<span class='TooltipBullet'>&#149;</span>Right-click to view";this.MsgCal.EditSm="<div class='ToolTipCalMore'>"+this.MsgCal.Edit+"</div></div>";this.MsgCal.Help="Calendar Help, Tips & FAQs";this.MsgCal.LogOff="Log-off to end your session";this.MsgCal.LogOffReadAll="Cancel read-all access";this.MsgCal.Available="Available for check-in";this.MsgCal.Pending="Pending Reservation<span class='TooltipBullet'>&#149;</span>On hold";this.MsgCal.PendingShort="Pending";this.MsgCal.Publish="Save calendar to the web";this.MsgCal.Search="Search calendar by guest name";this.MsgCal.Today="Today";this.CarryBookingForward=new Array();this.userWithWritePrivileges=(GetCookie("userWithWritePrivileges"));if(this.userWithWritePrivileges)this.userWithWritePrivileges=this.userWithWritePrivileges.replace(/_/, " " );
this.userHasReadAllPrivileges=0;if(GetCookie("userHasReadAllPrivileges"))this.userHasReadAllPrivileges=1;this.publicUser=(!this.userWithWritePrivileges&&!this.userHasReadAllPrivileges);this.calPending=0;this.dataLastModified="";this.Request=null;this.timer=0;this.dataFile="cal-data.js";function pollData(){this.Request=getAjaxRequest();if(this.Request){this.Request.onreadystatechange=function(){if(Cal.Request.readyState==4){if(Cal.Request.status==200||Cal.Request.status==304){eval(Cal.Request.responseText);if(Cal.userWithWritePrivileges)document.AspForm.EditedJS.value=Cal.Request.responseText;gId("CalID").innerHTML=Cal.getCal();Cal.init();Cal.dataLastModified=Cal.Request.getResponseHeader("Last-Modified");clearTimeout(Cal.timer);if(Cal.userWithWritePrivileges)CM.pollAdministrators();else if(Cal.publicUser)Cal.pollDataHeader();}
else
Cal.timer=setTimeout("Cal.pollData();",1000);}}
this.Request.open("GET",Cal.dataFile+"?"+Math.random());this.Request.send(null);}}
function pollDataHeader(){this.Request=getAjaxRequest();if(this.Request){this.Request.onreadystatechange=function(){if(Cal.Request.readyState==4){if(Cal.Request.status){if(Cal.dataLastModified){if(Cal.dataLastModified!=Cal.Request.getResponseHeader("Last-Modified")){clearTimeout(Cal.timer);Cal.pollData();}
else
Cal.dataLastModified=Cal.Request.getResponseHeader("Last-Modified");}
else
Cal.dataLastModified=Cal.Request.getResponseHeader("Last-Modified");Cal.timer=setTimeout("Cal.pollDataHeader();",5000);}}}
this.Request.open("HEAD",Cal.dataFile+"?"+Math.random());this.Request.send(null);}}
function logInReadAll(){var Form=document.LogIn;var PW=Form.pw;PW.value=PW.value.trim();if(PW.value){if(Form.remember_pw.checked)SetCookie("pwReadAll",PW.value,expDate12Mon);var AspForm=document.AspForm;AspForm.ASP_Job.value="Calendar_Readonly_Login";AspForm.Calendar_Readonly_Password.value=PW.value;AspForm.submit();}
else
PW.focus();return false;}
function getReadAllLogInGUI(){var pwReadAll=(GetCookie("pwReadAll"))?GetCookie("pwReadAll"):"";var pwChecked=(pwReadAll)?" checked='checked'":"";var gui="<form name='LogIn' style='margin:0px;'><table align='center'><tr><td><table align='center'><tr><td class='cmField' style='padding-top:6px;'><a href='javascript:void(0);' onClick='togglePassword( this ); showPasswordTip( this );' onMouseover='showPasswordTip( this );' tabindex='-1' class='pw'>Password</a></td><td class='cmValue' style='padding-top:6px;' id='tdBookingID'><input type='"+((live)?"password":"text")+"' name='pw' id='pw' autocomplete='off' value='"+pwReadAll+"' class='cmText' onMouseover='this.title=Msg.PW;' onkeypress='if( window.event && window.event.keyCode == 13 || event.which == 13 ) { return Cal.logInReadAll(); }' /></td></tr><tr><td align='center' colspan='2' class='cmValue' style='padding-top:6px; white-space:nowrap;'><input type='checkbox' id='remember_pw' name='remember_pw' onMouseover='this.title=Msg.RememberMe;' onClick='if( checked ) { var pw = document.LogIn.pw.value.trim(); if( pw ) SetCookie( \"pwReadAll\", pw, expDate12Mon ); } else DeleteCookie( \"pwReadAll\" );'"+pwChecked+" /><label for='remember_pw'> Remember Me</label></td></tr><tr><td align='center' colspan='2' style='padding:10px 0px 0px 0px; white-space:nowrap;'><input type='submit' name='OK' value='OK' class='logInButtons' onClick='return Cal.logInReadAll( this );' /><input type='button' value='Cancel' class='logInButtons' onClick='DW.removeWin();' /></td></tr></table></td></tr></table></form>";DW.createWindow(["Read-Only Login",gui],[0,300,0],null,null,6,[4,0,0],null,1);(pwReadAll)?setTimeout("document.LogIn.OK.focus();",100):setTimeout("document.LogIn.pw.focus();",100);return false;}
function writeLegend(){var htm="<table align='center'><tr><td><fieldset class='calDesignation'><legend class='calDesignation' align='center'>&nbsp;Calendar Designations&nbsp;</legend><table align='center' class='calInstructions'><tr><td class='designation'>Available</td><td class='calDays calHiRes'>&nbsp;01 02 03&nbsp;</td><td class='designation' style='padding-left:30px;'>Reserved</td><td class='calDays calHiRes'>&nbsp;<span class='calBooked'>01 02 03</span>&nbsp;</td><td class='designation' style='padding-left:30px;'>Pending</td><td class='calDays calHiRes'>&nbsp;<span class='calPending'>01 02 03</span>&nbsp;</td></tr></table></fieldset></td></tr></table>";document.write(htm);}
function getCal(){for(var i=0;i<CalData.length-1;i++)this.CarryBookingForward[CalData[i][0]]=[0,""];var Today=new Date();var thisYear=Today.getFullYear();var thisMonth=Today.getMonth()+1;var thisDay=Today.getDate();var pastMonths=(this.publicUser)?0:this.Settings.pastMonthsAdmin;var numMonths=(this.publicUser)?this.Settings.futureMonthsPublic:this.Settings.futureMonthsAdmin+this.Settings.pastMonthsAdmin;var firstDayOfFirstMonth=new Date(thisYear,thisMonth-1-pastMonths,1).getTime();var htm="";var nProps=CalData.length-1;var winWid=getBodyMetrics()[0];var fSizeCls=(winWid>=1250)?"calHiRes":"calLoRes";htm+="<table align='center' class='calMaster' id='CalMaster'>";for(var monCounter=0;monCounter<numMonths;monCounter++){var htmRow="";var nMonthThisRow=thisMonth+monCounter-pastMonths-1;var factor=Math.floor(nMonthThisRow/12);var nMonth=nMonthThisRow-(factor*12);var nYear=thisYear+factor;var FirstDayOfThisMonth=new Date(nYear,nMonth,1);var theYear=FirstDayOfThisMonth.getFullYear();var theMonth=FirstDayOfThisMonth.getMonth()+1;var theDay=FirstDayOfThisMonth.getDay();var nDaysThisMonth=this.getNumDaysInMonth(theMonth,theYear);htmRow+="<tr><td colspan='2' class='calSpacer'>&nbsp;</td></tr>";if(monCounter-pastMonths==0){if(this.userWithWritePrivileges)htmRow+="<tr><td align='center' colspan='2'><div class='calGreeting' id='CalGreeting'></div><div class='calSearchGUI' id='CalSearchGUI'></div></td></tr><tr><td colspan='2' class='calButtonsTop' id='calButtonsTop'><table align='center' class='pfHide'><tr align='center'><td><input type='button' id='PublishCalendarTop' class='buttonCalPublish' value='Publish' disabled='disabled' /></td><td><input type='button' id='LogOffCalendarTop' class='buttonCalReset' value='Log Off' /></td></tr></table></td></tr>";else
htmRow+="<tr><td align='center' colspan='2'><div class='calGreeting' id='CalGreeting'></div><div class='calSearchGUI' id='CalSearchGUI'></div></td></tr>";if(nProps>1)htmRow+="<tr class='pfHide'><td colspan='2'><div class='RentalsRB' id='RentalsRB'></div></td></tr>";}
htmRow+="<tr><td class='calMon "+fSizeCls+"'>"+this.getMonthName(theMonth,this.Settings.showFullMonthNames)+" "+theYear.toString().substring(2,4)+"</td><td class='calDaysWeek "+fSizeCls+"'>&nbsp;";var nDay=theDay;for(var i=1;i<=nDaysThisMonth;i++){var dayOfWeek=this.getDayOfWeek(nDay,2);var dayOfWeekLong=this.getDayOfWeek(nDay);nDay=(nDay<6)?nDay+1:0;var today=(thisYear==theYear&&thisMonth==theMonth&&thisDay==i);var todayOut=(window.Cal)?"Today is "+dayOfWeekLong+" "+this.getMonthName(theMonth,1)+" "+i+", "+theYear:"";htmRow+=(today)?"<span class='calToday' onMouseover='Tip.showIt( \""+todayOut+"\", event );' onMouseout='Tip.removeAll();' onMousemove='Tip.setPosition( event );'>"+dayOfWeek+"</span> ":dayOfWeek+" ";}
htmRow+="&nbsp;</td></tr>";for(var propNum=0;propNum<nProps;propNum++){var propName=CalData[propNum][0];var Bookings=CalData[propNum].slice(1);var openedSpans=0,closedSpans=0;htmRow+="<tr class='prop"+propNum+"'><td class='calProp "+fSizeCls+"'><span class='calProp'>"+propName+"</span></td><td class='calDays "+fSizeCls+"' id='"+(propNum+1)+"_"+theMonth+"_"+(theYear-2000)+"'>&nbsp;";for(var dayOfMon=1;dayOfMon<=nDaysThisMonth;dayOfMon++){var output=((dayOfMon<10)?"0"+dayOfMon:dayOfMon)+"";if(this.CarryBookingForward[propName][0]){openedSpans++;output=this.CarryBookingForward[propName][1]+output;this.CarryBookingForward[propName][0]=0;}
for(var bookingNum=0;bookingNum<Bookings.length;bookingNum++){var ckInMon=Bookings[bookingNum][0][0];var ckInDay=Bookings[bookingNum][0][1];var ckInYr=Bookings[bookingNum][0][2];var ckOutMon=Bookings[bookingNum][0][3];var ckOutDay=Bookings[bookingNum][0][4];var ckOutYr=Bookings[bookingNum][0][5];if(monCounter==0){var ckInDateMS=new Date(ckInYr+2000,ckInMon-1,ckInDay).getTime();var ckOutDateMS=new Date(ckOutYr+2000,ckOutMon-1,ckOutDay).getTime();if(ckInDateMS<firstDayOfFirstMonth&&ckOutDateMS>firstDayOfFirstMonth){ckInDay=1;ckInMon=theMonth;ckInYr=theYear-2000;}}
var begStrikeThrough=(theMonth==ckInMon&&dayOfMon==ckInDay&&theYear-2000==ckInYr);if(ckOutDay-1==0){ckOutMon--;if(ckOutMon==0){ckOutMon=12;ckOutYr--;}
ckOutDay=getNumDaysInMonth(ckOutMon,ckOutYr+2000)+1;}
if(begStrikeThrough){var bookType=Bookings[bookingNum][1];switch(bookType){case 1:openedSpans++;output="<span class='calBooked'>"+output;this.CarryBookingForward[propName][1]="<span class='calBooked'>";break;case 2:openedSpans++;output="<span class='calPending'>"+output;this.CarryBookingForward[propName][1]="<span class='calPending'>";this.calPending=1;break;default:alert("Switch/Case Error at Cal.getCal: begStrikeThrough");}}
var endStrikeThrough=(theMonth==ckOutMon&&dayOfMon==ckOutDay-1&&theYear-2000==ckOutYr);if(endStrikeThrough){closedSpans++;output+="</span>";}}
htmRow+=output+" ";}
if(openedSpans>closedSpans){htmRow+="</span>";this.CarryBookingForward[propName][0]=1;}
htmRow+="&nbsp;</td></tr>";}
htm+=htmRow;}
htm+="<tr><td colspan='2' class='calLastUpdate'>Calendar last updated <span class='calLastUpdate'>by <span id='calLastUpdateUserID'>"+CalData[CalData.length-1][0]+"</span></span> on <span id='calLastUpdateTimeID'>"+new Date(CalData[CalData.length-1][1]).toLocaleString()+"</span></td></tr>";if(this.userWithWritePrivileges){htm+="<tr class='pfHide'><td colspan='2' class='calButtonsBot' id='calButtonsBot'><table align='center'><tr align='center'><td><input type='button' id='PublishCalendarBot' class='buttonCalPublish' value='Publish' disabled='disabled' /></td><td><input type='button' class='buttonCalReset' id='LogOffCalendarBot' value='Log Off' /></td></tr></table></td></tr>";}
htm+="</table>";htm=htm.replace(/\s<\/span>/g, "</span> " );
htm+="";if(window.CalAdmin)CalAdmin.searchGuests(0);return htm;}
function init(){try{var searchCal="&nbsp; &#149; &nbsp;<a href='javascript:void(0);' onclick='Tip.removeAll(); CalAdmin.showSearchGUI(); return false;' onMouseover='if( window.Cal ) Tip.showIt( \""+this.MsgCal.Search+"\", event );' onMouseout='Tip.removeAll();' onMousemove='Tip.setPosition( event );' class='cal' id='CalSearch'>Search</a>";var CalGreeting=gId("CalGreeting");if(this.userWithWritePrivileges){var Cells=gTn("td");for(var i=0;i<Cells.length;i++){if(Cells[i].className.indexOf("calDays ")==0){var data=Cells[i].innerHTML;var newData=data;for(k=1;k<=31;k++){var day=(k<10)?"0"+k:""+k;var Days=data.split(day);Days[0]=Days[0].toLowerCase();var dateOpen=(Days[0].split("span").length%2)?true:false;if(dateOpen){newData=newData.split(day).join("<span onClick='CalAdmin.setDates( this, event );' onMouseOver='if( window.Cal ) return CalAdmin.highlight( this, 1, event );' onMouseOut='Tip.removeAll(); if( window.Cal ) return CalAdmin.highlight( this, 0, event );' onMouseMove='Tip.setPosition( event );' class='calOpen'>"+day+"</span>");}}
Cells[i].innerHTML=newData;}}
document.body.onclick=CalAdmin.clearStartDate;var Spans=gTn("span");for(var i=0;i<Spans.length;i++){if(Spans[i].className=="calBooked"||Spans[i].className=="calPending"){Spans[i].onclick=function(event){if(window.Cal){Tip.removeAll();CalAdmin.getEditResGUI(this,event,1);}}
Spans[i].oncontextmenu=function(event){if(window.Cal){Tip.removeAll();return CalAdmin.getReadAllWin(this,event,1);}}
Spans[i].onmousemove=function(event){Tip.setPosition(event);}
Spans[i].onmouseout=function(){Tip.removeAll();}
Spans[i].onmouseover=function(event){CalAdmin.mouseOverStrikeThrough(this,event);}}}
var greeting=this.Settings.greeting+" "+this.userWithWritePrivileges+", you&rsquo;re logged in as Administrator"+searchCal+"&nbsp; &#149; &nbsp;<a href='help/calendar.html' onclick='Tip.removeAll(); Popup.openWin( this.href ); return false;' onMouseover='if( window.Cal ) Tip.showIt( \""+this.MsgCal.Help+"\", event );' onMouseout='Tip.removeAll();' onMousemove='Tip.setPosition( event );' class='cal'>Instructions</a>";CalGreeting.innerHTML=greeting;var PublishCalendarTop=gId("PublishCalendarTop");PublishCalendarTop.onclick=function(event){Tip.removeAll();CalAdmin.publish(this,event);}
PublishCalendarTop.onmouseover=function(event){Tip.showIt(Cal.MsgCal.Publish,event);}
PublishCalendarTop.onmouseout=function(event){Tip.removeAll();}
PublishCalendarTop.onmousemove=function(event){Tip.setPosition(event);}
var LogOffCalendarTop=gId("LogOffCalendarTop");LogOffCalendarTop.onclick=function(event){Tip.removeAll();CalAdmin.logOff();}
LogOffCalendarTop.onmouseover=function(event){Tip.showIt(Cal.MsgCal.LogOff,event);}
LogOffCalendarTop.onmouseout=function(event){Tip.removeAll();}
LogOffCalendarTop.onmousemove=function(event){Tip.setPosition(event);}
var PublishCalendarBot=gId("PublishCalendarBot");PublishCalendarBot.onclick=function(event){Tip.removeAll();CalAdmin.publish(this,event);}
PublishCalendarBot.onmouseover=function(event){Tip.showIt(Cal.MsgCal.Publish,event);}
PublishCalendarBot.onmouseout=function(event){Tip.removeAll();}
PublishCalendarBot.onmousemove=function(event){Tip.setPosition(event);}
var LogOffCalendarBot=gId("LogOffCalendarBot");LogOffCalendarBot.onclick=function(event){Tip.removeAll();CalAdmin.logOff();}
LogOffCalendarBot.onmouseover=function(event){Tip.showIt(Cal.MsgCal.LogOff,event);}
LogOffCalendarBot.onmouseout=function(event){Tip.removeAll();}
LogOffCalendarBot.onmousemove=function(event){Tip.setPosition(event);}}
if((this.publicUser||this.userHasReadAllPrivileges)&&!this.userWithWritePrivileges){if(this.userHasReadAllPrivileges)var greeting=this.Settings.greeting+", you have read-all privileges&nbsp; &#149; &nbsp;Click reservations for booking info"+searchCal+"&nbsp; &#149; &nbsp;<a href='calendar.aspx' onClick='Tip.removeAll(); DeleteCookie( \"userHasReadAllPrivileges\" );' onMouseover='if( window.Cal ) Tip.showIt( \""+this.MsgCal.LogOffReadAll+"\", event );' onMouseout='Tip.removeAll();' onMousemove='Tip.setPosition( event );' class='cal'>Log-off</a>";else{var Today=new Date();var greeting=this.Settings.greeting+", it's "+this.getDayOfWeek(Today.getDay())+", "+this.getMonthName(Today.getMonth()+1,1)+" "+Today.getDate()+", "+Today.getFullYear()+"&nbsp; &#149; &nbsp;<a href='javascript:void(0);' onMouseover='Menu.show( this, \"Menu_Cal_Login\", 14, event, 0, 2 );' onClick='Menu.kill( [ \"Menu_Cal_Login\" ] ); getLogInGUI();' onMouseout='Menu.hide([\"Menu_Cal_Login\"]);' class='cal'>Log-in</a>";}
CalGreeting.innerHTML=greeting;var Cells=gTn("td");for(var i=0;i<Cells.length;i++){if(Cells[i].className.indexOf("calDays ")==0){var data=Cells[i].innerHTML;var newData=data;for(k=1;k<=31;k++){var day=(k<10)?"0"+k:""+k;var Days=data.split(day);Days[0]=Days[0].toLowerCase();var dateOpen=(Days[0].split("span").length%2)?true:false;if(dateOpen){newData=newData.split(day).join("<span class='calOpenPub' onMouseover='if( window.Cal ) Tip.showIt( Cal.MsgCal.Available, event );' onMouseout='Tip.removeAll();' onMousemove='Tip.setPosition( event );'>"+day+"</span>");}}
Cells[i].innerHTML=newData;}}
var Spans=gTn("span");for(var i=0;i<Spans.length;i++){if(Spans[i].className=="calBooked"||Spans[i].className=="calPending"){switch(Spans[i].className){case "calBooked":if(this.userHasReadAllPrivileges&&Spans[i].parentNode.id){Spans[i].onclick=function(event){if(window.Cal){Tip.removeAll();return CalAdmin.getReadAllWin(this,event,1);}}
Spans[i].onmouseover=function(event){if(window.Cal){Tip.showIt(CalAdmin.getBookingData(this),event);this.style.cursor="pointer";return true;}}}
else{Spans[i].onmouseover=function(event){if(window.Cal){Tip.showIt(Cal.MsgCal.Confirmed,event);this.style.cursor="default";return true;}}}
break;case "calPending":if(this.userHasReadAllPrivileges&&Spans[i].parentNode.id){Spans[i].onclick=function(event){if(window.Cal){Tip.removeAll();return CalAdmin.getReadAllWin(this,event,1);}}
Spans[i].onmouseover=function(event){if(window.Cal){Tip.showIt(CalAdmin.getBookingData(this),event);this.style.cursor="pointer";return true;}}}
else{Spans[i].onmouseover=function(event){if(window.Cal){Tip.showIt(Cal.MsgCal.Pending,event);this.style.cursor="default";return true;}}}
break;default:alert("Switch/Case Error at Cal.init()");}
Spans[i].onmousemove=function(event){Tip.setPosition(event);}
Spans[i].onmouseout=function(){Tip.removeAll();}}}}
var nProps=CalData.length-1;if(nProps>1){var calPropNum=GetCookie("calPropNum");calPropNum=(calPropNum)?parseInt(calPropNum):-1;var RentalsRB=gId("RentalsRB");var htm="<span class='show'>Show</span>: <input type='radio' id='showAll' name='rentals' value='-1' onClick='SetCookie( \"calPropNum\", \"-1\" ); Cal.morphView(this); Tip.removeAll();' onMouseover='Tip.showIt( \"Show all rentals\", event );' onMouseout='Tip.removeAll();' onMousemove='Tip.setPosition( event );'"+((calPropNum==-1)?" checked":"")+" /><label for='showAll'>All</label>&nbsp;&nbsp;";for(var i=0;i<nProps;i++){var pName=CalData[i][0];htm+="&nbsp; <input type='radio' id='showProp"+i+"' name='rentals' value='"+i+"' onClick='SetCookie( \"calPropNum\", \""+i+"\" ); Cal.morphView(this); Tip.removeAll();' onMouseover='Tip.showIt( \"Show "+pName+" only\", event );' onMouseout='Tip.removeAll();' onMousemove='Tip.setPosition( event );'"+((calPropNum==i)?" checked":"")+" /><label for='showProp"+i+"'"+((calPropNum==i)?" checked":"")+">"+pName+"</label>&nbsp;&nbsp;";}
RentalsRB.innerHTML=htm;if(calPropNum>=0)this.morphView(null);}
self.status="";}
catch(Err){if(local){var err="";for(member in Err)err+=member+": "+Err[member]+"\n";alert("Exception at function Cal.init:\n\n"+err);}
else{self.status="Initializing Cal.init method, one moment please...";setTimeout("Cal.init();",2500);}}}
function morphView(RadioButton){var nRadioButton=(RadioButton)?parseInt(RadioButton.value):parseInt(GetCookie("calPropNum"));var TR=gTn("tr");for(var i=0;i<TR.length;i++){var rePattern=/^prop\d+$/;if( rePattern.test(TR[i].className)){var nPropRow=parseInt(TR[i].className.replace(/^prop/, "" ) );
TR[i].style.display=(nRadioButton==nPropRow||nRadioButton==-1)?"":"none";}}
if(window.CalAdmin)CalAdmin.scrollDownOnLogin();}
function getDayOfWeek(index,nChars){var arrWeekDay=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var theDay=arrWeekDay[index];return(nChars)?theDay.substring(0,nChars):theDay;}
function getMonthName(index,fullName){var arrMonth=["January","February","March","April","May","June","July","August","September","October","November","December"];var month=arrMonth[index-1];return(fullName)?month:month.substring(0,3);}
function getNumDaysInMonth(month,year){var leapYear=false;if(year%4!=0)leapYear=false;else if(year%400==0)leapYear=true;else if(year%100==0)leapYear=false;else leapYear=true;var nDays=31;if(month==4||month==6||month==9||month==11)nDays=30;else if(month==2)nDays=(leapYear)?29:28;return nDays;}
function createLoginMenus(){var Menus=new Array();var Div=gEl("div");Menus.push("<table onMouseOver='Menu.keepAlive([\"Menu_Cal_Login\"]);' onMouseOut='Menu.hide([\"Menu_Cal_Login\"]);' id='Menu_Cal_Login' class='menu'>");Menus.push("<tr><td class='menu'><a href='javascript:void(0);' onClick='Menu.kill( [ \"Menu_Cal_Login\" ] ); Cal.getReadAllLogInGUI();' class='menu'>Read-Only</a></td></tr>");Menus.push("<tr><td class='menu'><a href='javascript:void(0);' onClick='Menu.kill( [ \"Menu_Cal_Login\" ] ); getLogInGUI();' class='menu'>Administrator</a></td></tr>");Menus.push("</table>");Div.innerHTML=Menus.join("");aCh(Div);}}
Cal=new Calendar();