var curMonthCount=0;
var weekLeftCount=0;
var leftMonthRowCounts=new Array();
var weekRightCount=0;
var rightMonthRowCounts=new Array();
var lastMonth;
var monthsInView=new Array();
var startsInCurrentMonth=true;
Object.extend(Date.prototype,{monthnames:["January","February","March","April","May","June","July","August","September","October","November","December"],daynames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],succ:function(){
var sd=new Date(this.getFullYear(),this.getMonth(),this.getDate()+1);
sd.setHours(this.getHours(),this.getMinutes(),this.getSeconds(),this.getMilliseconds());
return sd;
},firstofmonth:function(){
return new Date(this.getFullYear(),this.getMonth(),1);
},lastofmonth:function(){
return new Date(this.getFullYear(),this.getMonth()+1,0);
},formatPadding:true,format:function(f){
if(!this.valueOf()){
return "&nbsp;";
}
var d=this;
var _4={"yyyy":d.getFullYear(),"mmmm":this.monthnames[d.getMonth()],"mmm":this.monthnames[d.getMonth()].substr(0,3),"mm":this.formatPadding?((d.getMonth()).succ()).toPaddedString(2):(d.getMonth()).succ(),"dddd":this.daynames[d.getDay()],"ddd":this.daynames[d.getDay()].substr(0,3),"dd":d.getDate().toPaddedString(2),"hh":h=d.getHours()%12?h:12,"nn":d.getMinutes(),"ss":d.getSeconds(),"a/p":d.getHours()<12?"a":"p"};
return f.gsub(/(yyyy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/i,function(_5){
return _4[_5[0].toLowerCase()];
});
}});
var scal={};
scal=Class.create();
scal.prototype={initialize:function(_6,_7){
this.element=$(_6);
var _8=Try.these(function(){
if(!Object.isUndefined(Effect)){
return "Effect";
}
},function(){
return "Element";
});
this.options=Object.extend({oncalchange:Prototype.emptyFunction,onhoverchange:Prototype.emptyFunction,showhoverchange:false,daypadding:false,titleformat:"mmmm yyyy",updateformat:"yyyy-mm-dd",closebutton:"X",prevbutton:"&laquo;",nextbutton:"&raquo;",multiMonth:false,numMonths:1,yearnext:"&raquo;&raquo;",yearprev:"&laquo;&laquo;",openeffect:_8=="Effect"?Effect.Appear:Element.show,closeeffect:_8=="Effect"?Effect.Fade:Element.hide,exactweeks:false,weekRowHeight:121,dayheadlength:3,weekdaystart:0,planner:false,tabular:false},arguments[2]||{});
this.table=false;
this.thead=false;
this.startdate=this._setStartDate(arguments[2]);
if(this.options.planner){
this._setupPlanner(this.options.planner);
}
if(this.options.tabular){
this.table=new Element("table",{"class":"cal_table",border:0,cellspacing:0,cellpadding:0});
this.thead=new Element("thead");
this.table.insert(this.thead);
this.element.insert(this.table);
}
this.updateelement=_7;
this._setCurrentDate(this.startdate);
this.initDate=new Date(this.currentdate);
this.controls=this._buildControls();
this.title.setAttribute("title",this.initDate.format(this.options.titleformat));
this._updateTitles();
this[this.table?"thead":"element"].insert(this.controls);
this.cal_wrapper=this._buildHead();
this.cells=[];
this._buildCal();
},_setStartDate:function(){
var _9=arguments[0];
var _a=new Date();
this.options.month=_9&&_9.month&&Object.isNumber(_9.month)?_9.month-1:_a.getMonth();
this.options.year=_9&&_9.year&&Object.isNumber(_9.year)?_9.year:_a.getFullYear();
this.options.day=_9&&_9.day&&Object.isNumber(_9.day)?_9.day:(this.options.month!=_a.getMonth())?1:_a.getDate();
_a.setHours(0,0,0,0);
_a.setDate(this.options.day);
_a.setMonth(this.options.month);
_a.setFullYear(this.options.year);
return _a;
},_emptyCells:function(){
if(this.cells.size()>0){
this.cells.invoke("stopObserving");
this.cells.invoke("remove");
this.cells=[];
}
},_buildCal:function(){
this._emptyCells();
if(!(Object.isUndefined(this.cal_weeks_wrapper)||this.table)){
this.cal_weeks_wrapper.remove();
}
this.cal_weeks_wrapper=this._buildWrapper();
if(this.table){
this.table.select("tbody tr.weekbox:not(.weekboxname)").invoke("remove");
this.table.select("tbody.cal_wrapper").invoke("remove");
this.cal_weeks_wrapper.each(function(_b){
this.cal_wrapper.insert(_b);
}.bind(this));
}else{
this.cal_wrapper.insert(this.cal_weeks_wrapper);
}
this[this.table?"table":"element"].insert(this.cal_wrapper);
},_mouseOver:function(_c,_d){
if(!_c.target.hasClassName("weekdateheader")||!this.options.showhoverchange){
return;
}
this.element.select(".dayHovered").invoke("removeClassName","dayHovered");
if(_c.target.hasClassName){
(_c.target.hasClassName("daybox")?_c.target:_c.target.up()).addClassName("dayHovered");
}
this._setCurrentDate(this.dateRange[_d]);
if(Object.isFunction(this.options.onhoverchange)){
this.options.onhoverchange(_c,this.dateRange[_d]);
}
},_click:function(_e,_f){
this.element.select(".dayselected").invoke("removeClassName","dayselected");
if(_e.target.hasClassName){
(_e.target.hasClassName("daybox")?_e.target:_e.target.up()).addClassName("dayselected");
}
this._setCurrentDate(this.dateRange[_f]);
this._updateExternal();
},_updateExternal:function(){
if(Object.isFunction(this.updateelement)){
this.updateelement(this.currentdate);
}else{
var _10=$(this.updateelement);
_10[_10.tagName=="INPUT"?"setValue":"update"](this.currentdate.format(this.options.updateformat));
}
},_buildHead:function(){
var _11=new Element(this.table?"tbody":"div",{"class":"cal_wrapper"});
var _12=new Element(this.table?"tr":"div",{"class":"weekbox weekboxname"});
Date.prototype.daynames.sortBy(function(s,i){
i-=this.options.weekdaystart;
if(i<0){
i+=7;
}
return i;
}.bind(this)).each(function(day,i){
var _17=new Element(this.table?"td":"div",{"class":"cal_day_name_"+i});
_17.addClassName("daybox").addClassName("dayboxname").update(day.substr(0,this.options.dayheadlength));
if(i==6){
_17.addClassName("endweek");
}
_12.insert(_17);
}.bind(this));
return _11.insert(_12);
},_buildWrapper:function(){
var _18=new Date(this.firstofmonth.getFullYear(),this.firstofmonth.getMonth(),this.firstofmonth.getDate());
if(this.options.multiMonth){
this.lastofmonth=new Date(this.lastofmonth.getFullYear(),this.lastofmonth.getMonth()+(this.options.numMonths-1),this.lastofmonth.getDate());
}
var _19=new Date(this.lastofmonth.getFullYear(),this.lastofmonth.getMonth(),this.lastofmonth.getDate());
if(this.options.weekdaystart-_18.getDay()<_18.getDate()){
_18.setDate(_18.getDate()-_18.getDay()+this.options.weekdaystart);
}else{
_18.setDate(_18.getDate()-(_18.getDay()+7-this.options.weekdaystart));
}
var _1a=$A($R(_18,_19));
var _1b=this.options.numMonths;
var _1c=0;
if(_18.getDate()!=1){
_1b++;
_1c++;
startsInCurrentMonth=false;
}
for(var _1c;_1c<_1b;_1c++){
var _1d=_18.getMonth()+_1c;
var _1e=_18.getFullYear();
if(_1d>11){
_1d=_1d-12;
_1e++;
}
var _1f=new Date(_1e,_1d,1);
monthsInView.push(_1f);
}
var _20=this.table?[]:new Element("div",{"class":"calweekswrapper"});
var wk;
var row;
var _23;
this.dateRange=[];
this.indicators=[];
var _24=function(day){
if(day.getDate()==1){
curMonthCount++;
}
row.insert(this._buildDay(wk,day));
_23=day;
}.bind(this);
_1a.eachSlice(7,function(_26,i){
wk=i;
row=new Element(this.table?"tr":"div",{"class":"cal_week_"+wk}).addClassName("weekbox");
var _28=_26[0];
var _29=_26[_26.length];
if(_28.getMonth()!=lastMonth&&weekLeftCount>0){
leftMonthRowCounts.push([weekLeftCount,_28]);
lastMonth=_28.getMonth();
weekLeftCount=0;
}
if(_26[_26.length-1].getMonth()!=_28.getMonth()){
rightMonthRowCounts.push([weekRightCount,_26[_26.length-1]]);
weekRightCount=0;
}
weekLeftCount++;
weekRightCount++;
while(_26.length<7){
_26.push(_26.last().succ());
}
_26.map(_24);
_20[this.table?"push":"insert"](row);
}.bind(this));
if(!this.options.exactweeks){
var _2a=42-this.cells.size();
var _2b=Math.ceil(_2a/7);
if(this.options.multiMonth){
_2b=_2b*(this.options.numMonths-1);
}
if(_2b>0){
_2a=_2a/_2b;
}
$R(1,_2b).each(function(w){
wk+=1;
row=new Element(this.table?"tr":"div",{"class":"cal_week_"+wk}).addClassName("weekbox");
$R(1,_2a).each(function(i){
var d=_23.succ();
row.insert(this._buildDay(wk,d));
_20[this.table?"push":"insert"](row);
_23=d;
}.bind(this));
}.bind(this));
}
if(this.options.multiMonth){
this._buildMonthLabels(_23);
}
return _20;
},_buildMonthLabels:function(_2f){
var _30="";
var _31="";
var wk;
var day;
var _34="grey";
var _35=0;
for(var i=0;i<leftMonthRowCounts.length;i++){
var _37=leftMonthRowCounts[i][0];
var _38=_37*this.options.weekRowHeight;
day=leftMonthRowCounts[i][1];
if(i%2!=1){
_34="white";
}else{
_34="gray";
}
var _39="";
if(_37>1){
_39=GenerateYearHTML(monthsInView[_35],_34);
_35++;
}
if(_38>0){
}
_30+="<div id = '"+day.getMonth()+"' class = 'monthLabelLeft' style='background:url("+rootPath+"/images/SignupSheet/list_"+_34+".gif);height:"+_38+"px;'>"+_39+"</div>";
}
for(var i=0;i<rightMonthRowCounts.length;i++){
var _3a=rightMonthRowCounts[i][0];
var _38=_3a*121;
if(i%2!=1){
_34="white";
}else{
_34="gray";
}
if(_38>0){
_31+="<div class = 'monthLabelRight' style='background:url("+rootPath+"/images/SignupSheet/list_"+_34+".gif); height:"+_38+"px;'></div>";
}
}
var _3b=$A($R(day,_2f));
if(_34=="white"){
_34="gray";
}else{
_34="white";
}
_38=Math.floor(_3b.length/7)*121;
_39="";
if(_38>121){
_39=GenerateYearHTML(monthsInView[monthsInView.length-1],_34);
}
if(_38>0){
_30+="<div class = 'monthLabelLeft' style='background:url("+rootPath+"/images/SignupSheet/list_"+_34+".gif); background-repeat:repeat-y; width:50px; height:"+_38+"px;'>"+_39+"</div>";
_31+="<div class = 'monthLabelRight' style='background:url("+rootPath+"/images/SignupSheet/list_"+_34+".gif); background-repeat:repeat-y; width:33px; height:"+_38+"px;'></div>";
}
$("monthLabelsLeft").innerHTML=_30;
$("monthLabelsRight").innerHTML=_31;
weekLeftCount=0;
leftMonthRowCounts=new Array();
weekRightCount=0;
rightMonthRowCounts=new Array();
lastDay=null;
curMonthCount=0;
monthsInView=new Array();
},_compareDates:function(_3c,_3d,_3e){
return (this.indicators.indexOf(_3e)>=0)?false:Object.isUndefined(["getMonth","getDate","getFullYear"].find(function(n){
return _3c[n]()!=_3d[n]();
}));
},_buildDay:function(_40,day){
this.dateRange.push(day);
var _42="cal_day_"+_40+"_"+day.getDay();
var _43=new Element(this.table?"td":"div",{"class":_42,id:_42});
var _44=new Element("div",{"class":"weekdateheader"});
_44.innerHTML="<span>"+(this.options.daypadding?((day.getDate()).toPaddedString(2)):day.getDate())+"</span>";
var _45=new Element("div",{"class":_42+"_date"}).addClassName("dayboxdate").update(_44);
var _46=new Element("div",{"class":_42+"_value"}).addClassName("dayboxvalue");
if(this.options.planner){
this._updatePlanner(day,_46);
}
_43.insert(_45).insert(_46).addClassName("daybox").addClassName("daybox"+day.format("dddd").toLowerCase());
if(this._compareDates(day,this.currentdate,"dayselected")){
_43.addClassName("dayselected");
this.indicators.push("dayselected");
}
if(this._compareDates(day,new Date(),"today")){
_43.addClassName("today");
this.indicators.push("today");
}
if(day.getDay()==6){
_43.addClassName("endweek");
}
var cs=day.getMonth()!=this.currentdate.getMonth()?["dayoutmonth","dayinmonth"]:["dayinmonth","dayoutmonth"];
if(this.options.numMonths>1){
if(curMonthCount%2!=1){
cs=["dayoutmonth","dayinmonth"];
}else{
cs=["dayinmonth","dayoutmonth"];
}
}
_43.addClassName(cs[0]);
if(_43.hasClassName(cs[1])){
_43.removeClassName(cs[1]);
}
this.cells.push(_43);
_45.observe("click",this._click.bindAsEventListener(this,this.cells.size()-1));
_45.observe("mouseover",this._mouseOver.bindAsEventListener(this,this.cells.size()-1));
return _43;
},_updateTitles:function(){
var yr=this.currentdate.getFullYear();
var _49=this.currentdate.getMonth();
var _4a={calprevmonth:Date.prototype.monthnames[(_49-1)==-1?11:_49-1],calprevyear:yr-1,calnextyear:yr+1,calnextmonth:Date.prototype.monthnames[(_49+1)==12?0:_49+1]};
this.controls.select(".calcontrol").each(function(_4b){
var _4c=_4a[_4b.className.split(" ")[0]];
if(!Object.isUndefined(_4c)){
_4b.setAttribute("title",_4c);
}
});
},_buildControls:function(){
var _4d=[{p:"calclose",u:this.options.closebutton,f:this.toggleCalendar.bindAsEventListener(this)},{p:"calprevmonth",u:this.options.prevbutton,f:this._switchCal.bindAsEventListener(this,"monthdown")},{p:"calprevyear",u:this.options.yearprev,f:this._switchCal.bindAsEventListener(this,"yeardown")},{p:"calnextyear",u:this.options.yearnext,f:this._switchCal.bindAsEventListener(this,"yearup")},{p:"calnextmonth",u:this.options.nextbutton,f:this._switchCal.bindAsEventListener(this,"monthup")},{p:"caltitle",u:this.currentdate.format(this.options.titleformat),f:this._switchCal.bindAsEventListener(this,"init")}];
if(this.table){
_4d=[_4d[1],_4d[2],_4d[5],_4d[3],_4d[4],_4d[0]];
}
var _4e=new Element(this.table?"tr":"div",{"class":"calheader"});
_4d.each(function(_4f){
var el=new Element(this.table?"td":"div",{"class":_4f.p});
if(_4f.p=="caltitle"){
this.title=el;
if(this.table){
el.writeAttribute({colspan:2});
}
el.update(_4f.u).observe("click",_4f.f);
}else{
el.addClassName("calcontrol");
el[typeof (_4f.u)=="object"?"insert":"update"](_4f.u).observe("click",_4f.f);
}
_4e.insert(el);
}.bind(this));
return _4e;
},_switchCal:function(){
if(arguments[1]){
var _51=arguments[0];
var _52=arguments[1];
_51.date=this.currentdate;
}else{
var _52=arguments[0];
}
var _53={f:"setTime",p:this.initDate.getTime()};
var _54=this.currentdate.getDate();
if(_52!="init"){
var d=this.currentdate[_52.include("month")?"getMonth":"getFullYear"]();
_53={f:_52.include("month")?"setMonth":"setYear",p:_52.include("up")?d+1:d-1};
}
this.currentdate[_53.f](_53.p);
if(this.currentdate.getDate()!=_54){
this.currentdate.setDate(0);
}
this._update();
if(arguments[1]){
this.options.oncalchange(_51);
}
},_jumpMonths:function(_56,_57){
var _58=this.currentdate.getDate();
var d=this.currentdate[_57.include("month")?"getMonth":"getFullYear"]();
var _5a={f:_57.include("month")?"setMonth":"setYear",p:_57.include("up")?d+_56:d-_56};
this.currentdate[_5a.f](_5a.p);
var dte=new Date(this.currentdate.getFullYear(),this.currentdate.getMonth(),this.currentdate.getDate());
this._setCurrentDate(dte);
this._buildCal();
this._updateTitles();
this.title.update(this.currentdate.format(this.options.titleformat));
if(arguments[1]){
var o=new Object();
o.date=this.currentdate;
this.options.oncalchange(o);
}
},_update:function(){
this._setCurrentDate(arguments[0]?arguments[0]:this.currentdate);
this.title.update(this.currentdate.format(this.options.titleformat));
this._buildCal();
this._updateTitles();
},_setCurrentDate:function(_5d){
this.currentdate=new Date(_5d.getFullYear(),_5d.getMonth(),_5d.getDate());
this.firstofmonth=this.currentdate.firstofmonth();
this.lastofmonth=this.currentdate.lastofmonth();
},_getCellIndexByDate:function(d){
var _5f=d.getTime();
var _60=0;
this.dateRange.each(function(dt,i){
if(dt.getTime()==_5f){
_60=i;
throw $break;
}
});
return _60;
},destroy:function(){
this._emptyCells();
if(this.table){
this.table.remove();
}else{
this.cal_weeks_wrapper.remove();
}
this.controls.descendants().invoke("stopObserving");
[this.cal_wrapper,this.controls].invoke("remove");
if(this.planner){
var len=this.planner.len;
for(var i=0;i<len;i++){
this.planner.pop();
}
}
},setCurrentDate:function(_65){
this[(_65 instanceof Date)?"_update":"_switchCal"](_65);
if(!arguments[1]){
this._updateExternal();
}
return this.currentdate;
},setDaySummary:function(d){
var el=null;
if(d.getFullYear){
el=this.getElementByDate(d);
}else{
el=$(d);
}
if(!el){
return;
}
var _68=el.getElementsByClassName("dayboxevent");
try{
var t=$(el.id+"_summary");
if(t){
t.parentNode.removeChild(t);
}
}
catch(evr){
}
if(_68&&_68.length>3){
var sel=document.createElement("a");
sel.id=el.id+"_summary";
sel.className="viewMore";
sel.href="javascript:"+"__calExpandDay('"+el.id+"')";
sel.innerHTML=_68.length+" items";
_68[2].parentNode.insertBefore(sel,_68[3]);
}
},toggleCalendar:function(){
this.options[this.element.visible()?"closeeffect":"openeffect"](this.element);
},getElementByDate:function(d){
return this.cells[this._getCellIndexByDate(d)];
},getElementsByWeek:function(_6c){
return this.element.select(".weekbox:nth-of-type("+(_6c+1)+") .daybox:not(.dayboxname)");
},containsDate:function(d){
var _6e=d.getTime();
var _6f=0;
var _70=false;
this.dateRange.each(function(dt,i){
if(dt.getTime()==_6e){
_6f=i;
_70=true;
throw $break;
}
});
return _70;
},getSelectedElement:function(){
return this.element.select(".dayselected")[0];
},getTodaysElement:function(){
return this.element.select(".today")[0];
},getDateByElement:function(_73){
return this.dateRange[this.cells.indexOf(_73)];
},_setupPlanner:Prototype.emptyFunction,_updatePlanner:Prototype.emptyFunction,openCalendar:function(){
if(!this.isOpen()){
this.toggleCalendar();
}
},closeCalendar:function(){
if(this.isOpen()){
this.toggleCalendar();
}
},isOpen:function(){
return this.element.visible();
}};
function __timeFormat(_74){
var a_p="";
var d=_74;
var _77=d.getHours();
if(_77<12){
a_p="AM";
}else{
a_p="PM";
}
if(_77==0){
_77=12;
}
if(_77>12){
_77=_77-12;
}
var _78=d.getMinutes();
_78=_78+"";
if(_78.length==1){
_78="0"+_78;
}
return _77+":"+_78+":"+d.getSeconds()+" "+a_p;
}
function __dateFormat(_79,_7a){
intMonth=_79.getMonth();
intDate=_79.getDate();
intDay=_79.getDay();
intYear=_79.getFullYear();
var _7b=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var _7c=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var _7d=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var _7e=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var _7f=_7b[intMonth];
var mmm=_7c[intMonth];
var mm=intMonth<9?"0"+(1+intMonth)+"":(1+intMonth)+"";
var m=1+intMonth+"";
var _83=_7d[intDay];
var ddd=_7e[intDay];
var dd=intDate<10?"0"+intDate+"":intDate+"";
var d=intDate+"";
var _87=intYear;
century=0;
while((intYear-century)>=100){
century=century+100;
}
var yy=intYear-century;
if(yy<10){
yy="0"+yy+"";
}
displayDate=new String(_7a);
displayDate=displayDate.replace(/!mmmm/i,_7f);
displayDate=displayDate.replace(/!mmm/i,mmm);
displayDate=displayDate.replace(/!mm/i,mm);
displayDate=displayDate.replace(/!m/i,m);
displayDate=displayDate.replace(/!dddd/i,_83);
displayDate=displayDate.replace(/!ddd/i,ddd);
displayDate=displayDate.replace(/!dd/i,dd);
displayDate=displayDate.replace(/!d/i,d);
displayDate=displayDate.replace(/!yyyy/i,_87);
displayDate=displayDate.replace(/!yy/i,yy);
return displayDate;
}
function GenerateYearHTML(_89,_8a){
var _8b=_89.getFullYear()-2000;
var _8c=Math.floor(_8b/10);
var _8d=_8b%10;
var _8e=_89.getMonth();
var _8f=FormatMonth(_89.getMonth(),_89);
yearImageHtml="<div style='width:5px; padding-left:15px; padding-top:10px;'>";
yearImageHtml+="<img src='"+rootPath+"/images/SignupSheet/timeInfo/"+_8d+"-"+_8a+".gif'/>";
yearImageHtml+="<img src='"+rootPath+"/images/SignupSheet/timeInfo/"+_8c+"-"+_8a+".gif'/>";
yearImageHtml+="<img src='"+rootPath+"/images/SignupSheet/timeInfo/"+_8f+"-"+_8a+".gif'/>";
yearImageHtml+="</div>";
gylm=_8e;
return yearImageHtml;
}
var lm;
function FormatMonth(_90,_91){
var _92="";
switch(_90){
case 0:
_92="Jan";
break;
case 1:
_92="Feb";
break;
case 2:
_92="Mar";
break;
case 3:
_92="Apr";
break;
case 4:
_92="May";
break;
case 5:
_92="Jun";
break;
case 6:
_92="July";
break;
case 7:
_92="Aug";
break;
case 8:
_92="Sep";
break;
case 9:
_92="Oct";
break;
case 10:
_92="Nov";
break;
case 11:
_92="Dec";
break;
}
return _92;
}

