
function popOutMenuItem_init()
{
  var items = document.getElementsByTagName('A');
  
  for (var k = 0; k < items.length; k++)
  {
    if (items[k].className == 'noScriptLink')
      items[k].style.cursor = 'default';
  }
 // addIFrames();
}

function popOutMenuItem_addEventHandlers(itemId)  
{  
  var item = getElement(itemId);

  if (document.getElementById)  
  {  
    item.onmouseover = popOutMenuItem_expand;  
    item.onmouseout = popOutMenuItem_collapse;  
   
    var children = item.getElementsByTagName('LI');
    
    for (var k = 0; k < children.length; k++)
    {
      item = children[k];
      if (item.attributes.getNamedItem('direction'))
      {
        item.onmouseover = popOutMenuItem_expand;  
        item.onmouseout = popOutMenuItem_collapse;  
      }
    }
  }  
}

function popOutMenuItem_collapse(e)  
{  
  e = getEvent(e);
  var sender = getSender(e);
  
  this.className = this.className.replace('expanded', 'collapsed');
  if (this.iFrame)
  {
    this.iFrame.className = 'iFrameCollapsed';
    this.iFrame.style.display = 'none';
  }
}  

function popOutMenuItem_getPopOutDirection(item)
{
  var direction = item.attributes.getNamedItem('direction')
  if (direction && direction.value == 'vertical')
    return 'vertical';
  else
    return 'horizontal';
}

function popOutMenuItem_expand(e)  
{  
  e = getEvent(e);
  var sender = getSender(e);
        
  this.className = this.className.replace('collapsed', 'expanded');
  if (this.iFrame )
  {
    this.iFrame.style.left = getLeft(this);
    this.iFrame.style.top = getTop(this);
    this.iFrame.style.width = getIFrameWidth(this) +  'px';
    this.iFrame.style.height = getIFrameHeight(this) + 'px';
    this.iFrame.className = 'iFrameExpanded';
    this.iFrame.style.display = 'block';
  }

  if (popOutMenuItem_getPopOutDirection(this) == 'vertical')
    popOutMenuItem_popOutVertical(this);
  else
    popOutMenuItem_popOutHorizontal(this);
    
} 


function popOutMenuItem_popOutHorizontal(item)
{
  var width = getWidth(getParent(item)); 
  if (isIE)
  {
      var padding = parseInt(getCurrentStyle(item).paddingLeft);
      padding -= parseInt(getCurrentStyle(getParent(getParent(item))).paddingRight);
      width -= padding;
  }
  
  var children = item.childNodes;
  var child;
  
  for (var k = 0; k < children.length; k++)
  {
    child = children[k];
    if (child.style)
    {
      child.style.top = 0;
      child.style.left = width;
    }
  }
}

function popOutMenuItem_popOutVertical(item)
{
  var height = getHeight(item);

  //if (!isIE)
    height -= 1;
    
  var children = item.childNodes;
  var child;
  
  for (var k = 0; k < children.length; k++)
  {
    child = children[k];
    if (child.style)
    {
      child.style.top = height;  
      child.style.left = 0;
    }
  }
}

function getIFrameWidth(sender)
{
  var maxWidth = getWidth(sender);
  var children = sender.childNodes;
  
  for (k = 0; k < children.length; k++)
  {
    var item = children[k];
    var width = getWidth(item);
      
    if (width > maxWidth)
      maxWidth = width;
  }  
    return maxWidth;
}

function getIFrameHeight(sender)
{
  
  var totalHeight = getHeight(sender);
  var children = sender.childNodes;
  
  for (k = 0; k < children.length; k++)
    totalHeight += getHeight(children[k]);

  return totalHeight;
}

function addIFrames()
{
  var items = document.getElementsByTagName('LI');
  
  for (var k = 0; k < items.length; k++)
  {
    if (getAttributeValue(items[k], 'direction') != '')
    {
      var iFrame = document.createElement('IFRAME');
      iFrame.frameBorder = 0;
      iFrame.src = 'javascript:;';
      iFrame.className = 'collapsed';
      iFrame.style.position = 'absolute';
      iFrame.style.width = '0px';
      iFrame.style.height = '0px';
      iFrame.style.display = 'none';
      iFrame.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
      items[k].iFrame = items[k].parentNode.insertBefore(iFrame, items[k]);
      iFrame.zIndex = 1000;
      items[k].zIndex = 10000;
    }
  }
}