$.fn.dropdown = function() {    
    function toggle(){
      $('.button', this).toggleClass('selected');
      $('.Menu', this).slideToggle(100);       
      
      $('.Dropdown').not(this).children('.Menu:visible').each( function(){
        console.log(this);
        var target = $(this).parent();
        $('.button', target).removeClass('selected');
        $('.Menu', target).slideUp(100);    
      });
    }     
    
    function close(){
      $('.button', this).removeClass('selected');
      $('.Menu', this).slideUp(100);       
    }    
  
   return $(this).each(function() {               
     var self = this;
     var menu = $('.Menu', self);     
     
     $(".button",self).click( function(){                    
       toggle.apply(self);           
       
       $(document).one('click', function(e){
         var clicked = $(e.target);
  
         if(clicked.siblings('.Menu') != menu){
           close.apply(self);
         }
       });

       return false;
     });                   
     
     $(".Menu li:last", self).addClass("last");    
     
     $(document).keyup(function(e) {
       if (e.keyCode == 27) { close.apply(self); }  
     });     
   });           
};

$.dropdown = function() { $('.Dropdown').dropdown(); };

