1 namespace('kivi', function(k){
 
   6     actionbar: 'layout-actionbar',
 
   7     disabled: 'layout-actionbar-action-disabled',
 
   8     action:   'layout-actionbar-action',
 
   9     combobox: 'layout-actionbar-combobox',
 
  12   k.ActionBarCombobox = function(e) {
 
  14     this.head     = e.childNodes[0];
 
  15     this.toggle   = this.head.childNodes[1];
 
  16     this.list     = e.childNodes[0];
 
  19   k.ActionBarCombobox.prototype = {
 
  22       $(obj.toggle).on('click', function(event){
 
  23         $(obj.combobox).toggleClass(CLASSES.active);
 
  24         event.stopPropagation();
 
  29   k.ActionBarAction = function(e) {
 
  30     var data = $(e).data('action');
 
  31     if (undefined === data) return;
 
  34       $(e).addClass(CLASSES.disabled);
 
  37     if (data.call || data.submit) {
 
  38       $(e).click(function(event) {
 
  39         var $hidden, key, func, check;
 
  40         if ($(e).hasClass(CLASSES.disabled)) {
 
  41           event.stopPropagation();
 
  45           for (var i=0; i < data.checks.length; i++) {
 
  46             check = data.checks[i];
 
  47             func = kivi.get_function_by_name(check);
 
  48             if (!func) console.log('Cannot find check function: ' + check);
 
  52         if (data.confirm && !confirm(data.confirm)) return;
 
  54           func = kivi.get_function_by_name(data.call[0]);
 
  55           func.apply(document, data.call.slice(1))
 
  58           var form   = data.submit[0];
 
  59           var params = data.submit[1];
 
  61             $hidden = $('<input type=hidden>')
 
  62             $hidden.attr('name', key)
 
  63             $hidden.attr('value', params[key])
 
  64             $(form).append($hidden)
 
  74   $('div.layout-actionbar .layout-actionbar-action').each(function(_, e) {
 
  75     kivi.ActionBarAction(e)
 
  77   $('div.layout-actionbar-combobox').each(function(_, e) {
 
  78     $(e).data('combobox', new kivi.ActionBarCombobox(e));
 
  80    $(document).click(function() {
 
  81     $('div.layout-actionbar-combobox').removeClass('active');