Как вариант:
$(function() {
var forms = ['login', 'join', 'amedia'];
$.each(forms, function(name) {
var button = $('#' + name + 'Button');
var box = $('#' + name + 'Box');
var form = $('#' + name + 'Form');
button.mouseup(function(event) {
box.toggle();
button.toggleClass('active');
});
form.mouseup(function() { //функция не позволяет форме закрыться если в её поле произошёл клик
return false;
});
$(document).mouseup(function(event) { //функция закроет форму если вне её поля произошёл клик
if(!($(event.target).parent('#' + name + 'Button').length > 0)) {
button.removeClass('active');
box.hide();
}
});
});
});
Вообще, лучше использовать классы. И mouseup навешивать динамически на document. Вобще есть тут что рефакторить.