var m_structureTimer = null;
var m_structurePath = new Array();
var m_clearStructurePath = false;

function nid2midStructureMenu(node_id)
{
 var p = strpos(node_id,'.',0);
 if(p){return 'siteStructure'+node_id.substr(p);}
 return false;
}

function mid2nidStructureMenu(menu_id)
{
 var p = strpos(menu_id,'.',0);
 if(p){return 'siteStructureNode'+menu_id.substr(p);}
 return false;
}

function appendStructurePath(node_id,nodeFrame_id)
{
 if(node_id)
 {
  var menu_id = nid2midStructureMenu(node_id);
  var menu_element = fetchElement(menu_id);
     
  if(menu_element)
  {
   if(m_structurePath.length==0)
   {m_structurePath.push(menu_id);}
   else
   {if(menu_id==m_structurePath[(m_structurePath.length-1)]){return;}
         
    filterStructureMenu(menu_id);     
    m_structurePath.push(menu_id);
   }     
      
   var handle_element = fetchElement(node_id);
   var mainMenuFrame = fetchElement('mainMenuFrame');

   showElement(menu_element); 
   //setElementStyle(menu_element,'display','block');
      
   var nx = getElementX(mainMenuFrame) + getElementWidth(mainMenuFrame);
   var ny = getElementY(handle_element);
   
   if(nodeFrame_id!=null)
   {
    var nodeFrame_obj = fetchElement(nodeFrame_id);
    nx+=(getElementWidth(nodeFrame_obj)+2);
   }
   
   setElementStyle(menu_element,'left',nx+'px');
   setElementStyle(menu_element,'top',ny+'px');
   
   m_clearStructurePath = false;
  }
 }
}

function filterStructureMenu(current_uri)
{
 var path = new Array();
 var hide_elements = new Array();
 
 for(var i=0;i<m_structurePath.length;i++)
 {
  if(current_uri.search(m_structurePath[i])==0)
  path.push(m_structurePath[i]);
  else hide_elements.push(m_structurePath[i]);
 }
 for(var j=0;j<hide_elements.length;j++)
 {hideElement(fetchElement(hide_elements[j]));}
 m_structurePath = path;
}

function clearStructurePath(valid_segment_count)
{
 for(var i=0;i<m_structurePath.length;i++)
 {hideElement(fetchElement(m_structurePath[i]));}
 m_structurePath = new Array();
}

function timerStructureMenuEvent()
{
 if(m_clearStructurePath)
 {
  clearStructurePath();
  m_clearStructurePath = false;
 }
 m_structureTimer = setTimeout('timerStructureMenuEvent()',1000);
}

function getValidStructureSegmentCount(current_array,last_array)
{ 
 var vs = 0;
 var len = last_array.length;
 if(current_array.length<len)len=current_array.length;

 for(var i=0;i<len;i++)
 {if(last_array[i]==current_array[i])vs++;}
 
 return vs;
}

function showStructureMenu(node)
{
 if(node)
 {
  appendStructurePath(getElementID(node),null);
  if(m_structureTimer==null)
  {
   m_structureTimer = setTimeout('timerStructureMenuEvent()',1000);
  }
 }  
}

function showSubStructureMenu(node,nodeFrame)
{
 if(node)
 {
  appendStructurePath(getElementID(node),nodeFrame);
  if(m_structureTimer==null)
  {
   m_structureTimer = setTimeout('timerStructureMenuEvent()',1000);
  }
 }  
}

function hideStructureMenu()
{
 m_clearStructurePath = true;
}

function focusStructureMenu(element)
{
 m_clearStructurePath = false;
}

function blurStructureMenu()
{hideStructureMenu();}
