function CanHaveClass__CssFriendlyAdapters(element)
{
  return ((element != null) && (element.className != null));
}

function HasAnyClass__CssFriendlyAdapters(element)
{
  return (CanHaveClass__CssFriendlyAdapters(element) && (element.className.length > 0));
}

function HasClass__CssFriendlyAdapters(element, specificClass)
{
  return (HasAnyClass__CssFriendlyAdapters(element) && (element.className.indexOf(specificClass) > -1));
}

function AddClass__CssFriendlyAdapters(element, classToAdd)
{
  if (HasAnyClass__CssFriendlyAdapters(element))
  {
 if (!HasClass__CssFriendlyAdapters(element, classToAdd))
 {
   element.className = element.className + " " + classToAdd;
 }
  }
  else if (CanHaveClass__CssFriendlyAdapters(element))
  {
 element.className = classToAdd;
  }
}

function AddClassUpward__CssFriendlyAdapters(startElement, stopParentClass, classToAdd)
{
  var elementOrParent = startElement;
  while ((elementOrParent != null) && (!HasClass__CssFriendlyAdapters(elementOrParent, topmostClass)))
  {
 AddClass__CssFriendlyAdapters(elementOrParent, classToAdd);
 elementOrParent = elementOrParent.parentNode;
  }  
}

function SwapClass__CssFriendlyAdapters(element, oldClass, newClass)
{
  if (HasAnyClass__CssFriendlyAdapters(element))
  {
 element.className = element.className.replace(new RegExp(oldClass, "gi"), newClass);
  }
}

function SwapOrAddClass__CssFriendlyAdapters(element, oldClass, newClass)
{
  if (HasClass__CssFriendlyAdapters(element, oldClass))
  {
 SwapClass__CssFriendlyAdapters(element, oldClass, newClass);
  }
  else
  {
 AddClass__CssFriendlyAdapters(element, newClass);
  }
}

function RemoveClass__CssFriendlyAdapters(element, classToRemove)
{
  SwapClass__CssFriendlyAdapters(element, classToRemove, "");
}

function RemoveClassUpward__CssFriendlyAdapters(startElement, stopParentClass, classToRemove)
{
  var elementOrParent = startElement;
  while ((elementOrParent != null) && (!HasClass__CssFriendlyAdapters(elementOrParent, topmostClass)))
  {
 RemoveClass__CssFriendlyAdapters(elementOrParent, classToRemove);
 elementOrParent = elementOrParent.parentNode;
  }  
}

function IsEnterKey()
{
  var retVal = false;
  var keycode = 0;
  if ((typeof(window.event) != "undefined") && (window.event != null))
  {
 keycode = window.event.keyCode;
  }
  else if ((typeof(e) != "undefined") && (e != null))
  {
 keycode = e.which;
  }
  if (keycode == 13)
  {
 retVal = true;
  }
  return retVal;
}
