scheduler.attachEvent("onTemplatesReady",function(){ scheduler.attachEvent("onBeforeLightbox",function(id){ if (this.config.readonly_form || this.getEvent(id).readonly) this.config.readonly_active = true; else { this.config.readonly_active = false; return true; } for (var i=0; i < this.config.lightbox.sections.length; i++) { this.config.lightbox.sections[i].focus = false; }; return true; }); function txt_replace(tag,d,n,text){ var txts = d.getElementsByTagName(tag); var txtt = n.getElementsByTagName(tag); for (var i=txtt.length-1; i>=0; i--){ var n = txtt[i]; if (!text) n.disabled = true; else { var t = document.createElement("SPAN"); t.className = "dhx_text_disabled"; t.innerHTML=text(txts[i]); n.parentNode.insertBefore(t,n); n.parentNode.removeChild(n); } } } var old = scheduler._fill_lightbox; scheduler._fill_lightbox=function(){ var sns = this.config.lightbox.sections; if (this.config.readonly_active){ for (var i=0; i < sns.length; i++) { if (sns[i].type == 'recurring') { var s = document.getElementById(sns[i].id); s.style.display=s.nextSibling.style.display='none'; sns.splice(i,1); i--; } }; } var res = old.apply(this,arguments); if (this.config.readonly_active){ var d = this._get_lightbox(); var n = this._lightbox_r = d.cloneNode(true); txt_replace("textarea",d,n,function(a){ return a.value; }); txt_replace("input",d,n,false); txt_replace("select",d,n,function(a){ return a.options[Math.max((a.selectedIndex||0),0)].text; }); n.removeChild(n.childNodes[2]); n.removeChild(n.childNodes[3]); d.parentNode.insertBefore(n,d); olds.call(this,n); this._lightbox = n; this.setLightboxSize(); this._lightbox = null; n.onclick=function(e){ var src=e?e.target:event.srcElement; if (!src.className) src=src.previousSibling; if (src && src.className) switch(src.className){ case "dhx_cancel_btn": scheduler.callEvent("onEventCancel",[scheduler._lightbox_id]); scheduler._edit_stop_event(scheduler.getEvent(scheduler._lightbox_id),false); scheduler.hide_lightbox(); break; } }; } return res; }; var olds = scheduler.showCover; scheduler.showCover=function(){ if (!this.config.readonly_active) olds.apply(this,arguments); }; var hold = scheduler.hide_lightbox; scheduler.hide_lightbox=function(){ if (this._lightbox_r){ this._lightbox_r.parentNode.removeChild(this._lightbox_r); this._lightbox_r = null; } return hold.apply(this,arguments); }; });