
window.onload = init;

function init() {
    minimizemenu();
    replaceat(document);
    focusform();
}

function minimizemenu() {
    var i;
    menu = getElementsByClass("linke_spalte")[0].getElementsByTagName("div")[0];
    
    // if (! document.getElementById("adminrulez")) { return; }

    var items = menu.getElementsByTagName("li");
    for (i = 0; i < items.length; i++) {
	var item = items[i];
	if (item.parentNode && (item.parentNode.parentNode == menu)) {
	    // a top level item
	} else {
	    if (getElementsByClass("active", item.parentNode).length > 0) {
		// a sibling is active
		if (item.style) {
		    item.style.display = "block";
		}
	    } else {
		var pattern = new RegExp("(^|\\s)active(\\s|$)");
		if (pattern.test(item.parentNode.parentNode.className)) {
		    // the parent is active
		    item.style.display = "block";
		} else {
		    // default on 2nd level is "none", we don't need this
		    // item.style.display = "none";
		}
	    }
	}
    }
}

function replaceat(node) {
    var i;

    if (node.nodeType == 1) {
	for (i = 0; i < node.attributes.length; i++) {
	    v = node.attributes[i].nodeValue;
	    v = v.replace(/\[\[at\]\]/g, "@");
	    node.attributes[i].nodeValue = v;
	}	
    }

    if (node.nodeType == 3) {
	v = node.nodeValue;
	v = v.replace(/\[\[at\]\]/g, "@");
	node.nodeValue = v;
    }

    if (node.hasChildNodes()) {
	for (i = 0; i < node.childNodes.length; i++) {
	    replaceat(node.childNodes[i]);
	}
    }
}

function focusform() {
    node = document.getElementById("searchpattern");
    if (node) {
	node.focus();
    }
}


function deleteText(form){
    if (form.defaultValue==form.value)
 	form.value = ""
}



function getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if ( node == null )
	node = document;
    if ( tag == null )
	tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
	if ( pattern.test(els[i].className) ) {
	    classElements[j] = els[i];
	    j++;
	}
    }
    return classElements;
}
