maxkir.TreeAddOn=function(tree){tree.fix_scrolling=function(){maxkir.scrollTo($(this.get_selection()));};tree.onSetSelection=function(newSelection,oldSelection){if($(this.selectedFrame)){Element.removeClassName($(this.selectedFrame).firstChild,"selectedFrame");}
this.selectedFrame=null;if(newSelection){this.selectedFrame=maxkir.tree_model.getTopParent(newSelection);if($(this.selectedFrame)&&maxkir.tree_model.getNodes(this.selectedFrame,true).length>0){if(Element.hasClassName($(this.selectedFrame).firstChild,'frame')){Element.addClassName($(this.selectedFrame).firstChild,"selectedFrame");}}}
this.fix_scrolling();}.bind(tree);var core_node=function(selection){var el=$(selection);var core_div;if(el&&(core_div=el.getElementsByTagName("div")[1])){return $(core_div);}
return null;};tree.onHideSelection=function(selection){var core=core_node(selection);if(!core)return;core.removeClassName("selectedTask");};tree.onShowSelection=function(selection){var core=core_node(selection);if(!core)return;core.addClassName("selectedTask");};tree.install_single_selection=function(blocker_function,node){node=$(node);if(!node)return;this.dispose_single_selection(node);var listener=function(){if(!blocker_function||!blocker_function(node)){this.set_selection(node.id);}}.bindAsEventListener(this);core_node(node).observe("mousedown",listener);node.store("mousedown_click",listener);maxkir.debug("install_single_selection:"+node.id)}.bind(tree);tree.dispose_single_selection=function(node){node=$(node);if(!node)return;var listener=node.retrieve("mousedown_click");if(listener){core_node(node).stopObserving("mousedown",listener);node.store("mousedown_click",null);maxkir.debug("dispose_single_selection:"+node.id)}}.bind(tree);tree.install_mouse_selection=function(blocker_function){this._tree.foreach(function(node){this.install_single_selection(blocker_function,node);}.bind(this));}.bind(tree);tree.dispose_mouse_selection=function(){tree._tree.foreach(function(node){this.dispose_single_selection(node);}.bind(this));}.bind(tree);tree.is_last_child=function(node){var parent=maxkir.tree_model.getParent(node);if(!parent)return true;var chld=maxkir.tree_model.getNodes(parent);if(chld.length<2)return true;return node==chld[chld.length-1]||$(chld[chld.length-1]).deleted;};};maxkir.TreeKbdInterface={key_left:function(selectedNode){},key_right:function(selectedNode){},key_up:function(selectedNode){},key_down:function(selectedNode){},collapse_all:function(){},expand_all:function(){},expandNode:function(selectedNode){},collapseNode:function(selectedNode){},expand_deep:function(selectedNode){},collapse_deep:function(selectedNode){},on_space:function(selectedNode){},on_shift_space:function(selectedNode){},f_:null};maxkir.TreeKbdNavigationInstall=function(kbdManager,treeKbd){kbdManager.addShortcut("left",function(e){treeKbd.key_left(maxkir.tree_nav.get_selection());}).addShortcut("right",function(e){treeKbd.key_right(maxkir.tree_nav.get_selection());}).addShortcut("up|k",function(e){treeKbd.key_up(maxkir.tree_nav.get_selection());},false).addShortcut("down|j",function(e){treeKbd.key_down(maxkir.tree_nav.get_selection());},false).addShortcut("home",function(e){maxkir.tree_nav.selectFirstInTree();}).addShortcut("end",function(e){maxkir.tree_nav.selectLastInTree();}).addShortcut("pageup",function(e){var node=maxkir.tree_nav.get_selection();for(var i=0;i<25;i++){if(maxkir.tree_nav.is_first_node(node))break;node=maxkir.tree_nav.getPrev(node,true);}
maxkir.tree_nav.set_selection(node);}).addShortcut("pagedown",function(e){var node=maxkir.tree_nav.get_selection();for(var i=0;i<25;i++){if(maxkir.tree_nav.is_last_node(node))break;node=maxkir.tree_nav.getNext(node,true);}
maxkir.tree_nav.set_selection(node);}).addShortcut("space",function(e){treeKbd.on_space(maxkir.tree_nav.get_selection())}).addShortcut("shift+space",function(e){treeKbd.on_shift_space(maxkir.tree_nav.get_selection())}).addShortcut("ctrl+shift+left",function(e){treeKbd.collapse_all();}).addShortcut("ctrl+shift+right",function(e){treeKbd.expand_all();}).addShortcut("ctrl+alt+.|num_plus",function(e){var selectedNode=maxkir.tree_nav.get_selection();treeKbd.expandNode(selectedNode);treeKbd.expand_deep(selectedNode);}).addShortcut("ctrl+alt+,|num_minus",function(e){var selectedNode=maxkir.tree_nav.get_selection();treeKbd.collapse_deep(selectedNode);treeKbd.collapseNode(selectedNode);});};maxkir.TreeCommandInterface={on_gg:function(){},on_ct:function(){},on_cd:function(){},on_td:function(){},on_tm:function(){},on_as:function(){},f_:null};maxkir.TreeTaskCommandsInstall=function(kbdManager,taskCommands){kbdManager.addShortcut("g g",function(){taskCommands.on_gg();}).addShortcut("c t",function(){taskCommands.on_ct();}).addShortcut("c d",function(){taskCommands.on_cd();}).addShortcut("t d",function(){taskCommands.on_td();}).addShortcut("t m",function(){taskCommands.on_tm();}).addShortcut("a s",function(){taskCommands.on_as();});};maxkir.tree_model=new maxkir.TreeModel('parentTask_0');maxkir.tree_nav=new maxkir.TreeNavigation(maxkir.tree_model,'cl_sel','selectedTask');maxkir.TreeAddOn(maxkir.tree_nav);var DAY=1000*24*3600;var WEEK=7*DAY;Date.MD=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];Date.WD=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];Date.prototype.cl_format_date=function(show_today,enforce_year){if(this.is_today()){if(show_today)return"today";return"";}
if(this.is_tomorrow()){return"tomorrow";}
if(this.is_yesterday()){return"yesterday";}
var now=new Date();var weekday="";var show_weekday=this.getTime()>now.getTime()&&this.getTime()-now.getTime()<WEEK;if(show_weekday){if(enforce_year){return this.weekday();}
weekday=this.weekday()+", ";}
var year="";if(enforce_year||now.getFullYear()!=this.getFullYear()){year=", "+this.getFullYear();}
return weekday+Date.MD[this.getMonth()]+" "+this.getDate()+year;},Date.prototype.is_today=function(){return this._same_date(new Date());};Date.prototype.is_tomorrow=function(){var y=new Date(new Date().getTime()+DAY);return this._same_date(y);};Date.prototype.is_yesterday=function(){var y=new Date(new Date().getTime()-DAY);return this._same_date(y);};Date.prototype.is_overdue=function(){var beginning_of_day=new Date();beginning_of_day.setHours(0,0,0,0);return beginning_of_day.getTime()>this.getTime();};Date.prototype.weekday=function(){return Date.WD[this.getDay()];};Date.prototype._same_date=function(y){return y.getDate()==this.getDate()&&Math.abs(y.getTime()-this.getTime())<=DAY;};maxkir.namespace('checklist');maxkir.namespace('add_task');maxkir.checklist.refresh=function(runAfterRefresh){maxkir.info("DO FULL REFRESH");maxkir.checklist.refresh_toolbar(function(){maxkir.checklist.refresh_tree(runAfterRefresh);});if(maxkir.refresher){maxkir.refresher.reset_refresh();}};maxkir.checklist.refresh_tree=function(runAfterRefresh){new maxkir.AjaxUpdater('tasks_block',"/checklists/"+maxkir.checklist_id,{parameters:"partial=checklist",method:"get",evalScripts:true,onComplete:function(){setTimeout(function(){maxkir.bench("install",function(){maxkir.initChecklistPage();(runAfterRefresh||Prototype.emptyFunction).call(this);});},10);}});};maxkir.checklist.refresh_toolbar=function(runOnComplete){if(!runOnComplete)runOnComplete=Prototype.emptyFunction;new maxkir.AjaxUpdater('toolbar',"/checklists/"+maxkir.checklist_id,{parameters:"partial=toolbar",method:"get",evalScripts:true,onComplete:runOnComplete});};maxkir.checklist.resort_children_of=function(parent_id){if(!maxkir.resorters)maxkir.resorters={};if(!maxkir.resorters[parent_id]){maxkir.resorters[parent_id]=function(){if(!maxkir.add_task.is_adding()){delete maxkir.resorters[parent_id];if($(parent_id)){maxkir.Task.sort_tasks_under($(parent_id));}}
else{setTimeout(maxkir.resorters[parent_id],500);}};maxkir.resorters[parent_id]();}};maxkir.add_checklist={on_create:function(checklist_json){document.location.href="/checklists/"+checklist_json.id+"#new";}};maxkir.checklist.delete_checklist=function(checklist_id){maxkir.checklist.archive_checklist(checklist_id,true,'delete');};maxkir.checklist.archive_checklist=function(checklist_id,archive,method){if(archive){maxkir.ChecklistList.remove_list(checklist_id);}
if(!method){method="post";}
new maxkir.AjaxCommand('/checklists/'+(archive?"archive":"unarchive")+".html",{method:method,parameters:"checklists_set[]="+checklist_id,onSuccess:function(){if(archive&&method!='delete'){document.location.href='/checklists#archive';}
else{document.location.href='/checklists';}}.delay(.5)});};maxkir.checklist.delete_task=function(checklist_id,taskId){var id='task_'+taskId;if(!$(id))return;maxkir.add_task.hide_add();maxkir.CommandProcessor.flushDelayedQueue();var toSelect=maxkir.Task._to_select_after_hide(id);var parent1=maxkir.tree_model.getParent(id);maxkir.checklist.Dnd.stop();$(id).deleted=true;maxkir.tree_model.foreach(function(node){var task_id=maxkir.Task.id(node.id);maxkir.Task.uninstall(task_id);},$(id));maxkir.Task.uninstall(taskId);Effect.Fade(id,{duration:.5,afterFinish:function(){if($(id)){Element.remove(id);}
Element.cleanWhitespace('parentTask_0');if($('parentTask_0').childNodes.length>0){maxkir.tree_nav.fix_selection();}
else{maxkir.cmd.add_task();}}});new maxkir.AjaxCommand(checklist_id+'/tasks/'+taskId+".js",{method:"delete",onSuccess:maxkir.Notifications.enable,evalJS:'force',onComplete:function(){maxkir.Task.updateParents(parent1);delete maxkir.TaskData[taskId];maxkir.checklist.Dnd.install();}});if($(toSelect)){maxkir.tree_nav.set_selection(toSelect);}};maxkir.checklist.set_option=function(option,value){if(maxkir.no_user){if(value=='true'||value===true){setCookie("cl_"+option,value,1);}
else{deleteCookie("cl_"+option);}}
else{new maxkir.AjaxRequest("/checklists/"+maxkir.checklist_id+"/options",{parameters:"options["+option+"]="+value,method:"put"});}};maxkir.checklist.get_option=function(option){if(maxkir.no_user){var res=getCookie("cl_"+option);return res;}
return null;};maxkir.checklist.sort_by=function(sort_by){new maxkir.AjaxRequest("/checklists/"+maxkir.checklist_id+"/sort.js",{parameters:"by="+sort_by,method:"post"});};maxkir.checklist.editors={};maxkir.checklist.is_editing=function(){for(var taskId in maxkir.checklist.editors){if(maxkir.checklist.editors[taskId].isEditing())return true;}
return false;};maxkir.checklist.edit_task=function(taskId){var editor=maxkir.checklist.editors[taskId];if(editor){editor.enterEditMode();}};maxkir.ReorderCommand=function(){if(maxkir.checklist.Dnd.no_dnd){maxkir.checklist.Dnd.install(true);}
maxkir.SyncronousAjaxCommand.call(this,'/checklists/'+maxkir.checklist_id+'/tasks/0/reorder',{parameters:Sortable.serialize($("parentTask_0")),evalScripts:true});};maxkir.ReorderCommand.onSuccess=function(){maxkir.tree_nav.fix_selection();maxkir.Task.update_position_data();};maxkir.ChecklistList={create_update_list:function(checklist_id,newName){var li=$('checklis__'+checklist_id);if(li){var links=li.getElementsByTagName('A');if(links&&links.length>0){links[0].innerHTML=newName;}}
else{var ul=$('clParent');if(!ul)return;ul.cleanWhitespace();var due_li=$('dueNodeLi');var li=document.createElement("li");li.id='checklis__'+checklist_id;li.innerHTML="<a href='/checklists/"+checklist_id+"' target='_self'>"+newName+"</a>";var anchor;if(due_li){anchor=due_li.nextSibling;}
else{anchor=ul.firstChild;}
ul.insertBefore(li,anchor);}},remove_list:function(checklist_id){var li=$('checklis__'+checklist_id);if(li){li.remove();}}};maxkir.checklist.DeleteArchiveBlock={install:function(){var blockAction=new maxkir.TimeoutAction(500,1000,function(){if(!maxkir.checklist.name_editor||!maxkir.checklist.name_editor.isEditing()){if($('deleteBlockId')){$('deleteBlockId').show();}}
else{maxkir.checklist.DeleteArchiveBlock.blockAction.stop();}},function(){if($('deleteBlockId')){$('deleteBlockId').hide();var e=$('remove_cl'+maxkir.checklist_id);if(e){maxkir.confirm4_cancel(e);}
if(e.show){e.show();}}});$('header_span').observe("mouseover",blockAction.bound_starting);$('h1Id').observe("mouseover",function(){if(blockAction.get_state()=='stopping'){blockAction.bound_starting();}});$('h1Id').observe("mouseout",blockAction.bound_stopping);maxkir.checklist.DeleteArchiveBlock.blockAction=blockAction;}};document.observe("dom:loaded",maxkir.checklist.DeleteArchiveBlock.install);Event.observe(window,"unload",function(){maxkir.NodeToggle.dispose();});maxkir.NodeToggle={listeners:{},install:function(node_id){if(!this.handle(node_id))return;var expand_collapse_listener=function(){var doCollapse=!this.isCollapsed(node_id);if(doCollapse){this.collapseNode(node_id);}
else{this.expandNode(node_id);}}.bindAsEventListener(this);Event.observe(this.handle(node_id),"click",expand_collapse_listener);this.listeners[node_id]=expand_collapse_listener;},uninstall:function(node_id){if(this.handle(node_id)&&this.listeners[node_id]){Event.stopObserving(this.handle(node_id),"click",this.listeners[node_id]);delete this.listeners[node_id];}},dispose:function(){var to_remove=this.listeners;for(var i in to_remove){this.uninstall(i);}},expandNode:function(node_id){if(this.isCollapsed(node_id)){var handle=this.handle(node_id);if(handle){handle.src=handle.src.replace(/plus.gif/,'minus.gif');$(node_id).removeClassName('node_collapsed');$(node_id).addClassName('node_expanded');$(node_id).down('ul').show();this.onExpand(node_id);maxkir.ie_revalidate();}}},collapseNode:function(node_id){if(this.isCollapsed(node_id))return;var handle=this.handle(node_id);if(handle){handle.src=handle.src.replace(/minus.gif/,'plus.gif');$(node_id).addClassName('node_collapsed');$(node_id).removeClassName('node_expanded');$(node_id).down('ul').hide();this.onCollapse(node_id);}},onExpand:function(node_id){},onCollapse:function(node_id){},isCollapsed:function(node_id){var handle=this.handle(node_id);return handle&&handle.src.indexOf("plus.gif")>=0;},handle:function(node_id){return $('handle_'+node_id);},collapse_all:function(){this.collapse_deep(maxkir.tree_model.getRoot());},expand_all:function(){this.expand_deep(maxkir.tree_model.getRoot());},expand_deep:function(node){var nodes=maxkir.tree_model.getNodes(node);for(var i=0;i<nodes.length;i++){this.expandNode(nodes[i]);this.expand_deep(nodes[i]);}},collapse_deep:function(node){var nodes=maxkir.tree_model.getNodes(node);for(var i=0;i<nodes.length;i++){this.collapse_deep(nodes[i]);this.collapseNode(nodes[i]);}}};Event.observe(window,"unload",function(){maxkir.checklist.NodeToggle.dispose();});maxkir.checklist.NodeToggle=Object.extend({},maxkir.NodeToggle);Object.extend(maxkir.checklist.NodeToggle,{updateServer:function(task_id,command){if(!this.skip_server){new maxkir.AjaxCommand('/checklists/'+maxkir.checklist_id+'/tasks/'+task_id+'/'+command+".xml");}},expand:function(task_id){this.expandNode('task_'+task_id);},collapse:function(task_id){this.collapseNode('task_'+task_id);},expandNode:function(node){maxkir.NodeToggle.expandNode.call(this,node);var task_id=maxkir.Task.id(node);var parent=maxkir.tree_model.getParent('task_'+task_id);if(parent){maxkir.checklist.NodeToggle.expand(maxkir.Task.id(parent));}},onExpand:function(node){this.updateServer(maxkir.Task.id(node),'expand');$(node).down('ul').removeClassName('hidden');},onCollapse:function(node){this.updateServer(maxkir.Task.id(node),'collapse');},handle:function(node){var task_id=maxkir.Task.id(node);return $('handle_'+task_id);},toggle_all:function(a_href){if(a_href.innerHTML.match(/Expand/)){a_href.innerHTML="Collapse all";this.expand_all();}
else{a_href.innerHTML="Expand all";this.collapse_all();}},collapse_all:function(){this.skip_server=true;maxkir.NodeToggle.collapse_all.call(this);this.skip_server=false;this._change_all("collapse_all");},expand_all:function(){this.skip_server=true;maxkir.NodeToggle.expand_all.call(this);this.skip_server=false;this._change_all("expand_all");},_change_all:function(method){new maxkir.AjaxCommand('/checklists/'+maxkir.checklist_id+"/"+method);},_f:null});if(!window.maxkir)maxkir={};maxkir.StringSplitter=function(width_provider_function){this.get_width=width_provider_function;};maxkir.StringSplitter.prototype.splitString=function(s,max_width){if(s.length==0)return[""];var prev_space_pos=-1;var width_exceeded=false;var that=this;var cut_off=function(idx){var remaining=s.substr(idx+1);if(remaining.length>0){return[s.substr(0,idx+1)].concat(that.splitString(remaining,max_width));}
return[s.substr(0,idx+1)];};for(var i=0;i<s.length;i++){if(s.charAt(i)==' '){width_exceeded=this.get_width(s.substr(0,i))>max_width;if(width_exceeded&&prev_space_pos>0){return cut_off(prev_space_pos);}
if(width_exceeded){return cut_off(i);}
prev_space_pos=i;}
if(s.charAt(i)=='\n'){return cut_off(i);}}
if(prev_space_pos>0&&this.get_width(s)>max_width){return cut_off(prev_space_pos);}
return[s];};if(!window.maxkir)maxkir={};maxkir.FF=/Firefox/i.test(navigator.userAgent);if(typeof document.defaultView=='undefined'){document.defaultView={};document.defaultView.getComputedStyle=function(element){return element.currentStyle;}}
maxkir.CursorPosition=function(element,padding){this.element=element;this.padding=padding;var that=this;this.get_selection_range=function(){if((typeof element.selectionStart=='undefined')&&document.selection){var range=document.selection.createRange();var stored_range=range.duplicate();if(element.type=='text'){stored_range.moveStart('character',-element.value.length);stored_range.moveEnd('character',element.value.length);}else{stored_range.moveToElementText(element);}
stored_range.setEndPoint('EndToEnd',range);var selectionStart=stored_range.text.length-range.text.length;var selectionEnd=selectionStart+range.text.length;return[selectionStart,selectionEnd];}
return[element.selectionStart,element.selectionEnd];};var clone_css_style=function(target,styleName){var val=element.style[styleName];if(!val){var css=document.defaultView.getComputedStyle(element,null);val=css?css[styleName]:null;}
if(val){target.style[styleName]=val;}};this.get_string_metrics=function(s){var widthElementId="__widther";var div=document.getElementById(widthElementId);if(!div){div=document.createElement("div");div.id=widthElementId;document.body.appendChild(div);div.style.position='absolute';div.style.left='-10000px';}
clone_css_style(div,'fontSize');clone_css_style(div,'fontFamily');clone_css_style(div,'fontWeight');clone_css_style(div,'fontVariant');clone_css_style(div,'fontStyle');clone_css_style(div,'textTransform');clone_css_style(div,'lineHeight');div.style.width='0';div.style.paddingLeft=that.padding+"px";div.innerHTML=s.replace(' ',"&nbsp;");div.style.width='auto';return[div.offsetWidth,div.offsetHeight];};var splitter=new maxkir.StringSplitter(function(s){var metrics=that.get_string_metrics(s);return metrics[0];});this.split_to_lines=function(){var innerAreaWidth=element.scrollWidth;if(maxkir.FF){innerAreaWidth-=4;}
var pos=that.get_selection_range()[0];return splitter.splitString(element.value.substr(0,pos),innerAreaWidth);};};maxkir.CursorPosition.prototype.getCursorCoordinates=function(){var lines=this.split_to_lines();return[lines[lines.length-1].length,lines.length];};maxkir.CursorPosition.prototype.getPixelCoordinates=function(){var lines=this.split_to_lines();var m=this.get_string_metrics(lines[lines.length-1]);var w=m[0];var h=m[1]*lines.length-this.element.scrollTop+this.padding;return[w,h];};maxkir.namespace("Tags");maxkir.namespace("widget");maxkir.Tags=function(){var temporary_task_update=function(task_id,tags_line){var data=maxkir.Task.data(task_id);if(!data)return;data.tags={};var tags=maxkir.Tags.parse_line(tags_line);tags.each(function(tag){var tag_data=maxkir.Tags.findOrCreate(tag);data.tags[tag_data.id]=!!tag_data["private"];});maxkir.Task.updateTask(task_id);};var fake_data={};var fake_idx=0;return{data:{},find:function(tag){if(tag>0){return this.data[tag];}
for(var tag_id in this.data){if(tag==this.data[tag_id]["tag"]){return this.data[tag_id];}}
for(tag_id in fake_data){if(tag==fake_data[tag_id]["tag"]||tag==tag_id){return fake_data[tag_id];}}
return null;},findOrCreate:function(tag){var result=this.find(tag);if(result!=null)return result;var fake_id="fake_tag_id"+fake_idx++;fake_data[fake_id]={"id":fake_id,"color":0,"tag":tag,"private":false};return fake_data[fake_id];},parse_line:function(tags_line){var tags=tags_line.split(/[#\s]+/);tags.remove("");return $A(tags);},set_tags:function(checklist_id,task_id,tags_line){temporary_task_update(task_id,tags_line);new maxkir.AjaxCommand("/checklists/"+checklist_id+"/tasks/"+task_id+"/tags.js",{parameters:"tags="+encodeURIComponent(tags_line),onSuccess:function(){if(maxkir.Notifications)maxkir.Notifications.enable();},onComplete:function(){maxkir.Task.updateTask(task_id);}})},delete_tag:function(tag_id,force){var params=maxkir.checklist_id?"checklist_id="+maxkir.checklist_id+"&":"";params+=force?"force=true":"";new maxkir.AjaxCommand("/tags/"+tag_id,{parameters:params,method:"delete",onComplete:function(){maxkir.TagManage.hide_popup();if(tag_id=='all_unused'){this.full_reload_page();}}.bind(this)});},full_reload_page:function(){maxkir.TagManage.hide_popup();if(maxkir.checklist&&maxkir.checklist_id){maxkir.checklist.refresh();}
if(maxkir.ajax_reload_tags_content){maxkir.ajax_reload_tags_content();}},renderTags:function(target_element,tag_ids){target_element=$(target_element);if(!target_element)return;var result="";for(var i=0;i<tag_ids.length;i++){var tag=maxkir.Tags.data[tag_ids[i]];if(!tag)continue;result+=maxkir.TagRenderer.getHtml(tag,tag.private,true);}
if(result!=""){target_element.update(result);}},_end:false};}();maxkir.TagsCompleter=function(){var tags_for_completion=function(existing_tag_ids,skip_hash){var data=maxkir.Tags.data;var result=[];var exists=function(tag_id){return existing_tag_ids&&!Object.isUndefined(existing_tag_ids[tag_id]);};for(var tag_id in data){if(!exists(tag_id)){var txt=(skip_hash?"":"#")+data[tag_id]["tag"];result.push(txt)}}
result.sort();return result;};var disable_completion_in_wrong_position=function(field,items_html){var curPos=maxkir.get_selection_range(field);if(curPos[0]!=curPos[1]){items_html="<ul></ul>";}
else{var text_tail=field.value.substr(curPos[0]);var tags_re=/^\s*(#\S+[\s,]*)*$/;if(!(text_tail.match(tags_re))){items_html="<ul></ul>";}}
return items_html;};return{install:function(element,existing_tag_ids,show_top,skip_hash){var tokens=[' ','\n',')','(',',','.'];if(skip_hash)tokens.push('#');$('tagSuggestionBox').no_hide_on_click=true;var completer=new maxkir.widget.Autocompleter(element,'tagSuggestionBox',[],{tokens:tokens,partialSearch:true,partialChars:1,separator:' ',onShow:function(element,update){update.style.position='absolute';var position=new maxkir.CursorPosition(element,1).getPixelCoordinates();var curr=maxkir.getPageOffset(element);update.setStyle({left:(curr.left+position[0]-5)+"px",top:show_top?((curr.top-update.getHeight()-5)+"px"):((curr.top+position[1])+"px")});Effect.Appear(update,{duration:0.15});}});completer.getUpdatedChoices=function(){if(this.options.array.length==0){this.options.array=tags_for_completion(existing_tag_ids,skip_hash);}
var items_html=this.options.selector(this);if(this.element&&this.hasFocus&&!skip_hash){items_html=disable_completion_in_wrong_position(this.element,items_html);}
this.updateChoices(items_html);}.bind(completer),element.completer_active=function(){return completer.active;};element.store("completer",completer);return completer;},uninstall:function(element){element.completer_active=null;var completer=element.retrieve("completer");if(completer){completer.hide();completer.dispose();element.store("completer",null);}},_end:false};}();maxkir.TagList={_show_public:true,_show_private:true,_ascending:false,_filter:"",show:function(){if(!this._sort_func){this._sort_func=this.sort_by_popular.bind(this);}
this.show_list(this._sort_func);$('tag_name_filter').focus();},change_visibility:function(element,show_public,show_private){this._show_private=show_private;this._show_public=show_public;this.show();maxkir.TagList.switch_tab(['view_all','view_public','view_private'],element);},resort:function(element,sort_by_popular,ascending){this._ascending=ascending;this._sort_func=sort_by_popular?this.sort_by_popular.bind(this):this.sort_az.bind(this);this.show();maxkir.TagList.switch_tab(['sort_popular','sort_az','sort_za'],element);},switch_tab:function(elements,selected){$A(elements).each(function(el){$(el).removeClassName("selected");});$(selected).addClassName("selected");},tag_ids:function(){var sequence=[];for(var tag_id in maxkir.Tags.data){sequence.push(tag_id);}
return sequence;},show_list:function(sort_function){var sequence=this.tag_ids();sequence.sort(sort_function);this._unused=false;$('tags_container').update(this.build_html(this.select_data_to_show(sequence)));this._unused=true;var to_show=this.select_data_to_show(sequence);$('unused')[to_show.size()>0?'show':'hide']();$('delete_all_unused')[to_show.size()>1?'show':'hide']();$('unused_container').update(this.build_html(to_show));},select_data_to_show:function(sequence){var to_show=[];for(var i=0;i<sequence.length;i++){var data=maxkir.Tags.data[sequence[i]];if(data.private&&this._show_private||!data.private&&this._show_public){if(this._filter==""||data.tag.indexOf(this._filter)==0){if(data.usage_count>0^this._unused){to_show.push(data);}}}}
return to_show;},build_html:function(to_show){var res="<tbody><tr>";var max_columns=/widget=true/.test(document.location.href)?2:5;var total=to_show.length;var rows_per_column=5;while(rows_per_column*max_columns<total){rows_per_column++;}
var idx=0;while(idx<to_show.length){res+="<td>";for(var r=0;r<rows_per_column;r++){if(idx>=to_show.length)break;var data=to_show[idx];var on_click="maxkir.TagManage.show_popup(this, {tag: '"+data.tag+"'})";res+="<div class='oneTagInList'>"+
maxkir.TagRenderer.getHtml(data,data.private,false,on_click)+
this.usage_count(data.usage_count,data.tag,data.id)+"</div>";idx++;}
res+="</td>";}
res+="</tr></tbody>";return res;},usage_count:function(count,tag,id){return count>0?"<a class='usageCount' title='Click to see usages' href='/search?what="+
encodeURIComponent('#'+tag)+"'> x "+count+" </a>":"<a class='deleteTag' title='Delete unused tag' "+"onclick=\"maxkir.confirm2(this, 'Delete?', 'maxkir.Tags.delete_tag("+id+")'); return false;\">X</a>";},delete_all_unused:function(element){maxkir.confirm2(element,'Delete all unused tags?','maxkir.Tags.delete_tag("all_unused")');},update_name_filter:function(){setTimeout(function(){this._filter=maxkir.trim($('tag_name_filter').value);this.show();}.bind(this),10);},sort_by_popular:function(id1,id2){var d1=maxkir.Tags.data[id1];var d2=maxkir.Tags.data[id2];if(d1.usage_count==d2.usage_count){return this.sort_az(id1,id2);}
return(d1.usage_count-d2.usage_count)*(this._ascending?1:-1);},sort_az:function(id1,id2){var d1=maxkir.Tags.data[id1];var d2=maxkir.Tags.data[id2];return d1.tag.localeCompare(d2.tag)*(this._ascending?1:-1);}};maxkir.widget.TTagsPopup={};Object.extend(maxkir.widget.TTagsPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.TTagsPopup,maxkir.widget.PopupSelectionSupport);Object.extend(maxkir.widget.TTagsPopup,{popup_width:250,refresh:function(win){if(!this.popupContent){this.popupContent=new Template($('tagsPopupData').innerHTML);$('tagsPopupData').innerHTML="";}
this.set_content();this.setupSelection();},set_content:function(){var task_id=maxkir.cmd.task_id();this.task_id=task_id;var filter_by="";var tags_to_edit='';var tags_to_manage='';for(var tag_id in maxkir.Task.tags(task_id)){tag=maxkir.Tags.find(tag_id);if(tag){tags_to_edit+=tag["tag"]+" ";filter_by+="#"+tag["tag"]+" ";tags_to_manage+=this.tag_to_manage_li(tag["tag"]);}}
var filter_by_text="\""+maxkir.trim(tags_to_edit)+"\"";if(filter_by==''){filter_by='#';filter_by_text='tag';}
var tag=this.options.tag;if(tag){filter_by='#'+tag;filter_by_text="\""+tag+"\"";tags_to_manage=this.tag_to_manage_li(this.options.tag);}
this.win.setHTMLContent(this.popupContent.evaluate({filter_by_text:filter_by_text,filter_by:filter_by,tags_to_edit:tags_to_edit,manage_items:tags_to_manage}));},MANAGE_TAG:new Template("<li><a href='#' onclick=\"maxkir.TagManage.show_popup($('#{anchor_id}'), {tag: '#{tag_name}'}); return false;\">Manage \"#{tag_name}\"</a></li>\n"),tag_to_manage_li:function(tag_name){var anchor=this.anchor_element;while(anchor&&(anchor.innerHTML!=tag_name)){anchor=$(anchor.nextSibling);}
return this.MANAGE_TAG.evaluate({tag_name:tag_name,anchor_id:(anchor==null?this.anchor_element.identify():anchor.identify())});},completer_active:function(){return $('tag_input')&&$('tag_input').completer_active();},onShow:function(win){this.setup_popup();win.keep_on_escape=function(){return this.completer_active();}.bind(this);},onHide:function(win){win.keep_on_escape=null;this.dispose_popup();},setup_popup:function(){this.orig_value=$('tag_input').value;maxkir.TagsCompleter.install($('tag_input'),[],false,true);$('tag_input').focus();$('tag_filter_li').observe('mouseover',function(){this.activate_filter(true);}.bindAsEventListener(this))
$('tag_filter_li').observe('mouseout',function(){this.activate_filter(false);}.bindAsEventListener(this))
$('filter_here').observe('keydown',function(e){if(e.keyCode==Event.KEY_RETURN){$('filter_here').click();e.stop();}
else if(e.keyCode==Event.KEY_TAB||e.keyCode==Event.KEY_RIGHT){$('filter_all_lists').focus();e.stop();}});$('filter_all_lists').observe('keydown',function(e){if(e.keyCode==Event.KEY_RETURN){$('filter_all_lists').click();e.stop();}
else if(e.keyCode==Event.KEY_TAB||e.keyCode==Event.KEY_LEFT){$('filter_here').focus();e.stop();}})},dispose_popup:function(){$('filter_here').stopObserving();$('filter_all_lists').stopObserving();$('tag_filter_li').stopObserving();maxkir.TagsCompleter.uninstall($('tag_input'));},onSelection:function(selected){if(selected=='tag_input_li'){$('tag_input').focus();}
else{$('tag_input').blur();$('tag_input').value=this.orig_value;}
this.activate_filter(selected=='tag_filter_li');},activate_filter:function(active){if(active){$$('#tag_filter_li > a').invoke("hide");$('tag_filter_div').show();$('filter_here').focus();}
else{$$('#tag_filter_li > a').invoke("show");$('tag_filter_div').hide();$('filter_here').blur();}},doOpen:function(node){if(node.id=='tag_filter_li'){return;}
if($(node).down("a")){maxkir.click_link($(node));this.hide_popup();}
if($(node).down("input")){var val=$('tag_input').value;this.hide_popup();maxkir.Tags.set_tags(maxkir.checklist_id,this.task_id,val);}},doFilter:function(tag){maxkir.widget.TTagsPopup.hide_popup();maxkir.FindFilter.show(tag,tag!='#');},doAllSearch:function(tag){maxkir.widget.TTagsPopup.hide_popup();maxkir.FindFilter.searchAll(tag);},activate_by_space:function(){return false;},isEnabledKeyboard:function(){return!this.completer_active();},install_popup:function(){if(maxkir.widget.TTagsPopup.install_kbd){maxkir.widget.TTagsPopup.install_kbd();}}});Event.observe(window,"load",maxkir.widget.TTagsPopup.install_popup);maxkir.TaskData={};maxkir.Task={selected_task_id:function(){return maxkir.Task.id(maxkir.tree_nav.get_selection());},id:function(selectedNodeId){var res=parseInt(this.id_str(selectedNodeId));return isNaN(res)?0:res;},id_str:function(selectedNodeId){return selectedNodeId&&selectedNodeId.length>5?selectedNodeId.substring(5):"0";},updateParents:function(parent_node){var id=maxkir.Task.id(parent_node);if(!id)return;var data=maxkir.Task.data(id);while(data){if(maxkir.checklist&&maxkir.checklist.HideCompleted){maxkir.checklist.HideCompleted.skip_hide_if_closed(data);}
maxkir.Task.updateTask(data.id);data=maxkir.Task.data(data.parent_id);}},data:function(task_id){return maxkir.TaskData[task_id];},tags:function(task_id){var d=maxkir.Task.data(task_id);return d?d.tags:{};},renderer:function(task_id,read_only){var d=this.data(task_id);read_only=Object.isUndefined(read_only)?maxkir.read_only:read_only;if(d){return new maxkir.TaskRenderer(d,read_only);}
return null;},updateTask:function(task_id,withChildren){var data=this.data(task_id);if(data){this.renderer(data.id).updateContent(withChildren);if(maxkir.checklist&&maxkir.checklist.ShowNumbered){maxkir.checklist.ShowNumbered.repaint();}}
return data;},foreach:function(handler){for(var id in maxkir.TaskData){var task=maxkir.TaskData[id];if(task&&task.id&&task.id>0){handler(task);}}},task_count:function(){var t=0;this.foreach(function(){t++;});return t;},dbl_listeners:{},install:function(checklist_id,task_id){var elId='core_'+task_id;if(!$(elId))return;var editor=maxkir.Task.create_task_editor(checklist_id,task_id);maxkir.tree_nav.install_single_selection(function(){return editor.isEditing();},'task_'+task_id);var dbl_wrapper=function(e){if(Event.element(e).tagName.toUpperCase()!="IMG"){editor.enterEditMode(e);}};var dbl_listener=dbl_wrapper.bindAsEventListener(editor);if(!maxkir.read_only){$(elId).observe('dblclick',dbl_listener);this.dbl_listeners[task_id]=dbl_listener;}
maxkir.checklist.NodeToggle.install('task_'+task_id);this.set_expand_collapse(task_id);maxkir.Comments.install(checklist_id,task_id);maxkir.Due.install_dialog(task_id);maxkir.checklist.HideCompleted.update_visibility(task_id);},uninstall:function(task_id){var editor=maxkir.checklist.editors[task_id];if(editor){editor.destroy();delete maxkir.checklist.editors[task_id];}
maxkir.tree_nav.dispose_single_selection('task_'+task_id);var elId='core_'+task_id;if($(elId)&&this.dbl_listeners[task_id]){$(elId).stopObserving('dblclick',this.dbl_listeners[task_id]);delete this.dbl_listeners[task_id];}
maxkir.checklist.NodeToggle.uninstall('task_'+task_id);maxkir.Comments.uninstall(task_id);maxkir.Due.uninstall_dialog(task_id);},set_expand_collapse:function(task_id){var el=$('task_'+task_id);if(!el)return;var renderer=maxkir.Task.renderer(task_id);el.removeClassName("node_collapsed");el.removeClassName("node_expanded");if(renderer&&renderer.hasSubtasks()){var collapsed=renderer.collapsed();el.addClassName(collapsed?"node_collapsed":"node_expanded");}},show:function(task_id){if($("task_"+task_id)){if(this.task_is_hidden(task_id)){maxkir.checklist.HideCompleted.toggle();}
maxkir.tree_nav.set_selection('task_'+task_id);maxkir.checklist.NodeToggle.expand(task_id);var cmt=maxkir.Comments[task_id];if(cmt&&cmt.comments_count()>0){cmt.showComments();}}},task_is_hidden:function(task_id){return this.data(task_id)&&this.data(task_id).status&&maxkir.checklist.HideCompleted.is_hide();},start_editing:function(task_id){maxkir.tree_nav.hide_selection();maxkir.checklist.Details.repaint(task_id,false);maxkir.Comments[task_id].set_counter_visible(false);maxkir.Task.toggle_due(task_id);maxkir.Task.toggle_tags(task_id);},stop_editing:function(task_id){maxkir.tree_nav.fix_selection();maxkir.Task.renderer(task_id).updateContent();},toggle_due:function(task_id){this.toggle_with_class(task_id,".dueDate");},toggle_tags:function(task_id){this.toggle_with_class(task_id,".tag");},toggle_with_class:function(task_id,selector){$("core_"+task_id).select(selector).each(function(tagElement){tagElement.toggle();});},uninstall_tree_data:function(){maxkir.checklist.Dnd.stop();maxkir.tree_model.foreach(function(node){maxkir.Task.uninstall(maxkir.Task.id(node));});$('parentTask_0').innerHTML='';},install_tree_data:function(){var top_level_ids=[];maxkir.Task.foreach(function(data){if(data.parent_id==0){top_level_ids.push(data.id);}});maxkir.Task.sort_tasks(top_level_ids);for(var i=0;i<top_level_ids.length;i++){var task_id=top_level_ids[i];if(!maxkir.FindFilter.is_hidden(task_id)){$('parentTask_0').insert(maxkir.Task.renderer(task_id).getLiHtml());}}
maxkir.Task.foreach(function(task){maxkir.Task.install(maxkir.checklist_id,task.id);});maxkir.checklist.Dnd.install();},sort_tasks:function(task_ids){var cd=maxkir.checklist.CompletedDown.is_enabled();var sort_function=function(id1,id2){var t1=maxkir.Task.data(id1);var t2=maxkir.Task.data(id2);if(!t1||!t2)return 0;if(cd){var d=t1.status-t2.status;if(d!=0)return d;}
return t1.position-t2.position;};task_ids.sort(sort_function);},sort_tasks_under:function(parent_ul){var task_ids=[];var chld=maxkir.tree_model.getNodes(parent_ul,true);for(var i=0;i<chld.length;i++){task_ids.push(maxkir.Task.id(chld[i]));}
maxkir.Task.sort_tasks(task_ids);var prev_node=null;for(var j=task_ids.length-1;j>=0;j--){var node=document.getElementById('task_'+task_ids[j]);if(node){parent_ul.insertBefore(node,prev_node);prev_node=node;}}},update_position_data:function(){maxkir.tree_model.foreach(function(node,idx){var task_id=maxkir.Task.id(node);var data=maxkir.Task.data(task_id);if(data){data.position=(idx+1);}});},isDivider:function(task_id){var data=maxkir.Task.data(task_id);return data&&/^----+$/.test(data.content);},create_task_editor:function(checklist_id,task_id){var editor=new maxkir.widget.InplaceEditor('tsk'+task_id,'/checklists/'+checklist_id+"/tasks/"+task_id+".js",{paramName:"task[content]",fieldPostCreation:false,no_dblclick:true},{method:"PUT",evalScripts:true,onSuccess:function(){maxkir.Notifications.enable();maxkir.checklist.ShowNumbered.repaint();}});editor.getText=function(){var task_data=maxkir.Task.data(task_id);var plain_content=function(){if(task_data.bare_content){return task_data.bare_content;}
return task_data.content;};var attributes_content=function(){var res="";if(task_data.due){res="\n(due: "+maxkir.Due.format_due(task_data.due)+")";}
for(var tag_id in task_data.tags){if(res=="")res="\n";res+=" #"+maxkir.Tags.findOrCreate(tag_id)["tag"];}
return res;};return plain_content()+attributes_content();};editor.getUpdatedText=function(documentElement){var t=maxkir.Task.data(task_id).content;return maxkir.format_for_rendering(t);};editor.leaveEditMode=function(){var was_editing=editor._editing;maxkir.widget.InplaceEditor.prototype.leaveEditMode.call(this);if(was_editing&&!maxkir.checklist.is_editing()){maxkir.TagsCompleter.uninstall(this.editField);maxkir.Task.stop_editing(task_id);}};maxkir.run_around(editor,'prepareSubmission',function(){var args=$A(arguments);var orig=args.shift();var value=$F(this._controls.editor);if(value!=null&&value.match(/^\s*$/)&&this.element){this.handleFormCancellation();maxkir.checklist.delete_task(checklist_id,task_id);}
else if(value!=null){orig.apply(this,args);}}.bind(editor));maxkir.run_before(editor,'customizeEditField',function(){maxkir.Task.start_editing(task_id);var task_data=maxkir.Task.data(task_id);maxkir.TagsCompleter.install(this.editField,task_data?task_data.tags:{});setTimeout(function(){var index=this.editField.value.indexOf("\n(due:");if(index<0)index=this.editField.value.length;maxkir.set_selection_textarea(this.editField,0,index);}.bind(this),20);});maxkir.checklist.editors[task_id]=editor;return editor;}};Event.observe(window,"unload",function(){maxkir.tree_nav.dispose_mouse_selection();});Event.observe(window,"load",function(){var anchor=document.location.hash;var found=anchor.match(/#task_(\d+)/);if(found&&found.length==2){maxkir.Task.show(found[1]);}});maxkir.TagRenderer={TAG:new Template("<span class=\"#{classes}\" title='#{title}' id='#{element_id}' "+"onclick=\"#{on_click}; Event.stop(event); return false;\" style='cursor:pointer;'>#{tag}</span>"),TAG_RO:new Template("<span class=\"#{classes}\" title='#{title}' id='#{element_id}'>#{tag}</span>"),getHtml:function(tag_data,is_private,read_only,on_click){if(!on_click){on_click="maxkir.cmd.view_tags('"+tag_data["tag"]+"', this)";}
var tag_template=read_only?this.TAG_RO:this.TAG;return tag_template.evaluate({element_id:this.next_element_id(tag_data.id),classes:this.getClasses(tag_data,is_private),tag:tag_data["tag"],title:this.title_text(is_private,read_only),on_click:on_click});},updateView:function(element,data){if(!element)return;element.className=this.getClasses(data,data.private);element.title=this.title_text(data.private);},updateAllViews:function(data){var storage=this._storage();var elements=storage[data.id];if(!elements)return;elements.each(function(element){this.updateView($(element),data)}.bind(this));},title_text:function(is_private,read_only){var txt=is_private?"This tag is visible only to you":"";if(!read_only){if(txt==""){txt="Click for tag options";}
else{txt+=", click for tag options";}}
return txt;},getClasses:function(tag_data,is_private){var classes="tag";if(is_private){classes+=" privateTag";}
classes+=" tagClass_"+tag_data["color"];return classes;},next_element_id:function(tag_id){var storage=this._storage();storage.current_id++;storage[tag_id]=storage[tag_id]||[];var result="tagging_"+storage.current_id;storage[tag_id].push(result);return result;},_storage:function(){var storage=maxkir.TagRenderer.storage=maxkir.TagRenderer.storage||{};storage.current_id=storage.current_id||0;return storage;}};maxkir.namespace("Task");maxkir.Task.set_task_status=function(checklist_id,taskId,statusString,options){if(!$('task_'+taskId))return;if(maxkir.Task.isDivider(taskId))return;options=options||{};var hide_completed=Object.isUndefined(options['hide_completed'])?maxkir.checklist.HideCompleted.is_hide():options['hide_completed'];var completed_down=Object.isUndefined(options['completed_down'])?maxkir.checklist.CompletedDown.is_enabled():options['completed_down'];var on_success=Object.isUndefined(options['on_success'])?maxkir.Notifications.enable:options['on_success'];maxkir.tree_nav.set_selection('task_'+taskId);var toSelect='task_'+taskId;if(hide_completed&&statusString!="reopen"){toSelect=maxkir.Task._to_select_after_hide('task_'+taskId);maxkir.tree_nav.set_selection(toSelect);}
var data=maxkir.TaskData[taskId];if(data){data.status='close'==statusString?1:'reopen'==statusString?0:2;maxkir.Task.renderer(data.id).updateContent(false);if(completed_down){maxkir.Task.sort_tasks_under($("task_"+taskId).up());}}
new maxkir.AjaxCommand("/checklists/"+checklist_id+'/tasks/'+taskId+"/"+statusString+".js",{onSuccess:on_success,onComplete:function(){var is_list_page=maxkir.checklist&&maxkir.checklist.Dnd;if(is_list_page)maxkir.checklist.Dnd.stop();maxkir.Task.updateTask(taskId,true);var data=maxkir.Task.data(taskId);if(data&&data.parent_id){if(hide_completed&&is_list_page){maxkir.checklist.HideCompleted.show_hide_message(data.parent_id);}
maxkir.Task.updateParents('task_'+data.parent_id);}
if(is_list_page)maxkir.checklist.Dnd.install();maxkir.tree_nav.fix_selection();}});};maxkir.Task._to_select_after_hide=function(selectedNode){var id=selectedNode;maxkir.Undo.setSelectionAfterUndo(id);if(maxkir.tree_nav.get_selection()==id){var toSelect;if(maxkir.tree_nav.is_last_child(id)){toSelect=maxkir.tree_nav.getPrev(id,true);}
else{toSelect=maxkir.tree_nav.getNext(id,false);}
if(toSelect==id||toSelect==maxkir.tree_model.getFirstNode()){toSelect=maxkir.tree_nav.getPrev(id,true);}}
maxkir.debug("hiding "+id+", will select "+toSelect);return toSelect;};maxkir.TagManage={};Object.extend(maxkir.TagManage,maxkir.widget.TogglePopup);Object.extend(maxkir.TagManage,{popup_width:300,refresh:function(win){if(!this.popupContent||$('manageTagPopupData').innerHTML!=""){this.popupContent=new Template($('manageTagPopupData').innerHTML);$('manageTagPopupData').innerHTML="";}
this.set_content();},set_content:function(){this.win.setHTMLContent(this.popupContent.evaluate({tag_id:this.data().id,colors_updaters:this.color_chooser_tags()}));},setPrivate:function(private,force){if(!private||force){var data=this.data();data.private=private;this.update_tag_view();this.update_server_data_and_view(force);}
else{new maxkir.AjaxCommand("/tags/"+this.data()["id"],{method:"put",parameters:"tag[private]="+private});}},onShow:function(win){if(!maxkir.can_manage_tags){return;}
this.update_tag_view();this.update_color_selector_view();$('visibility_link').observe("click",function(e){this.setPrivate(!this.data().private);Event.stop(e)}.bindAsEventListener(this));win.getContent().observe("keydown",maxkir.TagManage.kbd_color_selector.bind(this));$('rename_tag').observe("focus",function(){this._rename_active=true;}.bind(this));$('rename_tag').observe("blur",function(){this._rename_active=false;}.bind(this));$('rename_tag').observe("keydown",function(e){if($('rename_tag').completer_active())return;if(e.keyCode==Event.KEY_RETURN&&$('rename_tag').value!=''){this.renameTag($('rename_tag').value);Event.stop(e);}}.bindAsEventListener(this));maxkir.TagsCompleter.install($('rename_tag'),[this.data().id],false,true);},kbd_color_selector:function(e){if(maxkir.modifiers(e)!=0||this._rename_active)return;var A=65;if(e.keyCode>=A&&e.keyCode<(A+20)){maxkir.TagManage.setColor(e.keyCode-A);Event.stop(e);}},setColor:function(color){var data=this.data();if(color!=data.color){data.color=color;this.update_tag_view();this.update_server_data_and_view();this.update_color_selector_view();return true;}
return false;},update_color_selector_view:function(){var data=this.data();$$("#colors_block a").each(function(el){if(el.getAttribute('tabindex')!="1"){el.setAttribute('tabindex',"1");el.observe('keydown',function(e){if(e.keyCode==32){maxkir.click_link(el);Event.stop(e);}});}
el.removeClassName('currentColor');if(el.hasClassName('tagClass_'+data.color)){el.addClassName('currentColor');el.focus();}})},renameTag:function(tagName,force){var params="new_tag_name="+encodeURIComponent(tagName)+"&checklist_id="+maxkir.checklist_id;if(force){params+="&force=true";}
$('renameProgress').show();new maxkir.AjaxCommand("/tags/"+this.data()["id"]+"/rename",{parameters:params});},onHide:function(win){if(!maxkir.can_manage_tags){return;}
maxkir.TagsCompleter.uninstall($('rename_tag'));$$("#colors_block a").invoke("stopObserving");$('visibility_link').stopObserving();$('rename_tag').stopObserving();win.getContent().stopObserving("keydown");$('renameProgress').hide();},update_tag_view:function(){maxkir.TagRenderer.updateView(this.anchor_element,this.data());this.fix_visibility_link();},fix_visibility_link:function(){$('visibility_link').innerHTML="Make this tag "+(this.data().private?"public":"private");},data:function(){return maxkir.Tags.findOrCreate(this.options.tag);},update_server_data_and_view:function(force){var data=this.data();new maxkir.AjaxCommand("/tags/"+this.data()["id"],{method:"put",parameters:"tag[private]="+data.private+"&tag[color]="+data.color+(force?"&force=true":""),onSuccess:function(){this.update_all_tags_view();}.bind(this)})},update_all_tags_view:function(){maxkir.TagRenderer.updateAllViews(this.data());this.fix_visibility_link();},color_chooser_tags:function(){var res="";for(var i=0;i<20;i++){var currentColor="";if(i==this.data().color){currentColor="currentColor";}
res+="<a href='#' class='tagClass_"+i+" "+currentColor+"' id='color_item_"+i+"' "+"onclick='maxkir.TagManage.setColor("+i+"); return false;'>"+
String.fromCharCode('a'.charCodeAt(0)+i)+"</a>";}
return res;},_f:null});maxkir.TaskRenderer=function(task,read_only){this.task_data=task;this.id=task.id;this.checklist_id=task.checklist_id;this.read_only=read_only;};maxkir.extend(maxkir.TaskRenderer,{TASK_LINK:new Template("<a href='/checklists/#{c_id}/tasks/#{t_id}' title='Permalink for task'>#{link}</a>"),getLiHtml:function(){return'  <li class="task dndNode" id="task_'+this.id+'">'+
this.up_down_border()+
this.full_task_content()+'  </li>';},up_down_border:function(){return"<div class='frame'></div>";},updateContent:function(withChildren){if(!$(this._id())){maxkir.info("Cannot update task "+this.task_data.content);return;}
maxkir.Task.uninstall(this.id);if(withChildren){maxkir.tree_model.foreach(function(node){maxkir.Task.uninstall(maxkir.Task.id(node));},this._id());$(this._id()).innerHTML=this.up_down_border()+this.full_task_content();maxkir.tree_model.foreach(function(node){maxkir.Task.install(maxkir.checklist_id,maxkir.Task.id(node));},this._id());}
else if($("core_"+this.id)){$("core_"+this.id).innerHTML=this.main_task_content();$("core_"+this.id).className=this.core_class_name();}
maxkir.Task.install(this.checklist_id,this.id);if(this._id()==maxkir.tree_nav.get_selection()){maxkir.tree_nav.set_selection(this._id());}},hasSubtasks:function(){var tsks=this.task_data.tasks;return tsks&&tsks.length&&tsks.length>0;},_id:function(){return'task_'+this.id;},core_class_name:function(){return"coreDiv "+this.mark_class()+this.closed_class();},full_task_content:function(){var content="<div id='core_"+this.id+"' class='"+this.core_class_name()+"'>";content+=this.main_task_content();content+="</div> \n";var children_class='';if(this.hasSubtasks()&&this.task_data.collapsed){children_class=' hidden';}
content+=this.children_html(children_class);return content;},collapsed:function(){return this.hasSubtasks()&&this.task_data.collapsed;},main_task_content:function(){return this.image_handle()+
this.task_text_tag()+
this.due_date()+
this.task_tags()+
this.comments_count()+
this.task_update_details();},image_handle:function(){var content='<img src="/images/printBoxSmall.gif" width="12" height="12" class="checkMark" />';if(maxkir.Task.isDivider(this.id))content='';if(this.hasSubtasks()){var img_name='minus.gif';if(this.collapsed()){img_name='plus.gif';}
content+='<img src="/images/'+img_name+'" alt="" class="nodeImage"  id="handle_'+this.id+'"/>';}
return content;},task_text_tag:function(){return'<span id="tsk'+this.id+'" class="node_text '+
this.mark_class()+
this.closed_class()+'">'+
this.task_text()+'</span>';},task_text:function(){var txt=this.task_data.content;txt=maxkir.format_for_rendering(txt);if(txt.match(/^\s*$/)){txt="[Edit task name]";}
if(maxkir.Task.isDivider(this.id)){txt="<div class='hrDivider'></div>"}
return txt;},task_update_details:function(){return'<span class="taskStatus" id="task_status_'+this.id+'">'+this.update_line()+'</span>';},closed_class:function(){return this.task_data.status==1?' task_closed':this.task_data.status==2?' task_invalidated':"";},mark_class:function(){return this.task_data.details['mark']||"";},comments_count:function(){var cnt=this.task_data.comments_count;return'<a href="javascript://" class="commentsCount hidden" id="cc'+this.id+'" title="Press \'nn\' to view notes" >'+
maxkir.plural(cnt,"note")+'</a>';},due_date:function(){var due=this.task_data.due;if(!due)return'';if("ASAP"==due){return"<span class='dueDate today' title='This task is marked for ASAP completion' "+this.dd_id()+">ASAP</span>";}
var due_date=new Date(due);var d_all=due_date.cl_format_date(true,true);if(due_date.is_overdue()&&this.task_data.status==0){return"<span class='dueDate overdue' title='Missed due date: "+d_all+"' "+this.dd_id()+">overdue</span>";}
else{var d=due_date.cl_format_date(true,false);var css=due_date.is_today()?" today":"";return"<span class='dueDate"+css+"' title='Due date: "+d_all+"' "+this.dd_id()+">"+d+"</span>";}},task_tags:function(){var result="";var tags=this.task_data.tags;for(var tag_id in tags){var tag=maxkir.Tags.findOrCreate(tag_id);result+=maxkir.TagRenderer.getHtml(tag,tags[tag_id],this.read_only);}
return result;},dd_id:function(){return"id='dd"+this.id+"' list_id='"+maxkir.checklist_id+"'";},update_line:function(){if(this.task_data.status==2)
return"<i class='updateLine'>"+this.update_text()+"</i>";return"<span class='updateLine'>"+this.update_text()+"</span>";},update_text:function(){var res=this.task_data.update_line||"";if(res&&res.length>0){res+=" | ";}
if(this.task_data.updated_at){var time=maxkir.format_time(this.task_data.updated_at,true);if(time.startsWith("at ")){time=maxkir.format_time(this.task_data.updated_at);}
res+=this.TASK_LINK.evaluate({c_id:this.checklist_id,t_id:this.id,link:time});}
return res;},children_html:function(children_class){var result='';var tsks=this.task_data.tasks;if(tsks){maxkir.Task.sort_tasks(tsks);for(var i=0;i<tsks.length;i++){if(!maxkir.FindFilter.is_hidden(tsks[i])){result+=maxkir.Task.renderer(tsks[i]).getLiHtml();}}}
return'<ul id="parentTask_'+this.id+'" class="dndUl'+children_class+'">'+
result+"</ul>";}});maxkir.FindFilter={_hidden:{},show:function(text,filter_after_show){var input=$('findInput');if(input.value.indexOf(text)<0){if(input.value!=''){input.value+=" ";}
input.value+=text;}
var activator=function(){if(filter_after_show){this.doFilter();}
else{this.activate();this.completer.onKeyPress({keyCode:32});}}.bind(this);if($('findFilter').getStyle('display')!='none'){activator();}
else{this.position_by_magnifier();new Effect.Appear('findFilter',{duration:0.5,afterFinishInternal:activator});}},hide:function(e){if(e)Event.stop(e);$('findInput').value='';new Effect.Fade('findFilter',{duration:0.3});if(this.is_filtered()){this.doFilter();}},is_hidden:function(task_id){return this._hidden[task_id];},is_active:function(){return this._active;},is_focused:function(){return this._focused;},is_visible:function(){return $('findFilter')&&$('findFilter').visible();},is_filtered:function(){return this._is_filtered;},searchAll:function(tag){document.location.href="/search?what="+encodeURIComponent(maxkir.trim(tag));},doFilter:function(){this.parse_input();this._hidden={};this._is_filtered=false;maxkir.Task.foreach(function(data){this._hidden[data.id]=this.should_hide(data);if(this._hidden[data.id]){this._is_filtered=true;}}.bind(this));if(this.is_filtered()){maxkir.Task.foreach(function(data){var top_level=!maxkir.TaskData[data.parent_id];if(top_level){this.visit_branch_and_update_visibility(data);}}.bind(this));}
maxkir.Task.uninstall_tree_data();maxkir.Task.install_tree_data();if(maxkir.tree_nav)maxkir.tree_nav.selectFirstInTree();this.passivate();},doAllSearch:function(){this.searchAll($('findInput').value);},visit_branch_and_update_visibility:function(parent_data){maxkir.debug("visit_branch_and_update_visibility "+parent_data.id);if(!this.is_hidden(parent_data.id)){this.expand_parents(parent_data.id);parent_data.collapsed=true;this.mark_children_visible(parent_data.id);return;}
var children=parent_data.tasks;if(!children)return;for(var i=0;i<children.length;i++){var d=maxkir.TaskData[children[i]];if(d){this.visit_branch_and_update_visibility(d);}}},parse_input:function(){var val=$('findInput').value;this._filtered=(val!='');this.tags=[];if(this._filtered&&maxkir.Tags){var string_tags=maxkir.Tags.parse_line(val);$A(string_tags).each(function(tag){var d=maxkir.Tags.find(tag);this.tags.push(d?d.id:-1);},this);}},should_hide:function(task_data){if(!this._filtered)return false;var t=$A(this.tags);t=t.reject(function(tag_id){return!Object.isUndefined(task_data.tags[tag_id]);});return t.length>0;},expand_parents:function(task_id){maxkir.debug("expand_parents "+task_id);var d=maxkir.TaskData[task_id];while(d){d.collapsed=false;d=maxkir.TaskData[d.parent_id];if(d){this._hidden[d.id]=false;}}},mark_children_visible:function(task_id){maxkir.debug("mark_children_visible "+task_id);var data=maxkir.TaskData[task_id];if(data){var children=data.tasks;if(!children)return;for(var i=0;i<children.length;i++){var child_id=children[i];if(!this.is_hidden(child_id)){this.expand_parents(child_id);}
else{this._hidden[child_id]=false;}
this.mark_children_visible(child_id);}}},position_by_magnifier:function(){$('findFilter').setOpacity(.001).show();var anchor=maxkir.getPageOffset($('searchInTop'));var input=$('findInput');$('ffContainer').setStyle({left:(anchor.left-input.offsetLeft-2)+"px"});$('findFilter').hide();},install:function(){var panel=$('findFilter');if(panel){var ff=maxkir.FindFilter;$('findReset').observe('click',ff.hide.bindAsEventListener(ff));$('findInput').observe('focus',ff.activate.bindAsEventListener(ff));$('findInput').observe('blur',ff.passivate.bindAsEventListener(ff));$('allButton').observe('focus',ff.mark_focused.bindAsEventListener(ff));$('hereButton').observe('focus',ff.mark_focused.bindAsEventListener(ff));$('allButton').observe('blur',ff.mark_unfocused.bindAsEventListener(ff));$('hereButton').observe('blur',ff.mark_unfocused.bindAsEventListener(ff));ff.completer=maxkir.TagsCompleter.install($('findInput'),{},false,false);new maxkir.KbdManager($('findInput')).forCondition(function(){return this.is_active()&&!$('findInput').completer_active();}.bind(ff)).addShortcut("enter",function(e){this.doFilter();}.bindAsEventListener(ff)).addShortcut("ctrl+enter",function(e){this.doAllSearch();}.bindAsEventListener(ff)).addShortcut("up",function(e){this.passivate();maxkir.cmd.move_up();}.bindAsEventListener(ff)).addShortcut("down",function(e){this.passivate();maxkir.cmd.move_down();}.bindAsEventListener(ff)).addShortcut("tab",function(e){maxkir.tree_nav.set_selection("none");}.bindAsEventListener(ff),true).addShortcut("esc",function(e){this.passivate();if(!this.is_filtered()){this.hide();}}.bindAsEventListener(ff));}},activate:function(){this._active=true;var pos=$('findInput').value.length;maxkir.set_selection($('findInput'),pos,pos);$('findInput').focus();this.mark_focused();},passivate:function(){this._active=false;$('findInput').blur();this.mark_unfocused();},mark_focused:function(){this._focused=true;},mark_unfocused:function(){this._focused=false;},_f:null};Event.observe(window,"load",maxkir.FindFilter.install);maxkir.checklist.Details={_details_on:false,on:function(){return this._details_on;},toggle:function(){this.show_details(!this._details_on,true);},show_details:function(show,notify_server){this._details_on=show;this.repaintTree(this._details_on);if(notify_server){maxkir.checklist.set_option('show_details',show);}},repaintTree:function(show_state){if(show_state===undefined){this.show_details(this._details_on);return;}
if(show_state){$('tasks_block').addClassName('showDetails');}
else{$('tasks_block').removeClassName('showDetails');}},repaint:function(task_id,state){if($('task_status_'+task_id)){if(state===undefined){state=this._details_on;}
var r=maxkir.Task.renderer(task_id);if(r){$('task_status_'+task_id).innerHTML=r.update_line();}
$('task_status_'+task_id).style.display=state?'inline':'none';}},install_kbd:function(){document.observe("keydown",function(e){if(e.keyCode==17&&!this._details_on){this.startShowDetails();}
else{this.interruptShowDetails();}}.bindAsEventListener(maxkir.checklist.Details))
document.observe("keyup",function(e){if(e.keyCode==17&&!this._details_on){this.repaintTree(false)}
this.interruptShowDetails();}.bindAsEventListener(maxkir.checklist.Details))},startShowDetails:function(){this.interruptShowDetails();this._timeout=setTimeout(function(){this._timeout=null;this.repaintTree(true);}.bind(this),500);},interruptShowDetails:function(){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}}};maxkir.checklist.HideCompleted={_skip_hide:{},is_hide:function(){return this._hide_completed;},update_visibility_all:function(){maxkir.Task.foreach(function(task){this.update_visibility(task.id);}.bind(this));maxkir.checklist.ShowNumbered.repaint();},update_visibility:function(task_id){var data=maxkir.Task.data(task_id);if(!data||!$('task_'+task_id))return;if(this.is_hide()&&data.status){if(!this._skip_hide[task_id]){$('task_'+task_id).addClassName("hidden");}}
else{$('task_'+task_id).removeClassName("hidden");maxkir.ie_revalidate($('task_'+task_id));}},hide_completed:function(hide,notify_server){this._hide_completed=hide;if(hide&&notify_server){this._skip_hide={};}
this.update_visibility_all();if(notify_server){maxkir.checklist.set_option('hide_completed',hide);}},toggle:function(){this.hide_completed(!this.is_hide(),true);},skip_hide_if_closed:function(task_data){if(task_data.status){this._skip_hide[task_data.id]="1";}},show_hide_message:function(parent_task_id){var data=maxkir.Task.data(parent_task_id);if(this.is_hide()&&data&&data.status){new maxkir.widget.Message("All subtasks were completed<br>The parent task will disappear after page reload.");}}};maxkir.checklist.ShowNumbered={is_show:function(){return this._show_numbered;},show_numbered:function(show,notify_server){this._show_numbered=show;if(show){$('tasks_block').addClassName("numberedList");}
else{$('tasks_block').removeClassName("numberedList");}
if(notify_server){maxkir.checklist.set_option('show_numbered',show);}},repaint:function(){var t=maxkir.checklist.ShowNumbered;if(!t.repaint_action){t.repaint_action=new maxkir.TimeoutAction(1,0,function(){this.show_numbered(false);setTimeout(function(){this.show_numbered(true);}.bind(this),1);}.bind(this),function(){});}
if(t.is_show()&&maxkir.WebKit){t.repaint_action.stop();t.repaint_action.starting();}}};maxkir.checklist.CompletedDown={is_enabled:function(){return this._completed_down;},completed_down:function(enabled,notify_server){this._completed_down=enabled;if(notify_server){maxkir.checklist.set_option('completed_down',enabled);maxkir.Task.sort_tasks_under($('parentTask_0'));$('parentTask_0').select("ul").each(function(ul){maxkir.Task.sort_tasks_under(ul);});}}};document.observe("dom:loaded",maxkir.checklist.Details.install_kbd);maxkir.widget.OptionsPopup={};Object.extend(maxkir.widget.OptionsPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.OptionsPopup,maxkir.widget.PopupSelectionSupport);Object.extend(maxkir.widget.OptionsPopup,{popup_width:280,refresh:function(win){if(!this.popupContent){this.popupContent=$('optionsPopupData').innerHTML;$('optionsPopupData').innerHTML="";}
win.getContent().update(this.popupContent);$('hide_completed').checked=maxkir.checklist.HideCompleted.is_hide();$('completed_down').checked=maxkir.checklist.CompletedDown.is_enabled();$('show_details').checked=maxkir.checklist.Details.on();if($('show_hints')){$('show_hints').checked=maxkir.Sidebar.is_shown();}
if($('show_numbered')){$('show_numbered').checked=maxkir.checklist.ShowNumbered.is_show();}
this.setupSelection();},doOpen:function(node){$(node).down("input").click();},install_popup:function(){maxkir.widget.OptionsPopup.install_kbd();}});maxkir.widget.NotificationOptionsPopup={};Object.extend(maxkir.widget.NotificationOptionsPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.NotificationOptionsPopup,maxkir.widget.PopupSelectionSupport);Object.extend(maxkir.widget.NotificationOptionsPopup,{popup_width:300,refresh:function(win){if(!this.popupContent){this.popupContent=$('notifyPopupData').innerHTML;$('notifyPopupData').innerHTML="";}
win.getContent().update(this.popupContent);this.init_checkboxes_state();this.setupSelection();},init_checkboxes_state:function(){if(!maxkir.Notifications.states){maxkir.Notifications.states={};maxkir.Notifications.states.dueDigest=$('dueDigest').checked;maxkir.Notifications.states.dailyDigest=$('dailyDigest').checked;}
else{$('dueDigest').checked=maxkir.Notifications.states.dueDigest;$('dailyDigest').checked=maxkir.Notifications.states.dailyDigest;}},doOpen:function(node){node.getElementsByTagName('INPUT')[0].click();},install_popup:function(){maxkir.widget.NotificationOptionsPopup.install_kbd();}});maxkir.widget.ActionsPopup={};Object.extend(maxkir.widget.ActionsPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.ActionsPopup,maxkir.widget.PopupSelectionSupport);Object.extend(maxkir.widget.ActionsPopup,{popup_width:320,get_actions_data:function(){if(this.actions_data)return this.actions_data;this.actions_data=[{text:"Add a subtask",shortcut:"Shift+Enter",cmd:maxkir.cmd.add_subtask,disabled:this.no_task},{text:"View/add notes",shortcut:"nn",cmd:maxkir.cmd.view_add_note,disabled:this.no_task},{text:"Due date",shortcut:"dd",cmd:maxkir.cmd.view_add_due,disabled:this.no_task},{text:"Tags",shortcut:"tt",cmd:maxkir.cmd.view_tags,disabled:this.no_task},{text:"Set task <span style='color:red;'>co</span><span style='color: blue;'>lo</span><span style='color: green;'>ur</span>",shortcut:"1/2/3 or 0",cmd:function(){maxkir.widget.ColorPopup.toggle_popup(this.anchor_element.id);}.bind(this),disabled:this.no_task},{text:"Find & Filter",shortcut:"ff",cmd:maxkir.cmd.find_filter},{text:"Extract checklist",shortcut:"xx",cmd:maxkir.cmd.extract_checklist,disabled:function(){if(this.no_task())return true;if(!maxkir.Task.renderer(maxkir.cmd.task_id()).hasSubtasks())return true;return false;}.bind(this)},{text:"Import tasks",shortcut:"",cmd:function(){maxkir.widget.ImportPopup.toggle_popup($(this.anchor_element.id),maxkir.checklist_id);}.bind(this)}];return this.actions_data;},no_task:function(){return!maxkir.cmd.task_id();},buildActions:function(){var res="";var actions_data=this.get_actions_data();for(var i=0;i<actions_data.length;i++){var d=actions_data[i];var shortcut="";if(d.shortcut){shortcut="<span class='shortcut'>"+d.shortcut+"</span>";}
res+="<li>"+shortcut+"<a href='#' id='taskActionId"+i+"'>"+d.text+"</a></li>";}
return res;},refresh:function(win){if(!this.popupContent){this.popupContent=new Template($('actionsPopupData').innerHTML);$('actionsPopupData').innerHTML="";}
win.getContent().update(this.popupContent.evaluate({"task_actions":this.buildActions()}));this.setupSelection();},onShow:function(win){this.install_handlers();},onHide:function(win){this.remove_handlers();},install_handlers:function(){var actions_data=this.get_actions_data();for(var i=0;i<actions_data.length;i++){var data=actions_data[i];if(data.disabled&&data.disabled()){var li=$($('taskActionId'+i).parentNode);li.addClassName("disabled");li.title="Action is not available for current selection";}
else{(function(data){$('taskActionId'+i).onclick=function(e){data.cmd.call(this);if(e)Event.stop(e);};})(data);}}},remove_handlers:function(){var actions_data=this.get_actions_data();for(var i=0;i<actions_data.length;i++){$('taskActionId'+i).onclick=null;}},doOpen:function(node){maxkir.click_link($(node));},install_popup:function(){maxkir.widget.ActionsPopup.install_kbd();}});maxkir.widget.SortPopup={};Object.extend(maxkir.widget.SortPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.SortPopup,maxkir.widget.PopupSelectionSupport);Object.extend(maxkir.widget.SortPopup,{popup_width:250,refresh:function(win){if(!this.popupContent){this.popupContent=$('sortPopupData').innerHTML;$('sortPopupData').innerHTML="";}
win.getContent().update(this.popupContent);this.setupSelection();},doOpen:function(node){if($(node).down("a")){maxkir.click_link($(node));this.hide_popup();}
if($(node).down("input")){$(node).down("input").click();}},install_popup:function(){maxkir.widget.SortPopup.install_kbd();}});document.observe("dom:loaded",maxkir.widget.OptionsPopup.install_popup);document.observe("dom:loaded",maxkir.widget.NotificationOptionsPopup.install_popup);document.observe("dom:loaded",maxkir.widget.ActionsPopup.install_popup);document.observe("dom:loaded",maxkir.widget.SortPopup.install_popup);maxkir.namespace('checklist');maxkir.checklist.Dnd={install:function(force){this.no_dnd=!force&&(Prototype.Browser.IE&&maxkir.Task.task_count()>200);this.start();},updateStructure:function(){maxkir.CommandProcessor.add2QueueWithTimeout("reorder",1000,maxkir.checklist.Dnd._doServerUpdate);},stop:function(){if(maxkir.read_only||this.no_dnd||!this._installed)return;maxkir.debug("stop Dnd >>> "+new Date());Droppables.drops=[];Draggables.drags=[];Draggables.unregister("fff");var old_unregister=Draggables.unregister;Draggables.unregister=Prototype.emptyFunction;Sortable.destroy("parentTask_0");Draggables.unregister=old_unregister;maxkir.debug("stop Dnd <<< "+new Date());this._installed=false;},start:function(){if(maxkir.read_only||this.no_dnd)return;maxkir.debug("install Dnd >>> "+new Date());Sortable.create("parentTask_0",{tree:true,only:"dndNode",scroll:window,elements:maxkir.checklist.Dnd._elements_for_tasks(),onUpdate:function(){this.updateStructure();}.bind(this)});maxkir.debug("install Dnd <<< "+new Date());this._installed=true;},addTreeNode:function(e){if(this.no_dnd)return;var options=Sortable.options(e);var options_for_droppable={overlap:options.overlap,containment:options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover};var options_for_draggable={revert:true,quiet:options.quiet,scroll:options.scroll,scrollSpeed:options.scrollSpeed,scrollSensitivity:options.scrollSensitivity,delay:options.delay,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle};options.draggables.push(new Draggable(e,options_for_draggable));Droppables.add(e,options_for_droppable);if(options.tree)e.treeNode=$("parentTask_0");},_elements_for_tasks:function(){var res=[];maxkir.Task.foreach(function(data){var el=$("task_"+data.id);if(el)res.push(el)});return res;},_doServerUpdate:function(){if(maxkir.EditTracker.is_editing()){maxkir.checklist.Dnd.updateStructure();return;}
maxkir.CommandProcessor.add2Queue(new maxkir.ReorderCommand());}};maxkir.add_task={local2real:{},is_adding:function(){var add_task=$('add_task');return add_task.parentNode.parentNode&&add_task.parentNode.parentNode.tagName=='LI';},change_parent:function(parent_task_id,anchor_id){if(!anchor_id)anchor_id=0;var old_val=$('task_content').value;maxkir.add_task.hide_add();maxkir.add_task.show_add(parent_task_id,anchor_id);$('task_content').value=old_val;},show_add:function(parent_task_id,anchorTaskId){var parentNodeUL=$("parentTask_"+parent_task_id);if(!parentNodeUL)return;if(!anchorTaskId){anchorTaskId=-1;}
$('task_parent_id').value=parent_task_id;maxkir.add_task.insert_after=anchorTaskId;var addTaskNode=$('add_task');var anchorNode=$("task_"+anchorTaskId);maxkir.add_task.hide_add();var tmp=this._createLi_add(addTaskNode);if(parent_task_id>0){maxkir.checklist.NodeToggle.expand(parent_task_id);}
if(anchorNode){anchorNode.parentNode.insertBefore(tmp,anchorNode.nextSibling);}
else{parentNodeUL.insert({top:tmp});}
addTaskNode.style.display='block';$('task_content').value='';$('task_content').maxkir_textarea.start();maxkir.TagsCompleter.install($('task_content'),{});maxkir.EditTracker.start_editing('add_task');maxkir.tree_nav.hide_selection();},_idx:0,_createLi_add:function(addTaskNode){var tmp=document.createElement("LI");tmp.className="task";this._idx++;tmp.id="task_new_"+this._idx;$('local_new_id').value=tmp.id;var div=document.createElement("DIV");div.className="coreDiv";tmp.appendChild(div);addTaskNode.parentNode.removeChild(addTaskNode);div.appendChild(addTaskNode);return tmp;},hide_add:function(){maxkir.TagsCompleter.uninstall($('task_content'));maxkir.EditTracker.stop_editing('add_task');if(maxkir.add_task.is_adding()){$('task_content').value='';var add_task=$('add_task');var li=add_task.parentNode.parentNode;maxkir.add_task._remove_from_tree();var ul=li.parentNode;ul.removeChild(li);maxkir.tree_nav.fix_selection();return true;}
return false;},_remove_from_tree:function(){var add_task=$('add_task');add_task.remove();$('hidden_node').appendChild(add_task);},create_task:function(skip_add){this._remove_from_tree();var formObject=$('task_content').form;var parent_task_id=$('task_parent_id').value;var new_task_id=formObject['local_new_id'].value;$(new_task_id).innerHTML=new maxkir.TaskRenderer({id:new_task_id.substring(5),checklist_id:maxkir.checklist_id,content:$('task_content').value.escapeHTML().gsub(/[\n\r]$/,''),status:0,details:{}}).full_task_content();$(new_task_id).firstChild.style.color='#777';maxkir.CommandProcessor.add2Queue(new maxkir.AddTaskCommand(formObject,new_task_id,this.get_position($(new_task_id))));if(!skip_add){maxkir.tree_nav.set_selection(new_task_id,true);maxkir.add_task.show_add(parent_task_id,new_task_id.substring(5));}
else{maxkir.add_task.hide_add();}
return false;},get_position:function(li_node){var position=0;Element.cleanWhitespace($(li_node).parentNode);var nodes=$(li_node).parentNode.childNodes;for(var i=0;i<nodes.length;i++){if(nodes[i].id==li_node.id){position=i+1;break;}}
return position;},installKbdHandler:function(){$('task_content').maxkir_textarea=new maxkir.widget.Textarea('task_content',{onEscape:maxkir.add_task.hide_add.bind(maxkir.add_task),onEnter:maxkir.add_task.create_task.bind(maxkir.add_task)});Event.observe(document.body,"mousedown",function(e){var el=Event.element(e);if(maxkir.add_task.is_adding()&&!maxkir.is_form_control(el)&&(!el||el.innerHTML!='x')){if(/^\s*$/.match($('task_content').value)){maxkir.add_task.hide_add();}
else{maxkir.add_task.create_task(true);}}}.bindAsEventListener(this));},update_model:function(addedTaskId){var task_data=maxkir.Task.data(addedTaskId);if(task_data){var parent=maxkir.Task.data(task_data.parent_id);if(parent){parent.tasks.push(addedTaskId);while(parent){parent.status=0;parent=maxkir.Task.data(parent.parent_id);}}}}};maxkir.AddTaskCommand=function(formObject,new_task_id,position){var params=Form.serialize(formObject)+"&task[position]="+position;maxkir.SyncronousAjaxCommand.call(this,formObject.action,{parameters:params,evalJS:"force",onSuccess:maxkir.Notifications.enable,onComplete:function(){try{var addedTaskId=maxkir.add_task.local2real[new_task_id];maxkir.info("Added task "+addedTaskId+" instead of "+new_task_id);if(addedTaskId){maxkir.add_task.update_model(addedTaskId);var el=$(new_task_id);el.addClassName('dndNode');el.id="task_"+addedTaskId;maxkir.Task.updateTask(addedTaskId,true);maxkir.Task.updateParents(maxkir.tree_model.getParent("task_"+addedTaskId));if(maxkir.add_task.insert_after==maxkir.Task.id_str(new_task_id)){maxkir.add_task.insert_after=addedTaskId;}
if(new_task_id==maxkir.tree_nav.get_selection()){maxkir.tree_nav.set_selection('task_'+addedTaskId,true);}
var parent_id=$(el.parentNode).identify();maxkir.checklist.resort_children_of(parent_id);maxkir.checklist.Dnd.addTreeNode(el);}}
catch(e){for(var t in e){maxkir.error(t+"="+e[t]);}
alert("Error while adding task: "+e)}}.bind(this)});}
maxkir.extend(maxkir.AddTaskCommand,{},maxkir.SyncronousAjaxCommand);document.observe("dom:loaded",maxkir.add_task.installKbdHandler);maxkir.Undo={show_undo:function(message){if(maxkir.Undo._timeout){maxkir.Undo._timeout.stop();}
maxkir.Undo._timeout=new maxkir.TimeoutAction(0,60*1000,function(){var undoLink=" <a href='javascript://' class='undo' id='undo_link' onclick='maxkir.Undo.runUndo(); return false;'>Undo</a>";if(message.indexOf("#UNDO#")>=0){message=message.gsub("#UNDO#",undoLink);}
else{message+=undoLink;}
$('undoNotice').innerHTML="<span>"+message+"</span>";this.stopping();},function(){delete maxkir.Undo._timeout;maxkir.Undo.hide_undo();if(maxkir.Notifications&&maxkir.Notifications.removeHighlighting){maxkir.Notifications.removeHighlighting();}});maxkir.Undo._timeout.activate();},hide_undo:function(){$('undoNotice').innerHTML="&nbsp;";},runUndo:function(){if($('undo_link')){$('undo_link').innerHTML="Undoing...";new maxkir.AjaxCommand("/checklists/undo",{onComplete:function(){maxkir.Undo.refresh();}});}},refresh:function(){if(maxkir.checklist_id){maxkir.checklist.refresh(maxkir.Undo.runAfterRefresh.bind(this));}
else{document.location.reload();}},runAfterRefresh:function(){if(this.selectionAfterUndo){maxkir.tree_nav.set_selection(this.selectionAfterUndo);maxkir.tree_nav.fix_selection();delete this.selectionAfterUndo;}
maxkir.Undo.hide_undo();if(maxkir.refresher){maxkir.refresher.ping_server();}},setSelectionAfterUndo:function(taskNode){this.selectionAfterUndo=taskNode;}};maxkir.namespace('widget')
maxkir.widget.Textarea=function(element,options){this.editField=$(element);this.options=Object.extend({no_multiline:false,onEscape:null,onEnter:null},options||{});var completer_active=function(){return this.editField&&this.editField.completer_active&&this.editField.completer_active();}.bind(this);this.boundTextAreaTransformer_AndSubmitter=function(e){if(e.stopped)return;var no_special_key=!(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey);if(Event.KEY_RETURN==e.keyCode&&(no_special_key||e.ctrlKey)){if(!this.editField.value.blank()&&this.options.onEnter&&!completer_active()){this.options.onEnter();Event.stop(e);}}
else if(Event.KEY_RETURN==e.keyCode&&e.shiftKey&&this.editField.value.blank()){this.make_multiline();Event.stop(e);}
else if(Event.KEY_ESC==e.keyCode&&this.options.onEscape&&no_special_key&&!completer_active()){this.options.onEscape();Event.stop(e);}
else{setTimeout(function(){this.fix_multiline();}.bind(this),20);}}.bindAsEventListener(this);this.editField.observe('keydown',this.boundTextAreaTransformer_AndSubmitter);}
maxkir.extend(maxkir.widget.Textarea,{start:function(){this.editField.addClassName("one_line");setTimeout(function(){this.editField.scrollTop=this.editField.scrollHeight;if(this.need_multiline()){this.fix_multiline();}
maxkir.ie_revalidate();this.editField.focus();}.bind(this),20);this.editField.focus();},dispose:function(){this.editField.stopObserving('keydown',this.boundTextAreaTransformer_AndSubmitter);},fix_multiline:function(){if(this.need_multiline()){this.make_multiline();}},make_multiline:function(){this.editField.removeClassName('one_line');maxkir.ie_revalidate();},need_multiline:function(){return(this.editField.scrollTop>2)&&!this.options.no_multiline;}});maxkir.namespace('widget');maxkir.widget.InplaceEditor=function(element,url,options,ajaxOptions){delete Ajax.InPlaceEditor.Listeners.click;delete Ajax.InPlaceEditor.Listeners.keydown;var options1=Object.extend({okButton:true,cancelLink:true,okText:"save",cancelText:"x",rows:4,no_dblclick:false,submitOnBlur:false,evalScripts:true,htmlResponse:false,highlightcolor:"#ffffff",hoverClassName:"inplaceHover",skipBackgroundRestore:true,onEnterHover:Prototype.emptyFunction,onLeaveHover:Prototype.emptyFunction,callback:function(form,newValue){maxkir.EditTracker.stop_editing(this.element.id);if(newValue&&newValue.escapeHTML&&this.element){this.element.innerHTML=newValue.escapeHTML();var add_on="&";if(maxkir.refresher){add_on+=maxkir.refresher.add_on();}
return Form.serialize(form)+add_on;}
return"";}.bind(this),onFailure:function(transport){maxkir.error("AJAX call error: "+transport);},onComplete:function(transport,element){var el;if(transport&&transport.responseXML&&transport.responseXML.documentElement){el=transport.responseXML.documentElement;}
if(transport&&transport.responseText){element.innerHTML=this.getUpdatedText(el,element);}}.bind(this),onFormCustomization:function(editor,form){maxkir.EditTracker.start_editing(this.element.id);this.editField=$(this._controls.editor);this.customizeEditField();}.bind(this),ajaxOptions:ajaxOptions},options||{});if(!options1.no_dblclick){Ajax.InPlaceEditor.Listeners.dblclick='enterEditMode';}
this.avoid_submit_without_change();Ajax.InPlaceEditor.prototype.initialize.call(this,element,url,options1);this.element.title=options1.no_dblclick?"":"Double-click to edit";};maxkir.extend(maxkir.widget.InplaceEditor,{isEditing:function(){return this._editing;},install_click_editor:function(){this.element.title="Click to edit";var l=function(e){this.enterEditMode(e);}.bind(this);this._listeners["click"]=l
this.element.observe("click",l);},avoid_submit_without_change:function(){maxkir.run_before(this,'enterEditMode',function(){this.original_text=this.getText();}.bind(this));maxkir.run_around(this,'handleFormSubmission',function(){var args=$A(arguments);var orig=args.shift();var value=$F(this._controls.editor);if(value==this.original_text){this.handleFormCancellation();return false;}
else{return orig.apply(this,args);}}.bind(this));},customizeEditField:function(){this.boundBlur=function(e){setTimeout(function(){if(this._editing){if(this._controls.editor){this._boundSubmitHandler();}}}.bind(this),300);}.bindAsEventListener(this);this.editField.observe("blur",this.boundBlur);this.editField.style.fontFamily=Element.getStyle(this.element,"font-family");this.editField.style.fontWeight=Element.getStyle(this.element,"font-weight");this.editField.addClassName("text_input");this.maxkir_textarea=new maxkir.widget.Textarea(this.editField,{no_multiline:this.options.no_multiline,onEnter:this.handleFormSubmission.bind(this),onEscape:this.handleFormCancellation.bind(this)});this.maxkir_textarea.start();$(this.editField.next()).remove();},disposeEditor:function(){if(this.editField){this.editField.stopObserving("blur",this.boundBlur);}
if(this.maxkir_textarea){this.maxkir_textarea.dispose();}},leaveEditMode:function(){Ajax.InPlaceEditor.prototype.leaveEditMode.call(this);this.disposeEditor();maxkir.EditTracker.stop_editing(this.element.id)
maxkir.ie_revalidate();}},Ajax.InPlaceEditor);maxkir.Comments=function(checklist_id,task_id){this._visible=false;this.task_id=task_id;this.checklist_id=checklist_id;this.boundToggler=this.toggleComments.bindAsEventListener(this);};maxkir.extend(maxkir.Comments,{toggleComments:function(e){this[this._visible?'hideComments':'showComments']();Event.stop(e);},is_visible:function(){return this._visible;},hideComments:function(){this._visible=false;$('cc'+this.task_id).innerHTML=maxkir.plural(this.comments_count(),"note");if(this.old_cc_title){$('cc'+this.task_id).title=this.old_cc_title;}
if(this.element){this.hide_add();this.dispose_editors();this.element.remove();this.element=null;}},showComments:function(run_on_complete){if(maxkir.read_only&&this.comments_count()==0){return;}
if(this._visible){if(run_on_complete)run_on_complete();return;}
var el;if(this.element){el=this.element;}
else{el=document.createElement("div");el.className='comments';this.element=el;$('core_'+this.task_id).insert({after:el});}
this.old_cc_title=$('cc'+this.task_id).title;$('cc'+this.task_id).title="Press ESC to hide notes";$('cc'+this.task_id).innerHTML='hide notes';this.load_comments(run_on_complete);this._visible=true;},comments_count:function(){return maxkir.TaskData[this.task_id].comments_count||0;},set_counter_visible:function(visible){visible=visible&&(this.comments_count()>0||this._visible);if(!visible){$('cc'+this.task_id).addClassName('hidden');}
else{$('cc'+this.task_id).removeClassName('hidden');}},create_comment:function(form){if(this.add_button()){this.add_button().value="Adding ...";this.add_button().disable();}
new maxkir.AjaxCommand(form.action,{evalScripts:true,method:'post',parameters:Form.serialize(form),onSuccess:function(){maxkir.Notifications.enable();this.load_comments();}.bind(this)});return false;},delete_comment:function(comment_id){var count=this.comments_count();new maxkir.AjaxCommand(this.comments_path()+"/"+comment_id,{evalScripts:false,method:'delete',onSuccess:function(){maxkir.Notifications.enable();if(count>1){this.load_comments();}
else{maxkir.TaskData[this.task_id].comments_count=0;this.hideComments();}}.bind(this)});},edit_comment:function(comment_id){if(maxkir.checklist.comment_editors[this.task_id][comment_id]){this.hide_add();maxkir.checklist.comment_editors[this.task_id][comment_id].enterEditMode();}},dispose_editors:function(){for(var comment_id in maxkir.checklist.comment_editors[this.task_id]){var editor=maxkir.checklist.comment_editors[this.task_id][comment_id];editor.dispose();}
maxkir.checklist.comment_editors[this.task_id]={};},load_comments:function(run_on_complete){new maxkir.AjaxUpdater(this.element,this.comments_path(),{method:"get",evalScripts:true,onComplete:function(){setTimeout(function(){this.toggleAdd(this.comments_count()==0);if(this.element&&this.element.parentNode){maxkir.ie_revalidate(this.element.parentNode);}
if(run_on_complete)run_on_complete();}.bind(this),50);}.bind(this)});},comments_path:function(){return'/checklists/'+this.checklist_id+"/tasks/"+this.task_id+"/comments";},is_adding:function(){return this._editing;},hide_add:function(){this.toggleAdd(false);},add_button:function(){return $("add_note_submit_"+this.task_id);},show_add:function(){if(maxkir.read_only)return;if(this.add_button()){this.add_button().value="Add Note";this.add_button().enable();}
this.toggleAdd(true);},toggleAdd:function(showAdd){if(maxkir.read_only)showAdd=false;this._editing=showAdd;if($('add_comment_'+this.task_id))
$('add_comment_'+this.task_id).style.display=showAdd?'block':'none';if($('add_comment_link_'+this.task_id))
$('add_comment_link_'+this.task_id).style.display=showAdd?'none':'inline';if(showAdd){maxkir.EditTracker.start_editing('add_comment_'+this.task_id);var commentTextField=$('add_comment_text_'+this.task_id);if(commentTextField){if(!this.maxkir_textarea){this.maxkir_textarea=new maxkir.widget.Textarea(commentTextField,{onEscape:function(){if(this.comments_count()==0){this.hideComments();}
else{this.hide_add();}}.bind(this),onEnter:function(){maxkir.Comments[this.task_id].create_comment(commentTextField.form);}.bind(this)});}
this.maxkir_textarea.start();}}
else{maxkir.EditTracker.stop_editing('add_comment_'+this.task_id);if(this.maxkir_textarea){this.maxkir_textarea.dispose();delete this.maxkir_textarea;}}
this.set_counter_visible(true);}});maxkir.Comments.stopEvent=function(e){Event.stop(e);}.bindAsEventListener(maxkir.Comments);maxkir.Comments.show_add=function(task_id){if(maxkir.Comments[task_id]){maxkir.Comments[task_id].showComments(function(){maxkir.Comments[task_id].show_add();});}};maxkir.checklist.comment_editors={};maxkir.Comments.install=function(checklist_id,task_id){maxkir.Comments[task_id]=new maxkir.Comments(checklist_id,task_id);$('cc'+task_id).observe("click",maxkir.Comments[task_id].boundToggler);$('cc'+task_id).observe("dblclick",maxkir.Comments.stopEvent);maxkir.Comments[task_id].set_counter_visible(true);maxkir.checklist.comment_editors[task_id]={};};maxkir.Comments.uninstall=function(task_id){if(maxkir.Comments[task_id]){maxkir.Comments[task_id].hideComments();maxkir.Comments[task_id].set_counter_visible(false);$('cc'+task_id).stopObserving("dblclick",maxkir.Comments.stopEvent);$('cc'+task_id).stopObserving("click",maxkir.Comments[task_id].boundToggler);delete maxkir.Comments[task_id];}};maxkir.Comments.create_comment_editor=function(checklist_id,task_id,comment_id){var editor=new maxkir.widget.InplaceEditor('commentText'+comment_id,'/checklists/'+checklist_id+"/tasks/"+task_id+"/comments/"+comment_id+".xml",{paramName:"comment[comment]",no_dblclick:Prototype.Browser.Opera},{method:"PUT",onSuccess:maxkir.Notifications.enable});editor.getText=function(){return this.element.to_edit;};editor.getUpdatedText=function(documentElement,uiElement){var t=documentElement.getElementsByTagName("comment")[0];var txt=maxkir.elementText(t);uiElement.to_edit=txt;return maxkir.format_for_rendering(txt);};maxkir.checklist.comment_editors[task_id][comment_id]=editor;return editor;};maxkir.Comments.toggle_all=function(href){var show="Show all notes"==href.innerHTML;for(var f in maxkir.Comments){var cmt=maxkir.Comments[f];if(cmt.comments_count&&cmt.task_id&&cmt.comments_count()>0){cmt[show?'showComments':'hideComments']();}}
href.innerHTML=show?"Hide all notes":"Show all notes";};maxkir.Comments.highlight_comment=function(task_id,comment_id,set_selection_to_task){if(maxkir.Comments[task_id]){if(set_selection_to_task){maxkir.tree_nav.set_selection('task_'+task_id);}
maxkir.Comments[task_id].showComments(function(){if(set_selection_to_task){maxkir.scrollTo("note"+comment_id);maxkir.highlight("note"+comment_id);}
else{maxkir.checklist.NodeToggle.expand(task_id);maxkir.Notifications.addChangeHighligting("note"+comment_id);$("note"+comment_id).addClassName('highlight');}});}
else{if(!maxkir.Comments.counter){maxkir.Comments.counter={};}
if(!maxkir.Comments.counter[task_id+"_"+comment_id]){maxkir.Comments.counter[task_id+"_"+comment_id]=0;}
maxkir.Comments.counter[task_id+"_"+comment_id]++;if(maxkir.Comments.counter[task_id+"_"+comment_id]<20){setTimeout(function(){maxkir.Comments.highlight_comment(task_id,comment_id,set_selection_to_task);},20);}}};document.observe("dom:loaded",function(){var anchor=document.location.href;var found=anchor.match(/#note(\d+)_(\d+)/);if(found&&found.length==3){setTimeout(function(){maxkir.Comments.highlight_comment(found[1],found[2],true);},20);}});maxkir.CopyPaste={copymove:function(action){var task_id=maxkir.Task.selected_task_id();if(task_id>0&&maxkir.cmd.can_run(action=='move',false)){new maxkir.AjaxCommand("/checklists/"+maxkir.checklist_id+"/tasks/"+task_id+"/"+action);}},paste:function(params){if(!maxkir.cmd.can_run(true,false))return;params=params||"";new maxkir.AjaxCommand("/checklists/"+maxkir.checklist_id+"/tasks/"+maxkir.Task.selected_task_id()+"/paste",{evalScripts:true,parameters:params});return false;},duplicate:function(){this.paste("dup=true");return false;},extract_checklist:function(task_id){if(this.read_only)return;new maxkir.AjaxCommand("/checklists/"+maxkir.checklist_id+"/tasks/"+task_id+"/extract",{evalScripts:true});},after_paste:function(top_task_ids,force_reload){var parent=maxkir.TaskData[top_task_ids[0]].parent_id;if(parent&&!force_reload){maxkir.Task.updateTask(parent,true);maxkir.Task.updateParents("task_"+parent);maxkir.CopyPaste._highlight_new(top_task_ids);}
else{maxkir.checklist.refresh(function(){maxkir.CopyPaste._highlight_new(top_task_ids);});}
maxkir.Undo.show_undo("Task was "+(force_reload?"moved":"copied"));},_highlight_new:function(task_ids){for(var i=0;i<task_ids.length;i++){if(i==0){maxkir.tree_nav.set_selection("task_"+task_ids[i]);}
maxkir.highlight("task_"+task_ids[i],{duration:3});}}}
maxkir.widget.CopyPopup={}
Object.extend(maxkir.widget.CopyPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.CopyPopup,{popup_width:430,refresh:function(win){win.setAjaxContent('/checklists/popup/'+this.checklist_id+'/copymove.html',{evalScripts:true,onSuccess:function(){win.updateHeight();}},false);},submit_form:function(form){$('commit_copymove').value=($('remove_original')&&$('remove_original').checked)?'Moving...':'Copying...';$('commit_copymove').disable();new maxkir.AjaxCommand(form.action,{asynchronous:true,evalScripts:true,parameters:Form.serialize(form)})}});maxkir.widget.ExportPopup={};Object.extend(maxkir.widget.ExportPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.ExportPopup,{popup_width:390,refresh:function(win){if(!this.popupContent){this.popupContent=$('exportPopup').innerHTML;$('exportPopup').innerHTML="";}
win.getContent().update(this.popupContent);this.fix_urls();$('export_details').checked=maxkir.checklist.Details&&maxkir.checklist.Details.on();},fix_urls:function(){setTimeout(function(){var export_status=$('export_status').checked;var export_notes=$('export_notes').checked;var export_details=$('export_details').checked;var export_color=$('export_color').checked;var links=$('exportOptions').getElementsByTagName('A');for(var i=0;i<links.length;i++){var a=links[i];a.href=a.href.replace(/(now|export_status|export_notes|export_details|export_color)=\w*&/g,'');a.href+=(a.href.match(/\?/)?(a.href.match(/&$/)?'':'&'):"?");if(export_status)a.href+="export_status=true&";if(export_notes)a.href+="export_notes=true&";if(export_details)a.href+="export_details=true&";if(export_color)a.href+="export_color=true&";var d=new Date();var now=d.getTime()/1000-d.getTimezoneOffset()*60;a.href+="now="+now+"&";}},50);}});maxkir.widget.ImportPopup={};Object.extend(maxkir.widget.ImportPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.ImportPopup,{popup_width:450,refresh:function(win){if(!this.popupContent){this.popupContent=$('importPopup').innerHTML;$('importPopup').innerHTML="";}
win.getContent().update(this.popupContent);setTimeout(function(){$('import_content').activate();},50);},submit_form:function(form){if($F('import_content').blank()){new maxkir.widget.Message("You haven't provided any data to import");return;}
$('parent_id').value=maxkir.cmd.task_id()||"";$('importButton').value='Importing...';$('importButton').disable();new maxkir.AjaxCommand(form.action,{asynchronous:true,evalScripts:true,parameters:Form.serialize(form),onComplete:function(){$('importButton').enable();$('importButton').value="Import tasks";this.win.updateHeight();$('import_content').activate();}.bind(this)});return false;}});maxkir.Notifications={_highlighted:[],enable:function(){if($('notificationControl'))
$('notificationControl').show();},enabled:function(){var btn=$('notificationControl');return btn&&btn.getStyle('display')!='none';},sendFor:function(checklist_id){var btn=$('notificationButton');if(btn){btn.disable();btn.value='Notifying ...';}
new maxkir.AjaxCommand("/checklists/"+checklist_id+"/notify",{method:"post",parameters:Form.serialize(document.notifyForm),onSuccess:function(){new maxkir.widget.Message("Notification about your changes has been sent");maxkir.NotifyPopup.hide_popup();},onFailure:function(){new maxkir.widget.Message("Sorry, unable to send notification<br/> Please try again later");},onComplete:function(){maxkir.checklist.refresh_toolbar();if(btn)
btn.value='Notify';}});return false;},highlight:function(){if($('highligtingNotice'))$('highligtingNotice').style.display="block";this._highlighted.each(function(element){if($(element)){$(element).addClassName('highlight');}});},removeHighlighting:function(){if($('highligtingNotice'))$('highligtingNotice').style.display="none";this._highlighted.each(function(element){if($(element)){$(element).removeClassName('highlight');}});this._highlighted=[];},addChangeHighligting:function(element){this._highlighted.push(element);},add_task_highligting:function(task_id){this.addChangeHighligting("core_"+task_id);var parent=maxkir.tree_model.getParent('task_'+task_id);if(parent){maxkir.checklist.NodeToggle.expand(maxkir.Task.id(parent));}},toggle_subscribe:function(element,checklist_id,rule_type){element=$(element);var has_rule=element.hasClassName('clicked')||!element.checked;element.toggleClassName('clicked');maxkir.Notifications.update_title(element,has_rule,rule_type);new maxkir.AjaxCommand("/checklists/"+checklist_id+"/notifications",{method:has_rule?"delete":"post",parameters:"what="+rule_type,onSuccess:function(){maxkir.Notifications.update_table_row(element);maxkir.Notifications.update_subscribe_popup(element);}});},update_table_row:function(element){var parent_tr=element.up("tr");if(parent_tr){parent_tr.removeClassName("selected");parent_tr.getElementsBySelector("input").each(function(input){if(input.checked){parent_tr.addClassName("selected");}});}},update_subscribe_popup:function(element){if($("subscribeControl")){$("subscribeControl").removeClassName("clicked");var parent_ul=element.up("ul");parent_ul.getElementsBySelector("input").each(function(input){maxkir.Notifications.states[input.id]=input.checked;if(input.checked){$("subscribeControl").addClassName("clicked");}});}},update_title:function(element,has_rule,rule_type){if(has_rule){element.title=element.title.replace("Unsubscribe","Subscribe to "+rule_type);}
else{element.title=element.title.replace("Subscribe to "+rule_type,"Unsubscribe");}},toggle_disable:function(element,rule_type){element=$(element);var turn_on=element.innerHTML=="turn on";if(turn_on){element.innerHTML="turn off";element.title="Disable all notifications for "+rule_type;}
else{element.innerHTML="turn on";element.title="Enable notifications for "+rule_type;}
new maxkir.AjaxCommand("/checklists/none/notifications",{method:turn_on?"delete":"post",parameters:"what="+rule_type,onSuccess:function(){var msg=turn_on?"You've enabled "+rule_type+" notifications":"You've disabled "+rule_type+" notifications";new maxkir.widget.Message(msg);maxkir.Notifications.toggle_disabled_status(rule_type=="digest"?0:1);}});},toggle_disabled_status:function(index){$$("table.notificationTable tr").each(function(tr){if($(tr).down("td",index)){$(tr).down("td",index).toggleClassName("disabled");}});maxkir.Notifications.update_checkboxes();},update_checkboxes:function(){$$("table.notificationTable input").invoke('enable');$$("table.notificationTable td.disabled input").invoke('disable');}};maxkir.NotifyPopup={select_all:function(select){var els=document.forms['notifyForm'].elements;for(var i=0;i<els.length;i++){var element=els[i];if(element.type=='checkbox'){element.checked=select;}}
return false;}};Object.extend(maxkir.NotifyPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.NotifyPopup,{popup_width:400,refresh:function(){this.win.setAjaxContent('/checklists/'+this.checklist_id+'/notify',{evalScripts:true,method:"get"},false);}});maxkir.Share={};Object.extend(maxkir.Share,maxkir.widget.TogglePopup);Object.extend(maxkir.Share,{refresh:function(){this.win.setAjaxContent('/checklists/'+this.checklist_id+'/share',{evalScripts:true,method:"get"},false);},on_load:function(activeItems,is_public){this.setup_publishing(is_public);this.show_invite_form(activeItems==1);this.is_public=!!is_public;if($('publishButton')){$('publishButton').observe("click",function(){$('publishButton').value=this.is_public?"Un-Publishing...":"Publishing...";$('publishButton').disable();new maxkir.AjaxCommand("/checklists/"+this.checklist_id+".js",{method:"put",parameters:"checklist[public]="+(!this.is_public),evalScripts:true,onSuccess:function(){this.is_public=!this.is_public;this.refresh_ui();}.bind(this),onComplete:function(){this.setup_publishing(this.is_public);}.bind(this)});}.bindAsEventListener(this));}},refresh_ui:function(){if(maxkir.checklist_id){maxkir.checklist.refresh_toolbar();}
this._refresh_checklist_table_item();},setup_publishing:function(is_public){if($('publishLink')){$('publishLink').select("a")[0].innerHTML=is_public?"This list is public (read-only access) &raquo;":"Make public &raquo;";$(is_public?"unpublishBlock":"publishBlock").removeClassName("hidden");$(!is_public?"unpublishBlock":"publishBlock").addClassName("hidden");$('publishButton').value=is_public?"Un-Publish":"Publish";$('publishButton').enable();this.win.updateHeight();}},show_invite_form:function(show){if(!$('inviteLink'))return;if(show){$('inviteLink').hide();$('inviteForm').style.display='block';$('emails').activate();this.show_publish_form(false);}
else{$('inviteLink').style.display='block';$('inviteForm').hide();}
this.win.content.style.height="auto";this.win.updateHeight();},show_publish_form:function(show){if(!$('publishLink'))return;if(show){$('publishLink').hide();$('publishForm').style.display='block';this.show_invite_form(false);}
else{$('publishLink').style.display='block';$('publishForm').hide();}
this.win.content.style.height="auto";this.win.updateHeight();},delete_invitation:function(element,invitation_id){maxkir.confirm2(element,"Delete invitation?","maxkir.Share._do_delete_invitation(this, "+invitation_id+")");},remove_share:function(element,user_id){maxkir.confirm2(element,"Unshare?","maxkir.Share._do_delete_share(this, "+user_id+")");},install_role_editor:function(user_id,current_role){var el=$('role_'+user_id);if(!el)return;var show_action=function(){$('role_edit_'+user_id).removeClassName('hidden');};var hide_action=function(){maxkir.confirm4_cancel($('role_edit_'+user_id));$('role_edit_'+user_id).addClassName('hidden');};var action=new maxkir.TimeoutAction(200,200,show_action,hide_action);el.observe("mouseover",function(){action.starting();});el.observe("mouseout",function(){action.stopping();});el.observe("mousedown",function(){if(action.get_state()=='active'&&!maxkir.confirm4_active($('role_edit_'+user_id))){$('role_edit_'+user_id).onclick();}});},toggle_access:function(user_id,current_role){new maxkir.AjaxRequest("/checklists/"+this.checklist_id+"/share/"+user_id,{parameters:"role="+(current_role==3?2:3),method:"put",onSuccess:function(){maxkir.Share.refresh();}});},_refresh_checklist_table_item:function(){if($('shared_checklist_'+this.checklist_id)){new maxkir.AjaxUpdater('shared_checklist_'+this.checklist_id,"/checklists/"+this.checklist_id,{parameters:"partial=cl_shared",method:"get",evalScripts:false});}},_do_delete_invitation:function(element,invitation_id){new maxkir.AjaxRequest("/checklists/"+this.checklist_id+"/share/remove_invitation",{parameters:"invitation_id="+invitation_id,method:"post"});Element.remove(element.parentNode.parentNode.parentNode);},_do_delete_share:function(element,user_id){new maxkir.AjaxRequest("/checklists/"+this.checklist_id+"/share/"+user_id,{method:"delete",onSuccess:function(){if(user_id==maxkir.current_user_id){document.location.href="/checklists";}
else{this.refresh_ui();maxkir.Share.hide_popup();maxkir.Undo.show_undo("User have been unsubscribed");}}.bind(this)});Element.remove(element.parentNode.parentNode.parentNode);}});maxkir.Sidebar={is_shown:function(){if(maxkir.read_only)return false;return!getCookie("noHelp"+maxkir.Sidebar._key);},install:function(sidebar_key){maxkir.Sidebar._key=sidebar_key||"";$('closeSidebar').observe('click',function(){setTimeout(function(){maxkir.Sidebar.hide();if($('viewOptionsLink')&&!maxkir.widget.OptionsPopup.isVisible()){maxkir.highlight($('viewOptionsLink'),{duration:2});}},20);});maxkir.Sidebar.show_sidebar(maxkir.Sidebar.is_shown(),true);maxkir.Sidebar.set_full(maxkir.Sidebar.is_full(),true);},show_sidebar:function(show,quickly){if(show){this.show();}
else{this.hide(quickly);}},hide:function(quickly){if($('show_hints')){$('show_hints').checked=false;}
var sBar=$($('closeSidebar').parentNode);if(quickly){sBar.addClassName("hidden");$('tasks_block').removeClassName("compact");}
else{new Effect.Fade(sBar,{afterFinish:function(){sBar.addClassName("hidden").show();$('tasks_block').removeClassName("compact");}});}
setCookie("noHelp"+maxkir.Sidebar._key,"true",365);},show:function(quickly){if($('show_hints')){$('show_hints').checked=true;}
$('tasks_block').addClassName("compact");$($('closeSidebar').parentNode).removeClassName("hidden");deleteCookie("noHelp"+maxkir.Sidebar._key);},is_full:function(){if(maxkir.read_only)return false;return getCookie("fh");},set_full:function(full,fast){if(!$('full_sidebar'))return;if(full){setCookie("fh","true",365);$('full_sidebar_link').hide();if(fast){$('full_sidebar').show();}
else{new Effect.BlindDown('full_sidebar');}}
else{if(fast){$('full_sidebar').hide();$('full_sidebar_link').show();}
else{new Effect.BlindUp('full_sidebar',{afterFinish:function(){$('full_sidebar_link').show();}});}
deleteCookie("fh");}}};maxkir.namespace("checklist");maxkir.checklist.Colorer={_is_bg:false,install:function(){maxkir.checklist.Colorer._is_bg=getCookie("bg");},use_foreground:function(use_fg){this._is_bg=!use_fg;if(use_fg){if($('colorPopupUI')){$('colorPopupUI').removeClassName('bgPopupUI');$('colorPopupUI').addClassName('fgPopupUI');}
deleteCookie("bg");}
else{if($('colorPopupUI')){$('colorPopupUI').addClassName('bgPopupUI');$('colorPopupUI').removeClassName('fgPopupUI');}
setCookie("bg","1",365);}},fix_buttons:function(){$(this._is_bg?'color_type_bg':'color_type_fg').click();},paint_by_index:function(task_id,idx){var style="null";if(idx>0){style=(this._is_bg?"bg":"fg")+idx;}
this.paint(task_id,style);},paint:function(task_id,style){var data=maxkir.Task.data(task_id);if(data){if(style==data.details['mark']){style="null";}
new maxkir.AjaxCommand("/checklists/"+maxkir.checklist_id+"/tasks/"+task_id+"/details",{method:"put",parameters:"details[mark]="+style});if(style=='null'){delete data.details['mark'];}
else{data.details['mark']=style;}
maxkir.Task.updateTask(task_id);maxkir.widget.ColorPopup.hide_popup();}}};maxkir.widget.ColorPopup={};Object.extend(maxkir.widget.ColorPopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.ColorPopup,{popup_width:220,show_toggle_popup:function(anchor){anchor.no_hide_on_click=true;var task_id=maxkir.cmd.task_id();if(!task_id){new maxkir.widget.Message("Please select a task first");return;}
maxkir.widget.ColorPopup.toggle_popup(anchor,maxkir.checklist_id);return false;},refresh:function(win){if(!this.popupContent){this.popupContent=$('colorPopupData').innerHTML;$('colorPopupData').innerHTML="";}
win.getContent().update(this.popupContent);maxkir.checklist.Colorer.fix_buttons();}});Event.observe(window,"load",function(){maxkir.checklist.Colorer.install();});Object.extend(Date.prototype,{monthnames:['January','February','March','April','May','June','July','August','September','October','November','December'],daynames:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],succ:function(){var sd=new Date(this.getTime());sd.setDate(sd.getDate()+1);return sd;},firstofmonth:function(){return new Date(this.getFullYear(),this.getMonth(),1);},lastofmonth:function(){return new Date(this.getFullYear(),this.getMonth()+1,0);},formatPadding:true,format:function(f){if(!this.valueOf()){return'&nbsp;';}
var d=this;var formats={'yyyy':d.getFullYear(),'mmmm':this.monthnames[d.getMonth()],'mmm':this.monthnames[d.getMonth()].substr(0,3),'mm':this.formatPadding?((d.getMonth()).succ()).toPaddedString(2):(d.getMonth()).succ(),'dddd':this.daynames[d.getDay()],'ddd':this.daynames[d.getDay()].substr(0,3),'dd':d.getDate().toPaddedString(2),'hh':h=d.getHours()%12?h:12,'nn':d.getMinutes(),'ss':d.getSeconds(),'a/p':d.getHours()<12?'a':'p'};return f.gsub(/(yyyy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/i,function(match){return formats[match[0].toLowerCase()];});}});var scal={};scal=Class.create();scal.prototype={initialize:function(element,update){this.element=$(element);var type=Try.these(function(){if(!Object.isUndefined(Effect)){return'Effect';}},function(){return'Element';});this.options=Object.extend({oncalchange:Prototype.emptyFunction,daypadding:false,titleformat:'mmmm yyyy',updateformat:'yyyy-mm-dd',closebutton:'X',prevbutton:'&laquo;',nextbutton:'&raquo;',yearnext:'&raquo;&raquo;',yearprev:'&laquo;&laquo;',openeffect:type=='Effect'?Effect.Appear:Element.show,closeeffect:type=='Effect'?Effect.Fade:Element.hide,exactweeks:false,dayheadlength:2,weekdaystart:0,planner:false,tabular:false},arguments[2]||{});this.table=false;this.thead=false;this.startdate=this._setStartDate(arguments[2]);if(this.options.planner){this._setupPlanner(this.options.planner);}
if(this.options.tabular){this.table=new Element('table',{'class':'cal_table',border:0,cellspacing:0,cellpadding:0});this.thead=new Element('thead');this.table.insert(this.thead);this.element.insert(this.table);}
this.updateelement=update;this._setCurrentDate(this.startdate);this.initDate=new Date(this.currentdate);this.controls=this._buildControls();this.title.setAttribute('title',this.initDate.format(this.options.titleformat));this._updateTitles();this[this.table?'thead':'element'].insert(this.controls);this.cal_wrapper=this._buildHead();this.cells=[];this._buildCal();},_setStartDate:function(){var args=arguments[0];var startday=new Date();this.options.month=args&&args.month&&Object.isNumber(args.month)?args.month-1:startday.getMonth();this.options.year=args&&args.year&&Object.isNumber(args.year)?args.year:startday.getFullYear();this.options.day=args&&args.day&&Object.isNumber(args.day)?args.day:(this.options.month!=startday.getMonth())?1:startday.getDate();startday.setHours(0,0,0,0);startday.setDate(this.options.day);startday.setMonth(this.options.month);startday.setFullYear(this.options.year);return startday;},_emptyCells:function(){if(this.cells.size()>0){this._stopCellObserving();this.cells[0].parentNode.innerHTML="";this.cells=[];}},_stopCellObserving:function(){this.cells.each(function(cell){cell.stopObserving('click',cell.bound_click);cell.bound_click=null;});},_buildCal:function(){this._emptyCells();if(!(Object.isUndefined(this.cal_weeks_wrapper)||this.table)){this.cal_weeks_wrapper.remove();}
this.cal_weeks_wrapper=this._buildWrapper();if(this.table){this.table.select('tbody tr.weekbox:not(.weekboxname)').invoke('remove');this.table.select('tbody.cal_wrapper').invoke('remove');this.cal_weeks_wrapper.each(function(row){this.cal_wrapper.insert(row);}.bind(this));}else{this.cal_wrapper.insert(this.cal_weeks_wrapper);}
this[this.table?'table':'element'].insert(this.cal_wrapper);},_click:function(event,cellIndex){this.element.select('.dayselected').invoke('removeClassName','dayselected');(event.target.hasClassName('daybox')?event.target:event.target.up()).addClassName('dayselected');this._setCurrentDate(this.dateRange[cellIndex]);this._updateExternal();},_updateExternal:function(){if(Object.isFunction(this.updateelement)){this.updateelement(this.currentdate);}else{var updateElement=$(this.updateelement);updateElement[updateElement.tagName=='INPUT'?'setValue':'update'](this.currentdate.format(this.options.updateformat));}},_buildHead:function(){var cal_wrapper=new Element(this.table?'tbody':'div');cal_wrapper.addClassName("cal_wrapper");var weekbox=new Element(this.table?'tr':'div');weekbox.addClassName("weekboxname");weekbox.addClassName("weekbox");Date.prototype.daynames.sortBy(function(s,i){i-=this.options.weekdaystart;if(i<0){i+=7;}
return i;}.bind(this)).each(function(day,i){var cell=new Element(this.table?'td':'div');cell.addClassName('cal_day_name_'+i);cell.addClassName('daybox').addClassName('dayboxname');cell.update(day.substr(0,this.options.dayheadlength));if(i==6){cell.addClassName('endweek');}
weekbox.insert(cell);}.bind(this));return cal_wrapper.insert(weekbox);},_buildWrapper:function(){var firstdaycal=new Date(this.firstofmonth.getFullYear(),this.firstofmonth.getMonth(),this.firstofmonth.getDate());var lastdaycal=new Date(this.lastofmonth.getFullYear(),this.lastofmonth.getMonth(),this.lastofmonth.getDate());if(this.options.weekdaystart-firstdaycal.getDay()<firstdaycal.getDate()){firstdaycal.setDate(firstdaycal.getDate()-firstdaycal.getDay()+this.options.weekdaystart);}else{firstdaycal.setDate(firstdaycal.getDate()-(firstdaycal.getDay()+7-this.options.weekdaystart));}
var dateRange=$A($R(firstdaycal,lastdaycal));var cal_weeks_wrapper=this.table?[]:new Element('div',{'class':'calweekswrapper'});var wk;var row;var lastday;this.dateRange=[];this.indicators=[];var buildWeek=function(day){row.insert(this._buildDay(wk,day));lastday=day;}.bind(this);dateRange.eachSlice(7,function(slice,i){wk=i;row=new Element(this.table?'tr':'div',{'class':'cal_week_'+wk}).addClassName('weekbox');while(slice.length<7){slice.push(slice.last().succ());}
slice.map(buildWeek);cal_weeks_wrapper[this.table?'push':'insert'](row);}.bind(this));if(!this.options.exactweeks){var toFinish=42-this.cells.size();var wkstoFinish=Math.ceil(toFinish/7);if(wkstoFinish>0){toFinish=toFinish/wkstoFinish;}
$R(1,wkstoFinish).each(function(w){wk+=1;row=new Element(this.table?'tr':'div',{'class':'cal_week_'+wk}).addClassName('weekbox');$R(1,toFinish).each(function(i){var d=lastday.succ();row.insert(this._buildDay(wk,d));cal_weeks_wrapper[this.table?'push':'insert'](row);lastday=d;}.bind(this));}.bind(this));}
return cal_weeks_wrapper;},_compareDates:function(date1,date2,type){return(this.indicators.indexOf(type)>=0)?false:Object.isUndefined(['getMonth','getDate','getFullYear'].find(function(n){return date1[n]()!=date2[n]();}));},_buildDay:function(week,day){this.dateRange.push(day);var cellid='cal_day_'+week+'_'+day.getDay();var cell=new Element(this.table?'td':'div',{'class':cellid});var celldate=new Element('div',{'class':cellid+'_date'}).addClassName('dayboxdate').update(this.options.daypadding?((day.getDate()).toPaddedString(2)):day.getDate());var cellvalue=new Element('div',{'class':cellid+'_value'}).addClassName('dayboxvalue');if(this.options.planner){this._updatePlanner(day,cellvalue);}
cell.insert(celldate).insert(cellvalue).addClassName('daybox').addClassName('daybox'+day.format('dddd').toLowerCase());if(this._compareDates(day,this.currentdate,'dayselected')){cell.addClassName('dayselected');this.indicators.push('dayselected');}
if(this._compareDates(day,new Date(),'today')){cell.addClassName('today');this.indicators.push('today');}
if(day.getDay()==6){cell.addClassName('endweek');}
var cs=day.getMonth()!=this.currentdate.getMonth()?['dayoutmonth','dayinmonth']:['dayinmonth','dayoutmonth'];cell.addClassName(cs[0]);if(cell.hasClassName(cs[1])){cell.removeClassName(cs[1]);}
this.cells.push(cell);cell.bound_click=this._click.bindAsEventListener(this,this.cells.size()-1);return cell.observe('click',cell.bound_click);},_updateTitles:function(){var yr=this.currentdate.getFullYear();var mnth=this.currentdate.getMonth();var titles={calprevmonth:Date.prototype.monthnames[(mnth-1)==-1?11:mnth-1],calprevyear:yr-1,calnextyear:yr+1,calnextmonth:Date.prototype.monthnames[(mnth+1)==12?0:mnth+1]};this.controls.select('.calcontrol').each(function(ctrl){var title=titles[ctrl.className.split(' ')[0]];if(!Object.isUndefined(title)){ctrl.setAttribute('title',title);}});},_buildControls:function(){var hParts=[{p:'calclose',u:this.options.closebutton,f:this.toggleCalendar.bindAsEventListener(this)},{p:'calprevmonth',u:this.options.prevbutton,f:this._switchCal.bindAsEventListener(this,'monthdown')},{p:'calprevyear',u:this.options.yearprev,f:this._switchCal.bindAsEventListener(this,'yeardown')},{p:'calnextyear',u:this.options.yearnext,f:this._switchCal.bindAsEventListener(this,'yearup')},{p:'calnextmonth',u:this.options.nextbutton,f:this._switchCal.bindAsEventListener(this,'monthup')},{p:'caltitle',u:this.currentdate.format(this.options.titleformat),f:this._switchCal.bindAsEventListener(this,'init')}];if(this.table){hParts=[hParts[1],hParts[2],hParts[5],hParts[3],hParts[4],hParts[0]];}
var cal_header=new Element(this.table?'tr':'div');cal_header.addClassName('calheader');hParts.each(function(part){var el=new Element(this.table?'td':'div');el.addClassName(part.p);if(part.p=='caltitle'){this.title=el;if(this.table){el.writeAttribute({colspan:2});}
el.update(part.u);}else{el.addClassName('calcontrol');el[typeof(part.u)=='object'?'insert':'update'](part.u);}
el.bound_click=part.f;el.observe('click',el.bound_click);cal_header.insert(el);}.bind(this));return cal_header;},_switchCal:function(){if(arguments[1]){var event=arguments[0];var direction=arguments[1];event.date=this.currentdate;}else{var direction=arguments[0];}
var params={f:'setTime',p:this.initDate.getTime()};var sday=this.currentdate.getDate();if(direction!='init'){var d=this.currentdate[direction.include('month')?'getMonth':'getFullYear']();params={f:direction.include('month')?'setMonth':'setYear',p:direction.include('up')?d+1:d-1};}
this.currentdate[params.f](params.p);if(this.currentdate.getDate()!=sday){this.currentdate.setDate(0);}
if(arguments[1]){this.options.oncalchange(event);}
this._update();},_update:function(){this._setCurrentDate(arguments[0]?arguments[0]:this.currentdate);this.title.update(this.currentdate.format(this.options.titleformat));this._buildCal();this._updateTitles();},_setCurrentDate:function(date){this.currentdate=new Date(date.getFullYear(),date.getMonth(),date.getDate());this.firstofmonth=this.currentdate.firstofmonth();this.lastofmonth=this.currentdate.lastofmonth();},_getCellIndexByDate:function(d){var findDate=d.getTime();var cellIndex=0;this.dateRange.each(function(dt,i){if(dt.getTime()==findDate){cellIndex=i;throw $break;}});return cellIndex;},destroy:function(){this._emptyCells();if(this.table){this.table.remove();}else{this.cal_weeks_wrapper.remove();}
this._stopObservingControls();[this.cal_wrapper,this.controls].invoke('remove');},_stopObservingControls:function(){this.controls.descendants().each(function(el){if(el.bound_click){el.stopObserving('click',el.bound_click);el.bound_click=null;}});},setCurrentDate:function(direction){this[(direction instanceof Date)?'_update':'_switchCal'](direction);if(!arguments[1]){this._updateExternal();}
return this.currentdate;},toggleCalendar:function(){this.options[this.element.visible()?'closeeffect':'openeffect'](this.element);},getElementByDate:function(d){return this.cells[this._getCellIndexByDate(d)];},getElementsByWeek:function(week){return this.element.select('.weekbox:nth-of-type('+(week+1)+') .daybox:not(.dayboxname)');},getSelectedElement:function(){return this.element.select('.dayselected')[0];},getTodaysElement:function(){return this.element.select('.today')[0];},getDateByElement:function(element){return this.dateRange[this.cells.indexOf(element)];},_setupPlanner:Prototype.emptyFunction,_updatePlanner:Prototype.emptyFunction,openCalendar:function(){if(!this.isOpen()){this.toggleCalendar();}},closeCalendar:function(){if(this.isOpen()){this.toggleCalendar();}},isOpen:function(){return this.element.visible();}};if(!maxkir.TaskData){maxkir.TaskData={}}
maxkir.Due={DAY:24*3600*1000,dues:{},set_due:function(task_id,checklist_id,date_representation){if(maxkir.read_only)return;this._set_due(task_id,checklist_id,date_representation);},install_dialog:function(task_id){if(maxkir.read_only)return;var el=$('dd'+task_id);if(!el)return;el.observe("click",maxkir.Due.toggle_due_dialog);},uninstall_dialog:function(task_id){if(maxkir.read_only)return;var el=$('dd'+task_id);if(!el)return;el.stopObserving("click",maxkir.Due.toggle_due_dialog);},toggle_due_dialog:function(e){var element=Event.element(e);var task_id=element.id.substr(2);maxkir.widget.DuePopup.toggle(element,{task_id:task_id,checklist_id:element.getAttribute('list_id')});},format_due:function(task_due){if(task_due=="ASAP"){return"asap";}
return new Date(task_due).cl_format_date(true,true);},_set_due:function(task_id,checklist_id,due_date){if(due_date&&due_date.setUTCFullYear){due_date.setUTCFullYear(due_date.getFullYear(),due_date.getMonth(),due_date.getDate())
due_date=due_date.toUTCString();}
new maxkir.AjaxCommand("/checklists/"+checklist_id+"/tasks/"+task_id+"/set_due_date.js",{parameters:"due="+(due_date?encodeURIComponent(due_date):""),onSuccess:function(){if(maxkir.Notifications){maxkir.Notifications.enable();}},onComplete:function(){maxkir.Due.dues[task_id]=maxkir.TaskData[task_id].due;try{maxkir.Task.updateTask(task_id);}
catch(e){}
try{maxkir.ajax_reload_due_content();}
catch(e){}}})}};maxkir.widget.DuePopup={};Object.extend(maxkir.widget.DuePopup,maxkir.widget.TogglePopup);Object.extend(maxkir.widget.DuePopup,{popup_width:300,refresh:function(win){var tmpl=new Template($('_dueDivTemplate').innerHTML);var task_id=this.options.task_id;var curr_due=maxkir.Due.dues[task_id]||"";try{curr_due=maxkir.Task.data(task_id).due;}
catch(e){}
win.setHTMLContent(tmpl.evaluate({task_id:task_id,checklist_id:this.options.checklist_id,curr_due:curr_due}));var calendar_options={updateformat:"yyyy/mm/dd",closebutton:"",exactweeks:true};if(curr_due&&curr_due!="ASAP"){var d=new Date(curr_due);calendar_options.month=d.getMonth()+1;calendar_options.year=d.getFullYear();calendar_options.day=d.getDate();}
var value_updater=function(new_date,no_submit){if(new_date){$('cal_input_'+task_id).value=maxkir.Due.format_due(new_date);}
else{$('clearDue_'+task_id).hide();this.fix_height(win);}
if(!no_submit){this.submit_form($('cal_input_'+task_id).form);}}.bind(this);calendar_options.oncalchange=function(){setTimeout(function(){this.fix_height(win);}.bind(this),10);}.bind(this);var scal1=new scal('cal_'+task_id,value_updater,calendar_options);maxkir.run_before(win,"close",function(){scal1.destroy();});setTimeout(function(){value_updater(curr_due,true);$('cal_input_'+task_id).activate();},50);},fix_height:function(win){win.setSize(win.width,win.content.scrollHeight-40,false);win.updateHeight();},submit_form:function(form){maxkir.Due.set_due(this.options.task_id,this.options.checklist_id,form.due.value);this.hide_popup();}});maxkir.cmd={};maxkir.cmd.is_popup=function(popupClassName){var popup=maxkir.widget.Popups.singlePopup();if(!popup)return false;return popup.getContent().down().hasClassName(popupClassName);};maxkir.cmd.close_all_popups=function(){maxkir.widget.Popups.hideAll();};maxkir.cmd.has_focused_filter=function(){return maxkir.FindFilter&&maxkir.FindFilter.is_focused();};maxkir.cmd.has_editor=function(){return maxkir.EditTracker&&maxkir.EditTracker.is_editing();};maxkir.cmd.popup_visible=function(){return maxkir.widget.Popups&&maxkir.widget.Popups.popupCount()>0;};maxkir.cmd.can_run=function(write_operation,allow_actions_popup){if(write_operation&&maxkir.read_only)return false;if(maxkir.cmd.has_editor())return false;if(maxkir.cmd.has_focused_filter())return false;if(maxkir.cmd.popup_visible()){return allow_actions_popup&&maxkir.cmd.is_popup("actionsPopupData");}
return true;};maxkir.cmd.task_id=function(){var id=maxkir.Task.selected_task_id();return id>0?id:false;};maxkir.cmd.task_id_to_write=function(){return maxkir.cmd.check_and_get_task_id(true,false,false);};maxkir.cmd.isDivider=function(task_id){if(maxkir.Task.isDivider(task_id)){new maxkir.widget.Message("The operation is not applicable for list separators");return true;}
return false;};maxkir.cmd.check_and_get_task_id=function(write_operation,ask_for_task,allow_actions_popup){if(!maxkir.cmd.can_run(write_operation,allow_actions_popup))return null;var task_id=maxkir.cmd.task_id();if(!task_id){if(ask_for_task){new maxkir.widget.Message("Please select a task first");}
return null;}
maxkir.cmd.close_all_popups();return task_id;};maxkir.cmd.undo=function(){if(maxkir.cmd.can_run(true,false)){maxkir.Undo.runUndo();}};maxkir.cmd.view_actions=function(element){if(maxkir.read_only)return;if(!element){var task_id=maxkir.cmd.task_id();if(maxkir.cmd.isDivider(task_id))return;element=task_id?$('tsk'+task_id):$('actionsLinkToolbar');}
maxkir.widget.ActionsPopup.toggle_popup(element);};maxkir.cmd.view_sort=function(){if(maxkir.read_only)return;maxkir.widget.SortPopup.toggle_popup($('sortLink'));};maxkir.cmd.sort_by=function(what){if(maxkir.read_only)return;maxkir.checklist.sort_by(what);maxkir.widget.SortPopup.hide_popup();};maxkir.cmd.find_filter=function(){maxkir.FindFilter.show("#");};maxkir.cmd.reset_filter=function(){maxkir.FindFilter.hide();};maxkir.cmd.set_tags=function(tags_line){var task_id=maxkir.cmd.check_and_get_task_id(true,true,true);if(!task_id)return;if(maxkir.cmd.isDivider(task_id))return;maxkir.Tags.set_tags(maxkir.checklist_id,task_id,tags_line);};maxkir.cmd.view_tags=function(tag_name,element){if(maxkir.read_only)return;var task_id=element?maxkir.cmd.task_id():maxkir.cmd.check_and_get_task_id(true,true,true);if(!task_id)return;if(maxkir.cmd.isDivider(task_id))return;var el=element||$('task_'+task_id).down(".coreDiv").down(".tag")||$('tsk'+task_id);maxkir.widget.TTagsPopup.show_popup(el,{tag:tag_name});};maxkir.cmd.add_task=function(add_before_selected){if(!maxkir.cmd.can_run(true,true))return;maxkir.cmd.close_all_popups();var task_id=maxkir.cmd.task_id();if(!task_id){maxkir.add_task.show_add(0,0);}
else if(add_before_selected){var sel=maxkir.tree_nav.get_selection();var parentNode=maxkir.tree_model.getParent(sel);var prevTask=maxkir.tree_nav.getPrev(sel,false);var parent_id=($(parentNode)&&parentNode!=maxkir.tree_model.getRoot())?maxkir.Task.id(parentNode):0;maxkir.add_task.show_add(parent_id,(sel==prevTask||sel==maxkir.tree_model.getFirstNode())?0:maxkir.Task.id(prevTask));}
else{var sel=maxkir.tree_nav.get_selection();var parentNode=maxkir.tree_model.getParent(sel);var parent_id=($(parentNode)&&parentNode!=maxkir.tree_model.getRoot())?maxkir.Task.id(parentNode):0;maxkir.add_task.show_add(parent_id,task_id);}};maxkir.cmd.add_subtask=function(){var task_id=maxkir.cmd.check_and_get_task_id(true,false,true);if(!task_id)return;if(maxkir.Task.isDivider(task_id)){maxkir.cmd.add_task();}
else{maxkir.add_task.change_parent(task_id);}};maxkir.cmd.complete_reopen_task=function(){var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;if(!maxkir.tree_model.isLeaf('task_'+task_id)&&maxkir.checklist.NodeToggle.isCollapsed('task_'+task_id)){maxkir.checklist.NodeToggle.expand(task_id);return;}
var newStatus=$('tsk'+task_id).hasClassName('task_closed')||$('tsk'+task_id).hasClassName('task_invalidated')?"reopen":"close";maxkir.Task.set_task_status(maxkir.checklist_id,task_id,newStatus);};maxkir.cmd.invalidate_task=function(){var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;maxkir.Task.set_task_status(maxkir.checklist_id,task_id,"invalidate");};maxkir.cmd.edit_task=function(){var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;maxkir.checklist.edit_task(task_id);};maxkir.cmd.visit_first_link=function(){var task_id=maxkir.cmd.check_and_get_task_id(false,false,true);if(!task_id)return;var el=$('tsk'+task_id);if(!el)return;var nodes=el.getElementsByTagName("A");if(nodes&&nodes.length>0&&nodes[0].href.length>1){maxkir.click_link(nodes[0],true);}};maxkir.cmd.delete_task=function(){var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;maxkir.checklist.delete_task(maxkir.checklist_id,task_id);};maxkir.cmd.view_add_note=function(){var task_id=maxkir.cmd.check_and_get_task_id(false,true,true);if(!task_id){return;}
if(maxkir.cmd.isDivider(task_id))return;maxkir.Comments.show_add(task_id);};maxkir.cmd.view_add_due=function(){var task_id=maxkir.cmd.check_and_get_task_id(true,true,true);if(!task_id){return;}
if(maxkir.cmd.isDivider(task_id))return;var el=$('dd'+task_id);if(!el)el=$('tsk'+task_id);maxkir.widget.DuePopup.toggle(el,{task_id:task_id,checklist_id:maxkir.checklist_id});};maxkir.cmd.set_due=function(due){var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;if(maxkir.cmd.isDivider(task_id))return;maxkir.Due.set_due(task_id,maxkir.checklist_id,due);};maxkir.cmd.extract_checklist=function(){var task_id=maxkir.cmd.check_and_get_task_id(false,true,true);if(!task_id)return;if(maxkir.cmd.isDivider(task_id))return;if(!maxkir.Task.renderer(task_id).hasSubtasks()){new maxkir.widget.Message("Please select a task with subtasks first");return;}
maxkir.CopyPaste.extract_checklist(task_id);};maxkir.cmd.move_left=function(){if(maxkir.add_task.is_adding()){var parent_id=$F('task_parent_id');if(parent_id<=0)return;var new_anchor_id=parent_id;var p=maxkir.tree_model.getParent('task_'+parent_id);var new_parent_id=p==null?0:maxkir.Task.id(p);maxkir.add_task.change_parent(new_parent_id,new_anchor_id);return;}
var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;var li=$('task_'+task_id);var parent=maxkir.tree_model.getParent(li);if(parent==null||parent==maxkir.tree_model.getRoot())return;Element.cleanWhitespace($(parent).parentNode);Element.remove(li);if($(parent).nextSibling){$(parent).parentNode.insertBefore(li,$(parent).nextSibling);}
else{$(parent).parentNode.appendChild(li);}
maxkir.checklist.Dnd.updateStructure();};maxkir.cmd.move_right=function(){if(maxkir.add_task.is_adding()){var anchor_id=maxkir.add_task.insert_after;var new_parent_id=anchor_id;if(new_parent_id<=0)return;var chld=maxkir.tree_model.getNodes('task_'+anchor_id,true);var new_anchor_id=chld.length==0?0:maxkir.Task.id(chld[chld.length-1]);maxkir.add_task.change_parent(new_parent_id,new_anchor_id);return;}
var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;var li=$('task_'+task_id);if(!li)return;if(maxkir.tree_nav.is_first_node('task_'+task_id)){return;}
var prev=maxkir.tree_nav.getPrev('task_'+task_id);var newParentId=maxkir.Task.id(prev);if($('parentTask_'+newParentId)&&newParentId!=task_id){Element.remove(li);$('parentTask_'+newParentId).appendChild(li);maxkir.checklist.NodeToggle.expand(newParentId);maxkir.checklist.Dnd.updateStructure();}};maxkir.cmd.move_up=function(){maxkir.cmd.move(function(li){if(li.id==maxkir.tree_model.getFirstNode())return null;return $(maxkir.tree_nav.getPrev(li.id,false));});};maxkir.cmd.move_top=function(){maxkir.cmd.move(function(li){if(li.id==maxkir.tree_model.getFirstNode())return null;return $(maxkir.tree_model.getFirstNode());});};maxkir.cmd.move_down=function(){maxkir.cmd.move(function(li){var next=$(maxkir.tree_nav.getNext(li.id,false));if(next.id==maxkir.tree_model.getFirstNode())return null;return next;},true);};maxkir.cmd.move_bottom=function(){maxkir.cmd.move(function(li){var root=maxkir.tree_model.getRoot();var nodes=maxkir.tree_model.getNodes(root,false);return nodes.length>0?$(nodes[nodes.length-1]):null;},true);};maxkir.cmd.move=function(anchor_producer,insert_after_anchor){var task_id=maxkir.cmd.task_id_to_write();if(!task_id)return;var li=$('task_'+task_id);if(!li)return;var anchor=anchor_producer(li);if(!anchor||anchor.id==li.id)return;li.remove();anchor.insert(insert_after_anchor?{after:li}:{before:li});maxkir.tree_nav.fix_scrolling();maxkir.checklist.Dnd.updateStructure();};maxkir.cmd.paint_color=function(idx,fg_or_bg){var task_id=maxkir.cmd.is_popup("colorPopupData")?maxkir.cmd.task_id():maxkir.cmd.task_id_to_write();if(!task_id)return;if(maxkir.cmd.isDivider(task_id))return;if(fg_or_bg=="fg"){maxkir.checklist.Colorer.use_foreground(true);}
if(fg_or_bg=="bg"){maxkir.checklist.Colorer.use_foreground(false);}
maxkir.checklist.Colorer.paint_by_index(task_id,idx);};maxkir.cmd.toggle_hide_completed=function(){maxkir.checklist.HideCompleted.toggle();if($('hide_completed')){$('hide_completed').checked=maxkir.checklist.HideCompleted.is_hide();}};maxkir.cmd.edit_title=function(){if(maxkir.read_only)return;if(maxkir.checklist.name_editor){maxkir.checklist.name_editor.enterEditMode();}};maxkir.checklist.installKeyboard=function(){var kbd={};kbd.no_popups=function(){return!maxkir.cmd.popup_visible();};kbd.no_popup_but_actions=function(){return kbd.no_popups()||maxkir.cmd.is_popup("actionsPopupData");};kbd.no_focused_filter=function(){return!maxkir.cmd.has_focused_filter();};kbd.no_editing=function(){return!maxkir.EditTracker.is_editing();};maxkir.kbd.addShortcut("ctrl+enter",function(e){if(kbd.no_popup_but_actions())return;var t=Event.element(e).tagName;if(t=='INPUT'||t=='TEXTAREA'){var f=Event.element(e).form;if(!f.onsubmit||f.onsubmit()){f.submit();}
Event.stop(e);}},true);kbd.no_popup_but_color_or_actions=function(){return kbd.no_popup_but_actions()||maxkir.cmd.is_popup("colorPopupData");};maxkir.kbd.forCondition(kbd.no_popup_but_color_or_actions).forCondition(kbd.no_editing).forCondition(kbd.no_focused_filter).forCondition(maxkir.cmd.task_id).addShortcut("0|num_0",function(e,task_id){maxkir.cmd.paint_color(0);}).addShortcut("1|num_1",function(e,task_id){maxkir.cmd.paint_color(1,"fg");}).addShortcut("2|num_2",function(e,task_id){maxkir.cmd.paint_color(2,"fg");}).addShortcut("3|num_3",function(e,task_id){maxkir.cmd.paint_color(3,"fg");}).addShortcut("shift+1|shift+num_1",function(e,task_id){maxkir.cmd.paint_color(1,"bg");}).addShortcut("shift+2|shift+num_2",function(e,task_id){maxkir.cmd.paint_color(2,"bg");}).addShortcut("shift+3|shift+num_3",function(e,task_id){maxkir.cmd.paint_color(3,"bg");});var noPopupButActions=maxkir.kbd.forCondition(kbd.no_popup_but_actions);var noPopups=maxkir.kbd.forCondition(kbd.no_popups);noPopups.addShortcut("esc",function(e){if(maxkir.CommandProcessor.queue.length>0&&!maxkir.EditTracker.is_editing()){Event.stop(e);}},true).addShortcut("tab",function(e){var cleaner=function(){if(this._interval){clearInterval(this._interval);delete this._interval;}}.bind(this);if(maxkir.add_task.is_adding()&&!maxkir.cmd.task_id()){cleaner();this._interval=setInterval(function(){if(maxkir.add_task.is_adding()){if(maxkir.cmd.task_id()){cleaner();maxkir.cmd.move_right();}}
else{cleaner();}}.bind(this),250);Event.stop(e);}},true);noPopups.forCondition(maxkir.add_task.is_adding).forCondition(maxkir.cmd.task_id).addShortcut("tab",function(e,task_id){maxkir.cmd.move_right();}).addShortcut("shift+tab",function(e,task_id){maxkir.cmd.move_left();}).addShortcut("up|down|delete|enter",function(e,task_id){var val=$('task_content').value;if(val.blank()){maxkir.add_task.hide_add();Event.stop(e);}},true);var canNavigateTree=noPopupButActions.forCondition(kbd.no_editing).forCondition(kbd.no_focused_filter);canNavigateTree.addShortcut("u u|ctrl+z|meta+z|u n d o",function(){maxkir.cmd.undo();}).addShortcut("ctrl+x|meta+x",function(){maxkir.CopyPaste.copymove("move");},true).addShortcut("ctrl+v|meta+v",function(){maxkir.CopyPaste.paste();},true).addShortcut("ctrl+d|meta+d",function(e){maxkir.CopyPaste.duplicate();Event.stop(e);},false).addShortcut("enter",function(e){maxkir.cmd.add_task();if(maxkir.add_task.is_adding()){Event.stop(e);}},true).addShortcut("alt+enter",function(){maxkir.cmd.add_task(true);},true).addShortcut("down|j",function(){if(!maxkir.cmd.task_id())setTimeout(maxkir.checklist.key_down,10);},true).addShortcut("up|k",function(){if(!maxkir.cmd.task_id())setTimeout(maxkir.checklist.key_up,10);},true).addShortcut("a a",function(){maxkir.cmd.view_actions();},true).addShortcut("s s",function(){maxkir.cmd.view_sort();},true).addShortcut("f f",function(){setTimeout(maxkir.cmd.find_filter,20);}).addShortcut("r f|c f",function(e,task_id){maxkir.cmd.reset_filter();});var withTask=canNavigateTree.forCondition(maxkir.cmd.task_id);withTask.addShortcut("ctrl+c|meta+c",function(){maxkir.CopyPaste.copymove("copy");},true).addShortcut("f2|e e",function(e,task_id){maxkir.cmd.edit_task();}).addShortcut("n n|n o t e",function(e,task_id){maxkir.cmd.view_add_note();}).addShortcut("x x",function(e,task_id){maxkir.cmd.extract_checklist();}).addShortcut("t t",function(e,task_id){maxkir.cmd.view_tags();}).addShortcut("d d",function(e,task_id){maxkir.cmd.view_add_due();}).addShortcut("enter",function(e,task_id){maxkir.cmd.add_task();}).addShortcut("alt+enter",function(e,task_id){maxkir.cmd.add_task(true);}).addShortcut("shift+enter",function(e,task_id){maxkir.cmd.add_subtask();}).addShortcut("esc",function(e,task_id){if(e.type.toLowerCase()!='keydown')return;if(maxkir.Comments[task_id]&&maxkir.Comments[task_id].is_visible()){maxkir.Comments[task_id].hideComments();}
else{maxkir.tree_nav.set_selection("none");}
Event.stop(e);},true);maxkir.TreeTaskCommandsInstall(canNavigateTree,Object.extend(maxkir.TreeCommandInterface,{on_gg:function(){maxkir.cmd.visit_first_link();},on_ct:function(){maxkir.cmd.set_tags("");},on_cd:function(){maxkir.cmd.set_due(null);},on_td:function(){maxkir.cmd.set_due("today");},on_tm:function(){maxkir.cmd.set_due("tomorrow");},on_as:function(){maxkir.cmd.set_due("asap");},_f:null}));var withSelectedTask=withTask.forCondition(kbd.no_popups);withSelectedTask.addShortcut("insert",function(e,task_id){if(maxkir.read_only)return;maxkir.add_task.show_add(task_id,0);}).addShortcut("shift+backspace|delete",function(e){maxkir.cmd.delete_task();}).addShortcut("ctrl+left|shift+tab",function(e,task_id){maxkir.cmd.move_left();}).addShortcut("ctrl+right|tab",function(e,task_id){maxkir.cmd.move_right();}).addShortcut("ctrl+up|ctrl+shift+up",function(e,task_id){maxkir.cmd.move_up();}).addShortcut("ctrl+down|ctrl+shift+down",function(e,task_id){maxkir.cmd.move_down();}).addShortcut("ctrl+home",function(e,task_id){maxkir.cmd.move_top();}).addShortcut("ctrl+end",function(e,task_id){maxkir.cmd.move_bottom();});maxkir.TreeKbdNavigationInstall(withSelectedTask,Object.extend({key_down:maxkir.checklist.key_down,key_up:maxkir.checklist.key_up,key_left:maxkir.checklist.key_left,key_right:maxkir.checklist.key_right,on_space:maxkir.cmd.complete_reopen_task,on_shift_space:maxkir.cmd.invalidate_task,f_:null},maxkir.checklist.NodeToggle));};maxkir.checklist.key_down=function(selectedNode){if(window.curr_message){window.curr_message.hide();}
maxkir.tree_nav.key_down(selectedNode);};maxkir.checklist.key_up=function(selectedNode){if(window.curr_message){window.curr_message.hide();}
maxkir.tree_nav.key_up(selectedNode);};maxkir.checklist.key_left=function(selectedNode){var task_id=maxkir.Task.id(selectedNode);var comments=maxkir.Comments[task_id];if(comments.comments_count()>0&&comments.is_visible()){comments.hideComments();return;}
if(maxkir.tree_model.isLeaf(selectedNode)||maxkir.checklist.NodeToggle.isCollapsed('task_'+task_id)){var parent=maxkir.tree_model.getParent(selectedNode);if(parent&&parent!="parentTask_0"){maxkir.tree_nav.set_selection(parent);}}
else{maxkir.checklist.NodeToggle.collapse(task_id);}};maxkir.checklist.key_right=function(selectedNode){var task_id=maxkir.Task.id(selectedNode);if(maxkir.tree_model.isLeaf(selectedNode)||!maxkir.checklist.NodeToggle.isCollapsed('task_'+task_id)){if(maxkir.Comments[task_id].comments_count()>0){maxkir.Comments[task_id].showComments();}
else{maxkir.checklist.key_down(selectedNode);}}
else{maxkir.checklist.NodeToggle.expand(task_id);}};Event.observe(window,'load',function(){maxkir.checklist.installKeyboard();});maxkir.update_timezone=function(){if(getCookie("cl_tz_updated")){return;}
setCookie("cl_tz_updated","true",0.5);new maxkir.AjaxRequest("/auth/profile.js",{parameters:"no_auth=true&user[tz_offset_min]="+maxkir.tz_offset_min(),method:"post"});};Event.observe(window,"load",maxkir.update_timezone);