function advancedTextBox_onLoad(senderId)
{
  var sender = getElement(senderId);
  
  var expandButton = getElementByKeyAndTagName(sender, 'expand', 'INPUT');
  if (expandButton)
    expandButton.style.display = 'inline';
  
  if (getAttributeValue(sender, 'gdm') > 0)
    getElementByKeyAndTagName(sender, 'go', 'INPUT').style.display = 'none';
    
  advancedTextBox_position(sender);
  
  addHandler(getElementByKeyAndTagName(sender, 'text', 'INPUT'), 'onblur', advancedTextBox_onBlur);
  addHandler(getElementByKeyAndTagName(sender, 'go', 'INPUT'), 'onclick', advancedTextBox_onGo);
}


function advancedTextBox_position(sender)
{
  var textBox = getElementByKeyAndTagName(sender, 'text', 'INPUT');
  var div = getElementByKeyAndTagName(sender, 'contents', 'DIV');
  
  if (getAttributeValue(sender, 'da') == '1')
    div.style.left = (getLeft(textBox) + getWidth(textBox)) - getWidth(div);
  else
    div.style.left = getLeft(textBox);
    
  div.style.top = getTop(textBox) + getHeight(textBox);
}

function advancedTextBox_collapse(sender)
{  
  sender.style.display = 'none';
}

function advancedTextBox_expand(sender)
{
  sender.style.display = 'block';
  advancedTextBox_position(getParent(sender));
}

function advancedTextBox_toggle(e)
{
  e = getEvent(e);
  var sender = getParent(getSender(e));
  var div = getElementByKeyAndTagName(sender, 'contents', 'DIV');
   
  if (getCurrentStyle(div).display == 'block')
    advancedTextBox_collapse(div);
  else
    advancedTextBox_expand(div);
    
  getElementByKeyAndTagName(sender, 'text', 'INPUT').focus();
  return false;
}

function advancedTextBox_onBlur(e)
{
 if (!document.activeElement)
    return false;
    
  e = getEvent(e);
  var sender = getSender(e);
  var parent = getParent(sender);
  
  var current = document.activeElement;
  while (current)
  {
    if (current == parent)
      return true;
      
    current = getParent(current);
  }
  
  var div = getElementByKeyAndTagName(parent, 'contents', 'DIV');
  advancedTextBox_collapse(div);
}

function advancedTextBox_onGo(e)
{
  e = getEvent(e);
  var sender = getSender(e);
  var parent = getParent(sender);
  var div = getElementByKeyAndTagName(parent, 'contents', 'DIV');
  advancedTextBox_collapse(div);
}