// swad_action.h: actions

#ifndef _SWAD_ACT
#define _SWAD_ACT
/*
    SWAD (Shared Workspace At a Distance),
    is a web platform developed at the University of Granada (Spain),
    and used to support university teaching.

    This file is part of SWAD core.
    Copyright (C) 1999-2016 Antonio Caņas Vargas

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
/*****************************************************************************/
/********************************** Headers **********************************/
/*****************************************************************************/

#include <stdbool.h>		// For boolean type

#include "swad_cryptography.h"
#include "swad_tab.h"
#include "swad_text.h"

/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/

#define Act_MAX_LENGTH_ACTION_TXT	255

typedef enum
  {
   Act_CONT_NORM,
   Act_CONT_DATA,
  } Act_Content_t;

typedef enum
  {
   Act_THIS_WINDOW,	// The current tab in the browser
   Act_BLNK_WINDOW,	// A new blank tab in the browser
   Act_UPLOAD_FILE,	// Upload a file. Do not write HTML content. Write Status code instead for Dropzone.js
   Act_DOWNLD_FILE,	// Download a file in a new window. Do not write HTML content.
  } Act_BrowserWindow_t;

typedef int Act_Action_t;	// Must be a signed type, because -1 is used to indicate obsolete action

#define Act_NUM_ACTIONS	(1+9+51+14+93+73+70+249+186+158+172+36+31+95)

#define Act_MAX_ACTION_COD 1615

#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 11

#define Act_MAX_LENGTH_ID	(32+Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64+10+1)

/*****************************************************************************/
/************************* Not asociates with tabs ***************************/
/*****************************************************************************/
#define ActAll			 0

#define ActUnk			 1
#define ActHom			 2
#define ActMnu			 3

// The following 5 actions use AJAX to refresh only a part of the page
#define ActRefCon		 4
#define ActRefLstClk		 5
#define ActRefNewSocPubGbl	 6
#define ActRefOldSocPubGbl	 7
#define ActRefOldSocPubUsr	 8

#define ActWebSvc		 9

/*****************************************************************************/
/******************************** System tab *********************************/
/*****************************************************************************/
// Actions in menu
#define ActSysReqSch		(ActWebSvc+  1)
#define ActSeeCty		(ActWebSvc+  2)
#define ActSeePen		(ActWebSvc+  3)
#define ActReqRemOldCrs		(ActWebSvc+  4)
#define ActSeeDegTyp		(ActWebSvc+  5)
#define ActSeeMai		(ActWebSvc+  6)
#define ActSeeBan		(ActWebSvc+  7)
#define ActSeeLnk		(ActWebSvc+  8)
#define ActLstPlg		(ActWebSvc+  9)
#define ActSetUp		(ActWebSvc+ 10)
// Secondary actions
#define ActSysSch		(ActWebSvc+ 11)
#define ActEdiDegTyp		(ActWebSvc+ 12)
#define ActEdiCty		(ActWebSvc+ 13)
#define ActNewCty		(ActWebSvc+ 14)
#define ActRemCty		(ActWebSvc+ 15)
#define ActRenCty		(ActWebSvc+ 16)
#define ActChgCtyWWW		(ActWebSvc+ 17)

#define ActNewDegTyp		(ActWebSvc+ 18)
#define ActRemDegTyp		(ActWebSvc+ 19)
#define ActRenDegTyp		(ActWebSvc+ 20)

#define ActRemOldCrs		(ActWebSvc+ 21)
#define ActEdiMai		(ActWebSvc+ 22)
#define ActNewMai		(ActWebSvc+ 23)
#define ActRemMai		(ActWebSvc+ 24)
#define ActRenMaiSho		(ActWebSvc+ 25)
#define ActRenMaiFul		(ActWebSvc+ 26)

#define ActEdiBan		(ActWebSvc+ 27)
#define ActNewBan		(ActWebSvc+ 28)
#define ActRemBan		(ActWebSvc+ 29)
#define ActShoBan		(ActWebSvc+ 30)
#define ActHidBan		(ActWebSvc+ 31)
#define ActRenBanSho		(ActWebSvc+ 32)
#define ActRenBanFul		(ActWebSvc+ 33)
#define ActChgBanImg		(ActWebSvc+ 34)
#define ActChgBanWWW		(ActWebSvc+ 35)
#define ActClkBan		(ActWebSvc+ 36)

#define ActEdiLnk		(ActWebSvc+ 37)
#define ActNewLnk		(ActWebSvc+ 38)
#define ActRemLnk		(ActWebSvc+ 39)
#define ActRenLnkSho		(ActWebSvc+ 40)
#define ActRenLnkFul		(ActWebSvc+ 41)
#define ActChgLnkWWW		(ActWebSvc+ 42)

#define ActEdiPlg		(ActWebSvc+ 43)
#define ActNewPlg		(ActWebSvc+ 44)
#define ActRemPlg		(ActWebSvc+ 45)
#define ActRenPlg		(ActWebSvc+ 46)
#define ActChgPlgDes		(ActWebSvc+ 47)
#define ActChgPlgLog		(ActWebSvc+ 48)
#define ActChgPlgAppKey		(ActWebSvc+ 49)
#define ActChgPlgURL		(ActWebSvc+ 50)
#define ActChgPlgIP		(ActWebSvc+ 51)

/*****************************************************************************/
/******************************** Country tab ********************************/
/*****************************************************************************/
// Actions in menu
#define ActCtyReqSch		(ActChgPlgIP+  1)
#define ActSeeCtyInf		(ActChgPlgIP+  2)
#define ActSeeIns		(ActChgPlgIP+  3)

// Secondary actions
#define ActCtySch		(ActChgPlgIP+  4)
#define ActPrnCtyInf		(ActChgPlgIP+  5)
#define ActChgCtyMapAtt		(ActChgPlgIP+  6)

#define ActEdiIns		(ActChgPlgIP+  7)
#define ActReqIns		(ActChgPlgIP+  8)
#define ActNewIns		(ActChgPlgIP+  9)
#define ActRemIns		(ActChgPlgIP+ 10)
#define ActRenInsSho		(ActChgPlgIP+ 11)
#define ActRenInsFul		(ActChgPlgIP+ 12)
#define ActChgInsWWW		(ActChgPlgIP+ 13)
#define ActChgInsSta		(ActChgPlgIP+ 14)

/*****************************************************************************/
/****************************** Institution tab ******************************/
/*****************************************************************************/
// Actions in menu
#define ActInsReqSch		(ActChgInsSta+  1)
#define ActSeeInsInf		(ActChgInsSta+  2)
#define ActSeeCtr		(ActChgInsSta+  3)
#define ActSeeDpt		(ActChgInsSta+  4)
#define ActSeePlc		(ActChgInsSta+  5)
#define ActSeeHld		(ActChgInsSta+  6)
#define ActSeeAdmDocIns		(ActChgInsSta+  7)
#define ActAdmShaIns		(ActChgInsSta+  8)

// Secondary actions
#define ActInsSch		(ActChgInsSta+  9)
#define ActPrnInsInf		(ActChgInsSta+ 10)
#define ActChgInsCtyCfg		(ActChgInsSta+ 11)
#define ActRenInsShoCfg		(ActChgInsSta+ 12)
#define ActRenInsFulCfg		(ActChgInsSta+ 13)
#define ActChgInsWWWCfg		(ActChgInsSta+ 14)
#define ActReqInsLog		(ActChgInsSta+ 15)
#define ActRecInsLog		(ActChgInsSta+ 16)
#define ActRemInsLog		(ActChgInsSta+ 17)

#define ActEdiCtr		(ActChgInsSta+ 18)
#define ActReqCtr		(ActChgInsSta+ 19)
#define ActNewCtr		(ActChgInsSta+ 20)
#define ActRemCtr		(ActChgInsSta+ 21)
#define ActChgCtrPlc		(ActChgInsSta+ 22)
#define ActRenCtrSho		(ActChgInsSta+ 23)
#define ActRenCtrFul		(ActChgInsSta+ 24)
#define ActChgCtrWWW		(ActChgInsSta+ 25)
#define ActChgCtrSta		(ActChgInsSta+ 26)

#define ActEdiDpt		(ActChgInsSta+ 27)
#define ActNewDpt		(ActChgInsSta+ 28)
#define ActRemDpt		(ActChgInsSta+ 29)
#define ActChgDptIns		(ActChgInsSta+ 30)
#define ActRenDptSho		(ActChgInsSta+ 31)
#define ActRenDptFul		(ActChgInsSta+ 32)
#define ActChgDptWWW		(ActChgInsSta+ 33)

#define ActEdiPlc		(ActChgInsSta+ 34)
#define ActNewPlc		(ActChgInsSta+ 35)
#define ActRemPlc		(ActChgInsSta+ 36)
#define ActRenPlcSho		(ActChgInsSta+ 37)
#define ActRenPlcFul		(ActChgInsSta+ 38)

#define ActEdiHld		(ActChgInsSta+ 39)
#define ActNewHld		(ActChgInsSta+ 40)
#define ActRemHld		(ActChgInsSta+ 41)
#define ActChgHldPlc		(ActChgInsSta+ 42)
#define ActChgHldTyp		(ActChgInsSta+ 43)
#define ActChgHldStrDat		(ActChgInsSta+ 44)
#define ActChgHldEndDat		(ActChgInsSta+ 45)
#define ActRenHld		(ActChgInsSta+ 46)

#define ActChgToSeeDocIns	(ActChgInsSta+ 47)
#define ActSeeDocIns		(ActChgInsSta+ 48)
#define ActExpSeeDocIns		(ActChgInsSta+ 49)
#define ActConSeeDocIns		(ActChgInsSta+ 50)
#define ActZIPSeeDocIns		(ActChgInsSta+ 51)
#define ActReqDatSeeDocIns	(ActChgInsSta+ 52)
#define ActDowSeeDocIns		(ActChgInsSta+ 53)
#define ActChgToAdmDocIns	(ActChgInsSta+ 54)
#define ActAdmDocIns		(ActChgInsSta+ 55)
#define ActReqRemFilDocIns	(ActChgInsSta+ 56)
#define ActRemFilDocIns		(ActChgInsSta+ 57)
#define ActRemFolDocIns		(ActChgInsSta+ 58)
#define ActCopDocIns		(ActChgInsSta+ 59)
#define ActPasDocIns		(ActChgInsSta+ 60)
#define ActRemTreDocIns		(ActChgInsSta+ 61)
#define ActFrmCreDocIns		(ActChgInsSta+ 62)
#define ActCreFolDocIns		(ActChgInsSta+ 63)
#define ActCreLnkDocIns		(ActChgInsSta+ 64)
#define ActRenFolDocIns		(ActChgInsSta+ 65)
#define ActRcvFilDocInsDZ	(ActChgInsSta+ 66)
#define ActRcvFilDocInsCla	(ActChgInsSta+ 67)
#define ActExpAdmDocIns		(ActChgInsSta+ 68)
#define ActConAdmDocIns		(ActChgInsSta+ 69)
#define ActZIPAdmDocIns		(ActChgInsSta+ 70)
#define ActShoDocIns		(ActChgInsSta+ 71)
#define ActHidDocIns		(ActChgInsSta+ 72)
#define ActReqDatAdmDocIns	(ActChgInsSta+ 73)
#define ActChgDatAdmDocIns	(ActChgInsSta+ 74)
#define ActDowAdmDocIns		(ActChgInsSta+ 75)

#define ActReqRemFilShaIns	(ActChgInsSta+ 76)
#define ActRemFilShaIns		(ActChgInsSta+ 77)
#define ActRemFolShaIns		(ActChgInsSta+ 78)
#define ActCopShaIns		(ActChgInsSta+ 79)
#define ActPasShaIns		(ActChgInsSta+ 80)
#define ActRemTreShaIns		(ActChgInsSta+ 81)
#define ActFrmCreShaIns		(ActChgInsSta+ 82)
#define ActCreFolShaIns		(ActChgInsSta+ 83)
#define ActCreLnkShaIns		(ActChgInsSta+ 84)
#define ActRenFolShaIns		(ActChgInsSta+ 85)
#define ActRcvFilShaInsDZ	(ActChgInsSta+ 86)
#define ActRcvFilShaInsCla	(ActChgInsSta+ 87)
#define ActExpShaIns		(ActChgInsSta+ 88)
#define ActConShaIns		(ActChgInsSta+ 89)
#define ActZIPShaIns		(ActChgInsSta+ 90)
#define ActReqDatShaIns		(ActChgInsSta+ 91)
#define ActChgDatShaIns		(ActChgInsSta+ 92)
#define ActDowShaIns		(ActChgInsSta+ 93)

/*****************************************************************************/
/********************************* Centre tab ********************************/
/*****************************************************************************/
// Actions in menu
#define ActCtrReqSch		(ActDowShaIns+  1)
#define ActSeeCtrInf		(ActDowShaIns+  2)
#define ActSeeDeg		(ActDowShaIns+  3)
#define ActSeeAdmDocCtr		(ActDowShaIns+  4)
#define ActAdmShaCtr		(ActDowShaIns+  5)

// Secondary actions
#define ActCtrSch		(ActDowShaIns+  6)
#define ActPrnCtrInf		(ActDowShaIns+  7)
#define ActChgCtrInsCfg		(ActDowShaIns+  8)
#define ActRenCtrShoCfg		(ActDowShaIns+  9)
#define ActRenCtrFulCfg		(ActDowShaIns+ 10)
#define ActChgCtrWWWCfg		(ActDowShaIns+ 11)
#define ActReqCtrLog		(ActDowShaIns+ 12)
#define ActRecCtrLog		(ActDowShaIns+ 13)
#define ActRemCtrLog		(ActDowShaIns+ 14)
#define ActReqCtrPho		(ActDowShaIns+ 15)
#define ActRecCtrPho		(ActDowShaIns+ 16)
#define ActChgCtrPhoAtt		(ActDowShaIns+ 17)

#define ActEdiDeg		(ActDowShaIns+ 18)
#define ActReqDeg		(ActDowShaIns+ 19)
#define ActNewDeg		(ActDowShaIns+ 20)
#define ActRemDeg		(ActDowShaIns+ 21)
#define ActRenDegSho		(ActDowShaIns+ 22)
#define ActRenDegFul		(ActDowShaIns+ 23)
#define ActChgDegTyp		(ActDowShaIns+ 24)
#define ActChgDegWWW		(ActDowShaIns+ 25)
#define ActChgDegSta		(ActDowShaIns+ 26)

#define ActChgToSeeDocCtr	(ActDowShaIns+ 27)
#define ActSeeDocCtr		(ActDowShaIns+ 28)
#define ActExpSeeDocCtr		(ActDowShaIns+ 29)
#define ActConSeeDocCtr		(ActDowShaIns+ 30)
#define ActZIPSeeDocCtr		(ActDowShaIns+ 31)
#define ActReqDatSeeDocCtr	(ActDowShaIns+ 32)
#define ActDowSeeDocCtr		(ActDowShaIns+ 33)
#define ActChgToAdmDocCtr	(ActDowShaIns+ 34)
#define ActAdmDocCtr		(ActDowShaIns+ 35)
#define ActReqRemFilDocCtr	(ActDowShaIns+ 36)
#define ActRemFilDocCtr		(ActDowShaIns+ 37)
#define ActRemFolDocCtr		(ActDowShaIns+ 38)
#define ActCopDocCtr		(ActDowShaIns+ 39)
#define ActPasDocCtr		(ActDowShaIns+ 40)
#define ActRemTreDocCtr		(ActDowShaIns+ 41)
#define ActFrmCreDocCtr		(ActDowShaIns+ 42)
#define ActCreFolDocCtr		(ActDowShaIns+ 43)
#define ActCreLnkDocCtr		(ActDowShaIns+ 44)
#define ActRenFolDocCtr		(ActDowShaIns+ 45)
#define ActRcvFilDocCtrDZ	(ActDowShaIns+ 46)
#define ActRcvFilDocCtrCla	(ActDowShaIns+ 47)
#define ActExpAdmDocCtr		(ActDowShaIns+ 48)
#define ActConAdmDocCtr		(ActDowShaIns+ 49)
#define ActZIPAdmDocCtr		(ActDowShaIns+ 50)
#define ActShoDocCtr		(ActDowShaIns+ 51)
#define ActHidDocCtr		(ActDowShaIns+ 52)
#define ActReqDatAdmDocCtr	(ActDowShaIns+ 53)
#define ActChgDatAdmDocCtr	(ActDowShaIns+ 54)
#define ActDowAdmDocCtr		(ActDowShaIns+ 55)

#define ActReqRemFilShaCtr	(ActDowShaIns+ 56)
#define ActRemFilShaCtr		(ActDowShaIns+ 57)
#define ActRemFolShaCtr		(ActDowShaIns+ 58)
#define ActCopShaCtr		(ActDowShaIns+ 59)
#define ActPasShaCtr		(ActDowShaIns+ 60)
#define ActRemTreShaCtr		(ActDowShaIns+ 61)
#define ActFrmCreShaCtr		(ActDowShaIns+ 62)
#define ActCreFolShaCtr		(ActDowShaIns+ 63)
#define ActCreLnkShaCtr		(ActDowShaIns+ 64)
#define ActRenFolShaCtr		(ActDowShaIns+ 65)
#define ActRcvFilShaCtrDZ	(ActDowShaIns+ 66)
#define ActRcvFilShaCtrCla	(ActDowShaIns+ 67)
#define ActExpShaCtr		(ActDowShaIns+ 68)
#define ActConShaCtr		(ActDowShaIns+ 69)
#define ActZIPShaCtr		(ActDowShaIns+ 70)
#define ActReqDatShaCtr		(ActDowShaIns+ 71)
#define ActChgDatShaCtr		(ActDowShaIns+ 72)
#define ActDowShaCtr		(ActDowShaIns+ 73)

/*****************************************************************************/
/********************************* Degree tab ********************************/
/*****************************************************************************/
// Actions in menu
#define ActDegReqSch		(ActDowShaCtr+  1)
#define ActSeeDegInf		(ActDowShaCtr+  2)
#define ActSeeCrs		(ActDowShaCtr+  3)
#define ActSeeAdmDocDeg		(ActDowShaCtr+  4)
#define ActAdmShaDeg		(ActDowShaCtr+  5)

// Secondary actions
#define ActDegSch		(ActDowShaCtr+  6)
#define ActPrnDegInf		(ActDowShaCtr+  7)
#define ActChgDegCtrCfg		(ActDowShaCtr+  8)
#define ActRenDegShoCfg		(ActDowShaCtr+  9)
#define ActRenDegFulCfg		(ActDowShaCtr+ 10)
#define ActChgDegWWWCfg		(ActDowShaCtr+ 11)
#define ActReqDegLog		(ActDowShaCtr+ 12)
#define ActRecDegLog		(ActDowShaCtr+ 13)
#define ActRemDegLog		(ActDowShaCtr+ 14)

#define ActEdiCrs		(ActDowShaCtr+ 15)
#define ActReqCrs		(ActDowShaCtr+ 16)
#define ActNewCrs		(ActDowShaCtr+ 17)
#define ActRemCrs		(ActDowShaCtr+ 18)
#define ActChgInsCrsCod		(ActDowShaCtr+ 19)
#define ActChgCrsYea		(ActDowShaCtr+ 20)
#define ActRenCrsSho		(ActDowShaCtr+ 21)
#define ActRenCrsFul		(ActDowShaCtr+ 22)
#define ActChgCrsSta		(ActDowShaCtr+ 23)

#define ActChgToSeeDocDeg	(ActDowShaCtr+ 24)
#define ActSeeDocDeg		(ActDowShaCtr+ 25)
#define ActExpSeeDocDeg		(ActDowShaCtr+ 26)
#define ActConSeeDocDeg		(ActDowShaCtr+ 27)
#define ActZIPSeeDocDeg		(ActDowShaCtr+ 28)
#define ActReqDatSeeDocDeg	(ActDowShaCtr+ 29)
#define ActDowSeeDocDeg		(ActDowShaCtr+ 30)
#define ActChgToAdmDocDeg	(ActDowShaCtr+ 31)
#define ActAdmDocDeg		(ActDowShaCtr+ 32)
#define ActReqRemFilDocDeg	(ActDowShaCtr+ 33)
#define ActRemFilDocDeg		(ActDowShaCtr+ 34)
#define ActRemFolDocDeg		(ActDowShaCtr+ 35)
#define ActCopDocDeg		(ActDowShaCtr+ 36)
#define ActPasDocDeg		(ActDowShaCtr+ 37)
#define ActRemTreDocDeg		(ActDowShaCtr+ 38)
#define ActFrmCreDocDeg		(ActDowShaCtr+ 39)
#define ActCreFolDocDeg		(ActDowShaCtr+ 40)
#define ActCreLnkDocDeg		(ActDowShaCtr+ 41)
#define ActRenFolDocDeg		(ActDowShaCtr+ 42)
#define ActRcvFilDocDegDZ	(ActDowShaCtr+ 43)
#define ActRcvFilDocDegCla	(ActDowShaCtr+ 44)
#define ActExpAdmDocDeg		(ActDowShaCtr+ 45)
#define ActConAdmDocDeg		(ActDowShaCtr+ 46)
#define ActZIPAdmDocDeg		(ActDowShaCtr+ 47)
#define ActShoDocDeg		(ActDowShaCtr+ 48)
#define ActHidDocDeg		(ActDowShaCtr+ 49)
#define ActReqDatAdmDocDeg	(ActDowShaCtr+ 50)
#define ActChgDatAdmDocDeg	(ActDowShaCtr+ 51)
#define ActDowAdmDocDeg		(ActDowShaCtr+ 52)

#define ActReqRemFilShaDeg	(ActDowShaCtr+ 53)
#define ActRemFilShaDeg		(ActDowShaCtr+ 54)
#define ActRemFolShaDeg		(ActDowShaCtr+ 55)
#define ActCopShaDeg		(ActDowShaCtr+ 56)
#define ActPasShaDeg		(ActDowShaCtr+ 57)
#define ActRemTreShaDeg		(ActDowShaCtr+ 58)
#define ActFrmCreShaDeg		(ActDowShaCtr+ 59)
#define ActCreFolShaDeg		(ActDowShaCtr+ 60)
#define ActCreLnkShaDeg		(ActDowShaCtr+ 61)
#define ActRenFolShaDeg		(ActDowShaCtr+ 62)
#define ActRcvFilShaDegDZ	(ActDowShaCtr+ 63)
#define ActRcvFilShaDegCla	(ActDowShaCtr+ 64)
#define ActExpShaDeg		(ActDowShaCtr+ 65)
#define ActConShaDeg		(ActDowShaCtr+ 66)
#define ActZIPShaDeg		(ActDowShaCtr+ 67)
#define ActReqDatShaDeg		(ActDowShaCtr+ 68)
#define ActChgDatShaDeg		(ActDowShaCtr+ 69)
#define ActDowShaDeg		(ActDowShaCtr+ 70)

/*****************************************************************************/
/******************************** Course tab *********************************/
/*****************************************************************************/
// Actions in menu
#define ActCrsReqSch		(ActDowShaDeg+  1)
#define ActSeeCrsInf		(ActDowShaDeg+  2)
#define ActSeeTchGui		(ActDowShaDeg+  3)
#define ActSeeSyl		(ActDowShaDeg+  4)
#define ActSeeAdmDocCrsGrp	(ActDowShaDeg+  5)
#define ActAdmTchCrsGrp		(ActDowShaDeg+  6)
#define ActAdmShaCrsGrp		(ActDowShaDeg+  7)
#define ActSeeCrsTT		(ActDowShaDeg+  8)
#define ActSeeBib		(ActDowShaDeg+  9)
#define ActSeeFAQ		(ActDowShaDeg+ 10)
#define ActSeeCrsLnk		(ActDowShaDeg+ 11)
// Secondary actions
#define ActCrsSch		(ActDowShaDeg+ 12)
#define ActPrnCrsInf		(ActDowShaDeg+ 13)
#define ActChgCrsDegCfg		(ActDowShaDeg+ 14)
#define ActRenCrsShoCfg		(ActDowShaDeg+ 15)
#define ActRenCrsFulCfg		(ActDowShaDeg+ 16)
#define ActChgInsCrsCodCfg	(ActDowShaDeg+ 17)
#define ActChgCrsYeaCfg		(ActDowShaDeg+ 18)
#define ActEdiCrsInf		(ActDowShaDeg+ 19)
#define ActEdiTchGui		(ActDowShaDeg+ 20)
#define ActPrnCrsTT		(ActDowShaDeg+ 21)
#define ActEdiCrsTT		(ActDowShaDeg+ 22)
#define ActChgCrsTT		(ActDowShaDeg+ 23)
#define ActChgCrsTT1stDay	(ActDowShaDeg+ 24)
#define ActSeeSylLec		(ActDowShaDeg+ 25)
#define ActSeeSylPra		(ActDowShaDeg+ 26)
#define ActEdiSylLec		(ActDowShaDeg+ 27)
#define ActEdiSylPra		(ActDowShaDeg+ 28)
#define ActDelItmSylLec		(ActDowShaDeg+ 29)
#define ActDelItmSylPra		(ActDowShaDeg+ 30)
#define ActUp_IteSylLec		(ActDowShaDeg+ 31)
#define ActUp_IteSylPra		(ActDowShaDeg+ 32)
#define ActDwnIteSylLec		(ActDowShaDeg+ 33)
#define ActDwnIteSylPra		(ActDowShaDeg+ 34)
#define ActRgtIteSylLec		(ActDowShaDeg+ 35)
#define ActRgtIteSylPra		(ActDowShaDeg+ 36)
#define ActLftIteSylLec		(ActDowShaDeg+ 37)
#define ActLftIteSylPra		(ActDowShaDeg+ 38)
#define ActInsIteSylLec		(ActDowShaDeg+ 39)
#define ActInsIteSylPra		(ActDowShaDeg+ 40)
#define ActModIteSylLec		(ActDowShaDeg+ 41)
#define ActModIteSylPra		(ActDowShaDeg+ 42)

#define ActChgToSeeDocCrs	(ActDowShaDeg+ 43)
#define ActSeeDocCrs		(ActDowShaDeg+ 44)
#define ActExpSeeDocCrs		(ActDowShaDeg+ 45)
#define ActConSeeDocCrs		(ActDowShaDeg+ 46)
#define ActZIPSeeDocCrs		(ActDowShaDeg+ 47)
#define ActReqDatSeeDocCrs	(ActDowShaDeg+ 48)
#define ActDowSeeDocCrs		(ActDowShaDeg+ 49)

#define ActSeeDocGrp		(ActDowShaDeg+ 50)
#define ActExpSeeDocGrp		(ActDowShaDeg+ 51)
#define ActConSeeDocGrp		(ActDowShaDeg+ 52)
#define ActZIPSeeDocGrp		(ActDowShaDeg+ 53)
#define ActReqDatSeeDocGrp	(ActDowShaDeg+ 54)
#define ActDowSeeDocGrp		(ActDowShaDeg+ 55)

#define ActChgToAdmDocCrs	(ActDowShaDeg+ 56)
#define ActAdmDocCrs		(ActDowShaDeg+ 57)
#define ActReqRemFilDocCrs	(ActDowShaDeg+ 58)
#define ActRemFilDocCrs		(ActDowShaDeg+ 59)
#define ActRemFolDocCrs		(ActDowShaDeg+ 60)
#define ActCopDocCrs		(ActDowShaDeg+ 61)
#define ActPasDocCrs		(ActDowShaDeg+ 62)
#define ActRemTreDocCrs		(ActDowShaDeg+ 63)
#define ActFrmCreDocCrs		(ActDowShaDeg+ 64)
#define ActCreFolDocCrs		(ActDowShaDeg+ 65)
#define ActCreLnkDocCrs		(ActDowShaDeg+ 66)
#define ActRenFolDocCrs		(ActDowShaDeg+ 67)
#define ActRcvFilDocCrsDZ	(ActDowShaDeg+ 68)
#define ActRcvFilDocCrsCla	(ActDowShaDeg+ 69)
#define ActExpAdmDocCrs		(ActDowShaDeg+ 70)
#define ActConAdmDocCrs		(ActDowShaDeg+ 71)
#define ActZIPAdmDocCrs		(ActDowShaDeg+ 72)
#define ActShoDocCrs		(ActDowShaDeg+ 73)
#define ActHidDocCrs		(ActDowShaDeg+ 74)
#define ActReqDatAdmDocCrs	(ActDowShaDeg+ 75)
#define ActChgDatAdmDocCrs	(ActDowShaDeg+ 76)
#define ActDowAdmDocCrs		(ActDowShaDeg+ 77)

#define ActAdmDocGrp		(ActDowShaDeg+ 78)
#define ActReqRemFilDocGrp	(ActDowShaDeg+ 79)
#define ActRemFilDocGrp		(ActDowShaDeg+ 80)
#define ActRemFolDocGrp		(ActDowShaDeg+ 81)
#define ActCopDocGrp		(ActDowShaDeg+ 82)
#define ActPasDocGrp		(ActDowShaDeg+ 83)
#define ActRemTreDocGrp		(ActDowShaDeg+ 84)
#define ActFrmCreDocGrp		(ActDowShaDeg+ 85)
#define ActCreFolDocGrp		(ActDowShaDeg+ 86)
#define ActCreLnkDocGrp		(ActDowShaDeg+ 87)
#define ActRenFolDocGrp		(ActDowShaDeg+ 88)
#define ActRcvFilDocGrpDZ	(ActDowShaDeg+ 89)
#define ActRcvFilDocGrpCla	(ActDowShaDeg+ 90)
#define ActExpAdmDocGrp		(ActDowShaDeg+ 91)
#define ActConAdmDocGrp		(ActDowShaDeg+ 92)
#define ActZIPAdmDocGrp		(ActDowShaDeg+ 93)
#define ActShoDocGrp		(ActDowShaDeg+ 94)
#define ActHidDocGrp		(ActDowShaDeg+ 95)
#define ActReqDatAdmDocGrp	(ActDowShaDeg+ 96)
#define ActChgDatAdmDocGrp	(ActDowShaDeg+ 97)
#define ActDowAdmDocGrp		(ActDowShaDeg+ 98)

#define ActChgToAdmTch		(ActDowShaDeg+ 99)

#define ActAdmTchCrs		(ActDowShaDeg+100)
#define ActReqRemFilTchCrs	(ActDowShaDeg+101)
#define ActRemFilTchCrs		(ActDowShaDeg+102)
#define ActRemFolTchCrs		(ActDowShaDeg+103)
#define ActCopTchCrs		(ActDowShaDeg+104)
#define ActPasTchCrs		(ActDowShaDeg+105)
#define ActRemTreTchCrs		(ActDowShaDeg+106)
#define ActFrmCreTchCrs		(ActDowShaDeg+107)
#define ActCreFolTchCrs		(ActDowShaDeg+108)
#define ActCreLnkTchCrs		(ActDowShaDeg+109)
#define ActRenFolTchCrs		(ActDowShaDeg+110)
#define ActRcvFilTchCrsDZ	(ActDowShaDeg+111)
#define ActRcvFilTchCrsCla	(ActDowShaDeg+112)
#define ActExpTchCrs		(ActDowShaDeg+113)
#define ActConTchCrs		(ActDowShaDeg+114)
#define ActZIPTchCrs		(ActDowShaDeg+115)
#define ActReqDatTchCrs		(ActDowShaDeg+116)
#define ActChgDatTchCrs		(ActDowShaDeg+117)
#define ActDowTchCrs		(ActDowShaDeg+118)

#define ActAdmTchGrp		(ActDowShaDeg+119)
#define ActReqRemFilTchGrp	(ActDowShaDeg+120)
#define ActRemFilTchGrp		(ActDowShaDeg+121)
#define ActRemFolTchGrp		(ActDowShaDeg+122)
#define ActCopTchGrp		(ActDowShaDeg+123)
#define ActPasTchGrp		(ActDowShaDeg+124)
#define ActRemTreTchGrp		(ActDowShaDeg+125)
#define ActFrmCreTchGrp		(ActDowShaDeg+126)
#define ActCreFolTchGrp		(ActDowShaDeg+127)
#define ActCreLnkTchGrp		(ActDowShaDeg+128)
#define ActRenFolTchGrp		(ActDowShaDeg+129)
#define ActRcvFilTchGrpDZ	(ActDowShaDeg+130)
#define ActRcvFilTchGrpCla	(ActDowShaDeg+131)
#define ActExpTchGrp		(ActDowShaDeg+132)
#define ActConTchGrp		(ActDowShaDeg+133)
#define ActZIPTchGrp		(ActDowShaDeg+134)
#define ActReqDatTchGrp		(ActDowShaDeg+135)
#define ActChgDatTchGrp		(ActDowShaDeg+136)
#define ActDowTchGrp		(ActDowShaDeg+137)

#define ActChgToAdmSha		(ActDowShaDeg+138)

#define ActAdmShaCrs		(ActDowShaDeg+139)
#define ActReqRemFilShaCrs	(ActDowShaDeg+140)
#define ActRemFilShaCrs		(ActDowShaDeg+141)
#define ActRemFolShaCrs		(ActDowShaDeg+142)
#define ActCopShaCrs		(ActDowShaDeg+143)
#define ActPasShaCrs		(ActDowShaDeg+144)
#define ActRemTreShaCrs		(ActDowShaDeg+145)
#define ActFrmCreShaCrs		(ActDowShaDeg+146)
#define ActCreFolShaCrs		(ActDowShaDeg+147)
#define ActCreLnkShaCrs		(ActDowShaDeg+148)
#define ActRenFolShaCrs		(ActDowShaDeg+149)
#define ActRcvFilShaCrsDZ	(ActDowShaDeg+150)
#define ActRcvFilShaCrsCla	(ActDowShaDeg+151)
#define ActExpShaCrs		(ActDowShaDeg+152)
#define ActConShaCrs		(ActDowShaDeg+153)
#define ActZIPShaCrs		(ActDowShaDeg+154)
#define ActReqDatShaCrs		(ActDowShaDeg+155)
#define ActChgDatShaCrs		(ActDowShaDeg+156)
#define ActDowShaCrs		(ActDowShaDeg+157)

#define ActAdmShaGrp		(ActDowShaDeg+158)
#define ActReqRemFilShaGrp	(ActDowShaDeg+159)
#define ActRemFilShaGrp		(ActDowShaDeg+160)
#define ActRemFolShaGrp		(ActDowShaDeg+161)
#define ActCopShaGrp		(ActDowShaDeg+162)
#define ActPasShaGrp		(ActDowShaDeg+163)
#define ActRemTreShaGrp		(ActDowShaDeg+164)
#define ActFrmCreShaGrp		(ActDowShaDeg+165)
#define ActCreFolShaGrp		(ActDowShaDeg+166)
#define ActCreLnkShaGrp		(ActDowShaDeg+167)
#define ActRenFolShaGrp		(ActDowShaDeg+168)
#define ActRcvFilShaGrpDZ	(ActDowShaDeg+169)
#define ActRcvFilShaGrpCla	(ActDowShaDeg+170)
#define ActExpShaGrp		(ActDowShaDeg+171)
#define ActConShaGrp		(ActDowShaDeg+172)
#define ActZIPShaGrp		(ActDowShaDeg+173)
#define ActReqDatShaGrp		(ActDowShaDeg+174)
#define ActChgDatShaGrp		(ActDowShaDeg+175)
#define ActDowShaGrp		(ActDowShaDeg+176)

#define ActEdiBib		(ActDowShaDeg+177)
#define ActEdiFAQ		(ActDowShaDeg+178)
#define ActEdiCrsLnk		(ActDowShaDeg+179)

#define ActChgFrcReaCrsInf	(ActDowShaDeg+180)
#define ActChgFrcReaTchGui	(ActDowShaDeg+181)
#define ActChgFrcReaSylLec	(ActDowShaDeg+182)
#define ActChgFrcReaSylPra	(ActDowShaDeg+183)
#define ActChgFrcReaBib		(ActDowShaDeg+184)
#define ActChgFrcReaFAQ		(ActDowShaDeg+185)
#define ActChgFrcReaCrsLnk	(ActDowShaDeg+186)

#define ActChgHavReaCrsInf	(ActDowShaDeg+187)
#define ActChgHavReaTchGui	(ActDowShaDeg+188)
#define ActChgHavReaSylLec	(ActDowShaDeg+189)
#define ActChgHavReaSylPra	(ActDowShaDeg+190)
#define ActChgHavReaBib		(ActDowShaDeg+191)
#define ActChgHavReaFAQ		(ActDowShaDeg+192)
#define ActChgHavReaCrsLnk	(ActDowShaDeg+193)

#define ActSelInfSrcCrsInf	(ActDowShaDeg+194)
#define ActSelInfSrcTchGui	(ActDowShaDeg+195)
#define ActSelInfSrcSylLec	(ActDowShaDeg+196)
#define ActSelInfSrcSylPra	(ActDowShaDeg+197)
#define ActSelInfSrcBib		(ActDowShaDeg+198)
#define ActSelInfSrcFAQ		(ActDowShaDeg+199)
#define ActSelInfSrcCrsLnk	(ActDowShaDeg+200)
#define ActRcvURLCrsInf		(ActDowShaDeg+201)
#define ActRcvURLTchGui		(ActDowShaDeg+202)
#define ActRcvURLSylLec		(ActDowShaDeg+203)
#define ActRcvURLSylPra		(ActDowShaDeg+204)
#define ActRcvURLBib		(ActDowShaDeg+205)
#define ActRcvURLFAQ		(ActDowShaDeg+206)
#define ActRcvURLCrsLnk		(ActDowShaDeg+207)
#define ActRcvPagCrsInf		(ActDowShaDeg+208)
#define ActRcvPagTchGui		(ActDowShaDeg+209)
#define ActRcvPagSylLec		(ActDowShaDeg+210)
#define ActRcvPagSylPra		(ActDowShaDeg+211)
#define ActRcvPagBib		(ActDowShaDeg+212)
#define ActRcvPagFAQ		(ActDowShaDeg+213)
#define ActRcvPagCrsLnk		(ActDowShaDeg+214)
#define ActEditorCrsInf		(ActDowShaDeg+215)
#define ActEditorTchGui		(ActDowShaDeg+216)
#define ActEditorSylLec		(ActDowShaDeg+217)
#define ActEditorSylPra		(ActDowShaDeg+218)
#define ActEditorBib		(ActDowShaDeg+219)
#define ActEditorFAQ		(ActDowShaDeg+220)
#define ActEditorCrsLnk		(ActDowShaDeg+221)
#define ActPlaTxtEdiCrsInf	(ActDowShaDeg+222)
#define ActPlaTxtEdiTchGui	(ActDowShaDeg+223)
#define ActPlaTxtEdiSylLec	(ActDowShaDeg+224)
#define ActPlaTxtEdiSylPra	(ActDowShaDeg+225)
#define ActPlaTxtEdiBib		(ActDowShaDeg+226)
#define ActPlaTxtEdiFAQ		(ActDowShaDeg+227)
#define ActPlaTxtEdiCrsLnk	(ActDowShaDeg+228)
#define ActRchTxtEdiCrsInf	(ActDowShaDeg+229)
#define ActRchTxtEdiTchGui	(ActDowShaDeg+230)
#define ActRchTxtEdiSylLec	(ActDowShaDeg+231)
#define ActRchTxtEdiSylPra	(ActDowShaDeg+232)
#define ActRchTxtEdiBib		(ActDowShaDeg+233)
#define ActRchTxtEdiFAQ		(ActDowShaDeg+234)
#define ActRchTxtEdiCrsLnk	(ActDowShaDeg+235)
#define ActRcvPlaTxtCrsInf	(ActDowShaDeg+236)
#define ActRcvPlaTxtTchGui	(ActDowShaDeg+237)
#define ActRcvPlaTxtSylLec	(ActDowShaDeg+238)
#define ActRcvPlaTxtSylPra	(ActDowShaDeg+239)
#define ActRcvPlaTxtBib		(ActDowShaDeg+240)
#define ActRcvPlaTxtFAQ		(ActDowShaDeg+241)
#define ActRcvPlaTxtCrsLnk	(ActDowShaDeg+242)
#define ActRcvRchTxtCrsInf	(ActDowShaDeg+243)
#define ActRcvRchTxtTchGui	(ActDowShaDeg+244)
#define ActRcvRchTxtSylLec	(ActDowShaDeg+245)
#define ActRcvRchTxtSylPra	(ActDowShaDeg+246)
#define ActRcvRchTxtBib		(ActDowShaDeg+247)
#define ActRcvRchTxtFAQ		(ActDowShaDeg+248)
#define ActRcvRchTxtCrsLnk	(ActDowShaDeg+249)

/*****************************************************************************/
/***************************** Assessment tab ********************************/
/*****************************************************************************/
// Actions in menu
#define ActSeeAss		(ActRcvRchTxtCrsLnk+  1)
#define ActSeeAsg		(ActRcvRchTxtCrsLnk+  2)
#define ActAdmAsgWrkUsr		(ActRcvRchTxtCrsLnk+  3)
#define ActReqAsgWrkCrs		(ActRcvRchTxtCrsLnk+  4)
#define ActReqTst		(ActRcvRchTxtCrsLnk+  5)
#define ActSeeCal		(ActRcvRchTxtCrsLnk+  6)
#define ActSeeAllExaAnn		(ActRcvRchTxtCrsLnk+  7)
#define ActSeeAdmMrk		(ActRcvRchTxtCrsLnk+  8)
// Secondary actions
#define ActEdiAss		(ActRcvRchTxtCrsLnk+  9)
#define ActChgFrcReaAss		(ActRcvRchTxtCrsLnk+ 10)
#define ActChgHavReaAss		(ActRcvRchTxtCrsLnk+ 11)
#define ActSelInfSrcAss		(ActRcvRchTxtCrsLnk+ 12)
#define ActRcvURLAss		(ActRcvRchTxtCrsLnk+ 13)
#define ActRcvPagAss		(ActRcvRchTxtCrsLnk+ 14)
#define ActEditorAss		(ActRcvRchTxtCrsLnk+ 15)
#define ActPlaTxtEdiAss		(ActRcvRchTxtCrsLnk+ 16)
#define ActRchTxtEdiAss		(ActRcvRchTxtCrsLnk+ 17)
#define ActRcvPlaTxtAss		(ActRcvRchTxtCrsLnk+ 18)
#define ActRcvRchTxtAss		(ActRcvRchTxtCrsLnk+ 19)

#define ActFrmNewAsg		(ActRcvRchTxtCrsLnk+ 20)
#define ActEdiOneAsg		(ActRcvRchTxtCrsLnk+ 21)
#define ActNewAsg		(ActRcvRchTxtCrsLnk+ 22)
#define ActChgAsg		(ActRcvRchTxtCrsLnk+ 23)
#define ActReqRemAsg		(ActRcvRchTxtCrsLnk+ 24)
#define ActRemAsg		(ActRcvRchTxtCrsLnk+ 25)
#define ActHidAsg		(ActRcvRchTxtCrsLnk+ 26)
#define ActShoAsg		(ActRcvRchTxtCrsLnk+ 27)

#define ActAdmAsgWrkCrs		(ActRcvRchTxtCrsLnk+ 28)

#define ActReqRemFilAsgUsr	(ActRcvRchTxtCrsLnk+ 29)
#define ActRemFilAsgUsr		(ActRcvRchTxtCrsLnk+ 30)
#define ActRemFolAsgUsr		(ActRcvRchTxtCrsLnk+ 31)
#define ActCopAsgUsr		(ActRcvRchTxtCrsLnk+ 32)
#define ActPasAsgUsr		(ActRcvRchTxtCrsLnk+ 33)
#define ActRemTreAsgUsr		(ActRcvRchTxtCrsLnk+ 34)
#define ActFrmCreAsgUsr		(ActRcvRchTxtCrsLnk+ 35)
#define ActCreFolAsgUsr		(ActRcvRchTxtCrsLnk+ 36)
#define ActCreLnkAsgUsr		(ActRcvRchTxtCrsLnk+ 37)
#define ActRenFolAsgUsr		(ActRcvRchTxtCrsLnk+ 38)
#define ActRcvFilAsgUsrDZ	(ActRcvRchTxtCrsLnk+ 39)
#define ActRcvFilAsgUsrCla	(ActRcvRchTxtCrsLnk+ 40)
#define ActExpAsgUsr		(ActRcvRchTxtCrsLnk+ 41)
#define ActConAsgUsr		(ActRcvRchTxtCrsLnk+ 42)
#define ActZIPAsgUsr		(ActRcvRchTxtCrsLnk+ 43)
#define ActReqDatAsgUsr		(ActRcvRchTxtCrsLnk+ 44)
#define ActChgDatAsgUsr		(ActRcvRchTxtCrsLnk+ 45)
#define ActDowAsgUsr		(ActRcvRchTxtCrsLnk+ 46)

#define ActReqRemFilWrkUsr	(ActRcvRchTxtCrsLnk+ 47)
#define ActRemFilWrkUsr		(ActRcvRchTxtCrsLnk+ 48)
#define ActRemFolWrkUsr		(ActRcvRchTxtCrsLnk+ 49)
#define ActCopWrkUsr		(ActRcvRchTxtCrsLnk+ 50)
#define ActPasWrkUsr		(ActRcvRchTxtCrsLnk+ 51)
#define ActRemTreWrkUsr		(ActRcvRchTxtCrsLnk+ 52)
#define ActFrmCreWrkUsr		(ActRcvRchTxtCrsLnk+ 53)
#define ActCreFolWrkUsr		(ActRcvRchTxtCrsLnk+ 54)
#define ActCreLnkWrkUsr		(ActRcvRchTxtCrsLnk+ 55)
#define ActRenFolWrkUsr		(ActRcvRchTxtCrsLnk+ 56)
#define ActRcvFilWrkUsrDZ	(ActRcvRchTxtCrsLnk+ 57)
#define ActRcvFilWrkUsrCla	(ActRcvRchTxtCrsLnk+ 58)
#define ActExpWrkUsr		(ActRcvRchTxtCrsLnk+ 59)
#define ActConWrkUsr		(ActRcvRchTxtCrsLnk+ 60)
#define ActZIPWrkUsr		(ActRcvRchTxtCrsLnk+ 61)
#define ActReqDatWrkUsr		(ActRcvRchTxtCrsLnk+ 62)
#define ActChgDatWrkUsr		(ActRcvRchTxtCrsLnk+ 63)
#define ActDowWrkUsr		(ActRcvRchTxtCrsLnk+ 64)

#define ActReqRemFilAsgCrs	(ActRcvRchTxtCrsLnk+ 65)
#define ActRemFilAsgCrs		(ActRcvRchTxtCrsLnk+ 66)
#define ActRemFolAsgCrs		(ActRcvRchTxtCrsLnk+ 67)
#define ActCopAsgCrs		(ActRcvRchTxtCrsLnk+ 68)
#define ActPasAsgCrs		(ActRcvRchTxtCrsLnk+ 69)
#define ActRemTreAsgCrs		(ActRcvRchTxtCrsLnk+ 70)
#define ActFrmCreAsgCrs		(ActRcvRchTxtCrsLnk+ 71)
#define ActCreFolAsgCrs		(ActRcvRchTxtCrsLnk+ 72)
#define ActCreLnkAsgCrs		(ActRcvRchTxtCrsLnk+ 73)
#define ActRenFolAsgCrs		(ActRcvRchTxtCrsLnk+ 74)
#define ActRcvFilAsgCrsDZ	(ActRcvRchTxtCrsLnk+ 75)
#define ActRcvFilAsgCrsCla	(ActRcvRchTxtCrsLnk+ 76)
#define ActExpAsgCrs		(ActRcvRchTxtCrsLnk+ 77)
#define ActConAsgCrs		(ActRcvRchTxtCrsLnk+ 78)
#define ActZIPAsgCrs		(ActRcvRchTxtCrsLnk+ 79)
#define ActReqDatAsgCrs		(ActRcvRchTxtCrsLnk+ 80)
#define ActChgDatAsgCrs		(ActRcvRchTxtCrsLnk+ 81)
#define ActDowAsgCrs		(ActRcvRchTxtCrsLnk+ 82)

#define ActReqRemFilWrkCrs	(ActRcvRchTxtCrsLnk+ 83)
#define ActRemFilWrkCrs		(ActRcvRchTxtCrsLnk+ 84)
#define ActRemFolWrkCrs		(ActRcvRchTxtCrsLnk+ 85)
#define ActCopWrkCrs		(ActRcvRchTxtCrsLnk+ 86)
#define ActPasWrkCrs		(ActRcvRchTxtCrsLnk+ 87)
#define ActRemTreWrkCrs		(ActRcvRchTxtCrsLnk+ 88)
#define ActFrmCreWrkCrs		(ActRcvRchTxtCrsLnk+ 89)
#define ActCreFolWrkCrs		(ActRcvRchTxtCrsLnk+ 90)
#define ActCreLnkWrkCrs		(ActRcvRchTxtCrsLnk+ 91)
#define ActRenFolWrkCrs		(ActRcvRchTxtCrsLnk+ 92)
#define ActRcvFilWrkCrsDZ	(ActRcvRchTxtCrsLnk+ 93)
#define ActRcvFilWrkCrsCla	(ActRcvRchTxtCrsLnk+ 94)
#define ActExpWrkCrs		(ActRcvRchTxtCrsLnk+ 95)
#define ActConWrkCrs		(ActRcvRchTxtCrsLnk+ 96)
#define ActZIPWrkCrs		(ActRcvRchTxtCrsLnk+ 97)
#define ActReqDatWrkCrs		(ActRcvRchTxtCrsLnk+ 98)
#define ActChgDatWrkCrs		(ActRcvRchTxtCrsLnk+ 99)
#define ActDowWrkCrs		(ActRcvRchTxtCrsLnk+100)

#define ActSeeTst		(ActRcvRchTxtCrsLnk+101)
#define ActAssTst		(ActRcvRchTxtCrsLnk+102)
#define ActEdiTstQst		(ActRcvRchTxtCrsLnk+103)
#define ActEdiOneTstQst		(ActRcvRchTxtCrsLnk+104)
#define ActReqImpTstQst		(ActRcvRchTxtCrsLnk+105)
#define ActImpTstQst		(ActRcvRchTxtCrsLnk+106)
#define ActLstTstQst		(ActRcvRchTxtCrsLnk+107)
#define ActRcvTstQst		(ActRcvRchTxtCrsLnk+108)
#define ActReqRemTstQst		(ActRcvRchTxtCrsLnk+109)
#define ActRemTstQst		(ActRcvRchTxtCrsLnk+110)
#define ActShfTstQst		(ActRcvRchTxtCrsLnk+111)
#define ActCfgTst		(ActRcvRchTxtCrsLnk+112)
#define ActEnableTag		(ActRcvRchTxtCrsLnk+113)
#define ActDisableTag		(ActRcvRchTxtCrsLnk+114)
#define ActRenTag		(ActRcvRchTxtCrsLnk+115)
#define ActRcvCfgTst		(ActRcvRchTxtCrsLnk+116)

#define ActReqSeeMyTstRes	(ActRcvRchTxtCrsLnk+117)
#define ActSeeMyTstRes		(ActRcvRchTxtCrsLnk+118)
#define ActSeeOneTstResMe	(ActRcvRchTxtCrsLnk+119)
#define ActReqSeeUsrTstRes	(ActRcvRchTxtCrsLnk+120)
#define ActSeeUsrTstRes		(ActRcvRchTxtCrsLnk+121)
#define ActSeeOneTstResOth	(ActRcvRchTxtCrsLnk+122)

#define ActPrnCal		(ActRcvRchTxtCrsLnk+123)
#define ActChgCal1stDay		(ActRcvRchTxtCrsLnk+124)

#define ActSeeOneExaAnn		(ActRcvRchTxtCrsLnk+125)
#define ActSeeDatExaAnn		(ActRcvRchTxtCrsLnk+126)
#define ActEdiExaAnn		(ActRcvRchTxtCrsLnk+127)
#define ActRcvExaAnn		(ActRcvRchTxtCrsLnk+128)
#define ActPrnExaAnn		(ActRcvRchTxtCrsLnk+129)
#define ActRemExaAnn		(ActRcvRchTxtCrsLnk+130)

#define ActChgToSeeMrk		(ActRcvRchTxtCrsLnk+131)

#define ActSeeMrkCrs		(ActRcvRchTxtCrsLnk+132)
#define ActExpSeeMrkCrs		(ActRcvRchTxtCrsLnk+133)
#define ActConSeeMrkCrs		(ActRcvRchTxtCrsLnk+134)
#define ActReqDatSeeMrkCrs	(ActRcvRchTxtCrsLnk+135)
#define ActSeeMyMrkCrs		(ActRcvRchTxtCrsLnk+136)

#define ActSeeMrkGrp		(ActRcvRchTxtCrsLnk+137)
#define ActExpSeeMrkGrp		(ActRcvRchTxtCrsLnk+138)
#define ActConSeeMrkGrp		(ActRcvRchTxtCrsLnk+139)
#define ActReqDatSeeMrkGrp	(ActRcvRchTxtCrsLnk+140)
#define ActSeeMyMrkGrp		(ActRcvRchTxtCrsLnk+141)

#define ActChgToAdmMrk		(ActRcvRchTxtCrsLnk+142)

#define ActAdmMrkCrs		(ActRcvRchTxtCrsLnk+143)
#define ActReqRemFilMrkCrs	(ActRcvRchTxtCrsLnk+144)
#define ActRemFilMrkCrs		(ActRcvRchTxtCrsLnk+145)
#define ActRemFolMrkCrs		(ActRcvRchTxtCrsLnk+146)
#define ActCopMrkCrs		(ActRcvRchTxtCrsLnk+147)
#define ActPasMrkCrs		(ActRcvRchTxtCrsLnk+148)
#define ActRemTreMrkCrs		(ActRcvRchTxtCrsLnk+149)
#define ActFrmCreMrkCrs		(ActRcvRchTxtCrsLnk+150)
#define ActCreFolMrkCrs		(ActRcvRchTxtCrsLnk+151)
#define ActRenFolMrkCrs		(ActRcvRchTxtCrsLnk+152)
#define ActRcvFilMrkCrsDZ	(ActRcvRchTxtCrsLnk+153)
#define ActRcvFilMrkCrsCla	(ActRcvRchTxtCrsLnk+154)
#define ActExpAdmMrkCrs		(ActRcvRchTxtCrsLnk+155)
#define ActConAdmMrkCrs		(ActRcvRchTxtCrsLnk+156)
#define ActZIPAdmMrkCrs		(ActRcvRchTxtCrsLnk+157)
#define ActShoMrkCrs		(ActRcvRchTxtCrsLnk+158)
#define ActHidMrkCrs		(ActRcvRchTxtCrsLnk+159)
#define ActReqDatAdmMrkCrs	(ActRcvRchTxtCrsLnk+160)
#define ActChgDatAdmMrkCrs	(ActRcvRchTxtCrsLnk+161)
#define ActDowAdmMrkCrs		(ActRcvRchTxtCrsLnk+162)
#define ActChgNumRowHeaCrs	(ActRcvRchTxtCrsLnk+163)
#define ActChgNumRowFooCrs	(ActRcvRchTxtCrsLnk+164)

#define ActAdmMrkGrp		(ActRcvRchTxtCrsLnk+165)
#define ActReqRemFilMrkGrp	(ActRcvRchTxtCrsLnk+166)
#define ActRemFilMrkGrp		(ActRcvRchTxtCrsLnk+167)
#define ActRemFolMrkGrp		(ActRcvRchTxtCrsLnk+168)
#define ActCopMrkGrp		(ActRcvRchTxtCrsLnk+169)
#define ActPasMrkGrp		(ActRcvRchTxtCrsLnk+170)
#define ActRemTreMrkGrp		(ActRcvRchTxtCrsLnk+171)
#define ActFrmCreMrkGrp		(ActRcvRchTxtCrsLnk+172)
#define ActCreFolMrkGrp		(ActRcvRchTxtCrsLnk+173)
#define ActRenFolMrkGrp		(ActRcvRchTxtCrsLnk+174)
#define ActRcvFilMrkGrpDZ	(ActRcvRchTxtCrsLnk+175)
#define ActRcvFilMrkGrpCla	(ActRcvRchTxtCrsLnk+176)
#define ActExpAdmMrkGrp		(ActRcvRchTxtCrsLnk+177)
#define ActConAdmMrkGrp		(ActRcvRchTxtCrsLnk+178)
#define ActZIPAdmMrkGrp		(ActRcvRchTxtCrsLnk+179)
#define ActShoMrkGrp		(ActRcvRchTxtCrsLnk+180)
#define ActHidMrkGrp		(ActRcvRchTxtCrsLnk+181)
#define ActReqDatAdmMrkGrp	(ActRcvRchTxtCrsLnk+182)
#define ActChgDatAdmMrkGrp	(ActRcvRchTxtCrsLnk+183)
#define ActDowAdmMrkGrp		(ActRcvRchTxtCrsLnk+184)
#define ActChgNumRowHeaGrp	(ActRcvRchTxtCrsLnk+185)
#define ActChgNumRowFooGrp	(ActRcvRchTxtCrsLnk+186)

/*****************************************************************************/
/******************************* Users tab ***********************************/
/*****************************************************************************/
// Actions in menu
#define ActReqSelGrp		(ActChgNumRowFooGrp+  1)
#define ActLstStd		(ActChgNumRowFooGrp+  2)
#define ActLstTch		(ActChgNumRowFooGrp+  3)
#define ActLstOth		(ActChgNumRowFooGrp+  4)
#define ActSeeAtt		(ActChgNumRowFooGrp+  5)
#define ActReqSignUp		(ActChgNumRowFooGrp+  6)
#define ActSeeSignUpReq		(ActChgNumRowFooGrp+  7)
#define ActLstCon		(ActChgNumRowFooGrp+  8)

// Secondary actions
#define ActChgGrp		(ActChgNumRowFooGrp+  9)
#define ActReqEdiGrp		(ActChgNumRowFooGrp+ 10)
#define ActNewGrpTyp		(ActChgNumRowFooGrp+ 11)
#define ActReqRemGrpTyp		(ActChgNumRowFooGrp+ 12)
#define ActRemGrpTyp		(ActChgNumRowFooGrp+ 13)
#define ActRenGrpTyp		(ActChgNumRowFooGrp+ 14)
#define ActChgMdtGrpTyp		(ActChgNumRowFooGrp+ 15)
#define ActChgMulGrpTyp		(ActChgNumRowFooGrp+ 16)
#define ActChgTimGrpTyp		(ActChgNumRowFooGrp+ 17)
#define ActNewGrp		(ActChgNumRowFooGrp+ 18)
#define ActReqRemGrp		(ActChgNumRowFooGrp+ 19)
#define ActRemGrp		(ActChgNumRowFooGrp+ 20)
#define ActOpeGrp		(ActChgNumRowFooGrp+ 21)
#define ActCloGrp		(ActChgNumRowFooGrp+ 22)
#define ActEnaFilZonGrp		(ActChgNumRowFooGrp+ 23)
#define ActDisFilZonGrp		(ActChgNumRowFooGrp+ 24)
#define ActChgGrpTyp		(ActChgNumRowFooGrp+ 25)
#define ActRenGrp		(ActChgNumRowFooGrp+ 26)
#define ActChgMaxStdGrp		(ActChgNumRowFooGrp+ 27)

#define ActLstGst		(ActChgNumRowFooGrp+ 28)

#define ActPrnGstPho		(ActChgNumRowFooGrp+ 29)
#define ActPrnStdPho		(ActChgNumRowFooGrp+ 30)
#define ActPrnTchPho		(ActChgNumRowFooGrp+ 31)
#define ActLstGstAll		(ActChgNumRowFooGrp+ 32)
#define ActLstStdAll		(ActChgNumRowFooGrp+ 33)
#define ActLstTchAll		(ActChgNumRowFooGrp+ 34)

#define ActSeeRecOneStd		(ActChgNumRowFooGrp+ 35)
#define ActSeeRecOneTch		(ActChgNumRowFooGrp+ 36)
#define ActSeeRecSevGst		(ActChgNumRowFooGrp+ 37)
#define ActSeeRecSevStd		(ActChgNumRowFooGrp+ 38)
#define ActSeeRecSevTch		(ActChgNumRowFooGrp+ 39)
#define ActPrnRecSevGst		(ActChgNumRowFooGrp+ 40)
#define ActPrnRecSevStd		(ActChgNumRowFooGrp+ 41)
#define ActPrnRecSevTch		(ActChgNumRowFooGrp+ 42)
#define ActRcvRecOthUsr		(ActChgNumRowFooGrp+ 43)
#define ActEdiRecFie		(ActChgNumRowFooGrp+ 44)
#define ActNewFie		(ActChgNumRowFooGrp+ 45)
#define ActReqRemFie		(ActChgNumRowFooGrp+ 46)
#define ActRemFie		(ActChgNumRowFooGrp+ 47)
#define ActRenFie		(ActChgNumRowFooGrp+ 48)
#define ActChgRowFie		(ActChgNumRowFooGrp+ 49)
#define ActChgVisFie		(ActChgNumRowFooGrp+ 50)
#define ActRcvRecCrs		(ActChgNumRowFooGrp+ 51)

#define ActFrmLogInUsrAgd	(ActChgNumRowFooGrp+ 52)
#define ActLogInUsrAgd		(ActChgNumRowFooGrp+ 53)
#define ActSeeUsrAgd		(ActChgNumRowFooGrp+ 54)

#define ActReqEnrSevStd		(ActChgNumRowFooGrp+ 55)
#define ActReqEnrSevTch		(ActChgNumRowFooGrp+ 56)

#define ActReqLstStdAtt		(ActChgNumRowFooGrp+ 57)
#define ActSeeLstMyAtt		(ActChgNumRowFooGrp+ 58)
#define ActPrnLstMyAtt		(ActChgNumRowFooGrp+ 59)
#define ActSeeLstStdAtt		(ActChgNumRowFooGrp+ 60)
#define ActPrnLstStdAtt		(ActChgNumRowFooGrp+ 61)
#define ActFrmNewAtt		(ActChgNumRowFooGrp+ 62)
#define ActEdiOneAtt		(ActChgNumRowFooGrp+ 63)
#define ActNewAtt		(ActChgNumRowFooGrp+ 64)
#define ActChgAtt		(ActChgNumRowFooGrp+ 65)
#define ActReqRemAtt		(ActChgNumRowFooGrp+ 66)
#define ActRemAtt		(ActChgNumRowFooGrp+ 67)
#define ActHidAtt		(ActChgNumRowFooGrp+ 68)
#define ActShoAtt		(ActChgNumRowFooGrp+ 69)
#define ActSeeOneAtt		(ActChgNumRowFooGrp+ 70)
#define ActRecAttStd		(ActChgNumRowFooGrp+ 71)
#define ActRecAttMe		(ActChgNumRowFooGrp+ 72)

#define ActSignUp		(ActChgNumRowFooGrp+ 73)
#define ActUpdSignUpReq		(ActChgNumRowFooGrp+ 74)
#define ActReqRejSignUp		(ActChgNumRowFooGrp+ 75)
#define ActRejSignUp		(ActChgNumRowFooGrp+ 76)

#define ActReqMdfOneOth		(ActChgNumRowFooGrp+ 77)
#define ActReqMdfOneStd		(ActChgNumRowFooGrp+ 78)
#define ActReqMdfOneTch		(ActChgNumRowFooGrp+ 79)

#define ActReqMdfOth		(ActChgNumRowFooGrp+ 80)
#define ActReqMdfStd		(ActChgNumRowFooGrp+ 81)
#define ActReqMdfTch		(ActChgNumRowFooGrp+ 82)

#define ActReqOthPho		(ActChgNumRowFooGrp+ 83)
#define ActReqStdPho		(ActChgNumRowFooGrp+ 84)
#define ActReqTchPho		(ActChgNumRowFooGrp+ 85)
#define ActDetOthPho		(ActChgNumRowFooGrp+ 86)
#define ActDetStdPho		(ActChgNumRowFooGrp+ 87)
#define ActDetTchPho		(ActChgNumRowFooGrp+ 88)
#define ActUpdOthPho		(ActChgNumRowFooGrp+ 89)
#define ActUpdStdPho		(ActChgNumRowFooGrp+ 90)
#define ActUpdTchPho		(ActChgNumRowFooGrp+ 91)
#define ActReqRemOthPho		(ActChgNumRowFooGrp+ 92)
#define ActReqRemStdPho		(ActChgNumRowFooGrp+ 93)
#define ActReqRemTchPho		(ActChgNumRowFooGrp+ 94)
#define ActRemOthPho		(ActChgNumRowFooGrp+ 95)
#define ActRemStdPho		(ActChgNumRowFooGrp+ 96)
#define ActRemTchPho		(ActChgNumRowFooGrp+ 97)
#define ActCreOth		(ActChgNumRowFooGrp+ 98)
#define ActCreStd		(ActChgNumRowFooGrp+ 99)
#define ActCreTch		(ActChgNumRowFooGrp+100)
#define ActUpdOth		(ActChgNumRowFooGrp+101)
#define ActUpdStd		(ActChgNumRowFooGrp+102)
#define ActUpdTch		(ActChgNumRowFooGrp+103)

#define ActReqAccEnrStd		(ActChgNumRowFooGrp+104)
#define ActReqAccEnrTch		(ActChgNumRowFooGrp+105)
#define ActAccEnrStd		(ActChgNumRowFooGrp+106)
#define ActAccEnrTch		(ActChgNumRowFooGrp+107)
#define ActRemMe_Std		(ActChgNumRowFooGrp+108)
#define ActRemMe_Tch		(ActChgNumRowFooGrp+109)

#define ActNewAdmIns		(ActChgNumRowFooGrp+110)
#define ActRemAdmIns		(ActChgNumRowFooGrp+111)
#define ActNewAdmCtr		(ActChgNumRowFooGrp+112)
#define ActRemAdmCtr		(ActChgNumRowFooGrp+113)
#define ActNewAdmDeg		(ActChgNumRowFooGrp+114)
#define ActRemAdmDeg		(ActChgNumRowFooGrp+115)

#define ActRcvFrmEnrSevStd	(ActChgNumRowFooGrp+116)
#define ActRcvFrmEnrSevTch	(ActChgNumRowFooGrp+117)

#define ActReqCnfID_Oth		(ActChgNumRowFooGrp+118)
#define ActReqCnfID_Std		(ActChgNumRowFooGrp+119)
#define ActReqCnfID_Tch		(ActChgNumRowFooGrp+120)
#define ActCnfID_Oth		(ActChgNumRowFooGrp+121)
#define ActCnfID_Std		(ActChgNumRowFooGrp+122)
#define ActCnfID_Tch		(ActChgNumRowFooGrp+123)

#define ActFrmIDsOth		(ActChgNumRowFooGrp+124)
#define ActFrmIDsStd		(ActChgNumRowFooGrp+125)
#define ActFrmIDsTch		(ActChgNumRowFooGrp+126)
#define ActRemID_Oth		(ActChgNumRowFooGrp+127)
#define ActRemID_Std		(ActChgNumRowFooGrp+128)
#define ActRemID_Tch		(ActChgNumRowFooGrp+129)
#define ActNewID_Oth		(ActChgNumRowFooGrp+130)
#define ActNewID_Std		(ActChgNumRowFooGrp+131)
#define ActNewID_Tch		(ActChgNumRowFooGrp+132)
#define ActFrmPwdOth		(ActChgNumRowFooGrp+133)
#define ActFrmPwdStd		(ActChgNumRowFooGrp+134)
#define ActFrmPwdTch		(ActChgNumRowFooGrp+135)
#define ActChgPwdOth		(ActChgNumRowFooGrp+136)
#define ActChgPwdStd		(ActChgNumRowFooGrp+137)
#define ActChgPwdTch		(ActChgNumRowFooGrp+138)
#define ActFrmMaiOth		(ActChgNumRowFooGrp+139)
#define ActFrmMaiStd		(ActChgNumRowFooGrp+140)
#define ActFrmMaiTch		(ActChgNumRowFooGrp+141)
#define ActRemMaiOth		(ActChgNumRowFooGrp+142)
#define ActRemMaiStd		(ActChgNumRowFooGrp+143)
#define ActRemMaiTch		(ActChgNumRowFooGrp+144)
#define ActNewMaiOth		(ActChgNumRowFooGrp+145)
#define ActNewMaiStd		(ActChgNumRowFooGrp+146)
#define ActNewMaiTch		(ActChgNumRowFooGrp+147)

#define ActRemStdCrs		(ActChgNumRowFooGrp+148)
#define ActRemTchCrs		(ActChgNumRowFooGrp+149)
#define ActRemUsrGbl		(ActChgNumRowFooGrp+150)

#define ActReqRemAllStdCrs	(ActChgNumRowFooGrp+151)
#define ActRemAllStdCrs		(ActChgNumRowFooGrp+152)

#define ActReqRemOldUsr		(ActChgNumRowFooGrp+153)
#define ActRemOldUsr		(ActChgNumRowFooGrp+154)

#define ActLstDupUsr		(ActChgNumRowFooGrp+155)
#define ActLstSimUsr		(ActChgNumRowFooGrp+156)
#define ActRemDupUsr		(ActChgNumRowFooGrp+157)

#define ActLstClk		(ActChgNumRowFooGrp+158)

/*****************************************************************************/
/******************************** Social tab *********************************/
/*****************************************************************************/
// Actions in menu
#define ActSeeSocTmlGbl		(ActLstClk+  1)
#define ActSeeSocPrf		(ActLstClk+  2)
#define ActSeeFor		(ActLstClk+  3)
#define ActSeeChtRms		(ActLstClk+  4)
// Secondary actions
#define ActRcvSocPstGbl		(ActLstClk+  5)
#define ActRcvSocComGbl		(ActLstClk+  6)
#define ActShaSocNotGbl		(ActLstClk+  7)
#define ActUnsSocNotGbl		(ActLstClk+  8)
#define ActFavSocNotGbl		(ActLstClk+  9)
#define ActUnfSocNotGbl		(ActLstClk+ 10)
#define ActFavSocComGbl		(ActLstClk+ 11)
#define ActUnfSocComGbl		(ActLstClk+ 12)
#define ActReqRemSocPubGbl	(ActLstClk+ 13)
#define ActRemSocPubGbl		(ActLstClk+ 14)
#define ActReqRemSocComGbl	(ActLstClk+ 15)
#define ActRemSocComGbl		(ActLstClk+ 16)

#define ActReqPubPrf		(ActLstClk+ 17)

#define ActRcvSocPstUsr		(ActLstClk+ 18)
#define ActRcvSocComUsr		(ActLstClk+ 19)
#define ActShaSocNotUsr		(ActLstClk+ 20)
#define ActUnsSocNotUsr		(ActLstClk+ 21)
#define ActFavSocNotUsr		(ActLstClk+ 22)
#define ActUnfSocNotUsr		(ActLstClk+ 23)
#define ActFavSocComUsr		(ActLstClk+ 24)
#define ActUnfSocComUsr		(ActLstClk+ 25)
#define ActReqRemSocPubUsr	(ActLstClk+ 26)
#define ActRemSocPubUsr		(ActLstClk+ 27)
#define ActReqRemSocComUsr	(ActLstClk+ 28)
#define ActRemSocComUsr		(ActLstClk+ 29)

#define ActSeePubPrf		(ActLstClk+ 30)
#define ActCal1stClkTim		(ActLstClk+ 31)
#define ActCalNumClk		(ActLstClk+ 32)
#define ActCalNumFilVie		(ActLstClk+ 33)
#define ActCalNumForPst		(ActLstClk+ 34)
#define ActCalNumMsgSnt		(ActLstClk+ 35)

#define ActFolUsr		(ActLstClk+ 36)
#define ActUnfUsr		(ActLstClk+ 37)
#define ActSeeFlg		(ActLstClk+ 38)
#define ActSeeFlr		(ActLstClk+ 39)

#define ActSeeForCrsUsr		(ActLstClk+ 40)
#define ActSeeForCrsTch		(ActLstClk+ 41)
#define ActSeeForDegUsr		(ActLstClk+ 42)
#define ActSeeForDegTch		(ActLstClk+ 43)
#define ActSeeForCtrUsr		(ActLstClk+ 44)
#define ActSeeForCtrTch		(ActLstClk+ 45)
#define ActSeeForInsUsr		(ActLstClk+ 46)
#define ActSeeForInsTch		(ActLstClk+ 47)
#define ActSeeForGenUsr		(ActLstClk+ 48)
#define ActSeeForGenTch		(ActLstClk+ 49)
#define ActSeeForSWAUsr		(ActLstClk+ 50)
#define ActSeeForSWATch		(ActLstClk+ 51)
#define ActSeePstForCrsUsr	(ActLstClk+ 52)
#define ActSeePstForCrsTch	(ActLstClk+ 53)
#define ActSeePstForDegUsr	(ActLstClk+ 54)
#define ActSeePstForDegTch	(ActLstClk+ 55)
#define ActSeePstForCtrUsr	(ActLstClk+ 56)
#define ActSeePstForCtrTch	(ActLstClk+ 57)
#define ActSeePstForInsUsr	(ActLstClk+ 58)
#define ActSeePstForInsTch	(ActLstClk+ 59)
#define ActSeePstForGenUsr	(ActLstClk+ 60)
#define ActSeePstForGenTch	(ActLstClk+ 61)
#define ActSeePstForSWAUsr	(ActLstClk+ 62)
#define ActSeePstForSWATch	(ActLstClk+ 63)
#define ActRcvThrForCrsUsr	(ActLstClk+ 64)
#define ActRcvThrForCrsTch	(ActLstClk+ 65)
#define ActRcvThrForDegUsr	(ActLstClk+ 66)
#define ActRcvThrForDegTch	(ActLstClk+ 67)
#define ActRcvThrForCtrUsr	(ActLstClk+ 68)
#define ActRcvThrForCtrTch	(ActLstClk+ 69)
#define ActRcvThrForInsUsr	(ActLstClk+ 70)
#define ActRcvThrForInsTch	(ActLstClk+ 71)
#define ActRcvThrForGenUsr	(ActLstClk+ 72)
#define ActRcvThrForGenTch	(ActLstClk+ 73)
#define ActRcvThrForSWAUsr	(ActLstClk+ 74)
#define ActRcvThrForSWATch	(ActLstClk+ 75)
#define ActRcvRepForCrsUsr	(ActLstClk+ 76)
#define ActRcvRepForCrsTch	(ActLstClk+ 77)
#define ActRcvRepForDegUsr	(ActLstClk+ 78)
#define ActRcvRepForDegTch	(ActLstClk+ 79)
#define ActRcvRepForCtrUsr	(ActLstClk+ 80)
#define ActRcvRepForCtrTch	(ActLstClk+ 81)
#define ActRcvRepForInsUsr	(ActLstClk+ 82)
#define ActRcvRepForInsTch	(ActLstClk+ 83)
#define ActRcvRepForGenUsr	(ActLstClk+ 84)
#define ActRcvRepForGenTch	(ActLstClk+ 85)
#define ActRcvRepForSWAUsr	(ActLstClk+ 86)
#define ActRcvRepForSWATch	(ActLstClk+ 87)
#define ActReqDelThrCrsUsr	(ActLstClk+ 88)
#define ActReqDelThrCrsTch	(ActLstClk+ 89)
#define ActReqDelThrDegUsr	(ActLstClk+ 90)
#define ActReqDelThrDegTch	(ActLstClk+ 91)
#define ActReqDelThrCtrUsr	(ActLstClk+ 92)
#define ActReqDelThrCtrTch	(ActLstClk+ 93)
#define ActReqDelThrInsUsr	(ActLstClk+ 94)
#define ActReqDelThrInsTch	(ActLstClk+ 95)
#define ActReqDelThrGenUsr	(ActLstClk+ 96)
#define ActReqDelThrGenTch	(ActLstClk+ 97)
#define ActReqDelThrSWAUsr	(ActLstClk+ 98)
#define ActReqDelThrSWATch	(ActLstClk+ 99)
#define ActDelThrForCrsUsr	(ActLstClk+100)
#define ActDelThrForCrsTch	(ActLstClk+101)
#define ActDelThrForDegUsr	(ActLstClk+102)
#define ActDelThrForDegTch	(ActLstClk+103)
#define ActDelThrForCtrUsr	(ActLstClk+104)
#define ActDelThrForCtrTch	(ActLstClk+105)
#define ActDelThrForInsUsr	(ActLstClk+106)
#define ActDelThrForInsTch	(ActLstClk+107)
#define ActDelThrForGenUsr	(ActLstClk+108)
#define ActDelThrForGenTch	(ActLstClk+109)
#define ActDelThrForSWAUsr	(ActLstClk+110)
#define ActDelThrForSWATch	(ActLstClk+111)
#define ActCutThrForCrsUsr	(ActLstClk+112)
#define ActCutThrForCrsTch	(ActLstClk+113)
#define ActCutThrForDegUsr	(ActLstClk+114)
#define ActCutThrForDegTch	(ActLstClk+115)
#define ActCutThrForCtrUsr	(ActLstClk+116)
#define ActCutThrForCtrTch	(ActLstClk+117)
#define ActCutThrForInsUsr	(ActLstClk+118)
#define ActCutThrForInsTch	(ActLstClk+119)
#define ActCutThrForGenUsr	(ActLstClk+120)
#define ActCutThrForGenTch	(ActLstClk+121)
#define ActCutThrForSWAUsr	(ActLstClk+122)
#define ActCutThrForSWATch	(ActLstClk+123)
#define ActPasThrForCrsUsr	(ActLstClk+124)
#define ActPasThrForCrsTch	(ActLstClk+125)
#define ActPasThrForDegUsr	(ActLstClk+126)
#define ActPasThrForDegTch	(ActLstClk+127)
#define ActPasThrForCtrUsr	(ActLstClk+128)
#define ActPasThrForCtrTch	(ActLstClk+129)
#define ActPasThrForInsUsr	(ActLstClk+130)
#define ActPasThrForInsTch	(ActLstClk+131)
#define ActPasThrForGenUsr	(ActLstClk+132)
#define ActPasThrForGenTch	(ActLstClk+133)
#define ActPasThrForSWAUsr	(ActLstClk+134)
#define ActPasThrForSWATch	(ActLstClk+135)
#define ActDelPstForCrsUsr	(ActLstClk+136)
#define ActDelPstForCrsTch	(ActLstClk+137)
#define ActDelPstForDegUsr	(ActLstClk+138)
#define ActDelPstForDegTch	(ActLstClk+139)
#define ActDelPstForCtrUsr	(ActLstClk+140)
#define ActDelPstForCtrTch	(ActLstClk+141)
#define ActDelPstForInsUsr	(ActLstClk+142)
#define ActDelPstForInsTch	(ActLstClk+143)
#define ActDelPstForGenUsr	(ActLstClk+144)
#define ActDelPstForGenTch	(ActLstClk+145)
#define ActDelPstForSWAUsr	(ActLstClk+146)
#define ActDelPstForSWATch	(ActLstClk+147)
#define ActEnbPstForCrsUsr	(ActLstClk+148)
#define ActEnbPstForCrsTch	(ActLstClk+149)
#define ActEnbPstForDegUsr	(ActLstClk+150)
#define ActEnbPstForDegTch	(ActLstClk+151)
#define ActEnbPstForCtrUsr	(ActLstClk+152)
#define ActEnbPstForCtrTch	(ActLstClk+153)
#define ActEnbPstForInsUsr	(ActLstClk+154)
#define ActEnbPstForInsTch	(ActLstClk+155)
#define ActEnbPstForGenUsr	(ActLstClk+156)
#define ActEnbPstForGenTch	(ActLstClk+157)
#define ActEnbPstForSWAUsr	(ActLstClk+158)
#define ActEnbPstForSWATch	(ActLstClk+159)
#define ActDisPstForCrsUsr	(ActLstClk+160)
#define ActDisPstForCrsTch	(ActLstClk+161)
#define ActDisPstForDegUsr	(ActLstClk+162)
#define ActDisPstForDegTch	(ActLstClk+163)
#define ActDisPstForCtrUsr	(ActLstClk+164)
#define ActDisPstForCtrTch	(ActLstClk+165)
#define ActDisPstForInsUsr	(ActLstClk+166)
#define ActDisPstForInsTch	(ActLstClk+167)
#define ActDisPstForGenUsr	(ActLstClk+168)
#define ActDisPstForGenTch	(ActLstClk+169)
#define ActDisPstForSWAUsr	(ActLstClk+170)
#define ActDisPstForSWATch	(ActLstClk+171)

#define ActCht			(ActLstClk+172)

/*****************************************************************************/
/******************************* Messages tab ********************************/
/*****************************************************************************/
// Actions in menu
#define ActSeeNtf		(ActCht+  1)
#define ActSeeAnn		(ActCht+  2)
#define ActSeeAllNot		(ActCht+  3)
#define ActReqMsgUsr		(ActCht+  4)
#define ActSeeRcvMsg		(ActCht+  5)
#define ActSeeSntMsg		(ActCht+  6)
#define ActMaiStd		(ActCht+  7)
// Secondary actions
#define ActWriAnn		(ActCht+  8)
#define ActRcvAnn		(ActCht+  9)
#define ActHidAnn		(ActCht+ 10)
#define ActRevAnn		(ActCht+ 11)
#define ActRemAnn		(ActCht+ 12)
#define ActSeeOneNot		(ActCht+ 13)
#define ActWriNot		(ActCht+ 14)
#define ActRcvNot		(ActCht+ 15)
#define ActHidNot		(ActCht+ 16)
#define ActRevNot		(ActCht+ 17)
#define ActReqRemNot		(ActCht+ 18)
#define ActRemNot		(ActCht+ 19)
#define ActSeeNewNtf		(ActCht+ 20)
#define ActMrkNtfSee		(ActCht+ 21)
#define ActRcvMsgUsr		(ActCht+ 22)
#define ActReqDelAllSntMsg	(ActCht+ 23)
#define ActReqDelAllRcvMsg	(ActCht+ 24)
#define ActDelAllSntMsg		(ActCht+ 25)
#define ActDelAllRcvMsg		(ActCht+ 26)
#define ActDelSntMsg		(ActCht+ 27)
#define ActDelRcvMsg		(ActCht+ 28)
#define ActExpSntMsg		(ActCht+ 29)
#define ActExpRcvMsg		(ActCht+ 30)
#define ActConSntMsg		(ActCht+ 31)
#define ActConRcvMsg		(ActCht+ 32)
#define ActLstBanUsr		(ActCht+ 33)
#define ActBanUsrMsg		(ActCht+ 34)
#define ActUnbUsrMsg		(ActCht+ 35)
#define ActUnbUsrLst		(ActCht+ 36)

/*****************************************************************************/
/****************************** Statistics tab *******************************/
/*****************************************************************************/
// Actions in menu
#define ActSeeAllSvy		(ActUnbUsrLst+  1)
#define ActReqUseGbl		(ActUnbUsrLst+  2)
#define ActSeePhoDeg		(ActUnbUsrLst+  3)
#define ActReqStaCrs		(ActUnbUsrLst+  4)
#define ActReqAccGbl		(ActUnbUsrLst+  5)
#define ActReqMyUsgRep		(ActUnbUsrLst+  6)
#define ActMFUAct		(ActUnbUsrLst+  7)

// Secondary actions
#define ActSeeOneSvy		(ActUnbUsrLst+  8)
#define ActAnsSvy		(ActUnbUsrLst+  9)
#define ActFrmNewSvy		(ActUnbUsrLst+ 10)
#define ActEdiOneSvy		(ActUnbUsrLst+ 11)
#define ActNewSvy		(ActUnbUsrLst+ 12)
#define ActChgSvy		(ActUnbUsrLst+ 13)
#define ActReqRemSvy		(ActUnbUsrLst+ 14)
#define ActRemSvy		(ActUnbUsrLst+ 15)
#define ActReqRstSvy		(ActUnbUsrLst+ 16)
#define ActRstSvy		(ActUnbUsrLst+ 17)
#define ActHidSvy		(ActUnbUsrLst+ 18)
#define ActShoSvy		(ActUnbUsrLst+ 19)
#define ActEdiOneSvyQst		(ActUnbUsrLst+ 20)
#define ActRcvSvyQst		(ActUnbUsrLst+ 21)
#define ActReqRemSvyQst		(ActUnbUsrLst+ 22)
#define ActRemSvyQst		(ActUnbUsrLst+ 23)

#define ActSeeUseGbl		(ActUnbUsrLst+ 24)
#define ActPrnPhoDeg		(ActUnbUsrLst+ 25)
#define ActCalPhoDeg		(ActUnbUsrLst+ 26)
#define ActSeeAccGbl		(ActUnbUsrLst+ 27)
#define ActReqAccCrs		(ActUnbUsrLst+ 28)
#define ActSeeAccCrs		(ActUnbUsrLst+ 29)
#define ActSeeAllStaCrs		(ActUnbUsrLst+ 30)

#define ActSeeMyUsgRep		(ActUnbUsrLst+ 31)

/*****************************************************************************/
/******************************** Profile tab ********************************/
/*****************************************************************************/
// Actions in menu
#define ActFrmLogIn		(ActSeeMyUsgRep+ 1)
#define ActFrmRolSes		(ActSeeMyUsgRep+ 2)
#define ActMyCrs		(ActSeeMyUsgRep+ 3)
#define ActSeeMyTT		(ActSeeMyUsgRep+ 4)
#define ActSeeMyAgd		(ActSeeMyUsgRep+ 5)
#define ActFrmMyAcc		(ActSeeMyUsgRep+ 6)
#define ActReqEdiRecCom		(ActSeeMyUsgRep+ 7)
#define ActEdiPrf		(ActSeeMyUsgRep+ 8)
#define ActAdmBrf		(ActSeeMyUsgRep+ 9)
// Secondary actions
#define ActReqSndNewPwd		(ActSeeMyUsgRep+10)
#define ActSndNewPwd		(ActSeeMyUsgRep+11)
#define ActLogOut		(ActSeeMyUsgRep+12)
#define ActAutUsrInt		(ActSeeMyUsgRep+13)
#define ActAutUsrNew		(ActSeeMyUsgRep+14)
#define ActAutUsrChgLan		(ActSeeMyUsgRep+15)
#define ActAnnSee		(ActSeeMyUsgRep+16)
#define ActChgMyRol		(ActSeeMyUsgRep+17)
#define ActFrmNewEvtMyAgd	(ActSeeMyUsgRep+18)
#define ActEdiOneEvtMyAgd	(ActSeeMyUsgRep+19)
#define ActNewEvtMyAgd		(ActSeeMyUsgRep+20)
#define ActChgEvtMyAgd		(ActSeeMyUsgRep+21)
#define ActReqRemEvtMyAgd	(ActSeeMyUsgRep+22)
#define ActRemEvtMyAgd		(ActSeeMyUsgRep+23)
#define ActHidEvtMyAgd		(ActSeeMyUsgRep+24)
#define ActShoEvtMyAgd		(ActSeeMyUsgRep+25)
#define ActPrvEvtMyAgd		(ActSeeMyUsgRep+26)
#define ActPubEvtMyAgd		(ActSeeMyUsgRep+27)
#define ActChkUsrAcc		(ActSeeMyUsgRep+28)
#define ActCreUsrAcc		(ActSeeMyUsgRep+29)
#define ActRemID_Me		(ActSeeMyUsgRep+30)
#define ActNewIDMe		(ActSeeMyUsgRep+31)
#define ActRemOldNic		(ActSeeMyUsgRep+32)
#define ActChgNic		(ActSeeMyUsgRep+33)
#define ActRemMaiMe		(ActSeeMyUsgRep+34)
#define ActNewMaiMe		(ActSeeMyUsgRep+35)
#define ActCnfMai		(ActSeeMyUsgRep+36)
#define ActFrmChgMyPwd		(ActSeeMyUsgRep+37)
#define ActChgPwd		(ActSeeMyUsgRep+38)
#define ActReqRemMyAcc		(ActSeeMyUsgRep+39)
#define ActRemMyAcc		(ActSeeMyUsgRep+40)

#define ActChgMyData		(ActSeeMyUsgRep+41)

#define ActReqMyPho		(ActSeeMyUsgRep+42)
#define ActDetMyPho		(ActSeeMyUsgRep+43)
#define ActUpdMyPho		(ActSeeMyUsgRep+44)
#define ActReqRemMyPho		(ActSeeMyUsgRep+45)
#define ActRemMyPho		(ActSeeMyUsgRep+46)

#define ActEdiPri		(ActSeeMyUsgRep+47)
#define ActChgPriPho		(ActSeeMyUsgRep+48)
#define ActChgPriPrf		(ActSeeMyUsgRep+49)

#define ActReqEdiMyIns		(ActSeeMyUsgRep+50)
#define ActChgCtyMyIns		(ActSeeMyUsgRep+51)
#define ActChgMyIns		(ActSeeMyUsgRep+52)
#define ActChgMyCtr		(ActSeeMyUsgRep+53)
#define ActChgMyDpt		(ActSeeMyUsgRep+54)
#define ActChgMyOff		(ActSeeMyUsgRep+55)
#define ActChgMyOffPho		(ActSeeMyUsgRep+56)

#define ActReqEdiMyNet		(ActSeeMyUsgRep+57)
#define ActChgMyNet		(ActSeeMyUsgRep+58)

#define ActChgThe		(ActSeeMyUsgRep+59)
#define ActReqChgLan		(ActSeeMyUsgRep+60)
#define ActChgLan		(ActSeeMyUsgRep+61)
#define ActChg1stDay		(ActSeeMyUsgRep+62)
#define ActChgCol		(ActSeeMyUsgRep+63)
#define ActHidLftCol		(ActSeeMyUsgRep+64)
#define ActHidRgtCol		(ActSeeMyUsgRep+65)
#define ActShoLftCol		(ActSeeMyUsgRep+66)
#define ActShoRgtCol		(ActSeeMyUsgRep+67)
#define ActChgIco		(ActSeeMyUsgRep+68)
#define ActChgMnu		(ActSeeMyUsgRep+69)
#define ActChgNtfPrf		(ActSeeMyUsgRep+70)

#define ActPrnUsrQR		(ActSeeMyUsgRep+71)

#define ActPrnMyTT		(ActSeeMyUsgRep+72)
#define ActEdiTut		(ActSeeMyUsgRep+73)
#define ActChgTut		(ActSeeMyUsgRep+74)
#define ActChgMyTT1stDay	(ActSeeMyUsgRep+75)

#define ActReqRemFilBrf		(ActSeeMyUsgRep+76)
#define ActRemFilBrf		(ActSeeMyUsgRep+77)
#define ActRemFolBrf		(ActSeeMyUsgRep+78)
#define ActCopBrf		(ActSeeMyUsgRep+79)
#define ActPasBrf		(ActSeeMyUsgRep+80)
#define ActRemTreBrf		(ActSeeMyUsgRep+81)
#define ActFrmCreBrf		(ActSeeMyUsgRep+82)
#define ActCreFolBrf		(ActSeeMyUsgRep+83)
#define ActCreLnkBrf		(ActSeeMyUsgRep+84)
#define ActRenFolBrf		(ActSeeMyUsgRep+85)
#define ActRcvFilBrfDZ		(ActSeeMyUsgRep+86)
#define ActRcvFilBrfCla		(ActSeeMyUsgRep+87)
#define ActExpBrf		(ActSeeMyUsgRep+88)
#define ActConBrf		(ActSeeMyUsgRep+89)
#define ActZIPBrf		(ActSeeMyUsgRep+90)
#define ActReqDatBrf		(ActSeeMyUsgRep+91)
#define ActChgDatBrf		(ActSeeMyUsgRep+92)
#define ActDowBrf		(ActSeeMyUsgRep+93)

#define ActReqRemOldBrf		(ActSeeMyUsgRep+94)
#define ActRemOldBrf		(ActSeeMyUsgRep+95)

/*****************************************************************************/
/******************************** Public types *******************************/
/*****************************************************************************/

struct Act_Tabs
  {
   char *Icon;
  };

struct Act_Actions
  {
   long ActCod;	// Unique, time-persistent numerical code for the action
   signed int IndexInMenu;
   Tab_Tab_t Tab;
   Act_Action_t SuperAction;
   unsigned PermisIfIBelongToCrs;
   unsigned PermisIfIDontBelongToCrs;
   unsigned PermisIfNoCrsSelected;
   Act_Content_t ContentType;
   Act_BrowserWindow_t BrowserWindow;
   void (*FunctionPriori)();
   void (*FunctionPosteriori)();
   const char *Icon;
  };

/*****************************************************************************/
/***************************** Public prototypes *****************************/
/*****************************************************************************/

bool Act_CheckIfIHavePermissionToExecuteAction (Act_Action_t Action);
const char *Act_GetTitleAction (Act_Action_t Action);
const char *Act_GetSubtitleAction (Act_Action_t Action);
char *Act_GetActionTextFromDB (long ActCod,char *Txt);

void Act_FormGoToStart (Act_Action_t NextAction);
void Act_FormStart (Act_Action_t NextAction);
void Act_FormStartOnSubmit (Act_Action_t NextAction,const char *OnSubmit);
void Act_FormStartUnique (Act_Action_t NextAction);
void Act_FormStartAnchor (Act_Action_t NextAction,const char *Anchor);
void Act_FormStartUniqueAnchor (Act_Action_t NextAction,const char *Anchor);
void Act_FormStartId (Act_Action_t NextAction,const char *Id);
void Act_SetParamsForm (char *ParamsStr,Act_Action_t NextAction,bool PutParameterLocationIfNoSesion);
void Act_FormEnd (void);
void Act_LinkFormSubmit (const char *Title,const char *LinkStyle,
                         const char *OnSubmit);
void Act_LinkFormSubmitUnique (const char *Title,const char *LinkStyle);
void Act_LinkFormSubmitId (const char *Title,const char *LinkStyle,
                           const char *Id,const char *OnSubmit);
void Act_LinkFormSubmitAnimated (const char *Title,const char *LinkStyle,
                                 const char *OnSubmit);

void Act_SetUniqueId (char UniqueId[Act_MAX_LENGTH_ID]);

void Act_AdjustActionWhenNoUsrLogged (void);
void Act_AdjustCurrentAction (void);

#endif
