Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAppointment.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAppointment.cs	(revision 899)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAppointment.cs	(revision 900)
@@ -42,4 +42,6 @@
         public override string ToString()
         {
+            //StringFormat sf = new StringFormat();
+            //sf.SetDigitSubstitution(System.Threading.Thread.CurrentThread.CurrentCulture.LCID, StringDigitSubstitute.National);
             string patientName = "";
             if (this.m_bAccessBlock)
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CalendarGrid.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CalendarGrid.cs	(revision 899)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CalendarGrid.cs	(revision 900)
@@ -659,37 +659,40 @@
             DateTime endTime = a.EndTime;
             string resource = a.Resource;
-            int num = 0;
-            int num2 = 0;
-            int num3 = 0;
-            int num4 = 0;
-            int num5 = 0;
+            int originX = 0;
+            int originY = 0;
+            int recHeight = 0;
+            int recWidth = 0;
+            int columnToPutAppt = 0;
             Rectangle rectangle = new Rectangle();
-            int totalMinutes = (int) startTime.TimeOfDay.TotalMinutes;
-            int num7 = (int) endTime.TimeOfDay.TotalMinutes;
+            int startTotalMinutesoffset = (int) startTime.TimeOfDay.TotalMinutes;
+            int endTotalMinutesoffset = (int) endTime.TimeOfDay.TotalMinutes;
+            // if grid has more than one reource
             if (this.m_sResourcesArray.Count > 1)
             {
-                num5 = (int) this.m_ColumnInfoTable[resource];
-                num5++;
+                // get zero based index
+                columnToPutAppt = (int) this.m_ColumnInfoTable[resource];
+                // increment to 1 based index
+                columnToPutAppt++;
             }
             else
             {
-                num5 = ((int) (startTime.DayOfWeek - this.m_dtStart.DayOfWeek)) + 1;
-            }
-            if (num5 < 1)
+                columnToPutAppt = (startTime - this.m_dtStart).Days + 1;
+            }
+            if (columnToPutAppt < 1)
             {
                 bRet = false;
                 return rectangle;
             }
-            num = col0Width + (cellWidth * (num5 - 1));
-            int num8 = totalMinutes + this.m_nTimeScale;
-            int num9 = (num7 > 0) ? num7 : 0x5a0;
-            num9 -= totalMinutes;
-            num2 = (cellHeight * num8) / this.m_nTimeScale;
-            num3 = (cellHeight * num9) / this.m_nTimeScale;
-            num4 = cellWidth;
-            rectangle.X = num;
-            rectangle.Y = num2;
-            rectangle.Width = num4;
-            rectangle.Height = num3;
+            originX = col0Width + (cellWidth * (columnToPutAppt - 1));
+            int num8 = startTotalMinutesoffset + this.m_nTimeScale;
+            int num9 = (endTotalMinutesoffset > 0) ? endTotalMinutesoffset : 0x5a0;
+            num9 -= startTotalMinutesoffset;
+            originY = (cellHeight * num8) / this.m_nTimeScale;
+            recHeight = (cellHeight * num9) / this.m_nTimeScale;
+            recWidth = cellWidth;
+            rectangle.X = originX;
+            rectangle.Y = originY;
+            rectangle.Width = recWidth;
+            rectangle.Height = recHeight;
             bRet = true;
             return rectangle;
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user	(revision 899)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user	(revision 900)
@@ -36,5 +36,5 @@
     </RemoteDebugMachine>
     <StartAction>Project</StartAction>
-    <StartArguments>/s=172.16.17.51 /p=9240 /a=shabiel12 /v=catdog.44 /e=windows-1256</StartArguments>
+    <StartArguments>/s=10.161.20.25 /p=9235 /a=shabiel12 /v=abc,123! /e=windows-1256</StartArguments>
     <StartPage>
     </StartPage>
@@ -55,5 +55,5 @@
     </RemoteDebugMachine>
     <StartAction>Project</StartAction>
-    <StartArguments>/s=172.16.17.51 /p=9240 /a=shabiel12 /v=catdog.44 /e=windows-1256</StartArguments>
+    <StartArguments>/s=10.161.20.25 /p=9235 /a=shabiel12 /v=abc,123! /e=windows-1256</StartArguments>
     <StartPage>
     </StartPage>
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/Printing.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/Printing.cs	(revision 899)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/Printing.cs	(revision 900)
@@ -86,5 +86,5 @@
                 
                 StringBuilder apptPrintStr = new StringBuilder(200); 
-                apptPrintStr.AppendLine(a.ApptDate.ToString() + "\t" + a.Name + "(" + a.Sex + ")" + "\t" + "DOB: " + a.DOB.ToString("dd-MMM-yyyy") + "\t" + "ID: " + a.HRN);
+                apptPrintStr.AppendLine(a.ApptDate.ToString() + "\t" + a.Name + " (" + a.Sex + ")" + "\t" + "DOB: " + a.DOB.ToShortDateString() + "\t" + "ID: " + a.HRN);
                 apptPrintStr.AppendLine("P: " + a.HOMEPHONE + "\t" + "Address: " + a.STREET + ", " + a.CITY + ", " + a.STATE + " " + a.ZIP);
                 apptPrintStr.AppendLine("Note: " + a.NOTE);
@@ -158,6 +158,11 @@
             printArea.Height -= strHeight;
 
+            //Text Direction
+            StringFormat sf2 = new StringFormat();
+            if (System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.IsRightToLeft)
+                sf2.FormatFlags = StringFormatFlags.DirectionRightToLeft;
+
             // write missive
-            g.DrawString(letter, fBody, Brushes.Black, printArea);
+            g.DrawString(letter, fBody, Brushes.Black, printArea, sf2);
 
             //print Address in lower left corner for windowed envolopes
@@ -209,6 +214,11 @@
             printArea.Height -= strHeight;
 
+            //Text Direction
+            StringFormat sf2 = new StringFormat();
+            if (System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.IsRightToLeft)
+                sf2.FormatFlags = StringFormatFlags.DirectionRightToLeft;
+            
             // write missive
-            g.DrawString(letter, fBody, Brushes.Black, printArea);
+            g.DrawString(letter, fBody, Brushes.Black, printArea, sf2);
 
             //print Address in lower left corner for windowed envolopes
@@ -261,6 +271,11 @@
             printArea.Height -= strHeight;
 
+            //Text Direction
+            StringFormat sf2 = new StringFormat();
+            if (System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.IsRightToLeft)
+                sf2.FormatFlags = StringFormatFlags.DirectionRightToLeft;
+
             // write missive
-            g.DrawString(letter, fBody, Brushes.Black, printArea);
+            g.DrawString(letter, fBody, Brushes.Black, printArea, sf2);
 
             //print Address in lower left corner for windowed envolopes
@@ -313,11 +328,15 @@
             // draw underline
             g.DrawLine(Pens.Black, printArea.Location, new Point(printArea.Right, printArea.Y));
+
+            // move down
             printArea.Y += 15;
             printArea.Height -= 15;
 
             //construct what to print
-            string toprint = "Patient: " + a.PatientName + "\t" + "ID: " + a.PatientID;
+            string toprint = "Patient: " + a.PatientName + "\t" + "ID: " + a.HealthRecordNumber;
             toprint += "\n\n";
-            toprint += "Appointment Time: " + a.StartTime.ToLongDateString() + " " + a.StartTime.ToLongTimeString();
+            toprint += "Clinic: " + a.Resource;
+            toprint += "\n\n";
+            toprint += "Appointment Time: " + a.StartTime;
             toprint += "\n\n";
             toprint += "Notes:\n" + a.Note;
