function isParent(el, target) {
    while (el.parentNode) {
	if (el == target) return true;
	el = el.parentNode;
    }
    return false;
} 

function toggle_lang() {
    var el = document.getElementById('langpicker');
    if (el.style.display !== 'block') {
	el.style.display = 'block';
    } else {
	el.style.display = 'none';
    }
}

window.onload = function() {
    document.getElementById('langsel').onclick = toggle_lang;
}

document.onmousedown = function(e) {
    var picker = document.getElementById('langpicker');
    var sel = document.getElementById('langsel');
    var target = (e && e.target) || (window.event && window.event.srcElement);
    if (! isParent(target, picker) && ! isParent(target, sel)) {
	picker.style.display = 'none';
	window.event.cancelBubble = true;
	e.stopPropagation();
    }
}

