/* dhtmlxScheduler v.4.1.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ function dtmlXMLLoaderObject(e,t,i,s){return this.xmlDoc="",this.async="undefined"!=typeof i?i:!0,this.onloadAction=e||null,this.mainObject=t||null,this.waitCall=null,this.rSeed=s||!1,this}function callerFunction(e,t){return this.handler=function(i){return i||(i=window.event),e(i,t),!0},this.handler}function getAbsoluteLeft(e){return getOffset(e).left}function getAbsoluteTop(e){return getOffset(e).top}function getOffsetSum(e){for(var t=0,i=0;e;)t+=parseInt(e.offsetTop),i+=parseInt(e.offsetLeft),e=e.offsetParent; return{top:t,left:i}}function getOffsetRect(e){var t=e.getBoundingClientRect(),i=document.body,s=document.documentElement,n=window.pageYOffset||s.scrollTop||i.scrollTop,r=window.pageXOffset||s.scrollLeft||i.scrollLeft,a=s.clientTop||i.clientTop||0,d=s.clientLeft||i.clientLeft||0,o=t.top+n-a,l=t.left+r-d;return{top:Math.round(o),left:Math.round(l)}}function getOffset(e){return e.getBoundingClientRect?getOffsetRect(e):getOffsetSum(e)}function convertStringToBoolean(e){switch("string"==typeof e&&(e=e.toLowerCase()),e){case"1":case"true":case"yes":case"y":case 1:case!0:return!0; default:return!1}}function getUrlSymbol(e){return-1!=e.indexOf("?")?"&":"?"}function dhtmlDragAndDropObject(){return window.dhtmlDragAndDrop?window.dhtmlDragAndDrop:(this.lastLanding=0,this.dragNode=0,this.dragStartNode=0,this.dragStartObject=0,this.tempDOMU=null,this.tempDOMM=null,this.waitDrag=0,window.dhtmlDragAndDrop=this,this)}function _dhtmlxError(){return this.catches||(this.catches=[]),this}function dhtmlXHeir(e,t){for(var i in t)"function"==typeof t[i]&&(e[i]=t[i]);return e}function dhtmlxEvent(e,t,i){e.addEventListener?e.addEventListener(t,i,!1):e.attachEvent&&e.attachEvent("on"+t,i) }function dataProcessor(e){return this.serverProcessor=e,this.action_param="!nativeeditor_status",this.object=null,this.updatedRows=[],this.autoUpdate=!0,this.updateMode="cell",this._tMode="GET",this.post_delim="_",this._waitMode=0,this._in_progress={},this._invalid={},this.mandatoryFields=[],this.messages=[],this.styles={updated:"font-weight:bold;",inserted:"font-weight:bold;",deleted:"text-decoration : line-through;",invalid:"background-color:FFE0E0;",invalid_cell:"border-bottom:2px solid red;",error:"color:red;",clear:"font-weight:normal;text-decoration:none;"},this.enableUTFencoding(!0),dhtmlxEventable(this),this }window.dhtmlXScheduler=window.scheduler={version:"4.1.0"},window.dhtmlx||(dhtmlx=function(e){for(var t in e)dhtmlx[t]=e[t];return dhtmlx}),dhtmlx.extend_api=function(e,t,i){var s=window[e];s&&(window[e]=function(e){var i;if(e&&"object"==typeof e&&!e.tagName){i=s.apply(this,t._init?t._init(e):arguments);for(var n in dhtmlx)t[n]&&this[t[n]](dhtmlx[n]);for(var n in e)t[n]?this[t[n]](e[n]):0===n.indexOf("on")&&this.attachEvent(n,e[n])}else i=s.apply(this,arguments);return t._patch&&t._patch(this),i||this },window[e].prototype=s.prototype,i&&dhtmlXHeir(window[e].prototype,i))},dhtmlxAjax={get:function(e,t){var i=new dtmlXMLLoaderObject(!0);return i.async=arguments.length<3,i.waitCall=t,i.loadXML(e),i},post:function(e,t,i){var s=new dtmlXMLLoaderObject(!0);return s.async=arguments.length<4,s.waitCall=i,s.loadXML(e,!0,t),s},getSync:function(e){return this.get(e,null,!0)},postSync:function(e,t){return this.post(e,t,null,!0)}},dtmlXMLLoaderObject.count=0,dtmlXMLLoaderObject.prototype.waitLoadFunction=function(e){var t=!0; return this.check=function(){if(e&&e.onloadAction&&(!e.xmlDoc.readyState||4==e.xmlDoc.readyState)){if(!t)return;t=!1,dtmlXMLLoaderObject.count++,"function"==typeof e.onloadAction&&e.onloadAction(e.mainObject,null,null,null,e),e.waitCall&&(e.waitCall.call(this,e),e.waitCall=null)}},this.check},dtmlXMLLoaderObject.prototype.getXMLTopNode=function(e,t){var i;if(this.xmlDoc.responseXML){var s=this.xmlDoc.responseXML.getElementsByTagName(e);if(0===s.length&&-1!=e.indexOf(":"))var s=this.xmlDoc.responseXML.getElementsByTagName(e.split(":")[1]); i=s[0]}else i=this.xmlDoc.documentElement;if(i)return this._retry=!1,i;if(!this._retry&&_isIE){this._retry=!0;var t=this.xmlDoc;return this.loadXMLString(this.xmlDoc.responseText.replace(/^[\s]+/,""),!0),this.getXMLTopNode(e,t)}return dhtmlxError.throwError("LoadXML","Incorrect XML",[t||this.xmlDoc,this.mainObject]),document.createElement("DIV")},dtmlXMLLoaderObject.prototype.loadXMLString=function(e,t){if(_isIE)this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"),this.xmlDoc.async=this.async,this.xmlDoc.onreadystatechange=function(){},this.xmlDoc.loadXML(e); else{var i=new DOMParser;this.xmlDoc=i.parseFromString(e,"text/xml")}t||(this.onloadAction&&this.onloadAction(this.mainObject,null,null,null,this),this.waitCall&&(this.waitCall(),this.waitCall=null))},dtmlXMLLoaderObject.prototype.loadXML=function(e,t,i,s){this.rSeed&&(e+=(-1!=e.indexOf("?")?"&":"?")+"a_dhx_rSeed="+(new Date).valueOf()),this.filePath=e,this.xmlDoc=!_isIE&&window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),this.async&&(this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this)),this.xmlDoc.open(t?"POST":"GET",e,this.async),s?(this.xmlDoc.setRequestHeader("User-Agent","dhtmlxRPC v0.1 ("+navigator.userAgent+")"),this.xmlDoc.setRequestHeader("Content-type","text/xml")):t&&this.xmlDoc.setRequestHeader("Content-type","application/x-www-form-urlencoded"),this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest"),this.xmlDoc.send(null||i),this.async||new this.waitLoadFunction(this)() },dtmlXMLLoaderObject.prototype.destructor=function(){return this._filterXPath=null,this._getAllNamedChilds=null,this._retry=null,this.async=null,this.rSeed=null,this.filePath=null,this.onloadAction=null,this.mainObject=null,this.xmlDoc=null,this.doXPath=null,this.doXPathOpera=null,this.doXSLTransToObject=null,this.doXSLTransToString=null,this.loadXML=null,this.loadXMLString=null,this.doSerialization=null,this.xmlNodeToJSON=null,this.getXMLTopNode=null,this.setXSLParamValue=null,null},dtmlXMLLoaderObject.prototype.xmlNodeToJSON=function(e){for(var t={},i=0;i_FFrv)&&window.dhtmlDragAndDrop.calculateFramePosition()); try{parent.dhtmlDragAndDrop&&parent!=window&&parent!=e&&parent.dhtmlDragAndDrop.initFrameRoute(window)}catch(i){}for(var s=0;s-1&&(_isChrome=!0),-1!=navigator.userAgent.indexOf("Safari")||-1!=navigator.userAgent.indexOf("Konqueror")?(_KHTMLrv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Safari")+7,5)),_KHTMLrv>525?(_isFF=!0,_FFrv=1.9):_isKHTML=!0):-1!=navigator.userAgent.indexOf("Opera")?(_isOpera=!0,_OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Opera")+6,3))):-1!=navigator.appName.indexOf("Microsoft")?(_isIE=!0,-1==navigator.appVersion.indexOf("MSIE 8.0")&&-1==navigator.appVersion.indexOf("MSIE 9.0")&&-1==navigator.appVersion.indexOf("MSIE 10.0")||"BackCompat"==document.compatMode||(_isIE=8)):"Netscape"==navigator.appName&&-1!=navigator.userAgent.indexOf("Trident")?_isIE=8:(_isFF=!0,_FFrv=parseFloat(navigator.userAgent.split("rv:")[1])),dtmlXMLLoaderObject.prototype.doXPath=function(e,t,i,s){if(_isKHTML||!_isIE&&!window.XPathResult)return this.doXPathOpera(e,t); if(_isIE)return t||(t=this.xmlDoc.nodeName?this.xmlDoc:this.xmlDoc.responseXML),t||dhtmlxError.throwError("LoadXML","Incorrect XML",[t||this.xmlDoc,this.mainObject]),i&&t.setProperty("SelectionNamespaces","xmlns:xsl='"+i+"'"),"single"==s?t.selectSingleNode(e):t.selectNodes(e)||new Array(0);var n=t;t||(t=this.xmlDoc.nodeName?this.xmlDoc:this.xmlDoc.responseXML),t||dhtmlxError.throwError("LoadXML","Incorrect XML",[t||this.xmlDoc,this.mainObject]),-1!=t.nodeName.indexOf("document")?n=t:(n=t,t=t.ownerDocument); var r=XPathResult.ANY_TYPE;"single"==s&&(r=XPathResult.FIRST_ORDERED_NODE_TYPE);var a=[],d=t.evaluate(e,n,function(){return i},r,null);if(r==XPathResult.FIRST_ORDERED_NODE_TYPE)return d.singleNodeValue;for(var o=d.iterateNext();o;)a[a.length]=o,o=d.iterateNext();return a},_dhtmlxError.prototype.catchError=function(e,t){this.catches[e]=t},_dhtmlxError.prototype.throwError=function(e,t,i){return this.catches[e]?this.catches[e](e,t,i):this.catches.ALL?this.catches.ALL(e,t,i):(window.alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]),null) },window.dhtmlxError=new _dhtmlxError,dtmlXMLLoaderObject.prototype.doXPathOpera=function(e,t){var i=e.replace(/[\/]+/gi,"/").split("/"),s=null,n=1;if(!i.length)return[];if("."==i[0])s=[t];else{if(""!==i[0])return[];s=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(i[n].replace(/\[[^\]]*\]/g,"")),n++}for(n;n
"+e+"
"}function n(e){u.area||(u.area=document.createElement("DIV"),u.area.className="dhtmlx_message_area",u.area.style[u.position]="5px",document.body.appendChild(u.area)),u.hide(e.id);var t=document.createElement("DIV");return t.innerHTML="
"+e.text+"
",t.className="dhtmlx-info dhtmlx-"+e.type,t.onclick=function(){u.hide(e.id),e=null },"bottom"==u.position&&u.area.firstChild?u.area.insertBefore(t,u.area.firstChild):u.area.appendChild(t),e.expire>0&&(u.timers[e.id]=window.setTimeout(function(){u.hide(e.id)},e.expire)),u.pull[e.id]=t,t=null,e.id}function r(t,i,n){var r=document.createElement("DIV");r.className=" dhtmlx_modal_box dhtmlx-"+t.type,r.setAttribute("dhxbox",1);var a="";if(t.width&&(r.style.width=t.width),t.height&&(r.style.height=t.height),t.title&&(a+='
'+t.title+"
"),a+='
'+(t.content?"":t.text)+'
',i){var d=t.ok||scheduler.locale.labels.message_ok; void 0===d&&(d="OK"),a+=s(d,!0,"ok")}if(n){var o=t.cancel||scheduler.locale.labels.message_cancel;void 0===o&&(o="Cancel"),a+=s(o,!1,"cancel")}if(t.buttons)for(var l=0;l",r.innerHTML=a,t.content){var h=t.content;"string"==typeof h&&(h=document.getElementById(h)),"none"==h.style.display&&(h.style.display=""),r.childNodes[t.title?1:0].appendChild(h)}return r.onclick=function(i){i=i||event;var s=i.target||i.srcElement;if(s.className||(s=s.parentNode),"dhtmlx_popup_button"==s.className.split(" ")[0]){var n=s.getAttribute("result"); n="true"==n||("false"==n?!1:n),e(t,n)}},t.box=r,(i||n)&&(c=t),r}function a(e,s,n){var a=e.tagName?e:r(e,s,n);e.hidden||i(!0),document.body.appendChild(a);var d=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-a.offsetWidth)/2)),o=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-a.offsetHeight)/2));return a.style.top="top"==e.position?"-3px":o+"px",a.style.left=d+"px",a.onkeydown=t,a.focus(),e.hidden&&dhtmlx.modalbox.hide(a),a}function d(e){return a(e,!0,!1) }function o(e){return a(e,!0,!0)}function l(e){return a(e)}function h(e,t,i){return"object"!=typeof e&&("function"==typeof t&&(i=t,t=""),e={text:e,type:t,callback:i}),e}function _(e,t,i,s){return"object"!=typeof e&&(e={text:e,type:t,expire:i,id:s}),e.id=e.id||u.uid(),e.expire=e.expire||u.expire,e}var c=null;document.attachEvent?document.attachEvent("onkeydown",t):document.addEventListener("keydown",t,!0),dhtmlx.alert=function(){var e=h.apply(this,arguments);return e.type=e.type||"confirm",d(e)},dhtmlx.confirm=function(){var e=h.apply(this,arguments); return e.type=e.type||"alert",o(e)},dhtmlx.modalbox=function(){var e=h.apply(this,arguments);return e.type=e.type||"alert",l(e)},dhtmlx.modalbox.hide=function(e){for(;e&&e.getAttribute&&!e.getAttribute("dhxbox");)e=e.parentNode;e&&(e.parentNode.removeChild(e),i(!1))};var u=dhtmlx.message=function(e){e=_.apply(this,arguments),e.type=e.type||"info";var t=e.type.split("-")[0];switch(t){case"alert":return d(e);case"confirm":return o(e);case"modalbox":return l(e);default:return n(e)}};u.seed=(new Date).valueOf(),u.uid=function(){return u.seed++ },u.expire=4e3,u.keyboard=!0,u.position="top",u.pull={},u.timers={},u.hideAll=function(){for(var e in u.pull)u.hide(e)},u.hide=function(e){var t=u.pull[e];t&&t.parentNode&&(window.setTimeout(function(){t.parentNode.removeChild(t),t=null},2e3),t.className+=" hidden",u.timers[e]&&window.clearTimeout(u.timers[e]),delete u.pull[e])}}(),dataProcessor.prototype={setTransactionMode:function(e,t){this._tMode=e,this._tSend=t},escape:function(e){return this._utf?encodeURIComponent(e):escape(e)},enableUTFencoding:function(e){this._utf=convertStringToBoolean(e) },setDataColumns:function(e){this._columns="string"==typeof e?e.split(","):e},getSyncState:function(){return!this.updatedRows.length},enableDataNames:function(e){this._endnm=convertStringToBoolean(e)},enablePartialDataSend:function(e){this._changed=convertStringToBoolean(e)},setUpdateMode:function(e,t){this.autoUpdate="cell"==e,this.updateMode=e,this.dnd=t},ignore:function(e,t){this._silent_mode=!0,e.call(t||window),this._silent_mode=!1},setUpdated:function(e,t,i){if(!this._silent_mode){var s=this.findRow(e); i=i||"updated";var n=this.obj.getUserData(e,this.action_param);n&&"updated"==i&&(i=n),t?(this.set_invalid(e,!1),this.updatedRows[s]=e,this.obj.setUserData(e,this.action_param,i),this._in_progress[e]&&(this._in_progress[e]="wait")):this.is_invalid(e)||(this.updatedRows.splice(s,1),this.obj.setUserData(e,this.action_param,"")),t||this._clearUpdateFlag(e),this.markRow(e,t,i),t&&this.autoUpdate&&this.sendData(e)}},_clearUpdateFlag:function(){},markRow:function(e,t,i){var s="",n=this.is_invalid(e);if(n&&(s=this.styles[n],t=!0),this.callEvent("onRowMark",[e,t,i,n])&&(s=this.styles[t?i:"clear"]+s,this.obj[this._methods[0]](e,s),n&&n.details)){s+=this.styles[n+"_cell"]; for(var r=0;r0?"&dhx_no_header=1":"") },t=function(t){return e.call(this,t)+(this._connector_sorting||"")+(this._connector_filter||"")},i=function(e,i,s){return this._connector_sorting="&dhx_sort["+i+"]="+s,t.call(this,e)},s=function(e,i,s){for(var n=0;n0&&(this.xy.nav_height=n);var r=this.xy.scale_height+this.xy.nav_height+(this._quirks?-2:0);this.set_xy(this._els.dhx_cal_data[0],e,t-(r+2),0,r+2)},scheduler.set_xy=function(e,t,i,s,n){e.style.width=Math.max(0,t)+"px",e.style.height=Math.max(0,i)+"px",arguments.length>3&&(e.style.left=s+"px",e.style.top=n+"px")},scheduler.get_elements=function(){for(var e=this._obj.getElementsByTagName("DIV"),t=0;tr.getHours()&&(r.setHours(a),e=r.valueOf()),t=e.valueOf()+n}var d=new Date(t);r.valueOf()==d.valueOf()&&d.setTime(d.valueOf()+n),s.start_date=s.start_date||r,s.end_date=s.end_date||d,s.text=s.text||this.locale.labels.new_event,s.id=this._drag_id=this.uid(),this._drag_mode="new-size",this._loading=!0,this.addEvent(s),this.callEvent("onEventCreated",[this._drag_id,i]),this._loading=!1,this._drag_event={},this._on_mouse_up(i) },scheduler._on_dbl_click=function(e,t){if(t=t||e.target||e.srcElement,!this.config.readonly){var i=(t.className||"").split(" ")[0];switch(i){case"dhx_scale_holder":case"dhx_scale_holder_now":case"dhx_month_body":case"dhx_wa_day_data":if(!scheduler.config.dblclick_create)break;this.addEventNow(this.getActionData(e).date,null,e);break;case"dhx_cal_event":case"dhx_wa_ev_body":case"dhx_agenda_line":case"dhx_grid_event":case"dhx_cal_event_line":case"dhx_cal_event_clear":var s=this._locate_event(t);if(!this.callEvent("onDblClick",[s,e]))return; this.config.details_on_dblclick||this._table_view||!this.getEvent(s)._timed||!this.config.select?this.showLightbox(s):this.edit(s);break;case"dhx_time_block":case"dhx_cal_container":return;default:var n=this["dblclick_"+i];if(n)n.call(this,e);else if(t.parentNode&&t!=this)return scheduler._on_dbl_click(e,t.parentNode)}}},scheduler._get_column_index=function(e){var t=0;if(this._cols){for(var i=0,s=0;s=s;s++)this._ignores[s]&&t++ }return t},scheduler._week_indexes_from_pos=function(e){if(this._cols){var t=this._get_column_index(e.x);return e.x=Math.min(this._cols.length-1,Math.max(0,Math.ceil(t)-1)),e.y=Math.max(0,Math.ceil(60*e.y/(this.config.time_step*this.config.hour_size_px))-1)+this.config.first_hour*(60/this.config.time_step),e}return e},scheduler._mouse_coords=function(e){var t,i=document.body,s=document.documentElement;t=_isIE||!e.pageX&&!e.pageY?{x:e.clientX+(i.scrollLeft||s.scrollLeft||0)-i.clientLeft,y:e.clientY+(i.scrollTop||s.scrollTop||0)-i.clientTop}:{x:e.pageX,y:e.pageY},t.x-=getAbsoluteLeft(this._obj)+(this._table_view?0:this.xy.scale_width),t.y-=getAbsoluteTop(this._obj)+this.xy.nav_height+(this._dy_shift||0)+this.xy.scale_height-this._els.dhx_cal_data[0].scrollTop,t.ev=e; var n=this["mouse_"+this._mode];if(n)return n.call(this,t);if(this._table_view){var r=this._get_column_index(t.x);if(!this._cols||!this._colsS)return t;var a=0;for(a=1;at.y);a++);t.y=Math.ceil(24*(Math.max(0,r)+7*Math.max(0,a-1))*60/this.config.time_step),(scheduler._drag_mode||"month"==this._mode)&&(t.y=24*(Math.max(0,Math.ceil(r)-1)+7*Math.max(0,a-1))*60/this.config.time_step),"move"==this._drag_mode&&scheduler._ignores_detected&&scheduler.config.preserve_length&&(t._ignores=!0,this._drag_event._event_length||(this._drag_event._event_length=this._get_real_event_length(this._drag_event.start_date,this._drag_event.end_date,{x_step:1,x_unit:"day"}))),t.x=0 }else t=this._week_indexes_from_pos(t);return t},scheduler._close_not_saved=function(){if((new Date).valueOf()-(scheduler._new_event||0)>500&&scheduler._edit_id){var e=scheduler.locale.labels.confirm_closing;scheduler._dhtmlx_confirm(e,scheduler.locale.labels.title_confirm_closing,function(){scheduler.editStop(scheduler.config.positive_closing)})}},scheduler._correct_shift=function(e,t){return e-=6e4*(new Date(scheduler._min_date).getTimezoneOffset()-new Date(e).getTimezoneOffset())*(t?-1:1)},scheduler._on_mouse_move=function(e){if(this._drag_mode){var t=this._mouse_coords(e); if(!this._drag_pos||t.force_redraw||this._drag_pos.x!=t.x||this._drag_pos.y!=t.y){var i,s;if(this._edit_id!=this._drag_id&&this._close_not_saved(),this._drag_pos=t,"create"==this._drag_mode){if(this._close_not_saved(),this.unselect(this._select_id),this._loading=!0,i=this._get_date_from_pos(t).valueOf(),!this._drag_start){var n=this.callEvent("onBeforeEventCreated",[e,this._drag_id]);if(!n)return;return void(this._drag_start=i)}s=i,s==this._drag_start;var r=new Date(this._drag_start),a=new Date(s); "day"!=this._mode&&"week"!=this._mode||r.getHours()!=a.getHours()||r.getMinutes()!=a.getMinutes()||(a=new Date(this._drag_start+1e3)),this._drag_id=this.uid(),this.addEvent(r,a,this.locale.labels.new_event,this._drag_id,t.fields),this.callEvent("onEventCreated",[this._drag_id,e]),this._loading=!1,this._drag_mode="new-size"}var d,o=this.getEvent(this._drag_id);if("move"==this._drag_mode)i=this._min_date.valueOf()+6e4*(t.y*this.config.time_step+24*t.x*60-(scheduler._move_pos_shift||0)),!t.custom&&this._table_view&&(i+=1e3*this.date.time_part(o.start_date)),i=this._correct_shift(i),t._ignores&&this.config.preserve_length&&this._table_view?(this.matrix&&(d=this.matrix[this._mode]),d=d||{x_step:1,x_unit:"day"},s=1*i+this._get_fictional_event_length(i,this._drag_event._event_length,d)):s=o.end_date.valueOf()-(o.start_date.valueOf()-i); else{if(i=o.start_date.valueOf(),s=o.end_date.valueOf(),this._table_view){var l=this._min_date.valueOf()+t.y*this.config.time_step*6e4+(t.custom?0:864e5);if("month"==this._mode)if(l=this._correct_shift(l,!1),this._drag_from_start){var h=864e5;l<=scheduler.date.date_part(new Date(s+h-1)).valueOf()&&(i=l-h)}else s=l;else t.resize_from_start?i=l:s=l}else s=this.date.date_part(new Date(o.end_date.valueOf()-1)).valueOf()+t.y*this.config.time_step*6e4,this._els.dhx_cal_data[0].style.cursor="s-resize",("week"==this._mode||"day"==this._mode)&&(s=this._correct_shift(s)); if("new-size"==this._drag_mode)if(s<=this._drag_start){var _=t.shift||(this._table_view&&!t.custom?864e5:0);i=s-(t.shift?0:_),s=this._drag_start+(_||6e4*this.config.time_step)}else i=this._drag_start;else i>=s&&(s=i+6e4*this.config.time_step)}var c=new Date(s-1),u=new Date(i);if(scheduler.config.limit_drag_out&&(+u<+scheduler._min_date||+s>+scheduler._max_date)){var f=s-u;+u<+scheduler._min_date?(u=new Date(scheduler._min_date),s=new Date(+u+f)):(s=new Date(scheduler._max_date),u=new Date(+s-f)); var c=new Date(s-1)}if(!this._table_view&&(t.x!=this._get_event_sday({start_date:new Date(s),end_date:new Date(s)})||new Date(s).getHours()>=this.config.last_hour)){var f=s-u,h=this._min_date.valueOf()+24*t.x*60*6e4;s=scheduler.date.date_part(new Date(h)),s.setHours(this.config.last_hour),c=new Date(s-1),"move"==this._drag_mode&&(u=new Date(+s-f))}if(this._table_view||c.getDate()==u.getDate()&&c.getHours()a;a++)this._ignores[a]?(this._cols[a]=0,r++):this._cols[a]=Math.floor(s/(r-a)),s-=this._cols[a],this._colsS[a]=(this._cols[a-1]||0)+(this._colsS[a-1]||(this._table_view?0:this.xy.scale_width+2)),this._colsS.col_length=n;this._colsS[n]=this._cols[n-1]+this._colsS[n-1]},scheduler._set_scale_col_size=function(e,t,i){var s=this.config;this.set_xy(e,t-1,s.hour_size_px*(s.last_hour-s.first_hour),i+this.xy.scale_width+1,0)},scheduler._render_scales=function(e,t){var i=new Date(scheduler._min_date),s=new Date(scheduler._max_date),n=this.date.date_part(scheduler._currentDate()),r=parseInt(e.style.width,10),a=new Date(this._min_date),d=this._get_columns_num(i,s); this._calc_scale_sizes(r,i,s);var o=0;e.innerHTML="";for(var l=0;d>l;l++){if(this._ignores[l]||this._render_x_header(l,o,a,e),!this._table_view){var h=document.createElement("DIV"),_="dhx_scale_holder";a.valueOf()==n.valueOf()&&(_="dhx_scale_holder_now"),this._ignores_detected&&this._ignores[l]&&(_+=" dhx_scale_ignore"),h.className=_+" "+this.templates.week_date_class(a,n),this._set_scale_col_size(h,this._cols[l],o),t.appendChild(h),this.callEvent("onScaleAdd",[h,a])}o+=this._cols[l],a=this.date.add(a,1,"day") }},scheduler._reset_scale=function(){if(this.templates[this._mode+"_date"]){var e=this._els.dhx_cal_header[0],t=this._els.dhx_cal_data[0],i=this.config;e.innerHTML="",t.innerHTML="";var s=(i.readonly||!i.drag_resize?" dhx_resize_denied":"")+(i.readonly||!i.drag_move?" dhx_move_denied":"");t.className="dhx_cal_data"+s,this._scales={},this._cols=[],this._colsS={height:0},this._dy_shift=0,this.set_sizes();var n,r,a=this._get_timeunit_start(),d=scheduler._get_view_end();if(n=r=this._table_view?scheduler.date.week_start(a):a,this._min_date=n,this._els.dhx_cal_date[0].innerHTML=this.templates[this._mode+"_date"](a,d,this._mode),this._max_date=d,scheduler._render_scales(e,t),this._table_view)this._reset_month_scale(t,a,r); else if(this._reset_hours_scale(t,a,r),i.multi_day){var o="dhx_multi_day";this._els[o]&&(this._els[o][0].parentNode.removeChild(this._els[o][0]),this._els[o]=null);var l=this._els.dhx_cal_navline[0],h=l.offsetHeight+this._els.dhx_cal_header[0].offsetHeight+1,_=document.createElement("DIV");_.className=o,_.style.visibility="hidden",this.set_xy(_,this._colsS[this._colsS.col_length]+this.xy.scroll_width,0,0,h),t.parentNode.insertBefore(_,t);var c=_.cloneNode(!0);c.className=o+"_icon",c.style.visibility="hidden",this.set_xy(c,this.xy.scale_width,0,0,h),_.appendChild(c),this._els[o]=[_,c],this._els[o][0].onclick=this._click.dhx_cal_data }}},scheduler._reset_hours_scale=function(e){var t=document.createElement("DIV");t.className="dhx_scale_holder";for(var i=new Date(1980,1,1,this.config.first_hour,0,0),s=1*this.config.first_hour;sd;d++)r(a)&&(this._ignores_detected+=1,this._ignores[d]=!0,n&&t++),a=scheduler.date.add(a,s,i)},scheduler._render_month_scale=function(e,t,i){function s(e){var t=scheduler._colsS.height; return void 0!==scheduler._colsS.heights[e+1]&&(t=scheduler._colsS.heights[e+1]-(scheduler._colsS.heights[e]||0)),t}var n=scheduler.date.add(t,1,"month"),r=new Date(i),a=scheduler._currentDate();this.date.date_part(a),this.date.date_part(i);for(var d=Math.ceil(Math.round((n.valueOf()-i.valueOf())/864e5)/7),o=[],l=0;7>=l;l++){var h=(this._cols[l]||0)-1;0===l&&this.config.left_border&&(h-=1),o[l]=" style='width:"+h+"px;"}for(var _=0,c="",u=[],l=0;d>l;l++){c+=""; for(var f=Math.max(s(l)-scheduler.xy.month_head_height,0),g=0;7>g;g++){c+="i?v="dhx_before":i>=n?v="dhx_after":i.valueOf()==a.valueOf()&&(v="dhx_now"),this._ignores_detected&&this._ignores[g]&&(v+=" dhx_scale_ignore"),c+=" class='"+v+" "+this.templates.month_date_class(i,a)+"' >";var m="dhx_month_body",p="dhx_month_head";0===g&&this.config.left_border&&(m+=" dhx_month_body_border",p+=" dhx_month_head_border"),this._ignores_detected&&this._ignores[g]?c+="
":(c+="
"+this.templates.month_day(i)+"
",c+="
"),u.push(i); var x=i.getDate();i=this.date.add(i,1,"day"),i.getDate()-x>1&&(i=new Date(i.getFullYear(),i.getMonth(),x+1,12,0))}c+="
",scheduler._colsS.heights[l]=_,_+=s(l)}c+="
",this._min_date=r,this._max_date=i,e.innerHTML=c,this._scales={};for(var b=e.getElementsByTagName("div"),l=0;ld;){var o=scheduler.date.add(t,-i.x_step,i.x_unit);n-=a&&a(t)?t-o:r,t=o,s--}return n},scheduler._get_fictional_event_length=function(e,t,i,s){var n=new Date(e),r=s?-1:1;if(i._start_correction||i._end_correction){var a;a=s?60*n.getHours()+n.getMinutes()-60*(i.first_hour||0):60*(i.last_hour||0)-(60*n.getHours()+n.getMinutes());var d=60*(i.last_hour-i.first_hour),o=Math.ceil((t/6e4-a)/d);t+=o*(1440-d)*60*1e3 }var l,h=new Date(1*e+t*r),_=this["ignore_"+this._mode],c=0;for(i.render?(c=this._get_date_index(i,n),l=this._get_date_index(i,h)):l=Math.round(t/60/60/1e3/24);l*r>=c*r;){var u=scheduler.date.add(n,i.x_step*r,i.x_unit);_&&_(n)&&(t+=(u-n)*r,l+=r),n=u,c+=r}return t},scheduler._get_section_view=function(){return this.matrix&&this.matrix[this._mode]?this.matrix[this._mode]:this._props&&this._props[this._mode]?this._props[this._mode]:null},scheduler._get_section_property=function(){return this.matrix&&this.matrix[this._mode]?this.matrix[this._mode].y_property:this._props&&this._props[this._mode]?this._props[this._mode].map_to:null },scheduler._is_initialized=function(){var e=this.getState();return this._obj&&e.date&&e.mode},scheduler._is_lightbox_open=function(){var e=this.getState();return null!==e.lightbox_id&&void 0!==e.lightbox_id},scheduler.date={init:function(){for(var e=scheduler.locale.date.month_short,t=scheduler.locale.date.month_short_hash={},i=0;ie?"0"+e:e},copy:function(e){return new Date(e.valueOf())},date_to_str:function(e,t){return e=e.replace(/%[a-zA-Z]/g,function(e){switch(e){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 e}}),t&&(e=e.replace(/date\.get/g,"date.getUTC")),new Function("date",'return "'+e+'";')},str_to_date:function(e,t){for(var i="var temp=date.match(/[a-zA-Z]+|[0-9]+/g);",s=e.match(/%[a-zA-Z]/g),n=0;n50?1900:2000);";break;case"%g":case"%G":case"%h":case"%H":i+="set[3]=temp["+n+"]||0;";break;case"%i":i+="set[4]=temp["+n+"]||0;"; break;case"%Y":i+="set[0]=temp["+n+"]||0;";break;case"%a":case"%A":i+="set[3]=set[3]%12+((temp["+n+"]||'').toLowerCase()=='am'?0:12);";break;case"%s":i+="set[5]=temp["+n+"]||0;";break;case"%M":i+="set[1]=scheduler.locale.date.month_short_hash[temp["+n+"]]||0;";break;case"%F":i+="set[1]=scheduler.locale.date.month_full_hash[temp["+n+"]]||0;"}var r="set[0],set[1],set[2],set[3],set[4],set[5]";return t&&(r=" Date.UTC("+r+")"),new Function("date","var set=[0,0,1,0,0,0]; "+i+" return new Date("+r+");") },getISOWeek:function(e){if(!e)return!1;var t=e.getDay();0===t&&(t=7);var i=new Date(e.valueOf());i.setDate(e.getDate()+(4-t));var s=i.getFullYear(),n=Math.round((i.getTime()-new Date(s,0,1).getTime())/864e5),r=1+Math.floor(n/7);return r},getUTCISOWeek:function(e){return this.getISOWeek(this.convert_to_utc(e))},convert_to_utc:function(e){return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.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",drag_to_create:"Drag to create",drag_to_move:"Drag to move",message_ok:"OK",message_cancel:"Cancel"}},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",preserve_length:!0,time_step:5,start_on_monday:1,first_hour:0,last_hour:24,readonly:!1,drag_resize:1,drag_move:1,drag_create:1,dblclick_create:1,edit_on_create:1,details_on_create:0,resize_month_events:!1,resize_month_timed:!1,cascade_event_display:!1,cascade_event_count:4,cascade_event_margin:30,multi_day:!0,multi_day_height_limit:0,drag_lightbox:!0,preserve_scroll:!0,select:!0,server_utc:!1,touch:!0,touch_tip:!0,touch_drag:500,quick_info_detached:!0,positive_closing:!1,drag_highlight:!0,limit_drag_out:!1,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:!0},{name:"time",height:72,type:"time",map_to:"auto"}]},highlight_displayed_event:!0,left_border:!1},scheduler.templates={},scheduler.init_templates=function(){var e=scheduler.locale.labels; e.dhx_save_btn=e.icon_save,e.dhx_cancel_btn=e.icon_cancel,e.dhx_delete_btn=e.icon_delete;var t=scheduler.date.date_to_str,i=scheduler.config,s=function(e,t){for(var i in t)e[i]||(e[i]=t[i])};s(scheduler.templates,{day_date:t(i.default_date),month_date:t(i.month_date),week_date:function(e,t){return scheduler.templates.day_date(e)+" – "+scheduler.templates.day_date(scheduler.date.add(t,-1,"day"))},day_scale_date:t(i.default_date),month_scale_date:t(i.week_date),week_scale_date:t(i.day_date),hour_scale:t(i.hour_date),time_picker:t(i.hour_date),event_date:t(i.hour_date),month_day:t(i.month_day),xml_date:scheduler.date.str_to_date(i.xml_date,i.server_utc),load_format:t(i.load_date,i.server_utc),xml_format:t(i.xml_date,i.server_utc),api_date:scheduler.date.str_to_date(i.api_date),event_header:function(e,t){return scheduler.templates.event_date(e)+" - "+scheduler.templates.event_date(t) },event_text:function(e,t,i){return i.text},event_class:function(){return""},month_date_class:function(){return""},week_date_class:function(){return""},event_bar_date:function(e){return scheduler.templates.event_date(e)+" "},event_bar_text:function(e,t,i){return i.text},month_events_link:function(e,t){return"View more("+t+" events)"},drag_marker_class:function(){return""},drag_marker_content:function(){return""}}),this.callEvent("onTemplatesReady",[])},scheduler.uid=function(){return this._seed||(this._seed=(new Date).valueOf()),this._seed++ },scheduler._events={},scheduler.clearAll=function(){this._events={},this._loaded={},this.clear_view(),this.callEvent("onClearAll",[])},scheduler.addEvent=function(e,t,i,s,n){if(!arguments.length)return this.addEventNow();var r=e;1!=arguments.length&&(r=n||{},r.start_date=e,r.end_date=t,r.text=i,r.id=s),r.id=r.id||scheduler.uid(),r.text=r.text||"","string"==typeof r.start_date&&(r.start_date=this.templates.api_date(r.start_date)),"string"==typeof r.end_date&&(r.end_date=this.templates.api_date(r.end_date)); var a=6e4*(this.config.event_duration||this.config.time_step);r.start_date.valueOf()==r.end_date.valueOf()&&r.end_date.setTime(r.end_date.valueOf()+a),r._timed=this.isOneDayEvent(r);var d=!this._events[r.id];return this._events[r.id]=r,this.event_updated(r),this._loading||this.callEvent(d?"onEventAdded":"onEventChanged",[r.id,r]),r.id},scheduler.deleteEvent=function(e,t){var i=this._events[e];(t||this.callEvent("onBeforeEventDelete",[e,i])&&this.callEvent("onConfirmedBeforeEventDelete",[e,i]))&&(i&&(this._select_id=null,delete this._events[e],this.event_updated(i)),this.callEvent("onEventDeleted",[e,i])) },scheduler.getEvent=function(e){return this._events[e]},scheduler.setEvent=function(e,t){t.id||(t.id=e),this._events[e]=t},scheduler.for_rendered=function(e,t){for(var i=this._rendered.length-1;i>=0;i--)this._rendered[i].getAttribute("event_id")==e&&t(this._rendered[i],i)},scheduler.changeEventId=function(e,t){if(e!=t){var i=this._events[e];i&&(i.id=t,this._events[t]=i,delete this._events[e]),this.for_rendered(e,function(e){e.setAttribute("event_id",t)}),this._select_id==e&&(this._select_id=t),this._edit_id==e&&(this._edit_id=t),this.callEvent("onEventIdChange",[e,t]) }},function(){for(var e=["text","Text","start_date","StartDate","end_date","EndDate"],t=function(e){return function(t){return scheduler.getEvent(t)[e]}},i=function(e){return function(t,i){var s=scheduler.getEvent(t);s[e]=i,s._changed=!0,s._timed=this.isOneDayEvent(s),scheduler.event_updated(s,!0)}},s=0;s=this.config.first_hour&&e.end_date.getHours()=this.config.first_hour&&e.start_date.getHours()n}return!1},scheduler.isOneDayEvent=function(e){var t=e.end_date.getDate()-e.start_date.getDate(); return t?(0>t&&(t=Math.ceil((e.end_date.valueOf()-e.start_date.valueOf())/864e5)),1==t&&!e.end_date.getHours()&&!e.end_date.getMinutes()&&(e.start_date.getHours()||e.start_date.getMinutes())):e.start_date.getMonth()==e.end_date.getMonth()&&e.start_date.getFullYear()==e.end_date.getFullYear()},scheduler.get_visible_events=function(e){var t=[];for(var i in this._events)this.is_visible_events(this._events[i])&&(!e||this._events[i]._timed)&&this.filter_event(i,this._events[i])&&t.push(this._events[i]); return t},scheduler.filter_event=function(e,t){var i=this["filter_"+this._mode];return i?i(e,t):!0},scheduler._is_main_area_event=function(e){return!!e._timed},scheduler.render_view_data=function(e,t){if(!e){if(this._not_render)return void(this._render_wait=!0);this._render_wait=!1,this.clear_view(),e=this.get_visible_events(!(this._table_view||this.config.multi_day))}for(var i=0,s=e.length;s>i;i++)this._recalculate_timed(e[i]);if(this.config.multi_day&&!this._table_view){for(var n=[],r=[],i=0;io){var l=a.rows[d].cells,h=o;1*this.config.max_month_events!==this.config.max_month_events||n[d]<=this.config.max_month_events?h=n[d]*i:(this.config.max_month_events+1)*i>o&&(h=(this.config.max_month_events+1)*i); for(var _=0;_t.id?1:-1:e.start_date>t.start_date?1:-1});var i=[],s=[];this._min_mapped_duration=Math.ceil(60*this.xy.min_event_height/this.config.hour_size_px);for(var n=0;np&&(p=h[g]._sorder);r._sorder=p+1,r._inner=!1}else r._sorder=0;h.splice(u,u==h.length?0:1,r),h.length>(h.max_count||0)?(h.max_count=h.length,r._count=h.length):r._count=r._count?r._count:1}(o=this.config.last_hour)&&(s.push(r),e[n]=r=this._copy_event(r),o=this.config.last_hour&&(r.end_date.setMinutes(0),r.end_date.setHours(this.config.last_hour)),r.start_date>r.end_date||o==this.config.last_hour)&&(e.splice(n,1),n--) }}if(!t){for(var n=0;nt.id?1:-1:e.start_date>t.start_date?1:-1})},scheduler._pre_render_events_table=function(e,t){this._time_order(e);for(var i,s=[],n=[[],[],[],[],[],[],[]],r=this._colsS.heights,a=this._cols.length,d={},o=0;othis._max_date&&(_.last_chunk=!1,u=this._max_date);var f=this.locate_holder_day(c,!1,l);if(l._sday=f%a,!this._ignores[l._sday]||!l._timed){var g=this.locate_holder_day(u,!0,l)||a;l._eday=g%a||a,l._length=g-f,l._sweek=Math.floor((this._correct_shift(c.valueOf(),1)-this._min_date.valueOf())/(864e5*a));var v,m=n[l._sweek];for(v=0;v",this._quirks7&&(v.firstChild.style.height=a-12+"px"),this._editor=v.firstChild,this._editor.onkeydown=function(e){if((e||event).shiftKey)return!0; var t=(e||event).keyCode;t==scheduler.keys.edit_save&&scheduler.editStop(!0),t==scheduler.keys.edit_cancel&&scheduler.editStop(!1)},this._editor.onselectstart=function(e){return(e||event).cancelBubble=!0,!0},scheduler._focus(v.firstChild,!0),this._els.dhx_cal_data[0].scrollLeft=0}if(0!==this.xy.menu_width&&this._select_id==e.id){this.config.cascade_event_display&&this._drag_mode&&(f.style.zIndex=1);for(var m=this.config["icons_"+(this._edit_id==e.id?"edit":"select")],p="",x=e.color?"background-color: "+e.color+";":"",b=e.textColor?"color: "+e.textColor+";":"",y=0;y
"; var w=this._render_v_bar(e,h-t+1,r,t,20*m.length+26-2,"","
",p,!0);w.style.left=h-t+1,this._els.dhx_cal_data[0].appendChild(w),this._rendered.push(w)}this.config.drag_highlight&&this._drag_id==e.id&&this.highlightEventPosition(e)}}},scheduler._render_v_bar=function(e,t,i,s,n,r,a,d,o){var l=document.createElement("DIV"),h=e.id,_=o?"dhx_cal_event dhx_cal_select_menu":"dhx_cal_event",c=scheduler.templates.event_class(e.start_date,e.end_date,e);c&&(_=_+" "+c); var u=e.color?"background:"+e.color+";":"",f=e.textColor?"color:"+e.textColor+";":"",g='
';l.innerHTML=g;var v=l.cloneNode(!0).firstChild;if(!o&&scheduler.renderEvent(v,e,s,n,a,d))return v;v=l.firstChild;var m='
 
';m+='
'+a+"
",m+='
'+d+"
"; var p="dhx_event_resize dhx_footer";return o&&(p="dhx_resize_denied "+p),m+='
',v.innerHTML=m,v},scheduler.renderEvent=function(){return!1},scheduler.locate_holder=function(e){return"day"==this._mode?this._els.dhx_cal_data[0].firstChild:this._els.dhx_cal_data[0].childNodes[e]},scheduler.locate_holder_day=function(e,t){var i=Math.floor((this._correct_shift(e,1)-this._min_date)/864e5);return t&&this.date.time_part(e)&&i++,i },scheduler._get_dnd_order=function(e,t,i){if(!this._drag_event)return e;this._drag_event._orig_sorder?e=this._drag_event._orig_sorder:this._drag_event._orig_sorder=e;for(var s=t*e;s+t>i;)e--,s-=t;return e=Math.max(e,0)},scheduler._get_event_bar_pos=function(e){var t=this._colsS[e._sday],i=this._colsS[e._eday];i==t&&(i=this._colsS[e._eday+1]);var s=this.xy.bar_height,n=e._sorder;if(e.id==this._drag_id){var r=this._colsS.heights[e._sweek+1]-this._colsS.heights[e._sweek]-this.xy.month_head_height;n=scheduler._get_dnd_order(n,s,r) }var a=n*s,d=this._colsS.heights[e._sweek]+(this._colsS.height?this.xy.month_scale_height+2:2)+a;return{x:t,x2:i,y:d}},scheduler.render_event_bar=function(e){var t=this._rendered_location,i=this._get_event_bar_pos(e),s=i.y,n=i.x,r=i.x2,a="";if(r){var d=scheduler.config.resize_month_events&&"month"==this._mode&&(!e._timed||scheduler.config.resize_month_timed),o=document.createElement("DIV"),l=e.hasOwnProperty("_first_chunk")&&e._first_chunk,h=e.hasOwnProperty("_last_chunk")&&e._last_chunk,_=d&&(e._timed||l),c=d&&(e._timed||h),u="dhx_cal_event_clear"; (!e._timed||d)&&(u="dhx_cal_event_line"),l&&(u+=" dhx_cal_event_line_start"),h&&(u+=" dhx_cal_event_line_end"),_&&(a+="
"),c&&(a+="
");var f=scheduler.templates.event_class(e.start_date,e.end_date,e);f&&(u+=" "+f);var g=e.color?"background:"+e.color+";":"",v=e.textColor?"color:"+e.textColor+";":"",m=["position:absolute","top:"+s+"px","left:"+n+"px","width:"+(r-n-15)+"px",v,g,e._text_style||""].join(";"),p='
'; d&&(p+=a),"month"==scheduler.getState().mode&&(e=scheduler.getEvent(e.id)),e._timed&&(p+=scheduler.templates.event_bar_date(e.start_date,e.end_date,e)),p+=scheduler.templates.event_bar_text(e.start_date,e.end_date,e)+"
",p+="",o.innerHTML=p,this._rendered.push(o.firstChild),t.appendChild(o.firstChild)}},scheduler._locate_event=function(e){for(var t=null;e&&!t&&e.getAttribute;)t=e.getAttribute("event_id"),e=e.parentNode;return t},scheduler.edit=function(e){this._edit_id!=e&&(this.editStop(!1,e),this._edit_id=e,this.updateEvent(e)) },scheduler.editStop=function(e,t){if(!t||this._edit_id!=t){var i=this.getEvent(this._edit_id);i&&(e&&(i.text=this._editor.value),this._edit_id=null,this._editor=null,this.updateEvent(i.id),this._edit_stop_event(i,e))}},scheduler._edit_stop_event=function(e,t){this._new_event?(t?this.callEvent("onEventAdded",[e.id,e]):e&&this.deleteEvent(e.id,!0),this._new_event=null):t&&this.callEvent("onEventChanged",[e.id,e])},scheduler.getEvents=function(e,t){var i=[];for(var s in this._events){var n=this._events[s]; n&&(!e&&!t||n.start_datee)&&i.push(n)}return i},scheduler.getRenderedEvent=function(e){if(e){for(var t=scheduler._rendered,i=0;ithis._min_date;)t=this.date.add(t,-1,this._load_mode);i=t;for(var n=!0;it&&this._loaded[s(r)]);if(t>=i)return!1;for(dhtmlxAjax.get(e+"&from="+s(t)+"&to="+s(i),function(e){scheduler.on_load(e)});i>t;)this._loaded[s(t)]=!0,t=this.date.add(t,1,this._load_mode) }else dhtmlxAjax.get(e,function(e){scheduler.on_load(e)});return this.callEvent("onXLS",[]),!0}},scheduler.on_load=function(e){var t;t=this._process&&"xml"!=this._process?this[this._process].parse(e.xmlDoc.responseText):this._magic_parser(e),scheduler._process_loading(t),this.callEvent("onXLE",[])},scheduler._process_loading=function(e){this._loading=!0,this._not_render=!0;for(var t=0;t"},set_value:function(e,t){e.innerHTML=t||""},get_value:function(e){return e.innerHTML||""},focus:function(){}},textarea:{render:function(e){var t=(e.height||"130")+"px";return"
"},set_value:function(e,t){e.firstChild.value=t||""},get_value:function(e){return e.firstChild.value },focus:function(e){var t=e.firstChild;scheduler._focus(t,!0)}},select:{render:function(e){for(var t=(e.height||"23")+"px",i="
"},set_value:function(e,t,i,s){var n=e.firstChild;!n._dhx_onchange&&s.onchange&&(n.onchange=s.onchange,n._dhx_onchange=!0),"undefined"==typeof t&&(t=(n.options[0]||{}).value),n.value=t||"" },get_value:function(e){return e.firstChild.value},focus:function(e){var t=e.firstChild;scheduler._focus(t,!0)}},time:{render:function(e){e.time_format||(e.time_format=["%H:%i","%d","%m","%Y"]),e._time_format_order={};var t=e.time_format,i=scheduler.config,s=this.date.date_part(scheduler._currentDate()),n=1440,r=0;scheduler.config.limit_time_select&&(n=60*i.last_hour+1,r=60*i.first_hour,s.setHours(i.first_hour));for(var a="",d=0;d0&&(a+=" "),o){case"%Y":e._time_format_order[3]=d,a+=" ";break;case"%m":e._time_format_order[2]=d,a+="";break;case"%d":e._time_format_order[1]=d,a+="";break;case"%H:%i":e._time_format_order[0]=d,a+=""}}return"
"+a+"  –  "+a+"
"},set_value:function(e,t,i,s){function n(e,t,i){for(var n=s._time_values,r=60*i.getHours()+i.getMinutes(),a=r,d=!1,o=0;oh&&(a=h)}e[t+l[0]].value=d?r:a,d||a||(e[t+l[0]].selectedIndex=-1),e[t+l[1]].value=i.getDate(),e[t+l[2]].value=i.getMonth(),e[t+l[3]].value=i.getFullYear()}var r,a,d=scheduler.config,o=e.getElementsByTagName("select"),l=s._time_format_order;if(d.full_day){if(!e._full_day){var h="";scheduler.config.wide_form||(h=e.previousSibling.innerHTML+h),e.previousSibling.innerHTML=h,e._full_day=!0 }var _=e.previousSibling.getElementsByTagName("input")[0];_.checked=0===scheduler.date.time_part(i.start_date)&&0===scheduler.date.time_part(i.end_date),o[l[0]].disabled=_.checked,o[l[0]+o.length/2].disabled=_.checked,_.onclick=function(){if(_.checked){var t={};scheduler.form_blocks.time.get_value(e,t,s),r=scheduler.date.date_part(t.start_date),a=scheduler.date.date_part(t.end_date),(+a==+r||+a>=+r&&(0!==i.end_date.getHours()||0!==i.end_date.getMinutes()))&&(a=scheduler.date.add(a,1,"day"))}o[l[0]].disabled=_.checked,o[l[0]+o.length/2].disabled=_.checked,n(o,0,r||i.start_date),n(o,4,a||i.end_date) }}if(d.auto_end_date&&d.event_duration)for(var c=function(){r=new Date(o[l[3]].value,o[l[2]].value,o[l[1]].value,0,o[l[0]].value),a=new Date(r.getTime()+60*scheduler.config.event_duration*1e3),n(o,4,a)},u=0;4>u;u++)o[u].onchange=c;n(o,0,i.start_date),n(o,4,i.end_date)},get_value:function(e,t,i){var s=e.getElementsByTagName("select"),n=i._time_format_order;return t.start_date=new Date(s[n[3]].value,s[n[2]].value,s[n[1]].value,0,s[n[0]].value),t.end_date=new Date(s[n[3]+4].value,s[n[2]+4].value,s[n[1]+4].value,0,s[n[0]+4].value),t.end_date<=t.start_date&&(t.end_date=scheduler.date.add(t.start_date,scheduler.config.time_step,"minute")),{start_date:new Date(t.start_date),end_date:new Date(t.end_date)} },focus:function(e){scheduler._focus(e.getElementsByTagName("select")[0])}}},scheduler.showCover=function(e){if(e){e.style.display="block";var t=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop,i=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft,s=window.innerHeight||document.documentElement.clientHeight;e.style.top=t?Math.round(t+Math.max((s-e.offsetHeight)/2,0))+"px":Math.round(Math.max((s-e.offsetHeight)/2,0)+9)+"px",e.style.left=document.documentElement.scrollWidth>document.body.offsetWidth?Math.round(i+(document.body.offsetWidth-e.offsetWidth)/2)+"px":Math.round((document.body.offsetWidth-e.offsetWidth)/2)+"px" }this.show_cover()},scheduler.showLightbox=function(e){if(e){if(!this.callEvent("onBeforeLightbox",[e]))return void(this._new_event&&(this._new_event=null));var t=this.getLightbox();this.showCover(t),this._fill_lightbox(e,t),this.callEvent("onLightbox",[e])}},scheduler._fill_lightbox=function(e,t){var i=this.getEvent(e),s=t.getElementsByTagName("span");scheduler.templates.lightbox_header?(s[1].innerHTML="",s[2].innerHTML=scheduler.templates.lightbox_header(i.start_date,i.end_date,i)):(s[1].innerHTML=this.templates.event_header(i.start_date,i.end_date,i),s[2].innerHTML=(this.templates.event_bar_text(i.start_date,i.end_date,i)||"").substr(0,70)); for(var n=this.config.lightbox.sections,r=0;r
"+scheduler.locale.labels[i[s]]+"
";i=this.config.buttons_right;for(var s=0;s
"+scheduler.locale.labels[i[s]]+"
";t+="",e.innerHTML=t,scheduler.config.drag_lightbox&&(e.firstChild.onmousedown=scheduler._ready_to_dnd,e.firstChild.onselectstart=function(){return!1 },e.firstChild.style.cursor="pointer",scheduler._init_dnd_events()),document.body.insertBefore(e,document.body.firstChild),this._lightbox=e;var n=this.config.lightbox.sections;t="";for(var s=0;s
"+this.locale.labels["button_"+n[s].button]+"
"),this.config.wide_form&&(t+="
"); var d=this.locale.labels["section_"+n[s].name];"string"!=typeof d&&(d=n[s].name),t+="
"+a+d+"
"+r.render.call(this,n[s]),t+="
"}}for(var o=e.getElementsByTagName("div"),s=0;s1?null:e.touches[0]?{target:e.target,pageX:e.touches[0].pageX,pageY:e.touches[0].pageY}:e},function(){return!1}))},scheduler._touch_events=function(e,t,i){function s(e,t,i){dhtmlxEvent(e,t,function(e){return scheduler._is_lightbox_open()?!0:i(e)})}function n(e,t,i){if(e&&t){var s=Math.abs(e.pageY-t.pageY),n=Math.abs(e.pageX-t.pageX); n>i&&(!s||n/s>3)&&(e.pageX>t.pageX?scheduler._click.dhx_cal_next_button():scheduler._click.dhx_cal_prev_button())}}function r(e){scheduler._hide_global_tip(),l&&(scheduler._on_mouse_up(t(e||event)),scheduler._temp_touch_block=!1),scheduler._drag_id=null,scheduler._drag_mode=null,scheduler._drag_pos=null,clearTimeout(o),l=_=!1,h=!0}var a,d,o,l,h,_,c=-1!=navigator.userAgent.indexOf("Android")&&-1!=navigator.userAgent.indexOf("WebKit"),u=0;s(document.body,e[0],function(e){if(!i(e)){if(l)return scheduler._on_mouse_move(t(e)),scheduler._update_global_tip(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,!1; if(d&&c&&n(d,t(e),0),d=t(e),_)return d?void((a.target!=d.target||Math.abs(a.pageX-d.pageX)>5||Math.abs(a.pageY-d.pageY)>5)&&(h=!0,clearTimeout(o))):void(h=!0)}}),s(this._els.dhx_cal_data[0],"scroll",r),s(this._els.dhx_cal_data[0],"touchcancel",r),s(this._els.dhx_cal_data[0],"contextmenu",function(e){return _?(e&&e.preventDefault&&e.preventDefault(),(e||event).cancelBubble=!0,!1):void 0}),s(this._els.dhx_cal_data[0],e[1],function(e){if(!i(e)){var s;if(l=h=!1,_=!0,scheduler._temp_touch_block=!0,s=d=t(e),!s)return void(h=!0); var n=new Date;if(!h&&!l&&250>n-u)return scheduler._click.dhx_cal_data(s),window.setTimeout(function(){scheduler._on_dbl_click(s)},50),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,scheduler._block_next_stop=!0,!1;u=n,h||l||!scheduler.config.touch_drag||(o=setTimeout(function(){l=!0;var e=a.target;if(e&&e.className&&-1!=e.className.indexOf("dhx_body")&&(e=e.previousSibling),scheduler._on_mouse_down(a,e),scheduler._drag_mode&&"create"!=scheduler._drag_mode){var t=-1;if(scheduler.for_rendered(scheduler._drag_id,function(e,i){t=e.getBoundingClientRect().top,e.style.display="none",scheduler._rendered.splice(i,1) }),t>=0){var i=scheduler.config.time_step;scheduler._move_pos_shift=i*Math.round(60*(s.pageY-t)/(scheduler.config.hour_size_px*i))}}scheduler.config.touch_tip&&scheduler._show_global_tip(),scheduler._on_mouse_move(a)},scheduler.config.touch_drag),a=s)}}),s(this._els.dhx_cal_data[0],e[2],function(e){return i(e)?void 0:(l||n(a,d,200),l&&(scheduler._ignore_next_click=!0),r(e),scheduler._block_next_stop?(scheduler._block_next_stop=!1,e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,!1):void 0)}),dhtmlxEvent(document.body,e[2],r) },scheduler._show_global_tip=function(){scheduler._hide_global_tip();var e=scheduler._global_tip=document.createElement("DIV");e.className="dhx_global_tip",scheduler._update_global_tip(1),document.body.appendChild(e)},scheduler._update_global_tip=function(e){var t=scheduler._global_tip;if(t){var i="";if(scheduler._drag_id&&!e){var s=scheduler.getEvent(scheduler._drag_id);s&&(i="
"+(s._timed?scheduler.templates.event_header(s.start_date,s.end_date,s):scheduler.templates.day_date(s.start_date,s.end_date,s))+"
") }t.innerHTML="create"==scheduler._drag_mode||"new-size"==scheduler._drag_mode?(scheduler.locale.drag_to_create||"Drag to create")+i:(scheduler.locale.drag_to_move||"Drag to move")+i}},scheduler._hide_global_tip=function(){var e=scheduler._global_tip;e&&e.parentNode&&(e.parentNode.removeChild(e),scheduler._global_tip=0)},scheduler._dp_init=function(e){e._methods=["_set_event_text_style","","changeEventId","_dp_hook_delete"],this._dp_hook_delete=function(e){return this.deleteEvent(e,!0)},this.attachEvent("onEventAdded",function(t){!this._loading&&this._validId(t)&&e.setUpdated(t,!0,"inserted") }),this.attachEvent("onConfirmedBeforeEventDelete",function(t){if(this._validId(t)){var i=e.getState(t);return"inserted"==i||this._new_event?(e.setUpdated(t,!1),!0):"deleted"==i?!1:"true_deleted"==i?!0:(e.setUpdated(t,!0,"deleted"),!1)}}),this.attachEvent("onEventChanged",function(t){!this._loading&&this._validId(t)&&e.setUpdated(t,!0,"updated")}),e._getRowData=function(e){var t=this.obj.getEvent(e),i={};for(var s in t)0!==s.indexOf("_")&&(i[s]=t[s]&&t[s].getUTCFullYear?this.obj.templates.xml_format(t[s]):t[s]); return i},e._clearUpdateFlag=function(){},e.attachEvent("insertCallback",scheduler._update_callback),e.attachEvent("updateCallback",scheduler._update_callback),e.attachEvent("deleteCallback",function(e,t){this.obj.setUserData(t,this.action_param,"true_deleted"),this.obj.deleteEvent(t)})},scheduler._validId=function(){return!0},scheduler.setUserData=function(e,t,i){e?this.getEvent(e)[t]=i:this._userdata[t]=i},scheduler.getUserData=function(e,t){return e?this.getEvent(e)[t]:this._userdata[t]},scheduler._set_event_text_style=function(e,t){this.for_rendered(e,function(e){e.style.cssText+=";"+t });var i=this.getEvent(e);i._text_style=t,this.event_updated(i)},scheduler._update_callback=function(e){var t=scheduler._xmlNodeToJSON(e.firstChild);t.text=t.text||t._tagvalue,t.start_date=scheduler.templates.xml_date(t.start_date),t.end_date=scheduler.templates.xml_date(t.end_date),scheduler.addEvent(t)},scheduler._skin_settings={fix_tab_position:[1,0],use_select_menu_space:[1,0],wide_form:[1,0],hour_size_px:[44,42],displayed_event_color:["#ff4a4a","ffc5ab"],displayed_event_text_color:["#ffef80","7e2727"]},scheduler._skin_xy={lightbox_additional_height:[90,50],nav_height:[59,22],bar_height:[24,20]},scheduler._configure=function(e,t,i){for(var s in t)"undefined"==typeof e[s]&&(e[s]=t[s][i]) },scheduler._skin_init=function(){if(!scheduler.skin)for(var e=document.getElementsByTagName("link"),t=0;t"+scheduler.templates.event_date(e)+" " },scheduler.attachEvent("onTemplatesReady",function(){var e=scheduler.date.date_to_str("%d");scheduler.templates._old_month_day||(scheduler.templates._old_month_day=scheduler.templates.month_day);var t=scheduler.templates._old_month_day;if(scheduler.templates.month_day=function(i){if("month"==this._mode){var s=e(i);return 1==i.getDate()&&(s=scheduler.locale.date.month_full[i.getMonth()]+" "+s),+i==+scheduler.date.date_part(new Date)&&(s=scheduler.locale.labels.dhx_cal_today_button+" "+s),s}return t.call(this,i) },scheduler.config.fix_tab_position){for(var i=scheduler._els.dhx_cal_navline[0].getElementsByTagName("div"),s=null,n=211,r=0;rt?"0"+t:t;var i=""+e.getHours()+" "+t+"";return i})}),scheduler._skin_init=function(){}}},window.jQuery&&!function(e){var t=[];e.fn.dhx_scheduler=function(i){if("string"!=typeof i){var s=[];return this.each(function(){if(this&&this.getAttribute&&!this.getAttribute("dhxscheduler")){for(var e in i)"data"!=e&&(scheduler.config[e]=i[e]); this.getElementsByTagName("div").length||(this.innerHTML='
 
 
',this.className+=" dhx_cal_container"),scheduler.init(this,scheduler.config.date,scheduler.config.mode),i.data&&scheduler.parse(i.data),s.push(scheduler) }}),1===s.length?s[0]:s}return t[i]?t[i].apply(this,[]):void e.error("Method "+i+" does not exist on jQuery.dhx_scheduler")}}(jQuery); //# sourceMappingURL=sources/dhtmlxscheduler.js.map