
//-----------------------------------------------------------------------------------------------------------
// TREECONTEXTMENU
//-----------------------------------------------------------------------------------------------------------
function onContextMenuCreate(node,objContextMenu)
{
  try {
    // do we have the tree or node
    if(node == null) {
      // we have the tree
      objContextMenu.add(objContextMenu.createMenuItem(getString(1013),folderImageUrl,getString(1013),"NEWFOLDER"));
      objContextMenu.add(objContextMenu.createMenuItem(getString(1014),leafImageUrl,getString(1014),"NEWFILE"));
      if(ext3) {
        objContextMenu.add(objContextMenu.createMenuItem(getString(1101),imagePath + "wp1.gif",getString(1101),"NEWDOC"));
        objContextMenu.add(objContextMenu.createMenuItem(getString(1102),imagePath + "ss1.gif",getString(1102),"NEWXLS"));
      }
      objContextMenu.add(objContextMenu.createMenuItem(getString(1019),imagePath + "paste.gif",getString(1019),"PASTE"));
      
    } else {
  
      var multipleSelection = (node.tree.getSelectedNodes().length > 1 ? true: false);
      
      if(!multipleSelection && node.folder) {
        objContextMenu.add(objContextMenu.createMenuItem(getString(1013),folderImageUrl,getString(1013),"NEWFOLDER"));
        objContextMenu.add(objContextMenu.createMenuItem(getString(1014),leafImageUrl,getString(1014),"NEWFILE"));
        if(ext3) {
          objContextMenu.add(objContextMenu.createMenuItem(getString(1101),imagePath + "wp1.gif",getString(1101),"NEWDOC"));
          objContextMenu.add(objContextMenu.createMenuItem(getString(1102),imagePath + "ss1.gif",getString(1102),"NEWXLS"));
        }
        objContextMenu.add(objContextMenu.createMenuSeparator());
      }
      
      if(node.tag != "ROOT") {
        objContextMenu.add(objContextMenu.createMenuItem(getString(1017),imagePath + "cut.gif",getString(1017),"CUT"));
        objContextMenu.add(objContextMenu.createMenuItem(getString(1018),imagePath + "copy.gif",getString(1018),"COPY"));
        if(!multipleSelection &&node.folder)
          objContextMenu.add(objContextMenu.createMenuItem(getString(1019),imagePath + "paste.gif",getString(1019),"PASTE"));

        objContextMenu.add(objContextMenu.createMenuSeparator());
        if(!multipleSelection) {
          objContextMenu.add(objContextMenu.createMenuItem(getString(1015),imagePath + "rename.gif",getString(1015),"RENAME"));
          objContextMenu.add(objContextMenu.createMenuSeparator());
        }
        objContextMenu.add(objContextMenu.createMenuItem(getString(1016),imagePath + "remove.gif",getString(1016),"REMOVE"));

        if(!multipleSelection) {
          objContextMenu.add(objContextMenu.createMenuSeparator());
          objContextMenu.add(objContextMenu.createMenuItem(getString(1020),imagePath + "up.gif",getString(1020),"UP"));
          objContextMenu.add(objContextMenu.createMenuItem(getString(1021),imagePath + "down.gif",getString(1021),"DOWN"));
          objContextMenu.add(objContextMenu.createMenuItem(getString(1022),imagePath + "top.gif",getString(1022),"TOP"));
          objContextMenu.add(objContextMenu.createMenuItem(getString(1023),imagePath + "bottom.gif",getString(1023),"BOTTOM"));
        }
      }
    }
  } catch(e) {
    log("onContextMenuCreate",e,"");
  }

}

function onContextMenuClick(key)
{
  try {
    if(key == "NEWFILE") {
      treeNewFile(1);
    }
    if(key == "NEWDOC") {
      treeNewFile(2);
    }
    if(key == "NEWXLS") {
      treeNewFile(3);
    }

    if(key == "NEWFOLDER") {
      treeNewFolder(0);
    }

    if(key == "REMOVE") 
      treeRemove();
      
    if(key == "RENAME")
      treeRename();

    if(key == "CUT")
      treeCut();
      
    if(key == "COPY")
      treeCopy();

    if(key == "PASTE") {
      treePaste();
    }

    if (key == "UP")     treePosition(0); 
    if (key == "DOWN")   treePosition(1); 
    if (key == "TOP")    treePosition(2); 
    if (key == "BOTTOM") treePosition(3); 

  } catch(e) {
    log("onContextMenuClick",e,"");
  }
}

function treeNewFile(mode)
{
  try {
    var imgPath = leafImageUrl;
    if(ext3) {
      if(mode == 2)
        imgPath = imagePath + "wp1.gif";
      if(mode == 3)
        imgPath = imagePath + "ss1.gif";
    }
    
    if(tree.hasSelection()) {
      var newNode = tree.createNode(getString(1093),"__NEW__",imgPath,"",false);
      newNode.icon2 = webRoot + "application/images/red.png";
      var selectedNode = tree.getSelectedNodes()[0];
      selectedNode.addNew(newNode);
    } else {
      var newNode = tree.createNode(getString(1093),"__NEW__",imgPath,"",false);
      newNode.icon2 = webRoot + "application/images/red.png";
      tree.rootnode.addNew(newNode);
    }
  } catch(e) {
    log("treeNewFile",e,"");
  }
}

function treeNewFolder()
{
  try {
    if(tree.hasSelection()) {
      var selectedNode = tree.getSelectedNodes()[0];
      var newNode = tree.createNode(getString(1093),"__NEW__",folderImageUrl,"",true);
      newNode.icon2 = webRoot + "application/images/red.png";
      selectedNode.addNew(newNode);
    } else {
      var newNode = tree.createNode(getString(1093),"__NEW__",folderImageUrl,"",true);
      newNode.icon2 = webRoot + "application/images/red.png";
      tree.rootnode.addNew(newNode);
    }
  } catch(e) {
    log("treeNewFolder",e,"");
  }
}

function treeRemove()
{
  tree.remove();
}

function treeRename()
{
  try {
    if(tree.hasSelection()) {
      var selectedNode = tree.getSelectedNodes()[0];
      selectedNode.edit();
    }
  } catch(e) {
    log("treeRename",e,"");
  }
}

function treeCut()
{
  tree.cut();
}

function treeCopy()
{
  tree.copy();
}

function treePaste()
{
  try {
    if(tree.hasSelection()) {
      var selectedNode = tree.getSelectedNodes()[0];
      selectedNode.paste();
    } else {
      tree.rootnode.paste();
    }
  } catch(e) {
    log("treePaste",e,"");
  }
}

function treePosition(value)
{
  try {
    if(!tree.hasSelection())
      return;
      
    var selectedNode = tree.getSelectedNodes()[0];
      
    if(value == 0)
      selectedNode.moveUp();
    if(value == 1)
      selectedNode.moveDown();
    if(value == 2)
      selectedNode.moveTop();
    if(value == 3)
      selectedNode.moveBottom();
  } catch(e) {
    log("treePosition",e,"");
  }
}


function onBeforeNodeRemove(nodes)
{
  if(nodes.length > 1) {
    if(!confirm(getString(10005))) 
      return true;
  } else {
    if(nodes[0].folder) {
      if(!confirm(getString(10006))) 
        return true;
    } else {
      if(!confirm(getString(10007))) 
        return true;
    }
  }
}

function onBeforeNodeEdit(curNode,newText)
{
  if(newText == ""){
    alert(getString(10002));
    return true;
  } else {
    if(curNode.action != "CREATE") {
      if(ext3) {
        if(curNode.text.toLowerCase().indexOf(".doc") >= 0 && newText.toLowerCase().indexOf(".doc") < 0) {
          alert("Changing type is not allowed!");
          return true;
        } else if(curNode.text.toLowerCase().indexOf(".xls") >= 0 && newText.toLowerCase().indexOf(".xls") < 0) {
          alert("Changing type is not allowed!");
          return true;
        } else if(curNode.text.toLowerCase().indexOf(".doc") < 0 && newText.toLowerCase().indexOf(".doc") >= 0) {
          alert("Changing type is not allowed!");
          return true;
        } else if(curNode.text.toLowerCase().indexOf(".xls") < 0 && newText.toLowerCase().indexOf(".xls") >= 0) {
          alert("Changing type is not allowed!");
          return true;
        }
      }
    }
    return false;
  }
}

function onAfterNodeAdd(node)
{
  selectedNode = node;

  showContainer(1);
  
  //readAttributes(node);
  if(ext3 && node.text.toLowerCase().indexOf(".doc") > 0) {
    // Remote1
    showRemote(1);
    openContent(node);
  } else if(ext3 && node.text.toLowerCase().indexOf(".xls") > 0) {
    // Remote2
    showRemote(2);
    openContent(node);
  } else {
    readContent(node);
  }
}

function onNodeClick(node)
{
  try {
//    if(userMode == "1") {
//      if(objTabMain.getActiveTab() != 1) {
//        // set toc tab active
//        objTabMain.setActiveTab(1);
//        // call event
//        activateTab(objTabMain.getTabItemByIndex(1));
//      }        
    //    }

    if (useRibbon) {
      var button = ribbon.getElementByTagName("SAVE");
      if (button) {
        if (node.folder)
          button.setEnabled(false);
        else
          button.setEnabled(true);
      }
      try {
        ribbon.reset();
        ribbon.getElementByTagName("TOC").setActive();
      } catch(e2) {}
    }

    // read content
    // do we have an external file
    if(userMode == "0") {
      selectedNode = node;
      if(node.tag != "") {
        // we have an url
        document.getElementById("display").src = node.tag; 
        return;       
      } else {
        if(!node.folder) {
//          if(isSessionExpired()) {
//            sessionExpired();
//            return;
//          }
          document.getElementById("display").src = webRoot + "application/page.aspx?id=" + node.key + "&datalng=" + dataLanguage + "&r=" + Math.random();       
        }
        return;
      }
    } else {
      // author mode
      if(activeContainer == 1) {
        // check if document has changed
        if(editor.editHasChanged()) {
          if (confirm(getString(10021))) {
              // Now save document
            saveContent(true);
          }
            //editor.editSetFocus();
            //return true;
          //}
        }
      }
      // do we have an external url
      if(node.tag != "") {
        // show page
        showContainer(2, node.tag);
      } else if (node.folder) {
        // click a folder: display grey area without cursor
        showContainer(2, webRoot + "application/folder.html");
      } else if(ext3 && node.text.indexOf(".doc") > 0) {
        // Remote1
        showRemote(1);
      } else if(ext3 && node.text.indexOf(".xls") > 0) {
        // Remote2
        showRemote(2);
      } else {
        // set editor tab visible
        if(ext3) {
          objTabMain.getTabItemByIndex(2).setVisible(true);
          objTabMain.getTabItemByIndex(3).setVisible(false);
          objTabMain.setActiveTab(2);
          activateTab(objTabMain.getTabItemByIndex(2));
        }
        showContainer(1);
      }
      if(activeContainer == 1) {
        readContent(node);
      } else {
        if(ext3) {
          openContent(node);
        }          
        readAttributes(node);
      }
    }

    // set selected node here
    selectedNode = node;

    // set tree icons status
    try {
      var button = null;

      if (useRibbon) {
        if (node.folder) {
          // folder
          button = ribbon.getElementByTagName("TREE_NEW_FOLDER");
          button.setEnabled(true);
          button = ribbon.getElementByTagName("TREE_NEW_FILE");
          button.setEnabled(true);
          button = ribbon.getElementByTagName("TREE_PASTE");
          button.setEnabled(true);
        } else {
          // leaf
          var button = ribbon.getElementByTagName("TREE_NEW_FOLDER");
          button.setEnabled(false);
          button = ribbon.getElementByTagName("TREE_NEW_FILE");
          button.setEnabled(false);
          button = ribbon.getElementByTagName("TREE_PASTE");
          button.setEnabled(false);
        }
        button = ribbon.getElementByTagName("TREE_CUT");
        button.setEnabled(true);
        button = ribbon.getElementByTagName("TREE_COPY");
        button.setEnabled(true);
        button = ribbon.getElementByTagName("TREE_REMOVE");
        button.setEnabled(true);
        button = ribbon.getElementByTagName("TREE_RENAME");
        button.setEnabled(true);
        button = ribbon.getElementByTagName("TREE_UP");
        button.setEnabled(true);
        button = ribbon.getElementByTagName("TREE_DOWN");
        button.setEnabled(true);
        button = ribbon.getElementByTagName("TREE_TOP");
        button.setEnabled(true);
        button = ribbon.getElementByTagName("TREE_BOTTOM");
        button.setEnabled(true);

      } else {

        if (node.folder) {
          // folder
          if (toolbarsTOC != null) {
            button = toolbarsTOC.getElementByTag("NEW_FOLDER");
            button.setEnabled(true);
            button = toolbarsTOC.getElementByTag("NEW_FILE");
            button.setEnabled(true);
            button = toolbarsTOC.getElementByTag("PASTE");
            button.setEnabled(true);
          }
        } else {
          // leaf
          if (toolbarsTOC != null) {
            var button = toolbarsTOC.getElementByTag("NEW_FOLDER");
            button.setEnabled(false);
            button = toolbarsTOC.getElementByTag("NEW_FILE");
            button.setEnabled(false);
            button = toolbarsTOC.getElementByTag("PASTE");
            button.setEnabled(false);
          }
        }
        button = toolbarsTOC.getElementByTag("CUT");
        button.setEnabled(true);
        button = toolbarsTOC.getElementByTag("COPY");
        button.setEnabled(true);
        button = toolbarsTOC.getElementByTag("REMOVE");
        button.setEnabled(true);
        button = toolbarsTOC.getElementByTag("RENAME");
        button.setEnabled(true);
        button = toolbarsTOC.getElementByTag("UP");
        button.setEnabled(true);
        button = toolbarsTOC.getElementByTag("DOWN");
        button.setEnabled(true);
        button = toolbarsTOC.getElementByTag("TOP");
        button.setEnabled(true);
        button = toolbarsTOC.getElementByTag("BOTTOM");
        button.setEnabled(true);
      }
    } catch(error) {}
  } catch(e) {
    log("onNodeClick",e,"");
  }

  //document.getElementById("viewer").src = node.tag; 
/*
  if(node.expanded) {
    node.setIcon("folderopened.gif");
  } else {
    node.setIcon("folderclosed.gif");
  }
*/
}

function onNodeDeselect()
{

  if (useRibbon) {
    var button = ribbon.getElementByTagName("SAVE");
    if (button) {
      button.setEnabled(false);
    }
  }

  // check if document has changed
  if(editor.editHasChanged()) {
    if (confirm(getString(10021))) {
      // Now save document
      saveContent(true);
    } else {
      editor.editResetChanged();
    }
  }

  selectedNode = null;
  //clearEditWindow();
  showContainer(2, webRoot + "application/folder.html");
  propertyInit();

  if (useRibbon) {
    button = ribbon.getElementByTagName("TREE_NEW_FOLDER");
    button.setEnabled(true);
    button = ribbon.getElementByTagName("TREE_NEW_FILE");
    button.setEnabled(true);
    button = ribbon.getElementByTagName("TREE_PASTE");
    button.setEnabled(true);
    button = ribbon.getElementByTagName("TREE_CUT");
    button.setEnabled(false);
    button = ribbon.getElementByTagName("TREE_COPY");
    button.setEnabled(false);
    button = ribbon.getElementByTagName("TREE_REMOVE");
    button.setEnabled(false);
    button = ribbon.getElementByTagName("TREE_RENAME");
    button.setEnabled(false);
    button = ribbon.getElementByTagName("TREE_UP");
    button.setEnabled(false);
    button = ribbon.getElementByTagName("TREE_DOWN");
    button.setEnabled(false);
    button = ribbon.getElementByTagName("TREE_TOP");
    button.setEnabled(false);
    button = ribbon.getElementByTagName("TREE_BOTTOM");
    button.setEnabled(false);

    ribbon.reset();
    ribbon.getElementByTagName("TOC").setActive();

  } else {

    if (toolbarsTOC != null) {
      var button = toolbarsTOC.getElementByTag("NEW_FOLDER");
      button.setEnabled(true);
      button = toolbarsTOC.getElementByTag("NEW_FILE");
      button.setEnabled(true);
      button = toolbarsTOC.getElementByTag("PASTE");
      button.setEnabled(true);
      button = toolbarsTOC.getElementByTag("CUT");
      button.setEnabled(false);
      button = toolbarsTOC.getElementByTag("COPY");
      button.setEnabled(false);
      button = toolbarsTOC.getElementByTag("REMOVE");
      button.setEnabled(false);
      button = toolbarsTOC.getElementByTag("RENAME");
      button.setEnabled(false);
      button = toolbarsTOC.getElementByTag("UP");
      button.setEnabled(false);
      button = toolbarsTOC.getElementByTag("DOWN");
      button.setEnabled(false);
      button = toolbarsTOC.getElementByTag("TOP");
      button.setEnabled(false);
      button = toolbarsTOC.getElementByTag("BOTTOM");
      button.setEnabled(false);
      // set TOC active
      if (objTabMain.getActiveTab() != 1) {
        // set toc tab active
        objTabMain.setActiveTab(1);
        // call event
        activateTab(objTabMain.getTabItemByIndex(1));
      }
    }
  }
}

function onBeforeDrop(node)
{
  if(!confirm(getString(10004) + node.text + "' ?")) {
    return true;
  }
}

function onAfterInit(node)
{
  if(!node.folder && userMode == "0") {
    onNodeClick(node);
  }
  if (node.folder && userMode == "0") {
    showContainer(2, webRoot + "application/folder.html");
  }
}

function onPasteError()
{
  alert(getString(10034));
}

function onTreeError(message)
{
  if(message == "99") {
    // session expired
    sessionExpired();
  } else {
    alert(getString(10003) + message);
  }
}


