GM.namespace('GM.cms.user');

// Init

GM.cms.user.init = function ()
{
  var fieldsets = GM.dom.getElementsByClassName('privileges', 'fieldset');
  
  for (var i = 0; i < fieldsets.length; i += 1) {
    GM.cms.util.checkboxgroup.addHandlers(fieldsets[i]);
  }
  
  var tables = GM.dom.getElementsByClassName('overview user', 'table');
  
  for (var i = 0; i < tables.length; i += 1) {
    new GM.cms.user.UserTableController(tables[i]);
  }  
}

// TableController

GM.cms.user.UserTableController = function (table)
{
  GM.cms.table.TableController.call(this, table);
}
GM.cms.user.UserTableController.inherit(GM.cms.table.TableController);

GM.cms.user.UserTableController.prototype.openPopupInsert = function (e, object, lock)
{
  new GM.cms.user.UserPopupController(object.request.responseText, object.lock);
}

GM.cms.user.UserTableController.prototype.openPopupUpdate = function (e, object, lock)
{
  new GM.cms.user.UserPopupController(object.request.responseText, object.lock);
}

// PopupController

GM.cms.user.UserPopupController = function (string, lock)
{
  GM.cms.popup.PopupController.call(this, string, lock);
  
  GM.cms.util.checkboxgroup.addHandlers(this.popup);
}
GM.cms.user.UserPopupController.inherit(GM.cms.popup.PopupController);

GM.cms.user.UserPopupController.prototype.closePopup = function (e)
{
  GM.cms.util.checkboxgroup.removeHandlers(this.popup);
  
  GM.cms.popup.PopupController.prototype.closePopup.call(this, e);
}

GM.event.register(window, 'load', GM.cms.user.init);
