
   function set_attribute(element_id, attribute, value) {
      var element = document.getElementById(element_id);
      element.setAttribute(attribute, value);
   }


   function get_attribute(element_id, attribute) {
      var element = document.getElementById(element_id);
      return element.getAttribute(attribute);
   }
   
   function set_style(element_id, property, style) {
      var element = document.getElementById(element_id);
      element.style[property] = style;
   }

   function set_display(element_id, display_style) {
      var element = document.getElementById(element_id);
      element.style.display = display_style;
   }
   
   function append_child(element_id, child_tag, child_id) {
      var element = document.getElementById(element_id);
      var child = document.createElement(child_tag);
      child.setAttribute('id', child_id);
      element.appendChild(child);
   }

   function remove_child(element_id, child_id) {
      var element = document.getElementById(element_id);
      var child = document.getElementById(child_id);
      element.removeChild(child);
   }


   function add_class(element, classname) {
      if (!element.className) {
         element.className = classname;
      } else {
         classes = element.className.split(' ');
         var classexists = false;
         for ($c = 0; $c < classes.length; $c++) {
            if (classes[$c] == classname) {
               classexists = true;
            }
         }
         if (!classexists) {
            element.className = classes.join(' ')+' '+classname;
         }
      }
   }

   function add_class_by_id(element_id, classname) {
      var element = document.getElementById(element_id);
      return add_class(element, classname);
   }

   function remove_class(element, classname) {
      if (element.className) {
         classes = element.className.split(' ');
         for ($c = 0; $c < classes.length; $c++) {
            if (classes[$c] == classname) {
               classes.splice($c, 1);
            }
         }
         element.className = classes.join(' ');
      }
   }

   function remove_class_by_id(element_id, classname) {
      var element = document.getElementById(element_id);
      return remove_class(element, classname);
   }

