// management box buttons properties
var managementButtons = new Array();

var i;
var fieldId;
var id;

// edit ===============================
i = 0;
id = "managementButtonForm" + i;
createFormDescription
( 
  id, 
  DOCUMENT_MANAGEMENT_REQUEST_BASE + PARAM_FUNCTION_DOCUMENT_EDIT,
  PARAM_EDIT_DOCUMENT_TITLE, 
  "Изменить название и&nbsp;краткое описание текущего документа.", 
  function() { return confirm( "Изменить параметры документа?" ) }, 
  managementBoxFormResponseCallbackFunction,
  "Отправить запрос" 
);
managementButtons[i] = new Object;
managementButtons[i] = createFormDescription
( 
  id, 
  DOCUMENT_MANAGEMENT_REQUEST_BASE + PARAM_FUNCTION_DOCUMENT_EDIT,
  PARAM_EDIT_DOCUMENT_TITLE, 
  "Изменить название и краткое описание текущего документа.", 
  function() { return confirm( "Изменить параметры документа?" ) }, 
  managementBoxFormResponseCallbackFunction,
  "Отправить запрос" 
);
managementButtons[i]['imageUrl'] = THEME_PATH + "icons/edit.gif";
managementButtons[i]['displayIfTrue'] = "USER_RIGHTS_ADD";

  fieldId = PARAM_PREVIOUS_DOCUMENT_URL;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_URL 
  );
  
  fieldId = PARAM_DOCUMENT_PATH_STRING;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_PATH_STRING 
  );
  
  fieldId = PARAM_EDIT_DOCUMENT_TITLE;
  managementButtons[i].textControlAdd
  ( 
    fieldId, 
    DOCUMENT_TITLE,
    'Заголовок документа:',
    MAX_DOCUMENT_TITLE_LENGTH
  );
  
  fieldId = PARAM_EDIT_DOCUMENT_SUMMARY;
  managementButtons[i].textareaControlAdd
  ( 
    fieldId, 
    DOCUMENT_SUMMARY,
    'Краткое содержание документа:',
    MAX_DOCUMENT_SUMMARY_LENGTH
  );

  
  
  
  
// add new document ===============================
i++;
id = "managementButtonForm" + i;
managementButtons[i] = createFormDescription
( 
  id, 
  DOCUMENT_MANAGEMENT_REQUEST_BASE + PARAM_FUNCTION_DOCUMENT_ADD,
  PARAM_NEW_DOCUMENT_TITLE, 
  "Добавить новый документ (он&nbsp;будет доступен в&nbsp;списке документов текущего документа).", 
  function() { return confirm( 'Создать вложенный документ?' ) }, 
  managementBoxFormResponseCallbackFunction,
  "Отправить запрос" 
);
managementButtons[i]['imageUrl'] = THEME_PATH + "icons/adddocument.gif";
managementButtons[i]['displayIfTrue'] = "USER_RIGHTS_ADD";

  fieldId = PARAM_PREVIOUS_DOCUMENT_URL;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_URL 
  );
  
  fieldId = PARAM_DOCUMENT_PATH_STRING;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_PATH_STRING 
  );

  fieldId = PARAM_NEW_DOCUMENT_TYPE;
  var item = 0;
  var itemsValues = new Array();
  var itemsCaptions = new Array();
  for ( var index in MODULES_SCREEN_NAMES )
  {
    itemsValues[item] = index;
    itemsCaptions[item] = MODULES_SCREEN_NAMES[index];
    item++;
  };
  managementButtons[i].radioControlAdd
  ( 
    fieldId, 
    DOCUMENT_TYPE,
    'Тип создаваемого документа:',
    itemsValues,
    itemsCaptions
  );
  
  fieldId = PARAM_NEW_DOCUMENT_TITLE;
  managementButtons[i].textControlAdd
  ( 
    fieldId, 
    '',
    'Заголовок документа:',
    MAX_DOCUMENT_TITLE_LENGTH
  );
  
  fieldId = PARAM_NEW_DOCUMENT_SUMMARY;
  managementButtons[i].textareaControlAdd
  ( 
    fieldId, 
    '',
    'Краткое содержание документа:',
    MAX_DOCUMENT_SUMMARY_LENGTH
  );
  
  fieldId = PARAM_NEW_DOCUMENT_NAME;
  managementButtons[i].textControlAdd
  ( 
    fieldId, 
    '',
    'Имя документа на сервере (коротко, ясно, на&nbsp;английском языке, без&nbsp;пробелов):',
    MAX_DOCUMENT_FOLDER_NAME_LENGTH
  );
  
  fieldId = PARAM_NEW_DOCUMENT_LANGUAGE;
  managementButtons[i].textControlAdd
  ( 
    fieldId, 
    LANGUAGE,
    'Код&nbsp;языка документа по&nbsp;стандарту RFC&nbsp;1766 (например: ru-RU или&nbsp;en-US):',
    MAX_LANGUAGE_LENGTH
  );
  
  
  
  
  

// add localization ===============================
i++;
id = "managementButtonForm" + i;
managementButtons[i] = createFormDescription
( 
  id, 
  DOCUMENT_MANAGEMENT_REQUEST_BASE + PARAM_FUNCTION_DOCUMENT_ADD,
  PARAM_NEW_DOCUMENT_TITLE, 
  "Добавить перевод текущего документа (он&nbsp;будет доступен в&nbsp;списке языков текущего документа).", 
  function() { return confirm( 'Создать перевод?' ) }, 
  managementBoxFormResponseCallbackFunction,
  "Отправить запрос" 
);
managementButtons[i]['imageUrl'] = THEME_PATH + "icons/addlocalization.gif";
managementButtons[i]['displayIfTrue'] = "USER_RIGHTS_ADD";

  fieldId = PARAM_PREVIOUS_DOCUMENT_URL;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_URL 
  );
  
  fieldId = PARAM_DOCUMENT_PATH_STRING;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_PATH_STRING 
  );
  

  fieldId = PARAM_NEW_DOCUMENT_TYPE;
  var item = 0;
  var itemsValues = new Array();
  var itemsCaptions = new Array();
  for ( var index in MODULES_SCREEN_NAMES )
  {
    itemsValues[item] = index;
    itemsCaptions[item] = MODULES_SCREEN_NAMES[index];
    item++;
  };
  managementButtons[i].radioControlAdd
  ( 
    fieldId, 
    DOCUMENT_TYPE,
    'Тип создаваемого документа:',
    itemsValues,
    itemsCaptions
  );
  
  fieldId = PARAM_NEW_DOCUMENT_TITLE;
  managementButtons[i].textControlAdd
  ( 
    fieldId, 
    '',
    'Заголовок документа:',
    MAX_DOCUMENT_TITLE_LENGTH
  );
  
  fieldId = PARAM_NEW_DOCUMENT_SUMMARY;
  managementButtons[i].textareaControlAdd
  ( 
    fieldId, 
    '',
    'Краткое содержание документа:',
    MAX_DOCUMENT_SUMMARY_LENGTH
  );
  
  fieldId = PARAM_NEW_DOCUMENT_NAME;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    ''
  );
  
  fieldId = PARAM_NEW_DOCUMENT_LANGUAGE;
  managementButtons[i].textControlAdd
  ( 
    fieldId, 
    '',
    'Код&nbsp;языка документа по&nbsp;стандарту RFC&nbsp;1766 (например: ru-RU или&nbsp;en-US):',
    MAX_LANGUAGE_LENGTH
  );
    
    
    
    
    
// delete localization ===============================
i++;
id = "managementButtonForm" + i;
managementButtons[i] = createFormDescription
( 
  id, 
  DOCUMENT_MANAGEMENT_REQUEST_BASE + PARAM_FUNCTION_DOCUMENT_REMOVE,
  PARAM_EDIT_DOCUMENT_TITLE, 
  "Удалить текущую локализацию этого документа.", 
  function() { return confirm( 'Удалить текущую локализацию документа?' ) }, 
  managementBoxFormResponseCallbackFunction,
  "Отправить запрос" 
);
managementButtons[i]['imageUrl'] = THEME_PATH + "icons/deletelocalization.gif";
managementButtons[i]['displayIfTrue'] = "USER_RIGHTS_DELETE";

  fieldId = PARAM_PREVIOUS_DOCUMENT_URL;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_URL 
  );
  
  fieldId = PARAM_DOCUMENT_PATH_STRING;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_PATH_STRING 
  );
  
  

  
/*  
  
// edit links ===============================
i++;
id = "managementButtonForm" + i;
managementButtons[i] = createFormDescription
( 
  id, 
  DOCUMENT_MANAGEMENT_REQUEST_BASE + PARAM_FUNCTION_LINKS_EDIT,
  PARAM_EDIT_DOCUMENT_TITLE, 
  "Редактировать связи документа.", 
  function() { return confirm( 'Сохранить отредактированные связи?' ) }, 
  managementBoxFormResponseCallbackFunction,
  "Отправить запрос" 
);
managementButtons[i]['imageUrl'] = THEME_PATH + "icons/editlinks.gif";
managementButtons[i]['displayIfTrue'] = "USER_RIGHTS_ADD";

  fieldId = PARAM_PREVIOUS_DOCUMENT_URL;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_URL 
  );
  
  fieldId = PARAM_DOCUMENT_PATH_STRING;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_PATH_STRING 
  );
  
  

  
  
        
// optimize document ===============================
i++;
id = "managementButtonForm" + i;
managementButtons[i] = createFormDescription
( 
  id, 
  DOCUMENT_MANAGEMENT_REQUEST_BASE + PARAM_FUNCTION_DOCUMENT_OPTIMIZE,
  PARAM_EDIT_DOCUMENT_TITLE, 
  "Оптимизировать текущую локализацию документа.", 
  function() { return confirm( 'Выполнить оптимизацию?' ) }, 
  managementBoxFormResponseCallbackFunction,
  "Отправить запрос" 
);
managementButtons[i]['imageUrl'] = THEME_PATH + "icons/optimizedocument.gif";
managementButtons[i]['displayIfTrue'] = "USER_RIGHTS_SETUP";

  fieldId = PARAM_PREVIOUS_DOCUMENT_URL;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_URL 
  );
  
  fieldId = PARAM_DOCUMENT_PATH_STRING;
  managementButtons[i].hiddenControlAdd
  ( 
    fieldId, 
    DOCUMENT_PATH_STRING 
  );
  
  */

  
// form submit response callback function
function managementBoxFormResponseCallbackFunction( response )
{
  if ( isValidUrl( response ) )
  {
    if ( confirm( "Операция выполнена успешно. Перейти к документу?" ) )
    {
      if ( window.location.href != response )
        window.location.href = response;
      else
        window.location.reload( true );
    };
  }
  else if ( response == RESPONSE_REQUEST_PROCEEDED_SUCCESSFULLY )
    alert( "Операция выполнена успешно." );
  else
    alert( response );
}

// generates the document management buttons and fills the
// element with given id with them
function updateManagementBoxButtons( managementBoxId )
{
  managementBox = obtainElementById( managementBoxId );
  if ( !managementBox )
    return;
  
  // generating buttons
  var output = "";
  
  for ( var i = 0; i < managementButtons.length; i++ )
  {
    // skipping if there's not enough rights for this
    var allowed = false;
    eval( "allowed = " + managementButtons[i]['displayIfTrue'] );
    if ( !allowed )
      continue;
  
    // the hint form content
    // this value is stored in management buttons
    try
    {
      forms.add( managementButtons[i] );
      managementButtons[i]['html'] = forms[managementButtons[i]['id']].generateHtml();
    }
    catch (e)
    {
      alert( e.message );
    };

    // the button itself
    output += "<td>\n";
      
    output += "<div id='"+managementButtons[i]['id']+"' class='buttoninputicon' style='background-image:url(\""+managementButtons[i]['imageUrl']+"\");'>\n";
    output += "<input type='button' value=''\n";
    output += "  onmouseover='javascript: if ( siteHelperPanelOpened ) { placeElementWithContentOnTopFromMe( this, \"hintconstrain\", \"hintcontent\", managementButtons["+i+"][\"html\"], 0, 0, hintHidingDelay ); populateFormControls(\""+managementButtons[i]['id']+"\"); focusFormPreferredControl(\""+managementButtons[i]['id']+"\"); };'\n";
    output += "  onmouseout='javascript: startHidingLastElement(\"hintconstrain\");'"
    output += "  onclick='javascript: submitForm(\""+managementButtons[i]['id']+"\")'"
    output += " />";
    output += "</div>";
    
    output += "</td>\n";
  };
  
  // updating the management box content
  if ( output != "" )
    managementBox.innerHTML = "<table class='buttonspanel'>\n<tr>\n" + output + "</tr>\n</table>\n";
  else
    managementBox.innerHTML = "";
    
}

// preinitialization is performed in the login box
//updateManagementBoxButtons( "managementbox" );


