function DynList(list1, list2, form, inputname, clname, inputnr, idname)
{
    // Elemente
    this.array1 = new Array();
    this.array2 = new Array();
    this.idarray1 = new Array();
    this.idarray2 = new Array();
    this.list1 = document.getElementById(list1);
    this.list2 = document.getElementById(list2);
    this.nr1 = 0;
    this.nr2 = 0;
    this.inputnr = inputnr;
    this.form = form;
    this.inputname = inputname;
    this.clname = clname;
    this.idname = idname;
    
    // Methoden
    this.checkDynEl = checkDynEl;
    this.swap = swap;
}
function checkDynEl(id, title, list)
{
    var el = document.getElementById(id);
    
    // nun als ausgewählt markieren
    if (el.className == "dynlist_el")
    {
        el.className = "dynlist_el_active";
        //das Element einfügen in das Array
        if (list == 1) {
            this.array1[this.nr1] = new Array(id, title);
            this.idarray1[id] = this.nr1;
            this.nr1++;
        }
        else {
            this.array2[this.nr2] = new Array(id, title);
            this.idarray2[id] = this.nr2;
            this.nr2++;
        }
    }
    else
    {
        el.className = "dynlist_el";
        //das Element aus dem Array entfernen
        if (list == 1) {
            this.array1[this.idarray1[id]] = undefined;
            this.idarray1[id] = undefined;
        }
        else {
            this.array2[this.idarray2[id]] = undefined;
            this.idarray2[id] = undefined;
        }
    }
}


function swap(list)
{
    var i = 0;
    if (list == 1)
    {
        if (this.array1.length > 0)
        {
            for(i = 0;i < this.array1.length;i++)
            {
                if (this.array1[i])
                {
                var del = document.getElementById(this.array1[i][0]);
                var cont = del.innerHTML;
                this.list1.removeChild(del);
                var add = document.createElement("div");
                add.setAttribute("class", "dynlist_el");
                add.setAttribute("onclick", this.clname+".checkDynEl(this.id, '"+this.array1[i][1]+"', 2)");
                add.setAttribute("id", this.array1[i][0]);
                this.list2.appendChild(add);
                var addid = document.getElementById(this.array1[i][0]);
                addid.innerHTML = cont;
                var id = new String(this.array1[i][0]);
                var split = id.split(this.idname);
                id = split[1];
                var input = document.createElement("input");
                input.setAttribute("type", "hidden");
                input.setAttribute("id", this.inputname+id);
                input.setAttribute("name", this.inputname+"["+this.inputnr+"]");
                this.inputnr++;
                input.setAttribute("value", id);
                this.form.appendChild(input);
                }
            }
            this.array1 = new Array();
            this.nr1 = 0;
        }
    }
    else
    {
        if (this.array2.length > 0)
        {
            for(i = 0;i < this.array2.length;i++)
            {
                if (this.array2[i])
                {
                var id = new String(this.array2[i][0]);
                var split = id.split(this.idname);
                id = split[1];
                var newid = this.inputname + id;
                var delinput = document.getElementById(newid);
                this.form.removeChild(delinput);
                var del = document.getElementById(this.array2[i][0]);
                var cont = del.innerHTML;
                this.list2.removeChild(del);
                var add = document.createElement("div");
                add.setAttribute("class", "dynlist_el");
                add.setAttribute("onclick", this.clname+".checkDynEl(this.id, '"+this.array2[i][1]+"', 1)");
                add.setAttribute("id", this.array2[i][0]);
                this.list1.appendChild(add);
                var addid = document.getElementById(this.array2[i][0]);
                addid.innerHTML = cont;
                }
            }
            this.array2 = new Array();
            this.nr2 = 0;
        }
    }
}

