protected string generateToolTipMessage(EEmpRequest empRequest)
    {
        string message = "Employee No:\t%EMP_NO%\r\n" +
                         "Employee:\t%EMP_NAME%\r\n" +
                         "Leave Date:\t%LEAVEAPP_PERIOD%\r\n" +
                         "Leave Type:\t%LEAVE_CODE%\r\n" +
                         "Taken     :\t%LEAVEAPP_DAYS% %LEAVEAPP_UNIT%\r\n" +
                         "Hours Claims:\t%LEAVEAPP_HOURSCLAIM%\r\n" +
                         "Reason:\t%LEAVEAPPCANCEL_REMARK%\r\n";

        ESSAuthorizationProcess process = new ESSAuthorizationProcess(dbConn);

        EEmpPersonalInfo ApplicantEmpInfo = process.GetEmpInfo(empRequest.EmpID);

        Hashtable mailContentParameterTable = new Hashtable();

        mailContentParameterTable = process.GenerateEmpInfoHashTable(ApplicantEmpInfo, mailContentParameterTable);

        if (empRequest.EmpRequestType == EEmpRequest.TYPE_EELEAVEAPP)
        {
            DBFilter RequestEmpFilter = new DBFilter();
            RequestEmpFilter.add(new Match("RequestLeaveAppID", empRequest.EmpRequestRecordID));
            ArrayList empRequestList = ERequestLeaveApplication.db.select(dbConn, RequestEmpFilter);
            if (empRequestList.Count > 0)
            {
                ERequestLeaveApplication empLeaveRequest = (ERequestLeaveApplication)empRequestList[0];

                mailContentParameterTable = process.GenerateRequestLeaveApplicationHashTable(empLeaveRequest, mailContentParameterTable);
            }
        }
        else if (empRequest.EmpRequestType == EEmpRequest.TYPE_EELEAVECANCEL)
        {
            DBFilter RequestEmpFilter = new DBFilter();
            RequestEmpFilter.add(new Match("RequestLeaveAppCancelID", empRequest.EmpRequestRecordID));
            ArrayList empRequestList = ERequestLeaveApplicationCancel.db.select(dbConn, RequestEmpFilter);
            if (empRequestList.Count > 0)
            {
                ERequestLeaveApplicationCancel requestLeaveAppCancel = (ERequestLeaveApplicationCancel)empRequestList[0];
                mailContentParameterTable.Add("%LEAVEAPPCANCEL_REMARK%", requestLeaveAppCancel.RequestLeaveAppCancelReason);
                ELeaveApplication leaveApp = new ELeaveApplication();
                leaveApp.LeaveAppID = requestLeaveAppCancel.LeaveAppID;
                if (ELeaveApplication.db.select(dbConn, leaveApp))
                {
                    ERequestLeaveApplication dummyRequestLeave = ERequestLeaveApplication.CreateDummyRequestLeaveAppliction(leaveApp);
                    mailContentParameterTable = process.GenerateRequestLeaveApplicationHashTable(dummyRequestLeave, mailContentParameterTable);
                }
            }
        }
        string MessageBodyTemplate = message;

        foreach (string key in mailContentParameterTable.Keys)
        {
            MessageBodyTemplate = MessageBodyTemplate.Replace(key, mailContentParameterTable[key].ToString());
        }
        string[] messageBodyLineArray = MessageBodyTemplate.Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
        string   newMessageBody       = string.Empty;

        foreach (string messageLine in messageBodyLineArray)
        {
            if (string.IsNullOrEmpty(messageLine) || messageLine.IndexOf("%") == messageLine.LastIndexOf("%"))
            {
                if (string.IsNullOrEmpty(newMessageBody))
                {
                    newMessageBody = messageLine;
                }
                else
                {
                    newMessageBody += "\r\n" + messageLine;
                }
            }
        }
        return(newMessageBody);
    }