/*
*  Additional functions for creating, writing and manipulating layers
*  Copyright Gallaware, Inc. 2001
*
*/

function showLayerById(id)
{
  showLayer(getLayer(id))
}

function showOnlyLayerById(id)
{
  // first hide all the layers
  hideAllLayers()

  // show the current layer
  showLayer(getLayer(id))
}

function hideLayerById(id)
{
  hideLayer(getLayer(id))
}

function hideAllLayers()
{
  var layers
  var idx

  layers = getAllLayers()
  for (idx = 0; idx < layers.length; idx++)
  {
    if (isMinIE4)
    {
      if (layers[idx].id.length > 0)
        hideLayer(layers[idx])
    }
    else
      hideLayer(layers[idx])
  }
}

function hideLayerAfterById(id, millis)
{
  setTimeout("hideLayerById('" + id + "')" , millis)
}

function setSamePageLocation(srcId, destId)
{
  srcLayer = getLayer(srcId)
  destLayer = getLayer(destId)

  moveLayerTo(destLayer, getPageLeft(srcLayer), getPageTop(srcLayer))
}

function getAllLayers()
{
  if (isMinNS4)
    return document.layers;
  if (isMinIE4)
    return document.all;
}

function showLayerInfo()
{
  var layers = getAllLayers()
  var idx

  if (layers != null)
  {
    for (idx = 0; idx < layers.length; idx++)
      displayLayerInfo(layers[idx], null)
  } 
}

function displayLayerInfo(layer, parentLayer)
{
  var idx
  
  if (isMinNS4)
  {
    alert("Layer name: " + (parentLayer != null ? layer.name + "." : "") 
		+ layer.name + "\n" +
	  "Position: " + getPageTop(layer) + "," + getPageLeft(layer))

    if (layer.document.layers.length > 0)
    {
      for (idx = 0; idx < layer.document.layers.length; idx++)
        displayLayerInfo(layer.document.layers[idx], layer)
    }
  }
  else if (isMinIE4)
  {
    if (layer.id.length > 0)
    {
      alert("Layer name: " + (parentLayer != null ? layer.id + "." : "") 
		+ layer.id + "\n" +
	  "Position: " + getPageTop(layer) + "," + getPageLeft(layer))
    }
  }
}



// creats a layer and returns its layer object
function createLayer(id)
{
  beginLayer(id)
  endLayer()
  return getLayer(id)
}

// starts the layer with appropriate tags for the appropriate browser.
// this allows a script to start the layer, then use HTML to populate the
// layer, and use a script to end the layer
function beginLayer(id)
{
  if (isMinNS4)
  {
    document.writeln("<p id=\"" + id +"\" style=\"position: absolute !important;\" langauage=\"JavaScript1.2\">")
  }
  else if (isMinIE4)
  {
    document.write("<div id=\"" + id + "\" style=\"position:absolute;\">")
  }
}

// ends a layer definition started with beginLayer()
function endLayer(id)
{
  if (isMinNS4)
  {
    document.write("</p>")
//    document.writeln("<style type=\"text/css\">")
//    document.writeln("<!--")
//    document.writeln("#" + id + " { position:absolute; visibility:show; }")
//    document.writeln("-->")
//   document.writeln("</style>")
  }
  else if (isMinIE4)
    document.write("</div>")
}

// writes to a layer by adding text to the layer
function writeToLayer(id, text)
{
  var layer = getLayer(id)

  if (isMinNS4)
    layer.document.write(text)
  else if (isMinIE4)
  {
    layer.innerHTML += text
  }
}

// clears the layer of all text
function clearLayer(id)
{
  var layer = getLayer(id)

  if (isMinNS4)
  {
    layer.document.open()
  }
  else if (isMinIE4)
  {
    layer.innerHTML = ""
  }
}

// clears the layer of all text
function closeLayer(id)
{
  var layer = getLayer(id)

  if (isMinNS4)
  {
    layer.document.close()
  }
}
