  /**
  * This function allows you to open and close myLivy containers
  *
  * @param mixed elem
  * @param string mode
  * @return void
  */
  function toggleContainer(elem, mode)
  {
    if (mode != 'open' && mode != 'closed')
      return;

    if (!elem)
      return;

    // Provided is an id
    if (typeof(elem) != 'object')
      elem = document.getElementById(elem);

    if (elem)
    {
      switch (mode)
      {
        case 'open':

          elem.className = elem.className.replace(/closed/, 'open');

          if (elem.setAttribute)
            elem.setAttribute('firsttimeopened', 'false')

        break;

        case 'closed':

          elem.className = elem.className.replace(/closed/, 'closed');

        break;
      }
    }

    closeOtherContainers(elem);
  }

  /**
  * Function that closes all the containers except for the one given
  *
  * @param object elem
  * @return void
  */
  function closeOtherContainers(elem)
  {
    if (typeof(elem) != 'object')
      return;

    var node = null;

    if (elem && elem.parentNode && elem.parentNode.childNodes)
    {
      for (var i = 0; i < elem.parentNode.childNodes.length; i++)
      {
        node = elem.parentNode.childNodes[i];

        if (node.tagName && node.tagName.toLowerCase() == 'div')
        {
          if (node.id != elem.id)
            node.className = node.className.replace(/open/, 'closed');

        }
      }
    }
  }

  function saveContainerOpen(uuid, container, open)
  {
    url = 'remote/user_settings_container_update.php?page_uuid=' + uuid + '&container=' + container + '&open=' + open;
    remoteRequest(url, new Array(), null, 'GET');
  }

  /**
  * Check if a container is opened for the first time or not
  *
  * @param mixed elem
  * @return boolean
  */
  function isContainerOpenedFirstTime(elem)
  {
    if (!elem)
      return;

    // Provided is an id
    if (typeof(elem) != 'object')
      elem = document.getElementById(elem);

    if (elem)
    {
      if (elem.getAttribute && elem.getAttribute('firsttimeopened') != 'false')
        return true;
    }

    return false;
  }

  /**
  * Check if a container is open or not
  *
  * @param mixed elem
  * @return boolean
  */
  function isContainerOpen(elem)
  {
    if (!elem)
      return;

    // Provided is an id
    if(typeof(elem) != "object")
      var elem = document.getElementById(elem);

    if (elem)
    {
      if (elem.className != '' && elem.className.indexOf('open') > -1)
        return true;

    }

    return false;
  }
