// JavaScript Document
var openImg = new Image();
openImg.src = "img/node/plus.gif";
var closedImg = new Image();
closedImg.src = "img/node/minus.gif";
timer = null;
var currentoBranchId;
var currentoBranchDocumentId;
var oTextbox;
var searchNodeId;

function showDocument(id,name,page){

  searchNodeId = id;
  npid = id;
 if(npid!=null && npid.indexOf('_')>-1){
       npid = npid.substring(npid.indexOf('_')+1);
 }
 el('top-details-nav').style.display='none';
 el('myware-documents-details-body').style.display='none';
 el('myware-documents-body').style.display='block';
 el('dmenu').style.display='block';
 
 //getMyWareFavoriteFolderDocuments
 NodeUpdateMonitor.getMyWareFavoriteResultString(npid,page,function(node) {
    htmlcode = '';
    if(node!=null){
      el('myware-documents-body').innerHTML=node[1];
    }
    if(el('A-'+searchNodeId)){
    eclassname = el('A-'+searchNodeId).className;
    if(!eclassname || eclassname.length==0)
      eclassname='aleaf';
    if(eclassname.indexOf('_focus_on')<0){
      removeBranchFocus();
      el('A-'+searchNodeId).className = eclassname+'_focus_on';
    }
    }
  });
}

function showNavtDocument(nav){
  alert(nav);
  /*if(!currentoBranchDocumentId){
    alert('WARNING: At list one folder should be selected from left side tree.');
  }
  did = -1;
  currentoBranch = getCurrentBranch();
  if(currentoBranch && currentoBranch!=null){
    switch(nav){
      case -2:
      if(currentoBranch.leaves.length>0 && currentoBranchDocumentId!=currentoBranch.leaves[0].link){
        currentoBranchDocumentId = currentoBranch.leaves[0].link;
        did = currentoBranchDocumentId;
      }
      break;
      
      case -1:
      for (var i=0; i < currentoBranch.leaves.length && did==-1; i++) { 
        if(currentoBranchDocumentId == -1){
          currentoBranchDocumentId = currentoBranch.leaves[i].link;
          did = currentoBranchDocumentId;
        }else{
           if(currentoBranch.leaves[i].link == currentoBranchDocumentId){
             if(i>0){
               currentoBranchDocumentId = currentoBranch.leaves[i-1].link;
               did = currentoBranchDocumentId;
             }else{
               did = -2;
             }
           }
        }
      }
      break;
      case 1:
      for (var i=0; i < currentoBranch.leaves.length && did==-1; i++) { 
        if(currentoBranchDocumentId == -1){
          currentoBranchDocumentId = currentoBranch.leaves[i].link;
          did = currentoBranchDocumentId;
        }else{
           if(currentoBranch.leaves[i].link == currentoBranchDocumentId){
             if(i+1<currentoBranch.leaves.length){
               currentoBranchDocumentId = currentoBranch.leaves[i+1].link;
               did = currentoBranchDocumentId;
             }else{
               did = -2;
             }
           }
        }
      }      
      break;
      case 2:
      if(currentoBranch.leaves.length>0 && currentoBranchDocumentId!=currentoBranch.leaves[currentoBranch.leaves.length-1].link){
        currentoBranchDocumentId = currentoBranch.leaves[currentoBranch.leaves.length-1].link;
        did = currentoBranchDocumentId;
      }
      break;      
    }
    if(did>-1){
     showDocument(did,'',1);
    }
  }*/
}


function getBranchByChildIdName(did,name){
  oBranches = null;
  if(oTextbox){
     oBranches = oTextbox.tree.branches;
     for (var i=0; i < oBranches.length; i++) {
      for (var j=0; oBranches[i].leaves && j < oBranches[i].leaves.length; j++){
        if(oBranches[i].leaves[j].link == did && oBranches[i].leaves[j].text == name){
          currentoBranchId = oBranches[i].id;
          return true;
        }
      }
     }
  }
  return oBranches;
}

function getCurrentBranch(){
  if(oTextbox){
    oBranches = oTextbox.tree.branches;
    nids ='';
    for (var i=0; i < oBranches.length; i++) {
      nids+=' '+oBranches[i].id; 
      if(oBranches[i].id == currentoBranchId){
        return oBranches[i];
      }
    }
  }
  return null;
}

function getBranchById(id,oBranches){
  myBranch = null; 
  if(oBranches){
    //oBranches = oTextbox.tree.branches;
    for (var i=0; myBranch==null && i < oBranches.length; i++){
      if(oBranches[i].id){
        if(oBranches[i].id == id){
          myBranch = oBranches[i];
        }else{
          myBranch = getBranchById(id,oBranches[i].leaves);
        }
      }
    }
    
  }
  return myBranch;
}

function setDocumentName(did){
  name = '';
  currentoBranch = getCurrentBranch();
  for (var i=0; i < currentoBranch.leaves.length && name.length == 0; i++) { 
    if(currentoBranch.leaves[i].link == did){
      name = currentoBranch.leaves[i].text;
    }
  }
  if(name.length>0){
    el('topmenupanelcontent').innerHTML = name;
  }
}

function showBranch(branch){
   if(el(branch).parentNode.innerHTML.toLowerCase().indexOf('<input ')==-1){
   var objBranch = 
   el(branch).style;
   if (objBranch.display=="block"){
      objBranch.display="none";
      removeBranchFocus();
   }else{
      objBranch.display="block";
      currentoBranchId = branch;
      currentoBranchDocumentId = -1;
      if(el('branch_'+branch)){
         removeBranchFocus();
         el('branch_'+branch).className = el('branch_'+branch).className+'_focus_on';
      }
   }
   swapFolder('I' + branch);
   showDocument(branch,'',1);
   }
}

function removeBranchFocus(){
   eelements = document.getElementsByTagName('span');
   for(i=0;i<eelements.length;i++){
     if(eelements[i].className && eelements[i].className.indexOf('_focus_on')>-0){
        eelements[i].className = eelements[i].className.substring(0,eelements[i].className.length-9);
     }
   }
   eelements = document.getElementsByTagName('a');
   for(i=0;i<eelements.length;i++){
     if(eelements[i].className && eelements[i].className.indexOf('_focus_on')>-0){
        eelements[i].className = eelements[i].className.substring(0,eelements[i].className.length-9);
     }
   }   
}

function isBranchFocus(){
   ret = false;
   eelements = document.getElementsByTagName('span');
   for(i=0;i<eelements.length && !ret;i++){
     if(eelements[i].className && eelements[i].className.indexOf('_focus_on')>-0){
        ret = true;
     }
   }
   eelements = document.getElementsByTagName('a');
   for(i=0;i<eelements.length && !ret;i++){
     if(eelements[i].className && eelements[i].className.indexOf('_focus_on')>-0){
         ret = true;
     }
   }
   return ret;
}

function swapFolder(img){
   objImg = document.getElementById(img);
   if (objImg.src.indexOf('img/node/minus.gif')>-1)
      objImg.src = openImg.src;
   else
      objImg.src = closedImg.src;
   searchNodeId = objImg.id.substring(1);   
}

//Set up the Tree Object
function tree(){
   this.branches = new Array();
   this.add = addBranch;
   this.write = function(l1){
   var treeString = '';
   var numBranches = this.branches.length;
   if(l1.id=='myware-folders-body'){
      for (var i=0;i <numBranches;i++)
         treeString += this.branches[i].write(true);
   }else{
     currentBranche = getBranchById(l1.id,oTextbox.tree.branches);
     /*for (var i=0;i <numBranches && currentBranche==null;i++){
       if(this.branches[i].id == l1.id){
          currentBranche = this.branches[i];
       }
     }*/
     if(currentBranche){
        treeString = currentBranche.write(false);
     }
   }
   l1.innerHTML= treeString;
};
}

function addBranch(branch){
   this.branches[this.branches.length] = branch;
}



//Set up branch object

function header(id, text){
   this.id = id;
   this.text = text;
   this.write = writeTitle;
}

function branch(id, text){
   this.id = id;
   this.text = text;
   this.write = writeBranch;
   this.add = addLeaf;
   this.leaves = new Array();
}
function addLeaf(leaf){
   this.leaves[this.leaves.length] = leaf;
}

function writeTitle(root){
     /*if(this.text==null)
       this.text = 'Wyoming State';
     var branchString = 
        '<div class="npheader">'+
        this.text+
        '</div>';
        return branchString;   */
        return '';
}

function setNodeSearch(nid){
  //alert(el(nid).innerHTML);
  if(el('browse-search-box-body')){
    el('browse-search-box-body').innerHTML='Search Folder: '+nid;
  }
}

function writeBranch(root){
   var branchString = '';
   if(root){
	   branchString+='<span class="branch" '+ 
	      'onClick="showBranch(\'' + this.id + '\');" '+' id="branch_'+this.id+'"';
	      branchString += '><img class="browse-image_nav" src="img/node/plus.gif" id="I' + 
	      this.id + '" name="'+this.text+'_'+currentoBranchId+'">' + this.text;
	   branchString+='</span>';
	   branchString+='<span class="leaf" id="';
	   branchString+=this.id + '">';
   }
   var numLeaves = this.leaves.length;
   for (var j=0;j<numLeaves;j++)
      branchString += this.leaves[j].write(true);
   branchString+='</span>';
   return branchString;
}

//Set up the Leaf Objects

function leaf(text, link){
   this.text = text;
   this.link = link;
   this.write = writeLeaf;
}

function writeLeaf(){
   var leafString = '';
   if(this.link=='wwait'){
     leafString='<font class="red">'+this.text;
     leafString += '</font><br>';
   }else{
     leafString = '<a href="#" id="A-'+this.link+'" class="aleaf" onClick="showDocument(\''+this.link+'\',\''+ this.text.replace(/'/g,"\\'")+'\',1)">';
     leafString += '<img class="browse-image_nav" src="img/node/doc.gif" border="0">';
     leafString += this.text;
     leafString += '</a><br>';
   }
   return leafString;
}

function documentPosition(){
  if(!currentoBranchDocumentId)
    return -3;
  if(currentoBranchDocumentId == -1) return -2;
  currentoBranch = getCurrentBranch();

  if(currentoBranch && currentoBranch.leaves.length>0 && currentoBranch.leaves[currentoBranch.leaves.length-1].link == currentoBranchDocumentId){
    return 2; 
    
  }
  if(currentoBranch && currentoBranch.leaves.length>0 && currentoBranch.leaves[0].link == currentoBranchDocumentId){
    return -2; 
  }
  return 0;
}

