﻿
YAHOO.widget.TaskNode=function(oData,oParent,expanded,checked){if(oData){this.init(oData,oParent,expanded);this.setUpLabel(oData);this.setUpCheck(checked);}};YAHOO.extend(YAHOO.widget.TaskNode,YAHOO.widget.TextNode,{checked:false,checkState:0,taskNodeParentChange:function(){if(this.tree&&!this.tree.hasEvent("checkClick")){this.tree.createEvent("checkClick",this.tree);}},setUpCheck:function(checked){if(checked&&checked===true){this.check();}
this.taskNodeParentChange();this.subscribe("parentChange",this.taskNodeParentChange);},getCheckElId:function(){return"ygtvcheck"+this.index;},getCheckEl:function(){return document.getElementById(this.getCheckElId());},getCheckStyle:function(){return"ygtvcheck"+this.checkState;},getCheckLink:function(){return"YAHOO.widget.TreeView.getNode(\'"+this.tree.id+"\',"+
this.index+").checkClick()";},checkClick:function(){if(this.checkState===0){this.check();}else{this.uncheck();}
this.onCheckClick();this.tree.fireEvent("checkClick",this);},onCheckClick:function(){},updateParent:function(){var p=this.parent;if(!p||!p.updateParent){return;}
var somethingChecked=false;var somethingNotChecked=false;for(var i=0;i<p.children.length;++i){if(p.children[i].checked){somethingChecked=true;if(p.children[i].checkState==1){somethingNotChecked=true;}}else{somethingNotChecked=true;}}
if(somethingChecked){p.setCheckState((somethingNotChecked)?1:2);}else{p.setCheckState(0);}
p.updateCheckHtml();p.updateParent();},updateCheckHtml:function(){if(this.parent&&this.parent.childrenRendered){this.getCheckEl().className=this.getCheckStyle();}},setCheckState:function(state){this.checkState=state;this.checked=(state>0);},check:function(){this.setCheckState(2);for(var i=0;i<this.children.length;++i){this.children[i].check();}
this.updateCheckHtml();this.updateParent();},uncheck:function(){this.setCheckState(0);for(var i=0;i<this.children.length;++i){this.children[i].uncheck();}
this.updateCheckHtml();this.updateParent();},getNodeHtml:function(){var sb=new Array();sb[sb.length]='<table border="0" cellpadding="0" cellspacing="0">';sb[sb.length]='<tr>';for(var i=0;i<this.depth;++i){sb[sb.length]='<td class="'+this.getDepthStyle(i)+'">&#160;</td>';}
sb[sb.length]='<td';sb[sb.length]=' id="'+this.getToggleElId()+'"';sb[sb.length]=' class="'+this.getStyle()+'"';if(this.hasChildren(true)){sb[sb.length]=' onmouseover="this.className=';sb[sb.length]='YAHOO.widget.TreeView.getNode(\'';sb[sb.length]=this.tree.id+'\','+this.index+').getHoverStyle()"';sb[sb.length]=' onmouseout="this.className=';sb[sb.length]='YAHOO.widget.TreeView.getNode(\'';sb[sb.length]=this.tree.id+'\','+this.index+').getStyle()"';}
sb[sb.length]=' onclick="javascript:'+this.getToggleLink()+'">&#160;';sb[sb.length]='</td>';sb[sb.length]='<td';sb[sb.length]=' id="'+this.getCheckElId()+'"';sb[sb.length]=' class="'+this.getCheckStyle()+'"';sb[sb.length]=' onclick="javascript:'+this.getCheckLink()+'">';sb[sb.length]='&#160;</td>';sb[sb.length]='<td>';sb[sb.length]='<a';sb[sb.length]=' id="'+this.labelElId+'"';sb[sb.length]=' class="'+this.labelStyle+'"';sb[sb.length]=' href="'+this.href+'"';sb[sb.length]=' target="'+this.target+'"';if(this.hasChildren(true)){sb[sb.length]=' onmouseover="document.getElementById(\'';sb[sb.length]=this.getToggleElId()+'\').className=';sb[sb.length]='YAHOO.widget.TreeView.getNode(\'';sb[sb.length]=this.tree.id+'\','+this.index+').getHoverStyle()"';sb[sb.length]=' onmouseout="document.getElementById(\'';sb[sb.length]=this.getToggleElId()+'\').className=';sb[sb.length]='YAHOO.widget.TreeView.getNode(\'';sb[sb.length]=this.tree.id+'\','+this.index+').getStyle()"';}
sb[sb.length]=' >';sb[sb.length]=this.label;sb[sb.length]='</a>';sb[sb.length]='</td>';sb[sb.length]='</tr>';sb[sb.length]='</table>';return sb.join("");},toString:function(){return"TaskNode ("+this.index+") "+this.label;}});function onCheckClick(eventType,args,tree){var node=this;}
function showTreeState(){var out=[];for(var i in tree._nodes){var n=tree._nodes[i];if(n&&"undefined"!=typeof n.checkState){out.push(n.data+": "+n.checkState);}}
alert(out.join("\n"));}
function checkAll(){var topNodes=tree.getRoot().children;for(var i=0;i<=topNodes.length;++i){topNodes[i].check();}}
function uncheckAll(){var topNodes=tree.getRoot().children;for(var i=0;i<=topNodes.length;++i){topNodes[i].uncheck();}}
function showJSON(){alert(JSON.stringify(tree._nodes));}