var updateActionMenu = (function($){
  var activeEle;
  function hidePanel(){
    activeEle.removeClass('active').unbind('click', hidePanel).bind('click', showPanel);
    $(document).unbind('click', hidePanel);
    activeEle = null;
  }
  function showPanel(evt){
    var jCaller = $(evt.target);
    if( !( jCaller.is('a') || jCaller.is('input') ) ) {
      if(activeEle){
        hidePanel.call(activeEle[0], evt);
      }
      activeEle = $(this).addClass('active').unbind('click', showPanel).bind('click', hidePanel);
      $(document).bind('click', hidePanel);
      evt.stopPropagation();
    }
  }

  function update(){
    $('.actLine').unbind('click', showPanel).bind('click', showPanel);
    $('.drop_tools').unbind('click', showPanel).bind('click', showPanel);
  }
  $(document).ready(update);
  return update;
})(jQuery);