Una sencilla función para detectar si se clica fuera de un elemento:
document.onclick = function (e) {
e = e || event
var target = e.target || e.srcElement
var elemento = document.getElementById('id_elemento');
do {
if (elemento == target) {
// El click se ha producido dentro del elemento, no se hace nada.
return;
}
target = target.parentNode;
} while (target)
// Se ha clicado fuera del elemento, se realiza una acción.
elemento.style.display = 'none';
}