/*  fn_layer.js   layer control using css

    function toggleElementVisibility( id , displayOnValue)
    function hideClass (className) 
    function getLayerVisibility ( id )
    function setLayerVisibility ( id , displayValue)

    function getInnerHTML (id)
    function setInnerHTML (id, text1, text2 )
    function toggleInnerHTML ( id, text1, text2 )

    requires $() function from fn_general.js
    requires function getElementsByClass (searchClass, tag, node) from fn_general.js

    based on routines from Ajax Design Patterns by Michael Mahemoff 
    and Javascript Toolbox by Matt Kruse
    plus others

*/
function getStyle( el,styleProp)
{
	var elem = $(el);
	if (elem.currentStyle)   
    var prop = elem.currentStyle[styleProp];
	else if (window.getComputedStyle)
    var prop = document.defaultView.getComputedStyle(elem,null).getPropertyValue(styleProp);
	return prop;
}

function toggleElementVisibility (id , displayOnValue)
{  
  var elem, elemStyle; 
  elem = $(id);
  elemStyle = elem.style;  
  // 
  if(elemStyle.display == '' && elem.offsetWidth!=undefined && elem.offsetHeight!=undefined)
      // if the style.display value is blank set default values
      elemStyle.display = (elem.offsetWidth!=0 && elem.offsetHeight!=0)?displayOnValue:'none';
        
  elemStyle.display = (elemStyle.display==''||elemStyle.display==displayOnValue)?'none':displayOnValue;
  
  return elemStyle.display;
}

function hideClass (className) 
{
  var elems;
  elems = getElementsByClass (className, null, null);

  var i, elemStyle;
  for (i=0;i<elems.length;i++) 
  {
    elemStyle = elems[i].style;  
    elemStyle.display = 'none';
  }
}

function showClass (className) 
{
  var elems;
  elems = getElementsByClass (className, null, null);

  var i, elemStyle;
  for (i=0;i<elems.length;i++) 
  {
    elemStyle = elems[i].style;  
    elemStyle.display = 'block';
  }
}


function getLayerVisibility (id)
{
  var elem, elemStyle; 
  elem = $(id);
  if (elem != null) 
  { 
    elemStyle = elem.style.display;  
    //return elemStyle.display;
    return elemStyle;
  }
}

function setLayerVisibility (id , displayValue)
{
  var elem, elemStyle; 
  elem = $(id);
  if (elem != null) 
  { 
    elemStyle = elem.style.display = displayValue;
  }
}

function toggleInnerHTML (id, text1, text2)
{  
  var elem = $(id);
  if (elem != null) 
  { 
    elem.innerHTML = (elem.innerHTML=='' || elem.innerHTML ==text1)?text2:text1;
    return elem.innerHTML;
  }
}

function getInnerHTML (id)
{  
  var elem = $(id);
  if (elem != null) return elem.innerHTML;
}

function setInnerHTML (id, text)
{  
  var elem = $(id);
  if (elem != null) elem.innerHTML = text;
}

