| exports.removeElement = function(elem){ | 
|     if(elem.prev) elem.prev.next = elem.next; | 
|     if(elem.next) elem.next.prev = elem.prev; | 
|   | 
|     if(elem.parent){ | 
|         var childs = elem.parent.children; | 
|         childs.splice(childs.lastIndexOf(elem), 1); | 
|     } | 
| }; | 
|   | 
| exports.replaceElement = function(elem, replacement){ | 
|     var prev = replacement.prev = elem.prev; | 
|     if(prev){ | 
|         prev.next = replacement; | 
|     } | 
|   | 
|     var next = replacement.next = elem.next; | 
|     if(next){ | 
|         next.prev = replacement; | 
|     } | 
|   | 
|     var parent = replacement.parent = elem.parent; | 
|     if(parent){ | 
|         var childs = parent.children; | 
|         childs[childs.lastIndexOf(elem)] = replacement; | 
|     } | 
| }; | 
|   | 
| exports.appendChild = function(elem, child){ | 
|     child.parent = elem; | 
|   | 
|     if(elem.children.push(child) !== 1){ | 
|         var sibling = elem.children[elem.children.length - 2]; | 
|         sibling.next = child; | 
|         child.prev = sibling; | 
|         child.next = null; | 
|     } | 
| }; | 
|   | 
| exports.append = function(elem, next){ | 
|     var parent = elem.parent, | 
|         currNext = elem.next; | 
|   | 
|     next.next = currNext; | 
|     next.prev = elem; | 
|     elem.next = next; | 
|     next.parent = parent; | 
|   | 
|     if(currNext){ | 
|         currNext.prev = next; | 
|         if(parent){ | 
|             var childs = parent.children; | 
|             childs.splice(childs.lastIndexOf(currNext), 0, next); | 
|         } | 
|     } else if(parent){ | 
|         parent.children.push(next); | 
|     } | 
| }; | 
|   | 
| exports.prepend = function(elem, prev){ | 
|     var parent = elem.parent; | 
|     if(parent){ | 
|         var childs = parent.children; | 
|         childs.splice(childs.lastIndexOf(elem), 0, prev); | 
|     } | 
|   | 
|     if(elem.prev){ | 
|         elem.prev.next = prev; | 
|     } | 
|      | 
|     prev.parent = parent; | 
|     prev.prev = elem.prev; | 
|     prev.next = elem; | 
|     elem.prev = prev; | 
| }; |