31 lines
94 KiB
JavaScript
31 lines
94 KiB
JavaScript
if(!window.dhtmlx){dhtmlx=function(B){for(var A in B){dhtmlx[A]=B[A]}return dhtmlx}}dhtmlx.extend_api=function(A,D,C){var B=window[A];if(!B){return }window[A]=function(G){if(G&&typeof G=="object"&&!G.tagName&&!(G instanceof Array)){var F=B.apply(this,(D._init?D._init(G):arguments));for(var E in dhtmlx){if(D[E]){this[D[E]](dhtmlx[E])}}for(var E in G){if(D[E]){this[D[E]](G[E])}else{if(E.indexOf("on")==0){this.attachEvent(E,G[E])}}}}else{var F=B.apply(this,arguments)}if(D._patch){D._patch(this)}return F||this};window[A].prototype=B.prototype;if(C){dhtmlXHeir(window[A].prototype,C)}};dhtmlxAjax={get:function(A,C){var B=new dtmlXMLLoaderObject(true);B.async=(arguments.length<3);B.waitCall=C;B.loadXML(A);return B},post:function(A,C,D){var B=new dtmlXMLLoaderObject(true);B.async=(arguments.length<4);B.waitCall=D;B.loadXML(A,true,C);return B},getSync:function(A){return this.get(A,null,true)},postSync:function(A,B){return this.post(A,B,null,true)}};function dtmlXMLLoaderObject(B,D,C,A){this.xmlDoc="";if(typeof (C)!="undefined"){this.async=C}else{this.async=true}this.onloadAction=B||null;this.mainObject=D||null;this.waitCall=null;this.rSeed=A||false;return this}dtmlXMLLoaderObject.prototype.waitLoadFunction=function(B){var A=true;this.check=function(){if((B)&&(B.onloadAction!=null)){if((!B.xmlDoc.readyState)||(B.xmlDoc.readyState==4)){if(!A){return }A=false;if(typeof B.onloadAction=="function"){B.onloadAction(B.mainObject,null,null,null,B)}if(B.waitCall){B.waitCall.call(this,B);B.waitCall=null}}}};return this.check};dtmlXMLLoaderObject.prototype.getXMLTopNode=function(C,A){if(this.xmlDoc.responseXML){var B=this.xmlDoc.responseXML.getElementsByTagName(C);if(B.length==0&&C.indexOf(":")!=-1){var B=this.xmlDoc.responseXML.getElementsByTagName((C.split(":"))[1])}var E=B[0]}else{var E=this.xmlDoc.documentElement}if(E){this._retry=false;return E}if((_isIE)&&(!this._retry)){var D=this.xmlDoc.responseText;var A=this.xmlDoc;this._retry=true;this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM");this.xmlDoc.async=false;this.xmlDoc.loadXML(D);return this.getXMLTopNode(C,A)}dhtmlxError.throwError("LoadXML","Incorrect XML",[(A||this.xmlDoc),this.mainObject]);return document.createElement("DIV")};dtmlXMLLoaderObject.prototype.loadXMLString=function(B){try{var C=new DOMParser();this.xmlDoc=C.parseFromString(B,"text/xml")}catch(A){this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM");this.xmlDoc.async=this.async;this.xmlDoc.loadXML(B)}this.onloadAction(this.mainObject,null,null,null,this);if(this.waitCall){this.waitCall();this.waitCall=null}};dtmlXMLLoaderObject.prototype.loadXML=function(C,B,A,D){if(this.rSeed){C+=((C.indexOf("?")!=-1)?"&":"?")+"a_dhx_rSeed="+(new Date()).valueOf()}this.filePath=C;if((!_isIE)&&(window.XMLHttpRequest)){this.xmlDoc=new XMLHttpRequest()}else{this.xmlDoc=new ActiveXObject("Microsoft.XMLHTTP")}if(this.async){this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this)}this.xmlDoc.open(B?"POST":"GET",C,this.async);if(D){this.xmlDoc.setRequestHeader("User-Agent","dhtmlxRPC v0.1 ("+navigator.userAgent+")");this.xmlDoc.setRequestHeader("Content-type","text/xml")}else{if(B){this.xmlDoc.setRequestHeader("Content-type","application/x-www-form-urlencoded")}}this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest");this.xmlDoc.send(null||A);if(!this.async){(new this.waitLoadFunction(this))()}};dtmlXMLLoaderObject.prototype.destructor=function(){this.onloadAction=null;this.mainObject=null;this.xmlDoc=null;return null};dtmlXMLLoaderObject.prototype.xmlNodeToJSON=function(D){var C={};for(var B=0;B<D.attributes.length;B++){C[D.attributes[B].name]=D.attributes[B].value}C._tagvalue=D.firstChild?D.firstChild.nodeValue:"";for(var B=0;B<D.childNodes.length;B++){var A=D.childNodes[B].tagName;if(A){if(!C[A]){C[A]=[]}C[A].push(this.xmlNodeToJSON(D.childNodes[B]))}}return C};function callerFunction(A,B){this.handler=function(C){if(!C){C=window.event}A(C,B);return true};return this.handler}function getAbsoluteLeft(A){return getOffset(A).left}function getAbsoluteTop(A){return getOffset(A).top}function getOffsetSum(A){var C=0,B=0;while(A){C=C+parseInt(A.offsetTop);B=B+parseInt(A.offsetLeft);A=A.offsetParent}return{top:C,left:B}}function getOffsetRect(D){var G=D.getBoundingClientRect();var H=document.body;var B=document.documentElement;var A=window.pageYOffset||B.scrollTop||H.scrollTop;var E=window.pageXOffset||B.scrollLeft||H.scrollLeft;var F=B.clientTop||H.clientTop||0;var I=B.clientLeft||H.clientLeft||0;var J=G.top+A-F;var C=G.left+E-I;return{top:Math.round(J),left:Math.round(C)}}function getOffset(A){if(A.getBoundingClientRect&&!_isChrome){return getOffsetRect(A)}else{return getOffsetSum(A)}}function convertStringToBoolean(A){if(typeof (A)=="string"){A=A.toLowerCase()}switch(A){case"1":case"true":case"yes":case"y":case 1:case true:return true;break;default:return false}}function getUrlSymbol(A){if(A.indexOf("?")!=-1){return"&"}else{return"?"}}function dhtmlDragAndDropObject(){if(window.dhtmlDragAndDrop){return 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;return this}dhtmlDragAndDropObject.prototype.removeDraggableItem=function(A){A.onmousedown=null;A.dragStarter=null;A.dragLanding=null};dhtmlDragAndDropObject.prototype.addDraggableItem=function(A,B){A.onmousedown=this.preCreateDragCopy;A.dragStarter=B;this.addDragLanding(A,B)};dhtmlDragAndDropObject.prototype.addDragLanding=function(A,B){A.dragLanding=B};dhtmlDragAndDropObject.prototype.preCreateDragCopy=function(A){if((A||event)&&(A||event).button==2){return }if(window.dhtmlDragAndDrop.waitDrag){window.dhtmlDragAndDrop.waitDrag=0;document.body.onmouseup=window.dhtmlDragAndDrop.tempDOMU;document.body.onmousemove=window.dhtmlDragAndDrop.tempDOMM;return false}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();if((A)&&(A.preventDefault)){A.preventDefault();return false}return false};dhtmlDragAndDropObject.prototype.callDrag=function(C){if(!C){C=window.event}dragger=window.dhtmlDragAndDrop;if((new Date()).valueOf()-dragger.downtime<100){return }if(!dragger.dragNode&&dragger.waitDrag){dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode,C);if(!dragger.dragNode){return dragger.stopDrag()}dragger.dragNode.onselectstart=function(){return false};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){var A=dragger.gldragNode;if(dragger.gldragNode.old){A=dragger.gldragNode.old}A.parentNode.removeChild(A);var B=dragger.dragNode.pWindow;if(_isIE){var E=document.createElement("Div");E.innerHTML=dragger.dragNode.outerHTML;dragger.dragNode=E.childNodes[0]}else{dragger.dragNode=dragger.dragNode.cloneNode(true)}dragger.dragNode.pWindow=window;dragger.gldragNode.old=dragger.dragNode;document.body.appendChild(dragger.dragNode);B.dhtmlDragAndDrop.dragNode=dragger.dragNode}dragger.dragNode.style.left=C.clientX+15+(dragger.fx?dragger.fx*(-1):0)+(document.body.scrollLeft||document.documentElement.scrollLeft)+"px";dragger.dragNode.style.top=C.clientY+3+(dragger.fy?dragger.fy*(-1):0)+(document.body.scrollTop||document.documentElement.scrollTop)+"px";if(!C.srcElement){var D=C.target}else{D=C.srcElement}dragger.checkLanding(D,C)};dhtmlDragAndDropObject.prototype.calculateFramePosition=function(E){if(window.name){var C=parent.frames[window.name].frameElement.offsetParent;var D=0;var B=0;while(C){D+=C.offsetLeft;B+=C.offsetTop;C=C.offsetParent}if((parent.dhtmlDragAndDrop)){var A=parent.dhtmlDragAndDrop.calculateFramePosition(1);D+=A.split("_")[0]*1;B+=A.split("_")[1]*1}if(E){return D+"_"+B}else{this.fx=D}this.fy=B}return"0_0"};dhtmlDragAndDropObject.prototype.checkLanding=function(B,A){if((B)&&(B.dragLanding)){if(this.lastLanding){this.lastLanding.dragLanding._dragOut(this.lastLanding)}this.lastLanding=B;this.lastLanding=this.lastLanding.dragLanding._dragIn(this.lastLanding,this.dragStartNode,A.clientX,A.clientY,A);this.lastLanding_scr=(_isIE?A.srcElement:A.target)}else{if((B)&&(B.tagName!="BODY")){this.checkLanding(B.parentNode,A)}else{if(this.lastLanding){this.lastLanding.dragLanding._dragOut(this.lastLanding,A.clientX,A.clientY,A)}this.lastLanding=0;if(this._onNotFound){this._onNotFound()}}}};dhtmlDragAndDropObject.prototype.stopDrag=function(B,C){dragger=window.dhtmlDragAndDrop;if(!C){dragger.stopFrameRoute();var A=dragger.lastLanding;dragger.lastLanding=null;if(A){A.dragLanding._drag(dragger.dragStartNode,dragger.dragStartObject,A,(_isIE?event.srcElement:B.target))}}dragger.lastLanding=null;if((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(C){if(C){window.dhtmlDragAndDrop.stopDrag(1,1)}for(var A=0;A<window.frames.length;A++){try{if((window.frames[A]!=C)&&(window.frames[A].dhtmlDragAndDrop)){window.frames[A].dhtmlDragAndDrop.stopFrameRoute(window)}}catch(B){}}try{if((parent.dhtmlDragAndDrop)&&(parent!=window)&&(parent!=C)){parent.dhtmlDragAndDrop.stopFrameRoute(window)}}catch(B){}};dhtmlDragAndDropObject.prototype.initFrameRoute=function(C,D){if(C){window.dhtmlDragAndDrop.preCreateDragCopy({});window.dhtmlDragAndDrop.dragStartNode=C.dhtmlDragAndDrop.dragStartNode;window.dhtmlDragAndDrop.dragStartObject=C.dhtmlDragAndDrop.dragStartObject;window.dhtmlDragAndDrop.dragNode=C.dhtmlDragAndDrop.dragNode;window.dhtmlDragAndDrop.gldragNode=C.dhtmlDragAndDrop.dragNode;window.document.body.onmouseup=window.dhtmlDragAndDrop.stopDrag;window.waitDrag=0;if(((!_isIE)&&(D))&&((!_isFF)||(_FFrv<1.8))){window.dhtmlDragAndDrop.calculateFramePosition()}}try{if((parent.dhtmlDragAndDrop)&&(parent!=window)&&(parent!=C)){parent.dhtmlDragAndDrop.initFrameRoute(window)}}catch(B){}for(var A=0;A<window.frames.length;A++){try{if((window.frames[A]!=C)&&(window.frames[A].dhtmlDragAndDrop)){window.frames[A].dhtmlDragAndDrop.initFrameRoute(window,((!C||D)?1:0))}}catch(B){}}};_isFF=false;_isIE=false;_isOpera=false;_isKHTML=false;_isMacOS=false;_isChrome=false;_KHTMLrv=false;_OperaRv=false;_FFrv=false;if(navigator.userAgent.indexOf("Macintosh")!=-1){_isMacOS=true}if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){_isChrome=true}if((navigator.userAgent.indexOf("Safari")!=-1)||(navigator.userAgent.indexOf("Konqueror")!=-1)){var _KHTMLrv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Safari")+7,5));if(_KHTMLrv>525){_isFF=true;var _FFrv=1.9}else{_isKHTML=true}}else{if(navigator.userAgent.indexOf("Opera")!=-1){_isOpera=true;_OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Opera")+6,3))}else{if(navigator.appName.indexOf("Microsoft")!=-1){_isIE=true;if(navigator.appVersion.indexOf("MSIE 8.0")!=-1&&document.compatMode!="BackCompat"){_isIE=8}}else{_isFF=true;var _FFrv=parseFloat(navigator.userAgent.split("rv:")[1])}}}dtmlXMLLoaderObject.prototype.doXPath=function(C,E,D,I){if(_isKHTML||(!_isIE&&!window.XPathResult)){return this.doXPathOpera(C,E)}if(_isIE){if(!E){if(!this.xmlDoc.nodeName){E=this.xmlDoc.responseXML}else{E=this.xmlDoc}}if(!E){dhtmlxError.throwError("LoadXML","Incorrect XML",[(E||this.xmlDoc),this.mainObject])}if(D!=null){E.setProperty("SelectionNamespaces","xmlns:xsl='"+D+"'")}if(I=="single"){return E.selectSingleNode(C)}else{return E.selectNodes(C)||new Array(0)}}else{var A=E;if(!E){if(!this.xmlDoc.nodeName){E=this.xmlDoc.responseXML}else{E=this.xmlDoc}}if(!E){dhtmlxError.throwError("LoadXML","Incorrect XML",[(E||this.xmlDoc),this.mainObject])}if(E.nodeName.indexOf("document")!=-1){A=E}else{A=E;E=E.ownerDocument}var G=XPathResult.ANY_TYPE;if(I=="single"){G=XPathResult.FIRST_ORDERED_NODE_TYPE}var F=new Array();var B=E.evaluate(C,A,function(J){return D},G,null);if(G==XPathResult.FIRST_ORDERED_NODE_TYPE){return B.singleNodeValue}var H=B.iterateNext();while(H){F[F.length]=H;H=B.iterateNext()}return F}};function _dhtmlxError(B,A,C){if(!this.catches){this.catches=new Array()}return this}_dhtmlxError.prototype.catchError=function(B,A){this.catches[B]=A};_dhtmlxError.prototype.throwError=function(B,A,C){if(this.catches[B]){return this.catches[B](B,A,C)}if(this.catches.ALL){return this.catches.ALL(B,A,C)}alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]);return null};window.dhtmlxError=new _dhtmlxError();dtmlXMLLoaderObject.prototype.doXPathOpera=function(C,A){var E=C.replace(/[\/]+/gi,"/").split("/");var D=null;var B=1;if(!E.length){return[]}if(E[0]=="."){D=[A]}else{if(E[0]==""){D=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(E[B].replace(/\[[^\]]*\]/g,""));B++}else{return[]}}for(B;B<E.length;B++){D=this._getAllNamedChilds(D,E[B])}if(E[B-1].indexOf("[")!=-1){D=this._filterXPath(D,E[B-1])}return D};dtmlXMLLoaderObject.prototype._filterXPath=function(B,A){var D=new Array();var A=A.replace(/[^\[]*\[\@/g,"").replace(/[\[\]\@]*/g,"");for(var C=0;C<B.length;C++){if(B[C].getAttribute(A)){D[D.length]=B[C]}}return D};dtmlXMLLoaderObject.prototype._getAllNamedChilds=function(B,A){var E=new Array();if(_isKHTML){A=A.toUpperCase()}for(var D=0;D<B.length;D++){for(var C=0;C<B[D].childNodes.length;C++){if(_isKHTML){if(B[D].childNodes[C].tagName&&B[D].childNodes[C].tagName.toUpperCase()==A){E[E.length]=B[D].childNodes[C]}}else{if(B[D].childNodes[C].tagName==A){E[E.length]=B[D].childNodes[C]}}}}return E};function dhtmlXHeir(B,A){for(var C in A){if(typeof (A[C])=="function"){B[C]=A[C]}}return B}function dhtmlxEvent(B,C,A){if(B.addEventListener){B.addEventListener(C,A,false)}else{if(B.attachEvent){B.attachEvent("on"+C,A)}}}dtmlXMLLoaderObject.prototype.xslDoc=null;dtmlXMLLoaderObject.prototype.setXSLParamValue=function(B,C,D){if(!D){D=this.xslDoc}if(D.responseXML){D=D.responseXML}var A=this.doXPath("/xsl:stylesheet/xsl:variable[@name='"+B+"']",D,"http://www.w3.org/1999/XSL/Transform","single");if(A!=null){A.firstChild.nodeValue=C}};dtmlXMLLoaderObject.prototype.doXSLTransToObject=function(D,B){if(!D){D=this.xslDoc}if(D.responseXML){D=D.responseXML}if(!B){B=this.xmlDoc}if(B.responseXML){B=B.responseXML}if(!_isIE){if(!this.XSLProcessor){this.XSLProcessor=new XSLTProcessor();this.XSLProcessor.importStylesheet(D)}var A=this.XSLProcessor.transformToDocument(B)}else{var A=new ActiveXObject("Msxml2.DOMDocument.3.0");try{B.transformNodeToObject(D,A)}catch(C){A=B.transformNode(D)}}return A};dtmlXMLLoaderObject.prototype.doXSLTransToString=function(C,B){var A=this.doXSLTransToObject(C,B);if(typeof (A)=="string"){return A}return this.doSerialization(A)};dtmlXMLLoaderObject.prototype.doSerialization=function(B){if(!B){B=this.xmlDoc}if(B.responseXML){B=B.responseXML}if(!_isIE){var A=new XMLSerializer();return A.serializeToString(B)}else{return B.xml}};dhtmlxEventable=function(obj){obj.dhx_SeverCatcherPath="";obj.attachEvent=function(name,catcher,callObj){name="ev_"+name.toLowerCase();if(!this[name]){this[name]=new this.eventCatcher(callObj||this)}return(name+":"+this[name].addEvent(catcher))};obj.callEvent=function(name,arg0){name="ev_"+name.toLowerCase();if(this[name]){return this[name].apply(this,arg0)}return true};obj.checkEvent=function(name){return(!!this["ev_"+name.toLowerCase()])};obj.eventCatcher=function(obj){var dhx_catch=[];var z=function(){var res=true;for(var i=0;i<dhx_catch.length;i++){if(dhx_catch[i]!=null){var zr=dhx_catch[i].apply(obj,arguments);res=res&&zr}}return res};z.addEvent=function(ev){if(typeof (ev)!="function"){ev=eval(ev)}if(ev){return dhx_catch.push(ev)-1}return false};z.removeEvent=function(id){dhx_catch[id]=null};return z};obj.detachEvent=function(id){if(id!=false){var list=id.split(":");this[list[0]].removeEvent(list[1])}};obj.detachAllEvents=function(){for(var name in this){if(name.indexOf("ev_")==0){delete this[name]}}}};if(!window.dhtmlx){window.dhtmlx={}}(function(){var J=null;function L(Q,O){var P=Q.callback;K(false);Q.box.parentNode.removeChild(Q.box);J=Q.box=null;if(P){P(O)}}function A(P){if(J){P=P||event;var O=P.which||event.keyCode;if(dhtmlx.message.keyboard){if(O==13||O==32){L(J,true)}if(O==27){L(J,false)}}if(P.preventDefault){P.preventDefault()}return !(P.cancelBubble=true)}}if(document.attachEvent){document.attachEvent("onkeydown",A)}else{document.addEventListener("keydown",A,true)}function K(P){if(!K.cover){K.cover=document.createElement("DIV");K.cover.onkeydown=A;K.cover.className="dhx_modal_cover";document.body.appendChild(K.cover)}var O=document.body.scrollHeight;K.cover.style.display=P?"inline-block":"none"}function F(P,O){return"<div class='dhtmlx_popup_button' result='"+O+"' ><div>"+P+"</div></div>"}function C(P){if(!M.area){M.area=document.createElement("DIV");M.area.className="dhtmlx_message_area";M.area.style[M.position]="5px";document.body.appendChild(M.area)}M.hide(P.id);var O=document.createElement("DIV");O.innerHTML="<div>"+P.text+"</div>";O.className="dhtmlx-info dhtmlx-"+P.type;O.onclick=function(){M.hide(P.id);P=null};if(M.position=="bottom"&&M.area.firstChild){M.area.insertBefore(O,M.area.firstChild)}else{M.area.appendChild(O)}if(P.expire>0){M.timers[P.id]=window.setTimeout(function(){M.hide(P.id)},P.expire)}M.pull[P.id]=O;O=null;return P.id}function G(P,R,U){var T=document.createElement("DIV");T.className=" dhtmlx_modal_box dhtmlx-"+P.type;T.setAttribute("dhxbox",1);var O="";if(P.width){T.style.width=P.width}if(P.height){T.style.height=P.height}if(P.title){O+='<div class="dhtmlx_popup_title">'+P.title+"</div>"}O+='<div class="dhtmlx_popup_text"><span>'+(P.content?"":P.text)+'</span></div><div class="dhtmlx_popup_controls">';if(R){O+=F(P.ok||"OK",true)}if(U){O+=F(P.cancel||"Cancel",false)}if(P.buttons){for(var Q=0;Q<P.buttons.length;Q++){O+=F(P.buttons[Q],Q)}}O+="</div>";T.innerHTML=O;if(P.content){var S=P.content;if(typeof S=="string"){S=document.getElementById(S)}if(S.style.display=="none"){S.style.display=""}T.childNodes[P.title?1:0].appendChild(S)}T.onclick=function(W){W=W||event;var V=W.target||W.srcElement;if(!V.className){V=V.parentNode}if(V.className=="dhtmlx_popup_button"){result=V.getAttribute("result");result=(result=="true")||(result=="false"?false:result);L(P,result)}};P.box=T;if(R||U){J=P}return T}function N(P,Q,S){var R=P.tagName?P:G(P,Q,S);if(!P.hidden){K(true)}document.body.appendChild(R);var O=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-R.offsetWidth)/2));var T=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-R.offsetHeight)/2));if(P.position=="top"){R.style.top="-3px"}else{R.style.top=T+"px"}R.style.left=O+"px";R.onkeydown=A;R.focus();if(P.hidden){dhtmlx.modalbox.hide(R)}return R}function I(O){return N(O,true,false)}function B(O){return N(O,true,true)}function E(O){return N(O)}function H(P,O,Q){if(typeof P!="object"){if(typeof O=="function"){Q=O;O=""}P={text:P,type:O,callback:Q}}return P}function D(Q,P,O,R){if(typeof Q!="object"){Q={text:Q,type:P,expire:O,id:R}}Q.id=Q.id||M.uid();Q.expire=Q.expire||M.expire;return Q}dhtmlx.alert=function(){text=H.apply(this,arguments);text.type=text.type||"confirm";return I(text)};dhtmlx.confirm=function(){text=H.apply(this,arguments);text.type=text.type||"alert";return B(text)};dhtmlx.modalbox=function(){text=H.apply(this,arguments);text.type=text.type||"alert";return E(text)};dhtmlx.modalbox.hide=function(O){while(O&&O.getAttribute&&!O.getAttribute("dhxbox")){O=O.parentNode}if(O){O.parentNode.removeChild(O);K(false)}};var M=dhtmlx.message=function(R,Q,P,S){R=D.apply(this,arguments);R.type=R.type||"info";var O=R.type.split("-")[0];switch(O){case"alert":return I(R);case"confirm":return B(R);case"modalbox":return E(R);default:return C(R);break}};M.seed=(new Date()).valueOf();M.uid=function(){return M.seed++};M.expire=4000;M.keyboard=true;M.position="top";M.pull={};M.timers={};M.hideAll=function(){for(var O in M.pull){M.hide(O)}};M.hide=function(P){var O=M.pull[P];if(O&&O.parentNode){window.setTimeout(function(){O.parentNode.removeChild(O);O=null},2000);O.className+=" hidden";if(M.timers[P]){window.clearTimeout(M.timers[P])}delete M.pull[P]}}})();function dataProcessor(A){this.serverProcessor=A;this.action_param="!nativeeditor_status";this.object=null;this.updatedRows=[];this.autoUpdate=true;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(true);dhtmlxEventable(this);return this}dataProcessor.prototype={setTransactionMode:function(B,A){this._tMode=B;this._tSend=A},escape:function(A){if(this._utf){return encodeURIComponent(A)}else{return escape(A)}},enableUTFencoding:function(A){this._utf=convertStringToBoolean(A)},setDataColumns:function(A){this._columns=(typeof A=="string")?A.split(","):A},getSyncState:function(){return !this.updatedRows.length},enableDataNames:function(A){this._endnm=convertStringToBoolean(A)},enablePartialDataSend:function(A){this._changed=convertStringToBoolean(A)},setUpdateMode:function(B,A){this.autoUpdate=(B=="cell");this.updateMode=B;this.dnd=A},ignore:function(B,A){this._silent_mode=true;B.call(A||window);this._silent_mode=false},setUpdated:function(D,C,E){if(this._silent_mode){return }var B=this.findRow(D);E=E||"updated";var A=this.obj.getUserData(D,this.action_param);if(A&&E=="updated"){E=A}if(C){this.set_invalid(D,false);this.updatedRows[B]=D;this.obj.setUserData(D,this.action_param,E);if(this._in_progress[D]){this._in_progress[D]="wait"}}else{if(!this.is_invalid(D)){this.updatedRows.splice(B,1);this.obj.setUserData(D,this.action_param,"")}}if(!C){this._clearUpdateFlag(D)}this.markRow(D,C,E);if(C&&this.autoUpdate){this.sendData(D)}},_clearUpdateFlag:function(A){},markRow:function(F,C,E){var D="";var B=this.is_invalid(F);if(B){D=this.styles[B];C=true}if(this.callEvent("onRowMark",[F,C,E,B])){D=this.styles[C?E:"clear"]+D;this.obj[this._methods[0]](F,D);if(B&&B.details){D+=this.styles[B+"_cell"];for(var A=0;A<B.details.length;A++){if(B.details[A]){this.obj[this._methods[1]](F,A,D)}}}}},getState:function(A){return this.obj.getUserData(A,this.action_param)},is_invalid:function(A){return this._invalid[A]},set_invalid:function(C,B,A){if(A){B={value:B,details:A,toString:function(){return this.value.toString()}}}this._invalid[C]=B},checkBeforeUpdate:function(A){return true},sendData:function(A){if(this._waitMode&&(this.obj.mytype=="tree"||this.obj._h2)){return }if(this.obj.editStop){this.obj.editStop()}if(typeof A=="undefined"||this._tSend){return this.sendAllData()}if(this._in_progress[A]){return false}this.messages=[];if(!this.checkBeforeUpdate(A)&&this.callEvent("onValidatationError",[A,this.messages])){return false}this._beforeSendData(this._getRowData(A),A)},_beforeSendData:function(A,B){if(!this.callEvent("onBeforeUpdate",[B,this.getState(B),A])){return false}this._sendData(A,B)},serialize:function(D,E){if(typeof D=="string"){return D}if(typeof E!="undefined"){return this.serialize_one(D,"")}else{var A=[];var C=[];for(var B in D){if(D.hasOwnProperty(B)){A.push(this.serialize_one(D[B],B+this.post_delim));C.push(B)}}A.push("ids="+this.escape(C.join(",")));return A.join("&")}},serialize_one:function(D,B){if(typeof D=="string"){return D}var A=[];for(var C in D){if(D.hasOwnProperty(C)){A.push(this.escape((B||"")+C)+"="+this.escape(D[C]))}}return A.join("&")},_sendData:function(B,C){if(!B){return }if(!this.callEvent("onBeforeDataSending",C?[C,this.getState(C),B]:[null,null,B])){return false}if(C){this._in_progress[C]=(new Date()).valueOf()}var A=new dtmlXMLLoaderObject(this.afterUpdate,this,true);var D=this.serverProcessor+(this._user?(getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&")):"");if(this._tMode!="POST"){A.loadXML(D+((D.indexOf("?")!=-1)?"&":"?")+this.serialize(B,C))}else{A.loadXML(D,true,this.serialize(B,C))}this._waitMode++},sendAllData:function(){if(!this.updatedRows.length){return }this.messages=[];var B=true;for(var A=0;A<this.updatedRows.length;A++){B&=this.checkBeforeUpdate(this.updatedRows[A])}if(!B&&!this.callEvent("onValidatationError",["",this.messages])){return false}if(this._tSend){this._sendData(this._getAllData())}else{for(var A=0;A<this.updatedRows.length;A++){if(!this._in_progress[this.updatedRows[A]]){if(this.is_invalid(this.updatedRows[A])){continue}this._beforeSendData(this._getRowData(this.updatedRows[A]),this.updatedRows[A]);if(this._waitMode&&(this.obj.mytype=="tree"||this.obj._h2)){return }}}}},_getAllData:function(D){var B={};var A=false;for(var C=0;C<this.updatedRows.length;C++){var E=this.updatedRows[C];if(this._in_progress[E]||this.is_invalid(E)){continue}if(!this.callEvent("onBeforeUpdate",[E,this.getState(E)])){continue}B[E]=this._getRowData(E,E+this.post_delim);A=true;this._in_progress[E]=(new Date()).valueOf()}return A?B:null},setVerificator:function(B,A){this.mandatoryFields[B]=A||(function(C){return(C!="")})},clearVerificator:function(A){this.mandatoryFields[A]=false},findRow:function(B){var A=0;for(A=0;A<this.updatedRows.length;A++){if(B==this.updatedRows[A]){break}}return A},defineAction:function(A,B){if(!this._uActions){this._uActions=[]}this._uActions[A]=B},afterUpdateCallback:function(B,G,F,E){var A=B;var D=(F!="error"&&F!="invalid");if(!D){this.set_invalid(B,F)}if((this._uActions)&&(this._uActions[F])&&(!this._uActions[F](E))){return(delete this._in_progress[A])}if(this._in_progress[A]!="wait"){this.setUpdated(B,false)}var C=B;switch(F){case"update":case"updated":case"inserted":case"insert":if(G!=B){this.obj[this._methods[2]](B,G);B=G}break;case"delete":case"deleted":this.obj.setUserData(B,this.action_param,"true_deleted");this.obj[this._methods[3]](B);delete this._in_progress[A];return this.callEvent("onAfterUpdate",[B,F,G,E]);break}if(this._in_progress[A]!="wait"){if(D){this.obj.setUserData(B,this.action_param,"")}delete this._in_progress[A]}else{delete this._in_progress[A];this.setUpdated(G,true,this.obj.getUserData(B,this.action_param))}this.callEvent("onAfterUpdate",[B,F,G,E])},afterUpdate:function(G,K,I,H,F){F.getXMLTopNode("data");if(!F.xmlDoc.responseXML){return }var J=F.doXPath("//data/action");for(var D=0;D<J.length;D++){var E=J[D];var C=E.getAttribute("type");var A=E.getAttribute("sid");var B=E.getAttribute("tid");G.afterUpdateCallback(A,B,C,E)}G.finalizeUpdate()},finalizeUpdate:function(){if(this._waitMode){this._waitMode--}if((this.obj.mytype=="tree"||this.obj._h2)&&this.updatedRows.length){this.sendData()}this.callEvent("onAfterUpdateFinish",[]);if(!this.updatedRows.length){this.callEvent("onFullSync",[])}},init:function(A){this.obj=A;if(this.obj._dp_init){this.obj._dp_init(this)}},setOnAfterUpdate:function(A){this.attachEvent("onAfterUpdate",A)},enableDebug:function(A){},setOnBeforeUpdateHandler:function(A){this.attachEvent("onBeforeDataSending",A)},
|
|
/* starts autoupdate mode
|
|
@param interval
|
|
time interval for sending update requests
|
|
*/
|
|
setAutoUpdate:function(C,B){C=C||2000;this._user=B||(new Date()).valueOf();this._need_update=false;this._loader=null;this._update_busy=false;this.attachEvent("onAfterUpdate",function(D,F,G,E){this.afterAutoUpdate(D,F,G,E)});this.attachEvent("onFullSync",function(){this.fullSync()});var A=this;window.setInterval(function(){A.loadUpdate()},C)},
|
|
/* process updating request answer
|
|
if status == collision version is depricated
|
|
set flag for autoupdating immidiatly
|
|
*/
|
|
afterAutoUpdate:function(A,C,D,B){if(C=="collision"){this._need_update=true;return false}else{return true}},
|
|
/* callback function for onFillSync event
|
|
call update function if it's need
|
|
*/
|
|
fullSync:function(){if(this._need_update==true){this._need_update=false;this.loadUpdate()}return true},
|
|
/* sends query to the server and call callback function
|
|
*/
|
|
getUpdates:function(A,B){if(this._update_busy){return false}else{this._update_busy=true}this._loader=this._loader||new dtmlXMLLoaderObject(true);this._loader.async=true;this._loader.waitCall=B;this._loader.loadXML(A)},
|
|
/* returns xml node value
|
|
@param node
|
|
xml node
|
|
*/
|
|
_v:function(A){if(A.firstChild){return A.firstChild.nodeValue}return""},
|
|
/* returns values array of xml nodes array
|
|
@param arr
|
|
array of xml nodes
|
|
*/
|
|
_a:function(A){var C=[];for(var B=0;B<A.length;B++){C[B]=this._v(A[B])}return C},
|
|
/* loads updates and processes them
|
|
*/
|
|
loadUpdate:function(){var B=this;var A=this.obj.getUserData(0,"version");var C=this.serverProcessor+getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+A].join("&");C=C.replace("editing=true&","");this.getUpdates(C,function(){var F=B._loader.doXPath("//userdata");B.obj.setUserData(0,"version",B._v(F[0]));var D=B._loader.doXPath("//update");if(D.length){B._silent_mode=true;for(var G=0;G<D.length;G++){var E=D[G].getAttribute("status");var I=D[G].getAttribute("id");var H=D[G].getAttribute("parent");switch(E){case"inserted":B.callEvent("insertCallback",[D[G],I,H]);break;case"updated":B.callEvent("updateCallback",[D[G],I,H]);break;case"deleted":B.callEvent("deleteCallback",[D[G],I,H]);break}}B._silent_mode=false}B._update_busy=false;B=null})}};if(window.dhtmlXGridObject){dhtmlXGridObject.prototype._init_point_connector=dhtmlXGridObject.prototype._init_point;dhtmlXGridObject.prototype._init_point=function(){var A=function(E){E=E.replace(/(\?|\&)connector[^\f]*/g,"");return E+(E.indexOf("?")!=-1?"&":"?")+"connector=true"+(this.hdr.rows.length>0?"&dhx_no_header=1":"")};var D=function(E){return A.call(this,E)+(this._connector_sorting||"")+(this._connector_filter||"")};var C=function(F,G,E){this._connector_sorting="&dhx_sort["+G+"]="+E;return D.call(this,F)};var B=function(F,E,H){for(var G=0;G<E.length;G++){E[G]="dhx_filter["+E[G]+"]="+encodeURIComponent(H[G])}this._connector_filter="&"+E.join("&");return D.call(this,F)};this.attachEvent("onCollectValues",function(E){if(this._con_f_used[E]){if(typeof (this._con_f_used[E])=="object"){return this._con_f_used[E]}else{return false}}return true});this.attachEvent("onDynXLS",function(){this.xmlFileUrl=D.call(this,this.xmlFileUrl);return true});this.attachEvent("onBeforeSorting",function(H,G,F){if(G=="connector"){var E=this;this.clearAndLoad(C.call(this,this.xmlFileUrl,H,F),function(){E.setSortImgState(true,H,F)});return false}return true});this.attachEvent("onFilterStart",function(F,E){if(this._con_f_used.length){this.clearAndLoad(B.call(this,this.xmlFileUrl,F,E));return false}return true});this.attachEvent("onXLE",function(F,E,H,G){if(!G){return }});if(this._init_point_connector){this._init_point_connector()}};dhtmlXGridObject.prototype._con_f_used=[];dhtmlXGridObject.prototype._in_header_connector_text_filter=function(B,A){if(!this._con_f_used[A]){this._con_f_used[A]=1}return this._in_header_text_filter(B,A)};dhtmlXGridObject.prototype._in_header_connector_select_filter=function(B,A){if(!this._con_f_used[A]){this._con_f_used[A]=2}return this._in_header_select_filter(B,A)};dhtmlXGridObject.prototype.load_connector=dhtmlXGridObject.prototype.load;dhtmlXGridObject.prototype.load=function(B,E,D){if(!this._colls_loaded&&this.cellType){var A=[];for(var C=0;C<this.cellType.length;C++){if(this.cellType[C].indexOf("co")==0||this._con_f_used[C]==2){A.push(C)}}if(A.length){arguments[0]+=(arguments[0].indexOf("?")!=-1?"&":"?")+"connector=true&dhx_colls="+A.join(",")}}return this.load_connector.apply(this,arguments)};dhtmlXGridObject.prototype._parseHead_connector=dhtmlXGridObject.prototype._parseHead;dhtmlXGridObject.prototype._parseHead=function(A,L,I){this._parseHead_connector.apply(this,arguments);if(!this._colls_loaded){var J=this.xmlLoader.doXPath("./coll_options",arguments[0]);for(var F=0;F<J.length;F++){var H=J[F].getAttribute("for");var K=[];var C=null;if(this.cellType[H]=="combo"){C=this.getColumnCombo(H)}if(this.cellType[H].indexOf("co")==0){C=this.getCombo(H)}var E=this.xmlLoader.doXPath("./item",J[F]);for(var D=0;D<E.length;D++){var B=E[D].getAttribute("value");if(C){var G=E[D].getAttribute("label")||B;if(C.addOption){C.addOption([[B,G]])}else{C.put(B,G)}K[K.length]=G}else{K[K.length]=B}}if(this._con_f_used[H*1]){this._con_f_used[H*1]=K}}this._colls_loaded=true}}}if(window.dataProcessor){dataProcessor.prototype.init_original=dataProcessor.prototype.init;dataProcessor.prototype.init=function(A){this.init_original(A);A._dataprocessor=this;this.setTransactionMode("POST",true);this.serverProcessor+=(this.serverProcessor.indexOf("?")!=-1?"&":"?")+"editing=true"}}dhtmlxError.catchError("LoadXML",function(B,A,C){if(C[0].status!=0){alert(C[0].responseText)}});window.dhtmlXScheduler=window.scheduler={version:3};dhtmlxEventable(scheduler);scheduler.init=function(C,A,B){A=A||(new Date());B=B||"week";scheduler.date.init();this._obj=(typeof C=="string")?document.getElementById(C):C;this._els=[];this._scroll=true;this._quirks=(_isIE&&document.compatMode=="BackCompat");this._quirks7=(_isIE&&navigator.appVersion.indexOf("MSIE 8")==-1);this.get_elements();this.init_templates();this.set_actions();dhtmlxEvent(window,"resize",function(){window.clearTimeout(scheduler._resize_timer);scheduler._resize_timer=window.setTimeout(function(){if(scheduler.callEvent("onSchedulerResize",[])){scheduler.update_view()}},100)});this.set_sizes();scheduler.callEvent("onSchedulerReady",[]);this.setCurrentView(A,B)};scheduler.xy={nav_height:22,min_event_height:40,scale_width:50,bar_height:20,scroll_width:18,scale_height:20,month_scale_height:20,menu_width:25,margin_top:0,margin_left:0,editor_width:140};scheduler.keys={edit_save:13,edit_cancel:27};scheduler.set_sizes=function(){var B=this._x=this._obj.clientWidth-this.xy.margin_left;var D=this._y=this._obj.clientHeight-this.xy.margin_top;var E=this._table_view?0:(this.xy.scale_width+this.xy.scroll_width);var A=this._table_view?-1:this.xy.scale_width;this.set_xy(this._els.dhx_cal_navline[0],B,this.xy.nav_height,0,0);this.set_xy(this._els.dhx_cal_header[0],B-E,this.xy.scale_height,A,this.xy.nav_height+(this._quirks?-1:1));var F=this._els.dhx_cal_navline[0].offsetHeight;if(F>0){this.xy.nav_height=F}var C=this.xy.scale_height+this.xy.nav_height+(this._quirks?-2:0);this.set_xy(this._els.dhx_cal_data[0],B,D-(C+2),0,C+2)};scheduler.set_xy=function(D,B,C,A,E){D.style.width=Math.max(0,B)+"px";D.style.height=Math.max(0,C)+"px";if(arguments.length>3){D.style.left=A+"px";D.style.top=E+"px"}};scheduler.get_elements=function(){var D=this._obj.getElementsByTagName("DIV");for(var C=0;C<D.length;C++){var A=D[C].className;if(A){A=A.split(" ")[0]}if(!this._els[A]){this._els[A]=[]}this._els[A].push(D[C]);var B=scheduler.locale.labels[D[C].getAttribute("name")||A];if(B){D[C].innerHTML=B}}};scheduler.set_actions=function(){for(var A in this._els){if(this._click[A]){for(var B=0;B<this._els[A].length;B++){this._els[A][B].onclick=scheduler._click[A]}}}this._obj.onselectstart=function(C){return false};this._obj.onmousemove=function(C){scheduler._on_mouse_move(C||event)};this._obj.onmousedown=function(C){scheduler._on_mouse_down(C||event)};this._obj.onmouseup=function(C){scheduler._on_mouse_up(C||event)};this._obj.ondblclick=function(C){scheduler._on_dbl_click(C||event)}};scheduler.select=function(A){if(this._table_view){return }if(this._select_id==A){return }this.editStop(false);this.unselect();this._select_id=A;this.updateEvent(A)};scheduler.unselect=function(B){if(B&&B!=this._select_id){return }var A=this._select_id;this._select_id=null;if(A){this.updateEvent(A)}};scheduler.getState=function(){return{mode:this._mode,date:this._date,min_date:this._min_date,max_date:this._max_date,editor_id:this._edit_id,lightbox_id:this._lightbox_id,new_event:this._new_event,select_id:this._select_id,expanded:this.expanded,drag_id:this._drag_id,drag_mode:this._drag_mode}};scheduler._click={dhx_cal_data:function(C){var B=C?C.target:event.srcElement;var D=scheduler._locate_event(B);C=C||event;if(!D){scheduler.callEvent("onEmptyClick",[scheduler.getActionData(C).date,C])}else{if(!scheduler.callEvent("onClick",[D,C])||scheduler.config.readonly){return }}if(D&&scheduler.config.select){scheduler.select(D);var A=B.className;if(A.indexOf("_icon")!=-1){scheduler._click.buttons[A.split(" ")[1].replace("icon_","")](D)}}else{scheduler._close_not_saved()}},dhx_cal_prev_button:function(){scheduler._click.dhx_cal_next_button(0,-1)},dhx_cal_next_button:function(B,A){scheduler.setCurrentView(scheduler.date.add(scheduler.date[scheduler._mode+"_start"](scheduler._date),(A||1),scheduler._mode))},dhx_cal_today_button:function(){scheduler.setCurrentView(new Date())},dhx_cal_tab:function(){var A=this.getAttribute("name");var B=A.substring(0,A.search("_tab"));scheduler.setCurrentView(scheduler._date,B)},buttons:{"delete":function(B){var A=scheduler.locale.labels.confirm_deleting;scheduler._dhtmlx_confirm(A,function(){scheduler.deleteEvent(B)})},edit:function(A){scheduler.edit(A)},save:function(A){scheduler.editStop(true)},details:function(A){scheduler.showLightbox(A)},cancel:function(A){scheduler.editStop(false)}}};scheduler._dhtmlx_confirm=function(A,B){if(!A){return B()}dhtmlx.confirm(A,function(C){if(C){B()}})};scheduler.addEventNow=function(H,B,D){var C={};if(H&&H.constructor.toString().match(/object/i)!==null){C=H;H=null}var E=(this.config.event_duration||this.config.time_step)*60000;if(!H){H=Math.round((new Date()).valueOf()/E)*E}var A=new Date(H);if(!B){var G=this.config.first_hour;if(G>A.getHours()){A.setHours(G);H=A.valueOf()}B=H.valueOf()+E}var F=new Date(B);if(A.valueOf()==F.valueOf()){F.setTime(F.valueOf()+E)}C.start_date=C.start_date||A;C.end_date=C.end_date||F;C.text=C.text||this.locale.labels.new_event;C.id=this._drag_id=this.uid();this._drag_mode="new-size";this._loading=true;this.addEvent(C);this.callEvent("onEventCreated",[this._drag_id,D]);this._loading=false;this._drag_event={};this._on_mouse_up(D)};scheduler._on_dbl_click=function(C,D){D=D||(C.target||C.srcElement);if(this.config.readonly){return }var A=D.className.split(" ")[0];switch(A){case"dhx_scale_holder":case"dhx_scale_holder_now":case"dhx_month_body":case"dhx_wa_day_data":case"dhx_marked_timespan":if(!scheduler.config.dblclick_create){break}this.addEventNow(this.getActionData(C).date,null,C);break;case"dhx_cal_event":case"dhx_wa_ev_body":case"dhx_agenda_line":case"dhx_cal_event_line":case"dhx_cal_event_clear":var E=this._locate_event(D);if(!this.callEvent("onDblClick",[E,C])){return }if(this.config.details_on_dblclick||this._table_view||!this.getEvent(E)._timed||!this.config.select){this.showLightbox(E)}else{this.edit(E)}break;case"dhx_cal_container":return ;break;default:var B=this["dblclick_"+A];if(B){B.call(this,C)}else{if(D.parentNode&&D!=this){return scheduler._on_dbl_click(C,D.parentNode)}}break}};scheduler._mouse_coords=function(D){var F;var A=document.body;var E=document.documentElement;if(D.pageX||D.pageY){F={x:D.pageX,y:D.pageY}}else{F={x:D.clientX+(A.scrollLeft||E.scrollLeft||0)-A.clientLeft,y:D.clientY+(A.scrollTop||E.scrollTop||0)-A.clientTop}}F.x-=getAbsoluteLeft(this._obj)+(this._table_view?0:this.xy.scale_width);F.y-=getAbsoluteTop(this._obj)+this.xy.nav_height+(this._dy_shift||0)+this.xy.scale_height-this._els.dhx_cal_data[0].scrollTop;F.ev=D;var C=this["mouse_"+this._mode];if(C){return C.call(this,F)}if(!this._table_view){F.x=Math.min(this._cols.length-1,Math.max(0,Math.ceil(F.x/this._cols[0])-1));F.y=Math.max(0,Math.ceil(F.y*60/(this.config.time_step*this.config.hour_size_px))-1)+this.config.first_hour*(60/this.config.time_step)}else{var B=0;for(B=1;B<this._colsS.heights.length;B++){if(this._colsS.heights[B]>F.y){break}}F.y=Math.ceil((Math.max(0,F.x/this._cols[0])+Math.max(0,B-1)*7)*24*60/this.config.time_step);if(scheduler._drag_mode){F.y=(Math.max(0,Math.ceil(F.x/this._cols[0])-1)+Math.max(0,B-1)*7)*24*60/this.config.time_step}F.x=0}return F};scheduler._close_not_saved=function(){if(new Date().valueOf()-(scheduler._new_event||0)>500&&scheduler._edit_id){var A=scheduler.locale.labels.confirm_closing;scheduler._dhtmlx_confirm(A,function(){scheduler.editStop(scheduler.config.positive_closing)})}};scheduler._correct_shift=function(B,A){return B-=((new Date(scheduler._min_date)).getTimezoneOffset()-(new Date(B)).getTimezoneOffset())*60000*(A?-1:1)};scheduler._on_mouse_move=function(F){if(this._drag_mode){var I=this._mouse_coords(F);if(!this._drag_pos||I.custom||this._drag_pos.x!=I.x||this._drag_pos.y!=I.y){var B,E;if(this._edit_id!=this._drag_id){this._close_not_saved()}this._drag_pos=I;if(this._drag_mode=="create"){this._close_not_saved();this._loading=true;B=this._get_date_from_pos(I).valueOf();var G=this.callEvent("onBeforeEventCreated",[F]);if(!G){return }if(!this._drag_start){this._drag_start=B;return }E=B;if(E==this._drag_start){return }this._drag_id=this.uid();this.addEvent(new Date(this._drag_start),new Date(E),this.locale.labels.new_event,this._drag_id,I.fields);this.callEvent("onEventCreated",[this._drag_id,F]);this._loading=false;this._drag_mode="new-size"}var J=this.getEvent(this._drag_id);if(this._drag_mode=="move"){B=this._min_date.valueOf()+(I.y*this.config.time_step+I.x*24*60)*60000;if(!I.custom&&this._table_view){B+=this.date.time_part(J.start_date)*1000}B=this._correct_shift(B);E=J.end_date.valueOf()-(J.start_date.valueOf()-B)}else{B=J.start_date.valueOf();E=J.end_date.valueOf();if(this._table_view){var H=this._min_date.valueOf()+I.y*this.config.time_step*60000+(I.custom?0:24*60*60000);if(this._mode=="month"){H=this._correct_shift(H,false)}if(I.resize_from_start){B=H}else{E=H}}else{E=this.date.date_part(new Date(J.end_date)).valueOf()+I.y*this.config.time_step*60000;this._els.dhx_cal_data[0].style.cursor="s-resize";if(this._mode=="week"||this._mode=="day"){E=this._correct_shift(E)}}if(this._drag_mode=="new-size"){if(E<=this._drag_start){var D=I.shift||((this._table_view&&!I.custom)?24*60*60000:0);B=E-(I.shift?0:D);E=this._drag_start+(D||(this.config.time_step*60000))}else{B=this._drag_start}}else{if(E<=B){E=B+this.config.time_step*60000}}}var L=new Date(E-1);var C=new Date(B);if(this._table_view||(L.getDate()==C.getDate()&&L.getHours()<this.config.last_hour)||scheduler._allow_dnd){J.start_date=C;J.end_date=new Date(E);if(this.config.update_render){var K=scheduler._els.dhx_cal_data[0].scrollTop;this.update_view();scheduler._els.dhx_cal_data[0].scrollTop=K}else{this.updateEvent(this._drag_id)}}if(this._table_view){this.for_rendered(this._drag_id,function(M){M.className+=" dhx_in_move"})}}}else{if(scheduler.checkEvent("onMouseMove")){var A=this._locate_event(F.target||F.srcElement);this.callEvent("onMouseMove",[A,F])}}};scheduler._on_mouse_context=function(A,B){return this.callEvent("onContextMenu",[this._locate_event(B),A])};scheduler._on_mouse_down=function(B,C){if(this.config.readonly||this._drag_mode){return }C=C||(B.target||B.srcElement);if(B.button==2||B.ctrlKey){return this._on_mouse_context(B,C)}var A=C.className&&C.className.split(" ")[0];switch(A){case"dhx_cal_event_line":case"dhx_cal_event_clear":if(this._table_view){this._drag_mode="move"}break;case"dhx_event_move":case"dhx_wa_ev_body":this._drag_mode="move";break;case"dhx_event_resize":this._drag_mode="resize";break;case"dhx_scale_holder":case"dhx_scale_holder_now":case"dhx_month_body":case"dhx_matrix_cell":case"dhx_marked_timespan":this._drag_mode="create";break;case"":if(C.parentNode){return scheduler._on_mouse_down(B,C.parentNode)}default:if(scheduler.checkEvent("onMouseDown")&&scheduler.callEvent("onMouseDown",[A])){if(C.parentNode&&C!=this){return scheduler._on_mouse_down(B,C.parentNode)}}this._drag_mode=null;this._drag_id=null;break}if(this._drag_mode){var D=this._locate_event(C);if(!this.config["drag_"+this._drag_mode]||!this.callEvent("onBeforeDrag",[D,this._drag_mode,B])){this._drag_mode=this._drag_id=0}else{this._drag_id=D;this._drag_event=scheduler._lame_copy({},this._copy_event(this.getEvent(this._drag_id)||{}))}}this._drag_start=null};scheduler._on_mouse_up=function(C){if(this._drag_mode&&this._drag_id){this._els.dhx_cal_data[0].style.cursor="default";var A=this.getEvent(this._drag_id);if(this._drag_event._dhx_changed||!this._drag_event.start_date||A.start_date.valueOf()!=this._drag_event.start_date.valueOf()||A.end_date.valueOf()!=this._drag_event.end_date.valueOf()){var D=(this._drag_mode=="new-size");if(!this.callEvent("onBeforeEventChanged",[A,C,D,this._drag_event])){if(D){this.deleteEvent(A.id,true)}else{this._drag_event._dhx_changed=false;scheduler._lame_copy(A,this._drag_event);this.updateEvent(A.id)}}else{var B=this._drag_id;this._drag_id=null;if(D&&this.config.edit_on_create){this.unselect();this._new_event=new Date();if(this._table_view||this.config.details_on_create||!this.config.select){this._drag_mode=null;return this.showLightbox(B)}this._drag_pos=true;this._select_id=this._edit_id=B}else{this._drag_id=this._drag_mode=null;if(!this._new_event){this.callEvent(D?"onEventAdded":"onEventChanged",[B,this.getEvent(B)])}}}}if(this._drag_pos){this.render_view_data()}}this._drag_mode=null;this._drag_pos=null};scheduler.update_view=function(){this._reset_scale();if(this._load_mode&&this._load()){return this._render_wait=true}this.render_view_data()};scheduler.setCurrentView=function(B,E){B=B||this._date;E=E||this._mode;if(!this.callEvent("onBeforeViewChange",[this._mode,this._date,E,B])){return }var H="dhx_cal_data";if(!this._mode){this._obj.className+=" dhx_scheduler_"+E}else{this._obj.className=this._obj.className.replace("dhx_scheduler_"+this._mode,"dhx_scheduler_"+E)}var C=(this._mode==E&&this.config.preserve_scroll)?this._els[H][0].scrollTop:false;if(this[this._mode+"_view"]&&E&&this._mode!=E){this[this._mode+"_view"](false)}this._close_not_saved();var I="dhx_multi_day";if(this._els[I]){this._els[I][0].parentNode.removeChild(this._els[I][0]);this._els[I]=null}this._mode=E;this._date=B;this._table_view=(this._mode=="month");var G=this._els.dhx_cal_tab;for(var D=0;D<G.length;D++){var A=G[D].className;A=A.replace(/ active/g,"");if(G[D].getAttribute("name")==this._mode+"_tab"){A=A+" active"}G[D].className=A}var F=this[this._mode+"_view"];F?F(true):this.update_view();if(typeof C=="number"){this._els[H][0].scrollTop=C}this.callEvent("onViewChange",[this._mode,this._date])};scheduler._render_x_header=function(B,D,E,C){var A=document.createElement("DIV");A.className="dhx_scale_bar";this.set_xy(A,this._cols[B]-1,this.xy.scale_height-2,D,0);A.innerHTML=this.templates[this._mode+"_scale_date"](E,this._mode);C.appendChild(A)};scheduler._reset_scale=function(){if(!this.templates[this._mode+"_date"]){return }var P=this._els.dhx_cal_header[0];var U=this._els.dhx_cal_data[0];var S=this.config;P.innerHTML="";U.scrollTop=0;U.innerHTML="";var N=((S.readonly||(!S.drag_resize))?" dhx_resize_denied":"")+((S.readonly||(!S.drag_move))?" dhx_move_denied":"");if(N){U.className="dhx_cal_data"+N}this._scales={};this._cols=[];this._colsS={height:0};this._dy_shift=0;this.set_sizes();var L=parseInt(P.style.width,10);var C=0;var R,T,A,Q;T=this.date[this._mode+"_start"](new Date(this._date.valueOf()));R=A=this._table_view?scheduler.date.week_start(T):T;Q=this.date.date_part(new Date());var D=scheduler.date.add(T,1,this._mode);var F=7;if(!this._table_view){var H=this.date["get_"+this._mode+"_end"];if(H){D=H(T)}F=Math.round((D.valueOf()-T.valueOf())/(1000*60*60*24))}this._min_date=R;this._els.dhx_cal_date[0].innerHTML=this.templates[this._mode+"_date"](T,D,this._mode);for(var O=0;O<F;O++){this._cols[O]=Math.floor(L/(F-O));this._render_x_header(O,C,R,P);if(!this._table_view){var G=document.createElement("DIV");var B="dhx_scale_holder";if(R.valueOf()==Q.valueOf()){B="dhx_scale_holder_now"}G.className=B+" "+this.templates.week_date_class(R,Q);this.set_xy(G,this._cols[O]-1,S.hour_size_px*(S.last_hour-S.first_hour),C+this.xy.scale_width+1,0);U.appendChild(G);this.callEvent("onScaleAdd",[G,R])}R=this.date.add(R,1,"day");L-=this._cols[O];C+=this._cols[O];this._colsS[O]=(this._cols[O-1]||0)+(this._colsS[O-1]||(this._table_view?0:this.xy.scale_width+2));this._colsS.col_length=F+1}this._max_date=R;this._colsS[F]=this._cols[F-1]+this._colsS[F-1];if(this._table_view){this._reset_month_scale(U,T,A)}else{this._reset_hours_scale(U,T,A);if(S.multi_day){var E="dhx_multi_day";if(this._els[E]){this._els[E][0].parentNode.removeChild(this._els[E][0]);this._els[E]=null}var I=this._els.dhx_cal_navline[0];var J=I.offsetHeight+this._els.dhx_cal_header[0].offsetHeight+1;var M=document.createElement("DIV");M.className=E;M.style.visibility="hidden";this.set_xy(M,this._colsS[this._colsS.col_length-1]+this.xy.scroll_width,0,0,J);U.parentNode.insertBefore(M,U);var K=M.cloneNode(true);K.className=E+"_icon";K.style.visibility="hidden";this.set_xy(K,this.xy.scale_width,0,0,J);M.appendChild(K);this._els[E]=[M,K];this._els[E][0].onclick=this._click.dhx_cal_data}}};scheduler._reset_hours_scale=function(B,A,E){var G=document.createElement("DIV");G.className="dhx_scale_holder";var C=new Date(1980,1,1,this.config.first_hour,0,0);for(var D=this.config.first_hour*1;D<this.config.last_hour;D++){var F=document.createElement("DIV");F.className="dhx_scale_hour";F.style.height=this.config.hour_size_px-(this._quirks?0:1)+"px";F.style.width=this.xy.scale_width+"px";F.innerHTML=scheduler.templates.hour_scale(C);G.appendChild(F);C=this.date.add(C,1,"hour")}B.appendChild(G);if(this.config.scroll_hour){B.scrollTop=this.config.hour_size_px*(this.config.scroll_hour-this.config.first_hour)}};scheduler._reset_month_scale=function(Q,P,A){var D=scheduler.date.add(P,1,"month");var I=new Date();this.date.date_part(I);this.date.date_part(A);var F=Math.ceil(Math.round((D.valueOf()-A.valueOf())/(60*60*24*1000))/7);var R=[];var J=(Math.floor(Q.clientHeight/F)-22);this._colsS.height=J+22;var N=this._colsS.heights=[];for(var M=0;M<=7;M++){R[M]=" style='height:"+J+"px; width:"+((this._cols[M]||0)-1)+"px;' "}var C=0;this._min_date=A;var G="<table cellpadding='0' cellspacing='0'>";var E=[];for(var M=0;M<F;M++){G+="<tr>";for(var L=0;L<7;L++){G+="<td";var B="";if(A<P){B="dhx_before"}else{if(A>=D){B="dhx_after"}else{if(A.valueOf()==I.valueOf()){B="dhx_now"}}}G+=" class='"+B+" "+this.templates.month_date_class(A,I)+"' ";G+="><div class='dhx_month_head'>"+this.templates.month_day(A)+"</div><div class='dhx_month_body' "+R[L]+"></div></td>";E.push(A);A=this.date.add(A,1,"day")}G+="</tr>";N[M]=C;C+=this._colsS.height}G+="</table>";this._max_date=A;Q.innerHTML=G;this._scales={};var K=Q.getElementsByTagName("div");for(var M=0;M<E.length;M++){var H=K[(M*2)+1];var O=E[M];this._scales[+O]=H}for(var M=0;M<E.length;M++){var O=E[M];this.callEvent("onScaleAdd",[this._scales[+O],O])}return A};scheduler.getLabel=function(E,D){var F=this.config.lightbox.sections;for(var C=0;C<F.length;C++){if(F[C].map_to==E){var B=F[C].options;for(var A=0;A<B.length;A++){if(B[A].key==D){return B[A].label}}}}return""};scheduler.updateCollection=function(A,C){var B=scheduler.serverList(A);if(!B){return false}B.splice(0,B.length);B.push.apply(B,C||[]);scheduler.callEvent("onOptionsLoad",[]);scheduler.resetLightbox();return true};scheduler._lame_clone=function(C,B){var E,D,A;B=B||[];for(E=0;E<B.length;E+=2){if(C===B[E]){return B[E+1]}}if(C&&typeof C=="object"){A={};D=[Array,Date,Number,String,Boolean];for(E=0;E<D.length;E++){if(C instanceof D[E]){A=E?new D[E](C):new D[E]()}}B.push(C,A);for(E in C){if(Object.prototype.hasOwnProperty.apply(C,[E])){A[E]=scheduler._lame_clone(C[E],B)}}}return A||C};scheduler._lame_copy=function(C,B){for(var A in B){if(B.hasOwnProperty(A)){C[A]=B[A]}}return C};scheduler._get_date_from_pos=function(B){var A=this._min_date.valueOf()+(B.y*this.config.time_step+(this._table_view?0:B.x)*24*60)*60000;return new Date(this._correct_shift(A))};scheduler.getActionData=function(A){var B=this._mouse_coords(A);return{date:this._get_date_from_pos(B),section:B.section}};scheduler.date={init:function(){var C=scheduler.locale.date.month_short;var B=scheduler.locale.date.month_short_hash={};for(var A=0;A<C.length;A++){B[C[A]]=A}var C=scheduler.locale.date.month_full;var B=scheduler.locale.date.month_full_hash={};for(var A=0;A<C.length;A++){B[C[A]]=A}},date_part:function(A){A.setHours(0);A.setMinutes(0);A.setSeconds(0);A.setMilliseconds(0);if(A.getHours()!=0){A.setTime(A.getTime()+60*60*1000*(24-A.getHours()))}return A},time_part:function(A){return(A.valueOf()/1000-A.getTimezoneOffset()*60)%86400},week_start:function(B){var A=B.getDay();if(scheduler.config.start_on_monday){if(A===0){A=6}else{A--}}return this.date_part(this.add(B,-1*A,"day"))},month_start:function(A){A.setDate(1);return this.date_part(A)},year_start:function(A){A.setMonth(0);return this.month_start(A)},day_start:function(A){return this.date_part(A)},add:function(B,E,F){var A=new Date(B.valueOf());switch(F){case"week":E*=7;case"day":A.setDate(A.getDate()+E);if(!B.getHours()&&A.getHours()){A.setTime(A.getTime()+60*60*1000*(24-A.getHours()))}break;case"month":var C=A.getMonth()+E;var D=new Date(A);A.setMonth(C);if(A.getMonth()!=C&&A.getMonth()!=(C%12)){D.setDate(1);D.setMonth(C);D.setDate(new Date(D.getFullYear(),C+1,0).getDate());A=D}break;case"year":A.setYear(A.getFullYear()+E);break;case"hour":A.setHours(A.getHours()+E);break;case"minute":A.setMinutes(A.getMinutes()+E);break;default:return scheduler.date["add_"+F](B,E,F)}return A},to_fixed:function(A){if(A<10){return"0"+A}return A},copy:function(A){return new Date(A.valueOf())},date_to_str:function(B,A){B=B.replace(/%[a-zA-Z]/g,function(C){switch(C){case"%d":return'"+scheduler.date.to_fixed(date.getDate())+"';case"%m":return'"+scheduler.date.to_fixed((date.getMonth()+1))+"';case"%j":return'"+date.getDate()+"';case"%n":return'"+(date.getMonth()+1)+"';case"%y":return'"+scheduler.date.to_fixed(date.getFullYear()%100)+"';case"%Y":return'"+date.getFullYear()+"';case"%D":return'"+scheduler.locale.date.day_short[date.getDay()]+"';case"%l":return'"+scheduler.locale.date.day_full[date.getDay()]+"';case"%M":return'"+scheduler.locale.date.month_short[date.getMonth()]+"';case"%F":return'"+scheduler.locale.date.month_full[date.getMonth()]+"';case"%h":return'"+scheduler.date.to_fixed((date.getHours()+11)%12+1)+"';case"%g":return'"+((date.getHours()+11)%12+1)+"';case"%G":return'"+date.getHours()+"';case"%H":return'"+scheduler.date.to_fixed(date.getHours())+"';case"%i":return'"+scheduler.date.to_fixed(date.getMinutes())+"';case"%a":return'"+(date.getHours()>11?"pm":"am")+"';case"%A":return'"+(date.getHours()>11?"PM":"AM")+"';case"%s":return'"+scheduler.date.to_fixed(date.getSeconds())+"';case"%W":return'"+scheduler.date.to_fixed(scheduler.date.getISOWeek(date))+"';default:return C}});if(A){B=B.replace(/date\.get/g,"date.getUTC")}return new Function("date",'return "'+B+'";')},str_to_date:function(E,C){var F="var temp=date.match(/[a-zA-Z]+|[0-9]+/g);";var A=E.match(/%[a-zA-Z]/g);for(var B=0;B<A.length;B++){switch(A[B]){case"%j":case"%d":F+="set[2]=temp["+B+"]||1;";break;case"%n":case"%m":F+="set[1]=(temp["+B+"]||1)-1;";break;case"%y":F+="set[0]=temp["+B+"]*1+(temp["+B+"]>50?1900:2000);";break;case"%g":case"%G":case"%h":case"%H":F+="set[3]=temp["+B+"]||0;";break;case"%i":F+="set[4]=temp["+B+"]||0;";break;case"%Y":F+="set[0]=temp["+B+"]||0;";break;case"%a":case"%A":F+="set[3]=set[3]%12+((temp["+B+"]||'').toLowerCase()=='am'?0:12);";break;case"%s":F+="set[5]=temp["+B+"]||0;";break;case"%M":F+="set[1]=scheduler.locale.date.month_short_hash[temp["+B+"]]||0;";break;case"%F":F+="set[1]=scheduler.locale.date.month_full_hash[temp["+B+"]]||0;";break;default:break}}var D="set[0],set[1],set[2],set[3],set[4],set[5]";if(C){D=" Date.UTC("+D+")"}return new Function("date","var set=[0,0,1,0,0,0]; "+F+" return new Date("+D+");")},getISOWeek:function(C){if(!C){return false}var B=C.getDay();if(B===0){B=7}var D=new Date(C.valueOf());D.setDate(C.getDate()+(4-B));var A=D.getFullYear();var F=Math.round((D.getTime()-new Date(A,0,1).getTime())/86400000);var E=1+Math.floor(F/7);return E},getUTCISOWeek:function(A){return this.getISOWeek(A)},convert_to_utc:function(A){return new Date(A.getUTCFullYear(),A.getUTCMonth(),A.getUTCDate(),A.getUTCHours(),A.getUTCMinutes(),A.getUTCSeconds())}};scheduler.locale={date:{month_full:["January","February","March","April","May","June","July","August","September","October","November","December"],month_short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],day_full:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],day_short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},labels:{dhx_cal_today_button:"Today",day_tab:"Day",week_tab:"Week",month_tab:"Month",new_event:"New event",icon_save:"Save",icon_cancel:"Cancel",icon_details:"Details",icon_edit:"Edit",icon_delete:"Delete",confirm_closing:"",confirm_deleting:"Event will be deleted permanently, are you sure?",section_description:"Description",section_time:"Time period",full_day:"Full day",confirm_recurring:"Do you want to edit the whole set of repeated events?",section_recurring:"Repeat event",button_recurring:"Disabled",button_recurring_open:"Enabled",button_edit_series:"Edit series",button_edit_occurrence:"Edit occurrence",agenda_tab:"Agenda",date:"Date",description:"Description",year_tab:"Year",week_agenda_tab:"Agenda",grid_tab:"Grid"}};scheduler.config={default_date:"%j %M %Y",month_date:"%F %Y",load_date:"%Y-%m-%d",week_date:"%l",day_date:"%D, %F %j",hour_date:"%H:%i",month_day:"%d",xml_date:"%m/%d/%Y %H:%i",api_date:"%d-%m-%Y %H:%i",hour_size_px:42,time_step:5,start_on_monday:1,first_hour:0,last_hour:24,readonly:false,drag_resize:1,drag_move:1,drag_create:1,dblclick_create:1,edit_on_create:1,details_on_create:0,click_form_details:0,cascade_event_display:false,cascade_event_count:4,cascade_event_margin:30,drag_lightbox:true,preserve_scroll:true,select:true,server_utc:false,positive_closing:false,icons_edit:["icon_save","icon_cancel"],icons_select:["icon_details","icon_edit","icon_delete"],buttons_left:["dhx_save_btn","dhx_cancel_btn"],buttons_right:["dhx_delete_btn"],lightbox:{sections:[{name:"description",height:200,map_to:"text",type:"textarea",focus:true},{name:"time",height:72,type:"time",map_to:"auto"}]},repeat_date_of_end:"01.01.2012"};scheduler.templates={};scheduler.init_templates=function(){var D=scheduler.locale.labels;D.dhx_save_btn=D.icon_save;D.dhx_cancel_btn=D.icon_cancel;D.dhx_delete_btn=D.icon_delete;var B=scheduler.date.date_to_str;var C=scheduler.config;var A=function(F,E){for(var G in E){if(!F[G]){F[G]=E[G]}}};A(scheduler.templates,{day_date:B(C.default_date),month_date:B(C.month_date),week_date:function(F,E){return scheduler.templates.day_date(F)+" – "+scheduler.templates.day_date(scheduler.date.add(E,-1,"day"))},day_scale_date:B(C.default_date),month_scale_date:B(C.week_date),week_scale_date:B(C.day_date),hour_scale:B(C.hour_date),time_picker:B(C.hour_date),event_date:B(C.hour_date),month_day:B(C.month_day),xml_date:scheduler.date.str_to_date(C.xml_date,C.server_utc),load_format:B(C.load_date,C.server_utc),xml_format:B(C.xml_date,C.server_utc),api_date:scheduler.date.str_to_date(C.api_date),event_header:function(G,E,F){return scheduler.templates.event_date(G)+" - "+scheduler.templates.event_date(E)},event_text:function(G,E,F){return F.text},event_class:function(G,E,F){return""},month_date_class:function(E){return""},week_date_class:function(E){return""},event_bar_date:function(G,E,F){return scheduler.templates.event_date(G)+" "},event_bar_text:function(G,E,F){return F.text}});this.callEvent("onTemplatesReady",[])};scheduler.uid=function(){if(!this._seed){this._seed=(new Date).valueOf()}return this._seed++};scheduler._events={};scheduler.clearAll=function(){this._events={};this._loaded={};this.clear_view()};scheduler.addEvent=function(A,H,E,G,B){if(!arguments.length){return this.addEventNow()}var C=A;if(arguments.length!=1){C=B||{};C.start_date=A;C.end_date=H;C.text=E;C.id=G}C.id=C.id||scheduler.uid();C.text=C.text||"";if(typeof C.start_date=="string"){C.start_date=this.templates.api_date(C.start_date)}if(typeof C.end_date=="string"){C.end_date=this.templates.api_date(C.end_date)}var D=(this.config.event_duration||this.config.time_step)*60000;if(C.start_date.valueOf()==C.end_date.valueOf()){C.end_date.setTime(C.end_date.valueOf()+D)}C._timed=this.is_one_day_event(C);var F=!this._events[C.id];this._events[C.id]=C;this.event_updated(C);if(!this._loading){this.callEvent(F?"onEventAdded":"onEventChanged",[C.id,C])}return C.id};scheduler.deleteEvent=function(C,A){var B=this._events[C];if(!A&&(!this.callEvent("onBeforeEventDelete",[C,B])||!this.callEvent("onConfirmedBeforeEventDelete",[C,B]))){return }if(B){delete this._events[C];this.unselect(C);this.event_updated(B)}this.callEvent("onEventDeleted",[C,B])};scheduler.getEvent=function(A){return this._events[A]};scheduler.setEvent=function(B,A){this._events[B]=A};scheduler.for_rendered=function(C,B){for(var A=this._rendered.length-1;A>=0;A--){if(this._rendered[A].getAttribute("event_id")==C){B(this._rendered[A],A)}}};scheduler.changeEventId=function(C,A){if(C==A){return }var B=this._events[C];if(B){B.id=A;this._events[A]=B;delete this._events[C]}this.for_rendered(C,function(D){D.setAttribute("event_id",A)});if(this._select_id==C){this._select_id=A}if(this._edit_id==C){this._edit_id=A}this.callEvent("onEventIdChange",[C,A])};(function(){var A=["text","Text","start_date","StartDate","end_date","EndDate"];var C=function(E){return function(F){return(scheduler.getEvent(F))[E]}};var D=function(E){return function(H,G){var F=scheduler.getEvent(H);F[E]=G;F._changed=true;F._timed=this.is_one_day_event(F);scheduler.event_updated(F,true)}};for(var B=0;B<A.length;B+=2){scheduler["getEvent"+A[B+1]]=C(A[B]);scheduler["setEvent"+A[B+1]]=D(A[B])}})();scheduler.event_updated=function(A,B){if(this.is_visible_events(A)){this.render_view_data()}else{this.clear_event(A.id)}};scheduler.is_visible_events=function(A){return(A.start_date<this._max_date&&this._min_date<A.end_date)};scheduler.is_one_day_event=function(A){var B=A.end_date.getDate()-A.start_date.getDate();if(!B){return A.start_date.getMonth()==A.end_date.getMonth()&&A.start_date.getFullYear()==A.end_date.getFullYear()}else{if(B<0){B=Math.ceil((A.end_date.valueOf()-A.start_date.valueOf())/(24*60*60*1000))}return(B==1&&!A.end_date.getHours()&&!A.end_date.getMinutes()&&(A.start_date.getHours()||A.start_date.getMinutes()))}};scheduler.get_visible_events=function(C){var A=[];var B=this["filter_"+this._mode];for(var D in this._events){if(this.is_visible_events(this._events[D])){if(!C||this._events[D]._timed){if(!B||B(D,this._events[D])){A.push(this._events[D])}}}}return A};scheduler.render_view_data=function(B,E){if(!B){if(this._not_render){this._render_wait=true;return }this._render_wait=false;this.clear_view();B=this.get_visible_events(!(this._table_view||this.config.multi_day))}if(this.config.multi_day&&!this._table_view){var D=[];var A=[];for(var C=0;C<B.length;C++){if(B[C]._timed){D.push(B[C])}else{A.push(B[C])}}this._rendered_location=this._els.dhx_multi_day[0];this._table_view=true;this.render_data(A,E);this._table_view=false;this._rendered_location=this._els.dhx_cal_data[0];this._table_view=false;this.render_data(D,E)}else{this._rendered_location=this._els.dhx_cal_data[0];this.render_data(B,E)}};scheduler.render_data=function(A,C){A=this._pre_render_events(A,C);for(var B=0;B<A.length;B++){if(this._table_view){this.render_event_bar(A[B])}else{this.render_event(A[B])}}};scheduler._pre_render_events=function(N,A){var H=this.xy.bar_height;var D=this._colsS.heights;var G=this._colsS.heights=[0,0,0,0,0,0,0];var E=this._els.dhx_cal_data[0];if(!this._table_view){N=this._pre_render_events_line(N,A)}else{N=this._pre_render_events_table(N,A)}if(this._table_view){if(A){this._colsS.heights=D}else{var B=E.firstChild;if(B.rows){for(var F=0;F<B.rows.length;F++){G[F]++;if((G[F])*H>this._colsS.height-22){var O=B.rows[F].cells;for(var C=0;C<O.length;C++){O[C].childNodes[1].style.height=G[F]*H+"px"}G[F]=(G[F-1]||0)+O[0].offsetHeight}G[F]=(G[F-1]||0)+B.rows[F].cells[0].offsetHeight}G.unshift(0);if(B.parentNode.offsetHeight<B.parentNode.scrollHeight&&!B._h_fix){for(var F=0;F<B.rows.length;F++){var M=B.rows[F].cells[6].childNodes[0];var K=M.offsetWidth-scheduler.xy.scroll_width+"px";M.style.width=K;M.nextSibling.style.width=K}B._h_fix=true}}else{if(!N.length&&this._els.dhx_multi_day[0].style.visibility=="visible"){G[0]=-1}if(N.length||G[0]==-1){var I=B.parentNode.childNodes;var J=((G[0]+1)*H+1)+"px";E.style.top=(this._els.dhx_cal_navline[0].offsetHeight+this._els.dhx_cal_header[0].offsetHeight+parseInt(J,10))+"px";E.style.height=(this._obj.offsetHeight-parseInt(E.style.top,10)-(this.xy.margin_top||0))+"px";var L=this._els.dhx_multi_day[0];L.style.height=J;L.style.visibility=(G[0]==-1?"hidden":"visible");L=this._els.dhx_multi_day[1];L.style.height=J;L.style.visibility=(G[0]==-1?"hidden":"visible");L.className=G[0]?"dhx_multi_day_icon":"dhx_multi_day_icon_small";this._dy_shift=(G[0]+1)*H;G[0]=0}}}}return N};scheduler._get_event_sday=function(A){return Math.floor((A.start_date.valueOf()-this._min_date.valueOf())/(24*60*60*1000))};scheduler._get_event_mapped_end_date=function(B){var C=B.end_date;if(this.config.separate_short_events){var A=(B.end_date-B.start_date)/60000;if(A<this._min_mapped_duration){C=this.date.add(C,this._min_mapped_duration-A,"minute")}}return C};scheduler._pre_render_events_line=function(J,I){J.sort(function(T,S){if(T.start_date.valueOf()==S.start_date.valueOf()){return T.id>S.id?1:-1}return T.start_date>S.start_date?1:-1});var F=[];var E=[];this._min_mapped_duration=Math.ceil(this.xy.min_event_height*60/this.config.hour_size_px);for(var P=0;P<J.length;P++){var Q=J[P];var A=Q.start_date;var D=Q.end_date;var R=A.getHours();var B=D.getHours();Q._sday=this._get_event_sday(Q);if(!F[Q._sday]){F[Q._sday]=[]}if(!I){Q._inner=false;var G=F[Q._sday];while(G.length){var K=G[G.length-1];var L=this._get_event_mapped_end_date(K);if(L.valueOf()<=Q.start_date.valueOf()){G.splice(G.length-1,1)}else{break}}var N=false;for(var O=0;O<G.length;O++){var K=G[O];var L=this._get_event_mapped_end_date(K);if(L.valueOf()<=Q.start_date.valueOf()){N=true;Q._sorder=K._sorder;G.splice(O,1);Q._inner=true;break}}if(G.length){G[G.length-1]._inner=true}if(!N){if(G.length){if(G.length<=G[G.length-1]._sorder){if(!G[G.length-1]._sorder){Q._sorder=0}else{for(O=0;O<G.length;O++){var H=false;for(var M=0;M<G.length;M++){if(G[M]._sorder==O){H=true;break}}if(!H){Q._sorder=O;break}}}Q._inner=true}else{var C=G[0]._sorder;for(O=1;O<G.length;O++){if(G[O]._sorder>C){C=G[O]._sorder}}Q._sorder=C+1;Q._inner=false}}else{Q._sorder=0}}G.push(Q);if(G.length>(G.max_count||0)){G.max_count=G.length;Q._count=G.length}else{Q._count=(Q._count)?Q._count:1}}if(R<this.config.first_hour||B>=this.config.last_hour){if(!Q._timed){E.push(Q);J[P]=Q=this._copy_event(Q)}if(R<this.config.first_hour){Q.start_date.setHours(this.config.first_hour);Q.start_date.setMinutes(0)}if(B>=this.config.last_hour){Q.end_date.setMinutes(0);Q.end_date.setHours(this.config.last_hour)}if(Q.start_date>Q.end_date||R==this.config.last_hour){J.splice(P,1);P--;continue}}}if(!I){for(var P=0;P<J.length;P++){J[P]._count=F[J[P]._sday].max_count}for(var P=0;P<E.length;P++){E[P]._count=F[E[P]._sday].max_count}}return J};scheduler._time_order=function(A){A.sort(function(C,B){if(C.start_date.valueOf()==B.start_date.valueOf()){if(C._timed&&!B._timed){return 1}if(!C._timed&&B._timed){return -1}return C.id>B.id?1:-1}return C.start_date>B.start_date?1:-1})};scheduler._pre_render_events_table=function(P,C){this._time_order(P);var F=[];var A=[[],[],[],[],[],[],[]];var N=this._colsS.heights;var I;var M=this._cols.length;for(var G=0;G<P.length;G++){var L=P[G];var J=(I||L.start_date);var H=L.end_date;if(J<this._min_date){J=this._min_date}if(H>this._max_date){H=this._max_date}var E=this.locate_holder_day(J,false,L);L._sday=E%M;var O=this.locate_holder_day(H,true,L)||M;L._eday=(O%M)||M;L._length=O-E;L._sweek=Math.floor((this._correct_shift(J.valueOf(),1)-this._min_date.valueOf())/(60*60*1000*24*M));var K=A[L._sweek];var D;for(D=0;D<K.length;D++){if(K[D]._eday<=L._sday){break}}if(!L._sorder||!C){L._sorder=D}if(L._sday+L._length<=M){I=null;F.push(L);K[D]=L;N[L._sweek]=K.length-1}else{var B=this._copy_event(L);B._length=M-L._sday;B._eday=M;B._sday=L._sday;B._sweek=L._sweek;B._sorder=L._sorder;B.end_date=this.date.add(J,B._length,"day");F.push(B);K[D]=B;I=B.end_date;N[L._sweek]=K.length-1;G--;continue}}return F};scheduler._copy_dummy=function(){var B=new Date(this.start_date);var A=new Date(this.end_date);this.start_date=B;this.end_date=A};scheduler._copy_event=function(A){this._copy_dummy.prototype=A;return new this._copy_dummy()};scheduler._rendered=[];scheduler.clear_view=function(){for(var A=0;A<this._rendered.length;A++){var B=this._rendered[A];if(B.parentNode){B.parentNode.removeChild(B)}}this._rendered=[]};scheduler.updateEvent=function(B){var A=this.getEvent(B);this.clear_event(B);if(A&&this.is_visible_events(A)){if(this.config.update_render){this.render_view_data()}else{this.render_view_data([A],true)}}};scheduler.clear_event=function(A){this.for_rendered(A,function(C,B){if(C.parentNode){C.parentNode.removeChild(C)}scheduler._rendered.splice(B,1)})};scheduler.render_event=function(R){var B=scheduler.xy.menu_width;if(R._sday<0){return }var E=scheduler.locate_holder(R._sday);if(!E){return }var P=R.start_date.getHours()*60+R.start_date.getMinutes();var C=(R.end_date.getHours()*60+R.end_date.getMinutes())||(scheduler.config.last_hour*60);var L=R._count||1;var N=R._sorder||0;var G=(Math.round((P*60*1000-this.config.first_hour*60*60*1000)*this.config.hour_size_px/(60*60*1000)))%(this.config.hour_size_px*24);var J=Math.max(scheduler.xy.min_event_height,(C-P)*this.config.hour_size_px/60);var K=Math.floor((E.clientWidth-B)/L);var D=N*K+1;if(!R._inner){K=K*(L-N)}if(this.config.cascade_event_display){var Q=this.config.cascade_event_count;var H=this.config.cascade_event_margin;D=N%Q*H;var T=(R._inner)?(L-N-1)%Q*H/2:0;K=Math.floor(E.clientWidth-B-D-T)}var S=this._render_v_bar(R.id,B+D,G,K,J,R._text_style,scheduler.templates.event_header(R.start_date,R.end_date,R),scheduler.templates.event_text(R.start_date,R.end_date,R));this._rendered.push(S);E.appendChild(S);D=D+parseInt(E.style.left,10)+B;if(this._edit_id==R.id){S.style.zIndex=1;K=Math.max(K-4,scheduler.xy.editor_width);S=document.createElement("DIV");S.setAttribute("event_id",R.id);this.set_xy(S,K,J-20,D,G+14);S.className="dhx_cal_editor";var V=document.createElement("DIV");this.set_xy(V,K-6,J-26);V.style.cssText+=";margin:2px 2px 2px 2px;overflow:hidden;";S.appendChild(V);this._els.dhx_cal_data[0].appendChild(S);this._rendered.push(S);V.innerHTML="<textarea class='dhx_cal_editor'>"+R.text+"</textarea>";if(this._quirks7){V.firstChild.style.height=J-12+"px"}this._editor=V.firstChild;this._editor.onkeypress=function(X){if((X||event).shiftKey){return true}var W=(X||event).keyCode;if(W==scheduler.keys.edit_save){scheduler.editStop(true)}if(W==scheduler.keys.edit_cancel){scheduler.editStop(false)}};this._editor.onselectstart=function(W){return(W||event).cancelBubble=true};V.firstChild.focus();this._els.dhx_cal_data[0].scrollLeft=0;V.firstChild.select()}if(this.xy.menu_width!==0&&this._select_id==R.id){if(this.config.cascade_event_display&&this._drag_mode){S.style.zIndex=1}var U=this.config["icons_"+((this._edit_id==R.id)?"edit":"select")];var A="";var I=(R.color?("background:"+R.color+";"):"");var M=(R.textColor?("color:"+R.textColor+";"):"");for(var O=0;O<U.length;O++){A+="<div class='dhx_menu_icon "+U[O]+"' style='"+I+""+M+"' title='"+this.locale.labels[U[O]]+"'></div>"}var F=this._render_v_bar(R.id,D-B+1,G,B,U.length*20+26-2,"","<div style='"+I+""+M+"' class='dhx_menu_head'></div>",A,true);F.style.left=D-B+1;this._els.dhx_cal_data[0].appendChild(F);this._rendered.push(F)}};scheduler._render_v_bar=function(I,D,C,E,M,N,Q,O,B){var S=document.createElement("DIV");var R=this.getEvent(I);var A=(B)?"dhx_cal_event dhx_cal_select_menu":"dhx_cal_event";var L=scheduler.templates.event_class(R.start_date,R.end_date,R);if(L){A=A+" "+L}var H=(R.color?("background:"+R.color+";"):"");var J=(R.textColor?("color:"+R.textColor+";"):"");var F='<div event_id="'+I+'" class="'+A+'" style="position:absolute; top:'+C+"px; left:"+D+"px; width:"+(E-4)+"px; height:"+M+"px;"+(N||"")+'"></div>';S.innerHTML=F;if(scheduler.renderEvent&&!B){scheduler.renderEvent(S.firstChild,R);return S.firstChild}else{var G=S.firstChild;var P='<div class="dhx_event_move dhx_header" style=" width:'+(E-6)+"px;"+H+'" > </div>';P+='<div class="dhx_event_move dhx_title" style="'+H+""+J+'">'+Q+"</div>";P+='<div class="dhx_body" style=" width:'+(E-(this._quirks?4:14))+"px; height:"+(M-(this._quirks?20:30)+1)+"px;"+H+""+J+'">'+O+"</div>";var K="dhx_event_resize dhx_footer";if(B){K="dhx_resize_denied "+K}P+='<div class="'+K+'" style=" width:'+(E-8)+"px;"+(B?" margin-top:-1px;":"")+""+H+""+J+'" ></div>';G.innerHTML=P}return S.firstChild};scheduler.locate_holder=function(A){if(this._mode=="day"){return this._els.dhx_cal_data[0].firstChild}return this._els.dhx_cal_data[0].childNodes[A]};scheduler.locate_holder_day=function(B,C){var A=Math.floor((this._correct_shift(B,1)-this._min_date)/(60*60*24*1000));if(C&&this.date.time_part(B)){A++}return A};scheduler.render_event_bar=function(I){var L=this._rendered_location;var K=this._colsS[I._sday];var A=this._colsS[I._eday];if(A==K){A=this._colsS[I._eday+1]}var E=this.xy.bar_height;var H=this._colsS.heights[I._sweek]+(this._colsS.height?(this.xy.month_scale_height+2):2)+(I._sorder*E);var G=document.createElement("DIV");var F=I._timed?"dhx_cal_event_clear":"dhx_cal_event_line";var B=scheduler.templates.event_class(I.start_date,I.end_date,I);if(B){F=F+" "+B}var J=(I.color?("background:"+I.color+";"):"");var C=(I.textColor?("color:"+I.textColor+";"):"");var D='<div event_id="'+I.id+'" class="'+F+'" style="position:absolute; top:'+H+"px; left:"+K+"px; width:"+(A-K-15)+"px;"+C+""+J+""+(I._text_style||"")+'">';if(I._timed){D+=scheduler.templates.event_bar_date(I.start_date,I.end_date,I)}D+=scheduler.templates.event_bar_text(I.start_date,I.end_date,I)+"</div>";D+="</div>";G.innerHTML=D;this._rendered.push(G.firstChild);L.appendChild(G.firstChild)};scheduler._locate_event=function(A){var B=null;while(A&&!B&&A.getAttribute){B=A.getAttribute("event_id");A=A.parentNode}return B};scheduler.edit=function(A){if(this._edit_id==A){return }this.editStop(false,A);this._edit_id=A;this.updateEvent(A)};scheduler.editStop=function(B,C){if(C&&this._edit_id==C){return }var A=this.getEvent(this._edit_id);if(A){if(B){A.text=this._editor.value}this._edit_id=null;this._editor=null;this.updateEvent(A.id);this._edit_stop_event(A,B)}};scheduler._edit_stop_event=function(A,B){if(this._new_event){if(!B){this.deleteEvent(A.id,true)}else{this.callEvent("onEventAdded",[A.id,A])}this._new_event=null}else{if(B){this.callEvent("onEventChanged",[A.id,A])}}};scheduler.getEvents=function(E,D){var A=[];for(var B in this._events){var C=this._events[B];if(C&&C.start_date<D&&C.end_date>E){A.push(C)}}return A};scheduler._loaded={};scheduler._load=function(C,F){C=C||this._load_url;C+=(C.indexOf("?")==-1?"?":"&")+"timeshift="+(new Date()).getTimezoneOffset();if(this.config.prevent_cache){C+="&uid="+this.uid()}var E;F=F||this._date;if(this._load_mode){var B=this.templates.load_format;F=this.date[this._load_mode+"_start"](new Date(F.valueOf()));while(F>this._min_date){F=this.date.add(F,-1,this._load_mode)}E=F;var D=true;while(E<this._max_date){E=this.date.add(E,1,this._load_mode);if(this._loaded[B(F)]&&D){F=this.date.add(F,1,this._load_mode)}else{D=false}}var A=E;do{E=A;A=this.date.add(E,-1,this._load_mode)}while(A>F&&this._loaded[B(A)]);if(E<=F){return false}dhtmlxAjax.get(C+"&from="+B(F)+"&to="+B(E),function(G){scheduler.on_load(G)});while(F<E){this._loaded[B(F)]=true;F=this.date.add(F,1,this._load_mode)}}else{dhtmlxAjax.get(C,function(G){scheduler.on_load(G)})}this.callEvent("onXLS",[]);return true};scheduler.on_load=function(A){var B;if(this._process){B=this[this._process].parse(A.xmlDoc.responseText)}else{B=this._magic_parser(A)}scheduler._process_loading(B);this.callEvent("onXLE",[])};scheduler._process_loading=function(A){this._loading=true;this._not_render=true;for(var B=0;B<A.length;B++){if(!this.callEvent("onEventLoading",[A[B]])){continue}this.addEvent(A[B])}this._not_render=false;if(this._render_wait){this.render_view_data()}this._loading=false;if(this._after_call){this._after_call()}this._after_call=null};scheduler.json={};scheduler.json.parse=function(data){if(typeof data=="string"){eval("scheduler._temp = "+data+";");data=scheduler._temp.data||scheduler._temp}var collections=(scheduler._temp&&scheduler._temp.collections)?scheduler._temp.collections:{};var collections_loaded=false;for(var key in collections){if(collections.hasOwnProperty(key)){collections_loaded=true;var collection=collections[key];var arr=scheduler.serverList[key];if(!arr){continue}arr.splice(0,arr.length);for(var j=0;j<collection.length;j++){var option=collection[j];var obj={key:option.value,label:option.label};for(var option_key in option){if(option.hasOwnProperty(option_key)){if(option_key=="value"||option_key=="label"){continue}obj[option_key]=option[option_key]}}arr.push(obj)}}}if(collections_loaded){scheduler.callEvent("onOptionsLoad",[])}var evs=[];for(var i=0;i<data.length;i++){data[i].start_date=scheduler.templates.xml_date(data[i].start_date);data[i].end_date=scheduler.templates.xml_date(data[i].end_date);evs.push(data[i])}return evs};scheduler.parse=function(B,A){this._process=A;this.on_load({xmlDoc:{responseText:B}})};scheduler.load=function(A,B){if(typeof B=="string"){this._process=B;B=arguments[2]}this._load_url=A;this._after_call=B;this._load(A,this._date)};scheduler.setLoadMode=function(A){if(A=="all"){A=""}this._load_mode=A};scheduler.refresh=function(A){alert("not implemented")};scheduler.serverList=function(A,B){if(B){return this.serverList[A]=B.slice(0)}return this.serverList[A]=(this.serverList[A]||[])};scheduler._userdata={};scheduler._magic_parser=function(M){var H;if(!M.getXMLTopNode){var B=M.xmlDoc.responseText;M=new dtmlXMLLoaderObject(function(){});M.loadXMLString(B)}H=M.getXMLTopNode("data");if(H.tagName!="data"){return[]}var A=M.doXPath("//coll_options");for(var G=0;G<A.length;G++){var K=A[G].getAttribute("for");var I=this.serverList[K];if(!I){continue}I.splice(0,I.length);var P=M.doXPath(".//item",A[G]);for(var D=0;D<P.length;D++){var L=P[D];var N=L.attributes;var F={key:P[D].getAttribute("value"),label:P[D].getAttribute("label")};for(var C=0;C<N.length;C++){var J=N[C];if(J.nodeName=="value"||J.nodeName=="label"){continue}F[J.nodeName]=J.nodeValue}I.push(F)}}if(A.length){scheduler.callEvent("onOptionsLoad",[])}var Q=M.doXPath("//userdata");for(var G=0;G<Q.length;G++){var E=this.xmlNodeToJSON(Q[G]);this._userdata[E.name]=E.text}var O=[];H=M.doXPath("//event");for(var G=0;G<H.length;G++){O[G]=this.xmlNodeToJSON(H[G]);O[G].text=O[G].text||O[G]._tagvalue;O[G].start_date=this.templates.xml_date(O[G].start_date);O[G].end_date=this.templates.xml_date(O[G].end_date)}return O};scheduler.xmlNodeToJSON=function(C){var B={};for(var A=0;A<C.attributes.length;A++){B[C.attributes[A].name]=C.attributes[A].value}for(var A=0;A<C.childNodes.length;A++){var D=C.childNodes[A];if(D.nodeType==1){B[D.tagName]=D.firstChild?D.firstChild.nodeValue:""}}if(!B.text){B.text=C.firstChild?C.firstChild.nodeValue:""}return B};scheduler.attachEvent("onXLS",function(){if(this.config.show_loading===true){var A;A=this.config.show_loading=document.createElement("DIV");A.className="dhx_loading";A.style.left=Math.round((this._x-128)/2)+"px";A.style.top=Math.round((this._y-15)/2)+"px";this._obj.appendChild(A)}});scheduler.attachEvent("onXLE",function(){var A;if(A=this.config.show_loading){if(typeof A=="object"){this._obj.removeChild(A);this.config.show_loading=true}}});scheduler.ical={parse:function(H){var E=H.match(RegExp(this.c_start+"[^\f]*"+this.c_end,""));if(!E.length){return }E[0]=E[0].replace(/[\r\n]+(?=[a-z \t])/g," ");E[0]=E[0].replace(/\;[^:\r\n]*/g,"");var B=[];var D;var C=RegExp("(?:"+this.e_start+")([^\f]*?)(?:"+this.e_end+")","g");while(D=C.exec(E)){var F={};var G;var A=/[^\r\n]+[\r\n]+/g;while(G=A.exec(D[1])){this.parse_param(G.toString(),F)}if(F.uid&&!F.id){F.id=F.uid}B.push(F)}return B},parse_param:function(E,C){var D=E.indexOf(":");if(D==-1){return }var A=E.substr(0,D).toLowerCase();var B=E.substr(D+1).replace(/\\\,/g,",").replace(/[\r\n]+$/,"");if(A=="summary"){A="text"}else{if(A=="dtstart"){A="start_date";B=this.parse_date(B,0,0)}else{if(A=="dtend"){A="end_date";B=this.parse_date(B,0,0)}}}C[A]=B},parse_date:function(G,F,D){var E=G.split("T");if(E[1]){F=E[1].substr(0,2);D=E[1].substr(2,2)}var C=E[0].substr(0,4);var B=parseInt(E[0].substr(4,2),10)-1;var A=E[0].substr(6,2);if(scheduler.config.server_utc&&!E[1]){return new Date(Date.UTC(C,B,A,F,D))}return new Date(C,B,A,F,D)},c_start:"BEGIN:VCALENDAR",e_start:"BEGIN:VEVENT",e_end:"END:VEVENT",c_end:"END:VCALENDAR"};scheduler.lightbox={};scheduler.formSection=function(C){var B=this.config.lightbox.sections;var D=0;for(D;D<B.length;D++){if(B[D].name==C){break}}var G=B[D];if(!scheduler._lightbox){scheduler.getLightbox()}var H=document.getElementById(G.id);var F=H.nextSibling;var A={section:G,header:H,node:F,getValue:function(I){return scheduler.form_blocks[G.type].get_value(F,(I||{}),G)},setValue:function(J,I){return scheduler.form_blocks[G.type].set_value(F,J,(I||{}),G)}};var E=scheduler.lightbox["get_"+G.type+"_control"];return E?E(A):A};scheduler.lightbox.get_template_control=function(A){A.control=A.node;return A};scheduler.lightbox.get_select_control=function(A){A.control=A.node.getElementsByTagName("select")[0];return A};scheduler.lightbox.get_textarea_control=function(A){A.control=A.node.getElementsByTagName("textarea")[0];return A};scheduler.lightbox.get_time_control=function(A){A.control=A.node.getElementsByTagName("select");return A};scheduler.form_blocks={template:{render:function(B){var A=(B.height||"30")+"px";return"<div class='dhx_cal_ltext dhx_cal_template' style='height:"+A+";'></div>"},set_value:function(C,D,B,A){C.innerHTML=D||""},get_value:function(C,B,A){return C.innerHTML||""},focus:function(A){}},textarea:{render:function(B){var A=(B.height||"130")+"px";return"<div class='dhx_cal_ltext' style='height:"+A+";'><textarea></textarea></div>"},set_value:function(B,C,A){B.firstChild.value=C||""},get_value:function(B,A){return B.firstChild.value},focus:function(B){var A=B.firstChild;A.select();A.focus()}},select:{render:function(D){var A=(D.height||"23")+"px";var C="<div class='dhx_cal_ltext' style='height:"+A+";'><select style='width:100%;'>";for(var B=0;B<D.options.length;B++){C+="<option value='"+D.options[B].key+"'>"+D.options[B].label+"</option>"}C+="</select></div>";return C},set_value:function(C,E,B,D){var A=C.firstChild;if(!A._dhx_onchange&&D.onchange){A.onchange=D.onchange;A._dhx_onchange=true}if(typeof E=="undefined"){E=(A.options[0]||{}).value}A.value=E||""},get_value:function(B,A){return B.firstChild.value},focus:function(B){var A=B.firstChild;if(A.select){A.select()}A.focus()}},time:{render:function(H){var G=scheduler.config;var A=this.date.date_part(new Date());var J=24*60,E=0;if(scheduler.config.limit_time_select){J=60*G.last_hour+1;E=60*G.first_hour;A.setHours(G.first_hour)}var F="<select>";var D=E;var B=A.getDate();H._time_values=[];while(D<J){var C=this.templates.time_picker(A);F+="<option value='"+D+"'>"+C+"</option>";H._time_values.push(D);A.setTime(A.valueOf()+this.config.time_step*60*1000);var I=(A.getDate()!=B)?1:0;D=I*24*60+A.getHours()*60+A.getMinutes()}F+="</select> <select>";for(var D=1;D<32;D++){F+="<option value='"+D+"'>"+D+"</option>"}F+="</select> <select>";for(var D=0;D<12;D++){F+="<option value='"+D+"'>"+this.locale.date.month_full[D]+"</option>"}F+="</select> <select>";A=A.getFullYear()-5;for(var D=0;D<10;D++){F+="<option value='"+(A+D)+"'>"+(A+D)+"</option>"}F+="</select> ";return"<div style='height:30px;padding-top:0px;font-size:inherit;' class='dhx_section_time'>"+F+"<span style='font-weight:normal; font-size:10pt;'> – </span>"+F+"</div>"},set_value:function(B,K,I,A){var H=scheduler.config;var L=B.getElementsByTagName("select");if(H.full_day){if(!B._full_day){var F="<label class='dhx_fullday'><input type='checkbox' name='full_day' value='true'> "+scheduler.locale.labels.full_day+" </label></input>";if(!scheduler.config.wide_form){F=B.previousSibling.innerHTML+F}B.previousSibling.innerHTML=F;B._full_day=true}var J=B.previousSibling.getElementsByTagName("input")[0];J.checked=(scheduler.date.time_part(I.start_date)===0&&scheduler.date.time_part(I.end_date)===0);for(var C in L){L[C].disabled=J.checked}J.onclick=function(){if(J.checked){var O={};scheduler.form_blocks.time.get_value(B,O);var M=scheduler.date.date_part(O.start_date);var P=scheduler.date.date_part(O.end_date);if(M.valueOf()==P.valueOf()){P=scheduler.date.add(M,1,"day")}}for(var N in L){L[N].disabled=J.checked}D(L,0,M||I.start_date);D(L,4,P||I.end_date)}}if(H.auto_end_date&&H.event_duration){function G(){I.start_date=new Date(L[3].value,L[2].value,L[1].value,0,L[0].value);I.end_date.setTime(I.start_date.getTime()+(scheduler.config.event_duration*60*1000));D(L,4,I.end_date)}for(var E=0;E<4;E++){L[E].onchange=G}}function D(U,Q,S){var N=A._time_values;var T=S.getHours()*60+S.getMinutes();var P=T;var R=false;for(var O=0;O<N.length;O++){var M=N[O];if(M===T){R=true;break}if(M<T){P=M}}U[Q+0].value=(R)?T:P;U[Q+1].value=S.getDate();U[Q+2].value=S.getMonth();U[Q+3].value=S.getFullYear()}D(L,0,I.start_date);D(L,4,I.end_date)},get_value:function(B,A){s=B.getElementsByTagName("select");A.start_date=new Date(s[3].value,s[2].value,s[1].value,0,s[0].value);A.end_date=new Date(s[7].value,s[6].value,s[5].value,0,s[4].value);if(A.end_date<=A.start_date){A.end_date=scheduler.date.add(A.start_date,scheduler.config.time_step,"minute")}},focus:function(A){A.getElementsByTagName("select")[0].focus()}}};scheduler.showCover=function(C){if(C){C.style.display="block";var A=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;var D=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft;var B=window.innerHeight||document.documentElement.clientHeight;if(A){C.style.top=Math.round(A+Math.max((B-C.offsetHeight)/2,0))+"px"}else{C.style.top=Math.round(Math.max(((B-C.offsetHeight)/2),0)+9)+"px"}if(document.documentElement.scrollWidth>document.body.offsetWidth){C.style.left=Math.round(D+(document.body.offsetWidth-C.offsetWidth)/2)+"px"}else{C.style.left=Math.round((document.body.offsetWidth-C.offsetWidth)/2)+"px"}}this.show_cover()};scheduler.showLightbox=function(B){if(!B){return }if(!this.callEvent("onBeforeLightbox",[B])){return }var A=this.getLightbox();this.showCover(A);this._fill_lightbox(B,A);this.callEvent("onLightbox",[B])};scheduler._fill_lightbox=function(H,E){var D=this.getEvent(H);var B=E.getElementsByTagName("span");if(scheduler.templates.lightbox_header){B[1].innerHTML="";B[2].innerHTML=scheduler.templates.lightbox_header(D.start_date,D.end_date,D)}else{B[1].innerHTML=this.templates.event_header(D.start_date,D.end_date,D);B[2].innerHTML=(this.templates.event_bar_text(D.start_date,D.end_date,D)||"").substr(0,70)}var F=this.config.lightbox.sections;for(var A=0;A<F.length;A++){var C=document.getElementById(F[A].id).nextSibling;var G=this.form_blocks[F[A].type];G.set_value.call(this,C,D[F[A].map_to],D,F[A]);if(F[A].focus){G.focus.call(this,C)}}scheduler._lightbox_id=H};scheduler._lightbox_out=function(D){var E=this.config.lightbox.sections;for(var B=0;B<E.length;B++){var C=document.getElementById(E[B].id);C=(C?C.nextSibling:C);var F=this.form_blocks[E[B].type];var A=F.get_value.call(this,C,D,E[B]);if(E[B].map_to!="auto"){D[E[B].map_to]=A}}return D};scheduler._empty_lightbox=function(C){var D=scheduler._lightbox_id;var B=this.getEvent(D);var A=this.getLightbox();this._lame_copy(B,C);B._timed=this.is_one_day_event(B);this.setEvent(B.id,B);this._edit_stop_event(B,true);this.render_view_data()};scheduler.hide_lightbox=function(A){this.hideCover(this.getLightbox());this._lightbox_id=null;this.callEvent("onAfterLightbox",[])};scheduler.hideCover=function(A){if(A){A.style.display="none"}this.hide_cover()};scheduler.hide_cover=function(){if(this._cover){this._cover.parentNode.removeChild(this._cover)}this._cover=null};scheduler.show_cover=function(){this._cover=document.createElement("DIV");this._cover.className="dhx_cal_cover";var B=((document.height!==undefined)?document.height:document.body.offsetHeight);var A=((document.documentElement)?document.documentElement.scrollHeight:0);this._cover.style.height=Math.max(B,A)+"px";document.body.appendChild(this._cover)};scheduler.save_lightbox=function(){var A=this._lightbox_out(this._lame_copy(this.getEvent(this._lightbox_id)));if(this.checkEvent("onEventSave")&&!this.callEvent("onEventSave",[this._lightbox_id,A,this._new_event])){return }this._empty_lightbox(A);this.hide_lightbox()};scheduler.startLightbox=function(B,A){this._lightbox_id=B;this._lightbox=A;this.showCover(A)};scheduler.endLightbox=function(B,A){this._edit_stop_event(scheduler.getEvent(this._lightbox_id),B);if(B){scheduler.render_view_data()}this.hideCover(A);this._lightbox_id=null};scheduler.resetLightbox=function(){if(scheduler._lightbox){scheduler._lightbox.parentNode.removeChild(scheduler._lightbox)}scheduler._lightbox=null};scheduler.cancel_lightbox=function(){this.callEvent("onEventCancel",[this._lightbox_id,this._new_event]);this.endLightbox(false);this.hide_lightbox()};scheduler._init_lightbox_events=function(){this.getLightbox().onclick=function(C){var E=C?C.target:event.srcElement;if(!E.className){E=E.previousSibling}if(E&&E.className){switch(E.className){case"dhx_save_btn":scheduler.save_lightbox();break;case"dhx_delete_btn":var F=scheduler.locale.labels.confirm_deleting;scheduler._dhtmlx_confirm(F,function(){scheduler.deleteEvent(scheduler._lightbox_id);scheduler._new_event=null;scheduler.hide_lightbox()});break;case"dhx_cancel_btn":scheduler.cancel_lightbox();break;default:if(E.getAttribute("dhx_button")){scheduler.callEvent("onLightboxButton",[E.className,E,C])}else{if(E.className.indexOf("dhx_custom_button_")!=-1){var A=E.parentNode.getAttribute("index");var D=scheduler.form_blocks[scheduler.config.lightbox.sections[A].type];var B=E.parentNode.parentNode;D.button_click(A,E,B,B.nextSibling)}}break}}};this.getLightbox().onkeydown=function(A){switch((A||event).keyCode){case scheduler.keys.edit_save:if((A||event).shiftKey){return }scheduler.save_lightbox();break;case scheduler.keys.edit_cancel:scheduler.cancel_lightbox();break;default:break}}};scheduler.setLightboxSize=function(){var B=this._lightbox;if(!B){return }var A=B.childNodes[1];A.style.height="0px";A.style.height=A.scrollHeight+"px";B.style.height=A.scrollHeight+50+"px";A.style.height=A.scrollHeight+"px"};scheduler._init_dnd_events=function(){dhtmlxEvent(document.body,"mousemove",scheduler._move_while_dnd);dhtmlxEvent(document.body,"mouseup",scheduler._finish_dnd);scheduler._init_dnd_events=function(){}};scheduler._move_while_dnd=function(C){if(scheduler._dnd_start_lb){if(!document.dhx_unselectable){document.body.className+=" dhx_unselectable";document.dhx_unselectable=true}var B=scheduler.getLightbox();var A=(C&&C.target)?[C.pageX,C.pageY]:[event.clientX,event.clientY];B.style.top=scheduler._lb_start[1]+A[1]-scheduler._dnd_start_lb[1]+"px";B.style.left=scheduler._lb_start[0]+A[0]-scheduler._dnd_start_lb[0]+"px"}};scheduler._ready_to_dnd=function(B){var A=scheduler.getLightbox();scheduler._lb_start=[parseInt(A.style.left,10),parseInt(A.style.top,10)];scheduler._dnd_start_lb=(B&&B.target)?[B.pageX,B.pageY]:[event.clientX,event.clientY]};scheduler._finish_dnd=function(){if(scheduler._lb_start){scheduler._lb_start=scheduler._dnd_start_lb=false;document.body.className=document.body.className.replace(" dhx_unselectable","");document.dhx_unselectable=false}};scheduler.getLightbox=function(){if(!this._lightbox){var H=document.createElement("DIV");H.className="dhx_cal_light";if(scheduler.config.wide_form){H.className+=" dhx_cal_light_wide"}if(scheduler.form_blocks.recurring){H.className+=" dhx_cal_light_rec"}if(/msie|MSIE 6/.test(navigator.userAgent)){H.className+=" dhx_ie6"}H.style.visibility="hidden";var C=this._lightbox_template;var D=this.config.buttons_left;for(var B=0;B<D.length;B++){C+="<div class='dhx_btn_set'><div dhx_button='1' class='"+D[B]+"'></div><div>"+scheduler.locale.labels[D[B]]+"</div></div>"}D=this.config.buttons_right;for(var B=0;B<D.length;B++){C+="<div class='dhx_btn_set' style='float:right;'><div dhx_button='1' class='"+D[B]+"'></div><div>"+scheduler.locale.labels[D[B]]+"</div></div>"}C+="</div>";H.innerHTML=C;if(scheduler.config.drag_lightbox){H.firstChild.onmousedown=scheduler._ready_to_dnd;H.firstChild.onselectstart=function(){return false};H.firstChild.style.cursor="pointer";scheduler._init_dnd_events()}document.body.insertBefore(H,document.body.firstChild);this._lightbox=H;var F=this.config.lightbox.sections;C="";for(var B=0;B<F.length;B++){var G=this.form_blocks[F[B].type];if(!G){continue}F[B].id="area_"+this.uid();var A="";if(F[B].button){A="<div class='dhx_custom_button' index='"+B+"'><div class='dhx_custom_button_"+F[B].button+"'></div><div>"+this.locale.labels["button_"+F[B].button]+"</div></div>"}if(this.config.wide_form){C+="<div class='dhx_wrap_section'>"}C+="<div id='"+F[B].id+"' class='dhx_cal_lsection'>"+A+this.locale.labels["section_"+F[B].name]+"</div>"+G.render.call(this,F[B]);C+="</div>"}var E=H.getElementsByTagName("div");E[1].innerHTML=C;this.setLightboxSize();this._init_lightbox_events(this);H.style.display="none";H.style.visibility="visible"}return this._lightbox};scheduler._lightbox_template="<div class='dhx_cal_ltitle'><span class='dhx_mark'> </span><span class='dhx_time'></span><span class='dhx_title'></span></div><div class='dhx_cal_larea'></div>";scheduler._dp_init=function(A){A._methods=["setEventTextStyle","","changeEventId","deleteEvent"];this.attachEvent("onEventAdded",function(B){if(!this._loading&&this.validId(B)){A.setUpdated(B,true,"inserted")}});this.attachEvent("onConfirmedBeforeEventDelete",function(C){if(!this.validId(C)){return }var B=A.getState(C);if(B=="inserted"||this._new_event){A.setUpdated(C,false);return true}if(B=="deleted"){return false}if(B=="true_deleted"){return true}A.setUpdated(C,true,"deleted");return false});this.attachEvent("onEventChanged",function(B){if(!this._loading&&this.validId(B)){A.setUpdated(B,true,"updated")}});A._getRowData=function(F,B){var D=this.obj.getEvent(F);var E={};for(var C in D){if(C.indexOf("_")==0){continue}if(D[C]&&D[C].getUTCFullYear){E[C]=this.obj.templates.xml_format(D[C])}else{E[C]=D[C]}}return E};A._clearUpdateFlag=function(){};A.attachEvent("insertCallback",scheduler._update_callback);A.attachEvent("updateCallback",scheduler._update_callback);A.attachEvent("deleteCallback",function(B,C){this.obj.setUserData(C,this.action_param,"true_deleted");this.obj.deleteEvent(C)})};scheduler.setUserData=function(C,A,B){if(C){this.getEvent(C)[A]=B}else{this._userdata[A]=B}};scheduler.getUserData=function(B,A){return B?this.getEvent(B)[A]:this._userdata[A]};scheduler.setEventTextStyle=function(C,A){this.for_rendered(C,function(D){D.style.cssText+=";"+A});var B=this.getEvent(C);B._text_style=A;this.event_updated(B)};scheduler.validId=function(A){return true};scheduler._update_callback=function(B,C){var A=scheduler.xmlNodeToJSON(B.firstChild);A.text=A.text||A._tagvalue;A.start_date=scheduler.templates.xml_date(A.start_date);A.end_date=scheduler.templates.xml_date(A.end_date);scheduler.addEvent(A)}; |