This commit was manufactured by cvs2svn to create branch 'decode'.
[gnokii.git] / win32_makefile / gui_delphi / mainunit.pas
diff --git a/win32_makefile/gui_delphi/mainunit.pas b/win32_makefile/gui_delphi/mainunit.pas
deleted file mode 100644 (file)
index 9bf8351..0000000
+++ /dev/null
@@ -1,3524 +0,0 @@
-unit MainUnit;\r
-\r
-interface\r
-\r
-{$I-}\r
-\r
-uses\r
-  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,\r
-  Dialogs, ComCtrls, GnokiiAPI, ExtCtrls, Menus, StdCtrls, Spin, IniFiles;\r
-\r
-type\r
-  TMainForm = class(TForm)\r
-    StatusBar1: TStatusBar;\r
-    TreeView1: TTreeView;\r
-    Splitter1: TSplitter;\r
-    MainMenu1: TMainMenu;\r
-    File1: TMenuItem;\r
-    Quit1: TMenuItem;\r
-    Help1: TMenuItem;\r
-    About1: TMenuItem;\r
-    Timer1: TTimer;\r
-    OpenDialog1: TOpenDialog;\r
-    SaveDialog1: TSaveDialog;\r
-    PageControl1: TPageControl;\r
-    NetmonitorTabSheet: TTabSheet;\r
-    GroupBox1: TGroupBox;\r
-    Label1: TLabel;\r
-    NetmonGroupBox: TGroupBox;\r
-    NetmonLabel: TLabel;\r
-    SpinEdit1: TSpinEdit;\r
-    Button11: TButton;\r
-    PhonebookTabSheet: TTabSheet;\r
-    GroupBox2: TGroupBox;\r
-    Panel1: TPanel;\r
-    Label2: TLabel;\r
-    ComboBox1: TComboBox;\r
-    ListView1: TListView;\r
-    PhoneTabSheet: TTabSheet;\r
-    GroupBox3: TGroupBox;\r
-    GroupBox12: TGroupBox;\r
-    Label4: TLabel;\r
-    Label5: TLabel;\r
-    Label7: TLabel;\r
-    Label8: TLabel;\r
-    Label9: TLabel;\r
-    Label6: TLabel;\r
-    Button9: TButton;\r
-    GroupBox14: TGroupBox;\r
-    ListView8: TListView;\r
-    GroupBox11: TGroupBox;\r
-    CheckBox1: TCheckBox;\r
-    LogosTabSheet: TTabSheet;\r
-    GroupBox4: TGroupBox;\r
-    LogosImage: TImage;\r
-    Image1: TImage;\r
-    Image2: TImage;\r
-    ComboBox2: TComboBox;\r
-    Button6: TButton;\r
-    Button7: TButton;\r
-    Button8: TButton;\r
-    Button12: TButton;\r
-    Button4: TButton;\r
-    Button5: TButton;\r
-    RingtonesTabSheet: TTabSheet;\r
-    GroupBox5: TGroupBox;\r
-    Label11: TLabel;\r
-    Button1: TButton;\r
-    Button2: TButton;\r
-    Button3: TButton;\r
-    SMSTabSheet: TTabSheet;\r
-    GroupBox6: TGroupBox;\r
-    Panel2: TPanel;\r
-    Label10: TLabel;\r
-    ComboBox3: TComboBox;\r
-    ListView2: TListView;\r
-    SpeedTabSheet: TTabSheet;\r
-    GroupBox7: TGroupBox;\r
-    ListView3: TListView;\r
-    CalendarTabSheet: TTabSheet;\r
-    GroupBox8: TGroupBox;\r
-    ListView4: TListView;\r
-    SMSCTabSheet: TTabSheet;\r
-    GroupBox9: TGroupBox;\r
-    ListView6: TListView;\r
-    CallerTabSheet: TTabSheet;\r
-    GroupBox10: TGroupBox;\r
-    ListView5: TListView;\r
-    ProfileTabSheet: TTabSheet;\r
-    GroupBox13: TGroupBox;\r
-    ListView7: TListView;\r
-    Panel3: TPanel;\r
-    Splitter2: TSplitter;\r
-    GroupBox15: TGroupBox;\r
-    GroupBox16: TGroupBox;\r
-    Button13: TButton;\r
-    Button14: TButton;\r
-    Label15: TLabel;\r
-    Edit1: TEdit;\r
-    Edit2: TEdit;\r
-    Button16: TButton;\r
-    CalendarPopupMenu: TPopupMenu;\r
-    New1: TMenuItem;\r
-    Edit3: TMenuItem;\r
-    Delete1: TMenuItem;\r
-    SMSPopupMenu: TPopupMenu;\r
-    Edit4: TMenuItem;\r
-    Memo1: TMemo;\r
-    Memo2: TMemo;\r
-    New2: TMenuItem;\r
-    Label14: TLabel;\r
-    Label16: TLabel;\r
-    WapBookTabSheet: TTabSheet;\r
-    GroupBox17: TGroupBox;\r
-    DateTimePicker1: TDateTimePicker;\r
-    ConfigTabSheet: TTabSheet;\r
-    GroupBox18: TGroupBox;\r
-    Configuration1: TMenuItem;\r
-    N1: TMenuItem;\r
-    Delete2: TMenuItem;\r
-    SMSCPopupMenu: TPopupMenu;\r
-    Edit5: TMenuItem;\r
-    Label3: TLabel;\r
-    ComboBox4: TComboBox;\r
-    Label12: TLabel;\r
-    ComboBox5: TComboBox;\r
-    Label13: TLabel;\r
-    CheckBox2: TCheckBox;\r
-    Label17: TLabel;\r
-    Label18: TLabel;\r
-    PBKPopupMenu: TPopupMenu;\r
-    Edit7: TMenuItem;\r
-    Button17: TButton;\r
-    SMS1: TMenuItem;\r
-    Button18: TButton;\r
-    SMSSendSave1: TMenuItem;\r
-    ComboBox6: TComboBox;\r
-    WAPSettTabSheet: TTabSheet;\r
-    DivertTabSheet: TTabSheet;\r
-    GroupBox19: TGroupBox;\r
-    GroupBox20: TGroupBox;\r
-    Timer2: TTimer;\r
-    ListView9: TListView;\r
-    AboutTabSheet: TTabSheet;\r
-    GroupBox21: TGroupBox;\r
-    Label19: TLabel;\r
-    Label20: TLabel;\r
-    PCSMSTabSheet: TTabSheet;\r
-    GroupBox22: TGroupBox;\r
-    Panel4: TPanel;\r
-    Splitter3: TSplitter;\r
-    Panel5: TPanel;\r
-    ListView10: TListView;\r
-    CopytoPC1: TMenuItem;\r
-    N2: TMenuItem;\r
-    Memo4: TMemo;\r
-    Memo5: TMemo;\r
-    PCSMSPopupMenu: TPopupMenu;\r
-    SendSave1: TMenuItem;\r
-    N3: TMenuItem;\r
-    Delete3: TMenuItem;\r
-    Label21: TLabel;\r
-    ComboBox7: TComboBox;\r
-    Label22: TLabel;\r
-    Edit6: TEdit;\r
-    Label23: TLabel;\r
-    Edit8: TEdit;\r
-    Label24: TLabel;\r
-    ComboBox8: TComboBox;\r
-    Label25: TLabel;\r
-    ComboBox9: TComboBox;\r
-    Label26: TLabel;\r
-    ComboBox10: TComboBox;\r
-    Label27: TLabel;\r
-    Edit9: TEdit;\r
-    Label28: TLabel;\r
-    Edit10: TEdit;\r
-    Label29: TLabel;\r
-    Edit11: TEdit;\r
-    Label30: TLabel;\r
-    Edit12: TEdit;\r
-    Label31: TLabel;\r
-    ComboBox11: TComboBox;\r
-    Label32: TLabel;\r
-    ComboBox12: TComboBox;\r
-    Label33: TLabel;\r
-    ComboBox13: TComboBox;\r
-    Label34: TLabel;\r
-    Edit13: TEdit;\r
-    Label35: TLabel;\r
-    Edit14: TEdit;\r
-    Label36: TLabel;\r
-    Edit15: TEdit;\r
-    Label37: TLabel;\r
-    ComboBox14: TComboBox;\r
-    Memo3: TMemo;\r
-    PageControl2: TPageControl;\r
-    TabSheet1: TTabSheet;\r
-    Button19: TButton;\r
-    Label38: TLabel;\r
-    Edit16: TEdit;\r
-    Label39: TLabel;\r
-    Edit17: TEdit;\r
-    Label40: TLabel;\r
-    ComboBox15: TComboBox;\r
-    Label41: TLabel;\r
-    Edit18: TEdit;\r
-    Button20: TButton;\r
-    PCCalendarTabSheet: TTabSheet;\r
-    GroupBox23: TGroupBox;\r
-    ListView11: TListView;\r
-    N4: TMenuItem;\r
-    CopytoPC2: TMenuItem;\r
-    PCCalendarPopupMenu: TPopupMenu;\r
-    Copytocalendar1: TMenuItem;\r
-    N5: TMenuItem;\r
-    Delete5: TMenuItem;\r
-    PCOfflineTabSheet: TTabSheet;\r
-    GroupBox24: TGroupBox;\r
-    Label42: TLabel;\r
-    Label43: TLabel;\r
-    Label44: TLabel;\r
-    Label45: TLabel;\r
-    TabSheet2: TTabSheet;\r
-    TabSheet3: TTabSheet;\r
-    procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;\r
-      Shift: TShiftState; X, Y: Integer);\r
-    procedure FormCreate(Sender: TObject);\r
-    procedure Timer1Timer(Sender: TObject);\r
-    procedure NetmonitorTabSheetShow(Sender: TObject);\r
-    procedure NetmonitorTabSheetHide(Sender: TObject);\r
-    procedure SpinEdit1Change(Sender: TObject);\r
-    procedure ComboBox1Change(Sender: TObject);\r
-    procedure PhonebookTabSheetHide(Sender: TObject);\r
-    procedure Quit1Click(Sender: TObject);\r
-    procedure FormResize(Sender: TObject);\r
-    procedure About1Click(Sender: TObject);\r
-    procedure LogosImageMouseMove(Sender: TObject; Shift: TShiftState; X,\r
-      Y: Integer);\r
-    procedure Button1Click(Sender: TObject);\r
-    procedure Button4Click(Sender: TObject);\r
-    procedure Button3Click(Sender: TObject);\r
-    procedure PhoneTabSheetShow(Sender: TObject);\r
-    procedure Button2Click(Sender: TObject);\r
-    procedure LogosTabSheetShow(Sender: TObject);\r
-    procedure ComboBox2Select(Sender: TObject);\r
-    procedure Button7Click(Sender: TObject);\r
-    procedure LogosImageMouseDown(Sender: TObject; Button: TMouseButton;\r
-      Shift: TShiftState; X, Y: Integer);\r
-    procedure Button6Click(Sender: TObject);\r
-    procedure Button5Click(Sender: TObject);\r
-    procedure Button8Click(Sender: TObject);\r
-    procedure SpeedTabSheetShow(Sender: TObject);\r
-    procedure Button9Click(Sender: TObject);\r
-    procedure SpeedTabSheetHide(Sender: TObject);\r
-    procedure Button11Click(Sender: TObject);\r
-    procedure Button12Click(Sender: TObject);\r
-    procedure CalendarTabSheetShow(Sender: TObject);\r
-    procedure CallerTabSheetShow(Sender: TObject);\r
-    procedure SMSCTabSheetShow(Sender: TObject);\r
-    procedure Button10Click(Sender: TObject);\r
-    procedure ProfileTabSheetShow(Sender: TObject);\r
-    procedure SMSCTabSheetHide(Sender: TObject);\r
-    procedure CalendarTabSheetHide(Sender: TObject);\r
-    procedure CallerTabSheetHide(Sender: TObject);\r
-    procedure ProfileTabSheetHide(Sender: TObject);\r
-    procedure PhonebookTabSheetShow(Sender: TObject);\r
-    procedure SMSTabSheetShow(Sender: TObject);\r
-    procedure ComboBox3Change(Sender: TObject);\r
-    procedure ListView2SelectItem(Sender: TObject; Item: TListItem;\r
-      Selected: Boolean);\r
-    procedure New1Click(Sender: TObject);\r
-    procedure Edit3Click(Sender: TObject);\r
-    procedure ListView4SelectItem(Sender: TObject; Item: TListItem;\r
-      Selected: Boolean);\r
-    procedure Delete1Click(Sender: TObject);\r
-    procedure Button16Click(Sender: TObject);\r
-    procedure Edit4Click(Sender: TObject);\r
-    procedure New2Click(Sender: TObject);\r
-    procedure Configuration1Click(Sender: TObject);\r
-    procedure TreeView1KeyUp(Sender: TObject; var Key: Word;\r
-      Shift: TShiftState);\r
-    procedure SMSTabSheetHide(Sender: TObject);\r
-    procedure SMSPopupMenuPopup(Sender: TObject);\r
-    procedure CalendarPopupMenuPopup(Sender: TObject);\r
-    procedure Edit1Change(Sender: TObject);\r
-    procedure Delete2Click(Sender: TObject);\r
-    procedure Edit5Click(Sender: TObject);\r
-    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;\r
-      Shift: TShiftState; X, Y: Integer);\r
-    procedure SMSCPopupMenuPopup(Sender: TObject);\r
-    procedure ListView6SelectItem(Sender: TObject; Item: TListItem;\r
-      Selected: Boolean);\r
-    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;\r
-      Selected: Boolean);\r
-    procedure Edit7Click(Sender: TObject);\r
-    procedure Button18Click(Sender: TObject);\r
-    procedure Button17Click(Sender: TObject);\r
-    procedure SMS1Click(Sender: TObject);\r
-    procedure SMSSendSave1Click(Sender: TObject);\r
-    procedure Button13Click(Sender: TObject);\r
-    procedure Button14Click(Sender: TObject);\r
-    procedure ConfigTabSheetHide(Sender: TObject);\r
-    procedure ConfigTabSheetShow(Sender: TObject);\r
-    procedure Timer2Timer(Sender: TObject);\r
-    procedure AboutTabSheetShow(Sender: TObject);\r
-    procedure PCSMSTabSheetShow(Sender: TObject);\r
-    procedure CopytoPC1Click(Sender: TObject);\r
-    procedure ListView10SelectItem(Sender: TObject; Item: TListItem;\r
-      Selected: Boolean);\r
-    procedure PCSMSPopupMenuPopup(Sender: TObject);\r
-    procedure Delete3Click(Sender: TObject);\r
-    procedure SendSave1Click(Sender: TObject);\r
-    procedure WapBookTabSheetHide(Sender: TObject);\r
-    procedure WapBookTabSheetShow(Sender: TObject);\r
-    procedure ComboBox7Change(Sender: TObject);\r
-    procedure Button19Click(Sender: TObject);\r
-    procedure Button20Click(Sender: TObject);\r
-    procedure PCOfflineTabSheetShow(Sender: TObject);\r
-    procedure PCCalendarTabSheetShow(Sender: TObject);\r
-    procedure CopytoPC2Click(Sender: TObject);\r
-    procedure Delete5Click(Sender: TObject);\r
-    procedure Copytocalendar1Click(Sender: TObject);\r
-    procedure PCCalendarPopupMenuPopup(Sender: TObject);\r
-  private\r
-    { Private declarations }\r
-  public\r
-    { Public declarations }\r
-  end;\r
-\r
-var\r
-  MainForm: TMainForm;\r
-  setcalendarnote:GSM_CalendarNote;\r
-  setsms:GSM_MultiSMSMessage;\r
-  setsmslocation:integer;\r
-  smscselectitem:integer;\r
-  bitma:GSM_Bitmap;\r
-  rington:GSM_Ringtone;\r
-  calenda:GSM_CalendarNote;\r
-  pbk:GSM_PhonebookEntry;\r
-  previewcolor:TColor;\r
-\r
-procedure AddCalendarNote(note:GSM_CalendarNote;myview:TListView);\r
-function DayOFweek3(date:TDateTime):string;\r
-procedure SetSMSC(num:integer);\r
-\r
-implementation\r
-\r
-uses Calendar, SMSEdit, LogosRing, Netmon, smscedit, pbkedit;\r
-\r
-{$R *.dfm}\r
-\r
-type\r
-  TNetmonThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TPhonebookThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TSpeedThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TSMSCThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TSMSThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TCalendarThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TCallerThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TProfileThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TPlayRingtoneThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-  TWAPBookmarkThread = class(TThread)\r
-    public\r
-      procedure Execute; override;\r
-  end;\r
-\r
-var\r
-  //phone sheet\r
-  phoneinfo:boolean;\r
-\r
-  //reading netmonitor variables\r
-  netmonnum: integer; //number of netmon screen\r
-  NetmonThread: TNetmonThread;\r
-\r
-  //reading phonebook memories variables\r
-  phonebookstatus:GSM_MemoryStatus;\r
-  phonebookcur:integer;\r
-  phonebookfound:integer;\r
-  PhonebookThread: TPhonebookThread;\r
-  pbknumberentry:integer;\r
-\r
-  //logos\r
-  pointsize:integer;\r
-  x2,y2:byte;\r
-  logofilename:string='xxx';\r
-\r
-  //ringtones\r
-  PlayRingtoneThread: TPlayRingtoneThread;\r
-  ringindex:integer;\r
-  binring:GSM_BinRingtone;\r
-\r
-  //speeddials\r
-  speednum:integer;\r
-  SpeedThread: TSpeedThread;\r
-\r
-  //caller groups\r
-  caller:array[1..5] of GSM_Bitmap;\r
-  callerinit:boolean;\r
-  callernum:integer;\r
-  CallerThread: TCallerThread;\r
-\r
-  //smsc\r
-  smscnum:integer;\r
-  SMSCThread: TSMSCThread;\r
-  smscinit: boolean;\r
-  SMSC2:array[1..10] of GSM_MessageCenter;\r
-\r
-  //calendar\r
-  calendarnum:integer;\r
-  CalendarThread: TCalendarThread;\r
-  calendarselect:integer;\r
-  readcalendar:boolean;\r
-\r
-  //profiles\r
-  profilenum:integer;\r
-  ProfileThread: TProfileThread;\r
-\r
-  SMS:array[1..200] of GSM_SMSMessage;\r
-  SMSnum:integer;\r
-  SMSfolders:GSM_SMSFolders;\r
-  SMSstatus:GSM_SMSStatus;\r
-  smsnumindex:integer;\r
-  SMSThread: TSMSThread;\r
-  smsnum2:integer;\r
-\r
-  SMSOffline:array[1..300] of GSM_SMSMessage;\r
-  SMSOfflineNumber:integer;\r
-\r
-  //wap bookmarks\r
-  WAPBookmarkThread: TWAPBookmarkThread;\r
-  bookmarknum:integer;\r
-\r
-  CalendarOffline:array[1..300] of GSM_CalendarNote;\r
-  CalendarOfflineNumber:integer;\r
-\r
-function Inttostr2(I: Longint;digits:integer): string;\r
-\r
-{ Convert any integer type to a string }\r
-var\r
-  S: string[11];\r
-  j:integer;\r
-begin\r
-  Str(I:digits, S);\r
-  for  j:=1 to 11 do\r
-  begin\r
-    if s[j]<>' ' then break;\r
-    s[j]:='0';\r
-  end;\r
-  Result:= S;\r
-end;\r
-\r
-function DayOFweek3(date:TDateTime):string;\r
-var\r
-  days: array[1..7] of string;\r
-begin\r
-  days[1] := 'Sun';\r
-  days[2] := 'Mon';\r
-  days[3] := 'Tue';\r
-  days[4] := 'Wed';\r
-  days[5] := 'Thu';\r
-  days[6] := 'Fri';\r
-  days[7] := 'Sat';\r
-  DayOfWeek3:= days[DayOfWeek(date)];\r
-end;\r
-\r
-function DayOFweek2(day:integer;month:integer;year:integer):string;\r
-var\r
-  date:TDateTime;\r
-begin\r
-  Date:=EncodeDate(Year,Month,Day);\r
-  DayOfWeek2:= DayOfWeek3(Date);\r
-end;\r
-\r
-procedure SetSMSC(num:integer);\r
-begin\r
-  SMSEditForm.Edit1.Text:=SMSC2[num].Number;\r
-  case SMSC2[num].Validity of\r
-    GSMV_1_Hour   : SMSEditForm.ComboBox3.ItemIndex:=0;\r
-    GSMV_6_Hours  : SMSEditForm.ComboBox3.ItemIndex:=1;\r
-    GSMV_24_Hours : SMSEditForm.ComboBox3.ItemIndex:=2;\r
-    GSMV_72_Hours : SMSEditForm.ComboBox3.ItemIndex:=3;\r
-    GSMV_1_Week   : SMSEditForm.ComboBox3.ItemIndex:=4;\r
-  else\r
-    SMSEditForm.ComboBox3.ItemIndex:=5;\r
-\r
-  end;\r
-  case SMSC2[num].Format of\r
-    GSMF_Text   : SMSEditForm.ComboBox4.ItemIndex:=0;\r
-    GSMF_Fax    : SMSEditForm.ComboBox4.ItemIndex:=1;\r
-    GSMF_Email  : SMSEditForm.ComboBox4.ItemIndex:=2;\r
-  else\r
-    SMSEditForm.ComboBox4.ItemIndex:=3;\r
-  end;\r
-end;\r
-\r
-procedure ReadCallerGroup();\r
-var\r
-  logo:GSM_Bitmap;\r
-  name:Pchar;\r
-  i:integer;\r
-begin\r
-  if callernum<6 then\r
-  begin\r
-    i:=1;\r
-    while i<>0 do\r
-    begin\r
-      logo.type2:=GSM_CallerLogo;\r
-      logo.number:=callernum-1;\r
-      MainForm.Timer2.Enabled:=false;\r
-      i:=GSM_GetBitmap(@logo);\r
-      MainForm.Timer2.Enabled:=true;\r
-    end;\r
-    caller[callernum]:=logo;\r
-    MainForm.ListView5.Items.Add;\r
-    MainForm.ListView5.Items.Item[callernum-1].Caption:=inttostr(callernum);\r
-    if logo.text[1]=chr(0) then\r
-    begin\r
-      name:='';\r
-      case callernum of\r
-        1:name:='Family';\r
-        2:name:='VIP';\r
-        3:name:='Friends';\r
-        4:name:='Colleagues';\r
-        5:name:='Other';\r
-      end;\r
-      for i:=1 to 255 do\r
-      begin\r
-        caller[callernum].text[i]:=chr(0);\r
-      end;\r
-      for i:=1 to strlen(name) do\r
-      begin\r
-        caller[callernum].text[i]:=name[i-1];\r
-      end;\r
-    end;\r
-    MainForm.ListView5.Items.Item[callernum-1].Subitems.Add(caller[callernum].text);\r
-    if logo.ringtone=16 then\r
-      MainForm.ListView5.Items.Item[callernum-1].Subitems.Add('default')\r
-    else\r
-      MainForm.ListView5.Items.Item[callernum-1].Subitems.Add(inttostr(logo.ringtone));\r
-    if logo.enabled<>0 then\r
-      MainForm.ListView5.Items.Item[callernum-1].Subitems.Add('logo enabled')\r
-    else\r
-      MainForm.ListView5.Items.Item[callernum-1].Subitems.Add('logo disabled');\r
-  end else callerinit:=true;\r
-  callernum:=callernum+1;\r
-end;\r
-\r
-procedure ReadAllCallerGroups();\r
-begin\r
-  if callerinit=false then\r
-  begin\r
-    MainForm.ListView5.Items.Clear;\r
-    callernum:=1;\r
-    while callerinit=false do\r
-    begin\r
-      ReadCallerGroup();\r
-      if callerinit then break;\r
-    end;\r
-  end;\r
-end;\r
-\r
-//logos sheet\r
-procedure UpdatePointBitmap(i,j:integer);\r
-begin\r
-  if GSM_IsPointBitmap(@bitma,i,j)<>0 then\r
-  begin\r
-    MainForm.LogosImage.Canvas.Brush.Color := clBlack;\r
-    MainForm.Image1.Canvas.Pen.Color := clBlack;\r
-  end else\r
-  begin\r
-    MainForm.LogosImage.Canvas.Brush.Color := PreviewColor;//$0063cf63\r
-    MainForm.Image1.Canvas.Pen.Color := PreviewColor;\r
-  end;\r
-  MainForm.LogosImage.Canvas.FillRect(Rect(i*pointsize+i,j*pointsize+j,(i+1)*pointsize+i,(j+1)*pointsize+j));\r
-  MainForm.Image1.Canvas.Polyline([Point(28+i, 145+j), Point(29+i,146+j)]);\r
-end;\r
-\r
-procedure DrawBitmap();\r
-var\r
-  xsize:integer;\r
-  ysize:integer;\r
-  i,j:integer;\r
-begin\r
-  MainForm.StatusBar1.Panels[0].Text:=inttostr(bitma.width);\r
-  xsize:=bitma.width;\r
-  ysize:=bitma.heigh;\r
-\r
-  MainForm.LogosImage.Canvas.Brush.Style := bsSolid;\r
-  MainForm.LogosImage.Canvas.Brush.Color := clScrollBar;\r
-\r
-  MainForm.LogosImage.Canvas.Pen.Mode := pmCopy;\r
-\r
-  MainForm.LogosImage.Canvas.Pen.Color := clScrollBar;\r
-  MainForm.LogosImage.Canvas.Rectangle(0,0,MainForm.LogosImage.Width,MainForm.LogosImage.Height);\r
-\r
-  MainForm.LogosImage.Canvas.Pen.Color := PreviewColor;\r
-  MainForm.LogosImage.Canvas.Rectangle(0,0,xsize*pointsize+xsize-1,ysize*pointsize+ysize-1);\r
-\r
-  MainForm.LogosImage.Canvas.Brush.Color := PreviewColor;\r
-  MainForm.LogosImage.Canvas.FloodFill(2,2,PreviewColor,fsBorder);\r
-\r
-  MainForm.LogosImage.Canvas.Pen.Color := clBlack;\r
-\r
-  for i:=0 to xsize do\r
-  begin\r
-    MainForm.LogosImage.Canvas.MoveTo(i*pointsize+i-1,0);\r
-    MainForm.LogosImage.Canvas.LineTo(i*pointsize+i-1,ysize*pointsize+ysize-1);\r
-  end;\r
-  for i:=0 to ysize do\r
-  begin\r
-    MainForm.LogosImage.Canvas.MoveTo(0,i*pointsize+i-1);\r
-    MainForm.LogosImage.Canvas.LineTo(xsize*pointsize+xsize-1,i*pointsize+i-1);\r
-  end;\r
-\r
-  MainForm.Image1.Picture.Assign(MainForm.Image2.Picture);\r
-  MainForm.Image1.Canvas.Pen.Mode := pmCopy;\r
-  for i:=0 to xsize-1 do\r
-  begin\r
-   for j:=0 to ysize-1 do\r
-    begin\r
-      UpdatePointBitmap(i,j);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Image1MouseDown(Sender: TObject; Button: TMouseButton;\r
-  Shift: TShiftState; X, Y: Integer);\r
-var\r
-  sr: TSearchRec;\r
-  filefound:integer;\r
-begin\r
-  filefound:=0;\r
-  if FindFirst(ExtractFilePath(Application.ExeName)+'\*bmp', faAnyFile, sr) = 0 then\r
-  begin\r
-    repeat\r
-      if (sr.Attr and faAnyFile) = sr.Attr then\r
-      begin\r
-        if sr.Size=57814 then\r
-        begin\r
-          case filefound of\r
-            1:begin\r
-                Image2.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\'+sr.name);\r
-                PreviewColor:=Image2.Canvas.Pixels[70,170];\r
-                DrawBitmap;\r
-                filefound:=2;\r
-                logofilename:=sr.name;\r
-              end;\r
-            0:if logofilename=sr.Name then filefound:=1;\r
-          end;\r
-          if filefound=2 then break;\r
-        end;\r
-      end;\r
-    until FindNext(sr) <> 0;\r
-    FindClose(sr);\r
-  end;\r
-  if filefound<>2 then\r
-  begin\r
-    if FindFirst(ExtractFilePath(Application.ExeName)+'\*bmp', faAnyFile, sr) = 0 then\r
-    begin\r
-      Image2.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'\'+sr.name);\r
-      DrawBitmap;\r
-      logofilename:=sr.name;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure LogosMousePos(x,y:integer);\r
-var\r
-  i:integer;\r
-begin\r
-  i:=0;x2:=0;\r
-  while i<=x do\r
-  begin\r
-    i:=i+pointsize+1;\r
-    x2:=x2+1;\r
-  end;\r
-  i:=0;y2:=0;\r
-  while i<=y do\r
-  begin\r
-    i:=i+pointsize+1;\r
-    y2:=y2+1;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ComboBox2Select(Sender: TObject);\r
-var\r
-  bittype:integer;\r
-begin\r
-  case ComboBox2.ItemIndex of\r
-    0:bittype:=GSM_CallerLogo;\r
-    1:bittype:=GSM_OperatorLogo;\r
-    2:bittype:=GSM_PictureImage;\r
-    3:bittype:=GSM_StartupLogo;\r
-  else\r
-    bittype:=GSM_StartupLogo;\r
-  end;\r
-  GSM_ResizeBitmap(@bitma,bittype);\r
-  DrawBitmap();\r
-  if bitma.type2<>GSM_OperatorLogo then\r
-    Button8.Enabled:=false\r
-  else\r
-    Button8.Enabled:=true;\r
-end;\r
-\r
-procedure TMainForm.LogosImageMouseMove(Sender: TObject; Shift: TShiftState;\r
-  X, Y: Integer);\r
-begin\r
-  LogosMousePos(x,y);\r
-  if x2<=bitma.width then\r
-  begin\r
-    if y2<=bitma.heigh then\r
-      MainForm.StatusBar1.Panels[0].Text:=inttostr(x2)+','+inttostr(y2)\r
-    else\r
-      MainForm.StatusBar1.Panels[0].Text:='';\r
-  end else\r
-    MainForm.StatusBar1.Panels[0].Text:='';\r
-end;\r
-\r
-procedure TMainForm.LogosTabSheetShow(Sender: TObject);\r
-begin\r
-  DrawBitmap();\r
-end;\r
-\r
-procedure TMainForm.Button7Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  LogosRingForm.Label1.Caption:='What logo do you want to get ?';\r
-  LogosRingForm.ComboBox3.Items.Clear;\r
-  case bitma.type2 of\r
-    GSM_CallerLogo:\r
-      begin\r
-        LogosRingForm.ComboBox3.Visible:=true;\r
-        ReadAllCallerGroups();\r
-        for i:=1 to 5 do\r
-        begin\r
-          LogosRingForm.ComboBox3.Items.Add(caller[i].text);\r
-        end;\r
-        LogosRingForm.ComboBox3.ItemIndex:=0;\r
-        LogosRingForm.ShowModal();\r
-        if (LogosRingForm.ComboBox3.Visible) then\r
-        begin\r
-          bitma.number:=LogosRingForm.ComboBox3.ItemIndex;\r
-          MainForm.Timer2.Enabled:=false;\r
-          GSM_GetBitmap(@bitma);\r
-          MainForm.Timer2.Enabled:=true;\r
-          DrawBitmap();\r
-        end;\r
-      end;\r
-    GSM_PictureImage:\r
-      begin\r
-        LogosRingForm.ComboBox3.Visible:=true;\r
-        for i:=1 to 20 do\r
-        begin\r
-          LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i));\r
-        end;\r
-        LogosRingForm.ComboBox3.ItemIndex:=0;\r
-        LogosRingForm.ShowModal();\r
-        if (LogosRingForm.ComboBox3.Visible) then\r
-        begin\r
-          bitma.number:=LogosRingForm.ComboBox3.ItemIndex;\r
-          MainForm.Timer2.Enabled:=false;\r
-          GSM_GetBitmap(@bitma);\r
-          MainForm.Timer2.Enabled:=true;\r
-          DrawBitmap();\r
-        end;\r
-      end;\r
-    else\r
-    begin\r
-      MainForm.Timer2.Enabled:=false;\r
-      GSM_GetBitmap(@bitma);\r
-      MainForm.Timer2.Enabled:=true;\r
-      DrawBitmap();\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button4Click(Sender: TObject);\r
-var\r
-  bit:GSM_Bitmap;\r
-begin\r
-  if OpenDialog1.Execute then\r
-  begin\r
-    if GSM_ReadBitmapFile(PChar(OpenDialog1.FileName),@bit)=0 then\r
-    begin\r
-      bitma:=bit;\r
-      DrawBitmap();\r
-      case bitma.type2 of\r
-        GSM_CallerLogo  :ComboBox2.ItemIndex:=0;\r
-        GSM_OperatorLogo:ComboBox2.ItemIndex:=1;\r
-        GSM_PictureImage:ComboBox2.ItemIndex:=2;\r
-        GSM_StartupLogo :ComboBox2.ItemIndex:=3;\r
-      end;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.LogosImageMouseDown(Sender: TObject; Button: TMouseButton;\r
-  Shift: TShiftState; X, Y: Integer);\r
-begin\r
-  LogosMousePos(x,y);\r
-  if x2<=bitma.width then\r
-  begin\r
-    if y2<=bitma.heigh then\r
-    begin\r
-      if ssLeft in Shift then\r
-        GSM_SetPointBitmap(@bitma,x2-1,y2-1)\r
-      else\r
-        GSM_ClearPointBitmap(@bitma,x2-1,y2-1);\r
-\r
-      UpdatePointBitmap(x2-1,y2-1);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button6Click(Sender: TObject);\r
-var\r
-  i,j:integer;\r
-  Name,Data:array[1..255] of char;\r
-  oldbitma:GSM_Bitmap;\r
-begin\r
-  LogosRingForm.Label1.Caption:='Do you want to set logo ?';\r
-  LogosRingForm.ComboBox3.Items.Clear;\r
-  case bitma.type2 of\r
-    GSM_StartupLogo:\r
-      begin\r
-        LogosRingForm.ComboBox3.Visible:=false;\r
-        LogosRingForm.ShowModal();\r
-        if (LogosRingForm.ComboBox3.Visible) then\r
-          GSM_SetBitmap(@bitma);\r
-      end;\r
-    GSM_OperatorLogo:\r
-      begin\r
-        LogosRingForm.ComboBox3.Visible:=true;\r
-        LogosRingForm.ComboBox3.Items.Add('Preview');\r
-        //preparing network names\r
-        i:=0;\r
-        while true do\r
-        begin\r
-          GSM_GetNetworkData(i,@Name,@Data);\r
-\r
-          // conversion problems\r
-          Label14.Caption:=Name;\r
-          if strcomp(PChar(Label14.Caption),PChar('unknown'))=0 then break;\r
-\r
-          // conversion problems\r
-          Label14.Caption:=' - '+Label14.Caption;\r
-          for j:=6 downto 1 do\r
-          begin\r
-            Label14.Caption:=Data[j]+Label14.Caption;\r
-          end;\r
-\r
-          LogosRingForm.ComboBox3.Items.Add(Pchar(Label14.Caption));\r
-          i:=i+1;\r
-        end;\r
-        //looking for current network\r
-        if GSMPhoneConnected then\r
-        begin\r
-          // conversion problems\r
-          Label14.Caption:=MainForm.StatusBar1.Panels[1].Text;\r
-          Label14.Caption:=' - '+Label14.Caption;\r
-          for j:=6 downto 1 do\r
-          begin\r
-            Label14.Caption:=GSMNetworkInfo.NetworkCode[j]+Label14.Caption;\r
-          end;\r
-\r
-          i:=1;\r
-          while true do\r
-          begin\r
-            if strcomp(pchar(LogosRingForm.ComboBox3.Items[i]),pchar(Label14.Caption))=0\r
-              then break;\r
-            i:=i+1;\r
-          end;\r
-          LogosRingForm.ComboBox3.ItemIndex:=i;\r
-        end;\r
-        LogosRingForm.ShowModal();\r
-        if (LogosRingForm.ComboBox3.Visible) then\r
-        begin\r
-          if LogosRingForm.ComboBox3.ItemIndex=0 then\r
-          begin\r
-            bitma.number:=255;\r
-            for i:=1 to 6 do\r
-            begin\r
-              bitma.netcode[i]:=GSMNetworkInfo.NetworkCode[i];\r
-            end;\r
-            bitma.netcode[7]:=chr(0);\r
-          end else\r
-          begin\r
-            GSM_GetNetworkData(LogosRingForm.ComboBox3.ItemIndex-1,@Name,@bitma.netcode);\r
-          end;\r
-          GSM_SetBitmap(@bitma);\r
-        end;\r
-      end;\r
-    GSM_PictureImage:\r
-      begin\r
-        LogosRingForm.ComboBox3.Visible:=true;\r
-        for i:=1 to 20 do\r
-        begin\r
-          LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i));\r
-        end;\r
-        LogosRingForm.ComboBox3.ItemIndex:=0;\r
-        LogosRingForm.ShowModal();\r
-        if (LogosRingForm.ComboBox3.Visible) then\r
-        begin\r
-          if LogosRingForm.ComboBox3.ItemIndex=0 then\r
-          begin\r
-            bitma.number:=255;\r
-          end else\r
-          begin\r
-            bitma.number:=LogosRingForm.ComboBox3.ItemIndex;\r
-          end;\r
-          GSM_SetBitmap(@bitma);\r
-        end;\r
-      end;\r
-    GSM_CallerLogo:\r
-      begin\r
-        LogosRingForm.ComboBox3.Visible:=true;\r
-        LogosRingForm.ComboBox3.Items.Add('Preview');\r
-        ReadAllCallerGroups();\r
-        for i:=1 to 5 do\r
-        begin\r
-          LogosRingForm.ComboBox3.Items.Add(caller[i].text);\r
-        end;\r
-        LogosRingForm.ComboBox3.ItemIndex:=1;\r
-        LogosRingForm.ShowModal();\r
-        if (LogosRingForm.ComboBox3.Visible) then\r
-        begin\r
-          if LogosRingForm.ComboBox3.ItemIndex=0 then\r
-          begin\r
-            bitma.number:=255;\r
-          end else\r
-          begin\r
-            bitma.number:=LogosRingForm.ComboBox3.ItemIndex-1;\r
-            //we need to get old caller group datas\r
-            oldbitma.type2:=bitma.type2;\r
-            oldbitma.number:=bitma.number;\r
-            GSM_GetBitmap(@oldbitma);\r
-            bitma.ringtone:=oldbitma.ringtone;\r
-            bitma.text:=oldbitma.text;\r
-          end;\r
-          GSM_SetBitmap(@bitma);\r
-        end;\r
-      end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button5Click(Sender: TObject);\r
-begin\r
-  if SaveDialog1.Execute then\r
-  begin\r
-    GSM_SaveBitmapFile(PChar(SaveDialog1.FileName),@bitma);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button8Click(Sender: TObject);\r
-var\r
-  bitma2:GSM_Bitmap;\r
-begin\r
-  if MessageDlg('Restore logo to default ?',\r
-    mtConfirmation, [mbYes, mbNo], 0) = mrYes then\r
-  begin\r
-    bitma2:=bitma;\r
-    bitma2.netcode[1]:='0';\r
-    bitma2.netcode[2]:='0';\r
-    bitma2.netcode[3]:='0';\r
-    bitma2.netcode[4]:=' ';\r
-    bitma2.netcode[5]:='0';\r
-    bitma2.netcode[6]:='0';\r
-    bitma2.netcode[7]:=chr(0);\r
-    GSM_ClearBitmap(@bitma2);\r
-    GSM_SetBitmap(@bitma2);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button12Click(Sender: TObject);\r
-begin\r
-  GSM_ClearBitmap(@bitma);\r
-  DrawBitmap();\r
-end;\r
-\r
-//MainForm main functions\r
-procedure TMainForm.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;\r
-  Shift: TShiftState; X, Y: Integer);\r
-begin\r
-  MainForm.TreeView1.FullExpand;\r
-  case MainForm.TreeView1.Selected.ImageIndex of\r
-    0: MainForm.PageControl1.ActivePage:=PhoneTabSheet;\r
-    1: MainForm.PageControl1.ActivePage:=CalendarTabSheet;\r
-    2: MainForm.PageControl1.ActivePage:=DivertTabSheet;\r
-    3: MainForm.PageControl1.ActivePage:=CallerTabSheet;\r
-    4: MainForm.PageControl1.ActivePage:=LogosTabSheet;\r
-    5: MainForm.PageControl1.ActivePage:=NetmonitorTabSheet;\r
-    6: MainForm.PageControl1.ActivePage:=PhonebookTabSheet;\r
-    7: MainForm.PageControl1.ActivePage:=ProfileTabSheet;\r
-    8: MainForm.PageControl1.ActivePage:=RingtonesTabSheet;\r
-    9: MainForm.PageControl1.ActivePage:=SMSTabSheet;\r
-    10: MainForm.PageControl1.ActivePage:=SMSCTabSheet;\r
-    11: MainForm.PageControl1.ActivePage:=SpeedTabSheet;\r
-    12: MainForm.PageControl1.ActivePage:=WAPBookTabSheet;\r
-    13: MainForm.PageControl1.ActivePage:=WAPSettTabSheet;\r
-    14: MainForm.PageControl1.ActivePage:=PCOfflineTabSheet;\r
-    15: MainForm.PageControl1.ActivePage:=PCCalendarTabSheet;\r
-    16: MainForm.PageControl1.ActivePage:=PCSMSTabSheet;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Configuration1Click(Sender: TObject);\r
-begin\r
-  MainForm.PageControl1.ActivePage:=ConfigTabSheet;\r
-end;\r
-\r
-procedure TMainForm.TreeView1KeyUp(Sender: TObject; var Key: Word;\r
-  Shift: TShiftState);\r
-begin\r
-  MainForm.TreeView1.FullExpand;\r
-end;\r
-\r
-procedure TMainForm.FormCreate(Sender: TObject);\r
-begin\r
-  MainForm.PhonebookTabSheet.TabVisible:=false;\r
-  MainForm.NetmonitorTabSheet.TabVisible:=false;\r
-  MainForm.LogosTabSheet.TabVisible:=false;\r
-  MainForm.PhoneTabSheet.TabVisible:=false;\r
-  MainForm.RingtonesTabSheet.TabVisible:=false;\r
-  MainForm.SMSTabSheet.TabVisible:=false;\r
-  MainForm.SMSCTabSheet.TabVisible:=false;\r
-  MainForm.SpeedTabSheet.TabVisible:=false;\r
-  MainForm.CalendarTabSheet.TabVisible:=false;\r
-  MainForm.CallerTabSheet.TabVisible:=false;\r
-  MainForm.ProfileTabSheet.TabVisible:=false;\r
-  MainForm.WAPBookTabSheet.TabVisible:=false;\r
-  MainForm.WAPSettTabSheet.TabVisible:=false;\r
-  MainForm.DivertTabSheet.TabVisible:=false;\r
-  MainForm.ConfigTabSheet.TabVisible:=false;\r
-  MainForm.AboutTabSheet.TabVisible:=false;\r
-  MainForm.PCSMSTabSheet.TabVisible:=false;\r
-  MainForm.PCCalendarTabSheet.TabVisible:=false;\r
-  MainForm.PCOfflineTabSheet.TabVisible:=false;\r
-  MainForm.PageControl1.ActivePage:=PhoneTabSheet;\r
-\r
-  PreviewColor:=Image2.Canvas.Pixels[70,170];\r
-\r
-  bitma.size:=126;\r
-  bitma.width:=72;\r
-  bitma.heigh:=14;\r
-  bitma.type2:=GSM_OperatorLogo;\r
-  GSM_ClearBitmap(@bitma);\r
-\r
-  pointsize:=3;\r
-  MainForm.LogosImage.Width:=96*pointsize+96-1;\r
-  MainForm.LogosImage.Height:=65*pointsize+65-1;\r
-\r
-  netmonnum:=1;\r
-\r
-  MainForm.Width:=660;\r
-  MainForm.Height:=470;\r
-\r
-  callerinit:=false;\r
-  phoneinfo:=false;\r
-  smscinit:=false;\r
-\r
-  smsofflinenumber:=0;\r
-  calendarofflinenumber:=0;\r
-\r
-  readcalendar:=false;\r
-end;\r
-\r
-procedure TMainForm.Timer1Timer(Sender: TObject);\r
-var\r
-  NetworkName:array[1..255] of char;\r
-begin\r
-  if GSMPhoneConnected then\r
-  begin\r
-    // Here we should enable interface\r
-    GSM_GetNetworkName(@NetworkName,@GSMNetworkInfo.NetworkCode);\r
-    MainForm.StatusBar1.Panels[1].Text:=NetworkName;\r
-    if PhonebookThread=nil then\r
-      ComboBox1.Enabled:=true;\r
-\r
-    ListView1.Enabled:=true;\r
-    NetmonGroupBox.Enabled:=true;\r
-    SpinEdit1.Enabled:=true;\r
-    Button2.Enabled:=true;\r
-    Button3.Enabled:=true;\r
-    Button6.Enabled:=true;\r
-    Button7.Enabled:=true;\r
-    Button9.Enabled:=true;\r
-    Button11.Enabled:=true;\r
-\r
-    //ringtones\r
-    Button16.Enabled:=true;\r
-    if Edit1.Text<>'' then\r
-      Edit1.Enabled:=true;\r
-    if Edit2.Text<>'' then\r
-      Edit2.Enabled:=true;\r
-\r
-    If MainForm.PageControl1.ActivePage=MainForm.NetmonitorTabSheet then\r
-      NetmonitorTabSheetShow(Sender);\r
-\r
-    If MainForm.PageControl1.ActivePage=MainForm.PhoneTabSheet then\r
-    begin\r
-      if not phoneinfo then\r
-        PhoneTabSheetShow(Sender);\r
-    end;\r
-\r
-    If MainForm.PageControl1.ActivePage=MainForm.SpeedTabSheet then\r
-    begin\r
-      if speednum<>10 then\r
-        SpeedTabSheetShow(Sender);\r
-    end;\r
-\r
-    if bitma.type2<>GSM_OperatorLogo then\r
-      Button8.Enabled:=false\r
-    else\r
-      Button8.Enabled:=true;\r
-\r
-    if Edit2.Text<>'' then\r
-      Button14.Enabled:=true\r
-    else\r
-      Button14.Enabled:=false;\r
-\r
-    if Edit1.Text<>'' then\r
-    begin\r
-      Button2.Enabled:=true;\r
-      Button17.Enabled:=true;\r
-      if PlayRingtoneThread<>nil then\r
-      begin\r
-        Button3.Enabled:=false;\r
-        Button16.Enabled:=true;\r
-      end\r
-      else\r
-      begin\r
-        Button3.Enabled:=true;\r
-        Button16.Enabled:=false;\r
-      end;\r
-    end else\r
-    begin\r
-      Button2.Enabled:=false;\r
-      Button17.Enabled:=false;\r
-      Button16.Enabled:=false;\r
-      Button3.Enabled:=false;\r
-    end;\r
-\r
-    Button18.Enabled:=false;\r
-    if bitma.type2=GSM_PictureImage then\r
-      Button18.Enabled:=true;\r
-    if bitma.type2=GSM_OperatorLogo then\r
-      Button18.Enabled:=true;\r
-    if bitma.type2=GSM_CallerLogo then\r
-      Button18.Enabled:=true;\r
-\r
-    //wap settings\r
-    WAPSettTabSheet.Enabled:=true;\r
-    if GSM_GetModelFeature(FN_WAP)=0 then\r
-    begin\r
-      GroupBox19.Enabled:=false;\r
-      groupbox19.Ctl3D:=false;\r
-      ComboBox7.enabled:=false;\r
-      ComboBox8.enabled:=false;\r
-      ComboBox9.enabled:=false;\r
-      ComboBox10.enabled:=false;\r
-      ComboBox11.enabled:=false;\r
-      ComboBox12.enabled:=false;\r
-      ComboBox13.enabled:=false;\r
-      ComboBox14.enabled:=false;\r
-      Edit6.Enabled:=false;\r
-      Edit8.Enabled:=false;\r
-      Edit9.Enabled:=false;\r
-      Edit10.Enabled:=false;\r
-      Edit11.Enabled:=false;\r
-      Edit12.Enabled:=false;\r
-      Edit13.Enabled:=false;\r
-      Edit14.Enabled:=false;\r
-      Edit15.Enabled:=false;\r
-    end else\r
-    begin\r
-      GroupBox19.Enabled:=true;\r
-      groupbox19.Ctl3D:=true;\r
-      ComboBox7.enabled:=true;\r
-      ComboBox8.enabled:=true;\r
-      ComboBox9.enabled:=true;\r
-      ComboBox10.enabled:=true;\r
-      ComboBox11.enabled:=true;\r
-      ComboBox12.enabled:=true;\r
-      ComboBox13.enabled:=true;\r
-      ComboBox14.enabled:=true;\r
-      Edit6.Enabled:=true;\r
-      Edit8.Enabled:=true;\r
-      Edit9.Enabled:=true;\r
-      Edit10.Enabled:=true;\r
-      Edit11.Enabled:=true;\r
-      Edit12.Enabled:=true;\r
-      Edit13.Enabled:=true;\r
-      Edit14.Enabled:=true;\r
-      Edit15.Enabled:=true;\r
-    end;\r
-\r
-    button19.Enabled:=true;\r
-    button20.Enabled:=true;\r
-  end else\r
-  begin\r
-    // Here we should disabled interface\r
-    MainForm.StatusBar1.Panels[1].Text:='Not connected';\r
-\r
-    callerinit:=false;\r
-\r
-    MainForm.ComboBox1.Enabled:=false;\r
-    MainForm.ListView1.Enabled:=false;\r
-    MainForm.NetmonGroupBox.Enabled:=false;\r
-    MainForm.SpinEdit1.Enabled:=false;\r
-    MainForm.Button2.Enabled:=false;\r
-    MainForm.Button3.Enabled:=false;\r
-    MainForm.Button6.Enabled:=false;\r
-    MainForm.Button7.Enabled:=false;\r
-    MainForm.Button8.Enabled:=false;\r
-    MainForm.Button9.Enabled:=false;\r
-    MainForm.Button11.Enabled:=false;\r
-    Button18.Enabled:=false;\r
-\r
-    //ringtones\r
-    Button16.Enabled:=false;\r
-    Button14.Enabled:=false;\r
-    Button17.Enabled:=false;\r
-    Edit1.Enabled:=false;\r
-    Edit2.Enabled:=false;\r
-\r
-    MainForm.NetmonitorTabSheetHide(Sender);\r
-    MainForm.PhonebookTabSheetHide(Sender);\r
-    MainForm.SpeedTabSheetHide(Sender);\r
-\r
-    //WAP settings\r
-    ComboBox7.enabled:=false;\r
-    ComboBox8.enabled:=false;\r
-    ComboBox9.enabled:=false;\r
-    ComboBox10.enabled:=false;\r
-    ComboBox11.enabled:=false;\r
-    ComboBox12.enabled:=false;\r
-    ComboBox13.enabled:=false;\r
-    ComboBox14.enabled:=false;\r
-    Edit6.Enabled:=false;\r
-    Edit8.Enabled:=false;\r
-    Edit9.Enabled:=false;\r
-    Edit10.Enabled:=false;\r
-    Edit11.Enabled:=false;\r
-    Edit12.Enabled:=false;\r
-    Edit13.Enabled:=false;\r
-    Edit14.Enabled:=false;\r
-    Edit15.Enabled:=false;\r
-\r
-    button19.Enabled:=false;\r
-    button20.Enabled:=false;\r
-\r
-    phoneinfo:=false;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Quit1Click(Sender: TObject);\r
-begin\r
-  if GSMPhoneConnected then GSM_Terminate();\r
-  Halt;\r
-end;\r
-\r
-procedure TMainForm.FormResize(Sender: TObject);\r
-begin\r
-  MainForm.StatusBar1.Panels[0].Width:=MainForm.Width-150;\r
-end;\r
-\r
-procedure TMainForm.About1Click(Sender: TObject);\r
-begin\r
-  AboutTabSheet.Show;\r
-end;\r
-\r
-//netmonitor sheet functions\r
-\r
-procedure TNetmonThread.Execute;\r
-var\r
-  netmon:array[1..255] of char;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    GSM_Netmonitor(netmonnum,@netmon);\r
-    MainForm.NetmonLabel.Caption:=netmon;\r
-    MainForm.NetmonGroupBox.Caption:=' Screen ' + IntToStr(netmonnum) + ' ';\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.NetmonitorTabSheetShow(Sender: TObject);\r
-begin\r
-  if NetmonThread<>nil then\r
-  else begin\r
-    if GSMPhoneConnected then\r
-    begin\r
-      MainForm.Timer2.Enabled:=false;\r
-      NetmonThread:=TNetmonThread.Create(false);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.NetmonitorTabSheetHide(Sender: TObject);\r
-begin\r
-  if (NetmonThread<>nil) then\r
-  begin\r
-    NetmonThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    NetmonThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.SpinEdit1Change(Sender: TObject);\r
-begin\r
-  netmonnum:=SpinEdit1.Value;\r
-end;\r
-\r
-procedure TMainForm.Button11Click(Sender: TObject);\r
-var\r
-  netmon:array[1..255] of char;\r
-begin\r
-  NetmonForm.ShowModal;\r
-  if NetmonForm.RadioGroup1.ItemIndex<>-1 then\r
-  begin\r
-    GSM_Netmonitor(241+NetmonForm.RadioGroup1.ItemIndex,@netmon);\r
-  end;\r
-end;\r
-\r
-//phonebook sheet functions\r
-\r
-procedure EndPhonebookThread;\r
-begin\r
-  if (PhonebookThread<>nil) then\r
-  begin\r
-    PhonebookThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    PhonebookThread:=nil;\r
-    MainForm.ComboBox1.Enabled:=true;\r
-  end;\r
-end;\r
-\r
-procedure TPhonebookThread.Execute;\r
-var\r
-  x:GSM_PhonebookEntry;\r
-  i,j:integer;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    if (phonebookcur<phonebookstatus.Used+phonebookstatus.Free) then\r
-    begin\r
-      phonebookcur:=phonebookcur+1;\r
-      MainForm.StatusBar1.Panels[0].Text:='Reading '+inttostr(phonebookcur)+'/'+inttostr(phonebookstatus.Free+phonebookstatus.Used);\r
-      MainForm.ListView1.Items.Add;\r
-      MainForm.ListView1.Items.Item[phonebookcur-1].Caption:=inttostr(phonebookcur);\r
-      if (phonebookfound<phonebookstatus.Used) then\r
-      begin\r
-        x.MemoryType:=phonebookstatus.MemoryType;\r
-        x.Location:=phonebookcur;\r
-        if (x.MemoryType=GMT_ON) then x.Location:=x.Location-1;\r
-        if (x.MemoryType=GMT_DC) then x.Location:=x.Location-1;\r
-        if (x.MemoryType=GMT_MC) then x.Location:=x.Location-1;\r
-        if (x.MemoryType=GMT_RC) then x.Location:=x.Location-1;\r
-        if GSM_GetMemoryLocation(@x)=0 then\r
-        begin\r
-          MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(x.Name);\r
-\r
-          if (x.Number[1]<>chr(0)) then\r
-            MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(x.Number)\r
-          else begin\r
-            for j:=1 to x.SubEntriesCount do\r
-            begin\r
-              if x.SubEntries[j].EntryType=GSM_Number then\r
-              begin\r
-                MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(x.subentries[j].Number);\r
-                break;\r
-              end;\r
-            end;\r
-          end;\r
-\r
-          case x.Group of\r
-            0:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text);\r
-            1:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text);\r
-            2:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text);\r
-            3:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text);\r
-            4:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text);\r
-          else\r
-            MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add('not set');\r
-          end;\r
-\r
-          for i:=1 to x.SubEntriesCount do\r
-          begin\r
-            if x.SubEntries[i].EntryType=GSM_Date then\r
-            begin\r
-              MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(DayOfweek2(x.SubEntries[i].Date.Day,x.SubEntries[i].Date.Month,x.SubEntries[i].Date.Year)+' '+inttostr2(x.SubEntries[i].Date.Day,2)+'-'+inttostr2(x.SubEntries[i].Date.Month,2)+'-'+inttostr(x.SubEntries[i].Date.Year));\r
-              MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(inttostr2(x.SubEntries[i].Date.Hour,2)+':'+inttostr2(x.SubEntries[i].Date.Minute,2)+':'+inttostr2(x.SubEntries[i].Date.Second,2));\r
-              break;\r
-            end;\r
-          end;\r
-          if (x.Name[1]<>chr(0)) then phonebookfound:=phonebookfound+1;\r
-        end;\r
-      end;\r
-    end else\r
-    begin\r
-      MainForm.StatusBar1.Panels[0].Text:=inttostr(phonebookstatus.Used)+'/'+inttostr(phonebookstatus.Free+phonebookstatus.Used)+' entries';\r
-      EndPhonebookThread;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.PhonebookTabSheetShow(Sender: TObject);\r
-begin\r
-  if GSMPhoneConnected then ComboBox1.Enabled:=true;\r
-end;\r
-\r
-procedure TMainForm.Button10Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-  FileHandle:integer;\r
-begin\r
-  if SaveDialog1.Execute then\r
-  begin\r
-    FileHandle := FileCreate(SaveDialog1.FileName);\r
-    for i:=1 to ListView1.Items.Count do\r
-    begin\r
-      FileWrite(FileHandle,ListView1.Items.Item[i].Caption, SizeOf(ListView1.Items.Item[i].Caption));\r
-    end;\r
-    FileClose(FileHandle);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ComboBox1Change(Sender: TObject);\r
-begin\r
-  if (ComboBox1.ItemIndex<>0) then\r
-  begin\r
-    case ComboBox1.ItemIndex of\r
-      1:phonebookstatus.MemoryType:=GMT_DC;\r
-      2:phonebookstatus.MemoryType:=GMT_MC;\r
-      3:phonebookstatus.MemoryType:=GMT_ON;\r
-      4:phonebookstatus.MemoryType:=GMT_ME;\r
-      5:phonebookstatus.MemoryType:=GMT_SM;\r
-      6:phonebookstatus.MemoryType:=GMT_RC;\r
-    end;\r
-    if GSM_GetMemoryStatus(@phonebookstatus)<>0 then\r
-    begin\r
-      phonebookstatus.Free:=0;\r
-      phonebookstatus.Used:=30;\r
-    end;\r
-    phonebookcur:=0;\r
-    phonebookfound:=0;\r
-\r
-    ComboBox1.Enabled:=false;\r
-\r
-    ReadAllCallerGroups();\r
-\r
-    MainForm.ListView1.Items.Clear;\r
-    MainForm.Timer2.Enabled:=false;\r
-    PhonebookThread:=TPhonebookThread.Create(false);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.PhonebookTabSheetHide(Sender: TObject);\r
-begin\r
-  EndPhonebookThread;\r
-end;\r
-\r
-//ringtones\r
-procedure TMainForm.Button1Click(Sender: TObject);\r
-var\r
-  ring:GSM_Ringtone;\r
-begin\r
-  if OpenDialog1.Execute then\r
-  begin\r
-    if GSM_ReadRingtoneFile(PChar(OpenDialog1.FileName),@ring)=0 then\r
-    begin\r
-      Edit1.Text:=ring.Name;\r
-      rington:=ring;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure EndPlayRingtoneThread;\r
-begin\r
-  if (PlayRingtoneThread<>nil) then\r
-  begin\r
-    PlayRingtoneThread.Terminate();\r
-    GSM_PlayTone(255*255,0);\r
-    MainForm.Timer2.Enabled:=true;\r
-    PlayRingtoneThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TPlayRingtoneThread.Execute;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    GSM_PlayNote(rington.notes[ringindex]);\r
-    ringindex:=ringindex+1;\r
-    if ringindex>rington.NrNotes then\r
-      EndPlayRingtoneThread;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button16Click(Sender: TObject);\r
-begin\r
-  EndPlayRingtoneThread;\r
-end;\r
-\r
-procedure TMainForm.Button3Click(Sender: TObject);\r
-begin\r
-  ringindex:=1;\r
-  MainForm.Timer2.Enabled:=false;\r
-  PlayRingtoneThread:=TPlayRingtoneThread.Create(false);\r
-end;\r
-\r
-procedure TMainForm.Button2Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  LogosRingForm.Label1.Caption:='Do you want to set ringtone ?';\r
-  LogosRingForm.ComboBox3.Items.Clear();\r
-  LogosRingForm.ComboBox3.Items.Add('Preview');\r
-  for i:=1 to 7 do\r
-  begin\r
-    LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i));\r
-  end;\r
-  LogosRingForm.ComboBox3.ItemIndex:=1;\r
-  LogosRingForm.ShowModal;\r
-  if LogosRingForm.ComboBox3.Visible then\r
-  begin\r
-    if LogosRingForm.ComboBox3.ItemIndex=0 then\r
-      rington.location:=255\r
-    else\r
-      rington.location:=LogosRingForm.ComboBox3.ItemIndex;\r
-    MainForm.Timer2.Enabled:=false;\r
-    GSM_SetRingtone(@rington,@i);\r
-    MainForm.Timer2.Enabled:=true;\r
-  end;\r
-end;\r
-\r
-//phone sheet\r
-procedure TMainForm.PhoneTabSheetShow(Sender: TObject);\r
-var\r
-  xxxx,xxx:array[1..256] of char;\r
-  time:GSM_DateTime;\r
-  siml:GSM_AllSimlocks;\r
-  i:integer;\r
-  code:GSM_SecurityCode;\r
-begin\r
-  if GSMPhoneConnected then\r
-  begin\r
-    GSM_GetRevision(@xxx);\r
-    Label9.Caption:=xxx;\r
-    GSM_GetImei(@xxx);\r
-    Label7.Caption:=xxx;\r
-    GSM_GetModel(@xxx);\r
-    GSM_GetModelNumber(@xxx,@xxxx);\r
-    Label5.Caption:=xxx;\r
-    Label5.Caption:=Label5.Caption+' ('+xxxx;\r
-    Label5.Caption:=Label5.Caption+')';\r
-    GSM_GetAlarm(1,@time);\r
-    if time.isSet<>0 then\r
-      CheckBox1.Checked:=true\r
-    else\r
-      CheckBox1.Checked:=false;\r
-    DateTimePicker1.Time:=EncodeTime(time.Hour,time.Minute,0,0);\r
-    ListView8.Items.Clear();\r
-    GSM_GetSimlock(@siml);\r
-    for i:=1 to 4 do\r
-    begin\r
-      MainForm.ListView8.Items.Add;\r
-      MainForm.ListView8.Items.Item[i-1].Caption:=inttostr(i);\r
-      MainForm.ListView8.Items.Item[i-1].Subitems.Add(siml.simlocks[i].data);\r
-      if siml.simlocks[i].enabled=0 then\r
-        MainForm.ListView8.Items.Item[i-1].Subitems.Add('disabled')\r
-      else\r
-      begin\r
-        if siml.simlocks[i].factory<>0 then\r
-          MainForm.ListView8.Items.Item[i-1].Subitems.Add('factory')\r
-        else\r
-          MainForm.ListView8.Items.Item[i-1].Subitems.Add('user');\r
-      end;\r
-      MainForm.ListView8.Items.Item[i-1].Subitems.Add(inttostr(siml.simlocks[i].counter));\r
-    end;\r
-    code.Type2:=GSCT_SecurityCode;\r
-    GSM_GetSecurityCode(@code);\r
-    Label18.Caption:=code.Code;\r
-\r
-    phoneinfo:=true;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button9Click(Sender: TObject);\r
-begin\r
-  GSM_Reset(GSM_SoftReset);\r
-end;\r
-\r
-//speed dials\r
-procedure TMainForm.SpeedTabSheetShow(Sender: TObject);\r
-begin\r
-  if SpeedThread<>nil then\r
-  else begin\r
-    if GSMPhoneConnected then\r
-    begin\r
-      MainForm.ListView3.Items.Clear;\r
-      speednum:=1;\r
-      MainForm.Timer2.Enabled:=false;\r
-      SpeedThread:=TSpeedThread.Create(false);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure EndSpeedThread();\r
-begin\r
-  if (SpeedThread<>nil) then\r
-  begin\r
-    SpeedThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    SpeedThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.SpeedTabSheetHide(Sender: TObject);\r
-begin\r
-  EndSpeedThread();\r
-end;\r
-\r
-procedure TSpeedThread.Execute;\r
-var\r
-  entry1:GSM_SpeedDial;\r
-  entry2:GSM_PhonebookEntry;\r
-  i:integer;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    entry1.Number:=speednum;\r
-    if GSM_GetSpeedDial(@entry1)=0 then\r
-    begin\r
-      entry2.Location:=entry1.Location;\r
-      entry2.MemoryType:=entry1.MemoryType;\r
-      if entry2.Location=0 then\r
-        entry2.Location:=speednum;\r
-      GSM_GetMemoryLocation(@entry2);\r
-      MainForm.ListView3.Items.Add;\r
-      MainForm.ListView3.Items.Item[speednum-1].Caption:=inttostr(speednum);\r
-      MainForm.ListView3.Items.Item[speednum-1].Subitems.Add(entry2.Name);\r
-      if entry2.Number[1]<>chr(0) then\r
-        MainForm.ListView3.Items.Item[speednum-1].Subitems.Add(entry2.Number)\r
-      else begin\r
-        for i:=1 to entry2.SubEntriesCount do\r
-        begin\r
-          if entry2.SubEntries[i].EntryType=GSM_Number then\r
-          begin\r
-            MainForm.ListView3.Items.Item[speednum-1].Subitems.Add(entry2.SubEntries[i].Number);\r
-            break;\r
-          end;\r
-        end;\r
-      end;\r
-      speednum:=speednum+1;\r
-    end;\r
-    if speednum=10 then\r
-      EndSpeedThread();\r
-  end;\r
-end;\r
-\r
-//calendar\r
-procedure EndCalendarThread();\r
-begin\r
-  if (CalendarThread<>nil) then\r
-  begin\r
-    CalendarThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    CalendarThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure AddCalendarNote(note:GSM_CalendarNote;myview:TListView);\r
-begin\r
-  myview.Items.Add;\r
-  myview.Items.Item[myview.Items.Count-1].Caption:=inttostr(myview.Items.Count);\r
-  case note.Type2 of\r
-    GCN_Reminder:myview.Items.Item[myview.Items.Count-1].Subitems.Add('Reminder');\r
-    GCN_Call    :myview.Items.Item[myview.Items.Count-1].Subitems.Add('Call');\r
-    GCN_Meeting :myview.Items.Item[myview.Items.Count-1].Subitems.Add('Meeting');\r
-    GCN_Birthday:myview.Items.Item[myview.Items.Count-1].Subitems.Add('Birthday');\r
-  end;\r
-  myview.Items.Item[myview.Items.Count-1].Subitems.Add(note.Text);\r
-  myview.Items.Item[myview.Items.Count-1].Subitems.Add(note.Phone);\r
-  myview.Items.Item[myview.Items.Count-1].Subitems.Add(DayOfweek2(note.Time.Day,note.Time.Month,note.Time.Year)+' '+inttostr2(note.Time.Day,2)+'-'+inttostr2(note.Time.Month,2)+'-'+inttostr(note.Time.Year)+' '+inttostr2(note.Time.Hour,2)+':'+inttostr2(note.Time.Minute,2)+':'+inttostr2(note.Time.Second,2));\r
-  if note.Alarm.Year<>0 then\r
-     myview.Items.Item[myview.Items.Count-1].Subitems.Add(DayOfweek2(note.Alarm.Day,note.Alarm.Month,note.Alarm.Year)+' '+inttostr2(note.Alarm.Day,2)+'-'+inttostr2(note.Alarm.Month,2)+'-'+inttostr(note.Alarm.Year)+' '+inttostr2(note.Alarm.Hour,2)+':'+inttostr2(note.Alarm.Minute,2)+':'+inttostr2(note.Alarm.Second,2))\r
-  else\r
-     myview.Items.Item[myview.Items.Count-1].Subitems.Add('');\r
-end;\r
-\r
-procedure TCalendarThread.Execute;\r
-var\r
-  note:GSM_CalendarNote;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    note.Location:=calendarnum;\r
-    if GSM_GetCalendarNote(@note)=0 then\r
-    begin\r
-      AddCalendarNote(note,MainForm.ListView4);\r
-      calendarnum:=calendarnum+1;\r
-    end else begin\r
-      readcalendar:=true;\r
-      EndCalendarThread();\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.CalendarTabSheetShow(Sender: TObject);\r
-begin\r
-  if CalendarThread=nil then\r
-  begin\r
-    if GSMPhoneConnected then\r
-    begin\r
-      if (GSM_GetModelFeature(FN_Calendar)<>0) then\r
-      begin\r
-        ListView4.Enabled:=true;\r
-        ListView4.Ctl3D:=true;\r
-        GroupBox8.Ctl3D:=true;\r
-\r
-        MainForm.ListView4.Items.Clear;\r
-        CalendarNum:=1;\r
-        MainForm.Timer2.Enabled:=false;\r
-        readcalendar:=false;\r
-        CalendarThread:=TCalendarThread.Create(false);\r
-      end else\r
-      begin\r
-        ListView4.Enabled:=false;\r
-        ListView4.Ctl3D:=false;\r
-        GroupBox8.Ctl3D:=false;\r
-      end;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.CalendarTabSheetHide(Sender: TObject);\r
-begin\r
-  EndCalendarThread();\r
-end;\r
-\r
-procedure TMainForm.New1Click(Sender: TObject);\r
-begin\r
-  setcalendarnote.Location:=MainForm.ListView4.Items.Count+1;\r
-  CalendarForm.ComboBox1.ItemIndex:=0;\r
-  CalendarForm.ComboBox1.OnSelect(nil);\r
-  CalendarForm.Edit2.Text:='';\r
-  CalendarForm.Edit1.Text:='';\r
-  CalendarForm.DateTimePicker1.DateTime:=Date;\r
-  CalendarForm.DateTimePicker3.Time:=Time;\r
-  CalendarForm.DateTimePicker2.DateTime:=Date;\r
-  CalendarForm.DateTimePicker4.Time:=Time;\r
-  CalendarForm.ShowModal;\r
-end;\r
-\r
-procedure EditCalendarNote;\r
-var i:integer;\r
-begin\r
-  i:=0;\r
-\r
-  CalendarForm.DateTimePicker1.Date:=EncodeDate(setcalendarnote.Time.Year,\r
-                                                setcalendarnote.Time.Month,\r
-                                                setcalendarnote.Time.Day);\r
-  CalendarForm.DateTimePicker3.Time:=EncodeTime(setcalendarnote.Time.Hour,\r
-                                                setcalendarnote.Time.Minute,\r
-                                                setcalendarnote.Time.Second,i);\r
-  case setcalendarnote.Type2  of\r
-    GCN_BIRTHDAY:    CalendarForm.ComboBox1.ItemIndex:=0;\r
-    GCN_CALL:        CalendarForm.ComboBox1.ItemIndex:=1;\r
-    GCN_MEETING:     CalendarForm.ComboBox1.ItemIndex:=2;\r
-    GCN_REMINDER:    CalendarForm.ComboBox1.ItemIndex:=3;\r
-  end;\r
-\r
-  CalendarForm.Edit2.Text:=setcalendarnote.Text;\r
-  CalendarForm.Edit1.Text:=setcalendarnote.Phone;\r
-\r
-  if setcalendarnote.Alarm.Year<>0 then\r
-  begin\r
-    CalendarForm.CheckBox1.checked:=true;\r
-    CalendarForm.DateTimePicker2.Date:=EncodeDate(setcalendarnote.Alarm.Year,\r
-                                                  setcalendarnote.Alarm.Month,\r
-                                                  setcalendarnote.Alarm.Day);\r
-    CalendarForm.DateTimePicker4.Time:=EncodeTime(setcalendarnote.Alarm.Hour,\r
-                                                  setcalendarnote.Alarm.Minute,\r
-                                                  setcalendarnote.Alarm.Second,i);\r
-  end else\r
-  begin\r
-    CalendarForm.CheckBox1.checked:=false;\r
-    CalendarForm.DateTimePicker2.Date:=CalendarForm.DateTimePicker1.Date;\r
-    CalendarForm.DateTimePicker4.Time:=CalendarForm.DateTimePicker3.Time;\r
-  end;\r
-\r
-  if GSM_GetModelFeature(FN_CALENDAR)=F_CAL71 then\r
-  begin\r
-    if setcalendarnote.Type2<>GCN_BIRTHDAY then\r
-    begin\r
-      CalendarForm.CheckBox2.Checked:=True;\r
-      case setcalendarnote.Recurrance of\r
-        0     :begin\r
-                 CalendarForm.CheckBox2.Checked:=False;\r
-                 CalendarForm.ComboBox2.Enabled:=False;\r
-               end;\r
-        1*24  :CalendarForm.ComboBox2.ItemIndex:=0;\r
-        7*24  :CalendarForm.ComboBox2.ItemIndex:=1;\r
-        14*24 :CalendarForm.ComboBox2.ItemIndex:=2;\r
-        365*24:CalendarForm.ComboBox2.ItemIndex:=3;\r
-      end;\r
-      CalendarForm.RadioButton1.Enabled:=False;\r
-      CalendarForm.RadioButton2.Enabled:=False;\r
-    end else begin\r
-      CalendarForm.ComboBox2.ItemIndex:=0;\r
-      CalendarForm.CheckBox2.Checked:=False;\r
-      CalendarForm.ComboBox2.Enabled:=False;\r
-      CalendarForm.RadioButton1.Enabled:=True;\r
-      CalendarForm.RadioButton2.Enabled:=True;\r
-      if setcalendarnote.AlarmType=1 then\r
-        CalendarForm.RadioButton1.Checked:=True\r
-      else\r
-        CalendarForm.RadioButton2.Checked:=True;\r
-    end;\r
-  end;\r
-  CalendarForm.ComboBox1.OnSelect(nil);\r
-\r
-  CalendarForm.ShowModal;\r
-end;\r
-\r
-procedure TMainForm.Edit3Click(Sender: TObject);\r
-begin\r
-  setcalendarnote.Location:=calendarselect;\r
-\r
-  mainform.Timer2.Enabled:=false;\r
-  GSM_GetCalendarNote(@setcalendarnote);\r
-  mainform.Timer2.Enabled:=true;\r
-\r
-  EditCalendarNote;\r
-end;\r
-\r
-procedure TMainForm.ListView4SelectItem(Sender: TObject; Item: TListItem;\r
-  Selected: Boolean);\r
-begin\r
-  if Selected then\r
-  begin\r
-    calendarselect:=Item.Index+1;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Delete1Click(Sender: TObject);\r
-begin\r
-//  if listview4.selected<>nil then\r
-//  begin\r
-    if MessageDlg('Do you want to delete this calendar note ?',\r
-       mtConfirmation, [mbYes, mbNo], 0) = mrYes then\r
-    begin\r
-      setcalendarnote.Location:=calendarselect;\r
-      GSM_DeleteCalendarNote(@setcalendarnote);\r
-      MainForm.CalendarTabSheetShow(nil);\r
-    end;\r
-//  end;\r
-end;\r
-\r
-//caller groups\r
-procedure EndCallerThread();\r
-begin\r
-  if (CallerThread<>nil) then\r
-  begin\r
-    CallerThread.Terminate();\r
-    CallerThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TCallerThread.Execute;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    ReadCallerGroup();\r
-    if callerinit then EndCallerThread();\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.CallerTabSheetShow(Sender: TObject);\r
-begin\r
-  if CallerThread=nil then\r
-  begin\r
-    if GSMPhoneConnected then\r
-    begin\r
-      MainForm.ListView5.Items.Clear;\r
-      callerinit:=false;\r
-      callernum:=1;\r
-      CallerThread:=TCallerThread.Create(false);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.CallerTabSheetHide(Sender: TObject);\r
-begin\r
-  EndCallerThread();\r
-end;\r
-\r
-//smsc\r
-procedure TMainForm.SMSCTabSheetShow(Sender: TObject);\r
-begin\r
-  if SMSCThread<>nil then\r
-  else begin\r
-    if GSMPhoneConnected then\r
-    begin\r
-      MainForm.ListView6.Items.Clear;\r
-      smscinit:=false;\r
-      smscnum:=1;\r
-      MainForm.Timer2.Enabled:=false;\r
-      SMSCThread:=TSMSCThread.Create(false);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure SMSCTabHide();\r
-begin\r
-  if (SMSCThread<>nil) then\r
-  begin\r
-    SMSCThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    SMSCThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.SMSCTabSheetHide(Sender: TObject);\r
-begin\r
-  SMSCTabHide();\r
-end;\r
-\r
-procedure ReadSMSC();\r
-var\r
-  smsc:GSM_MessageCenter;\r
-begin\r
-    smsc.No:=smscnum;\r
-    MainForm.StatusBar1.Panels[0].Text:='Reading SMSC '+inttostr(smscnum);\r
-    if GSM_GetSMSCenter(@smsc)=0 then\r
-    begin\r
-      SMSC2[smscnum]:=smsc;\r
-      MainForm.ListView6.Items.Add;\r
-      MainForm.ListView6.Items.Item[smscnum-1].Caption:=inttostr(smscnum);\r
-      MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add(smsc.name);\r
-      MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add(smsc.number);\r
-      case smsc.Validity of\r
-        GSMV_1_Hour   : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('1 hour');\r
-        GSMV_6_Hours  : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('6 hours');\r
-        GSMV_24_Hours : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('1 day');\r
-        GSMV_72_Hours : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('3 days');\r
-        GSMV_1_Week   : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('1 week');\r
-        GSMV_Max_Time : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('max. time');\r
-      else\r
-        MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('unknown');\r
-      end;\r
-      case smsc.Format of\r
-        GSMF_Text   : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('text');\r
-        GSMF_Fax    : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('fax');\r
-        GSMF_Voice  : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('voice');\r
-        GSMF_ERMES  : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('ERMES');\r
-        GSMF_Paging : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('paging');\r
-        GSMF_UCI    : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('UCI');\r
-        GSMF_Email  : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('email');\r
-        GSMF_X400   : MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('X400');\r
-      else\r
-        MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add('unknown');\r
-      end;\r
-      MainForm.ListView6.Items.Item[smscnum-1].Subitems.Add(smsc.defaultrecipient);\r
-      smscnum:=smscnum+1;\r
-    end else\r
-    begin\r
-      MainForm.StatusBar1.Panels[0].Text:='';\r
-      smscinit:=true;\r
-    end;\r
-end;\r
-\r
-procedure TSMSCThread.Execute;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    ReadSMSC();\r
-    if smscinit then SMSCTabHide();\r
-  end;\r
-end;\r
-\r
-//profiles\r
-procedure ProfileTabHide();\r
-begin\r
-  if (ProfileThread<>nil) then\r
-  begin\r
-    ProfileThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    ProfileThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TProfileThread.Execute;\r
-var\r
-  profile:GSM_Profile;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    profile.number:=profilenum-1;\r
-    GSM_GetProfile(@profile);\r
-    MainForm.ListView7.Items.Add;\r
-    MainForm.ListView7.Items.Item[profilenum-1].Caption:=inttostr(profilenum);\r
-    MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add(profile.name);\r
-    case profile.CallAlert of\r
-      PROFILE_CALLALERT_RINGING  :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('ringing');\r
-      PROFILE_CALLALERT_BEEPONCE :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('beep once');\r
-      PROFILE_CALLALERT_OFF      :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('off');\r
-      PROFILE_CALLALERT_RINGONCE :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('ring once');\r
-      PROFILE_CALLALERT_ASCENDING:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('ascending');\r
-      PROFILE_CALLALERT_CALLERGROUPS:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('caller groups');\r
-    end;\r
-    MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add(inttostr(profile.Ringtone));\r
-    case profile.Volume of\r
-      PROFILE_VOLUME_LEVEL1:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 1');\r
-      PROFILE_VOLUME_LEVEL2:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 2');\r
-      PROFILE_VOLUME_LEVEL3:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 3');\r
-      PROFILE_VOLUME_LEVEL4:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 4');\r
-      PROFILE_VOLUME_LEVEL5:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 5');\r
-    end;\r
-    case profile.Vibration of\r
-      PROFILE_VIBRATION_OFF  :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('off');\r
-      PROFILE_VIBRATION_ON   :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('on');\r
-      PROFILE_VIBRATION_FIRST:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('vibrate first');\r
-    end;\r
-    case profile.MessageTone of\r
-      PROFILE_MESSAGE_NOTONE   :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('no tone');\r
-      PROFILE_MESSAGE_STANDARD :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('standard');\r
-      PROFILE_MESSAGE_SPECIAL  :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('special');\r
-      PROFILE_MESSAGE_BEEPONCE :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('beep once');\r
-      PROFILE_MESSAGE_ASCENDING:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('ascending');\r
-    end;\r
-    case profile.KeypadTone of\r
-      PROFILE_KEYPAD_OFF   :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('off');\r
-      PROFILE_KEYPAD_LEVEL1:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 1');\r
-      PROFILE_KEYPAD_LEVEL2:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 2');\r
-      PROFILE_KEYPAD_LEVEL3:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('volume 3');\r
-    end;\r
-    case profile.WarningTone of\r
-     PROFILE_WARNING_OFF:MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('off');\r
-     PROFILE_WARNING_ON :MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add('on');\r
-    end;\r
-    MainForm.ListView7.Items.Item[profilenum-1].Subitems.Add(inttostr(profile.CallerGroups));\r
-    profilenum:=profilenum+1;\r
-    case GSM_GetModelFeature(FN_PROFILES) of\r
-      F_PROF61:if profilenum=8 then ProfileTabHide();\r
-      F_PROF51:if profilenum=3 then ProfileTabHide();\r
-      F_PROF33:if profilenum=7 then ProfileTabHide();\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ProfileTabSheetShow(Sender: TObject);\r
-begin\r
-  if ProfileThread<>nil then\r
-  else begin\r
-    if GSMPhoneConnected then\r
-    begin\r
-      MainForm.ListView7.Items.Clear;\r
-      profilenum:=1;\r
-      MainForm.Timer2.Enabled:=false;\r
-      ProfileThread:=TProfileThread.Create(false);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ProfileTabSheetHide(Sender: TObject);\r
-begin\r
-  ProfileTabHide();\r
-end;\r
-\r
-//sms\r
-procedure AddSMSInfo(myobject:TListView;mysms:GSM_SMSMessage);\r
-var number:integer;\r
-begin\r
-  number:=myobject.Items.Count;\r
-\r
-  myobject.Items.Add;\r
-  myobject.Items.Item[number].Caption:=inttostr(number+1);\r
-  myobject.Items.Item[number].Subitems.Add(mysms.MessageText);\r
-  myobject.Items.Item[number].Subitems.Add(mysms.Sender);\r
-  if mysms.SMSData=1 then\r
-  begin\r
-    myobject.Items.Item[number].Subitems.Add(DayOfweek2(mysms.Time.Day,mysms.Time.Month,mysms.Time.Year)+' '+inttostr2(mysms.Time.Day,2)+'-'+inttostr2(mysms.Time.Month,2)+'-'+inttostr(mysms.Time.Year));\r
-    myobject.Items.Item[number].Subitems.Add(inttostr2(mysms.Time.Hour,2)+':'+inttostr2(mysms.Time.Minute,2)+':'+inttostr2(mysms.Time.Second,2));\r
-  end;\r
-end;\r
-\r
-procedure DisplaySMSfolder();\r
-var\r
-  i:integer;\r
-begin\r
-  MainForm.ListView2.Items.Clear();\r
-  i:=0;\r
-  while i<>SMSstatus.Number do\r
-  begin\r
-    i:=i+1;\r
-    if (SMSfolders.Folder[SMS[i].folder].Name=\r
-        SMSfolders.Folder[MainForm.ComboBox3.ItemIndex].Name) then\r
-    begin\r
-      AddSMSInfo(MainForm.ListView2,SMS[i]);\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure SendSaveSMS(mysms:GSM_SMSMessage);\r
-var i:integer;\r
-begin\r
-  //text\r
-  SMSEditForm.Memo1.Text:=mysms.MessageText;\r
-\r
-  //number\r
-  SMSEditForm.Edit2.Text:=mysms.sender;\r
-\r
-  //sms folder\r
-  SMSEditForm.ComboBox1.Items.Clear;\r
-  for i:=0 to MainForm.ComboBox3.items.count-1 do\r
-  begin\r
-    SMSEditForm.ComboBox1.Items.Add(MainForm.ComboBox3.Items.Strings[i]);\r
-  end;\r
-  SMSEditForm.ComboBox1.ItemIndex:=MainForm.ComboBox3.ItemIndex;\r
-\r
-  //smsc\r
-  SetSMSC(1);\r
-  SMSEditForm.ComboBox2.Items.Clear;\r
-  SMSEditForm.ComboBox2.Items.Add('custom');\r
-  for i:=1 to smscnum-1 do\r
-  begin\r
-    if SMSC2[i].Name[1]<>chr(0) then\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name)\r
-    else\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i));\r
-  end;\r
-  SMSEditForm.ComboBox2.ItemIndex:=0;\r
-\r
-  if mysms.ReplyViaSameSMSC<>0 then\r
-    SMSEditForm.CheckBox3.Checked:=true\r
-  else\r
-    SMSEditForm.CheckBox3.Checked:=false;\r
-\r
-  if mysms.Class2=1 then\r
-    SMSEditForm.CheckBox1.Checked:=true\r
-  else\r
-    SMSEditForm.CheckBox1.Checked:=false;\r
-\r
-  if mysms.status=GSS_SENTREAD then\r
-    SMSEditForm.CheckBox4.Checked:=true\r
-  else\r
-    SMSEditForm.CheckBox4.Checked:=false;\r
-\r
-  SMSEditForm.TextSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.BitmapSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.CalendarSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.PbkSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.TextSMSTabSheet;\r
-\r
-  if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then\r
-  begin\r
-    SMSEditForm.edit3.Visible:=true;\r
-    SMSEditForm.label14.Visible:=true;\r
-  end else\r
-  begin\r
-    SMSEditForm.edit3.Visible:=false;\r
-    SMSEditForm.label14.Visible:=false;\r
-  end;\r
-\r
-  SMSEditForm.ShowModal;\r
-end;\r
-\r
-procedure TMainForm.Edit4Click(Sender: TObject);\r
-begin\r
-  setsmslocation:=SMS[smsnumindex].Location;\r
-  SendSaveSMS(SMS[smsnumindex]);\r
-end;\r
-\r
-procedure TMainForm.New2Click(Sender: TObject);\r
-var i:integer;\r
-begin\r
-  setsmslocation:=0;\r
-\r
-  //sms text\r
-  SMSEditForm.Memo1.Text:='';\r
-\r
-  //number\r
-  SMSEditForm.Edit2.Text:='';\r
-\r
-  //folders\r
-  SMSEditForm.ComboBox1.Items.Clear;\r
-  for i:=0 to ComboBox3.items.count-1 do\r
-  begin\r
-    SMSEditForm.ComboBox1.Items.Add(ComboBox3.Items.Strings[i]);\r
-  end;\r
-  SMSEditForm.ComboBox1.ItemIndex:=ComboBox3.ItemIndex;\r
-\r
-  //smsc\r
-  SetSMSC(1);\r
-  SMSEditForm.ComboBox2.Items.Clear;\r
-  SMSEditForm.ComboBox2.Items.Add('custom');\r
-  for i:=1 to smscnum-1 do\r
-  begin\r
-    if SMSC2[i].Name[1]<>chr(0) then\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name)\r
-    else\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i));\r
-  end;\r
-  SMSEditForm.ComboBox2.ItemIndex:=1;\r
-\r
-  SMSEditForm.TextSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.BitmapSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.CalendarSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.PBKSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.TextSMSTabSheet;\r
-\r
-  if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then\r
-  begin\r
-    SMSEditForm.edit3.Visible:=true;\r
-    SMSEditForm.label14.Visible:=true;\r
-  end else\r
-  begin\r
-    SMSEditForm.edit3.Visible:=false;\r
-    SMSEditForm.label14.Visible:=false;\r
-  end;\r
-\r
-  SMSEditForm.ShowModal;\r
-end;\r
-\r
-procedure EndSMSThread;\r
-begin\r
-  if (SMSThread<>nil) then\r
-  begin\r
-    SMSThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    SMSThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TSMSThread.Execute;\r
-var\r
-  error:integer;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    if SMSnum<>SMSstatus.Number then\r
-    begin\r
-      if GSM_GetModelFeature(FN_SMS)=F_SMS71 then\r
-        SMS[SMSnum+1].Location:=0\r
-      else\r
-        SMS[SMSnum+1].Location:=smsnum2;\r
-      error:=GSM_GetSMSMessage(@SMS[SMSnum+1]);\r
-      if error=0 then\r
-      begin\r
-        if SMS[SMSnum+1].Time.year<1900 then\r
-        begin\r
-          SMS[SMSnum+1].Time.year:=SMS[SMSnum+1].Time.year+2000;\r
-        end;\r
-        if (SMSfolders.Folder[SMS[SMSnum+1].folder].Name=\r
-            SMSfolders.Folder[MainForm.ComboBox3.ItemIndex].Name) then\r
-        begin\r
-          AddSMSInfo(MainForm.ListView2,SMS[SMSnum+1]);\r
-        end;\r
-        SMSnum:=SMSnum+1;\r
-      end;\r
-      if error=GE_SMSTOOLONG then\r
-      begin\r
-        SMSstatus.Number:=SMSstatus.Number-1;\r
-      end;\r
-\r
-      smsnum2:=smsnum2+1;\r
-    end else\r
-    begin\r
-      MainForm.ComboBox3.Enabled:=true;\r
-      EndSMSThread;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.SMSTabSheetShow(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  MainForm.ComboBox3.Enabled:=false;\r
-  if GSMPhoneConnected then\r
-  begin\r
-    if smscinit=false then\r
-    begin\r
-      MainForm.ListView6.Items.Clear;\r
-      smscnum:=1;\r
-      while true do\r
-      begin\r
-        ReadSMSC;\r
-        if smscinit then break;\r
-      end;\r
-    end;\r
-\r
-    MainForm.Memo1.Lines.Clear;\r
-    MainForm.Memo2.Lines.Clear;\r
-    GSM_GetSMSFolders(@SMSfolders);\r
-    MainForm.ComboBox3.Items.Clear();\r
-    for i:=1 to SMSfolders.number do\r
-    begin\r
-      MainForm.ComboBox3.Items.Add(SMSfolders.folder[i].Name);\r
-    end;\r
-    MainForm.ComboBox3.ItemIndex:=0;\r
-\r
-    SMSnum:=0;\r
-    GSM_GetSMSStatus(@SMSstatus);\r
-    smsnum2:=1;\r
-    MainForm.ListView2.Items.Clear;\r
-    MainForm.Timer2.Enabled:=false;\r
-    SMSThread:=TSMSThread.Create(false);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ComboBox3Change(Sender: TObject);\r
-begin\r
-  DisplaySMSfolder();\r
-end;\r
-\r
-procedure AddSMSDescription(mysms:GSM_SMSMessage;firstmemo:TMemo;secondmemo:TMemo);\r
-var\r
-  ch:tcaption;\r
-  z:integer;\r
-begin\r
-  firstmemo.Lines.Clear;\r
-  firstmemo.Lines.Add(pchar('Sender: '+mysms.Sender));\r
-\r
-  if mysms.SMSData=1 then\r
-  begin\r
-    ch:=mysms.MessageCenter.Number;\r
-    MainForm.Label14.Caption:=mysms.MessageCenter.Number;\r
-    if (smscinit) and (GSMPhoneConnected) then\r
-    begin\r
-      for z:=1 to smscnum-1 do\r
-      begin\r
-        MainForm.Label16.Caption:=SMSC2[z].Number;\r
-        if MainForm.Label14.Caption=MainForm.Label16.caption then\r
-          ch:=SMSC2[z].Name;\r
-        end;\r
-      end;\r
-      if mysms.ReplyViaSameSMSC<>0 then\r
-         ch:=' (reply via the same SMSC) '+ch;\r
-         firstmemo.Lines.Add('SMSC: '+ch);\r
-\r
-        if mysms.type2=GST_DR then\r
-        begin\r
-          firstmemo.Lines.Add(pchar('Date & time: '+\r
-            DayOfweek2(mysms.Time.Day,mysms.Time.Month,mysms.Time.Year)+' '+inttostr2(mysms.Time.Day,2)+'-'+inttostr2(mysms.Time.Month,2)+'-'+inttostr(mysms.Time.Year)+' '+\r
-            inttostr2(mysms.Time.Hour,2)+':'+inttostr2(mysms.Time.Minute,2)+':'+inttostr2(mysms.Time.Second,2))+\r
-            '   SMSC desponse date & time: '+\r
-            DayOfweek2(mysms.SMSCTime.Day,mysms.SMSCTime.Month,mysms.SMSCTime.Year)+' '+inttostr2(mysms.SMSCTime.Day,2)+'-'+inttostr2(mysms.SMSCTime.Month,2)+'-'+inttostr(mysms.SMSCTime.Year)+' '+\r
-            inttostr2(mysms.SMSCTime.Hour,2)+':'+inttostr2(mysms.SMSCTime.Minute,2)+':'+inttostr2(mysms.SMSCTime.Second,2));\r
-        end else\r
-        begin\r
-          firstmemo.Lines.Add(pchar('Date & time: '+\r
-            DayOfweek2(mysms.Time.Day,mysms.Time.Month,mysms.Time.Year)+' '+inttostr2(mysms.Time.Day,2)+'-'+inttostr2(mysms.Time.Month,2)+'-'+inttostr(mysms.Time.Year)+' '+\r
-            inttostr2(mysms.Time.Hour,2)+':'+inttostr2(mysms.Time.Minute,2)+':'+inttostr2(mysms.Time.Second,2)));\r
-        end;\r
-      end;\r
-\r
-  secondmemo.Lines.Clear;\r
-  secondmemo.Lines.Add(pchar(''+mysms.MessageText));\r
-end;\r
-\r
-procedure TMainForm.ListView2SelectItem(Sender: TObject; Item: TListItem;\r
-  Selected: Boolean);\r
-var\r
-  i:integer;\r
-  j:integer;\r
-begin\r
-  j:=0;\r
-  i:=0;\r
-  while i<>SMSstatus.Number do\r
-  begin\r
-    i:=i+1;\r
-    if (SMSfolders.Folder[SMS[i].folder].Name=\r
-        SMSfolders.Folder[MainForm.ComboBox3.ItemIndex].Name) then\r
-    begin\r
-      if (j=MainForm.ListView2.ItemIndex) then\r
-      begin\r
-        smsnumindex:=i;\r
-        AddSMSDescription(SMS[i],MainForm.Memo1,MainForm.Memo2);\r
-      end;\r
-      j:=j+1;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.SMSTabSheetHide(Sender: TObject);\r
-begin\r
-  EndSMSThread;\r
-end;\r
-\r
-procedure TMainForm.SMSPopupMenuPopup(Sender: TObject);\r
-begin\r
-  New2.Enabled:=false;\r
-  Edit4.Enabled:=false;\r
-  CopyToPC1.Enabled:=false;\r
-  Delete2.Enabled:=false;\r
-  if GSMPhoneConnected then\r
-  begin\r
-    New2.Enabled:=true;\r
-    if listview2.selected<>nil then\r
-    begin\r
-      Edit4.Enabled:=true;\r
-      CopyToPC1.Enabled:=true;\r
-      Delete2.Enabled:=true;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.CalendarPopupMenuPopup(Sender: TObject);\r
-begin\r
-  if GSMPhoneConnected then\r
-  begin\r
-    New1.Enabled:=true;\r
-    if listview4.selected<>nil then\r
-    begin\r
-      Edit3.Enabled:=true;\r
-      Delete1.Enabled:=true;\r
-      SMS1.Enabled:=true;\r
-      CopyToPC2.Enabled:=true;\r
-    end else\r
-    begin\r
-      Edit3.Enabled:=false;\r
-      Delete1.Enabled:=false;\r
-      SMS1.Enabled:=false;\r
-      CopyToPC2.Enabled:=false;\r
-    end;\r
-  end else\r
-  begin\r
-    New1.Enabled:=false;\r
-    Delete1.Enabled:=false;\r
-    Edit3.Enabled:=false;\r
-    SMS1.Enabled:=false;\r
-    CopyToPC2.Enabled:=false;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Edit1Change(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  for i:=1 to 20 do\r
-    rington.name[i]:=chr(0);\r
-  for i:=1 to strlen(pchar(edit1.text)) do\r
-    rington.name[i]:=edit1.text[i];\r
-end;\r
-\r
-procedure TMainForm.Delete2Click(Sender: TObject);\r
-var\r
-  mysms:GSM_SMSMessage;\r
-begin\r
-  if MessageDlg('Do you want to delete this SMS ?',\r
-      mtConfirmation, [mbYes, mbNo], 0) = mrYes then\r
-  begin\r
-    mysms.Location:=SMS[smsnumindex].Location;\r
-    MainForm.Timer2.Enabled:=false;\r
-    GSM_DeleteSMSMessage(@mysms);\r
-    MainForm.Timer2.Enabled:=true;\r
-    MainForm.SMSTabSheetShow(nil);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Edit5Click(Sender: TObject);\r
-begin\r
-//  if listview6.selected<>nil then\r
-//  begin\r
-      smsceditform.edit1.Text:=smsc2[smscselectitem].name;\r
-      smsceditform.edit2.Text:=smsc2[smscselectitem].number;\r
-      smsceditform.edit3.Text:=smsc2[smscselectitem].DefaultRecipient;\r
-      case smsc2[smscselectitem].Validity of\r
-        GSMV_1_Hour   : SMSCEditForm.combobox1.itemindex:=0;\r
-        GSMV_6_Hours  : SMSCEditForm.combobox1.itemindex:=1;\r
-        GSMV_24_Hours : SMSCEditForm.combobox1.itemindex:=2;\r
-        GSMV_72_Hours : SMSCEditForm.combobox1.itemindex:=3;\r
-        GSMV_1_Week   : SMSCEditForm.combobox1.itemindex:=4;\r
-      else\r
-        SMSCEditForm.combobox1.itemindex:=5;\r
-      end;\r
-      case smsc2[smscselectitem].Format of\r
-        GSMF_Text   : SMSCEditForm.combobox2.itemindex:=0;\r
-        GSMF_Fax    : SMSCEditForm.combobox2.itemindex:=1;\r
-        GSMF_Email  : SMSCEditForm.combobox2.itemindex:=2;\r
-      else\r
-        SMSCEditForm.combobox2.itemindex:=3;\r
-      end;\r
-  SMSCEditForm.ShowModal;\r
-//  end;\r
-end;\r
-\r
-procedure TMainForm.SMSCPopupMenuPopup(Sender: TObject);\r
-begin\r
-  if GSMPhoneConnected then\r
-  begin\r
-    if listview6.selected<>nil then\r
-      Edit5.Enabled:=true\r
-    else\r
-      Edit5.Enabled:=false;\r
-  end else\r
-  begin\r
-    Edit5.Enabled:=false;\r
-  end;\r
-\r
-end;\r
-\r
-procedure TMainForm.ListView6SelectItem(Sender: TObject; Item: TListItem;\r
-  Selected: Boolean);\r
-begin\r
-  if Selected then\r
-  begin\r
-    smscselectitem:=Item.Index+1;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ListView1SelectItem(Sender: TObject; Item: TListItem;\r
-  Selected: Boolean);\r
-begin\r
- if Selected then\r
-  begin\r
-    pbknumberentry:=Item.Index+1;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Edit7Click(Sender: TObject);\r
-var\r
-  current:integer;\r
-  i:integer;\r
-begin\r
-  if listview1.Selected<>nil then\r
-  begin\r
-    pbk.Location:=pbknumberentry;\r
-    case ComboBox1.ItemIndex of\r
-      1:begin pbk.MemoryType:=GMT_DC;pbk.Location:=pbk.Location-1;end;\r
-      2:begin pbk.MemoryType:=GMT_MC;pbk.Location:=pbk.Location-1;end;\r
-      3:begin pbk.MemoryType:=GMT_ON;pbk.Location:=pbk.Location-1;end;\r
-      4:pbk.MemoryType:=GMT_ME;\r
-      5:pbk.MemoryType:=GMT_SM;\r
-      6:begin pbk.MemoryType:=GMT_RC;pbk.Location:=pbk.Location-1;end;\r
-    end;\r
-    GSM_GetMemoryLocation(@pbk);\r
-    current:=0;\r
-    pbkform.ListView1.Items.Clear;\r
-    pbkform.ListView1.Items.Add;\r
-    pbkform.ListView1.Items.Item[0].Caption:='Name';\r
-    pbkform.ListView1.Items.Item[0].SubItems.Add(pbk.name);\r
-    if (pbk.Number[1]<>chr(0)) then\r
-    begin\r
-      current:=current+1;\r
-      pbkform.ListView1.Items.Add;\r
-      pbkform.ListView1.Items.Item[current].Caption:='Number';\r
-      pbkform.ListView1.Items.Item[current].SubItems.Add(pbk.number);\r
-    end;\r
-    for i:=1 to pbk.SubEntriesCount do\r
-    begin\r
-      current:=current+1;\r
-      pbkform.ListView1.Items.Add;\r
-      case pbk.SubEntries[i].EntryType of\r
-        GSM_Number:case pbk.SubEntries[i].NumberType of\r
-                     GSM_General :pbkform.ListView1.Items.Item[current].Caption:='General number';\r
-                     GSM_Mobile  :pbkform.ListView1.Items.Item[current].Caption:='Mobile';\r
-                     GSM_Work    :pbkform.ListView1.Items.Item[current].Caption:='Work';\r
-                     GSM_Fax     :pbkform.ListView1.Items.Item[current].Caption:='Fax';\r
-                     GSM_Home    :pbkform.ListView1.Items.Item[current].Caption:='Home';\r
-                   else\r
-                     pbkform.ListView1.Items.Item[current].Caption:=inttostr(pbk.SubEntries[i].NumberType);\r
-                   end;\r
-        GSM_Note  :pbkform.ListView1.Items.Item[current].Caption:='Note';\r
-        GSM_Postal:pbkform.ListView1.Items.Item[current].Caption:='Address';\r
-        GSM_Email :pbkform.ListView1.Items.Item[current].Caption:='Email';\r
-        GSM_Date  :begin\r
-                     pbkform.ListView1.Items.Item[current].Caption:='Date';\r
-                     pbkform.ListView1.Items.Item[current].SubItems.Add(DayOfweek2(pbk.SubEntries[i].Date.Day,pbk.SubEntries[i].Date.Month,pbk.SubEntries[i].Date.Year)+' '+inttostr2(pbk.SubEntries[i].Date.Day,2)+'-'+inttostr2(pbk.SubEntries[i].Date.Month,2)+'-'+inttostr(pbk.SubEntries[i].Date.Year)+' '+inttostr2(pbk.SubEntries[i].Date.Hour,2)+':'+inttostr2(pbk.SubEntries[i].Date.Minute,2)+':'+inttostr2(pbk.SubEntries[i].Date.Second,2));\r
-                   end;\r
-      end;\r
-      if (pbk.SubEntries[i].EntryType<>GSM_Date) then\r
-         pbkform.ListView1.Items.Item[current].SubItems.Add(pbk.SubEntries[i].Number);\r
-    end;\r
-    if (pbk.Group>=0) and (pbk.Group<=4) then\r
-    begin\r
-      current:=current+1;\r
-      pbkform.ListView1.Items.Add;\r
-      pbkform.ListView1.Items.Item[current].Caption:='Caller group';\r
-      pbkform.ListView1.Items.Item[current].SubItems.Add(caller[pbk.Group+1].text);\r
-    end;\r
-    pbkform.showmodal;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button18Click(Sender: TObject);\r
-var\r
-  i,j:integer;\r
-  Name,Data:array[1..255] of char;\r
-begin\r
-  if smscinit=false then\r
-  begin\r
-    MainForm.ListView6.Items.Clear;\r
-    smscnum:=1;\r
-    while true do\r
-    begin\r
-      ReadSMSC;\r
-      if smscinit then break;\r
-    end;\r
-  end;\r
-\r
-  //sms text\r
-  SMSEditForm.Memo1.Text:='';\r
-\r
-  //number\r
-  SMSEditForm.Edit2.Text:='';\r
-\r
-  //folders\r
-  GSM_GetSMSFolders(@SMSfolders);\r
-  SMSEditForm.ComboBox1.Items.Clear;\r
-  for i:=1 to SMSFolders.number do\r
-  begin\r
-    SMSEditForm.ComboBox1.Items.Add(SMSfolders.folder[i].Name);\r
-  end;\r
-  SMSEditForm.ComboBox1.ItemIndex:=0;\r
-\r
-  //smsc\r
-  SetSMSC(1);\r
-  SMSEditForm.ComboBox2.Items.Clear;\r
-  SMSEditForm.ComboBox2.Items.Add('custom');\r
-  for i:=1 to smscnum-1 do\r
-  begin\r
-    if SMSC2[i].Name[1]<>chr(0) then\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name)\r
-    else\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i));\r
-  end;\r
-  SMSEditForm.ComboBox2.ItemIndex:=1;\r
-\r
-  SMSEditForm.TextSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.BitmapSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.CalendarSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.PBKSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.BitmapSMSTabSheet;\r
-\r
-  SMSEditForm.Image1.Picture:=Image1.Picture;\r
-\r
-  SMSEditForm.Memo2.Text:='';\r
-  SMSEditForm.CheckBox5.Checked:=false;\r
-  if bitma.type2<>GSM_PictureImage then\r
-  begin\r
-    SMSEditForm.Memo2.Visible:=false;\r
-    SMSEditForm.Label10.Visible:=false;\r
-    SMSEditForm.CheckBox5.Visible:=false;\r
-    SMSEditForm.CheckBox6.Visible:=false;\r
-  end else\r
-  begin\r
-    SMSEditForm.Memo2.Visible:=true;\r
-    SMSEditForm.Label10.Visible:=true;\r
-    SMSEditForm.CheckBox5.Visible:=true;\r
-    SMSEditForm.CheckBox6.Visible:=true;\r
-  end;\r
-\r
-  SMSEditForm.Label9.Visible:=false;\r
-  SMSEditForm.ComboBox7.Visible:=false;\r
-  if bitma.type2=GSM_OperatorLogo then\r
-  begin\r
-    SMSEditForm.Label9.Visible:=true;\r
-    SMSEditForm.ComboBox7.Visible:=true;\r
-    //preparing network names\r
-    i:=0;\r
-    while true do\r
-    begin\r
-      GSM_GetNetworkData(i,@Name,@Data);\r
-\r
-      // conversion problems\r
-      Label14.Caption:=Name;\r
-      if strcomp(PChar(Label14.Caption),PChar('unknown'))=0 then break;\r
-\r
-      // conversion problems\r
-      Label14.Caption:=' - '+Label14.Caption;\r
-      for j:=6 downto 1 do\r
-      begin\r
-        Label14.Caption:=Data[j]+Label14.Caption;\r
-      end;\r
-\r
-      SMSEditForm.ComboBox7.Items.Add(Pchar(Label14.Caption));\r
-      i:=i+1;\r
-    end;\r
-    //looking for current network\r
-    if GSMPhoneConnected then\r
-    begin\r
-      // conversion problems\r
-      Label14.Caption:=MainForm.StatusBar1.Panels[1].Text;\r
-      Label14.Caption:=' - '+Label14.Caption;\r
-      for j:=6 downto 1 do\r
-      begin\r
-        Label14.Caption:=GSMNetworkInfo.NetworkCode[j]+Label14.Caption;\r
-      end;\r
-\r
-      i:=1;\r
-      while true do\r
-      begin\r
-        if strcomp(pchar(SMSEditForm.ComboBox7.Items[i]),pchar(Label14.Caption))=0\r
-          then break;\r
-        i:=i+1;\r
-      end;\r
-      SMSEditForm.ComboBox7.ItemIndex:=i;\r
-    end;\r
-  end;\r
-\r
-  if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then\r
-  begin\r
-    SMSEditForm.edit3.Visible:=true;\r
-    SMSEditForm.label14.Visible:=true;\r
-  end else\r
-  begin\r
-    SMSEditForm.edit3.Visible:=false;\r
-    SMSEditForm.label14.Visible:=false;\r
-  end;\r
-\r
-  SMSEditForm.ShowModal;\r
-end;\r
-\r
-procedure TMainForm.Button17Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  if smscinit=false then\r
-  begin\r
-    MainForm.ListView6.Items.Clear;\r
-    smscnum:=1;\r
-    while true do\r
-    begin\r
-      ReadSMSC;\r
-      if smscinit then break;\r
-    end;\r
-  end;\r
-\r
-  //sms text\r
-  SMSEditForm.Memo1.Text:='';\r
-\r
-  //number\r
-  SMSEditForm.Edit2.Text:='';\r
-\r
-  //folders\r
-  GSM_GetSMSFolders(@SMSfolders);\r
-  SMSEditForm.ComboBox1.Items.Clear;\r
-  for i:=1 to SMSFolders.number do\r
-  begin\r
-    SMSEditForm.ComboBox1.Items.Add(SMSfolders.folder[i].Name);\r
-  end;\r
-  SMSEditForm.ComboBox1.ItemIndex:=0;\r
-\r
-  //smsc\r
-  SetSMSC(1);\r
-  SMSEditForm.ComboBox2.Items.Clear;\r
-  SMSEditForm.ComboBox2.Items.Add('custom');\r
-  for i:=1 to smscnum-1 do\r
-  begin\r
-    if SMSC2[i].Name[1]<>chr(0) then\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name)\r
-    else\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i));\r
-  end;\r
-  SMSEditForm.ComboBox2.ItemIndex:=1;\r
-\r
-  SMSEditForm.TextSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.BitmapSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.CalendarSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.PBKSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.RingtoneSMSTabSheet;\r
-\r
-  if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then\r
-  begin\r
-    SMSEditForm.edit3.Visible:=true;\r
-    SMSEditForm.label14.Visible:=true;\r
-  end else\r
-  begin\r
-    SMSEditForm.edit3.Visible:=false;\r
-    SMSEditForm.label14.Visible:=false;\r
-  end;\r
-\r
-  SMSEditForm.ShowModal;\r
-end;\r
-\r
-procedure TMainForm.SMS1Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  if smscinit=false then\r
-  begin\r
-    MainForm.ListView6.Items.Clear;\r
-    smscnum:=1;\r
-    while true do\r
-    begin\r
-      ReadSMSC;\r
-      if smscinit then break;\r
-    end;\r
-  end;\r
-\r
-  //sms text\r
-  SMSEditForm.Memo1.Text:='';\r
-\r
-  //number\r
-  SMSEditForm.Edit2.Text:='';\r
-\r
-  //folders\r
-  GSM_GetSMSFolders(@SMSfolders);\r
-  SMSEditForm.ComboBox1.Items.Clear;\r
-  for i:=1 to SMSFolders.number do\r
-  begin\r
-    SMSEditForm.ComboBox1.Items.Add(SMSfolders.folder[i].Name);\r
-  end;\r
-  SMSEditForm.ComboBox1.ItemIndex:=0;\r
-\r
-  //smsc\r
-  SetSMSC(1);\r
-  SMSEditForm.ComboBox2.Items.Clear;\r
-  SMSEditForm.ComboBox2.Items.Add('custom');\r
-  for i:=1 to smscnum-1 do\r
-  begin\r
-    if SMSC2[i].Name[1]<>chr(0) then\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name)\r
-    else\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i));\r
-  end;\r
-  SMSEditForm.ComboBox2.ItemIndex:=1;\r
-\r
-  SMSEditForm.TextSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.BitmapSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.CalendarSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.PBKSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.CalendarSMSTabSheet;\r
-\r
-  calenda.Location:=calendarselect;\r
-  MainForm.Timer2.Enabled:=false;\r
-  GSM_GetCalendarNote(@calenda);\r
-  MainForm.Timer2.Enabled:=true;\r
-\r
-  if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then\r
-  begin\r
-    SMSEditForm.edit3.Visible:=true;\r
-    SMSEditForm.label14.Visible:=true;\r
-  end else\r
-  begin\r
-    SMSEditForm.edit3.Visible:=false;\r
-    SMSEditForm.label14.Visible:=false;\r
-  end;\r
-\r
-  SMSEditForm.ShowModal;\r
-end;\r
-\r
-procedure TMainForm.SMSSendSave1Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  if smscinit=false then\r
-  begin\r
-    MainForm.ListView6.Items.Clear;\r
-    smscnum:=1;\r
-    while true do\r
-    begin\r
-      ReadSMSC;\r
-      if smscinit then break;\r
-    end;\r
-  end;\r
-\r
-  //sms text\r
-  SMSEditForm.Memo1.Text:='';\r
-\r
-  //number\r
-  SMSEditForm.Edit2.Text:='';\r
-\r
-  //folders\r
-  GSM_GetSMSFolders(@SMSfolders);\r
-  SMSEditForm.ComboBox1.Items.Clear;\r
-  for i:=1 to SMSFolders.number do\r
-  begin\r
-    SMSEditForm.ComboBox1.Items.Add(SMSfolders.folder[i].Name);\r
-  end;\r
-  SMSEditForm.ComboBox1.ItemIndex:=0;\r
-\r
-  //smsc\r
-  SetSMSC(1);\r
-  SMSEditForm.ComboBox2.Items.Clear;\r
-  SMSEditForm.ComboBox2.Items.Add('custom');\r
-  for i:=1 to smscnum-1 do\r
-  begin\r
-    if SMSC2[i].Name[1]<>chr(0) then\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name)\r
-    else\r
-      SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i));\r
-  end;\r
-  SMSEditForm.ComboBox2.ItemIndex:=1;\r
-\r
-  SMSEditForm.TextSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.BitmapSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.CalendarSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.PBKSMSTabSheet.TabVisible:=false;\r
-  SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.PBKSMSTabSheet;\r
-\r
-  pbk.Location:=pbknumberentry-1;\r
-  case ComboBox1.ItemIndex of\r
-    1:pbk.MemoryType:=GMT_DC;\r
-    2:pbk.MemoryType:=GMT_MC;\r
-    3:pbk.MemoryType:=GMT_ON;\r
-    4:pbk.MemoryType:=GMT_ME;\r
-    5:pbk.MemoryType:=GMT_SM;\r
-    6:pbk.MemoryType:=GMT_RC;\r
-  end;\r
-  MainForm.Timer2.Enabled:=false;\r
-  GSM_GetMemoryLocation(@pbk);\r
-  MainForm.Timer2.Enabled:=true;\r
-\r
-  if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then\r
-  begin\r
-    SMSEditForm.edit3.Visible:=true;\r
-    SMSEditForm.label14.Visible:=true;\r
-  end else\r
-  begin\r
-    SMSEditForm.edit3.Visible:=false;\r
-    SMSEditForm.label14.Visible:=false;\r
-  end;\r
-\r
-  SMSEditForm.ShowModal;\r
-end;\r
-\r
-procedure TMainForm.Button13Click(Sender: TObject);\r
-var\r
-  ring:GSM_BinRingtone;\r
-begin\r
-  if OpenDialog1.Execute then\r
-  begin\r
-    if GSM_ReadBinRingtoneFile(PChar(OpenDialog1.FileName),@ring)=0 then\r
-    begin\r
-      Edit2.Text:=ring.Name;\r
-      binring:=ring;\r
-    end;\r
-  end;\r
-\r
-end;\r
-\r
-procedure TMainForm.Button14Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  LogosRingForm.Label1.Caption:='Do you want to set ringtone ?';\r
-  LogosRingForm.ComboBox3.Items.Clear();\r
-  for i:=1 to 7 do\r
-  begin\r
-    LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i));\r
-  end;\r
-  LogosRingForm.ComboBox3.ItemIndex:=0;\r
-  LogosRingForm.ShowModal;\r
-  if LogosRingForm.ComboBox3.Visible then\r
-  begin\r
-    binring.location:=LogosRingForm.ComboBox3.ItemIndex+1;\r
-    MainForm.Timer2.Enabled:=false;\r
-    GSM_SetBinRingtone(@binring);\r
-    MainForm.Timer2.Enabled:=true;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ConfigTabSheetHide(Sender: TObject);\r
-var\r
-  MyIniFile: TIniFile;\r
-begin\r
-  if MessageDlg('Do you want to save config ?',\r
-    mtConfirmation, [mbYes, mbNo], 0) = mrYes then\r
-  begin\r
-    MyIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'\gnokiirc');\r
-    case MainForm.ComboBox4.ItemIndex of\r
-      0:MyIniFile.WriteString('global', 'connection', 'mbus');\r
-      1:MyIniFile.WriteString('global', 'connection', 'fbus');\r
-      2:MyIniFile.WriteString('global', 'connection', 'dlr3');\r
-      3:MyIniFile.WriteString('global', 'connection', 'infrared');\r
-    end;\r
-    MyIniFile.WriteString('global', 'model', MainForm.ComboBox6.Text);\r
-    MyIniFile.WriteString('global', 'port', MainForm.ComboBox5.Text);\r
-    if MainForm.CheckBox2.Checked then\r
-      MyIniFile.WriteString('global', 'synchronizetime', 'yes')\r
-    else\r
-      MyIniFile.WriteString('global', 'synchronizetime', 'no');\r
-    MyIniFile.Free;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ConfigTabSheetShow(Sender: TObject);\r
-var\r
-  MyIniFile: TIniFile;\r
-  x:string;\r
-  i:integer;\r
-begin\r
-  MyIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'\gnokiirc');\r
-\r
-  x:=MyInifile.ReadString('global', 'connection', 'fbus');\r
-  MainForm.ComboBox4.ItemIndex:=0;\r
-  if x='fbus' then MainForm.ComboBox4.ItemIndex:=1;\r
-  if x='dlr3' then MainForm.ComboBox4.ItemIndex:=2;\r
-  if x='infrared' then MainForm.ComboBox4.ItemIndex:=3;\r
-\r
-  x:=MyInifile.ReadString('global', 'port', 'com2:');\r
-  MainForm.ComboBox5.ItemIndex:=0;\r
-  for i:=1 to MainForm.ComboBox5.Items.Count do\r
-  begin\r
-    if MainForm.ComboBox5.Items.Strings[i-1]=x then\r
-      MainForm.ComboBox5.ItemIndex:=i-1;\r
-  end;\r
-\r
-  x:=MyInifile.ReadString('global', 'model', 'auto');\r
-  MainForm.ComboBox6.ItemIndex:=0;\r
-  for i:=1 to MainForm.ComboBox6.Items.Count do\r
-  begin\r
-    if MainForm.ComboBox6.Items.Strings[i-1]=x then\r
-      MainForm.ComboBox6.ItemIndex:=i-1;\r
-  end;\r
-\r
-  x:=MyInifile.ReadString('global', 'synchronizetime', 'no');\r
-  if x='yes' then\r
-    MainForm.CheckBox2.Checked:=True\r
-  else\r
-    MainForm.CheckBox2.Checked:=False;\r
-  MyIniFile.Free;\r
-end;\r
-\r
-procedure TMainForm.Timer2Timer(Sender: TObject);\r
-begin\r
-  if SparkyThread.Suspended then SparkyThread.Resume;\r
-  Timer2.Interval:=4000;\r
-end;\r
-\r
-procedure TMainForm.AboutTabSheetShow(Sender: TObject);\r
-var\r
-  xxx:array[1..256] of char;\r
-begin\r
-  GSM_GetDLLVersion(@xxx);\r
-  Label20.Caption:=xxx;\r
-end;\r
-\r
-procedure SaveSMSOffline;\r
-var F:file of GSM_SMSMessage;\r
-    i:integer;\r
-begin\r
-  AssignFile(F, 'gnokiisms');\r
-  Rewrite(F);\r
-  for i:=1 to SMSOfflineNumber do\r
-  begin\r
-    Write(f,SMSOffline[i]);\r
-  end;\r
-  CloseFile(F);\r
-end;\r
-\r
-procedure ReadSMSOffline;\r
-var F:file of GSM_SMSMessage;\r
-begin\r
-  MainForm.ListView10.items.Clear;\r
-  AssignFile(F, 'gnokiisms');\r
-  Reset(F);\r
-  if (ioresult=0) then\r
-  begin\r
-    smsofflinenumber:=0;\r
-    while not eof(f) do\r
-    begin\r
-      smsofflinenumber:=smsofflinenumber+1;\r
-      read(f,smsoffline[smsofflinenumber]);\r
-      AddSMSInfo(MainForm.ListView10,smsoffline[smsofflinenumber]);\r
-    end;\r
-    CloseFile(F);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.PCSMSTabSheetShow(Sender: TObject);\r
-begin\r
-  ReadSMSOffline;\r
-end;\r
-\r
-procedure TMainForm.CopytoPC1Click(Sender: TObject);\r
-begin\r
-  SMSofflinenumber:=smsofflinenumber+1;\r
-  SMSoffline[SMSofflinenumber]:=SMS[smsnumindex];\r
-  SaveSMSOffline;\r
-end;\r
-\r
-procedure TMainForm.ListView10SelectItem(Sender: TObject; Item: TListItem;\r
-  Selected: Boolean);\r
-begin\r
-  AddSMSDescription(SMSOffline[Item.Index+1],MainForm.Memo4,MainForm.Memo5);\r
-end;\r
-\r
-procedure TMainForm.PCSMSPopupMenuPopup(Sender: TObject);\r
-begin\r
-  SendSave1.Enabled:=False;\r
-  if GSMPhoneConnected then SendSave1.Enabled:=True;\r
-\r
-  Delete3.Enabled:=false;\r
-  if listview10.selected<>nil then Delete3.Enabled:=True;\r
-end;\r
-\r
-procedure TMainForm.Delete3Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  if Application.MessageBox('Do you want to delete this SMS ?','Question',MB_YESNO)=IDYES then\r
-  begin\r
-    for i:=MainForm.ListView10.ItemIndex to smsofflinenumber-1 do\r
-    begin\r
-      SMSOffline[i]:=SMSOffline[i+1];\r
-    end;\r
-    Smsofflinenumber:=smsofflinenumber-1;\r
-    SaveSMSOffline;\r
-    ReadSMSOffline;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.SendSave1Click(Sender: TObject);\r
-var i:integer;\r
-begin\r
-  GSM_GetSMSFolders(@SMSfolders);\r
-  MainForm.ComboBox3.Items.Clear();\r
-  for i:=1 to SMSfolders.number do\r
-  begin\r
-    MainForm.ComboBox3.Items.Add(SMSfolders.folder[i].Name);\r
-  end;\r
-  MainForm.ComboBox3.ItemIndex:=0;\r
-  setsmslocation:=0;\r
-  SendSaveSMS(SMSOffline[MainForm.ListView10.ItemIndex+1]);\r
-end;\r
-\r
-\r
-procedure EndWAPBookmarkThread;\r
-begin\r
-  if (WAPBookmarkThread<>nil) then\r
-  begin\r
-    WAPBookmarkThread.Terminate();\r
-    MainForm.Timer2.Enabled:=true;\r
-    WAPBookmarkThread:=nil;\r
-  end;\r
-end;\r
-\r
-procedure TWAPBookmarkThread.Execute;\r
-var\r
-  bookmark:GSM_WAPBookmark;\r
-  i:integer;\r
-begin\r
-  while not Terminated do\r
-  begin\r
-    bookmark.location:=bookmarknum;\r
-    i:=GSM_GetWAPBookmark(@bookmark);\r
-    MainForm.ListView9.Items.Add;\r
-    MainForm.ListView9.Items.Item[bookmarknum-1].Caption:=inttostr(bookmarknum);\r
-    if (i=0) then\r
-    begin\r
-      MainForm.ListView9.Items.Item[bookmarknum-1].Subitems.Add(bookmark.title);\r
-      MainForm.ListView9.Items.Item[bookmarknum-1].Subitems.Add(bookmark.adress);\r
-    end;\r
-    bookmarknum:=bookmarknum+1;\r
-    if bookmarknum=15 then EndWAPBookmarkThread;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.WapBookTabSheetHide(Sender: TObject);\r
-begin\r
-  EndWAPBookmarkThread;\r
-end;\r
-\r
-procedure TMainForm.WapBookTabSheetShow(Sender: TObject);\r
-begin\r
-  if GSMPhoneConnected then\r
-  begin\r
-    if GSM_GetModelFeature(FN_WAP)<>0 then\r
-    begin\r
-      GroupBox17.Ctl3D:=true;\r
-      ListView9.Ctl3D:=true;\r
-      ListView9.Enabled:=true;\r
-      bookmarknum:=1;\r
-      MainForm.ListView9.Items.Clear;\r
-      MainForm.Timer2.Enabled:=false;\r
-      WAPBookmarkThread:=TWAPBookmarkThread.Create(false);\r
-    end else\r
-    begin\r
-      GroupBox17.Ctl3D:=false;\r
-      ListView9.Ctl3D:=false;\r
-      ListView9.Enabled:=false;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.ComboBox7Change(Sender: TObject);\r
-var\r
-  settings:GSM_WAPSettings;\r
-begin\r
-  if combobox7.ItemIndex>0 then\r
-  begin\r
-    settings.location:=combobox7.ItemIndex;\r
-    MainForm.Timer2.Enabled:=false;\r
-    GSM_GetWAPSettings(@settings);\r
-    MainForm.Timer2.Enabled:=true;\r
-\r
-    if (settings.title[1]<>chr(0)) then\r
-      Edit6.Text:=settings.title\r
-    else\r
-      edit6.Text:='set '+inttostr(combobox7.ItemIndex);\r
-\r
-    edit8.Text:=settings.homepage;\r
-\r
-    combobox10.itemindex:=1;\r
-    if settings.iscontinuous<>0 then combobox10.Itemindex:=0;\r
-\r
-    combobox9.itemindex:=1;\r
-    if settings.issecurity<>0 then combobox9.Itemindex:=0;\r
-\r
-    if (settings.bearer>=0) and (settings.bearer<3) then\r
-    begin\r
-      combobox8.ItemIndex:=settings.bearer;\r
-\r
-      Label27.enabled:=false;\r
-      Label28.enabled:=false;\r
-      Label29.enabled:=false;\r
-      label30.enabled:=false;\r
-      label31.enabled:=false;\r
-      label32.enabled:=false;\r
-      label33.enabled:=false;\r
-      label34.enabled:=false;\r
-      label35.enabled:=false;\r
-      label36.enabled:=false;\r
-      label37.enabled:=false;\r
-      edit9.enabled:=false;\r
-      edit10.enabled:=false;\r
-      edit11.enabled:=false;\r
-      edit12.enabled:=false;\r
-      edit13.enabled:=false;\r
-      edit14.enabled:=false;\r
-      edit15.enabled:=false;\r
-      combobox11.enabled:=false;\r
-      combobox12.enabled:=false;\r
-      combobox13.enabled:=false;\r
-      combobox14.enabled:=false;\r
-\r
-      case settings.bearer of\r
-        WAPSETTINGS_BEARER_SMS:\r
-          begin\r
-            label27.enabled:=true;\r
-            edit9.text:=settings.server;\r
-            edit9.enabled:=true;\r
-\r
-            label28.enabled:=true;\r
-            edit10.text:=settings.service;\r
-            edit10.enabled:=true;\r
-          end;\r
-        WAPSETTINGS_BEARER_DATA:\r
-          begin\r
-            label29.enabled:=true;\r
-            edit11.text:=settings.dialup;\r
-            edit11.enabled:=true;\r
-\r
-            label34.enabled:=true;\r
-            edit13.text:=settings.user;\r
-            edit13.enabled:=true;\r
-\r
-            label35.enabled:=true;\r
-            edit14.text:=settings.password;\r
-            edit14.enabled:=true;\r
-\r
-            label30.enabled:=true;\r
-            edit12.text:=settings.ipaddress;\r
-            edit12.enabled:=true;\r
-\r
-            label31.enabled:=true;\r
-            combobox11.enabled:=true;\r
-            combobox11.ItemIndex:=0;\r
-            if settings.isnormalauthentication=0 then\r
-              combobox11.ItemIndex:=1;\r
-\r
-            label32.enabled:=true;\r
-            combobox12.enabled:=true;\r
-            combobox12.ItemIndex:=0;\r
-            if settings.isISDNcall=0 then\r
-              combobox12.ItemIndex:=1;\r
-\r
-            label33.enabled:=true;\r
-            combobox13.enabled:=true;\r
-            combobox13.ItemIndex:=1;\r
-            if settings.isspeed14400=0 then\r
-              combobox13.ItemIndex:=0;\r
-          end;\r
-        WAPSETTINGS_BEARER_USSD:\r
-          begin\r
-            label36.enabled:=true;\r
-            edit15.text:=settings.code;\r
-            edit15.enabled:=true;\r
-\r
-            label37.enabled:=true;\r
-            combobox14.Enabled:=true;\r
-            combobox14.ItemIndex:=1;\r
-            if settings.isIP=0 then\r
-            begin\r
-              combobox14.ItemIndex:=1;\r
-\r
-              label28.enabled:=true;\r
-              edit10.text:=settings.service;\r
-              edit10.enabled:=true;\r
-            end else\r
-            begin\r
-              label30.enabled:=true;\r
-              edit12.text:=settings.ipaddress;\r
-              edit12.enabled:=true;\r
-            end;\r
-          end;\r
-      end;\r
-    end;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Button19Click(Sender: TObject);\r
-var\r
-  Divert:GSM_CallDivert;\r
-begin\r
-  MainForm.Timer2.Enabled:=false;\r
-\r
-  divert.DType:=GSM_CDV_Busy;\r
-  divert.ctype:=GSM_CDV_VoiceCalls;\r
-  divert.Operation:=GSM_CDV_Query;\r
-  if gsm_calldivertoperation(@divert)=0 then\r
-  begin\r
-    if divert.enabled=0 then\r
-    begin\r
-      Label38.enabled:=false;\r
-      edit16.enabled:=false;\r
-      edit16.Text:='Not active';\r
-    end else\r
-    begin\r
-      Label38.enabled:=true;\r
-      edit16.enabled:=true;\r
-      edit16.Text:=divert.Number;\r
-    end;\r
-  end;\r
-\r
-  divert.DType:=GSM_CDV_NoAnswer;\r
-  divert.ctype:=GSM_CDV_VoiceCalls;\r
-  divert.Operation:=GSM_CDV_Query;\r
-  if gsm_calldivertoperation(@divert)=0 then\r
-  begin\r
-    if divert.enabled=0 then\r
-    begin\r
-      Label39.enabled:=false;\r
-      edit17.enabled:=false;\r
-      edit17.Text:='Not active';\r
-      label40.Enabled:=false;\r
-      combobox15.Enabled:=false;\r
-    end else\r
-    begin\r
-      Label39.enabled:=true;\r
-      edit17.enabled:=true;\r
-      edit17.Text:=divert.Number;\r
-      label40.Enabled:=true;\r
-      combobox15.Enabled:=true;\r
-      case divert.timeout of\r
-         5:combobox15.ItemIndex:=0;\r
-        10:combobox15.ItemIndex:=1;\r
-        15:combobox15.ItemIndex:=2;\r
-        20:combobox15.ItemIndex:=3;\r
-        25:combobox15.ItemIndex:=4;\r
-        30:combobox15.ItemIndex:=5;\r
-      end;\r
-    end;\r
-  end;\r
-\r
-  divert.DType:=GSM_CDV_OutOfreach;\r
-  divert.ctype:=GSM_CDV_VoiceCalls;\r
-  divert.Operation:=GSM_CDV_Query;\r
-  if gsm_calldivertoperation(@divert)=0 then\r
-  begin\r
-    if divert.enabled=0 then\r
-    begin\r
-      Label41.enabled:=false;\r
-      edit18.enabled:=false;\r
-      edit18.Text:='Not active';\r
-    end else\r
-    begin\r
-      Label41.enabled:=true;\r
-      edit18.enabled:=true;\r
-      edit18.Text:=divert.Number;\r
-    end;\r
-  end;\r
-\r
-  MainForm.Timer2.Enabled:=true;\r
-end;\r
-\r
-procedure TMainForm.Button20Click(Sender: TObject);\r
-var\r
-  Divert:GSM_CallDivert;\r
-begin\r
-  MainForm.Timer2.Enabled:=false;\r
-\r
-  divert.DType:=GSM_CDV_AllTypes;\r
-  divert.ctype:=GSM_CDV_AllCalls;\r
-  divert.Operation:=GSM_CDV_Erasure;\r
-  gsm_calldivertoperation(@divert);\r
-\r
-  MainForm.Timer2.Enabled:=true;\r
-\r
-end;\r
-\r
-procedure ReadCalendarOffline;\r
-var F:file of GSM_calendarnote;\r
-begin\r
-  MainForm.ListView11.items.Clear;\r
-  AssignFile(F, 'gnokiicalendar');\r
-  Reset(F);\r
-  if (ioresult=0) then\r
-  begin\r
-    calendarofflinenumber:=0;\r
-    while not eof(f) do\r
-    begin\r
-      calendarofflinenumber:=calendarofflinenumber+1;\r
-      read(f,calendaroffline[calendarofflinenumber]);\r
-      AddCalendarNote(calendaroffline[calendarofflinenumber],mainform.ListView11);\r
-    end;\r
-    CloseFile(F);\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.PCOfflineTabSheetShow(Sender: TObject);\r
-begin\r
-  ReadSMSOffline;\r
-  Label43.Caption:=inttostr(smsofflinenumber);\r
-  ReadCalendarOffline;\r
-  Label45.Caption:=inttostr(calendarofflinenumber);\r
-end;\r
-\r
-procedure SaveCalendarOffline;\r
-var F:file of GSM_CalendarNote;\r
-    i:integer;\r
-begin\r
-  AssignFile(F, 'gnokiicalendar');\r
-  Rewrite(F);\r
-  for i:=1 to CalendarOfflineNumber do\r
-  begin\r
-    Write(f,CalendarOffline[i]);\r
-  end;\r
-  CloseFile(F);\r
-end;\r
-\r
-procedure TMainForm.PCCalendarTabSheetShow(Sender: TObject);\r
-begin\r
-  ReadCalendarOffline;\r
-end;\r
-\r
-procedure TMainForm.CopytoPC2Click(Sender: TObject);\r
-begin\r
-  setcalendarnote.Location:=calendarselect;\r
-  mainform.Timer2.Enabled:=false;\r
-  GSM_GetCalendarNote(@setcalendarnote);\r
-  mainform.Timer2.Enabled:=true;\r
-  Calendarofflinenumber:=calendarofflinenumber+1;\r
-  Calendaroffline[Calendarofflinenumber]:=setcalendarnote;\r
-  SaveCalendarOffline;\r
-end;\r
-\r
-procedure TMainForm.Delete5Click(Sender: TObject);\r
-var\r
-  i:integer;\r
-begin\r
-  if Application.MessageBox('Do you want to delete this note ?','Question',MB_YESNO)=IDYES then\r
-  begin\r
-    for i:=MainForm.ListView11.ItemIndex to calendarofflinenumber-1 do\r
-    begin\r
-      CalendarOffline[i]:=CalendarOffline[i+1];\r
-    end;\r
-    Calendarofflinenumber:=calendarofflinenumber-1;\r
-    SaveCalendarOffline;\r
-    ReadCalendarOffline;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.Copytocalendar1Click(Sender: TObject);\r
-begin\r
-  if not readcalendar then\r
-  begin\r
-    application.MessageBox('Please read first calendar notes from phone','info',mb_ok);\r
-  end else begin\r
-    setcalendarnote:=calendaroffline[mainform.listview11.itemindex+1];\r
-    setcalendarnote.Location:=MainForm.ListView4.Items.Count+1;\r
-\r
-    EditCalendarNote;\r
-  end;\r
-end;\r
-\r
-procedure TMainForm.PCCalendarPopupMenuPopup(Sender: TObject);\r
-begin\r
-  CopyTocalendar1.Enabled:=False;\r
-  if (GSMPhoneConnected) and (GSM_GetModelFeature(FN_Calendar)<>0) then copytocalendar1.Enabled:=True;\r
-\r
-  Delete5.Enabled:=false;\r
-  if listview11.selected<>nil then Delete5.Enabled:=True;\r
-end;\r
-\r
-end.\r