// insertAdjacentHTML() and insertAdjacentElement()
// for Netscape 6/Mozilla by Thor Larholm thor@jscript.dk

if (typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement) {

  HTMLElement.prototype.insertAdjacentElement = function(where, parsedNode) {
    switch (where) {
      case 'beforeBegin':
        this.parentNode.insertBefore(parsedNode, this)
        break;

      case 'afterBegin':
        this.insertBefore(parsedNode, this.firstChild);
        break;

      case 'beforeEnd':
        this.appendChild(parsedNode);
        break;

      case 'afterEnd':
        if (this.nextSibling) 
          this.parentNode.insertBefore(parsedNode, this.nextSibling);
        else
          this.parentNode.appendChild(parsedNode);
        break;
    } // end of switch
  }

  HTMLElement.prototype.insertAdjacentHTML = function(where, htmlStr) {
    var r = this.ownerDocument.createRange();
    r.setStartBefore(this);
    var parsedHTML = r.createContextualFragment(htmlStr);
    this.insertAdjacentElement(where, parsedHTML);
  }

} // end if
