mycms = {
    c: categories,

    init: function(id) {
	var list = new Array();
	while (id > 1) {
	    var found = -1;
	    for (var i = 0; i < this.c.length && found == -1 ; i++) {
		if (this.c[i][0] == id) {
		    found = i;
		}
	    }
	    list.push(found);
	    id = this.c[found][1];

	}
	list.reverse();

	for (var i = 0, e = null; (e = document.getElementById('cat_' + (i + 1))) != null; i++) {
	    e.options[0] = new Option('beliebig', '-1');
	    e.length = 1;
	    if (i < list.length) {
		this.fillOptions(i + 1, this.c[list[i]][1], this.c[list[i]][0]);
	    } else if (i == 0) {
	        this.fillOptions(i + 1, 1, -1);
	    }
	}
    },

    changeMenu: function(level) {
	var sel = document.getElementById('cat_' + level);
	var val = (sel != null) ? sel.value : -1;

	for (var i = level + 1, e = null; (e = document.getElementById('cat_' + i)) != null; i++) {
	    e.options[0] = new Option('beliebig', '-1');
	    e.length = 1;
	}
	this.fillOptions(level + 1, val, -1);

	if (document.getElementsByName('category_id')[0] != null) {
	    document.getElementsByName('category_id')[0].value = val;
	}
	if (document.getElementsByName('category')[0] != null) {
	    document.getElementsByName('category')[0].value = val;
	}
    },

    fillOptions: function(level, id, def) {
	for (var i = 0, n = 1; i < this.c.length; i++) {
	    if ((level == 1 && this.c[i][1] == 0) || this.c[i][1] == id) {
		var sel = document.getElementById('cat_' + level);
		if (sel != null) {
		    sel.options[n] = new Option(this.c[i][2], this.c[i][0]);
		    if (this.c[i][0] == def) {
		        sel.options[n].selected = true;
		    }
		    n++
		}
	    }
	}
    }
};
