//   Written by Terry Friesen,  tfriesen@mts.net
//   http://www.mts.net/~tfriesen/dhtml/
//   This script gives Netscape 6 the following IE methods:
//   removeNode(),replaceNode(),swapNode(),applyElement(),contains(),
//   insertAdjacentText(),insertAdjacentHTML(),insertAdjacentElement()


if(self.Node&&self.Node.prototype)
{
    Node.prototype.removeNode=remove_Node;
    Node.prototype.replaceNode=replace_Node;
    Node.prototype.swapNode=swap_Node;
    Element.prototype.applyElement=apply_Element;
    Element.prototype.contains=_contains;
    Element.prototype.insertAdjacentText=insertAdj_Text;
    Element.prototype.insertAdjacentHTML=insertAdj_HTML;
    Element.prototype.insertAdjacentElement=insertAdj_El;
    Element.prototype.insert__Adj=insert__Adj;
}

function remove_Node(a1)
{
    var p=this.parentNode;
    if(p&&!a1)
    {
        var df=document.createDocumentFragment();
        for(var a=0;a<this.childNodes.length;a++)
        {
            df.appendChild(this.childNodes[a])
        }
        p.insertBefore(df,this)
    }
    return p?p.removeChild(this):this;
}

function replace_Node(a1)
{
    return this.parentNode.replaceChild(a1,this)
}

function swap_Node(a1)
{
    var p=a1.parentNode;
    var s=a1.nextSibling;
    this.parentNode.replaceChild(a1,this);
    p.insertBefore(this,s)
    return this;
}

function apply_Element(a1,a2)
{
    if(!a1.splitText)
    {
        a1.removeNode();
        if(a2&&a2.toLowerCase()=="inside")
        {
            for(var a=0;a<this.childNodes.length;a++)
            {
                a1.appendChild(this.childNodes[a])
            }
        this.appendChild(a1)
        }
        else
        {
            var p=this.parentNode;
            p.insertBefore(a1,this);
            a1.appendChild(this);
         }
         return a1;
      }
}

function _contains(a1)
{
    var r=document.createRange();
    r.selectNode(this);
    return r.compareNode(a1)==3;
}

function insertAdj_Text(a1,a2)
{
    var t=document.createTextNode(a2||"")
    this.insert__Adj(a1,t);
}

function insertAdj_HTML(a1,a2)
{
    var r=document.createRange();
    r.selectNode(this);
    var t=r.createContextualFragment(a2);
    this.insert__Adj(a1,t);
}

function insertAdj_El(a1,a2)
{
    this.insert__Adj(a1,a2);
    return a2;
}

function insert__Adj(a1,a2)
{
    var p=this.parentNode;
    var s=a1.toLowerCase();
    if(s=="beforebegin"){p.insertBefore(a2,this)}
    if(s=="afterend"){p.insertBefore(a2,this.nextSibling)}
    if(s=="afterbegin"){this.insertBefore(a2,this.childNodes[0])}
    if(s=="beforeend"){this.appendChild(a2)}
}

var nfiles = 1;
function add_file(lng)
{
  var insert;
  if(lng == "deu")
    insert = 'Datei 1 : <input type="file" size="35" name="Datei1" defaultvalue="test"><br>';
  else
    insert = 'File 1 : <input type="file" size="35" name="File1"><br>';
  insert = insert.replace(/1/g,++nfiles)
  var files=document.getElementById("files");
  files.insertAdjacentHTML('BeforeEnd',insert);
  return false;
}


