WeekView.min.js 25 KB

1
  1. MWF.require("MWF.widget.Calendar",null,false);MWF.xApplication.Meeting.WeekView=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",date:""},initialize:function(t,e,i){this.setOptions(i);this.path="/x_component_Meeting/$WeekView/";this.cssPath="/x_component_Meeting/$WeekView/"+this.options.style+"/css.wcss";this._loadCss();this.app=e;this.container=$(t);this.weekBegin=this.app.meetingConfig.weekBegin||"0";this.load()},load:function(){this.node=new Element("div",{styles:this.css.node}).inject(this.container);this.resetNodeSize();this.app.addEvent("resize",this.resetNodeSize.bind(this));this.loadCalendar()},resetNodeSize:function(){if(this.app.inContainer)return;var t=this.container.getSize();var e=t.y-60;this.node.setStyle("height",""+e+"px");this.node.setStyle("margin-top","60px");var i=this.app.sideBar?this.app.sideBar.getSize():{x:0,y:0};this.node.setStyle("width",""+(t.x-i.x)+"px");this.node.setStyle("margin-right",""+i.x+"px")},loadCalendar:function(){var t="";if(this.options.date){t=Date.parse(this.options.date)}else{t=new Date}this.currentWeek=this.getWeekNumber(t);this.calendar=new MWF.xApplication.Meeting.WeekView.Calendar(this,t)},hide:function(){var t=new Fx.Morph(this.node,{duration:"300",transition:Fx.Transitions.Expo.easeOut});t.start({opacity:0}).chain(function(){this.node.setStyle("display","none")}.bind(this))},show:function(){this.node.setStyles(this.css.node);if(this.app.inContainer){this.node.setStyles({opacity:1,position:"static",width:"auto"})}else{var t=new Fx.Morph(this.node,{duration:"800",transition:Fx.Transitions.Expo.easeOut});this.app.fireAppEvent("resize");t.start({opacity:1,left:"0px"}).chain(function(){this.node.setStyles({position:"static",width:"auto"})}.bind(this))}},reload:function(){if(this.calendar)this.calendar.reLoadCalendar()},recordStatus:function(){var t="";if(this.calendar)t=this.calendar.baseDate;return{date:t.toString()}},destroy:function(){if(this.calendar){this.calendar.destroy()}this.node.destroy()},getWeekNumber:function(t){var e=t.clone();var i=(7+t.getDay()-parseInt(this.weekBegin))%7;e.setDate(e.getDate()-i+3);var s=e.valueOf();e.setMonth(0,1);if(e.getDay()!=4){e.setMonth(0,1+(4-e.getDay()+7)%7)}return 1+Math.ceil((s-e)/6048e5)}});MWF.xApplication.Meeting.WeekView.Calendar=new Class({Implements:[Events],initialize:function(t,e){this.view=t;this.css=this.view.css;this.container=this.view.node;this.app=this.view.app;this.weekBegin=this.app.meetingConfig.weekBegin||"0";this.baseDate=e||new Date;this.today=new Date;this.days={};this.load()},load:function(){this.date=this.getWeekBeginDate(this.baseDate);this.titleNode=new Element("div",{styles:this.css.calendarTitleNode}).inject(this.container);this.scrollNode=new Element("div",{styles:this.app.inContainer?this.css.scrollNode_inContainer:this.css.scrollNode}).inject(this.container);this.contentWarpNode=new Element("div",{styles:this.css.contentWarpNode}).inject(this.scrollNode);this.contentContainerNode=new Element("div",{styles:this.css.contentContainerNode}).inject(this.contentWarpNode);this.bodyNode=new Element("div",{styles:this.css.contentNode}).inject(this.contentContainerNode);this.setTitleNode();this.listRoom(function(){this.setBodyNode()}.bind(this));this.resetBodySize();this.app.addEvent("resize",this.resetBodySize.bind(this))},getWeekBeginDate:function(t){var e=t.clone();var i=(7+t.getDay()-parseInt(this.weekBegin))%7;return e.decrement("day",i)},resetBodySize:function(){if(this.app.inContainer)return;var t=this.container.getSize();var e=this.titleNode.getSize();var i=t.y-e.y;this.scrollNode.setStyle("height",""+i+"px");if(this.contentWarpNode){this.contentWarpNode.setStyles({width:t.x-40+"px"})}},setTitleNode:function(){this.prevWeekNode=new Element("div",{styles:this.css.calendarPrevWeekNode}).inject(this.titleNode);var t=this.baseDate.format(this.app.lp.dateFormatMonth)+",第"+this.view.getWeekNumber(this.baseDate)+"周";this.titleTextNode=new Element("div",{styles:this.css.calendarTitleTextNode,text:t}).inject(this.titleNode);this.nextWeekNode=new Element("div",{styles:this.css.calendarNextWeekNode}).inject(this.titleNode);this.prevWeekNode.addEvents({mouseover:function(){this.prevWeekNode.setStyles(this.css.calendarPrevWeekNode_over)}.bind(this),mouseout:function(){this.prevWeekNode.setStyles(this.css.calendarPrevWeekNode)}.bind(this),mousedown:function(){this.prevWeekNode.setStyles(this.css.calendarPrevWeekNode_down)}.bind(this),mouseup:function(){this.prevWeekNode.setStyles(this.css.calendarPrevWeekNode_over)}.bind(this),click:function(){this.changeWeekPrev()}.bind(this)});this.nextWeekNode.addEvents({mouseover:function(){this.nextWeekNode.setStyles(this.css.calendarNextWeekNode_over)}.bind(this),mouseout:function(){this.nextWeekNode.setStyles(this.css.calendarNextWeekNode)}.bind(this),mousedown:function(){this.nextWeekNode.setStyles(this.css.calendarNextWeekNode_down)}.bind(this),mouseup:function(){this.nextWeekNode.setStyles(this.css.calendarNextWeekNode_over)}.bind(this),click:function(){this.changeWeekNext()}.bind(this)});this.titleTextNode.addEvents({mouseover:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode_over)}.bind(this),mouseout:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode)}.bind(this),mousedown:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode_down)}.bind(this),mouseup:function(){this.titleTextNode.setStyles(this.css.calendarTitleTextNode_over)}.bind(this)});this.createWeekSelector()},changeWeekPrev:function(){this.date.decrement("week",1);this.baseDate=this.date;var t=this.baseDate.format(this.app.lp.dateFormatMonth)+",第"+this.view.getWeekNumber(this.baseDate)+"周";this.titleTextNode.set("text",t);this.reLoadCalendar()},changeWeekNext:function(){this.date.increment("week",1);this.baseDate=this.date;var t=this.baseDate.format(this.app.lp.dateFormatMonth)+",第"+this.view.getWeekNumber(this.baseDate)+"周";this.titleTextNode.set("text",t);this.reLoadCalendar()},changeWeekSelect:function(){if(!this.monthSelector)this.createWeekSelector()},createWeekSelector:function(){this.weekCalendar=new MWF.xApplication.Meeting.WeekView.WeekCalendar(this.titleTextNode,{style:"meeting_blue",weekBegin:this.weekBegin,target:this.node,baseDate:this.baseDate,onInit:function(){this.options.dayPath=this.options.path+this.options.style+"/day_week.html"},onQueryComplate:function(t,e,i){var s=new Date.parse(e);this.changeWeekTo(s)}.bind(this)})},changeWeekTo:function(t){this.baseDate=t;this.date=this.getWeekBeginDate(t);var e=this.baseDate.format(this.app.lp.dateFormatMonth)+",第"+this.view.getWeekNumber(this.baseDate)+"周";this.titleTextNode.set("text",e);this.reLoadCalendar()},listRoom:function(e){this.app.actions.listBuilding(function(t){this.bulidingData=t.data;if(e)e()}.bind(this))},setBodyNode:function(){this.roomTooltips=[];this.roomTrMap={};this.calendarTable=new Element("table",{styles:this.css.calendarTable,height:"100%",border:"0",cellPadding:"0",cellSpacing:"0"}).inject(this.bodyNode);this.loadTableHead();this.bulidingData.each(function(o){o.roomList.each(function(t){var e=new Element("tr").inject(this.calendarTable);var i=new Element("td",{tdType:"room"}).inject(e);var s=new Element("div",{styles:this.css.calendarTableCell_room}).inject(i);i.store("room",t);for(var n=0;n<7;n++){new Element("td",{tdType:"meeting",room:t.id,index:n+1}).inject(e)}this.roomTrMap[t.id]=e;this.rooms=this.rooms||{};this.rooms[t.id]=new MWF.xApplication.Meeting.WeekView.Room(this,s,t,o.name);this.roomTooltips.push(new MWF.xApplication.Meeting.RoomTooltip(this.app.content,s,this.app,t,{axis:"x",hiddenDelay:300,displayDelay:300}))}.bind(this))}.bind(this));this.loadCalendar()},loadTableHead:function(){var s=this.date.clone();var n=new Date;if(!this.tableHead){var t=this.tableHead=new Element("tr",{styles:this.css.calendarTableTitleTr}).inject(this.calendarTable);new Element("th",{styles:this.css.calendarTableTh,text:this.app.lp.room}).inject(t);for(var e=0;e<7;e++){var i=(e+parseInt(this.weekBegin))%7;var o=new Element("th",{styles:s<n?this.css.calendarTableTh_pre:this.css.calendarTableTh,text:this.app.lp.weeks.arr[i]+"("+s.format("%m.%d")+")"}).inject(t);s.increment("day",1)}}else{this.tableHead.getElements("th").each(function(t,e){if(e==0)return;t.setStyles(s<n?this.css.calendarTableTh_pre:this.css.calendarTableTh);var i=(e-1+parseInt(this.weekBegin))%7;t.set("text",this.app.lp.weeks.arr[i]+"("+s.format("%m.%d")+")");s.increment("day",1)}.bind(this))}},reLoadCalendar:function(){for(var t in this.days){this.days[t].destroy();delete this.days[t]}this.calendarTable.getElements("td[tdType='meeting']").each(function(t){t.empty()}.bind(this));this.loadTableHead();this.loadCalendar()},loadCalendar:function(){var t=this.date.clone();for(var e=1;e<8;e++){this.loadDay(e,t);t.increment()}},loadDay:function(t,e){var i="thisWeek";var s=e.get("month");var n=e.get("year");var o=e.get("date");var a=this.date.get("month");var h=this.date.get("year");var d=this.today.get("month");var l=this.today.get("year");var r=this.today.get("date");if(s==d&&n==l&&o==r){i="today"}else{i="thisWeek"}var c=e.format("%Y%m%d");this.days[c]=new MWF.xApplication.Meeting.WeekView.Calendar.Day(t,e,this,i)},reload:function(){this.view.reload()},destroy:function(){for(var t in this.days){this.days[t].destroy();delete this.days[t]}for(var t in this.rooms){this.rooms[t].destroy()}this.roomTooltips.each(function(t){t.destroy()}.bind(this));this.calendarTable.getElements("td[tdType='meeting']").each(function(t){t.empty()}.bind(this));this.container.empty()}});MWF.xApplication.Meeting.WeekView.Room=new Class({Implements:[Events],initialize:function(t,e,i,s){this.data=i;this.view=t;this.css=this.view.css;this.container=e;this.app=this.view.app;this.meetings=[];this.buildingName=s;this.enable=this.data.available;this.load()},load:function(){this.node=new Element("div.roomItemNode",{styles:this.css.roomItemNode}).inject(this.container);this.node.setStyle("min-height",""+this.view.roomNodeHeight+"px");this.node.addEvents({mouseover:function(){this.node.setStyles(this.css.roomItemNode_over)}.bind(this),mouseout:function(){this.node.setStyles(this.css.roomItemNode)}.bind(this)});this.titleNode=new Element("div.titleNode",{styles:this.css.roomItemTitleNode}).inject(this.node);this.titleNode.addEvents({click:function(){this.openRoom()}.bind(this)});if(this.enable){this.titleNode.addEvents({mouseenter:function(){this.titleTextNode.setStyles(this.css.roomItemTitleTextNode_over)}.bind(this),mouseleave:function(){this.titleTextNode.setStyles(this.css.roomItemTitleTextNode)}.bind(this)})}this.topNode=new Element("div.topNode",{styles:this.css.roomItemTitleTopNode}).inject(this.titleNode);this.descriptNode=new Element("div.roomItemDescriptNode",{styles:this.css.roomItemDescriptNode}).inject(this.titleNode);if(this.data.capacity){this.titleCountNode=new Element("div.titleCountNode",{styles:this.enable?this.css.roomItemTitleCountNode:this.css.roomItemTitleCountNode_disable,text:this.data.capacity+this.app.lp.person}).inject(this.descriptNode)}if(this.data.roomNumber){new Element("div.titleCountNode",{styles:this.enable?this.css.roomItemTitleCountNode:this.css.roomItemTitleCountNode_disable,text:this.data.roomNumber}).inject(this.descriptNode)}if(this.buildingName){this.buildingTextNode=new Element("div.buildingTextNode",{styles:this.enable?this.css.roomItemBuildingTextNode:this.css.roomItemBuildingTextNode_disable,text:this.buildingName}).inject(this.titleNode)}this.titleTextNode=new Element("div.roomItemTitleTextNode",{styles:this.enable?this.css.roomItemTitleTextNode:this.css.roomItemTitleTextNode_disable,text:this.data.name}).inject(this.topNode)},loadActions:function(){if(MWF.AC.isMeetingAdministrator()){this.editAction=new Element("div",{styles:this.css.roomAction_edit,events:{mouseover:function(){this.editAction.setStyles(this.css.roomAction_edit_over)}.bind(this),mouseout:function(){this.editAction.setStyles(this.css.roomAction_edit)}.bind(this),click:function(t){this.editRoom();t.stopPropagation()}.bind(this)}}).inject(this.actionsNode);this.removeAction=new Element("div",{styles:this.css.roomAction_remove,events:{mouseover:function(){this.removeAction.setStyles(this.css.roomAction_remove_over)}.bind(this),mouseout:function(){this.removeAction.setStyles(this.css.roomAction_remove)}.bind(this),click:function(t){this.removeRoom(t);t.stopPropagation()}.bind(this)}}).inject(this.actionsNode)}if(this.enable){this.createMeetingAction=new Element("div",{tltile:this.app.lp.addMeeting,styles:this.css.createMeetingAction,events:{mouseover:function(){this.createMeetingAction.setStyles(this.css.createMeetingAction_over)}.bind(this),mouseout:function(){this.createMeetingAction.setStyles(this.css.createMeetingAction)}.bind(this),click:function(t){this.app.addMeeting(this.view.date,this.view.hours,this.view.minutes,this.data.id);t.stopPropagation()}.bind(this)}}).inject(this.actionsNode)}},editRoom:function(){var t=new MWF.xApplication.Meeting.RoomForm(this.app,this.data,{},{app:this.app});t.view=this;t.edit()},openRoom:function(){var t=new MWF.xApplication.Meeting.RoomForm(this.app,this.data,{},{app:this.app});t.view=this;t.open()},reload:function(){this.view.reload(this.view.date,this.view.hours,this.view.minutes)},removeRoom:function(t){var e=this.app.lp.delete_room;e=e.replace(/{name}/g,this.data.name);var i=this;this.app.confirm("warn",t,this.app.lp.delete_building_title,e,300,120,function(){i.remove();this.close()},function(){this.close()})},remove:function(){var t=this.view;this.app.actions.deleteRoom(this.data.id,function(){t.reload()}.bind(this))},resetHeight:function(){this.node.setStyle("min-height",""+this.view.roomNodeHeight+"px");if(this.noMeetingNode){this.noMeetingNode.setStyle("min-height",""+(this.view.roomNodeHeight-170)+"px");this.noMeetingNode.setStyle("line-height",""+(this.view.roomNodeHeight-170)+"px")}},destroy:function(){if(this.calendar){this.calendar.container.destroy()}if(this.tooltip){this.tooltip.destroy()}this.meetings.each(function(t){t.destroy()});this.node.destroy();MWF.release(this)}});MWF.xApplication.Meeting.WeekView.Calendar.Day=new Class({Implements:[Events],initialize:function(t,e,i,s){this.index=t;this.calendar=i;this.view=this.calendar.view;this.css=this.calendar.css;this.app=this.calendar.app;this.date=e.clone();this.key=this.date.format(this.app.lp.dateFormat);this.type=s;this.meetings=[];this.load()},load:function(){this.color="#666";this.day=this.date.getDate();this.month=this.date.getMonth();this.year=this.date.getYear();this.loadMeetings();this.roomMeetingObject={};this.containerObject={};this.calendar.calendarTable.getElements("td[index='"+this.index+"']").each(function(t){this.containerObject[t.get("room")]=t}.bind(this))},loadEmpty:function(){for(var t in this.containerObject){var e=this.containerObject[t];if(!this.roomMeetingObject[t]){var i=new Element("div",{styles:this.css["calendarTableCell_"+this.type]}).inject(e);var s=new Element("div",{styles:this.css.dayContentNode}).inject(i);var n=new Element("div",{styles:{"line-height":"60px","font-size":"14px","text-align":"center",color:this.color,padding:"20px 10px"}}).inject(s);n.set("text",this.app.lp.noMeeting)}}},loadMeetings:function(){this.app.isMeetingViewer(function(t){this._loadMeetings(t)}.bind(this))},_loadMeetings:function(t){var e=this.date.getFullYear();var i=this.date.getMonth()+1;var s=this.date.getDate();this.app.actions[t?"listMeetingDayAll":"listMeetingDay"](e,i,s,function(t){var e=t.data.length;t.data.each(function(t,e){if(!this.roomMeetingObject[t.room]){this.roomMeetingObject[t.room]=[]}this.roomMeetingObject[t.room].push(t)}.bind(this));this.loadEmpty();this.loadRoomMeeting()}.bind(this))},loadRoomMeeting:function(){var s=0;var n="";var o="";for(var t in this.roomMeetingObject){var a=this.containerObject[t];var h=new Element("div",{styles:this.css["calendarTableCell_"+this.type]}).inject(a);var e=new Element("div",{styles:this.css["dayTitle_"+this.type]}).inject(h);var i=new Element("div",{styles:this.css["dayTitleDay_"+this.type],text:this.day}).inject(e);if((new Date).diff(this.date)>=0){e.set("title",this.app.lp.titleNode);e.addEvent("click",function(){this.app.addMeeting(this.date)}.bind(this))}var d=new Element("div",{styles:this.css.dayContentNode}).inject(h);var s=0;var l=0;var r=this.roomMeetingObject[t].length;this.roomMeetingObject[t].each(function(t,e){if(!t.myReject){s++;if(s==3){}if(s==1){n=t.status;if(t.myWaitAccept)n="myWaitAccept"}if(s+l==r){o=t.status;if(t.myWaitAccept)o="myWaitAccept"}var i=new MWF.xApplication.Meeting.WeekView.Calendar.Day.Meeting(this,d,t,s);i.parentNode=h;i.parentTd=a;this.meetings.push(i)}else{l++}}.bind(this));if(s==0){}else{var c=new Element("div",{styles:this.css["dayTitleInfor_"+this.type]}).inject(e);if(this.app.isViewAvailable("toDay")){c.addEvent("click",function(t){this.app.toDay(this.date);t.stopPropagation()}.bind(this))}else{c.setStyle("cursor","default")}c.set("text",""+s+this.app.lp.countMeetings+"");if(s>3){h.addEvents({mouseenter:function(){this.obj.expend(this.td,this.node)}.bind({obj:this,td:a,node:h}),mouseleave:function(){this.obj.collapseReady=true;this.obj.collapse(this.td,this.node)}.bind({obj:this,td:a,node:h})})}else{c.setStyle("color",this.type=="otherMonth"?"#ccc":"#999")}if(n){switch(n){case"wait":e.setStyles({"border-left":"6px solid #4990E2"});break;case"processing":e.setStyles({"border-left":"6px solid #66CC7F"});break;case"completed":e.setStyles({"border-left":"6px solid #ccc"});break;case"myWaitAccept":e.setStyles({"border-left":"6px solid #F6A623"});break}}if(o){var p=0;if(s>=3){p=10}else{p=100-s*30}var m=new Element("div",{styles:{height:""+p+"px"}}).inject(h);switch(o){case"wait":m.setStyles({"border-left":"6px solid #4990E2"});break;case"processing":m.setStyles({"border-left":"6px solid #66CC7F"});break;case"completed":m.setStyles({"border-left":"6px solid #ccc"});break;case"myWaitAccept":m.setStyles({"border-left":"6px solid #F6A623"});break}}}}},expend:function(t,e){this.oSize=e.getSize();t.setStyles({position:"relative"});this.tempNode=new Element("div",{styles:{width:e.getSize().x+"px",height:"1px",margin:"7px"}}).inject(t);e.setStyles({height:e.getScrollSize().y+"px",width:e.getSize().x+"px",position:"absolute",top:"0px",left:"0px","box-shadow":"0 0 8px 0 rgba(0,0,0,0.25)"});var i=e.getCoordinates();var s=this.calendar.contentWarpNode;var n=s.getCoordinates();if(i.bottom>n.bottom){this.contentHeight=n.height;s.setStyle("height",i.bottom-n.top+"px")}this.isCollapse=false},collapse:function(t,e){if(!this.collapseDisable&&this.collapseReady){t.setStyles({position:"static"});if(this.tempNode)this.tempNode.destroy();e.setStyles({height:"140px",width:"auto",position:"static","box-shadow":"none"});if(this.contentHeight){var i=this.calendar.contentWarpNode;i.setStyle("height",this.contentHeight+"px");this.contentHeight=null}this.isCollapse=true}},destroy:function(){this.meetings.each(function(t){t.destroy()}.bind(this));this.meetings=[];if(this.titleNode){this.titleNode.destroy();this.titleNode=null}this.titleDayNode=null;this.titleInforNode=null;delete this.calendar.days[this.key];MWF.release(this)},reload:function(){this.view.reload()}});MWF.xApplication.Meeting.WeekView.Calendar.Day.Meeting=new Class({initialize:function(t,e,i,s){this.day=t;this.css=this.day.css;this.view=this.day.view;this.app=this.day.app;this.container=e;this.data=i;this.index=s;this.load()},load:function(){this.nodeStyles=this.day.type=="today"?this.css.meetingNode_today:this.css.meetingNode;this.node=new Element("div",{styles:this.nodeStyles}).inject(this.container);this.iconNode=new Element("div",{styles:this.css.meetingIconNode}).inject(this.node);this.timeNode=new Element("div",{styles:this.css.meetingTimeNode}).inject(this.node);this.textNode=new Element("div",{styles:this.css.meetingTextNode}).inject(this.node);var t=Date.parse(this.data.startTime).format("%H:%M");this.timeNode.set("text",t);this.textNode.set("text",this.data.subject);switch(this.data.status){case"wait":this.node.setStyles({"border-left":"6px solid #4990E2"});break;case"processing":this.node.setStyles({"border-left":"6px solid #66CC7F"});break;case"completed":this.node.setStyles({"border-left":"6px solid #ccc"});break}if(this.data.myWaitAccept){this.node.setStyles({"border-left":"6px solid #F6A623"})}this.node.addEvents({mouseenter:function(){this.day.collapseReady=false;this.node.setStyles(this.css.meetingNode_over)}.bind(this),mouseleave:function(){this.node.setStyles(this.nodeStyles)}.bind(this),click:function(){this.openMeeting()}.bind(this)});this.loadTooltip()},loadTooltip:function(){this.tooltip=new MWF.xApplication.Meeting.MeetingTooltip(this.app.content,this.node,this.app,this.data,{axis:"x",hiddenDelay:300,displayDelay:300,onShow:function(){this.day.collapseDisable=true}.bind(this),onQueryCreate:function(){this.day.collapseDisable=true}.bind(this),onHide:function(){this.day.collapseDisable=false;this.day.collapse(this.parentTd,this.parentNode)}.bind(this)})},showTooltip:function(){if(this.tooltip){this.tooltip.load()}else{this.tooltip=new MWF.xApplication.Meeting.MeetingTooltip(this.app.content,this.node,this.app,this.data,{axis:"x",delay:150});this.tooltip.load()}},openMeeting:function(){this.form=new MWF.xApplication.Meeting.MeetingForm(this,this.data,{},{app:this.app});this.form.view=this;this.form.open()},destroy:function(){if(this.tooltip)this.tooltip.destroy();this.node.destroy();MWF.release(this)},reload:function(){this.view.reload()}});MWF.xApplication.Meeting.WeekView.WeekCalendar=new Class({Extends:MWF.widget.Calendar,initialize:function(t,e){this.options.weekBegin="0";Locale.use("zh-CHS");this.options.defaultTime=""+this.options.baseDate.getHours()+":"+this.options.baseDate.getMinutes()+":"+this.options.baseDate.getSeconds();this.setOptions(e);this.path=MWF.defaultPath+"/widget/$Calendar/";this.cssPath=MWF.defaultPath+"/widget/$Calendar/"+this.options.style+"/css.wcss";this._loadCss();if(!this.options.format){if(this.options.isTime){if(this.options.timeOnly){this.options.format="%H:%M"}else{this.options.format=Locale.get("Date").shortDate+" "+"%H:%M"}}else{this.options.format=Locale.get("Date").shortDate}}this.options.containerPath=this.options.path+this.options.style+"/container.html";this.options.dayPath=this.options.path+this.options.style+"/day_week.html";this.options.monthPath=this.options.path+this.options.style+"/month.html";this.options.yearPath=this.options.path+this.options.style+"/year.html";this.options.timePath=this.options.path+this.options.style+"/time.html";this.today=new Date;this.currentView=this.options.defaultView;this.node=$(t);this.visible=false;this.container=this.createContainer();this.container.inject(this.options.target||$(document.body));this.contentTable=this.createContentTable();this.contentTable.inject(this.contentDateNode);this.addEvents();this.container.set({styles:{display:"none",opacity:1}});this.fireEvent("init")},showDay:function(t,e){this._setDayTitle(null,t,e);this._setDayWeekTitleTh();this._setDayDate(null,t,e)},_setDayTitle:function(t,e,i){var s=e!=undefined?e:this.options.baseDate.getFullYear();var n=i!=undefined?i:this.options.baseDate.getMonth();n++;var o=s+"年"+n+"月";var a=t||this.currentTextNode;a.set("text",o);a.store("year",s);a.store("month",n)},_setDayWeekTitleTh:function(t){var e=t||this.contentTable;var i=e.getElement("thead");var s=i.getElements("th");if(this.css.calendarDaysContentTh)s.setStyles(this.css.calendarDaysContentTh);var n=MWF.LP.widget.days_abbr;s.each(function(t,e){if(e==0){t.set("text","周")}else{var i=(e-1+parseInt(this.options.weekBegin))%7;t.set("text",n[i])}}.bind(this));return s},_setDayDate:function(t,e,i){var s=t||this.contentTable;var n=this.options.baseDate;if(e!=undefined&&i!=undefined){n=new Date;n.setDate(1);n.setFullYear(e);n.setMonth(i)}var o=s.getElement("tbody");var a=o.getElements("td");var h=n.clone();h.setDate(1);var d=(7+h.getDay()-parseInt(this.options.weekBegin))%7+1;var l=h.clone();for(var r=d-1;r>=0;r--){if(r%8==0){var c=this.getWeekNumber(l);a[r].set("text",c);a[r].setStyles(this.css.week);a[r].store("weekValue",c.toString());a[r].store("dateValue",l.toString());r--;if(r<0)break}l.increment("day",-1);a[r].set("text",l.getDate());a[r].addClass("gray_"+this.options.style);a[r].setStyles(this.css["gray_"+this.options.style]);a[r].store("dateValue",l.toString())}for(var r=d;r<a.length;r++){if(r%8==0){var c=this.getWeekNumber(h);a[r].set("text",c);a[r].setStyles(this.css.week);a[r].store("weekValue",c.toString());a[r].store("dateValue",h.toString());r++;if(r>=a.length)break}a[r].set("text",h.getDate());if(h.toString()==this.options.baseDate.toString()){a[r].addClass("current_"+this.options.style);a[r].setStyles(this.css["current_"+this.options.style]);a[r].removeClass("gray_"+this.options.style);a[r].setStyle("border","1px solid #FFF")}else if(h.getMonth()!=n.getMonth()){a[r].addClass("gray_"+this.options.style);a[r].setStyles(this.css["gray_"+this.options.style]);a[r].removeClass("current_"+this.options.style);a[r].setStyle("border","1px solid #FFF")}else{a[r].setStyles(this.css["normal_"+this.options.style]);a[r].removeClass("current_"+this.options.style);a[r].removeClass("gray_"+this.options.style);a[r].setStyle("border","1px solid #FFF")}var p=h.clone();if(p.clearTime().toString()==this.today.clearTime().toString()){a[r].setStyles(this.css["today_"+this.options.style]);a[r].setStyle("border","0px solid #AAA")}a[r].store("dateValue",h.toString());h.increment("day",1)}},getWeekNumber:function(t){var e=t.clone();var i=(7+t.getDay()-parseInt(this.options.weekBegin))%7;e.setDate(e.getDate()-i+3);var s=e.valueOf();e.setMonth(0,1);if(e.getDay()!=4){e.setMonth(0,1+(4-e.getDay()+7)%7)}return 1+Math.ceil((s-e)/6048e5)}});