(function(c){$sd.widget("ui.weekCalendar",{_init:function(){var d=this;d._computeOptions();
d._setupEventDelegation();d._renderCalendar();d._loadCalEvents();d._resizeCalendar();
d._scrollToHour(d.options.date.getHours());c(window).unbind("resize.weekcalendar");
c(window).bind("resize.weekcalendar",function(){d._resizeCalendar();});},refresh:function(){this._clearCalendar();
this._loadCalEvents(this.element.data("startDate"));},clear:function(){this._clearCalendar();
},today:function(){this._clearCalendar();this._loadCalEvents(new Date());},prevWeek:function(){var d=new Date(this.element.data("startDate").getTime()-(b/6));
this._clearCalendar();this._loadCalEvents(d);},nextWeek:function(){var d=new Date(this.element.data("startDate").getTime()+b+(b/7));
this._clearCalendar();this._loadCalEvents(d);},gotoWeek:function(d){this._clearCalendar();
this._loadCalEvents(d);},removeEvent:function(d){this.element.find(".cal-event").each(function(){if(c(this).data("calEvent").id===d){c(this).fadeOut(function(){c(this).remove();
});return false;}});},removeUnsavedEvents:function(){this.element.find(".new-cal-event").fadeOut(function(){c(this).remove();
});},updateEvent:function(d){this._updateEventInCalendar(d);},getTimeslotTimes:function(g){var f=this.options;
var e=f.businessHours.limitDisplay?f.businessHours.start:0;var d=new Date(g.getFullYear(),g.getMonth(),g.getDate(),e);
var l=[];var j=d.getTime();for(var h=0;h<f.timeslotsPerDay;h++){var k=j+f.millisPerTimeslot;
l[h]={start:new Date(j),startFormatted:this._formatDate(new Date(j),f.timeFormat),end:new Date(k),endFormatted:this._formatDate(new Date(k),f.timeFormat)};
j=k;}return l;},formatDate:function(d,e){if(e){return this._formatDate(d,e);}else{return this._formatDate(d,this.options.dateFormat);
}},formatTime:function(d,e){if(e){return this._formatDate(d,e);}else{return this._formatDate(d,this.options.timeFormat);
}},getData:function(d){return this._getData(d);},_computeOptions:function(){var d=this.options;
if(d.businessHours.limitDisplay){d.timeslotsPerDay=d.timeslotsPerHour*(d.businessHours.end-d.businessHours.start);
d.millisToDisplay=(d.businessHours.end-d.businessHours.start)*60*60*1000;d.millisPerTimeslot=d.millisToDisplay/d.timeslotsPerDay;
}else{d.timeslotsPerDay=d.timeslotsPerHour*24;d.millisToDisplay=a;d.millisPerTimeslot=a/d.timeslotsPerDay;
}},_resizeCalendar:function(){var e=this.options;if(e&&c.isFunction(e.height)){var g=e.height(this.element);
var d=this.element.find(".week-calendar-header").outerHeight();var f=this.element.find(".calendar-nav").outerHeight();
this.element.find(".calendar-scrollable-grid").height(g);}},_setupEventDelegation:function(){var d=this;
var e=this.options;this.element.click(function(g){var f=c(g.target);if(f.data("preventClick")){return;
}if(f.hasClass("cal-event")){e.eventClick(f.data("calEvent"),f,g);}else{if(f.parent().hasClass("cal-event")){e.eventClick(f.parent().data("calEvent"),f.parent(),g);
}}});},_isDraggingOrResizing:function(d){return d.hasClass("ui-draggable-dragging")||d.hasClass("ui-resizable-resizing");
},_renderCalendar:function(){var l,q,o,k,m;var n=this;var p=this.options;l=c('<div class="week-calendar">').appendTo(n.element);
if(p.buttons){q='<table class="calendar-nav"><tr><td><button class="prev">'+p.buttonText.lastWeek+'</button></td><td><button class="next">'+p.buttonText.nextWeek+"</button></td></tr></table>";
c(q).appendTo(l);l.find(".calendar-nav .today").click(function(){n.element.weekCalendar("today");
return false;});l.find(".calendar-nav .prev").click(function(){n.element.weekCalendar("prevWeek");
return false;});l.find(".calendar-nav .next").click(function(){n.element.weekCalendar("nextWeek");
return false;});}o='<table cellpadding="0" cellspacing="0" class="week-calendar-header"><tbody><tr><td class="time-column-header"></td>';
for(var h=1;h<=7;h++){o+='<td class="day-column-header day-'+h+'"></td>';}o+='<td class="scrollbar-shim"></td></tr></tbody></table>';
k='<div class="calendar-scrollable-grid">                <table cellpadding="0" cellspacing="0" class="week-calendar-time-slots">                <tbody>                <tr>                <td class="grid-timeslot-header"></td>                <td colspan="7">                <div class="time-slot-wrapper">                <div class="time-slots">';
var e=p.businessHours.limitDisplay?p.businessHours.start:0;var f=p.businessHours.limitDisplay?p.businessHours.end:24;
for(var h=e;h<f;h++){for(var g=0;g<p.timeslotsPerHour-1;g++){k+='<div class="time-slot"></div>';
}k+='<div class="time-slot hour-end"></div>';}k+='</div></div></td></tr><tr><td class="grid-timeslot-header">';
for(var h=e;h<f;h++){var d=(p.businessHours.start<=h&&p.businessHours.end>h)?"business-hours":"";
k+='<div class="hour-header '+d+'">';if(p.use24Hour){k+='<div class="time-header-cell">'+n._24HourForIndex(h)+"</div>";
}else{k+='<div class="time-header-cell">'+n._hourForIndex(h)+'<span class="am-pm">'+n._amOrPm(h)+"</span></div>";
}k+="</div>";}k+="</td>";for(var h=1;h<=7;h++){k+='<td class="day-column day-'+h+'"><div class="day-column-inner"></div></td>';
}k+="</tr></tbody></table></div>";c(o+k).appendTo(l);m=l.find(".day-column-inner");
m.each(function(j,r){if(!p.readonly){n._addDroppableToWeekDay(c(this));n._setupEventCreationForWeekDay(c(this));
}});l.find(".time-slot").height(p.timeslotHeight-1);l.find(".time-header-cell").css({height:(p.timeslotHeight*p.timeslotsPerHour)-11,padding:5});
},_setupEventCreationForWeekDay:function(d){var e=this;var f=this.options;d.mousedown(function(l){var g=c(l.target);
if(g.hasClass("day-column-inner")){var j=c('<div class="cal-event new-cal-event new-cal-event-creating"></div>');
j.css({lineHeight:(f.timeslotHeight-2)+"px",fontSize:(f.timeslotHeight/2)+"px"});
g.append(j);var k=g.offset().top;var m=l.pageY-k;var h=(m-(m%f.timeslotHeight))/f.timeslotHeight;
var i=h*f.timeslotHeight;j.css({top:i});g.bind("mousemove.newevent",function(p){j.show();
j.addClass("ui-resizable-resizing");var n=Math.round(p.pageY-k-i);var q=n%f.timeslotHeight;
if(q<(n/2)){var o=n-q;j.css("height",o<f.timeslotHeight?f.timeslotHeight:o);}else{j.css("height",n+(f.timeslotHeight-q));
}}).mouseup(function(){g.unbind("mousemove.newevent");j.addClass("ui-corner-all");
});}}).mouseup(function(m){var h=c(m.target);var g=h.closest(".day-column-inner");
var l=g.find(".new-cal-event-creating");if(l.length){if(!l.hasClass("ui-resizable-resizing")){l.css({height:f.timeslotHeight*f.defaultEventLength}).show();
}var n=parseInt(l.css("top"));var j=e._getEventDurationFromPositionedEventElement(g,l,n);
l.remove();var k={start:j.start,end:j.end,title:f.newEventText};var i=e._renderEvent(k,g);
if(!f.allowCalEventOverlap){e._adjustForEventCollisions(g,i,k,k);e._positionEvent(g,i);
}else{e._adjustOverlappingEvents(g);}f.eventNew(j,i);}});},_loadCalEvents:function(i){var h,d,j,e;
var f=this;var g=this.options;h=i||g.date;d=f._dateFirstDayOfWeek(h);weekEndDate=f._dateLastMilliOfWeek(h);
g.calendarBeforeLoad(f.element);f.element.data("startDate",d);f.element.data("endDate",weekEndDate);
e=f.element.find(".day-column-inner");f._updateDayColumnHeader(e);if(typeof g.data=="string"){if(g.loading){g.loading(true);
}var k={};k[g.startParam||"start"]=Math.round(d.getTime()/1000);k[g.endParam||"end"]=Math.round(weekEndDate.getTime()/1000);
c.getJSON(g.data,k,function(l){f._renderEvents(l,e);if(g.loading){g.loading(false);
}});}else{if(c.isFunction(g.data)){g.data(d,weekEndDate,function(l){f._renderEvents(l,e);
});}else{if(g.data){f._renderEvents(g.data,e);}}}f._disableTextSelect(e);},_updateDayColumnHeader:function(d){var e=this;
var f=this.options;var g=e._cloneDate(e.element.data("startDate"));e.element.find(".week-calendar-header td.day-column-header").each(function(j,k){var h=f.useShortDayNames?f.shortDays[g.getDay()]:f.longDays[g.getDay()];
c(this).html(h+"<br/>"+e._formatDate(g,f.dateFormat));if(e._isToday(g)){c(this).addClass("today");
}else{c(this).removeClass("today");}g=e._addDays(g,1);});g=e._dateFirstDayOfWeek(e._cloneDate(e.element.data("startDate")));
d.each(function(h,j){c(this).data("startDate",e._cloneDate(g));c(this).data("endDate",new Date(g.getTime()+(a-1)));
if(e._isToday(g)){c(this).parent().addClass("today");}else{c(this).parent().removeClass("today");
}g=e._addDays(g,1);});},_renderEvents:function(h,d){var e=this;var g=this.options;
var f;if(c.isArray(h)){f=e._cleanEvents(h);}else{if(h.events){f=e._cleanEvents(h.events);
}}if(h.options){var i=false;c.each(h.options,function(j,k){if(k!==g[j]){g[j]=k;i=true;
}});e._computeOptions();if(i){e.element.empty();e._renderCalendar();d=e.element.find(".week-calendar-time-slots .day-column-inner");
e._updateDayColumnHeader(d);e._resizeCalendar();}}c.each(f,function(k,l){var j=e._findWeekDayForEvent(l,d);
if(j){e._renderEvent(l,j);}});d.each(function(){e._adjustOverlappingEvents(c(this));
});g.calendarAfterLoad(e.element);if(!f.length){g.noEvents();}},_renderEvent:function(k,d){var e=this;
var g=this.options;if(k.start.getTime()>k.end.getTime()){return;}var i,f,h,j;i=k.id?"cal-event":"cal-event new-cal-event";
f='<div class="'+i+' ui-corner-all">                <div class="time ui-corner-all"></div>                <div class="title"></div></div>';
h=c(f);j=g.eventRender(k,h);h=j?j.appendTo(d):h.appendTo(d);h.css({lineHeight:(g.timeslotHeight-2)+"px",fontSize:(g.timeslotHeight/2)+"px"});
e._refreshEventDetails(k,h);e._positionEvent(d,h);h.show();if(!g.readonly&&g.resizable(k,h)){e._addResizableToCalEvent(k,h,d);
}if(!g.readonly&&g.draggable(k,h)){e._addDraggableToCalEvent(k,h);}g.eventAfterRender(k,h);
return h;},_adjustOverlappingEvents:function(e){var f=this;if(f.options.allowCalEventOverlap){var d=f._groupOverlappingEventElements(e);
c.each(d,function(){var i=this.length;var j=this;if(f.options.overlapEventsSeparate){var g=100/i;
var h=g;}else{var g=(100-(i*10));var h=(100-g)/(i-1);}});}},_groupOverlappingEventElements:function(e){var l=this;
var i=e.find(".cal-event");var d=i.sort(function(p,o){return c(p).data("calEvent").start.getTime()-c(o).data("calEvent").start.getTime();
});var j;var f=[];var k=[];var n;var g=0;var m=0;var h=0;c.each(d,function(){n=c(this);
g=n.data("calEvent").start.getTime();m=n.data("calEvent").end.getTime();n.css({width:"100%",left:"0%",right:"","z-index":"1"});
if(n.data("calEvent").start.getTime()<h){return;}c.each(d,function(){if(n.data("calEvent").id==c(this).data("calEvent").id||g>c(this).data("calEvent").start.getTime()+1||m<c(this).data("calEvent").start.getTime()+1){return;
}if(c(this).data("calEvent").end.getTime()>m){m=c(this).data("calEvent").end.getTime();
}if(c.inArray(c(this),k)==-1){k.push(c(this));}if(c.inArray(n,k)==-1){k.push(n);}});
if(k.length){k.sort(function(p,o){if(c(p).data("calEvent").start.getTime()>c(o).data("calEvent").start.getTime()){return 1;
}else{if(c(p).data("calEvent").start.getTime()<c(o).data("calEvent").start.getTime()){return -1;
}else{return(c(p).data("calEvent").end.getTime()-c(p).data("calEvent").start.getTime())-(c(o).data("calEvent").end.getTime()-c(o).data("calEvent").start.getTime());
}}});f.push(k);k=[];h=m;}});return f;},_compareGroups:function(e,d){if(e.length!=d.length){return false;
}for(var f=0;f<e.length;f++){if(e[f].data("calEvent").id!=d[f].data("calEvent").id){return false;
}}return true;},_findWeekDayForEvent:function(f,e){var d;e.each(function(){if(c(this).data("startDate").getTime()<=f.start.getTime()&&c(this).data("endDate").getTime()>=f.end.getTime()){d=c(this);
return false;}});return d;},_updateEventInCalendar:function(g){var e=this;var f=this.options;
e._cleanEvent(g);if(g.id){e.element.find(".cal-event").each(function(){if(c(this).data("calEvent").id===g.id||c(this).hasClass("new-cal-event")){c(this).remove();
return false;}});}var d=e._findWeekDayForEvent(g,e.element.find(".week-calendar-time-slots .day-column-inner"));
if(d){e._renderEvent(g,d);e._adjustOverlappingEvents(d);}},_positionEvent:function(f,i){var m=this.options;
var l=i.data("calEvent");var j=f.height()/m.millisToDisplay;var g=m.businessHours.limitDisplay?m.businessHours.start:0;
var h=l.start.getTime()-new Date(l.start.getFullYear(),l.start.getMonth(),l.start.getDate(),g).getTime();
var e=l.end.getTime()-l.start.getTime();var k=j*h;var d=j*e;i.css({top:k,height:d});
},_getEventDurationFromPositionedEventElement:function(e,i,h){var g=this.options;
var d=g.businessHours.limitDisplay?g.businessHours.start*60*60*1000:0;var j=new Date(e.data("startDate").getTime()+d+Math.round(h/g.timeslotHeight)*g.millisPerTimeslot);
var f=new Date(j.getTime()+(i.height()/g.timeslotHeight)*g.millisPerTimeslot);return{start:j,end:f};
},_adjustForEventCollisions:function(e,h,i,g,f){var l=this.options;if(l.allowCalEventOverlap){return;
}var k,d;var j=this;e.find(".cal-event").not(h).each(function(){var m=c(this).data("calEvent");
if(i.start.getTime()<m.end.getTime()&&i.end.getTime()>=m.end.getTime()){k=m.end;}if(i.end.getTime()>m.start.getTime()&&i.start.getTime()<=m.start.getTime()){d=m.start;
}if(i.end.getTime()<=m.end.getTime()&&i.start.getTime()>=m.start.getTime()){k=g.start;
d=g.end;return false;}});i.start=k||i.start;if(k&&f){i.end=new Date(k.getTime()+(g.end.getTime()-g.start.getTime()));
j._adjustForEventCollisions(e,h,i,g);}else{i.end=d||i.end;}if(i.start.getTime()>=i.end.getTime()){i.start=g.start;
i.end=g.end;}h.data("calEvent",i);},_addDraggableToCalEvent:function(h,g){var e=this;
var f=this.options;var d=e._findWeekDayForEvent(h,e.element.find(".week-calendar-time-slots .day-column-inner"));
g.draggable({handle:".time",containment:".calendar-scrollable-grid",revert:"valid",opacity:0.5,grid:[g.outerWidth()+1,f.timeslotHeight],start:function(i,j){var k=j.draggable;
f.eventDrag(h,k);}});},_addDroppableToWeekDay:function(d){var e=this;var f=this.options;
d.droppable({accept:".cal-event",drop:function(h,m){var j=m.draggable;var l=Math.round(parseInt(m.position.top));
var i=e._getEventDurationFromPositionedEventElement(d,j,l);var k=j.data("calEvent");
var n=c.extend(true,{start:i.start,end:i.end},k);e._adjustForEventCollisions(d,j,n,k,true);
var o=e.element.find(".day-column-inner");var g=e._renderEvent(n,e._findWeekDayForEvent(n,o));
j.hide();f.eventDrop(n,k,g);j.data("preventClick",true);setTimeout(function(){var p=e._findWeekDayForEvent(j.data("calEvent"),e.element.find(".week-calendar-time-slots .day-column-inner"));
j.remove();if(p.data("startDate")!=d.data("startDate")){e._adjustOverlappingEvents(p);
}e._adjustOverlappingEvents(d);},500);}});},_addResizableToCalEvent:function(h,g,d){var e=this;
var f=this.options;g.resizable({grid:f.timeslotHeight,containment:d,handles:"s",minHeight:f.timeslotHeight,stop:function(k,l){var m=l.element;
var j=new Date(m.data("calEvent").start.getTime()+(m.height()/f.timeslotHeight)*f.millisPerTimeslot);
var i=c.extend(true,{start:h.start,end:j},h);e._adjustForEventCollisions(d,m,i,h);
e._refreshEventDetails(i,m);e._positionEvent(d,m);f.eventResize(i,h,m);m.data("preventClick",true);
setTimeout(function(){m.removeData("preventClick");},500);}});},_refreshEventDetails:function(g,f){var d=this;
var e=this.options;f.find(".time").text(d._formatDate(g.start,e.timeFormat)+e.timeSeparator+d._formatDate(g.end,e.timeFormat));
f.find(".title").html(g.title+"<br /><strong>"+g.price+"</strong>");f.data("calEvent",g);
},_clearCalendar:function(){this.element.find(".day-column-inner div").remove();},_scrollToHour:function(e){var f=this;
var g=this.options;var h=this.element.find(".calendar-scrollable-grid");var i=e;if(f.options.businessHours.limitDisplay){if(e<f.options.businessHours.start){i=0;
}else{if(e>f.options.businessHours.end){i=f.options.businessHours.end-f.options.businessHours.start-1;
}}}var d=this.element.find(".grid-timeslot-header .hour-header:eq("+i+")");h.animate({scrollTop:0},0,function(){var k=d.offset().top;
var j=k-h.offset().top-d.outerHeight();h.animate({scrollTop:j},g.scrollToHourMillis);
});},_hourForIndex:function(d){if(d===0){return 12;}else{if(d<13){return d;}else{return d-12;
}}},_24HourForIndex:function(d){if(d===0){return"00:00";}else{if(d<10){return"0"+d+":00";
}else{return d+":00";}}},_amOrPm:function(d){return d<12?"AM":"PM";},_isToday:function(e){var f=this._cloneDate(e);
this._clearTime(f);var d=new Date();this._clearTime(d);return d.getTime()===f.getTime();
},_cleanEvents:function(e){var d=this;c.each(e,function(f,g){d._cleanEvent(g);});
return e;},_cleanEvent:function(d){if(d.date){d.start=d.date;}d.start=this._cleanDate(d.start);
d.end=this._cleanDate(d.end);if(!d.end){d.end=this._addDays(this._cloneDate(d.start),1);
}},_disableTextSelect:function(d){d.each(function(){if(c.browser.mozilla){c(this).css("MozUserSelect","none");
}else{if(c.browser.msie){c(this).bind("selectstart",function(){return false;});}else{c(this).mousedown(function(){return false;
});}}});},_dateFirstDayOfWeek:function(e){var d=this;var f=new Date(e.getFullYear(),e.getMonth(),e.getDate());
var g=d._getAdjustedDayIndex(f)*86400000;return new Date(f.getTime()-g);},_dateLastDayOfWeek:function(e){var d=this;
var f=new Date(e.getFullYear(),e.getMonth(),e.getDate());var g=(6-d._getAdjustedDayIndex(f))*a;
return new Date(f.getTime()+g);},_getAdjustedDayIndex:function(e){var f=new Date(e.getFullYear(),e.getMonth(),e.getDate());
var d=f.getDay();var g=[0,1,2,3,4,5,6];this._rotate(g,this.options.firstDayOfWeek);
return g[d];},_dateLastMilliOfWeek:function(d){var e=this._dateLastDayOfWeek(d);return new Date(e.getTime()+(a-1));
},_clearTime:function(e){e.setHours(0);e.setMinutes(0);e.setSeconds(0);e.setMilliseconds(0);
return e;},_addDays:function(f,g,e){f.setDate(f.getDate()+g);if(e){return f;}return this._clearTime(f);
},_rotate:function(f,h){for(var e=f.length,h=(Math.abs(h)>=e&&(h%=e),h<0&&(h+=e),h),g,d;
h;h=(Math.ceil(e/h)-1)*h-e+(e=h)){for(g=e;g>h;d=f[--g],f[g]=f[g-h],f[g-h]=d){}}return f;
},_cloneDate:function(f){var e=new Date();e.setTime(f.getTime());return e;},_cleanDate:function(e){if(typeof e=="string"){return $sd.weekCalendar.parseISO8601(e,true)||Date.parse(e)||new Date(parseInt(e));
}if(typeof e=="number"){return new Date(e);}return e;},_formatDate:function(f,j){var e=this.options;
var h="";for(var g=0;g<j.length;g++){var d=j.charAt(g);if(c.isFunction(this._replaceChars[d])){h+=this._replaceChars[d](f,e);
}else{h+=d;}}return h;},_replaceChars:{d:function(d){return(d.getDate()<10?"0":"")+d.getDate();
},D:function(e,d){return d.shortDays[e.getDay()];},j:function(d){return d.getDate();
},l:function(e,d){return d.longDays[e.getDay()];},N:function(d){return d.getDay()+1;
},S:function(d){return(d.getDate()%10==1&&d.getDate()!=11?"st":(d.getDate()%10==2&&d.getDate()!=12?"nd":(d.getDate()%10==3&&d.getDate()!=13?"rd":"th")));
},w:function(d){return d.getDay();},z:function(d){return"Not Yet Supported";},W:function(d){return"Not Yet Supported";
},F:function(e,d){return d.longMonths[e.getMonth()];},m:function(d){return(d.getMonth()<9?"0":"")+(d.getMonth()+1);
},M:function(e,d){return d.shortMonths[e.getMonth()];},n:function(d){return d.getMonth()+1;
},t:function(d){return"Not Yet Supported";},L:function(d){return"Not Yet Supported";
},o:function(d){return"Not Supported";},Y:function(d){return d.getFullYear();},y:function(d){return(""+d.getFullYear()).substr(2);
},a:function(d){return d.getHours()<12?"am":"pm";},A:function(d){return d.getHours()<12?"AM":"PM";
},B:function(d){return"Not Yet Supported";},g:function(d){return d.getHours()%12||12;
},G:function(d){return d.getHours();},h:function(d){return((d.getHours()%12||12)<10?"0":"")+(d.getHours()%12||12);
},H:function(d){return(d.getHours()<10?"0":"")+d.getHours();},i:function(d){return(d.getMinutes()<10?"0":"")+d.getMinutes();
},s:function(d){return(d.getSeconds()<10?"0":"")+d.getSeconds();},e:function(d){return"Not Yet Supported";
},I:function(d){return"Not Supported";},O:function(d){return(d.getTimezoneOffset()<0?"-":"+")+(d.getTimezoneOffset()/60<10?"0":"")+(d.getTimezoneOffset()/60)+"00";
},T:function(d){return"Not Yet Supported";},Z:function(d){return d.getTimezoneOffset()*60;
},c:function(d){return"Not Yet Supported";},r:function(d){return d.toString();},U:function(d){return d.getTime()/1000;
}}});$sd.extend($sd.ui.weekCalendar,{version:"1.2.1",getter:["getTimeslotTimes","getData","formatDate","formatTime"],defaults:{date:new Date(),timeFormat:"h:i a",dateFormat:"M d, Y",use24Hour:false,firstDayOfWeek:0,useShortDayNames:false,timeSeparator:" to ",startParam:"start",endParam:"end",businessHours:{start:8,end:18,limitDisplay:false},newEventText:"New Event",timeslotHeight:20,defaultEventLength:2,timeslotsPerHour:4,buttons:true,buttonText:{today:"today",lastWeek:"&nbsp;&lt;&nbsp;",nextWeek:"&nbsp;&gt;&nbsp;"},scrollToHourMillis:500,allowCalEventOverlap:false,overlapEventsSeparate:false,readonly:false,draggable:function(e,d){return true;
},resizable:function(e,d){return true;},eventClick:function(){},eventRender:function(e,d){return d;
},eventAfterRender:function(e,d){return d;},eventDrag:function(e,d){},eventDrop:function(e,d){},eventResize:function(e,d){},eventNew:function(e,d){},eventMouseover:function(e,d){},eventMouseout:function(e,d){},calendarBeforeLoad:function(d){},calendarAfterLoad:function(d){},noEvents:function(){},shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longMonths:["January","February","March","April","May","June","July","August","September","October","November","December"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longDays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}});
var a=86400000;var b=a*7;$sd.weekCalendar=function(){return{parseISO8601:function(g,e){var h="([0-9]{4})(-([0-9]{2})(-([0-9]{2})(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
var j=g.match(new RegExp(h));if(!j){return null;}var i=0;var f=new Date(j[1],0,1);
if(j[3]){f.setMonth(j[3]-1);}if(j[5]){f.setDate(j[5]);}if(j[7]){f.setHours(j[7]);
}if(j[8]){f.setMinutes(j[8]);}if(j[10]){f.setSeconds(j[10]);}if(j[12]){f.setMilliseconds(Number("0."+j[12])*1000);
}if(!e){if(j[14]){i=(Number(j[16])*60)+Number(j[17]);i*=((j[15]=="-")?1:-1);}i-=f.getTimezoneOffset();
}return new Date(Number(f)+(i*60*1000));}};}();})(jQuery);var availabillityNotice=$sd("");
var efficientMarker=$sd('<div class="efficient">Express</div>');var header=$sd('<div class="calendar-header"><h3>Timed Delivery</h3></div>');
var key=$sd('<tr><td class="key" colspan="7"><div class="key-container"><div class="efficient key-colour"></div><div class="key-description"> - Efficient for us, cheaper for you, better for the envrionment... Everyone\'s a winner!</div></div></td></tr>');
var readOnlyNotice=$sd('<div class="readOnlyNotice"><p>This is a guide of our available delivery slots.  You will actually make the selection at delivery options.</p></div>');
sdg.calculateHeight=function(d,b){var f=1;var c=new Array();for(a=0;a<b.length;a++){c.push(""+b[a].start.getDate()+"."+(b[a].start.getMonth()+1)+"");
}var e={},a=c.length;while(a--){thisCount=e[c[a]];e[c[a]]=thisCount?thisCount+1:1;
}for(a=0;a<c.length;a++){if(e[c[a]]>f){f=e[c[a]];}}height=(40*f)+6;return height;
};sdg.preCalendarLoad=function(a){$sd("#"+a.attr("id")+" .day-column-header").css({"background-color":"",color:""});
$sd("#"+a.attr("id")+" .day-column").css({"background-color":"",color:""});};sdg.updateDateRange=function(a){firstDay=$sd("#"+a.attr("id")+" .day-1").clone();
lastDay=$sd("#"+a.attr("id")+" .day-7").clone();dateRangeNotice=$sd("#"+a.attr("id")+" .date-range");
dateRangeNotice.html(firstDay.html()+" - "+lastDay.html());return;};sdg.preSelectSlot=function(d,e,c,b,a){if(!d.hasClass("readonly")&&($sd("#selected_slot_"+b).val()!=""&&$sd("#selected_slot_"+b).val()!=null)){tb_show("Reserve diary slot","#TB_inline?height="+$sd("#unreserveNotification").height()+"&width=490&inlineId=unreserveNotification&modal=true");
$sd("#btnCancelReserveSlot").live("click",function(){tb_remove();return false;});
$sd("#btnContinueReserveSlot").live("click",function(){tb_remove();sdg.selectSlot(d,e,c,a);
return false;});}else{sdg.selectSlot(d,e,c,a);return false;}};sdg.selectSlot=function(d,e,c,b,a){if(!d.hasClass("readonly")){$sd("#twoManCommerceId").val(a);
$sd("#selectedBookingId").val(e.id);$sd("#selectedIndex").val(b);$sd("#twoManCommerceItemIndex").val(b);
$sd("#"+d.attr("id")+" .cal-event").css({"background-color":"","border-color":""});
c.css({"background-color":"#FFFFBF","border-color":"#9B9B9B"});c.find("input:radio").attr("checked","checked");
d.siblings(".selected_slot").val(e.id);$sd("#reserveDiarySlot").click();}return;};
sdg.modifyCalendar=function(b){$sd("#"+b.attr("id")+" .time-column-header").remove();
$sd("#"+b.attr("id")+" .grid-timeslot-header").remove();$sd("#"+b.attr("id")+" .time-slot-wrapper").parent().parent().remove();
$sd("#"+b.attr("id")+" .scrollbar-shim").remove();$sd("#"+b.attr("id")+" button.today").remove();
var a=$sd("#"+b.attr("id")+" .calendar-nav");$sd("#"+b.attr("id")+" .calendar-scrollable-grid").after(a);
$sd("#"+b.attr("id")+" button.prev").text("Previous 7 days");$sd("#"+b.attr("id")+" button.next").text("Next 7 days");
if(($sd("#"+b.attr("id")).siblings(".week_number").val())<=0){$sd("button.prev").css({visibility:"hidden"});
}$sd("#"+b.attr("id")+" button.next").bind("click",(function(c){weekNumber=$sd("#"+b.attr("id")).siblings(".week_number").val();
if(weekNumber<2){currentWeekNumber=parseInt(weekNumber);nextWeekNumber=currentWeekNumber+1;
$sd("#"+b.attr("id")).siblings(".week_number").val(nextWeekNumber);sdg.updateNavigation(b);
}}));$sd("#"+b.attr("id")+" button.prev").bind("click",(function(c){weekNumber=$sd("#"+b.attr("id")).siblings(".week_number").val();
if(weekNumber>0){currentWeekNumber=parseInt(weekNumber);prevWeekNumber=currentWeekNumber-1;
$sd("#"+b.attr("id")).siblings(".week_number").val(prevWeekNumber);sdg.updateNavigation(b);
}}));return;};sdg.postSlotLoad=function(b,c,a){a.parent().parent().css({"background-color":"#FFFFFF"});
subjectClasses=a.parent().parent().attr("class").split(" ");targetClass=subjectClasses[1];
$sd("#"+b.attr("id")+" .week-calendar-header ."+targetClass).css({"background-color":"#FFFFFF","background-image":"none",color:"#000"});
if(!b.hasClass("readonly")){eventSlotWrapper=$sd('<div class="cal-event-wrapper-shadow"></div>');
targetInputElement=a.find("input:radio");a.children(".title").wrapInner('<label for="'+targetInputElement.attr("id")+'"></label>');
}else{eventSlotWrapper=$sd('<div class="cal-event-wrapper"></div>');}a.wrap(eventSlotWrapper);
return;};sdg.preSlotLoad=function(e,f,d,b,a,c){d.children(".time").remove();if(!e.hasClass("readonly")){if(f.id==c){radioButton=$sd('<input class="field-timeslot" type="radio" checked="checked" name="selected_time_slot'+b+'" id="selected_time_slot_'+f.id+'" value="'+f.id+'" />');
}else{radioButton=$sd('<input class="field-timeslot" type="radio" name="selected_time_slot'+b+'" id="selected_time_slot_'+f.id+'" value="'+f.id+'" />');
}radioButtonWrapper=$sd('<div class="selected-time-wrapper"></div>');radioButton.bind("click",function(){sdg.selectSlot(e,f,d,b,a);
});radioButtonWrapper.append(radioButton);d.prepend(radioButtonWrapper);if(e.siblings(".selected_slot").val()==f.id){sdg.selectSlot(e,f,d,b,a);
}}if(f.efficient){d.prepend(efficientMarker.clone());}return;};sdg.updateNavigation=function(a){weekNumber=$sd("#"+a.attr("id")).siblings(".week_number").val();
if(weekNumber>=2){$sd("#"+a.attr("id")+" button.next").css({visibility:"hidden"});
}else{$sd("#"+a.attr("id")+" button.next").css({visibility:"visible"});}if(weekNumber<=0){$sd("#"+a.attr("id")+" button.prev").css({visibility:"hidden"});
}else{$sd("#"+a.attr("id")+" button.prev").css({visibility:"visible"});}return;};
sdg.submitAjaxFormLoadCalendarData=function(a){$sd("#calendar-column0").html('<div class="loading"><p class="loading">Loading real time calendar availability</p></div>');
$sd("#calendar-column0").addClass("calendar-column calendarColumnLoading");sdg.submitAjaxForm({dataType:"json",trigger:$sd(a),error:function(d,b,c){alert("error:"+c+" status:"+b);
},success:function(b){$sd("#calendar-column0").css({border:"none",height:"auto"});
sdg.displayCalendar(b,0,0);}});return false;};sdg.loadDeliveryTypeOptions=function(commerceItemIndex){$sd.ajax({url:"/json/checkout/checkoutDiarySlots.jsp",cache:false,datatype:"json",data:"",success:function(data){eval("var data = "+data);
sdg.displayCalendar(data,commerceItemId,0);}});};sdg.displayCalendar=function(data,commerceItemId,index){var html=eval("data.twoManCommerceItem"+index+".calendarContainer"+index);
sdg.checkForResponseError(data);$sd("#calendar-column"+index).html(html).show();eval("sdg.loadCalendar"+index+"(data)");
if(commerceItemId==0){$sd("#closeCalendar").live("click",function(event){event.preventDefault();
tb_remove();});}return false;};
