Unit1.pas

unit Unit1;

(*

****************************** EXOSEE CLIENT 1.0.0*********************************************

Author    : Ismail CHAGDALI / 2003-2007
Dev Tool  : Borland Delphi 5


*)



interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ScktComp, XPManifest, xocTaskBar, ImgList, Menus, OleCtrls,ExtCtrls,
  StdCtrls, xocLabel, ComCtrls, xocStatusBar, xocTreeView,ShellApi,
  xocCButton, ToolWin, Buttons, xocBeveL, xocLogger, SHDocVw_TLB,EmbeddedWB;

type
  T_FXOC_MAIN = class(TForm)
    __PaneLMAIN: TPanel;
    __PaneLMAIN_A: TPanel;
    Splitter1: TSplitter;
    __PaneLMAIN_B: TPanel;
    The_Pages: TPageControl;
    TabExplorer: TTabSheet;
    TabTraffic: TTabSheet;
    TabComsWebs: TTabSheet;
    TaskbarIcon1: TTaskbarIcon;
    XPManifest1: TXPManifest;
    AA_0515_LVExpLorer: TListView;
    Panel_BTM_TRAFFIC: TPanel;
    Splitter2: TSplitter;
    Panel_TOP_TRAFFIC: TPanel;
    TabForums: TTabSheet;
    eComsWebsPAGES: TPageControl;
    AA_0517_vCompleted: TListView;
    AA_0516_vTraffic: TListView;
    _TExoSeeSERVER: TServerSocket;
    PaneLLL: TPanel;
    Image1: TImage;
    _xpuzerMsg: TLabel;
    TabXoc: TTabSheet;
    _pp_xpoz: TPopupMenu;
    xplorupdate: TMenuItem;
    N3: TMenuItem;
    _mn_chat: TMenuItem;
    _mn_add2Favs: TMenuItem;
    N4: TMenuItem;
    _mn_zundFile: TMenuItem;
    _mn_zundFolder: TMenuItem;
    N13: TMenuItem;
    _mn_RemUser: TMenuItem;
    N6: TMenuItem;
    _mn_NetAdmin: TMenuItem;
    _mn_adminBan: TMenuItem;
    _mn_NetMod: TMenuItem;
    _mn_modBan: TMenuItem;
    N8: TMenuItem;
    Settings2: TMenuItem;
    _TM_UP_TEKKER: TTimer;
    eeUzerIco: TImage;
    ssCHATER: TServerSocket;
    PaneLCC: TPanel;
    _images: TImageList;
    _TM_TRAFFICY: TTimer;
    PPP_TraFFic: TPopupMenu;
    AA_0431_CanZeL: TMenuItem;
    N15: TMenuItem;
    AA_0432_Ztop: TMenuItem;
    AA_0415_reZume: TMenuItem;
    N17: TMenuItem;
    AA_0402_oppdwF: TMenuItem;
    pp_vExploration: TPopupMenu;
    dL1: TMenuItem;
    N21: TMenuItem;
    eXPLRuser: TExoSeeLabel;
    _mn_StopCom: TMenuItem;
    Panel4: TPanel;
    zzzChat: TxocCButton;
    N1: TMenuItem;
    _mn_comPropes: TMenuItem;
    Panel5: TPanel;
    eComsXOCsPAGES: TPageControl;
    Shape1: TShape;
    ppMain: TPopupMenu;
    AA_0400_Start1: TMenuItem;
    N2: TMenuItem;
    N5: TMenuItem;
    AA_0401_Settings1: TMenuItem;
    AA_0402_OpenMyDlFolder: TMenuItem;
    AA_0407_Tools1: TMenuItem;
    AA_0414_Exit1: TMenuItem;
    AA_0408_Help1: TMenuItem;
    AA_0409_Help2: TMenuItem;
    N7: TMenuItem;
    N9: TMenuItem;
    AA_0413_About1: TMenuItem;
    AA_0410_ExoHome: TMenuItem;
    AA_0411_XOCHomepage1: TMenuItem;
    Panel6: TPanel;
    Shape2: TShape;
    eExoSeePanelsSTAT: TLabel;
    Panel8: TPanel;
    Image2: TImage;
    Panel9: TPanel;
    Shape4: TShape;
    PaneLBTM: TPanel;
    eeeID: TLabel;
    CapVersion: TLabel;
    AA_0500_eFileMainMENU: TxocCButton;
    Panel7: TPanel;
    Panel11: TPanel;
    Panel12: TPanel;
    Shape5: TShape;
    xBeveL1: TxBeveL;
    _eExplorerTV: TxocTreeView;
    xBeveL2: TxBeveL;
    PaneLTabber: TPanel;
    Shape3: TShape;
    AA_0501_bbb0: TxocCButton;
    AA_0502_bbb1: TxocCButton;
    AA_0503_bbb2: TxocCButton;
    bbb3: TxocCButton;
    bbb4: TxocCButton;
    AA_0530_CButton5: TxocCButton;
    AA_0608_cccExoSeeWEB: TxocCButton;
    _pExoseePANELS: TPanel;
    _pExoseeWeb: TPanel;
    TheExoWeb: TEmbeddedWB;
    TMcomWebKIKer: TTimer;
    Panel13: TPanel;
    Shape6: TShape;
    explorStatPath: TLabel;
    explorStatFiles: TLabel;
    Label7: TLabel;
    xplorProgresser: TProgressBar;
    Shape7: TShape;
    zzzSendFile: TxocCButton;
    Label6: TLabel;
    Label8: TLabel;
    Panel14: TPanel;
    Panel15: TPanel;
    Shape9: TShape;
    AA_0606_Label1: TLabel;
    Panel16: TPanel;
    AA_0607_Label2: TLabel;
    Image3: TImage;
    Image4: TImage;
    Panel17: TPanel;
    Shape8: TShape;
    Panel18: TPanel;
    Shape10: TShape;
    Panel19: TPanel;
    Shape11: TShape;
    PaneLwebTABS: TPanel;
    PaneLxocTABS: TPanel;
    _pExoseeHelp: TPanel;
    TheExoHELP: TEmbeddedWB;
    TheLOGGER: TLogger;
    N10: TMenuItem;
    AA_0403_MyStatus1: TMenuItem;
    N11: TMenuItem;
    AA_0404_OnLine1: TMenuItem;
    AA_0405_Away1: TMenuItem;
    N12: TMenuItem;
    AA_0406_SetAWAYmsg: TMenuItem;
    Label4: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    iko_1: TImage;
    Label11: TLabel;
    iko_0: TImage;
    Label12: TLabel;
    AA_0505_Label13: TLabel;
    eeOnStata: TLabel;
    AA_0430_OpnFolder: TMenuItem;
    _mn_delfav: TMenuItem;
    opn: TOpenDialog;
    TabLog: TTabSheet;
    AA_0504_bbb5: TxocCButton;
    LocalMemoLOG: TMemo;
    Shape12: TShape;
    Shape13: TShape;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label13: TLabel;
    TmKLOZZER: TTimer;
    TmVersionNOTIFY: TTimer;
    ccBannector: TClientSocket;
    _mn_infoUser: TMenuItem;
    clearbanned: TMenuItem;
    N14: TMenuItem;
    AA_0433_IconsHelp: TMenuItem;
    izDebugerON: TCheckBox;
    procedure OnStatusBarResize(Sender: TObject);
    procedure AA_0413_About1Click(Sender: TObject);
    procedure eeStartClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Splitter1CanResize(Sender: TObject; var NewSize: Integer;
      var Accept: Boolean);
    procedure zettingsClick(Sender: TObject);
    procedure _eExplorerTVGetImageIndex(Sender: TObject; Node: TTreeNode);
    procedure _eExplorerTVCollapsing(Sender: TObject; Node: TTreeNode;
      var AllowCollapse: Boolean);
    procedure _TExoSeeSERVERGetThread(Sender: TObject;
      ClientSocket: TServerClientWinSocket;
      var SocketThread: TServerClientThread);
    procedure _eExplorerTVChange(Sender: TObject; Node: TTreeNode);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure _eExplorerTV_Tip(Sender: TObject; Item: TTreeNode; var Info: String);
    procedure AA_0515_LVExpLorerDblClick(Sender: TObject);
    procedure _pp_xpozPopup(Sender: TObject);
    procedure _eExplorerTVMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure _TM_UP_TEKKERTimer(Sender: TObject);
    procedure ssCHATERClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure ssCHATERClientError(Sender: TObject;
      Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
      var ErrorCode: Integer);
    procedure ssCHATERClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure _mn_chatClick(Sender: TObject);
    procedure _TM_TRAFFICYTimer(Sender: TObject);
    procedure xplorupdateClick(Sender: TObject);
    procedure AA_0402_OpenMyDlFolderClick(Sender: TObject);
    procedure PPP_TraFFicPopup(Sender: TObject);
    procedure AA_0431_CanZeLClick(Sender: TObject);
    procedure AA_0432_ZtopClick(Sender: TObject);
    procedure AA_0415_reZumeClick(Sender: TObject);
    procedure AA_0517_vCompletedDblClick(Sender: TObject);
    procedure AA_0517_vCompletedInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String);
    procedure pp_vExplorationPopup(Sender: TObject);
    procedure TheExoWebTitleChange(Sender: TObject;  const Text: WideString);
    procedure CoolBar1Resize(Sender: TObject);
    procedure _mn_comPropesClick(Sender: TObject);
    procedure AA_0414_Exit1Click(Sender: TObject);
    procedure eComsXOCsPAGESChange(Sender: TObject);
    procedure The_PagesDrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    procedure bbbsClick(Sender: TObject);
    procedure TabsShow(Sender: TObject);
    procedure AA_0608_cccExoSeeWEBClick(Sender: TObject);
    procedure TMcomWebKIKerTimer(Sender: TObject);
    procedure AA_0530_CButton5Click(Sender: TObject);
    procedure TheExoTitleChange(Sender: TObject; const Text: WideString);
    procedure _mn_StopComClick(Sender: TObject);
    procedure ppMainPopup(Sender: TObject);
    procedure AA_0404_OnLine1Click(Sender: TObject);
    procedure AA_0406_SetAWAYmsgClick(Sender: TObject);
    procedure _mn_add2FavsClick(Sender: TObject);
    procedure _mn_delfavClick(Sender: TObject);
    procedure _mn_zundFileClick(Sender: TObject);
    procedure GoOnlineClick(Sender: TObject);
    procedure OnStatsDblClick(Sender: TObject);
    procedure _mn_zundFolderClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure TmKLOZZERTimer(Sender: TObject);
    procedure GoFreeComsOwnDynamicTabs(Sender: TObject);
    procedure TmVersionNOTIFYTimer(Sender: TObject);
    procedure AA_0430_OpnFolderClick(Sender: TObject);
    procedure _mn_adminBanClick(Sender: TObject);
    procedure ccBannectorConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ccBannectorError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ccBannectorRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure ccBannectorDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure _mn_infoUserClick(Sender: TObject);
    procedure _mn_RemUserClick(Sender: TObject);
    procedure clearbannedClick(Sender: TObject);
    procedure AA_0433_IconsHelpClick(Sender: TObject);
  private
    _XpActiveNODE : TTreeNode;
    _XpActiveUSER : TTreeNode;
    procedure exosee_Data_msg(var Msg: TWMCopyData); message WM_COPYDATA;

  public
    { Déclarations publiques }
  end;

var
  _FXOC_MAIN: T_FXOC_MAIN;
  hawa:thandle;
  para:string;


implementation

uses _uc_refs_consts, _uf_web_model, _uc_funcs, _uf_about, _uf_start,
  _uc_refs_vars, _uf_settings, _uc_reg_settings,
  _uc_ExoSeeKerneL, _i_do_exploration, _i_explorer, _uc_tek_updater_thread,
  _uf_wizard, _uf_chat, _uc_crypto, _uf_ComProps, _uc_ip_codecs,
  _uf_xoc_model, _uf_xoc_downloader, _uf_debugerLog, _uf_sendFile,
  _uc_GuiLanG, _uf_xoc_icons;

{$R *.DFM}

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
procedure _zend_msg(s:string;hh:thandle;code:integer);
var
structa: TCopyDataStruct;
data:string;
begin

data :=s;          // max 255

structa.dwData := code;
structa.cbData := length(data);
structa.lpData := PChar(data);

SendMessage(hh,WM_COPYDATA,0,Longint(@structa));
end;


//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.exosee_Data_msg(var Msg: TWMCopyData);
var
sText: array[0..255] of Char;
_code:integer;
_FXOC_DOWNLOADER: T_FXOC_DOWNLOADER;
//sDownloadURL:string;
begin


StrLCopy(sText, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
_code:=Msg.CopyDataStruct.dwData;


case _code of

  701 : begin

        _FXOC_DOWNLOADER:=T_FXOC_DOWNLOADER.Create(Application);
        _FXOC_DOWNLOADER.__LOCAL_DOWNLOAD_FOLDER:=_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER;
        _FXOC_DOWNLOADER._ZUNDER_IS_WEB_XOC_LINK:=true;

        _FXOC_DOWNLOADER.pnLwebxocLINK.Left     :=0;
        _FXOC_DOWNLOADER.pnLwebxocLINK.Top      :=65;
        _FXOC_DOWNLOADER.pnLwebxocLINK.Visible  :=true;
        _FXOC_DOWNLOADER.edXocini.Text           :=sText;

        _FXOC_DOWNLOADER.Show;  // normal show as will be in tasbar

        end;
       
  702 : SetForegroundWindow(Handle);

end;

end;
//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.OnStatusBarResize(Sender: TObject);
begin
if TStatusBar(Sender).HandleAllocated then InvalidateRect(TStatusBar(Sender).Handle, nil, True);
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0413_About1Click(Sender: TObject);
begin

with T_FXOC_ABOUT.Create(Application) do
begin
Caption:=___ccc__0413__About;
ShowModal;
Free;
end;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.eeStartClick(Sender: TObject);
begin
_FXOC_START.ShowModal;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.FormActivate(Sender: TObject);
begin


if tag=1 then exit; tag:=1; // on once activate


Application.ProcessMessages;
Update;
Application.ProcessMessages;



TheExoWeb.Navigate('http://web.exosee.com/');
Application.ProcessMessages;

_FXOC_START.ShowModal;


        
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.FormCreate(Sender: TObject);
begin


//-- load language file if exists
GoCheckLanguageFileAndLoadItIfExists;
GoSetLANG(Self); //----- go loadLang --- if ok  (1st here)

Application.ProcessMessages;

//izDebugerON.Checked:=false; // force


_VV_LOCAL_USER_PC_ID:=GetLocalPcID;

//_VV_LOCAL_USER_PC_ID:='1E45355312';// inc always to not fav

//if (izDebugerON.Checked)and(_VV_LOCAL_USER_PC_ID<>'1E45355311') then izDebugerON.Checked:=false; // protect debug log

      (*
      if (izDebugerON.Checked) then
      begin
      _FDBGLOG:=T_FDBGLOG.Create(Application);
      _FDBGLOG.Show;
      end;
      *)


_images.Overlay(62, 0); // admin
_images.Overlay(63, 1); // mod
_images.Overlay(52, 2); // fav

TExoSeeSettings.LoadSettings;

     //-----1st_startup_wizard----------
     if EXPLORER_PUBLIC_ROOTS.Count=0 then
     with TF_SETUP_WIZARD.Create(Application) do
     begin
     Showmodal;
     Free;
     TExoSeeSettings.SaveSettings;
     Application.ProcessMessages;
     TExoSeeSettings.LoadSettings;
     end;
     if Application.Terminated then exit;




InitialiseLocals;
LoadGuiNodes;



_FXOC_MAIN.TheLOGGER.Log(ret+_APPLICATION_NAME+' '+_APPLICATION_VERSION_STRING+ret);
CapVersion.Caption:='v'+_APPLICATION_VERSION_STRING;
Caption:=_APPLICATION_NAME;// sek for params to catch window
eeeID.Caption:=_VV_LOCAL_USER_PC_ID;






_TM_UP_TEKKER.Interval:=120000; // 2 min   //
_TM_UP_TEKKER.Enabled:=true;

_TM_TRAFFICY.Enabled:=true;

The_Pages.ActivePage:=TabForums ;
AA_0608_cccExoSeeWEB.SetAsSELECTED;


_validate_The_Local_folders;

PaneLTabber.Top:=1;
PaneLTabber.Left:=1;

iko_1.Visible:=(_VV_LOCAL_USER_ONLINE_STATUS='A');
iko_0.Visible:=not iko_1.Visible;
if (iko_1.Visible) then eeOnStata.Caption:=___ccc__0001__Online else eeOnStata.Caption:=___ccc__0002__Away;


TExoSeeSettings._loadFavs;


_FXOC_MAIN._TExoSeeSERVER.Port:=_C_EXOSEE_MASTER_SERVER_PORT; // 716
_FXOC_MAIN._TExoSeeSERVER.Active:=true;

_FXOC_MAIN.ssCHATER.Port:=_C_EXOSEE_CHATER_SERVER_PORT; // 717
_FXOC_MAIN.ssCHATER.Active:=true;

//Set8087CW($133F);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.Splitter1CanResize(Sender: TObject;
  var NewSize: Integer; var Accept: Boolean);
begin
Accept:=(NewSize>140) and (NewSize<340);
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.zettingsClick(Sender: TObject);
begin
_FXOC_SETTINGS.ShowModal;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._eExplorerTVGetImageIndex(Sender: TObject; Node: TTreeNode);
begin

 case node.ImageIndex of
   21 : node.SelectedIndex:=22;
   23 : node.SelectedIndex:=24;
   25 : node.SelectedIndex:=26;
   else node.SelectedIndex:=node.ImageIndex;
 end;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._eExplorerTVCollapsing(Sender: TObject;
  Node: TTreeNode; var AllowCollapse: Boolean);
begin
AllowCollapse:=(Node<>_TV_NODE_OF_HOME_ROOT)and (Node<>_TV_NODE_OF_COMMUNITIES);
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._TExoSeeSERVERGetThread(Sender: TObject;
  ClientSocket: TServerClientWinSocket;
  var SocketThread: TServerClientThread);
begin

SocketThread                 :=TEXOSEE_KERNEL_THREAD.Create(true, ClientSocket);
SocketThread.FreeOnTerminate :=true;
SocketThread.KeepInCache     :=false;
SocketThread.OnTerminate     :=TEXOSEE_KERNEL_THREAD(SocketThread).On_terminated;
SocketThread.Resume;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._eExplorerTVChange(Sender: TObject; Node: TTreeNode);
var
i:integer;
sNik:string;
begin



_XpActiveUSER:=nil;
eXPLRuser.Caption:='';
_xpuzerMsg.Caption:='';


zzzChat.Enabled    :=false;
zzzSendFile.Enabled:=false;

zzzChat.Hint       :=___ccc__0003__Chat;
zzzSendFile.Hint   :=___ccc__0004__FileSend;

(*

NODE LEVELS :

. = Home
E = Communities
F = Favs NODE

L = fav user incative
M = active fav user

C = Community

Z = USER

X = .xoc
*)


if (Node._EXO_NODE_X_LEVEL='C')and(NOT Node._EXO_NODE_IS_STOPING) then
                                     begin
                                     TabComsWebs.Show;

                                       for i:=0 to eComsWebsPAGES.PageCount-1 do
                                       if (eComsWebsPAGES.Pages[i].Caption=Node.Text)then
                                       begin
                                       eComsWebsPAGES.Pages[i].Show;
                                       break;
                                       end;

                                     Application.ProcessMessages;
                                     exit;
                                     end;




if (Node._EXO_NODE_X_LEVEL='X')and(NOT Node._EXO_NODE_IS_STOPING) then
                                     begin
                                     TabXoc.Show;

                                       for i:=0 to eComsXOCsPAGES.PageCount-1 do
                                       if (eComsXOCsPAGES.Pages[i].Caption=Node.Parent.Text)then
                                       begin
                                       eComsXOCsPAGES.Pages[i].Show;
                                       break;
                                       end;
                                      
                                     Application.ProcessMessages;
                                     exit;
                                     end;







if NOT(Node._EXO_NODE_X_LEVEL in ['Z','M']) then exit;  // Only user code here !!!


//_fgui._XpLoRer.AutoExpand:=true;
TabExplorer.Show;
_XpActiveNODE:=Node; //

_XpActiveUSER:=_eExplorerTV.Items.getnode(Node._EXO_NODE_ROOT_HD);
eXPLRuser.Caption:=_XpActiveUSER.Text;
_xpuzerMsg.Caption:=StringReplace(_XpActiveUSER._EXO_NODE_MESSAGE,';',' ',[rfReplaceAll]);
sNik:=eXPLRuser.Caption;
_images.GetIcon(_XpActiveUSER.ImageIndex,eeUzerIco.Picture.Icon);


zzzChat.Enabled    :=true;
zzzSendFile.Enabled:=true;

zzzChat.Hint       :=___ccc__0005__ChatWith+sNik;
zzzSendFile.Hint   :=___ccc__0006__SendFileTo+sNik;

explorStatFiles.Caption:=format(___ccc__0062__XfolderXfiles,[0,0]);
explorStatPath.Caption:='...';


_clear_faster(AA_0515_LVExpLorer); // clear lv
AA_0515_LVExpLorer.Update;
Application.ProcessMessages;

//ShowMessage(_XpActiveNODE.Text+ret+IntToStr(length(_XpActiveNODE._EXO_NODE_DATA_STOCK)));

     if (_XpActiveNODE._EXO_NODE_DATA_STOCK<>'') then
         begin
         _go_xpLorEr_ShowA_node(_XpActiveNODE);
         end
         else
         with T_i_explorer_THREAD.Create do
         begin
         _XpUzoPP  :=_XpActiveNODE._EXO_NODE_USER_IP;
         _XpNode   :=_XpActiveNODE;
         Resume;
         end;


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.GoFreeComsOwnDynamicTabs(Sender: TObject);
var
i,j,k:integer;
sName:String;
begin

  for i:=0 to eComsWebsPAGES.PageCount-1 do
  begin
  sName:=eComsWebsPAGES.Pages[i].Caption;
  (*  *)
      //_1________free__T_FrameWEB______by_hint_com_name
      for j:=0 to PaneLwebTABS.ComponentCount-1 do
      if (T_FrameWEB(PaneLwebTABS.Components[j]).Hint=sName) then
      begin
      T_FrameWEB(PaneLwebTABS.Components[j]).Parent:=nil;  // the fix
      T_FrameWEB(PaneLwebTABS.Components[j]).Free;
      break;
      end;

      //_2________free__TTabSheet______by_caption__com_name
      for k:=0 to PaneLwebTABS.ComponentCount-1 do
      if (TTabSheet(PaneLwebTABS.Components[k]).Caption=sName) then
      begin
      TTabSheet(PaneLwebTABS.Components[k]).Free;
      break;
      end;




  // we freed so count is dec  >> go ahead ... we exit
  if (eComsWebsPAGES.PageCount>0) then GoFreeComsOwnDynamicTabs(nil);
  break;
  end;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
(*
CanClose:=(TmKLOZZER.Tag=2);

 case TmKLOZZER.Tag of
  0: GoWebsAssingBLANKPAGES; // set blank pages first
  1 :GoFreeComsOwnDynamicTabs(nil); //
 end;

TmKLOZZER.Enabled:=true; // go free and close in some seconds
*)
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.TmKLOZZERTimer(Sender: TObject);
begin
TmKLOZZER.Enabled:=false;
TmKLOZZER.Tag:=TmKLOZZER.Tag+1;
Close;
end;
//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.FormClose(Sender: TObject; var Action: TCloseAction);
begin


_THE_EXOSEE_APPLICATION_IS_TERMINATED:=true;
Application.ProcessMessages;
Application.ProcessMessages;
Application.ProcessMessages;

TExoSeeSettings.SaveSettings;


GoFreeComsOwnDynamicTabs(nil); // destroy created web tabs++
Application.ProcessMessages;
GoFreeComs_Xoc_Tabs; // destroy created xoc tabs++


//if (izDebugerON.Checked) then _FDBGLOG.Free;
end;


//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._eExplorerTV_Tip(Sender: TObject; Item: TTreeNode; var Info: String);
begin


Case item._EXO_NODE_X_LEVEL of

 //'L' : Info:=Item._EXO_NODE_COM_IDX;

 'C' : begin
       Info:=Item.Text+ret+sep+ret+Item._EXO_NODE_MESSAGE;

       end;
 'Z','M' : if (Item._EXO_NODE_ROOT_HD=Item.ItemId) then
       begin
       _HINT_ZUNDER_IZ_USER_LIST:=true;
       // space added to width rect
       Info:=Item._EXO_NODE_20BOOLS[2]+'_________________________________'+ret+ // logo + line [0] ingored
             Item.Text+ret+
             '-'+ret+
             StringReplace(Item._EXO_NODE_MESSAGE,'|',ret,[rfReplaceAll])+ret+
             '-'+ret+
             ___ccc__0007__Country+' '+Item._EXO_NODE_COUNTRY;
       end;

end;

(*
if (izDebugerON.Checked) then
begin
Info:=Info+ret+sep+ret+Item._EXO_NODE_USER_IP+ret+
      'Level:'+Item._EXO_NODE_X_LEVEL+ret+
      'uzID:'+Item._EXO_NODE_USER_ID+ret+
      'Country:'+Item._EXO_NODE_COUNTRY+ret+
      'msg:'+Item._EXO_NODE_MESSAGE+ret+
      'path-N:'+Item._EXO_NODE_PATH_NB+ret+
      'com-IDX:'+Item._EXO_NODE_COM_IDX+ret+
      'path_TX:'+Item._EXO_NODE_PATH_TX+ret+
      '20b:'+Item._EXO_NODE_20BOOLS+ret+
      //'STOCK:'+Item._EXO_NODE_DATA_STOCK+ret+
      //Item._EXO_NODE_U_STATU+ret+
      '...'+Item._EXO_NODE_XP_TYPE;
end;
*)

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0515_LVExpLorerDblClick(Sender: TObject);
var
//_FullRootPath,
//_nB:byte;
_SavaRzM:string;
_sZ:Int64;
_RootUzerNode:TTreeNode;
_cx: TListItem;
begin




_cx:=AA_0515_LVExpLorer.Selected;
if _cx=nil then exit;


if _cx.imageIndex=29 then
begin // go back explorer
_eExplorerTV.Selected:=_cx._RefferNODA; // to parent of selected !!
exit;
end;


 case _cx.imageIndex of
 21,23,25 : try _eExplorerTV.Selected:=_eExplorerTV.Selected.Item[_cx.itm_int1]; except end; //  it buggs
    27,28 : begin
            // <f> file has node handle of the main HD root user

            _RootUzerNode:=_eExplorerTV.Items.getnode(_cx._RefferNODA._EXO_NODE_ROOT_HD);
            (* 
            if (_RootUzerNode=_TV_NODE_OF_LOCAL_USER) then // if local
            begin
            _nB:=StrToIntDef('$'+_cx.pat_n,1)-1;

             case _cx._Type of
             '0' :_FullRootPath:=stringreplace(EXPLORER_PUBLIC_ROOTS[_nB]+_cx.itm_str1,'\\','\',[rfReplaceAll]);
             '1' :_FullRootPath:=stringreplace(EXPLORER_PRIVATE_ROOTS[_nB]+_cx.itm_str1,'\\','\',[rfReplaceAll]);
             '2' :_FullRootPath:=stringreplace(_GimeFavUserXtraFolder(_RootUzerNode._EXO_NODE_USER_ID)+_cx.itm_str1,'\\','\',[rfReplaceAll]);
             end;

            ShellExecute(0,'open',pchar(_FullRootPath),nil,nil,SW_SHOWNORMAL);
            exit;
            end
            else
            *)
                begin //start dl


               _sZ:=_cx.ITM_F_SIZE;// strtointdef(lv.Selected.SubItems[0],0);
               _SavaRzM:='_$$_'+_cx.pat_n+'_'+_cx._Type+'_'+IntToHex(_sZ,16)+'_'+_cx.uzr_id+'_'+_cx.Caption;
                  //_$$_01_0_0046B800_1CE4C70CB6_Alpha.mp3
                  //_$$_pn_type_size_id_fName

           // ShowMessage(_SavaRzM+ret+_eExplorerTV.Selected._EXO_NODE_PATH_TX);


             (*  *)

              // register
             //_$$_01_1_001D6FD2_1C080B2CD3_ENYA-01.mp3 = \Enya\enya - 1988 - watermark\
           //// not now  TExoSeeSettings.save_resume_info(_SavaRzM,_eExplorerTV.Selected._EXO_NODE_PATH_TX);


             _cx.imageIndex:=28;

             _put_DW_vItem(_cx.Caption,
                         _RootUzerNode.Text,
                         _cx.itm_str2,
                         _cx.uzr_id,
                         _cx.itm_str1,
                         _cx.pat_n,
                         _SavaRzM,
                         '',
                         _cx._Type,
                         _sZ);

              
               end;  //start dl end

          end;// 27... end

 end; // case end



end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._pp_xpozPopup(Sender: TObject);
begin
_pp_xpoz_menu_on(_eExplorerTV.Selected);
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._eExplorerTVMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
NN:TTreeNode;
begin

NN:=_eExplorerTV.GetNodeAt(x,y);
if NN=nil then exit;

if Button= mbRight then _eExplorerTV.Selected:=NN; // to select via right clik

(*
  case Button of

  mbRight : begin
            _eExplorerTV.Selected:=NN; // to select via right clik

            if NN._EXO_NODE_X_LEVEL='N' then
            begin
            _eExplorerTV.PopupMenu:=PP_COM;
            _csWeb.Caption:=format('Visit [ %s ] Website',[NN.text]);
            _csCRoom.Caption:=format('Join ChatRoom of [ %s ]',[NN.text]);
            _csComStop.Caption:=format('Stop [ %s ]',[NN.text]);
            PP_COM.Popup(_XpLoRer.left+_pxp_a.left+left+sPapa.left+40,_XpLoRer.top+ _pxp_a.top+top+sPapa.top+y+50);
            end
            else _eExplorerTV.PopupMenu:=_pp_xpoz;


            Application.ProcessMessages;
            end;

  mbLeft : begin // com to pup-up its menu
           if NN._EXO_NODE_X_LEVEL='N' then
           begin
           _csWeb.Caption:=format('Visit [ %s ] Website',[NN.text]);
           _csCRoom.Caption:=format('Join ChatRoom of [ %s ]',[NN.text]);
           _csComStop.Caption:=format('Stop [ %s ]',[NN.text]);
           PP_COM.Popup(_XpLoRer.left+_pxp_a.left+left+sPapa.left+40,_XpLoRer.top+ _pxp_a.top+top+sPapa.top+y+50);
           end;
           end;
 
  end;
*)

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._TM_UP_TEKKERTimer(Sender: TObject);
var
i:Integer;
ComNODD:TTreeNode;
//StrComLINK:string;
//StrComDOMAIN:string;
//StrComPATH:string;
begin


(*
     //----------server_node_data_already done in login

     IniComNODE._EXO_NODE_COM_IDX :=sComUrl;               // full com url
     IniComNODE._EXO_NODE_USER_ID :=The_ZunderITEM.uzr_id; // grab com pass  ( user-input )
     IniComNODE._EXO_NODE_USER_IP :=sDomainSEK;             // domain sek
     IniComNODE._EXO_NODE_PATH_TX :=sPathSEKandTekFile;     // path sek + tek_file   /fr/_xoc_com.php
     IniComNODE._EXO_NODE_eSERIAL :=iPort;
*)



      for i:=0 to _TV_NODE_OF_COMMUNITIES.Count-1 do
      begin
      ComNODD:=_TV_NODE_OF_COMMUNITIES.Item[i];

           if NOT(ComNODD._EXO_NODE_IS_STOPING) then
           with TTEK_UPDATER_THREAD.Create do
           begin
           _tek_up_Domain                   :=ComNODD._EXO_NODE_USER_IP;
           _tek_up_port                     :=ComNODD._EXO_NODE_eSERIAL;  // fixed !! (pro will do user http:port)
           _tek_up_com_path_plus_Tik_File   :=ComNODD._EXO_NODE_PATH_TX;
           _tek_up_full_http_link_stok      :=ComNODD._EXO_NODE_COM_IDX;
           _tek_up_zunderCOM                :=ComNODD;
           // pass no need !
           Resume;
           end;

      end;






   (*     old

      for i:=0 to _TV_NODE_OF_COMMUNITIES.Count-1 do
      begin
      ComNODD:=_TV_NODE_OF_COMMUNITIES.Item[i];
      // http://musicafe.org/cs/

      StrComLINK   :=ComNODD._EXO_NODE_COM_IDX;
      StrComDOMAIN :=StrComLINK;

      Delete(StrComDOMAIN,1,7); //  musicafe.org/cs/
      StrComPATH :=StrComDOMAIN; // musicafe.org/cs/

      p:=pos('/',StrComDOMAIN);
      StrComDOMAIN:=copy(StrComDOMAIN,1,p-1);  //  musicafe.org
      Delete(StrComPATH,1,p-1); // /cs/


           if (Copy(StrComLINK,1,7)='http://') then
           with TTEK_UPDATER_THREAD.Create do
           begin
           _tek_up_Domain                   :=StrComDOMAIN;
           _tek_up_port                     :=80;  // fixed !! (pro will do user http:port)
           _tek_up_com_path_plus_Tik_File   :=StrComPATH+_C_EXOSEE_WEB_TEK_FILE;
           _tek_up_full_http_link_stok      :=StrComLINK;
           _tek_up_zunderCOM                :=ComNODD;
           // pass no need !
           Resume;
           end;

      end;

 *)

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ssCHATERClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
var
i:integer;
f44:T_FCHAT;
begin



f44:=nil;                      //   zaty...$

  for i:=0 to PaneLCC.ComponentCount-1 do
  begin
   if T_FCHAT(PaneLCC.Components[i]).zoka=Socket.SocketHandle then
   begin
   f44:=T_FCHAT(PaneLCC.Components[i]); // use same f4 var
   break;
   end;
  end;



if f44<>nil then begin
                 f44.logy(ret+___ccc__0009__Disconnected,1);
                 f44.m.Update;
                 end;




end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ssCHATERClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ErrorCode:=0;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ssCHATERClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
x,nm:string;
p,i:integer;
f4:T_FCHAT;
begin


if (_THE_EXOSEE_APPLICATION_IS_TERMINATED) then exit;



x:=TCrypto._SimSim(Socket.ReceiveText);


          if copy(x,1,6)='<ZATC>' then    // new user in chat
          begin

          try
          Socket._node_uz:=_is_UserID_in_The_NETWORKS_Tree(copy(x,8,10));    // read id   // no in list >> kik
          except
          //_DoDebugLOG('ch_01');
          end;

          if (Socket._node_uz=nil) then begin
                                        Socket.Close;
                                        exit;
                                        end;      // !! bugs if removed

         
                                     
          try
          nm:=Socket._node_uz.Text;

          f4:=T_FCHAT.Create(PaneLCC); // owner !!!
          f4.niko:=nm;
          f4.Caption:=f4.niko;
          f4.zoka:=Socket.SocketHandle;
          f4.logy(ret+FormatDateTime('dddd dd mmm yyyy "-" hh:mm ',now)+', '+nm+' '+___ccc__0008__Connected,1);
          f4.WindowState:=wsMinimized;
          f4.Show;
          flashwindow(f4.handle, true);
          except
          //_DoDebugLOG('ch_02');
          end;

          exit;
          end;



// filter   !! must find the right memo !!!



if (copy(x,1,4)='ZATY')and (x[length(x)]='$') then
begin
f4:=nil;                      //   zaty...$


  try

  for i:=0 to PaneLCC.ComponentCount-1 do
  begin
   if T_FCHAT(PaneLCC.Components[i]).zoka=Socket.SocketHandle then
   begin
   f4:=T_FCHAT(PaneLCC.Components[i]); // use same f4 var
   break;
   end;
  end;


  except
  //_DoDebugLOG('ch_03');
  end;





if (f4=nil) then begin Socket.Close; exit; end;


x:=copy(x,5,length(x)-5);  //cut handsome !

if x='_typing...' then begin
                       f4.Caption:=f4.niko+' ...';
                       exit;
                       end;
try
f4.Caption:=f4.niko;
f4.logy(ret+FormatDateTime('[hh:mm] ',now)+copy(x,1,pos(ret,x)-1),1);
p:=pos(ret,x);
nm:=copy(x,p+2,length(x)-p);
f4.logy(StringReplace(nm,'$ZATY',ret,[rfReplaceAll]),0);  // a clean of packets   old versions
except
//_DoDebugLOG('ch_04');
end;



                          if (_VV_LOCAL_USER_ONLINE_STATUS<>'A') then
                          begin // send away status
                          try
                          Socket.SendText(TCrypto._BarzaToon('ZAWA'+_VV_LOCAL_USER_NOT_ONLINE_MESSAGE));
                          f4.logy(ret+format(___ccc__0010__AutoReplySentTo,[Socket._node_uz.Text]),0);
                          except
                          //_DoDebugLOG('ch_05');
                          end;
                          end;



flashwindow(f4.handle, false);
end
else Socket.Close; // a tzzuser


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_chatClick(Sender: TObject);
var
f3:T_FCHAT;
begin

//if not (_eExplorerTV.Selected._EXO_NODE_POZISIO in [90,91,92,93])  then exit;
if not(_eExplorerTV.Selected._EXO_NODE_X_LEVEL in ['Z','M']) then exit;

f3:=T_FCHAT.Create(Application);
f3.niko:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD).Text;
f3.uip:=_eExplorerTV.Selected._EXO_NODE_USER_IP;
f3.isZunderF3:=true;
//f_f.zendf.Caption:=format(_s_user_send_file,[f_f.uzr3]);
f3.show;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._TM_TRAFFICYTimer(Sender: TObject);
var
i,j:integer;
s,z,bb:string;
cango,candodo,cango8:bool;
QObJ : TListItem;
begin

// BECAREFULL TIMER INTERVAL= 1 sec



candodo:=true;
cango8:=true;



  for i:=0 to AA_0516_vTraffic.Items.Count-1 do

  with AA_0516_vTraffic.Items[i] do
  if (_Pozo in [6..50]) then
  begin

  //_LoG(' itemPozo : '+inttostr(_Pozo),1,false);

             case _Pozo of
                  15 : begin
                       SubItems[5]:=___ccc__0011__Error;  // error !
                       _Pozo       :=46;// go to delete
                       end;

                  16 : begin
                      // _Pozo       :=160;
                      SubItems[5]:=___ccc__0009__Disconnected;// SubItems[5] :='';  // disconnected
                       _Pozo       :=46;// go to delete
                       end;

                  18 : begin
                       //_Pozo       :=180;
                       SubItems[5]:=___ccc__0012__NoAccess; // No access, cause-fw
                       _Pozo       :=46;// go to delete
                       end;

                  19 : begin   //kk_0_in_dl   .. !!!!!!!!! no more repeating
                      // __Put_SubItem(_iTemIndex,3,'Retry['+inttostr(_ReCont)+']');  // kk
                       //_Pozo       :=6;

                      // if _ReCont>2 then begin
                      SubItems[5]:=___ccc__0009__Disconnected;
                      _Pozo      :=190;// go to rzm
                                          //  end;
                       end;

                  13 : begin
                       SubItems[5]:=___ccc__0013__Stopped; //
                       _Pozo       :=130;
                       end;

                  6  : begin
                       _Pozo       :=7;
                       end;

                  7  : if candodo then
                       begin          // new dl , trigg it and exit( 1sec)
                       cango:=true;
                          for j:=0 to AA_0516_vTraffic.Items.Count -1 do
                          begin
                          QObJ := AA_0516_vTraffic.Items[j];
                             if (uzr_id=QObJ.uzr_id)and(QObJ._Pozo in [10,11]) then
                             begin
                             cango:=false;
                             _Pozo:=6; // skip, check next time
                             SubItems[5]:=___ccc__0014__Queued; // attente
                             break;
                             end;
                          end;

                          if cango then begin
                                        _Pozo:=8;
                                        candodo:=false;  // next time fo other items
                                        end;
                       end;

                  8  : if cango8 then
                       begin          // starting new dl
                       _Pozo:=10;
                       cango8:=false; // next time fo other items
                       _exo_proc_i_dl_explorer(itm_str1,
                                               itm_str2,
                                               pat_n,
                                               Caption,
                                               uzr_id,
                                               SubItems[4],
                                               sava_f,
                                               _Type,
                                               ITM_F_SIZE,
                                               AA_0516_vTraffic.Items[i]);
                       end;

                  11 : begin   // downloading

                       // speed
                       //if (ITM_READEN<>itm_int1) then
                       timeLeft    :=(ITM_READEN - itm_int1); // kbs   1 sec;
                       SubItems[2]:=_octos(timeLeft)+'/s';


                        (*
                       //timeLeft
                       if timeLeft>0 then // fix menu bug >> div/0
                       begin
                       timeLeft    :=(ITM_F_SIZE-ITM_READEN) div timeLeft;
                       SubItems[5]:=_time_left(timeLeft));
                       end;
                       *)

                       itm_int1    :=ITM_READEN;
                       itm_int2    :=_percenty(ITM_READEN,ITM_F_SIZE); // %
                       SubItems[3] :=IntToStr(itm_int2)+'%'; // to update progress

                       end;

                  14 : begin
                       _Pozo       :=140;
                       SubItems[5]:=___ccc__0015__Completed;  //
                       SubItems[2]:=_octos(ITM_READEN);   //read
                       itm_int2    :=_percenty(ITM_READEN,ITM_F_SIZE); // %
                       //SubItems[5]:=''; // to update progress       // % fill
                       SubItems[3] :=IntToStr(itm_int2)+'%';

                       s:=ExtractFileName(sava_f_thr);
                       s:=copy(s,38,length(s)-37);//_$$_01_0_000000000046B800_1CE4C70CB6_Alpha.mp3
                       _FXOC_MAIN.TheLOGGER.Log(___ccc__0016__DLCompleted+' : '+s,15);

                       if dl_path='' then begin
                                          j:=0;
                                          z:='';
                                          while FileExists(_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER+'Completed\'+z+s) do
                                                begin
                                                inc(j);
                                                z:='['+inttostr(j)+'] ';
                                                end;
                                          bb:=_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER+'Completed\'+z+s;
                                          MoveFile(pchar(sava_f_thr),pchar(bb));
                                          end
                                          else
                                          begin

                                          j:=0;
                                          z:='';
                                          while FileExists(_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER+dl_path+z+s) do
                                                begin
                                                inc(j);
                                                z:='['+inttostr(j)+'] ';
                                                end;
                                          bb:=_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER+dl_path+z+s;
                                          MoveFile(pchar(sava_f_thr),pchar(bb));
                                          end;



                       _add_2completed(ExtractFileName(bb),bb,SubItems[4],_octos(ITM_F_SIZE));

                       _Pozo       :=46;// go to delete

                       //_tm_traffic.kwd_id:=uzr_id;
                       exit; // to do from begining not soon !!!
                       // this exit is ?? about kbs !!!
                       end;

                  12 : begin    // queued !  12 is only real remote queue
                      
                       SubItems[5]:='.'+___ccc__0014__Queued;//'.';
                       inc(_ReCont);  // inc kuwed

                       if (_ReCont>=60) then  // 1 min  or (_tm_traffic.kwd_id=uzr_id)
                       begin
                     //  if _ReCont<120 then _tm_traffic.kwd_id:='';
                       _Pozo:=7; // go to check  if possible soon or no, the 7 will charge

                       // will persist on 6 and 7 not in 12 ,
                       // and if went to dl and re-comeback direct 12 with _ReCont=0
                       // to re-wait 2 min ...
                       end;

                       end;

                    
                  27 : begin // auto-resume  user is on , start as 6
                       _Pozo:=6;
                       break;// !!! trying reduce of resume attacks
                       end;




                      


            //--------------Upload_items--------------------

            41 : begin
                 // speed
                 //if (itm_int1<>itm3) then
                 timeLeft    :=(itm_int1-itm3);
                 SubItems[2]:=_octos(timeLeft)+'/s';   // kbs up


                 //UL timeLeft
                 (*
                 if timeLeft>0 then // fix menu bug >> div/0
                 begin
                 timeLeft    :=(ITM_F_SIZE-ITM_SENT) div timeLeft;
                 __Put_SubItem(_iTemIndex,6,_time_left(timeLeft));
                 end;
                  *)


                 itm_int1    :=itm3;
                 itm_int2    :=_percenty(ITM_SENT,ITM_F_SIZE); // %   ok
                 SubItems[3] :=IntToStr(itm_int2)+'%'; // to update progress

                 end;

            42 : begin
                 // UL completed

                 _FXOC_MAIN.TheLOGGER.Log(format(___ccc__0017__UploadCompletedTo,[AA_0516_vTraffic.Items[i].Caption,SubItems[4]]),1);
                 //inc(_VV_LOCAL_USER_UPLOADS,ITM_F_SIZE);      // inc _V_UPLOAD_LOCAL_RECORD
                 //eeeUPed.Caption:='Uploaded : '+_octos(_VV_LOCAL_USER_UPLOADS); // show it


                 // del direct here
                 Delete; // del item
                 break; /// a must
                 end;

            43 : begin
                 SubItems[5]:=___ccc__0009__Disconnected;  //  , error
                 _Pozo       :=46;// go to delete
                 end;


            44 : begin
                 SubItems[5]:=___ccc__0018__Aborted;  // aborted go show disconnected
                 _Pozo       :=46;// go to delete
                 end;




            45 : begin
                 SubItems[5]:=___ccc__0019__Canceled; //
                 _Pozo       :=46;// go to delete
                 end;

            46 : begin
                 Delete;
                 break; /// a must
                 end;



             end;
  end;




end;


//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.xplorupdateClick(Sender: TObject);
begin

 _eExplorerTV.Selected._EXO_NODE_DATA_STOCK :=''; // free

 // fix SubFolders update
 _eExplorerTV.Selected.DeleteChildren;
 Application.ProcessMessages;
 _eExplorerTV.Selected._EXO_NODE_IS_FULL    :=0; //


 _eExplorerTVChange(nil,_eExplorerTV.Selected);  // trigger

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0402_OpenMyDlFolderClick(Sender: TObject);
begin
ShellExecute(0,'explore',pchar(_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER),nil,nil,SW_SHOWNORMAL);
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.PPP_TraFFicPopup(Sender: TObject);
var
//i:integer;
VDD : TListItem;
begin




AA_0431_CanZeL.Enabled:=false;

AA_0432_Ztop.Enabled:=false;
AA_0415_reZume.Enabled:=false;

if (AA_0516_vTraffic.Selected=nil) then exit;

AA_0431_CanZeL.Enabled:=true;


VDD:=AA_0516_vTraffic.Selected;
AA_0432_Ztop.Enabled:=VDD._Pozo=11;// only for DLing
AA_0415_reZume.Enabled:=(VDD._Pozo in [130,190]);  // allow kkCpu

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0431_CanZeLClick(Sender: TObject);
var
V_OBJ: TListItem;
begin


V_OBJ:=AA_0516_vTraffic.Selected;
// in common to cancel item >>3>> UL / DL / QUeued
if V_OBJ=nil then exit;

  case V_OBJ._Pozo of
      6 : V_OBJ._Pozo := 45; // 12 = real queued 2 min
  33,12,130,190 : begin   // +pended  + stoped + kk
                  if DeleteFile(_VV_LOCAL_CONFIG_THE_DOWNLOADS_FOLDER+V_OBJ.sava_f) then V_OBJ._Pozo := 45;
                  end;
  else
  V_OBJ.set_cancel:=true;
  end;


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0432_ZtopClick(Sender: TObject);
var
VBB: TListItem;
begin


VBB:=AA_0516_vTraffic.Selected;
// in common to cancel item >>3>> UL / DL / QUeued
if VBB=nil then exit;

 if VBB._Pozo=11 then VBB.set_stop:=true; // pozo will be 130




end;


//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0415_reZumeClick(Sender: TObject);
var
VBB: TListItem;
begin


VBB:=AA_0516_vTraffic.Selected;
if VBB=nil then exit;

 if (VBB.set_stop)or(VBB._Pozo=190) then  // allow kkcpuKK to resume
                      begin
                      VBB.set_stop:=false; // alive it
                      VBB.SubItems[5]:=___ccc__0020__Resume;
                      VBB._Pozo:=6; //go to resume and wait before !!!
                      end;





end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0517_vCompletedDblClick(Sender: TObject);
var
_NODE_OBJECT : TListItem;
begin

_NODE_OBJECT:=AA_0517_vCompleted.Selected;
if _NODE_OBJECT=nil then exit;

ShellExecute(0,'open',pchar(_NODE_OBJECT.sava_f),nil,nil,SW_SHOWNORMAL);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0517_vCompletedInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String);
begin
InfoTip:=Item.sava_f;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.pp_vExplorationPopup(Sender: TObject);
begin

dL1.Caption:='---';
dL1.Enabled:=(AA_0515_LVExpLorer.Selected<>nil)and(AA_0515_LVExpLorer.Selected.ImageIndex<>29); // avoid icon<..>

if dL1.Enabled then begin
                    case AA_0515_LVExpLorer.Selected.ImageIndex of
                            27 : begin
                                   if AA_0515_LVExpLorer.Selected._RefferNODA=_TV_NODE_OF_LOCAL_USER then
                                   dL1.Caption:=___ccc__0021__Open+' : '+AA_0515_LVExpLorer.Selected.Caption
                                   else
                                   dL1.Caption:=___ccc__0022__Download+' : '+AA_0515_LVExpLorer.Selected.Caption;
                                 end;
                      21,23,25 : dL1.Caption:=___ccc__0023__Explore+' : '+AA_0515_LVExpLorer.Selected.Caption;
                    else begin

                         dL1.Enabled:=false;
                         end;
                    end;
                    end;
end;

//------------------------------------------------------------------------------
var
_FIRST_WEB_IS_LOADED:boolean = false;
procedure T_FXOC_MAIN.TheExoWebTitleChange(Sender: TObject; const Text: WideString);
var
p1,p2:integer;

begin


(*

<!--
$http://aaa.com/
$http://bbb.com/
$http://ccc.com/
$http://eee.com/
$http://fff.com/
$http://ggg.com/
$http://hhh.com/
-->

*)




if (_FIRST_WEB_IS_LOADED=true) then exit;
//ShowMessage('b');

    if (Text='_EXOSEE_V1') then  //a must web title in web !!!
    begin
    _FIRST_WEB_IS_LOADED:=true;

         

          _PublicWebComsList.Text:=TheExoWeb.OleObject.Document.Body.outerhtml;

          //ShowMessage(_PublicWebComsList.Text);

          p1:=pos('<!--',_PublicWebComsList.Text);
          p2:=pos('-->',_PublicWebComsList.Text);


               if (p2>p1) then
               begin
               _PublicWebComsList.Text:=copy(_PublicWebComsList.Text,p1,(p2-p1)+3);
               if (_VV_LOCAL_CONFIG_AUTO_ADD_COMS) then GoFillActualWebPublicComs; // auto add pub coms
               if (_VV_LOCAL_AUTO_NOTIFY_NEW_VERSION) then GoSeeIfNewVersionDetected; // version notify
               end;

      // Application.ProcessMessages;


    end;


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.CoolBar1Resize(Sender: TObject);
begin
if TCoolBar(Sender).HandleAllocated then InvalidateRect(TCoolBar(Sender).Handle, nil, True);
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_comPropesClick(Sender: TObject);
begin

_FCOM_PROPS:=T_FCOM_PROPS.Create(Application);
_FCOM_PROPS.vND:=_eExplorerTV.Selected;
_FCOM_PROPS.ShowModal;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0414_Exit1Click(Sender: TObject);
begin
close;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.eComsXOCsPAGESChange(Sender: TObject);
begin

exit;//

if (_THE_EXOSEE_APPLICATION_IS_TERMINATED) then exit; // bug fix :: access violation when closing

if (eComsXOCsPAGES.ActivePage.Tag=0) then
begin
eComsXOCsPAGES.ActivePage.Tag:=1;
T_FrameXOC(eComsXOCsPAGES.ActivePage.Components[0]).AA_0562_BtnHomeBrowserClick(nil);
end;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.The_PagesDrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
//var
//  s:string;
//   r:TRect;
begin
(*
  s :=ThePages.Pages[TabIndex].Caption;
  r := Rect;

  with Control.Canvas do
  begin

        if Active then
        begin
        Brush.Color := clWindow;
        Font.Color := clHighlight;
        Font.Style:=[fsBold];

        end;

  //Windows.DRAW(
  Windows.FillRect(Handle,Rect,Brush.Handle);
  OffsetRect(r, 4, 0);
  DrawText(Handle, PChar(s), Length(s), r, DT_CENTER or DT_SINGLELINE or DT_VCENTER);
  Draw(4,2,ico_20_xp.Picture.Graphic);
  end;

//  I had to use "IndexOfTabAt(rect.Left+5,rect.Top+5)" to return the correct pageindex
*)
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.bbbsClick(Sender: TObject);
begin
if (The_Pages.Tag=0) then
The_Pages.ActivePageIndex:=TxocCButton(Sender).Tag;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.TabsShow(Sender: TObject);
begin

The_Pages.Tag:=1;

 Case TTabSheet(Sender).TabIndex of
   0 : AA_0501_bbb0.SetAsSELECTED;
   1 : AA_0502_bbb1.SetAsSELECTED;
   2 : AA_0503_bbb2.SetAsSELECTED;
   3 : bbb3.SetAsSELECTED;
   4 : bbb4.SetAsSELECTED;
 end;

The_Pages.Tag:=0;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0608_cccExoSeeWEBClick(Sender: TObject);
begin
_pExoseeWeb.BringToFront;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.TMcomWebKIKerTimer(Sender: TObject);
 begin

TMcomWebKIKer.Enabled:=false;

GoFreeWebTabOfCommunity(TMcomWebKIKer.kwd_id);

end;


//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0530_CButton5Click(Sender: TObject);
begin

_pExoseeHelp.BringToFront;

if (_pExoseeHelp.Tag=0) then
begin
_pExoseeHelp.Tag:=1;
TheExoHELP.Navigate('http://www.exosee.com/?w=support');
end;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.TheExoTitleChange(Sender: TObject; const Text: WideString);
begin
eExoSeePanelsSTAT.Caption:=Text;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_StopComClick(Sender: TObject);
var
_comNODDD:TTreeNode;
_sTrComNAME:String;
v:TListItem;
begin




(*

 set com-stopping  > threads, tek-tek_updater.. user ini ..
 close web
 close xoc-db
 delete childrens
 re-put com in start window !
 delete finally the com node
*)

_comNODDD:=_eExplorerTV.Selected;
if (_comNODDD=nil) then exit;

_sTrComNAME:=_comNODDD.Text;
if (MessageDlg(format(___ccc__0024__SureWantStopCom,[_sTrComNAME]), mtConfirmation,[mbYes,mbNo],0)<>mrYes) then exit;



_comNODDD._EXO_NODE_IS_STOPING:=true;    // set stopping
Application.ProcessMessages;             // to braodcast if any runing thread ot tekUP... about this com
Application.ProcessMessages;
Application.ProcessMessages;


GoFreeWebTabOfCommunity(_sTrComNAME);    // close web
GoFreeXocTabOfCommunity(_sTrComNAME);    // close xoc


      //-------- re-put Item to StartWindow
       v:=_FXOC_START.LvSTART.Items.Add;
       v.Caption:=_sTrComNAME;  // name
       v.ImageIndex:=0;
       v.sava_f:=_comNODDD._EXO_NODE_COM_IDX; //  sava_f has whole com url
       v.uzr_id:=_comNODDD._EXO_NODE_USER_ID; // re-sava pass : Start Box list (uzr_id used as com-pass)
       v.pat_n:='100'; // default first
       v.pat_n[1]:=_comNODDD._EXO_NODE_20BOOLS[11];
       v.pat_n[2]:=_comNODDD._EXO_NODE_20BOOLS[12];
       v.pat_n[3]:=_comNODDD._EXO_NODE_20BOOLS[13];


// finally delete node
_comNODDD.Delete;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ppMainPopup(Sender: TObject);
begin

AA_0404_OnLine1.Checked:=(_VV_LOCAL_USER_ONLINE_STATUS='A');
AA_0405_Away1.Checked:=not AA_0404_OnLine1.Checked;

AA_0407_Tools1.Visible:=(_VV_LOCAL_CONFIG_BANNED_USERS_LIST<>'');

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0404_OnLine1Click(Sender: TObject);
begin

TMenuItem(Sender).Checked:=true;
if (AA_0404_OnLine1.Checked) then _VV_LOCAL_USER_ONLINE_STATUS:='A'
else _VV_LOCAL_USER_ONLINE_STATUS:='0';

iko_1.Visible:=AA_0404_OnLine1.Checked;
iko_0.Visible:=not iko_1.Visible;

if (iko_1.Visible) then eeOnStata.Caption:=___ccc__0001__Online else eeOnStata.Caption:=___ccc__0002__Away;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0406_SetAWAYmsgClick(Sender: TObject);
var
s:string;
begin

s:=_VV_LOCAL_USER_NOT_ONLINE_MESSAGE;
if (InputQuery(___ccc__0025__AutoReplyMsg,___ccc__0026__SetPersonalMsq,s)) then
begin
_VV_LOCAL_USER_NOT_ONLINE_MESSAGE:=s;
_FXOC_SETTINGS.eeAwayMsg.Text:=_VV_LOCAL_USER_NOT_ONLINE_MESSAGE;
end;


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_add2FavsClick(Sender: TObject);
var
_Str:string;
uZNode,_NewFAVuz:TTreeNode;
begin

// 1C080B2CD3xxA01000000%1Ismail%2F:\_Pc-Set\_Drivers%3
uZNode:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD);
_Str:=uZNode._EXO_NODE_USER_ID+'00'+'A'+'00000000'+'%1'+uZNode.Text+'%2%3';



            _NewFAVuz:=_eExplorerTV.Items.AddChild(_TV_NODE_OF_FAVORITES,uZNode.Text);
            _NewFAVuz.ImageIndex           :=uZNode.ImageIndex;
            _NewFAVuz._EXO_NODE_USER_IP    :=uZNode._EXO_NODE_USER_IP;
            _NewFAVuz._EXO_NODE_COUNTRY    :=uZNode._EXO_NODE_COUNTRY;
            _NewFAVuz._EXO_NODE_MESSAGE    :=uZNode._EXO_NODE_MESSAGE;
            _NewFAVuz._EXO_NODE_USER_ID    :=uZNode._EXO_NODE_USER_ID;
            _NewFAVuz._EXO_NODE_COM_IDX    :=_Str; // com idx of user used as FAV-CODE
            //_zono._EXO_NODE_POZISIO  :=92;
            _NewFAVuz._EXO_NODE_UZR_GMT    :=uZNode._EXO_NODE_UZR_GMT;
            //_zono._EXO_NODE_UZR_ICO  :=strtointdef('$'+logo,0);
            //if im=2 then v._EXO_NODE_POZISIO:=93;
            _NewFAVuz._EXO_NODE_20BOOLS   :=uZNode._EXO_NODE_20BOOLS; // add user-boolz
            _NewFAVuz._EXO_NODE_X_LEVEL   :='M';       // set level as active

            _NewFAVuz._EXO_NODE_PATH_NB   :='00';// hexa roots
            _NewFAVuz._EXO_NODE_PATH_TX   :='\';// roots
            _NewFAVuz._EXO_NODE_XP_TYPE   :='*';// just a fill
            _NewFAVuz._EXO_NODE_ROOT_HD   :=_NewFAVuz.ItemId; // fixed  to self


TExoSeeSettings._add_fav(_Str);

_TV_NODE_OF_FAVORITES.Expand(false);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_delfavClick(Sender: TObject);
var
dd:string;
begin

// grab Fav-Code
dd:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD)._EXO_NODE_COM_IDX;
dd:=copy(dd,1,10);
TExoSeeSettings._del_fav(dd); // del_fav will del also from the favList
_eExplorerTV.Selected.Delete;
//ShowMessage(dd);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_zundFileClick(Sender: TObject);
var
fSNF : T_FZendFile;
begin

if not(_eExplorerTV.Selected._EXO_NODE_X_LEVEL in ['Z','M']) then exit;

if not opn.Execute then exit;

fSNF:=T_FZendFile.Create(Application);
fSNF.__sToNick:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD).Text;
fSNF.__sToIP:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD)._EXO_NODE_USER_IP;
fSNF.__sFullFile:=opn.FileName;
fSNF.Show;


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.GoOnlineClick(Sender: TObject);
begin
ShellExecute(0,'open',pchar(TMenuItem(Sender).Hint),nil,nil,SW_SHOWNORMAL);
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.OnStatsDblClick(Sender: TObject);
begin

iko_1.Visible:=not iko_1.Visible;  // set opposit
iko_0.Visible:=not iko_1.Visible;

if (iko_1.Visible) then eeOnStata.Caption:=___ccc__0001__Online else eeOnStata.Caption:=___ccc__0002__Away;
if (iko_1.Visible) then _VV_LOCAL_USER_ONLINE_STATUS:='A' else _VV_LOCAL_USER_ONLINE_STATUS:='0';


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_zundFolderClick(Sender: TObject);
begin
ShowMessage('"Send-Folder" feature, is not yet enabled in this version');
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.TmVersionNOTIFYTimer(Sender: TObject);
begin

TmVersionNOTIFY.Enabled:=false; //only once !
MessageDlg(format('%s : v%s.%s.%s',[___ccc__0530__NewVersionAvailable,
                                    _NEW_VERSION_STRING[1],
                                    _NEW_VERSION_STRING[2],
                                    _NEW_VERSION_STRING[3]])
                                    ,mtInformation,[mbOK],0);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0430_OpnFolderClick(Sender: TObject);
var
NDD:TTreeNode;
begin

NDD:=_eExplorerTV.Selected;
if (NDD=nil) then exit;


//ShowMessage(NDD._EXO_NODE_PATH_NB+ret+ NDD._EXO_NODE_PATH_TX);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_adminBanClick(Sender: TObject);
var
NDD:TTreeNode;
begin

if (_eExplorerTV.Selected=nil) then exit;

NDD:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD);  // direct user node
if (NDD=nil) then exit;

 if (MessageDlg(format(___ccc__0108__SureWantToBan,[NDD.text]),mtConfirmation,[mbYes,mbNo],0)=mrYes) then
 begin

     if (ccBannector.Active) then
     begin
     ShowMessage(___ccc__0077__ConnexAreadyInUse);
     exit;
     end;

 ccBannector.Host_name         :=NDD.Parent._EXO_NODE_USER_IP;
 ccBannector.Port              :=NDD.Parent._EXO_NODE_eSERIAL; // auto set in login
 ccBannector.Socket._ReferNode :=NDD.Parent; // com
 ccBannector.Socket._str_ref   :='e=_T7&_BN='+NDD._EXO_NODE_USER_ID+'&_SN='+_VV_LOCAL_USER_PC_ID;  // params (&_SN=SenderID)future
 ccBannector.Socket._StokenStr :='';  // free data if any
 ccBannector.Tag               :=0; // data length
 ccBannector.Active            :=true;

 end;

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ccBannectorConnect(Sender: TObject; Socket: TCustomWinSocket);
var
ss:string;
begin


        ss:='GET '+Socket._ReferNode._EXO_NODE_PATH_TX+'?'+Socket._str_ref+' HTTP/1.0'+ret+
            'User-Agent: '+_C_EXOSEE_WEB_TEK_USER_MERDA+ret+
            'Host: '+Socket._ReferNode._EXO_NODE_USER_IP+ret+
            'Connection: close'+ret+ret;
           

Socket.SendText(ss);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ccBannectorError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ErrorCode:=0;
Socket.Close; // to  trigger OnDisconnect
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ccBannectorRead(Sender: TObject;Socket: TCustomWinSocket);
begin
Socket._StokenStr:=Socket._StokenStr+Socket.ReceiveText;
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.ccBannectorDisconnect(Sender: TObject; Socket: TCustomWinSocket);
var
_StrDATA:String;
begin

_StrDATA:=Socket._StokenStr;

   if pos('_SC_701',_StrDATA)>0 then
   begin
   if (pos('°°1',_StrDATA)>0)
   then ShowMessage(___ccc__0109__BanOkAtCom)
   else ShowMessage('ServerScriptError_OnBAN !');
   end;

//_DoDebugLOG('BanSyS:'+ret+_StrDATA);

end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_infoUserClick(Sender: TObject);
var
uzNode:TTreeNode;
begin



if not(_eExplorerTV.Selected._EXO_NODE_X_LEVEL in ['Z','M']) then exit;

uzNode:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD);


MessageDlg(___ccc__0518__UserInfo+' : '+uzNode.Text+ret+
            sep+ret+
            uzNode._EXO_NODE_MESSAGE+ret+
            sep+ret+
            ___ccc__0007__Country+uzNode._EXO_NODE_COUNTRY+ret+
            format('Version : %s.%s.%s',[uzNode._EXO_NODE_20BOOLS[3],
                                         uzNode._EXO_NODE_20BOOLS[4],
                                         uzNode._EXO_NODE_20BOOLS[5]]), mtInformation,[mbOk],0);


end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN._mn_RemUserClick(Sender: TObject);
var
NDD:TTreeNode;
begin

if (_eExplorerTV.Selected=nil) then exit;

NDD:=_eExplorerTV.Items.getnode(_eExplorerTV.Selected._EXO_NODE_ROOT_HD);  // direct user node
if (NDD=nil) then exit;

 if (MessageDlg(format(___ccc__0110__SureWantToBanUser,[NDD.text]),mtConfirmation,[mbYes,mbNo],0)=mrYes) then
 begin
 _VV_LOCAL_CONFIG_BANNED_USERS_LIST:=_VV_LOCAL_CONFIG_BANNED_USERS_LIST+NDD._EXO_NODE_USER_ID+';';

 NDD.Delete;
 end;
                     //register com://
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.clearbannedClick(Sender: TObject);
begin
_VV_LOCAL_CONFIG_BANNED_USERS_LIST:='';
end;

//------------------------------------------------------------------------------
procedure T_FXOC_MAIN.AA_0433_IconsHelpClick(Sender: TObject);
begin

 with T_FXOC_ICONS_HELP.Create(Application) do
 begin
 Caption:=TMenuItem(Sender).Caption;
 Caption:=StringReplace(Caption,'&','',[rfReplaceAll]);
 Show;
 end;

end;

initialization



para:=paramstr(1);
CreateMutex(nil,True,'ExoSeeV1');

      if GetLastError = ERROR_ALREADY_EXISTS then
      begin
                 if (para='') then
                 begin
                 hawa:=FindWindow('T_FXOC_MAIN','ExoSee');
                 if (hawa<>0) then _zend_msg('FlashYA',hawa,702); // to flash existing app
                 end
                 else
                 begin
                 hawa:=FindWindow('T_FXOC_MAIN','ExoSee');
                 if (hawa<>0)and(para ='xoc') then _zend_msg(paramstr(2),hawa,701);
                 end;
      halt;
      end;



end.





../delphi71code/exosee-code-source/unit1-pas..