     
      function windowSchoolEditor(loadMode){
        if (!canEdit)
          return false;

        var tree = new Ext.tree.TreePanel({                    
              useArrows:true,
              id: 'mainSchoolEditor',
              autoScroll:true,
              animate:true,
              region: 'center',
              enableDD:true,
              containerScroll: true,
              rootVisible: false,
              root: { nodeType: 'async'},
              dataUrl : '/ajax/siteconfig/schools/schoolNodes.cfm',
              contextMenu: new Ext.menu.Menu({
                items: {
                  id: 'mnu_item-edit_school',
                  text: 'Properties'
                },
                listeners: {
                  itemclick: function(item) {
                    var n = item.parentMenu.contextNode;
                    switch (item.id) {
                      case 'mnu_item-edit_school':
                        if (n.parentNode) {
                          if (n.attributes.school_id == currentSchool.school_id){
                            Ext.getCmp('siteConfigTabHolder').activate(0);
                          }else{
                            windowSchoolSettingsEditor(false,n.attributes.school_id, n);
                          }
                        }
                        break;
                    }
                  }
                }
              }),
              listeners: {             
                contextmenu: function(node, e) {
                  node.select();
                  var c = node.getOwnerTree().contextMenu;
                  c.contextNode = node;
                  c.showAt(e.getXY());
                  //c.findById('mnu_item-edit_school').setVisible(node.getUI().isChecked());
                },
                beforenodedrop: function(e){
                  if(e.dropNode.attributes.data_type=="header" && e.target.getDepth() > 1){
                    e.cancel=true;
                    return false;
                  }else if(e.dropNode.attributes.data_type=="header" && e.target.getDepth() == 1 && e.point=="append"){
                    e.cancel=true;
                    return false;
                  }else if(e.dropNode.attributes.data_type!="header" && e.target.getDepth() == 1 && e.point!="append"){
                    e.cancel=true;
                    return false;
                  }
                },
                checkchange: function(node, checked){
                  if(checked){
                    node.getUI().addClass('complete');
                  }else{
                    node.getUI().removeClass('complete');
                  }
                }
              }
          });
        var treeLeft = new Ext.Panel({
          border: false,
          margins: '5 0 0 0',
          region: 'center',
          layout: 'border',
          items: [
            {
              region: 'north', 
              margins:'0 0 -1 0',
              baseCls: 'siteConfigHeaderTab',
              cmargins:'3 3 3 3', 
              border: true, 
              html: '<strong>Current School Configuration</strong>'
            },tree]
        });
        var navInfo = 'Changes will be applied when you click \'Save\' below.';
        var treeHolder = new Ext.Panel({
          border: false,          
          layout: 'fit',
          bodyStyle: 'background: #DFE8F6',
          id: 'tabSchoolEditor',
          items: new Ext.Panel({
              border: false,          
              layout: 'border',
              items: [
                {
                  region: 'north',
                  border: true, 
                  html: '<div class="siteConfigInfo"><div class="siteConfigHeader">Organize your school list here.</div><div class="siteConfigText">'+navInfo+'</div></div>'
                },
                treeLeft]
            })
        });
        
        if (loadMode){
          treeHolder.title = 'Schools';
          return treeHolder;
        }
          
        var winSchoolEdit = new Ext.Window({
              width:500,
              height:550,
              title: 'School Editor',
              layout:'fit',
              closeAction:'close',
              modal:true,
              closable:false,
              border:false,
              maximizable:true,
              items: treeHolder,
              buttons: [{
                text: 'Save',
                handler: function(){
                  var tmpSerial = new Ext.tree.JsonTreeSerializer(tree, { nodeFilter: function(node) {
                      //node.Text = encodeURIComponent(node.Text);
                      // node.text = htmlentities(node.text);
                      //node.attributes.text = encodeURIComponent(node.attributes.text);
                      //node.attributes.linkName = encodeURIComponent(node.attributes.linkName);
                      //node.attributes.linkURL = encodeURIComponent(node.attributes.linkURL);
                      //node.attributes.linkTarget = encodeURIComponent(node.attributes.linkTarget);
                      return true;
                    }});
                  //alert(tmpSerial.toString());
                  new Ajax.Request('/ajax/navigation/updateSchools.cfm', {
                    postBody: 'schoolData=' + tmpSerial,
                    onSuccess: function(transport){
                      winSchoolEdit.close();
                      window.location.reload(true);
                      Ext.Msg.wait('Saving your school configuration. This may take a few seconds.', 'Please wait...');
                    }
                  });
                }
              },{ text: 'Cancel', handler: function(){ winSchoolEdit.close(); } }]
          });
        tree.getRootNode().expand(true);
        winSchoolEdit.show(this);
      }
      
reportingIn('schoolTab');