From: <nat...@us...> - 2014-04-30 20:25:09
|
Author: nathangray Date: Wed Apr 30 22:24:50 2014 New Revision: 46796 URL: http://svn.stylite.de/viewvc/egroupware?rev=46796&view=rev Log: Update gantt code Modified: trunk/phpgwapi/js/dhtmlxGantt/codebase/dhtmlxgantt.js Modified: trunk/phpgwapi/js/dhtmlxGantt/codebase/dhtmlxgantt.js URL: http://svn.stylite.de/viewvc/egroupware/trunk/phpgwapi/js/dhtmlxGantt/codebase/dhtmlxgantt.js?rev=46796&r1=46795&r2=46796&view=diff ============================================================================== --- trunk/phpgwapi/js/dhtmlxGantt/codebase/dhtmlxgantt.js (original) +++ trunk/phpgwapi/js/dhtmlxGantt/codebase/dhtmlxgantt.js Wed Apr 30 22:24:50 2014 @@ -1,8 +1,240 @@ -/* -This software is allowed to use under GPL or you need to obtain Commercial or Enterise License - to use it in non-GPL project. Please contact sa...@dh... for details -*/ -function dtmlXMLLoaderObject(t,e,n,i){return this.xmlDoc="",this.async="undefined"!=typeof n?n:!0,this.onloadAction=t||null,this.mainObject=e||null,this.waitCall=null,this.rSeed=i||!1,this}function callerFunction(t,e){return this.handler=function(n){return n||(n=window.event),t(n,e),!0},this.handler}function getAbsoluteLeft(t){return getOffset(t).left}function getAbsoluteTop(t){return getOffset(t).top}function getOffsetSum(t){for(var e=0,n=0;t;)e+=parseInt(t.offsetTop),n+=parseInt(t.offsetLeft),t=t.offsetParent;return{top:e,left:n}}function getOffsetRect(t){var e=t.getBoundingClientRect(),n=document.body,i=document.documentElement,a=window.pageYOffset||i.scrollTop||n.scrollTop,s=window.pageXOffset||i.scrollLeft||n.scrollLeft,r=i.clientTop||n.clientTop||0,o=i.clientLeft||n.clientLeft||0,d=e.top+a-r,l=e.left+s-o;return{top:Math.round(d),left:Math.round(l)}}function getOffset(t){return t.getBoundingClientRect?getOffsetRect(t):getOffsetSum(t)}function convertStringToBoolean(t){switch("s tring"==typeof t&&(t=t.toLowerCase()),t){case"1":case"true":case"yes":case"y":case 1:case!0:return!0;default:return!1}}function getUrlSymbol(t){return-1!=t.indexOf("?")?"&":"?"}function dhtmlDragAndDropObject(){return window.dhtmlDragAndDrop?window.dhtmlDragAndDrop:(this.lastLanding=0,this.dragNode=0,this.dragStartNode=0,this.dragStartObject=0,this.tempDOMU=null,this.tempDOMM=null,this.waitDrag=0,window.dhtmlDragAndDrop=this,this)}function _dhtmlxError(){return this.catches||(this.catches=new Array),this}function dhtmlXHeir(t,e){for(var n in e)"function"==typeof e[n]&&(t[n]=e[n]);return t}function dhtmlxEvent(t,e,n){t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent&&t.attachEvent("on"+e,n)}function dhtmlxDetachEvent(t,e,n){t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent&&t.detachEvent("on"+e,n)}function dhtmlxDnD(t,e){e&&(this._settings=e),dhtmlxEventable(this),dhtmlxEvent(t,"mousedown",dhtmlx.bind(function(e){this.dragStart(t,e)},this))}function dataProc essor(t){return this.serverProcessor=t,this.action_param="!nativeeditor_status",this.object=null,this.updatedRows=[],this.autoUpdate=!0,this.updateMode="cell",this._tMode="GET",this.post_delim="_",this._waitMode=0,this._in_progress={},this._invalid={},this.mandatoryFields=[],this.messages=[],this.styles={updated:"font-weight:bold;",inserted:"font-weight:bold;",deleted:"text-decoration : line-through;",invalid:"background-color:FFE0E0;",invalid_cell:"border-bottom:2px solid red;",error:"color:red;",clear:"font-weight:normal;text-decoration:none;"},this.enableUTFencoding(!0),dhtmlxEventable(this),this}dhtmlx=function(t){for(var e in t)dhtmlx[e]=t[e];return dhtmlx},dhtmlx.extend_api=function(t,e,n){var i=window[t];i&&(window[t]=function(t){if(t&&"object"==typeof t&&!t.tagName){var n=i.apply(this,e._init?e._init(t):arguments);for(var a in dhtmlx)e[a]&&this[e[a]](dhtmlx[a]);for(var a in t)e[a]?this[e[a]](t[a]):0==a.indexOf("on")&&this.attachEvent(a,t[a])}else var n=i.apply(this,arguments );return e._patch&&e._patch(this),n||this},window[t].prototype=i.prototype,n&&dhtmlXHeir(window[t].prototype,n))},dhtmlxAjax={get:function(t,e){var n=new dtmlXMLLoaderObject(!0);return n.async=arguments.length<3,n.waitCall=e,n.loadXML(t),n},post:function(t,e,n){var i=new dtmlXMLLoaderObject(!0);return i.async=arguments.length<4,i.waitCall=n,i.loadXML(t,!0,e),i},getSync:function(t){return this.get(t,null,!0)},postSync:function(t,e){return this.post(t,e,null,!0)}},dtmlXMLLoaderObject.count=0,dtmlXMLLoaderObject.prototype.waitLoadFunction=function(t){var e=!0;return this.check=function(){if(t&&null!=t.onloadAction&&(!t.xmlDoc.readyState||4==t.xmlDoc.readyState)){if(!e)return;e=!1,dtmlXMLLoaderObject.count++,"function"==typeof t.onloadAction&&t.onloadAction(t.mainObject,null,null,null,t),t.waitCall&&(t.waitCall.call(this,t),t.waitCall=null)}},this.check},dtmlXMLLoaderObject.prototype.getXMLTopNode=function(t,e){if(this.xmlDoc.responseXML){var n=this.xmlDoc.responseXML.getElementsByTagNa me(t);if(0==n.length&&-1!=t.indexOf(":"))var n=this.xmlDoc.responseXML.getElementsByTagName(t.split(":")[1]);var i=n[0]}else var i=this.xmlDoc.documentElement;if(i)return this._retry=!1,i;if(!this._retry&&_isIE){this._retry=!0;var e=this.xmlDoc;return this.loadXMLString(this.xmlDoc.responseText.replace(/^[\s]+/,""),!0),this.getXMLTopNode(t,e)}return dhtmlxError.throwError("LoadXML","Incorrect XML",[e||this.xmlDoc,this.mainObject]),document.createElement("DIV")},dtmlXMLLoaderObject.prototype.loadXMLString=function(t,e){if(_isIE)this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"),this.xmlDoc.async=this.async,this.xmlDoc.onreadystatechange=function(){},this.xmlDoc.loadXML(t);else{var n=new DOMParser;this.xmlDoc=n.parseFromString(t,"text/xml")}e||(this.onloadAction&&this.onloadAction(this.mainObject,null,null,null,this),this.waitCall&&(this.waitCall(),this.waitCall=null))},dtmlXMLLoaderObject.prototype.loadXML=function(t,e,n,i){this.rSeed&&(t+=(-1!=t.indexOf("?")?"&":"?")+"a_dhx_rSeed="+( new Date).valueOf()),this.filePath=t,this.xmlDoc=!_isIE&&window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),this.async&&(this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this)),this.xmlDoc.open(e?"POST":"GET",t,this.async),i?(this.xmlDoc.setRequestHeader("User-Agent","dhtmlxRPC v0.1 ("+navigator.userAgent+")"),this.xmlDoc.setRequestHeader("Content-type","text/xml")):e&&this.xmlDoc.setRequestHeader("Content-type","application/x-www-form-urlencoded"),this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest"),this.xmlDoc.send(null||n),this.async||new this.waitLoadFunction(this)()},dtmlXMLLoaderObject.prototype.destructor=function(){return this._filterXPath=null,this._getAllNamedChilds=null,this._retry=null,this.async=null,this.rSeed=null,this.filePath=null,this.onloadAction=null,this.mainObject=null,this.xmlDoc=null,this.doXPath=null,this.doXPathOpera=null,this.doXSLTransToObject=null,this.doXSLTransToString=null,this.loadXML=null,this.loadXM LString=null,this.doSerialization=null,this.xmlNodeToJSON=null,this.getXMLTopNode=null,this.setXSLParamValue=null,null},dtmlXMLLoaderObject.prototype.xmlNodeToJSON=function(t){for(var e={},n=0;n<t.attributes.length;n++)e[t.attributes[n].name]=t.attributes[n].value;e._tagvalue=t.firstChild?t.firstChild.nodeValue:"";for(var n=0;n<t.childNodes.length;n++){var i=t.childNodes[n].tagName;i&&(e[i]||(e[i]=[]),e[i].push(this.xmlNodeToJSON(t.childNodes[n])))}return e},dhtmlDragAndDropObject.prototype.removeDraggableItem=function(t){t.onmousedown=null,t.dragStarter=null,t.dragLanding=null},dhtmlDragAndDropObject.prototype.addDraggableItem=function(t,e){t.onmousedown=this.preCreateDragCopy,t.dragStarter=e,this.addDragLanding(t,e)},dhtmlDragAndDropObject.prototype.addDragLanding=function(t,e){t.dragLanding=e},dhtmlDragAndDropObject.prototype.preCreateDragCopy=function(t){return!t&&!window.event||2!=(t||event).button?window.dhtmlDragAndDrop.waitDrag?(window.dhtmlDragAndDrop.waitDrag=0,document.bo dy.onmouseup=window.dhtmlDragAndDrop.tempDOMU,document.body.onmousemove=window.dhtmlDragAndDrop.tempDOMM,!1):(window.dhtmlDragAndDrop.dragNode&&window.dhtmlDragAndDrop.stopDrag(t),window.dhtmlDragAndDrop.waitDrag=1,window.dhtmlDragAndDrop.tempDOMU=document.body.onmouseup,window.dhtmlDragAndDrop.tempDOMM=document.body.onmousemove,window.dhtmlDragAndDrop.dragStartNode=this,window.dhtmlDragAndDrop.dragStartObject=this.dragStarter,document.body.onmouseup=window.dhtmlDragAndDrop.preCreateDragCopy,document.body.onmousemove=window.dhtmlDragAndDrop.callDrag,window.dhtmlDragAndDrop.downtime=(new Date).valueOf(),t&&t.preventDefault?(t.preventDefault(),!1):!1):void 0},dhtmlDragAndDropObject.prototype.callDrag=function(t){if(t||(t=window.event),dragger=window.dhtmlDragAndDrop,!((new Date).valueOf()-dragger.downtime<100)){if(!dragger.dragNode){if(!dragger.waitDrag)return dragger.stopDrag(t,!0);if(dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode,t),!dragger.dragNode) return dragger.stopDrag();dragger.dragNode.onselectstart=function(){return!1},dragger.gldragNode=dragger.dragNode,document.body.appendChild(dragger.dragNode),document.body.onmouseup=dragger.stopDrag,dragger.waitDrag=0,dragger.dragNode.pWindow=window,dragger.initFrameRoute()}if(dragger.dragNode.parentNode!=window.document.body&&dragger.gldragNode){var e=dragger.gldragNode;dragger.gldragNode.old&&(e=dragger.gldragNode.old),e.parentNode.removeChild(e);var n=dragger.dragNode.pWindow;if(e.pWindow&&e.pWindow.dhtmlDragAndDrop.lastLanding&&e.pWindow.dhtmlDragAndDrop.lastLanding.dragLanding._dragOut(e.pWindow.dhtmlDragAndDrop.lastLanding),_isIE){var i=document.createElement("Div");i.innerHTML=dragger.dragNode.outerHTML,dragger.dragNode=i.childNodes[0]}else dragger.dragNode=dragger.dragNode.cloneNode(!0);dragger.dragNode.pWindow=window,dragger.gldragNode.old=dragger.dragNode,document.body.appendChild(dragger.dragNode),n.dhtmlDragAndDrop.dragNode=dragger.dragNode}if(dragger.dragNode.style.left =t.clientX+15+(dragger.fx?-1*dragger.fx:0)+(document.body.scrollLeft||document.documentElement.scrollLeft)+"px",dragger.dragNode.style.top=t.clientY+3+(dragger.fy?-1*dragger.fy:0)+(document.body.scrollTop||document.documentElement.scrollTop)+"px",t.srcElement)a=t.srcElement;else var a=t.target;dragger.checkLanding(a,t)}},dhtmlDragAndDropObject.prototype.calculateFramePosition=function(t){if(window.name){for(var e=parent.frames[window.name].frameElement.offsetParent,n=0,i=0;e;)n+=e.offsetLeft,i+=e.offsetTop,e=e.offsetParent;if(parent.dhtmlDragAndDrop){var a=parent.dhtmlDragAndDrop.calculateFramePosition(1);n+=1*a.split("_")[0],i+=1*a.split("_")[1]}if(t)return n+"_"+i;this.fx=n,this.fy=i}return"0_0"},dhtmlDragAndDropObject.prototype.checkLanding=function(t,e){t&&t.dragLanding?(this.lastLanding&&this.lastLanding.dragLanding._dragOut(this.lastLanding),this.lastLanding=t,this.lastLanding=this.lastLanding.dragLanding._dragIn(this.lastLanding,this.dragStartNode,e.clientX,e.clientY,e),this. lastLanding_scr=_isIE?e.srcElement:e.target):t&&"BODY"!=t.tagName?this.checkLanding(t.parentNode,e):(this.lastLanding&&this.lastLanding.dragLanding._dragOut(this.lastLanding,e.clientX,e.clientY,e),this.lastLanding=0,this._onNotFound&&this._onNotFound())},dhtmlDragAndDropObject.prototype.stopDrag=function(t,e){if(dragger=window.dhtmlDragAndDrop,!e){dragger.stopFrameRoute();var n=dragger.lastLanding;dragger.lastLanding=null,n&&n.dragLanding._drag(dragger.dragStartNode,dragger.dragStartObject,n,_isIE?event.srcElement:t.target)}dragger.lastLanding=null,dragger.dragNode&&dragger.dragNode.parentNode==document.body&&dragger.dragNode.parentNode.removeChild(dragger.dragNode),dragger.dragNode=0,dragger.gldragNode=0,dragger.fx=0,dragger.fy=0,dragger.dragStartNode=0,dragger.dragStartObject=0,document.body.onmouseup=dragger.tempDOMU,document.body.onmousemove=dragger.tempDOMM,dragger.tempDOMU=null,dragger.tempDOMM=null,dragger.waitDrag=0},dhtmlDragAndDropObject.prototype.stopFrameRoute=function(t ){t&&window.dhtmlDragAndDrop.stopDrag(1,1);for(var e=0;e<window.frames.length;e++)try{window.frames[e]!=t&&window.frames[e].dhtmlDragAndDrop&&window.frames[e].dhtmlDragAndDrop.stopFrameRoute(window)}catch(n){}try{parent.dhtmlDragAndDrop&&parent!=window&&parent!=t&&parent.dhtmlDragAndDrop.stopFrameRoute(window)}catch(n){}},dhtmlDragAndDropObject.prototype.initFrameRoute=function(t,e){t&&(window.dhtmlDragAndDrop.preCreateDragCopy(),window.dhtmlDragAndDrop.dragStartNode=t.dhtmlDragAndDrop.dragStartNode,window.dhtmlDragAndDrop.dragStartObject=t.dhtmlDragAndDrop.dragStartObject,window.dhtmlDragAndDrop.dragNode=t.dhtmlDragAndDrop.dragNode,window.dhtmlDragAndDrop.gldragNode=t.dhtmlDragAndDrop.dragNode,window.document.body.onmouseup=window.dhtmlDragAndDrop.stopDrag,window.waitDrag=0,!_isIE&&e&&(!_isFF||1.8>_FFrv)&&window.dhtmlDragAndDrop.calculateFramePosition());try{parent.dhtmlDragAndDrop&&parent!=window&&parent!=t&&parent.dhtmlDragAndDrop.initFrameRoute(window)}catch(n){}for(var i=0;i<wi ndow.frames.length;i++)try{window.frames[i]!=t&&window.frames[i].dhtmlDragAndDrop&&window.frames[i].dhtmlDragAndDrop.initFrameRoute(window,!t||e?1:0)}catch(n){}},_isFF=!1,_isIE=!1,_isOpera=!1,_isKHTML=!1,_isMacOS=!1,_isChrome=!1,_FFrv=!1,_KHTMLrv=!1,_OperaRv=!1,-1!=navigator.userAgent.indexOf("Macintosh")&&(_isMacOS=!0),navigator.userAgent.toLowerCase().indexOf("chrome")>-1&&(_isChrome=!0),-1!=navigator.userAgent.indexOf("Safari")||-1!=navigator.userAgent.indexOf("Konqueror")?(_KHTMLrv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Safari")+7,5)),_KHTMLrv>525?(_isFF=!0,_FFrv=1.9):_isKHTML=!0):-1!=navigator.userAgent.indexOf("Opera")?(_isOpera=!0,_OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Opera")+6,3))):-1!=navigator.appName.indexOf("Microsoft")?(_isIE=!0,-1==navigator.appVersion.indexOf("MSIE 8.0")&&-1==navigator.appVersion.indexOf("MSIE 9.0")&&-1==navigator.appVersion.indexOf("MSIE 10.0")||"BackCompat"==document.compatMode||(_isI E=8)):(_isFF=!0,_FFrv=parseFloat(navigator.userAgent.split("rv:")[1])),dtmlXMLLoaderObject.prototype.doXPath=function(t,e,n,i){if(_isKHTML||!_isIE&&!window.XPathResult)return this.doXPathOpera(t,e);if(_isIE)return e||(e=this.xmlDoc.nodeName?this.xmlDoc:this.xmlDoc.responseXML),e||dhtmlxError.throwError("LoadXML","Incorrect XML",[e||this.xmlDoc,this.mainObject]),null!=n&&e.setProperty("SelectionNamespaces","xmlns:xsl='"+n+"'"),"single"==i?e.selectSingleNode(t):e.selectNodes(t)||new Array(0);var a=e;e||(e=this.xmlDoc.nodeName?this.xmlDoc:this.xmlDoc.responseXML),e||dhtmlxError.throwError("LoadXML","Incorrect XML",[e||this.xmlDoc,this.mainObject]),-1!=e.nodeName.indexOf("document")?a=e:(a=e,e=e.ownerDocument);var s=XPathResult.ANY_TYPE;"single"==i&&(s=XPathResult.FIRST_ORDERED_NODE_TYPE);var r=new Array,o=e.evaluate(t,a,function(){return n},s,null);if(s==XPathResult.FIRST_ORDERED_NODE_TYPE)return o.singleNodeValue;for(var d=o.iterateNext();d;)r[r.length]=d,d=o.iterateNext();return r},_ dhtmlxError.prototype.catchError=function(t,e){this.catches[t]=e},_dhtmlxError.prototype.throwError=function(t,e,n){return this.catches[t]?this.catches[t](t,e,n):this.catches.ALL?this.catches.ALL(t,e,n):(alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]),null)},window.dhtmlxError=new _dhtmlxError,dtmlXMLLoaderObject.prototype.doXPathOpera=function(t,e){var n=t.replace(/[\/]+/gi,"/").split("/"),i=null,a=1;if(!n.length)return[];if("."==n[0])i=[e];else{if(""!=n[0])return[];i=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(n[a].replace(/\[[^\]]*\]/g,"")),a++}for(a;a<n.length;a++)i=this._getAllNamedChilds(i,n[a]);return-1!=n[a-1].indexOf("[")&&(i=this._filterXPath(i,n[a-1])),i},dtmlXMLLoaderObject.prototype._filterXPath=function(t,e){for(var n=new Array,e=e.replace(/[^\[]*\[\@/g,"").replace(/[\[\]\@]*/g,""),i=0;i<t.length;i++)t[i].getAttribute(e)&&(n[n.length]=t[i]);return n},dtmlXMLLoaderObject.prototype._getAllNamedChilds=function(t,e){var n=new Array;_isKHTM L&&(e=e.toUpperCase());for(var i=0;i<t.length;i++)for(var a=0;a<t[i].childNodes.length;a++)_isKHTML?t[i].childNodes[a].tagName&&t[i].childNodes[a].tagName.toUpperCase()==e&&(n[n.length]=t[i].childNodes[a]):t[i].childNodes[a].tagName==e&&(n[n.length]=t[i].childNodes[a]);return n},dtmlXMLLoaderObject.prototype.xslDoc=null,dtmlXMLLoaderObject.prototype.setXSLParamValue=function(t,e,n){n||(n=this.xslDoc),n.responseXML&&(n=n.responseXML);var i=this.doXPath("/xsl:stylesheet/xsl:variable[@name='"+t+"']",n,"http://www.w3.org/1999/XSL/Transform","single");null!=i&&(i.firstChild.nodeValue=e)},dtmlXMLLoaderObject.prototype.doXSLTransToObject=function(t,e){if(t||(t=this.xslDoc),t.responseXML&&(t=t.responseXML),e||(e=this.xmlDoc),e.responseXML&&(e=e.responseXML),_isIE){var n=new ActiveXObject("Msxml2.DOMDocument.3.0");try{e.transformNodeToObject(t,n)}catch(i){n=e.transformNode(t)}}else{this.XSLProcessor||(this.XSLProcessor=new XSLTProcessor,this.XSLProcessor.importStylesheet(t));var n=this.XSLPr ocessor.transformToDocument(e)}return n},dtmlXMLLoaderObject.prototype.doXSLTransToString=function(t,e){var n=this.doXSLTransToObject(t,e);return"string"==typeof n?n:this.doSerialization(n)},dtmlXMLLoaderObject.prototype.doSerialization=function(t){if(t||(t=this.xmlDoc),t.responseXML&&(t=t.responseXML),_isIE)return t.xml;var e=new XMLSerializer;return e.serializeToString(t)},dhtmlxEventable=function(obj){obj.attachEvent=function(t,e,n){return t="ev_"+t.toLowerCase(),this[t]||(this[t]=new this.eventCatcher(n||this)),t+":"+this[t].addEvent(e)},obj.callEvent=function(t,e){return t="ev_"+t.toLowerCase(),this[t]?this[t].apply(this,e):!0},obj.checkEvent=function(t){return!!this["ev_"+t.toLowerCase()]},obj.eventCatcher=function(obj){var dhx_catch=[],z=function(){for(var t=!0,e=0;e<dhx_catch.length;e++)if(null!=dhx_catch[e]){var n=dhx_catch[e].apply(obj,arguments);t=t&&n}return t};return z.addEvent=function(ev){return"function"!=typeof ev&&(ev=eval(ev)),ev?dhx_catch.push(ev)-1:!1},z.removeE vent=function(t){dhx_catch[t]=null},z},obj.detachEvent=function(t){if(0!=t){var e=t.split(":");this[e[0]].removeEvent(e[1])}},obj.detachAllEvents=function(){for(var t in this)0==t.indexOf("ev_")&&(this.detachEvent(t),this[t]=null)},obj=null},window.dhtmlx||(window.dhtmlx={}),function(){function t(t,e){var i=t.callback;n(!1),t.box.parentNode.removeChild(t.box),c=t.box=null,i&&i(e)}function e(e){if(c){e=e||event;var n=e.which||event.keyCode;return dhtmlx.message.keyboard&&((13==n||32==n)&&t(c,!0),27==n&&t(c,!1)),e.preventDefault&&e.preventDefault(),!(e.cancelBubble=!0)}}function n(t){n.cover||(n.cover=document.createElement("DIV"),n.cover.onkeydown=e,n.cover.className="dhx_modal_cover",document.body.appendChild(n.cover)),document.body.scrollHeight,n.cover.style.display=t?"inline-block":"none"}function i(t,e){var n="dhtmlx_"+t.toLowerCase().replace(/ /g,"_")+"_button";return"<div class='dhtmlx_popup_button "+n+"' result='"+e+"' ><div>"+t+"</div></div>"}function a(t){g.area||(g.area=doc ument.createElement("DIV"),g.area.className="dhtmlx_message_area",g.area.style[g.position]="5px",document.body.appendChild(g.area)),g.hide(t.id);var e=document.createElement("DIV");return e.innerHTML="<div>"+t.text+"</div>",e.className="dhtmlx-info dhtmlx-"+t.type,e.onclick=function(){g.hide(t.id),t=null},"bottom"==g.position&&g.area.firstChild?g.area.insertBefore(e,g.area.firstChild):g.area.appendChild(e),t.expire>0&&(g.timers[t.id]=window.setTimeout(function(){g.hide(t.id)},t.expire)),g.pull[t.id]=e,e=null,t.id}function s(e,n,a){var s=document.createElement("DIV");s.className=" dhtmlx_modal_box dhtmlx-"+e.type,s.setAttribute("dhxbox",1);var r="";if(e.width&&(s.style.width=e.width),e.height&&(s.style.height=e.height),e.title&&(r+='<div class="dhtmlx_popup_title">'+e.title+"</div>"),r+='<div class="dhtmlx_popup_text"><span>'+(e.content?"":e.text)+'</span></div><div class="dhtmlx_popup_controls">',n&&(r+=i(e.ok||"OK",!0)),a&&(r+=i(e.cancel||"Cancel",!1)),e.buttons)for(var o=0;o<e.bu ttons.length;o++)r+=i(e.buttons[o],o);if(r+="</div>",s.innerHTML=r,e.content){var d=e.content;"string"==typeof d&&(d=document.getElementById(d)),"none"==d.style.display&&(d.style.display=""),s.childNodes[e.title?1:0].appendChild(d)}return s.onclick=function(n){n=n||event;var i=n.target||n.srcElement;if(i.className||(i=i.parentNode),"dhtmlx_popup_button"==i.className.split(" ")[0]){var a=i.getAttribute("result");a="true"==a||("false"==a?!1:a),t(e,a)}},e.box=s,(n||a)&&(c=e),s}function r(t,i,a){var r=t.tagName?t:s(t,i,a);t.hidden||n(!0),document.body.appendChild(r);var o=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-r.offsetWidth)/2)),d=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-r.offsetHeight)/2));return r.style.top="top"==t.position?"-3px":d+"px",r.style.left=o+"px",r.onkeydown=e,r.focus(),t.hidden&&dhtmlx.modalbox.hide(r),r}function o(t){return r(t,!0,!1)}function d(t){return r(t,!0,!0)}function l(t){return r(t)} function h(t,e,n){return"object"!=typeof t&&("function"==typeof e&&(n=e,e=""),t={text:t,type:e,callback:n}),t}function _(t,e,n,i){return"object"!=typeof t&&(t={text:t,type:e,expire:n,id:i}),t.id=t.id||g.uid(),t.expire=t.expire||g.expire,t}var c=null;document.attachEvent?document.attachEvent("onkeydown",e):document.addEventListener("keydown",e,!0),dhtmlx.alert=function(){var t=h.apply(this,arguments);return t.type=t.type||"confirm",o(t)},dhtmlx.confirm=function(){var t=h.apply(this,arguments);return t.type=t.type||"alert",d(t)},dhtmlx.modalbox=function(){var t=h.apply(this,arguments);return t.type=t.type||"alert",l(t)},dhtmlx.modalbox.hide=function(t){for(;t&&t.getAttribute&&!t.getAttribute("dhxbox");)t=t.parentNode;t&&(t.parentNode.removeChild(t),n(!1))};var g=dhtmlx.message=function(t){t=_.apply(this,arguments),t.type=t.type||"info";var e=t.type.split("-")[0];switch(e){case"alert":return o(t);case"confirm":return d(t);case"modalbox":return l(t);default:return a(t)}};g.seed=(new Dat e).valueOf(),g.uid=function(){return g.seed++},g.expire=4e3,g.keyboard=!0,g.position="top",g.pull={},g.timers={},g.hideAll=function(){for(var t in g.pull)g.hide(t)},g.hide=function(t){var e=g.pull[t];e&&e.parentNode&&(window.setTimeout(function(){e.parentNode.removeChild(e),e=null},2e3),e.className+=" hidden",g.timers[t]&&window.clearTimeout(g.timers[t]),delete g.pull[t])}}(),gantt={version:"2.0.0"},dhtmlxEventable=function(obj){obj._silent_mode=!1,obj._silentStart=function(){this._silent_mode=!0},obj._silentEnd=function(){this._silent_mode=!1},obj.attachEvent=function(t,e,n){return t="ev_"+t.toLowerCase(),this[t]||(this[t]=new this._eventCatcher(n||this)),t+":"+this[t].addEvent(e)},obj.callEvent=function(t,e){return this._silent_mode?!0:(t="ev_"+t.toLowerCase(),this[t]?this[t].apply(this,e):!0)},obj.checkEvent=function(t){return!!this["ev_"+t.toLowerCase()]},obj._eventCatcher=function(obj){var dhx_catch=[],z=function(){for(var t=!0,e=0;e<dhx_catch.length;e++)if(null!=dhx_catch[e]){ var n=dhx_catch[e].apply(obj,arguments);t=t&&n}return t};return z.addEvent=function(ev){return"function"!=typeof ev&&(ev=eval(ev)),ev?dhx_catch.push(ev)-1:!1},z.removeEvent=function(t){dhx_catch[t]=null},z},obj.detachEvent=function(t){if(0!=t){var e=t.split(":");this[e[0]].removeEvent(e[1])}},obj.detachAllEvents=function(){for(var t in this)0==t.indexOf("ev_")&&delete this[t]},obj=null},dhtmlx.copy=function(t){var e,n,i;if(t&&"object"==typeof t){for(i={},n=[Array,Date,Number,String,Boolean],e=0;e<n.length;e++)t instanceof n[e]&&(i=e?new n[e](t):new n[e]);for(e in t)Object.prototype.hasOwnProperty.apply(t,[e])&&(i[e]=dhtmlx.copy(t[e]))}return i||t},dhtmlx.mixin=function(t,e,n){for(var i in e)(!t[i]||n)&&(t[i]=e[i]);return t},dhtmlx.defined=function(t){return"undefined"!=typeof t},dhtmlx.uid=function(){return this._seed||(this._seed=(new Date).valueOf()),this._seed++,this._seed},dhtmlx.bind=function(t,e){return function(){return t.apply(e,arguments)}},gantt._get_position=function(t){i f(t.getBoundingClientRect){var e=t.getBoundingClientRect(),n=document.body,i=document.documentElement,a=window.pageYOffset||i.scrollTop||n.scrollTop,s=window.pageXOffset||i.scrollLeft||n.scrollLeft,r=i.clientTop||n.clientTop||0,o=i.clientLeft||n.clientLeft||0,d=e.top+a-r,l=e.left+s-o;return{y:Math.round(d),x:Math.round(l),width:t.offsetHeight,height:t.offsetWidth}}for(var d=0,l=0;t;)d+=parseInt(t.offsetTop,10),l+=parseInt(t.offsetLeft,10),t=t.offsetParent;return{y:d,x:l,width:t.offsetHeight,height:t.offsetWidth}},gantt._detectScrollSize=function(){var t=document.createElement("div");t.style.cssText="visibility:hidden;position:absolute;left:-1000px;width:100px;padding:0px;margin:0px;height:110px;min-height:100px;overflow-y:scroll;",document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),e},dhtmlxEventable(gantt),gantt._click={},gantt._dbl_click={},gantt._context_menu={},gantt._on_click=function(t){t=t||window.event;var e=t.target||t.srcEleme nt,n=gantt.locate(t),i=gantt._find_ev_handler(t,e,gantt._click,n);if(i)if(null!==n){var a=!gantt.checkEvent("onTaskClick")||gantt.callEvent("onTaskClick",[n,t]);a&&gantt.config.select_task&&gantt.selectTask(n)}else gantt.callEvent("onEmptyClick",[t])},gantt._on_contextmenu=function(t){t=t||window.event;var e=t.target||t.srcElement,n=gantt.locate(e),i=gantt.locate(e,gantt.config.link_attribute),a=!gantt.checkEvent("onContextMenu")||gantt.callEvent("onContextMenu",[n,i,t]);return a||t.preventDefault(),a},gantt._find_ev_handler=function(t,e,n,i){for(var a=!0;e&&e.parentNode;){var s=e.className;if(s){s=s.split(" ");for(var r=0;r<s.length;r++)s[r]&&n[s[r]]&&(a=n[s[r]].call(gantt,t,i,e),a=!("undefined"!=typeof a&&a!==!0))}e=e.parentNode}return a},gantt._on_dblclick=function(t){t=t||window.event;var e=t.target||t.srcElement,n=gantt.locate(t),i=gantt._find_ev_handler(t,e,gantt._dbl_click,n);if(i&&null!==n){var a=!gantt.checkEvent("onTaskDblClick")||gantt.callEvent("onTaskDblClick",[n,t]);a& &gantt.config.details_on_dblclick&&gantt.showLightbox(n)}},gantt._on_mousemove=function(t){if(gantt.checkEvent("onMouseMove")){var e=gantt.locate(t);gantt._last_move_event=t,gantt.callEvent("onMouseMove",[e,t])}},dhtmlxDnD.prototype={dragStart:function(t,e){this.config={obj:t,marker:null,started:!1,pos:this.getPosition(e),sensitivity:4},this._settings&&dhtmlx.mixin(this.config,this._settings,!0);var n=dhtmlx.bind(function(e){return this.dragMove(t,e)},this);dhtmlx.bind(function(e){return this.dragScroll(t,e)},this);var i=dhtmlx.bind(function(t){return dhtmlx.defined(this.config.updates_per_second)&&!gantt._checkTimeout(this,this.config.updates_per_second)?!0:n(t)},this),a=dhtmlx.bind(function(){return dhtmlxDetachEvent(document.body,"mousemove",i),dhtmlxDetachEvent(document.body,"mouseup",a),this.dragEnd(t)},this);dhtmlxEvent(document.body,"mousemove",i),dhtmlxEvent(document.body,"mouseup",a),document.body.className+=" gantt_noselect"},dragMove:function(t,e){if(!this.config.marker&& !this.config.started){var n=this.getPosition(e),i=n.x-this.config.pos.x,a=n.y-this.config.pos.y,s=Math.sqrt(Math.pow(Math.abs(i),2)+Math.pow(Math.abs(a),2));if(s>this.config.sensitivity){if(this.config.started=!0,this.config.ignore=!1,this.callEvent("onBeforeDragStart",[t,e])===!1)return this.config.ignore=!0,!0;var r=this.config.marker=document.createElement("div");r.className="gantt_drag_marker",r.innerHTML="Dragging object",document.body.appendChild(r),this.callEvent("onAfterDragStart",[t,e])}else this.config.ignore=!0}this.config.ignore||(e.pos=this.getPosition(e),this.config.marker.style.left=e.pos.x+"px",this.config.marker.style.top=e.pos.y+"px",this.callEvent("onDragMove",[t,e]))},dragEnd:function(){this.config.marker&&(this.config.marker.parentNode.removeChild(this.config.marker),this.config.marker=null,this.callEvent("onDragEnd",[])),document.body.className=document.body.className.replace(" gantt_noselect","")},getPosition:function(t){var e=0,n=0;return t=t||window.event,t. pageX||t.pageY?(e=t.pageX,n=t.pageY):(t.clientX||t.clientY)&&(e=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,n=t.clientY+document.body.scrollTop+document.documentElement.scrollTop),{x:e,y:n}}},gantt._init_grid=function(){this._click.gantt_close=dhtmlx.bind(function(t,e){this.close(e)},this),this._click.gantt_open=dhtmlx.bind(function(t,e){this.open(e)},this),this._click.gantt_row=dhtmlx.bind(function(t,e,n){if(null!==e){var i=this.getTaskNode(e),a=Math.max(i.offsetLeft-this.config.task_scroll_offset,0);this._scroll_task_area(a),this.callEvent("onTaskRowClick",[e,n])}},this),this._click.gantt_grid_head_cell=dhtmlx.bind(function(t,e,n){var i=n.getAttribute("column_id");if(this.callEvent("onGridHeaderClick",[i,t]))if("add"==i)this._click.gantt_add(t,0);else if(this.config.sort){var a=this._sort&&this._sort.direction&&this._sort.name==i?this._sort.direction:"desc";a="desc"==a?"asc":"desc",this._sort={name:i,direction:a},this._render_grid_header(),this.sort(i,"d esc"==a)}},this),!this.config.sort&&this.config.order_branch&&this._init_dnd(),this._click.gantt_add=dhtmlx.bind(function(t,e){var n=e?this.getTask(e):!1,i="";if(n)i=n.start_date;else{var a=this._order[0];i=a?this.getTask(a).start_date:this.getState().min_date}n&&(n.$open=!0);var s={text:gantt.locale.labels.new_task,start_date:this.templates.xml_format(i),duration:1,progress:0,parent:e};this.callEvent("onTaskCreated",[s]),this.addTask(s),this.showTask(s.id),this.config.details_on_create&&this.showLightbox(s.id)},this)},gantt._render_grid=function(){this._calc_grid_width(),this._render_grid_header()},gantt._calc_grid_width=function(){if(this.config.autofit){for(var t=this.config.columns,e=0,n=[],i=[],a=0;a<t.length;a++){var s=parseInt(t[a].width,10);window.isNaN(s)&&(s=50,n.push(a)),i[a]=s,e+=s}var r=this.config.grid_width-e;if(r/(n.length>0?n.length:i.length>0?i.length:1),n.length>0)for(var o=r/(n.length?n.length:1),a=0;a<n.length;a++){var d=n[a];i[d]+=o}else for(var o=r/(i.length?i .length:1),a=0;a<i.length;a++)i[a]+=o;for(var a=0;a<i.length;a++)t[a].width=i[a]}},gantt._render_grid_header=function(){for(var t=this.config.columns,e=[],n=0,i=this.locale.labels,a=this.config.scale_height-2,s=0;s<t.length;s++){var r=s==t.length-1,o=t[s];r&&this.config.grid_width>n+o.width&&(o.width=this.config.grid_width-n),n+=o.width;var d=this._sort&&o.name==this._sort.name?"<div class='gantt_sort gantt_"+this._sort.direction+"'></div>":"",l="gantt_grid_head_cell"+(" gantt_grid_head_"+o.name)+(r?" gantt_last_cell":"")+this.templates.grid_header_class(o.name,o),h="width:"+(o.width-(r?1:0))+"px;",_=o.label||i["column_"+o.name];_=_||"";var c="<div class='"+l+"' style='"+h+"' column_id='"+o.name+"'>"+_+d+"</div>";e.push(c)}this.$grid_scale.style.height=this.config.scale_height-1+"px",this.$grid_scale.style.lineHeight=a+"px",this.$grid_scale.style.width=n-1+"px",this.$grid_scale.innerHTML=e.join("")},gantt._render_grid_item=function(t){for(var e=this.config.columns,n=[],i=0;i<e.lengt h;i++){var a,s,r=i==e.length-1,o=e[i];"add"==o.name&&i==e.length-1?s="<div class='gantt_add'></div>":(s=o.template?o.template(t):t[o.name],s instanceof Date&&(s=this.templates.date_grid(s)),s="<div class='gantt_tree_content'>"+s+"</div>");var d="gantt_cell"+(r?" gantt_last_cell":""),l="";if(o.tree){for(var h=0;h<t.$level;h++)l+=this.templates.grid_indent(t);var _=this._branches[t.id]&&this._branches[t.id].length>0;_?(l+=this.templates.grid_open(t),l+=this.templates.grid_folder(t)):(l+=this.templates.grid_blank(t),l+=this.templates.grid_file(t))}var c="width:"+(o.width-(r?1:0))+"px;";dhtmlx.defined(o.align)&&(c+="text-align:"+o.align+";"),a="<div class='"+d+"' style='"+c+"'>"+l+s+"</div>",n.push(a)}var d=0===t.$index%2?"":" odd";if(d+=t.$transparent?" gantt_transparent":"",this.templates.grid_row_class){var g=this.templates.grid_row_class.call(this,t.start_date,t.end_date,t);g&&(d+=" "+g)}this.getState().selected_task==t.id&&(d+=" gantt_selected");var u=document.createElement("div"); return u.className="gantt_row"+d,u.style.height=this.config.row_height+"px",u.style.lineHeight=gantt.config.row_height+"px",u.setAttribute(this.config.task_attribute,t.id),u.innerHTML=n.join(""),u},gantt.open=function(t){gantt._set_item_state(t,!0),this.callEvent("onTaskOpened",[t])},gantt.close=function(t){gantt._set_item_state(t,!1),this.callEvent("onTaskClosed",[t])},gantt._set_item_state=function(t,e){t&&this._pull[t]&&(this._pull[t].$open=e,this.refreshData())},gantt.getTaskIndex=function(t){for(var e=this._branches[this.getTask(t).parent],n=0;n<e.length;n++)if(e[n]==t)return n;return-1},gantt.getGlobalTaskIndex=function(t){for(var e=this._order,n=0;n<e.length;n++)if(e[n]==t)return n;return-1},gantt.moveTask=function(t,e,n){var i=arguments[3];if(i){if(i===t)return;n=this.getTask(i).parent,e=this.getTaskIndex(i)}n=n||0;var a=this.getTask(t);this._branches[a.parent];var s=this._branches[n];if(-1==e&&(e=s.length+1),a.parent==n){var r=this.getTaskIndex(t);if(r==e)return;e>r&&e--}th is._branch_update(a.parent,t),s=this._branches[n];var o=s[e];o?s=s.slice(0,e).concat([t]).concat(s.slice(e)):s.push(t),a.parent=n,this._branches[n]=s,this.refreshData() -},gantt._init_dnd=function(){var t=new dhtmlxDnD(this.$grid_data,{updates_per_second:60});dhtmlx.defined(this.config.dnd_sensitivity)&&(t.config.sensitivity=this.config.dnd_sensitivity),t.attachEvent("onBeforeDragStart",dhtmlx.bind(function(t,e){var n=this._locateHTML(e);return n?(this.hideQuickInfo&&this._hideQuickInfo(),void 0):!1},this)),t.attachEvent("onAfterDragStart",dhtmlx.bind(function(e,n){var i=this._locateHTML(n);t.config.marker.innerHTML=i.outerHTML,t.config.id=this.locate(n);var a=this.getTask(t.config.id);a.$open=!1,a.$transparent=!0,this.refreshData()},this)),t.attachEvent("onDragMove",dhtmlx.bind(function(e,n){var i=t.config,a=this._get_position(this.$grid_data),s=a.x+10,r=n.pos.y-10;r<a.y&&(r=a.y),r>a.y+this.$grid_data.offsetHeight-this.config.row_height&&(r=a.y+this.$grid_data.offsetHeight-this.config.row_height),i.marker.style.left=s+"px",i.marker.style.top=r+"px";var o=document.elementFromPoint(a.x-document.body.scrollLeft+1,r-document.body.scrollTop),d=this.loca te(o);if(this.isTaskExists(d)){var l=gantt._get_position(o),h=this.getTask(d),_=this.getTask(t.config.id);if(l.y+o.offsetHeight/2<r){var c=this.getGlobalTaskIndex(h.id),g=this._pull[this._order[c+1+(h.id==_.id?1:0)]];if(g){if(g.id==_.id)return;h=g}else if(g=this._pull[this._order[c+1]],g.$level==_.$level)return this.moveTask(_.id,-1,g.parent),i.target="next:"+g.id,void 0}if(h.$level==_.$level&&_.id!=h.id)this.moveTask(_.id,0,0,h.id),i.target=h.id;else{if(_.id==h.id)return;var c=this.getGlobalTaskIndex(h.id),u=this._pull[this._order[c-1]];u&&u.$level==_.$level&&_.id!=u.id&&(this.moveTask(_.id,-1,u.parent),i.target="next:"+u.id)}}return!0},this)),t.attachEvent("onDragEnd",dhtmlx.bind(function(){this.getTask(t.config.id).$transparent=!1,this.refreshData(),this.callEvent("onRowDragEnd",[t.config.id,t.config.target])},this))},gantt._scale_helpers={getSum:function(t,e,n){void 0===n&&(n=t.length-1),void 0===e&&(e=0);for(var i=0,a=e;n>=a;a++)i+=t[a];return i},setSumWidth:function(t,e,n,i){v ar a=e.width;void 0===i&&(i=a.length-1),void 0===n&&(n=0);var s=i-n+1;if(!(n>a.length-1||0>=s||i>a.length-1)&&t){var r=this.getSum(a,n,i),o=t-r;this.adjustSize(o,a,n,i),this.adjustSize(-o,a,i+1),e.full_width=this.getSum(a)}},splitSize:function(t,e){for(var n=[],i=0;e>i;i++)n[i]=0;return this.adjustSize(t,n),n},adjustSize:function(t,e,n,i){n||(n=0),void 0===i&&(i=e.length-1);for(var a=i-n+1,s=this.getSum(e,n,i),r=0,o=n;i>=o;o++){var d=Math.floor(t*(s?e[o]/s:1/a));e[o]+=d,r+=d}e[e.length-1]+=t-r},sortScales:function(t){function e(t,e){var n=new Date(1970,0,1);return gantt.date.add(n,e,t)-n}t.sort(function(t,n){return e(t.unit,t.step)<e(n.unit,n.step)?1:-1})},primaryScale:function(){return gantt._init_template("date_scale"),{unit:gantt.config.scale_unit,step:gantt.config.step,template:gantt.templates.date_scale,date:gantt.config.date_scale,css:gantt.templates.scale_cell_class}},prepareConfigs:function(t,e,n,i){for(var a=this.prepareScaleConfig(t[t.length-1],e,n).full_width,s=this.split Size(i,t.length),r=[],o=0;o<t.length;o++){var d=this.prepareScaleConfig(t[o],e,a,s[o]);this.formatScales(d),r.push(d)}for(var o=0;o<r.length-1;o++)this.alineScaleColumns(r[r.length-1],r[o]);return r},prepareScaleConfig:function(t,e,n,i){var a=dhtmlx.mixin({count:0,col_width:0,full_width:0,height:i,width:[],trace_x:[]},t);this.eachColumn(t.unit,t.step,function(t){a.count++,a.trace_x.push(new Date(t))});var s=n;return a.col_width=Math.floor(s/a.count),e&&a.col_width<e&&(a.col_width=e,s=a.col_width*a.count),a.width=this.splitSize(s,a.count),a.full_width=this.getSum(a.width),a},alineScaleColumns:function(t,e,n,i){for(var a=e.trace_x,s=t.trace_x,r=n||0,o=i||s.length-1,d=0,l=1;l<a.length;l++)for(var h=r;o>=h;h++)if(+s[h]!=+a[l]);else{var _=this.getSum(t.width,r,h-1),c=this.getSum(e.width,d,l-1);c!=_&&this.setSumWidth(_,e,d,l-1),r=h,d=l}},eachColumn:function(t,e,n){var i=new Date(gantt._min_date),a=new Date(gantt._max_date);gantt.date[t+"_start"]&&(i=gantt.date[t+"_start"](i));for(var s=ne w Date(i);+a>+s;)n.call(this,new Date(s)),s=gantt.date.add(s,e,t)},formatScales:function(t){var e=t.trace_x,n=0,i=t.width.length-1,a=0;if(+e[0]<+gantt._min_date&&n!=i){var s=Math.floor(t.width[0]*((e[1]-gantt._min_date)/(e[1]-e[0])));a+=t.width[0]-s,t.width[0]=s,e[0]=new Date(gantt._min_date)}var r=e.length-1,o=e[r],d=gantt.date.add(o,t.step,t.unit);if(+d>+gantt._max_date&&r>0){var s=t.width[r]-Math.floor(t.width[r]*((d-gantt._max_date)/(d-o)));a+=t.width[r]-s,t.width[r]=s}if(a){for(var l=this.getSum(t.width),h=0,_=0;_<t.width.length;_++){var c=Math.floor(a*(t.width[_]/l));t.width[_]+=c,h+=c}this.adjustSize(a-h,t.width)}}},gantt._tasks_dnd={drag:null,_events:{before_start:{},before_finish:{},after_finish:{}},_handlers:{},init:function(){this.clear_drag_state();var t=gantt.config.drag_mode;this.set_actions();var e={before_start:"onBeforeTaskDrag",before_finish:"onBeforeTaskChanged",after_finish:"onAfterTaskDrag"};for(var n in this._events)for(var i in t)this._events[n][i]=e[n];this._ handlers[t.move]=this._move,this._handlers[t.resize]=this._resize,this._handlers[t.progress]=this._resize_progress},set_actions:function(){var t=gantt.$task_data;dhtmlxEvent(t,"mousemove",dhtmlx.bind(function(t){this.on_mouse_move(t||event)},this)),dhtmlxEvent(t,"mousedown",dhtmlx.bind(function(t){this.on_mouse_down(t||event)},this)),dhtmlxEvent(t,"mouseup",dhtmlx.bind(function(t){this.on_mouse_up(t||event)},this))},clear_drag_state:function(){this.drag={id:null,mode:null,pos:null,start:null,obj:null,left:null}},_drag_timeout:function(){return this._cancel_drag?!1:(setTimeout(dhtmlx.bind(function(){this._cancel_drag=!1},this),25),this._cancel_drag=!0)},_resize:function(t,e,n){var i=gantt.config;n.left?t.start_date=new Date(n.start.valueOf()+e):t.end_date=new Date(n.start.valueOf()+e),t.end_date-t.start_date<i.min_duration&&(n.left?t.start_date=new Date(t.end_date.valueOf()-i.min_duration):t.end_date=new Date(t.start_date.valueOf()+i.min_duration)),gantt._update_task_duration(t)},_re size_progress:function(t,e,n){var i=n.obj_s_x=n.obj_s_x||gantt.posFromDate(t.start_date),a=n.obj_e_x=n.obj_e_x||gantt.posFromDate(t.end_date),s=Math.max(0,n.pos.x-i);t.progress=Math.min(1,s/(a-i))},_move:function(t,e,n){t.start_date=new Date(n.obj.start_date.valueOf()+e),t.end_date=new Date(n.obj.end_date.valueOf()+e)},on_mouse_move:function(t){this.drag.start_drag&&this._start_dnd(t);var e=this.drag;if(e.mode){if(!gantt._checkTimeout(this,40))return;this._update_on_move(t)}},_update_on_move:function(t){var e=this.drag;if(e.mode){var n=gantt._get_mouse_pos(t);if(e.pos&&e.pos.x==n.x)return;e.pos=n;var i=gantt._date_from_pos(n.x);if(!i||isNaN(i.getTime()))return;var a=i-e.start,s=gantt.getTask(e.id);if(this._handlers[e.mode]){var r=dhtmlx.mixin({},s),o=dhtmlx.mixin({},s);this._handlers[e.mode].apply(this,[o,a,e]),dhtmlx.mixin(s,o,!0),gantt._update_parents(e.id,!0),gantt.callEvent("onTaskDrag",[s.id,e.mode,o,r,t]),dhtmlx.mixin(s,o,!0),gantt._update_parents(e.id),gantt.refreshTask(e.id) }}},on_mouse_down:function(t,e){if(2!=t.button&&!gantt.config.readonly&&!this.drag.mode){this.clear_drag_state(),e=e||t.target||t.srcElement;var n=gantt._trim(e.className||"");if(!n||!this._get_drag_mode(n))return e.parentNode?this.on_mouse_down(t,e.parentNode):void 0;var i=this._get_drag_mode(n);if(i)if(i.mode&&i.mode!=gantt.config.drag_mode.ignore&&gantt.config["drag_"+i.mode]){var a=gantt.locate(e),s=dhtmlx.copy(gantt.getTask(a)||{});if(gantt._is_flex_task(s)&&i.mode!=gantt.config.drag_mode.progress)return this.clear_drag_state(),void 0;i.id=a;var r=gantt._get_mouse_pos(t);i.start=gantt._date_from_pos(r.x),i.obj=s,this.drag.start_drag=i}else this.clear_drag_state();else if(gantt.checkEvent("onMouseDown")&&gantt.callEvent("onMouseDown",[n.split(" ")[0]])&&e.parentNode)return this.on_mouse_down(t,e.parentNode)}},on_mouse_up:function(t){var e=this.drag;if(e.mode&&e.id){var n=gantt.getTask(e.id);if(this._fireEvent("before_finish",e.mode,[e.id,e.mode,dhtmlx.copy(e.obj),t])){var i=e.id ;if(gantt.config.round_dnd_dates){var a=gantt._tasks;gantt._round_task_dates(n,a.step,a.unit)}else gantt._round_task_dates(n,gantt.config.time_step,"minute");gantt._update_task_duration(n),gantt.updateTask(n.id),this._fireEvent("after_finish",e.mode,[i,e.mode,t]),this.clear_drag_state()}else e.obj._dhx_changed=!1,dhtmlx.mixin(n,e.obj,!0),gantt.updateTask(n.id)}this.clear_drag_state()},_get_drag_mode:function(t){var e=gantt.config.drag_mode,n=(t||"").split(" "),i=n[0],a={mode:null,left:null};switch(i){case"gantt_task_line":case"gantt_task_content":a.mode=e.move;break;case"gantt_task_drag":a.mode=e.resize,a.left=n[1]&&-1!==n[1].indexOf("left",n[1].length-"left".length)?!0:!1;break;case"gantt_task_progress_drag":a.mode=e.progress;break;case"gantt_link_control":case"gantt_link_point":a.mode=e.ignore;break;default:a=null}return a},_start_dnd:function(t){var e=this.drag=this.drag.start_drag;delete e.start_drag;var n=gantt.config,i=e.id;n["drag_"+e.mode]&&gantt.callEvent("onBeforeDrag",[i, e.mode,t])&&this._fireEvent("before_start",e.mode,[i,e.mode,t])?delete e.start_drag:this.clear_drag_state()},_fireEvent:function(t,e,n){dhtmlx.assert(this._events[t],"Invalid stage:{"+t+"}");var i=this._events[t][e];return dhtmlx.assert(i,"Unknown after drop mode:{"+e+"}"),dhtmlx.assert(n,"Invalid event arguments"),gantt.checkEvent(i)?gantt.callEvent(i,n):!0}},gantt._render_link=function(t){var e=this.getLink(t);gantt._linkRenderer.render_item(e,this.$task_links)},gantt._get_link_type=function(t,e){var n;return t&&e?n=gantt.config.links.start_to_start:!t&&e?n=gantt.config.links.finish_to_start:t||e?t&&!e&&(n=null):n=gantt.config.links.finish_to_finish,n},gantt.isLinkAllowed=function(t,e,n,i){if("object"==typeof t)var a=t;else var a={source:t,target:e,type:this._get_link_type(n,i)};if(!a)return!1;if(!(a.source&&a.target&&a.type))return!1;if(a.source==a.target)return!1;var s=!0;return this.checkEvent("onLinkValidation")&&(s=this.callEvent("onLinkValidation",[a])),s},gantt._render_link _element=function(t){if(gantt.isTaskVisible(t.source)&&gantt.isTaskVisible(t.target)){var e=this._path_builder.get_points(t),n=gantt._drawer,i=n.get_lines(e),a=document.createElement("div"),s="gantt_task_link",r=this.templates.link_class?this.templates.link_class(t):"";r&&(s+=" "+r),a.className=s,a.setAttribute(gantt.config.link_attribute,t.id);for(var o=0;o<i.length;o++)o==i.length-1&&(i[o].size-=gantt.config.link_arrow_size),a.appendChild(n.render_line(i[o],i[o+1]));var d=i[i.length-1].direction,l=gantt._render_link_arrow(e[e.length-1],d);return a.appendChild(l),a}},gantt._render_link_arrow=function(t,e){var n=document.createElement("div"),i=gantt._drawer,a=t.y,s=t.x,r=gantt.config.link_arrow_size,o=gantt.config.row_height,d="gantt_link_arrow gantt_link_arrow_"+e;switch(e){case i.dirs.right:a-=(r-o)/2,s-=r;break;case i.dirs.left:a-=(r-o)/2;break;case i.dirs.up:s-=(r-o)/2;break;case i.dirs.down:a-=r,s-=(r-o)/2}return n.style.cssText=["top:"+a+"px","left:"+s+"px"].join(";"),n.classN ame=d,n},gantt._drawer={current_pos:null,dirs:{left:"left",right:"right",up:"up",down:"down"},path:[],clear:function(){this.current_pos=null,this.path=[]},point:function(t){this.current_pos=dhtmlx.copy(t)},get_lines:function(t){this.clear(),this.point(t[0]);for(var e=1;e<t.length;e++)this.line_to(t[e]);return this.get_path()},line_to:function(t){var e=dhtmlx.copy(t),n=this.current_pos,i=this._get_line(n,e);this.path.push(i),this.current_pos=e},get_path:function(){return this.path},get_wrapper_sizes:function(t){var e,n=gantt.config.link_wrapper_width,i=(gantt.config.link_line_width,t.y+(gantt.config.row_height-n)/2);switch(t.direction){case this.dirs.left:e={top:i,height:n,lineHeight:n,left:t.x-t.size-n/2,width:t.size+n};break;case this.dirs.right:e={top:i,lineHeight:n,height:n,left:t.x-n/2,width:t.size+n};break;case this.dirs.up:e={top:i-t.size,lineHeight:t.size+n,height:t.size+n,left:t.x-n/2,width:n};break;case this.dirs.down:e={top:i,lineHeight:t.size+n,height:t.size+n,left:t.x-n/ 2,width:n}}return e},get_line_sizes:function(t){var e,n=gantt.config.link_line_width,i=gantt.config.link_wrapper_width,a=t.size+n;switch(t.direction){case this.dirs.left:case this.dirs.right:e={height:n,width:a,marginTop:(i-n)/2,marginLeft:(i-n)/2};break;case this.dirs.up:case this.dirs.down:e={height:a,width:n,marginTop:(i-n)/2,marginLeft:(i-n)/2}}return e},render_line:function(t){var e=this.get_wrapper_sizes(t),n=document.createElement("div");n.style.cssText=["top:"+e.top+"px","left:"+e.left+"px","height:"+e.height+"px","width:"+e.width+"px"].join(";"),n.className="gantt_line_wrapper";var i=this.get_line_sizes(t),a=document.createElement("div");return a.style.cssText=["height:"+i.height+"px","width:"+i.width+"px","margin-top:"+i.marginTop+"px","margin-left:"+i.marginLeft+"px"].join(";"),a.className="gantt_link_line_"+t.direction,n.appendChild(a),n},_get_line:function(t,e){var n=this.get_direction(t,e),i={x:t.x,y:t.y,direction:this.get_direction(t,e)};return i.size=n==this.dirs.lef t||n==this.dirs.right?Math.abs(t.x-e.x):Math.abs(t.y-e.y),i},get_direction:function(t,e){var n=0;return n=e.x<t.x?this.dirs.left:e.x>t.x?this.dirs.right:e.y>t.y?this.dirs.down:this.dirs.up}},gantt._y_from_ind=function(t){return t*gantt.config.row_height},gantt._path_builder={path:[],clear:function(){this.path=[]},current:function(){return this.path[this.path.length-1]},point:function(t){return t?(this.path.push(dhtmlx.copy(t)),t):this.current()},point_to:function(t,e,n){n=n?{x:n.x,y:n.y}:dhtmlx.copy(this.point());var i=gantt._drawer.dirs;switch(t){case i.left:n.x-=e;break;case i.right:n.x+=e;break;case i.up:n.y-=e;break;case i.down:n.y+=e}return this.point(n)},get_points:function(t){var e=this.get_endpoint(t),n=gantt.config,i=e.e_y-e.y,a=e.e_x-e.x,s=gantt._drawer.dirs;this.clear(),this.point({x:e.x,y:e.y});var r=2*n.link_arrow_size,o=e.e_x>e.x;if(t.type==gantt.config.links.start_to_start)this.point_to(s.left,r),o?(this.point_to(s.down,i),this.point_to(s.right,a)):(this.point_to(s.ri ght,a),this.point_to(s.down,i)),this.point_to(s.right,r);else if(t.type==gantt.config.links.finish_to_start)if(o=e.e_x>e.x+2*r,this.point_to(s.right,r),o)a-=r,this.point_to(s.down,i),this.point_to(s.right,a);else{a-=2*r;var d=i>0?1:-1;this.point_to(s.down,d*(n.row_height/2)),this.point_to(s.right,a),this.point_to(s.down,d*(Math.abs(i)-n.row_height/2)),this.point_to(s.right,r)}else t.type==gantt.config.links.finish_to_finish&&(this.point_to(s.right,r),o?(this.point_to(s.right,a),this.point_to(s.down,i)):(this.point_to(s.down,i),this.point_to(s.right,a)),this.point_to(s.left,r));return this.path},get_endpoint:function(t){var e,n,i=gantt.config.links,a=gantt._get_visible_order(t.source),s=gantt._get_visible_order(t.target);return t.type==i.start_to_start?(e=gantt._pull[t.source].start_date,n=gantt._pull[t.target].start_date):t.type==i.finish_to_finish?(e=gantt._pull[t.source].end_date,n=gantt._pull[t.target].end_date):t.type==i.finish_to_start?(e=gantt._pull[t.source].end_date,n=gantt. _pull[t.target].start_date):dhtmlx.assert(!1,"Invalid link type"),{x:gantt.posFromDate(e),e_x:gantt.posFromDate(n),y:gantt._y_from_ind(a),e_y:gantt._y_from_ind(s)}}},gantt._init_links_dnd=function(){function t(t){var e=n(),i=["gantt_link_tooltip"];e.from&&e.to&&(gantt.isLinkAllowed(e.from,e.to,e.from_start,e.to_start)?i.push("gantt_allowed_link"):i.push("gantt_invalid_link"));var a=gantt.templates.drag_link_class(e.from,e.from_start,e.to,e.to_start);a&&i.push(a);var s="<div class='"+a+"'>"+gantt.templates.drag_link(e.from,e.from_start,e.to,e.to_start)+"</div>";t.innerHTML=s}function e(t,e){t.style.left=e.x+5+"px",t.style.top=e.y+5+"px"}function n(){return{from:gantt._link_source_task,to:gantt._link_target_task,from_start:gantt._link_source_task_start,to_start:gantt._link_target_task_start}}function i(){gantt._link_source_task=gantt._link_source_task_start=gantt._link_target_task=gantt._link_target_task_start=null}function a(t,e,i,a){var d=o(),l=n(),h=["gantt_link_direction"];gantt.t emplates.link_direction_class&&h.push(gantt.templates.link_direction_class(l.from,l.from_start,l.to,l.to_start));var _=Math.sqrt(Math.pow(i-t,2)+Math.pow(a-e,2));if(_=Math.max(0,_-3)){d.className=h.join(" ");var c=(a-e)/(i-t),g=Math.atan(c);2==r(t,i,e,a)?g+=Math.PI:3==r(t,i,e,a)&&(g-=Math.PI);var u=Math.sin(g),f=Math.cos(g),p=Math.round(e),m=Math.round(t),v=["-webkit-transform: rotate("+g+"rad)","-moz-transform: rotate("+g+"rad)","-ms-transform: rotate("+g+"rad)","-o-transform: rotate("+g+"rad)","transform: rotate("+g+"rad)","width:"+Math.round(_)+"px"];if(-1!=window.navigator.userAgent.indexOf("MSIE 8.0")){v.push('-ms-filter: "'+s(u,f)+'"');var x=Math.abs(Math.round(t-i)),k=Math.abs(Math.round(a-e));switch(r(t,i,e,a)){case 1:p-=k;break;case 2:m-=x,p-=k;break;case 3:m-=x}}v.push("top:"+p+"px"),v.push("left:"+m+"px"),d.style.cssText=v.join(";")}}function s(t,e){return"progid:DXImageTransform.Microsoft.Matrix(M11 = "+e+","+"M12 = -"+t+","+"M21 = "+t+","+"M22 = "+e+","+"SizingMethod = 'auto expand'"+")"}function r(t,e,n,i){return e>=t?n>=i?1:4:n>=i?2:3}function o(){return l._direction||(l._direction=document.createElement("div"),gantt.$task_links.appendChild(l._direction)),l._direction}function d(){l._direction&&(l._direction.parentNode&&l._direction.parentNode.removeChild(l._direction),l._direction=null)}var l=new dhtmlxDnD(this.$task_bars,{sensitivity:0,updates_per_second:60}),h="task_left",_="gantt_link_point",c="gantt_link_control";l.attachEvent("onBeforeDragStart",dhtmlx.bind(function(t,e){var n=e.target||e.srcElement;if(i(),gantt.getState().drag_id)return!1;if(gantt._locate_css(n,_)){gantt._locate_css(n,h)&&(gantt._link_source_task_start=!0);var a=gantt._link_source_task=this.locate(e),s=gantt.getTask(a);return this._dir_start={y:gantt._y_from_ind(gantt._get_visible_order(a))+gantt.config.row_height/2,x:gantt.posFromDate(gantt._link_source_task_start?s.start_date:s.end_date)},!0}return!1},this)),l.attachEvent("onAfterDragStart",dhtmlx.bind(function(){t(l.co nfig.marker)},this)),l.attachEvent("onDragMove",dhtmlx.bind(function(n,i){var s=l.config,r=l.getPosition(i);e(s.marker,r);var o=gantt._is_link_drop_area(i),d=gantt._link_target_task,_=gantt._link_landing,c=gantt._link_target_task_start,g=gantt.locate(i);if(o)var u=!1,u=!!gantt._locate_css(i,h),o=!!g;if(gantt._link_target_task=g,gantt._link_landing=o,gantt._link_target_task_start=u,o){var f=gantt.getTask(g),p=Math.floor((i.srcElement||i.target).offsetWidth/2);this._dir_end={y:gantt._y_from_ind(gantt._get_visible_order(g))+gantt.config.row_height/2,x:gantt.posFromDate(u?f.start_date:f.end_date)+(u?-1:1)*p}}else this._dir_end=gantt._get_mouse_pos(i);var m=!(_==o&&d==g&&c==u);return m&&(d&&gantt.refreshTask(d,!1),g&&gantt.refreshTask(g,!1)),m&&t(s.marker),a(this._dir_start.x,this._dir_start.y,this._dir_end.x,this._dir_end.y),!0},this)),l.attachEvent("onDragEnd",dhtmlx.bind(function(){var t=n();if(t.from&&t.to&&t.from!=t.to){var e=gantt._get_link_type(t.from_start,t.to_start);e&&gantt.ad dLink({source:t.from,target:t.to,type:e})}i(),t.from&&gantt.refreshTask(t.from,!1),t.to&&gantt.refreshTask(t.to,!1),d()},this)),gantt._is_link_drop_area=function(t){return!!gantt._locate_css(t,c)}},gantt._get_link_state=function(){return{link_landing_area:this._link_landing,link_target_id:this._link_target_task,link_target_start:this._link_target_task_start,link_source_id:this._link_source_task,link_source_start:this._link_source_task_start}},gantt._init_tasks=function(){function t(t,e,n,i){for(var a=0;a<t.length;a++)t[a].change_id(e,n),t[a].render_item(i)}this._tasks={col_width:this.config.columnWidth,width:[],full_width:0,trace_x:[],rendered:{}},this._click.gantt_task_link=dhtmlx.bind(function(t){var e=this.locate(t,gantt.config.link_attribute);e&&this.callEvent("onLinkClick",[e,t])},this),this._dbl_click.gantt_task_link=dhtmlx.bind(function(t,e){var e=this.locate(t,gantt.config.link_attribute);this._delete_link_handler(e,t)},this),this._dbl_click.gantt_link_point=dhtmlx.bind(func tion(t,e,n){var e=this.locate(t),i=this.getTask(e),a=null;return n.parentNode&&n.parentNode.className&&(a=n.parentNode.className.indexOf("_left")>-1?i.$target[0]:i.$source[0]),a&&this._delete_link_handler(a,t),!1},this),this._tasks_dnd.init(),this._init_links_dnd(),this._taskRenderer=gantt._task_renderer("line",this._render_task_element,this.$task_bars),this._linkRenderer=gantt._task_renderer("links",this._render_link_element,this.$task_links),this._gridRenderer=gantt._task_renderer("grid_items",this._render_grid_item,this.$grid_data),this._bgRenderer=gantt._task_renderer("bg_lines",this._render_bg_line,this.$task_bg),this.attachEvent("onTaskIdChange",function(e,n){var i=this._get_task_renderers();t(i,e,n,this.getTask(n))}),this.attachEvent("onLinkIdChange",function(e,n){var i=this._get_link_renderers();t(i,e,n,this.getLink(n))})},gantt._get_task_renderers=function(){return[this._taskRenderer,this._gridRenderer,this._bgRenderer]},gantt._get_link_renderers=function(){return[this._lin kRenderer]},gantt._delete_link_handler=function(t,e){if(t&&this.callEvent("onLinkDblClick",[t,e])){var n="",i=gantt.locale.labels.link+" "+this.templates.link_description(this.getLink(t))+" "+gantt.locale.labels.confirm_link_deleting;window.setTimeout(function(){gantt._dhtmlx_confirm(i,n,function(){gantt.deleteLink(t)})},gantt.config.touch?300:1)}},gantt.getTaskNode=function(t){return this._taskRenderer.rendered[t]},gantt.getLinkNode=function(t){return this._linkRenderer.rendered[t]},gantt._get_tasks_data=function(){for(var t=[],e=0;e<this._order.length;e++){var n=this._pull[this._order[e]];n.$index=e,this._update_parents(n.id,!0),t.push(n)}return t},gantt._get_links_data=function(){var t=[];for(var e in this._lpull)t.push(this._lpull[e]);return t},gantt._render_data=function(){this._update_layout_sizes();for(var t=this._get_tasks_data(),e=this._get_task_renderers(),n=0;n<e.length;n++)e[n].render_items(t);var i=gantt._get_links_data();e=this._get_link_renderers();for(var n=0;n<e.len gth;n++)e[n].render_items(i)},gantt._update_layout_sizes=function(){var t=this._tasks,e=this.config.task_height;"full"==e&&(e=this.config.row_height-5),e=Math.min(e,this.config.row_height),t.bar_height=e,this.$task_data.style.height=this.$task.offsetHeight-this.config.scale_height+"px",this.$task_bg.style.width=t.full_width+"px";for(var n=this.config.columns,i=0,a=0;a<n.length;a++)i+=n[a].width;this.$grid_data.style.width=i-1+"px"},gantt._init_tasks_range=function(){var t=this.config.scale_unit;if(this.config.start_date&&this.config.end_date)return this._min_date=this.date[t+"_start"](new Date(this.config.start_date)),this._max_date=this.date[t+"_start"](new Date(this.config.end_date)),void 0;var e=this._get_tasks_data(),n=this._init_task({id:0});e.push(n);var i=-1/0,a=1/0;this.eachTask(function(t){t.end_date&&+t.end_date>+i&&(i=new Date(t.end_date))},"0"),this.eachTask(function(t){t.start_date&&+t.start_date<+a&&(a=new Date(t.start_date))},"0"),this._min_date=a,this._max_date=i,i&& i!=-1/0||(this._min_date=new Date,this._max_date=new Date(this._min_date)),this._min_date=this.date[t+"_start"](this._min_date),+this._min_date==+a&&(this._min_date=this.date.add(this.date[t+"_start"](this._min_date),-1,t)),this._max_date=this.date[t+"_start"](this._max_date),this._max_date=this.date.add(this._max_date,1,t)},gantt._prepare_scale_html=function(t){var e=[],n=null,i=null,a=null;(t.template||t.date)&&(i=t.template||this.date.date_to_str(t.date)),a=t.css||gantt.templates.scale_cell_class;for(var s=0;s<t.count;s++){n=new Date(t.trace_x[s]);var r=i.call(this,n),o=t.width[s],d="width:"+o+"px;",l="gantt_scale_cell"+(s==t.count-1?" gantt_last_cell":""),h=a.call(this,n);h&&(l+=" "+h);var _="<div class='"+l+"' style='"+d+"'>"+r+"</div>";e.push(_)}return e.join("")},gantt._render_tasks_scales=function(){this._init_tasks_range(),this._scroll_resize(),this._set_sizes();var t=this._scale_helpers,e=[t.primaryScale()].concat(this.config.subscales);t.sortScales(e);for(var n=t.prepareC onfigs(e,this.config.min_column_width,this.$task.offsetWidth,this.config.scale_height-1),i=this._tasks=n[n.length-1],a=[],s=this.templates.scale_row_class,r=0;r<n.length;r++){var o="gantt_scale_line",d=s(n[r]);d&&(o+=" "+d),a.push('<div class="'+o+'" style="height:'+n[r].height+"px;line-height:"+n[r].height+'px">'+this._prepare_scale_html(n[r])+"</div>")}this.$task_scale.style.height=this.config.scale_height-1+"px",this.$task_data.style.width=this.$task_scale.style.width=i.full_width+this.$scroll_ver.offsetWidth+"px",this.$task_links.style.width=this.$task_bars.style.width=i.full_width+"px",e=a.join(""),this.$task_scale.innerHTML=e},gantt._render_bg_line=function(t){for(var e=gantt._tasks,n=e.count,i=[],a=0;n>a;a++){var s=e.width[a],r="width:"+s+"px;",o="gantt_task_cell"+(a==n-1?" gantt_last_cell":"");h=this.templates.task_cell_class(t,e.trace_x[a]),h&&(o+=" "+h);var d="<div class='"+o+"' style='"+r+"'></div>";i.push(d)}var l=0!==t.$index%2,h=gantt.templates.task_row_class(t.start_d ate,t.end_date,t),_="gantt_task_row"+(l?" odd":"")+(h?" "+h:"");this.getState().selected_task==t.id&&(_+=" gantt_selected");var c=document.createElement("div");return c.className=_,c.style.height=gantt.config.row_height+"px",c.setAttribute(this.config.task_attribute,t.id),c.innerHTML=i.join(""),c},gantt._adjust_scales=function(){if(this.config.fit_tasks){var t=+this._min_date,e=+this._max_date;if(this._init_tasks_range(),+this._min_date!=t||+this._max_date!=e)return this.render(),this.callEvent("onScaleAdjusted",[]),!0}return!1},gantt.refreshTask=function(t,e){var n=this._get_task_renderers(),i=this.getTask(t);if(i&&this.isTaskVisible(t))for(var a=0;a<n.length;a++)n[a].render_item(i);else for(var a=0;a<n.length;a++)n[a].remove_item(t);if(void 0===e||e){for(var i=this.getTask(t),a=0;a<i.$source.length;a++)gantt.refreshLink(i.$source[a]);for(var a=0;a<i.$target.length;a++)gantt.refreshLink(i.$target[a])}},gantt.refreshLink=function(t){this.isLinkExists(t)?gantt._render_link(t):gantt._ linkRenderer.remove_item(t)},gantt._combine_item_class=function(t,e,n){var i=[t];e&&i.push(e);var a=gantt.getState();this._is_flex_task(this.getTask(n))&&i.push("gantt_dependent_task"),this.config.select_task&&n==a.selected_task&&i.push("gantt_selected"),n==a.drag_id&&i.push("gantt_drag_"+a.drag_mode);var s=gantt._get_link_state();if(s.link_source_id==n&&i.push("gantt_link_source"),s.link_target_id==n&&i.push("gantt_link_target"),s.link_landing_area&&s.link_target_id&&s.link_source_id&&s.link_target_id!=s.link_source_id){var r=s.link_source_id,o=s.link_source_start,d=s.link_target_start,l=gantt.isLinkAllowed(r,n,o,d),h="";h=l?d?"link_start_allow":"link_finish_allow":d?"link_start_deny":"link_finish_deny",i.push(h)}return i.join(" ")},gantt._render_pair=function(t,e,n,i){var a=gantt.getState();+n.end_date<=+a.max_date&&t.appendChild(i(e+" task_right")),+n.start_date>=+a.min_date&&t.appendChild(i(e+" task_left"))},gantt._render_task_element=function(t){if(!(+t.start_date<+this._max_da te&&+t.end_date>+this._min_date))return!1;var e=this._get_task_coord(t),n=this.posFromDate(t.end_date),i=this.config,a=this._tasks.bar_height;a=Math.min(a,this.config.row_height);var s=Math.floor((this.config.row_height-a)/2),r=document.createElement("div"),o=Math.round(n-e.x);r.setAttribute(this.config.task_attribute,t.id),r.appendChild(gantt._render_task_content(t,o)),r.className=this._combine_item_class("gantt_task_line",this.templates.task_class(t.start_date,t.end_date,t),t.id),r.style.cssText=["left:"+e.x+"px","top:"+(s+e.y)+"px","height:"+a+"px","line-height:"+a+"px","width:"+o+"px"].join(";");var d=this._render_leftside_content(t);return d&&r.appendChild(d),d=this._render_rightside_content(t),d&&r.appendChild(d),i.show_progress&&thi... [truncated message content] |