function levenshtein( a, b ) {
	var i;
	var j;
	var cost;
	var d = new Array();

	if (a.length == 0) {
		return b.length;
	}
	if (b.length == 0) {
		return a.length;
	}

	for (i=0; i<=a.length; i++) {
		d[i] = new Array();
		d[i][0] = i;
	}
	for (j=0; j<=b.length; j++) {
		d[0][j] = j;
	}

	for (i=1; i<=a.length; i++) {
		for (j=1; j<=b.length; j++) {
			if (a.charAt(i-1) == b.charAt(j-1)) {
				cost = 0;
			} else {
				cost = 1;
			}
			d[i][j] = Math.min( d[i-1][j] + 1, d[i][j-1] + 1, d[i-1][j-1] + cost );
			if(i > 1 && j > 1 && a.charAt(i - 1) == b.charAt(j-2) && a.charAt(i-2) == b.charAt(j-1)) {
				d[i][j] = Math.min(d[i][j], d[i-2][j-2] + cost)
			}
		}
	}
	return d[ a.length ][ b.length ];
}

function hideAllExcept(nav){
	$$('div#navigation>div div.body').each(function(item){
		if (nav!=item) {
			item.setStyle('display', 'none');
		}
	})
}
function toggleClicked(nav){
	if (nav.getStyle('display') == 'none') {
		nav.setStyle('display', 'block');
	} else {
		nav.setStyle('display', 'none');
	}
}

var nav_elements = $$('div#navigation>div');
nav_elements.each(function(item){
	if (!(item.id=="nav_home")){
		item.getChildren('.header')[0].addEvent('click', function(){
			hideAllExcept(item.getChildren('.body')[0]);
			toggleClicked(item.getChildren('.body')[0]);
		});
	}
})

window.addEvent('domready', function(){
	var link = $('navigation').getElements('a').map(function(a) { return [levenshtein(a.href, location.host+location.pathname), a]; }).sort(function(a, b) { return a[0] - b[0]; })[0][1]
	link.addClass('highlighted');
	link.getParent().getParent().setStyle('display','block');
})