//>>built define("./GanttProjectItem ./GanttResourceItem ./GanttProjectControl ./GanttTaskControl ./GanttTaskItem ./TabMenu dijit/Tooltip dojo/_base/declare dojo/_base/array dojo/_base/lang dojo/date/locale dojo/request dojo/request/util dojo/on dojo/dom dojo/dom-class dojo/dom-construct dojo/dom-style dojo/dom-attr dojo/dom-geometry dojo/keys dojo/has dojo/_base/window dojo/json dojo/domReady!".split(" "),function(w,C,v,x,y,D,I,E,k,l,q,z,F,n,G,r,h,f,p,A,t,J,H,B){return E("dojox.gantt.GanttChart",[],{constructor:function(b, a){this.resourceChartHeight=void 0!==b.resourceChartHeight?b.resourceChartHeight:!1;this.withResource=void 0!==b.withResource?b.withResource:!0;this.correctError=void 0!==b.autoCorrectError?b.autoCorrectError:!1;this.isShowConMenu=this.isContentEditable=!b.readOnly;this.withTaskId=void 0!==b.withTaskId?b.withTaskId:!b.readOnly;this.animation=void 0!==b.animation?b.animation:!0;this.saveProgramPath=b.saveProgramPath||"saveGanttData.php";this.dataFilePath=b.dataFilePath||"gantt_default.json";this.contentHeight= b.height||400;this.contentWidth=b.width||600;this.content=G.byId(a);this.scrollBarWidth=18;this.panelTimeHeight=102;this.maxWidthTaskNames=this.maxWidthPanelNames=150;this.minWorkLength=8;this.heightTaskItem=12;this.heightTaskItemExtra=11;this.pixelsPerDay=24;this.hsPerDay=8;this.pixelsPerWorkHour=this.pixelsPerDay/this.hsPerDay;this.pixelsPerHour=this.pixelsPerDay/24;this.totalDays=this.countDays=0;this.startDate=null;this.contentDataHeight=this.initialPos=0;this.panelTimeExpandDelta=20;this.tabMenu= this.contentData=this.panelTime=this.panelNames=this.divTimeInfo=null;this.project=[];this.arrProjects=[];this.xmlLoader=null;this.isResizing=this.isMoving=!1;this.animationNodes=[];this.scale=1;this.tempDayInPixels=0;this.resource=null;this.months=q.getNames("months","wide");this._events=[]},getProject:function(b){return k.filter(this.arrProjects,function(a){return a.project.id==b},this)[0]},checkPosPreviousTask:function(b,a){var c=this.getWidthOnDuration(b.duration);b=this.getPosOnDate(b.startTime); a=this.getPosOnDate(a.startTime);return c+b<=a},correctPosPreviousTask:function(b,a,c){var d=new Date(b.startTime);d.setHours(d.getHours()+b.duration/this.hsPerDay*24);0a.startTime&&(a.startTime=new Date(b.startTime)),this.checkPosParentTask(b,a)||(a.duration=b.duration))},checkPosParentTaskInTree:function(b){for(var a=!1,c=0;cd.startTime)if(this.correctError)this.correctPosParentTask(b,d);else return!0;0=d+a},addProject:function(b){this.project.push(b)},deleteProject:function(b){var a=this.getProject(b);if(a){if(0=c||this.getProject(b))return!1;this.checkHeighPanelTasks();b=new w({id:b,name:a,startDate:c});this.project.push(b);b=new v(this,b);for(a=0;aa.startTime?1:0},sortProjStartDate:function(b,a){return b.startDatea.startDate?1:0},setStartTimeChild:function(b){k.forEach(b.cldTasks,function(a){a.startTime||(a.startTime=b.startTime);0!=a.cldTasks.length&&this.setStartTimeChild(a)},this)},createPanelTasks:function(){var b=h.create("div",{className:"ganttTaskPanel"}); f.set(b,{height:this.contentHeight-this.panelTimeHeight-this.scrollBarWidth+"px"});return b},refreshParams:function(b){this.pixelsPerDay=b;this.pixelsPerWorkHour=this.pixelsPerDay/this.hsPerDay;this.pixelsPerHour=this.pixelsPerDay/24},createPanelNamesTasksHeader:function(){var b=h.create("div",{className:"ganttPanelHeader"}),a=h.create("table",{cellPadding:"0px",border:"0px",cellSpacing:"0px",bgColor:"#FFFFFF",className:"ganttToolbar"},b),c=a.insertRow(a.rows.length),d=a.insertRow(a.rows.length), e=a.insertRow(a.rows.length);a.insertRow(a.rows.length);var a=h.create("td",{align:"center",vAlign:"middle",className:"ganttToolbarZoomIn"},c),g=l.hitch(this,function(){5<2*this.scale||(this.scale*=2,this.switchTeleMicroView(this.pixelsPerDay*this.scale))});this.zoomInClickEvent&&this.zoomInClickEvent.remove();this.zoomInClickEvent=n(a,"click",l.hitch(this,g));this.zoomInKeyEvent&&this.zoomInKeyEvent.remove();this.zoomInKeyEvent=n(a,"keydown",l.hitch(this,function(a){a.keyCode==t.ENTER&&g()}));p.set(a, "tabIndex",0);var c=h.create("td",{align:"center",vAlign:"middle",className:"ganttToolbarZoomOut"},c),m=l.hitch(this,function(){.2>.5*this.scale||(this.scale*=.5,this.switchTeleMicroView(this.pixelsPerDay*this.scale))});this.zoomOutClickEvent&&this.zoomOutClickEvent.remove();this.zoomOutClickEvent=n(c,"click",l.hitch(this,m));this.zoomOutKeyEvent&&this.zoomOutKeyEvent.remove();this.zoomOutKeyEvent=n(c,"keydown",l.hitch(this,function(a){a.keyCode==t.ENTER&&m()}));p.set(c,"tabIndex",0);var f=h.create("td", {align:"center",vAlign:"middle",className:"ganttToolbarMicro"},d);this.microClickEvent&&this.microClickEvent.remove();this.microClickEvent=n(f,"click",l.hitch(this,this.refresh,this.animation?15:1,0,2));this.microKeyEvent&&this.microKeyEvent.remove();this.microKeyEvent=n(f,"keydown",l.hitch(this,function(a){a.keyCode==t.ENTER&&(f.blur(),this.refresh(this.animation?15:1,0,2))}));p.set(f,"tabIndex",0);var u=h.create("td",{align:"center",vAlign:"middle",className:"ganttToolbarTele"},d);this.teleClickEvent&& this.teleClickEvent.remove();this.teleClickEvent=n(u,"click",l.hitch(this,this.refresh,this.animation?15:1,0,.5));this.teleKeyEvent&&this.teleKeyEvent.remove();this.teleKeyEvent=n(u,"keydown",l.hitch(this,function(a){a.keyCode==t.ENTER&&(u.blur(),this.refresh(this.animation?15:1,0,.5))}));p.set(u,"tabIndex",0);d=h.create("td",{align:"center",vAlign:"middle",className:"ganttToolbarSave"},e);this.saveClickEvent&&this.saveClickEvent.remove();this.saveClickEvent=n(d,"click",l.hitch(this,this.saveJSONData, ""));this.saveKeyEvent&&this.saveKeyEvent.remove();this.saveKeyEvent=n(d,"keydown",l.hitch(this,function(a){a.keyCode==t.ENTER&&this.saveJSONData("")}));p.set(d,"tabIndex",0);e=h.create("td",{align:"center",vAlign:"middle",className:"ganttToolbarLoad"},e);this.loadClickEvent&&this.loadClickEvent.remove();this.loadClickEvent=n(e,"click",l.hitch(this,this.loadJSONData,""));this.loadKeyEvent&&this.loadKeyEvent.remove();this.loadKeyEvent=n(e,"keydown",l.hitch(this,function(a){a.keyCode==t.ENTER&&this.loadJSONData("")})); p.set(e,"tabIndex",0);var q="Enlarge timeline;Shrink timeline;Zoom in time zone(microscope view);Zoom out time zone(telescope view);Save gantt data to json file;Load gantt data from json file".split(";");k.forEach([a,c,f,u,d,e],function(a,b){var c=q[b];b=function(){r.add(a,"ganttToolbarActionHover");dijit.showTooltip(c,a,["above","below"])};a.onmouseover=b;a.onfocus=b;b=function(){r.remove(a,"ganttToolbarActionHover");a&&dijit.hideTooltip(a)};a.onmouseout=b;a.onblur=b},this);return b},createPanelNamesTasks:function(){var b= h.create("div",{innerHTML:"\x26nbsp;",className:"ganttPanelNames"});f.set(b,{height:this.contentHeight-this.panelTimeHeight-this.scrollBarWidth+"px",width:this.maxWidthPanelNames+"px"});return b},createPanelTime:function(){var b=h.create("div",{className:"ganttPanelTime"}),a=h.create("table",{cellPadding:"0px",border:"0px",cellSpacing:"0px",bgColor:"#FFFFFF",className:"ganttTblTime"},b);this.totalDays=this.countDays;var c=a.insertRow(a.rows.length),d,e,g=0;e=d=(new Date(this.startDate)).getFullYear(); for(var m=0;m=c;c++)this.removeCell(a[c]);var d=Math.round((b+this.panelTimeExpandDelta)/this.pixelsPerDay);this.totalDays=d;var e,g,f=0;g=e=(new Date(this.startDate)).getFullYear();for(c=0;c=a?"ganttHourNumberAM":"ganttHourNumberPM")}},incHeightPanelTasks:function(b){var a=this.contentData.firstChild;a.style.height=parseInt(a.style.height)+ b+"px"},incHeightPanelNames:function(b){var a=this.panelNames.firstChild;a.style.height=parseInt(a.style.height)+b+"px"},checkPosition:function(){k.forEach(this.arrProjects,function(b){k.forEach(b.arrTasks,function(a){a.checkPosition()},this)},this)},checkHeighPanelTasks:function(){this.contentDataHeight+=this.heightTaskItemExtra+this.heightTaskItem;parseInt(this.contentData.firstChild.style.height)<=this.contentDataHeight&&(this.incHeightPanelTasks(this.heightTaskItem+this.heightTaskItemExtra),this.incHeightPanelNames(this.heightTaskItem+ this.heightTaskItemExtra))},sortTasksByStartTime:function(b){b.parentTasks.sort(this.sortTaskStartTime);for(var a=0;a=this.arrProjects.length||0>=this.arrProjects[0].arrTasks.length||(!b||a>b?(this.refreshController(), this.resource&&this.resource.refresh(),this.tempDayInPixels=0,this.panelNameHeadersCover&&f.set(this.panelNameHeadersCover,"display","none")):(0==this.tempDayInPixels&&(this.tempDayInPixels=this.pixelsPerDay),this.panelNameHeadersCover&&f.set(this.panelNameHeadersCover,"display",""),this.refreshParams(this.tempDayInPixels+this.tempDayInPixels*(c-1)*Math.pow(a/b,2)),k.forEach(this.arrProjects,function(a){k.forEach(a.arrTasks,function(a){a.refresh()},this);a.refresh()},this),setTimeout(l.hitch(this, function(){this.refresh(b,++a,c)}),15)))},switchTeleMicroView:function(b){for(var a=this.panelTime.firstChild.firstChild,c=0;5>c;c++)40b?f.set(a.rows[c],"display",2==c||4==c?"none":""):f.set(a.rows[c],"display",0==c||4==c?"none":"")},refreshController:function(){this.contentData.firstChild.style.width=Math.max(1200,this.pixelsPerDay*this.totalDays)+"px";this.panelTime.firstChild.style.width=this.pixelsPerDay*this.totalDays+"px";this.panelTime.firstChild.firstChild.style.width= this.pixelsPerDay*this.totalDays+"px";this.switchTeleMicroView(this.pixelsPerDay);k.forEach(this.panelTime.firstChild.firstChild.rows,function(b){k.forEach(b.childNodes,function(a){var b=parseInt(p.get(a,"colSpan")||1),d=l.trim(p.get(a,"innerHTMLData")||"");0this.pixelsPerDay*b?"":d):k.forEach(a.firstChild.rows[0].childNodes,function(a){var b=l.trim(p.get(a,"innerHTMLData")||"");p.set(a,"innerHTML",10=d.length&&k.forEach(a.firstChild.rows[0].childNodes,function(a){f.set(a,"width",this.pixelsPerDay*b/this.hsPerDay+"px")},this))},this)},this)},init:function(){this.startDate=this.getStartDate();f.set(this.content,{width:this.contentWidth+"px",height:this.contentHeight+"px"});this.tableControl=h.create("table",{cellPadding:"0",cellSpacing:"0",className:"ganttTabelControl"});var b=this.tableControl.insertRow(this.tableControl.rows.length);this.content.appendChild(this.tableControl); this.countDays=this.getCountDays();this.panelTime=h.create("div",{className:"ganttPanelTimeContainer"});f.set(this.panelTime,"height",this.panelTimeHeight+"px");this.panelTime.appendChild(this.createPanelTime());this.contentData=h.create("div",{className:"ganttContentDataContainer"});f.set(this.contentData,"height",this.contentHeight-this.panelTimeHeight+"px");this.contentData.appendChild(this.createPanelTasks());var a=h.create("td",{vAlign:"top"});this.panelNameHeaders=h.create("div",{className:"ganttPanelNameHeaders"}, a);f.set(this.panelNameHeaders,{height:this.panelTimeHeight+"px",width:this.maxWidthPanelNames+"px"});this.panelNameHeaders.appendChild(this.createPanelNamesTasksHeader());this.panelNames=h.create("div",{className:"ganttPanelNamesContainer"},a);this.panelNames.appendChild(this.createPanelNamesTasks());b.appendChild(a);var a=h.create("td",{vAlign:"top"}),c=h.create("div",{className:"ganttDivCell"});c.appendChild(this.panelTime);c.appendChild(this.contentData);a.appendChild(c);b.appendChild(a);f.set(this.panelNames, "height",this.contentHeight-this.panelTimeHeight-this.scrollBarWidth+"px");f.set(this.panelNames,"width",this.maxWidthPanelNames+"px");f.set(this.contentData,"width",this.contentWidth-this.maxWidthPanelNames+"px");f.set(this.contentData.firstChild,"width",this.pixelsPerDay*this.countDays+"px");f.set(this.panelTime,"width",this.contentWidth-this.maxWidthPanelNames-this.scrollBarWidth+"px");f.set(this.panelTime.firstChild,"width",this.pixelsPerDay*this.countDays+"px");this.isShowConMenu&&(this.tabMenu= new D(this));var d=this;this.contentData.onscroll=function(){d.panelTime.scrollLeft=this.scrollLeft;d.panelNames&&(d.panelNames.scrollTop=this.scrollTop,d.isShowConMenu&&d.tabMenu.hide());d.resource&&(d.resource.contentData.scrollLeft=this.scrollLeft)};this.project.sort(this.sortProjStartDate);for(b=0;b