{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% osCommerce Product Manager for Windows (oscpmwin). Copyright ©2003,2004,2005 by Mario A. Valdez-Ramirez. You can contact Mario A. Valdez-Ramirez by email at mario@mariovaldez.org or paper mail at Olmos 809, San Nicolas, NL. 66495, Mexico. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} unit oscpmdata; interface USES Windows, Forms, Controls, Classes, SysUtils, ComCtrls; CONST opmC_FindByID = 1; opmC_FindByIndex = 2; opmC_FindByNode = 3; opmC_SQLSelect = 0; opmC_SQLInsert = 1; opmC_SQLUpdate = 2; opmC_SQLDelete = 3; opmC_SQLDelIns = 4; opmC_SQLDelInsNoZero = 5; opmC_ImageDontExist = 0; opmC_ImageMayExist = 1; opmC_ImageExists = 2; opmC_ImageIsEmpty = 3; opmC_ImageIsCorrupt = 4; opmC_ImageIsBeingProcessed = 5; opmC_ConnStatNo = 0; opmC_ConnStatYes = 1; opmC_ConnStatUnknown = 2; opmC_ConnStatYesSSH = 3; opmC_ConnStatIgnore = -1; opmC_ProgressNone = 0; opmC_ProgressIgnore = -1; opmC_PTotalIgnore = -1; opmC_SearchIgnore = 0; opmC_SearchNo = 1; opmC_SearchYes = 2; opmC_SQLBackends = 'mysql-3.20'#13#10'mysql-3.23'#13#10'mysql-4.0'; opmC_AppName1 = 'osCommerce Product Manager'; opmC_AppName2 = 'for Windows'; opmC_AppShortName = 'oscpmwin'; opmC_Version = '0.1.1'; opmC_Homepage = 'http://www.mariovaldez.net/software/oscpmwin/'; opmC_Copyright = 'Copyright 2003, 2004, 2005 by Mario A. Valdez-Ramirez'; opmC_Email = 'mario@mariovaldez.org'; opmC_EmailURL = 'mailto:mario@mariovaldez.org'; opmC_OSCAppName = 'osCommerce 2.2'; opmC_OSCHomepage = 'http://www.oscommerce.com/'; opmC_OSCCopyright = 'by Harald Ponce de León'; opmC_UserAgent = opmC_AppShortName + '/' + opmC_Version; opmC_Def_Host = 'localhost'; opmC_CheckUpdates_URL = 'http://www.mariovaldez.net/software/oscpmwin/checkupdates.php'; opmC_Max_Products_PerList = 35000; opmC_Max_Descriptions_PerList = 700000; opmC_Max_Languages_PerList = 20; opmC_Max_Categories_PerList = 5000; opmC_Max_Menufacturers_PerList = 5000; opmC_Max_Taxes_PerList = 150; opmC_Def_Port = 3306; opmC_Def_Protocol = 'mysql-3.23'; opmC_Def_Database = 'catalog'; opmC_Def_Username = 'root'; opmC_Def_Password = 'root'; opmC_Def_ImgURL = 'http://localhost/catalog/images/'; opmC_Def_UploadURL = 'http://localhost/catalog/oscpm1_upload.php'; opmC_Def_ProxyHost = 'proxy'; opmC_Def_ProxyPort = 3128; opmC_Def_DBConnWait = 1000; opmC_Def_ModConnWait = 1000; opmC_Def_SSHConnWait = 5000; opmC_Def_DBConnRetries = 3; opmC_Def_ModConnRetries = 5; opmC_Def_ImgX = 200; opmC_Def_ImgY = 250; opmC_Def_ImgQ = 50; opmC_Def_PaddingColor = 16777215; opmC_Min_Port = 1; opmC_Max_Port = 65535; opmC_Min_ProxyPort = 1; opmC_Max_ProxyPort = 65535; opmC_Min_DBConnWait = 1000; opmC_Max_DBConnWait = 60000; opmC_Min_ModConnWait = 1000; opmC_Max_ModConnWait = 60000; opmC_Min_SSHConnWait = 1000; opmC_Max_SSHConnWait = 60000; opmC_Min_DBConnRetries = 1; opmC_Max_DBConnRetries = 50; opmC_Min_ModConnRetries = 1; opmC_Max_ModConnRetries = 50; opmC_Min_ImgX = 20; opmC_Max_ImgX = 1024; opmC_Min_ImgY = 20; opmC_Max_ImgY = 1024; opmC_Min_ImgQ = 0; opmC_Max_ImgQ = 100; opmC_RootCategory = 'Catalog'; opmC_DefWindow_XSize = 1016; opmC_MinWindow_XSize = 300; opmC_MaxWindow_XSize = 2000; opmC_DefWindow_YSize = 600; opmC_MinWindow_YSize = 200; opmC_MaxWindow_YSize = 2000; opmC_DefPWindow_XSize = 500; opmC_MinPWindow_XSize = 500; opmC_MaxPWindow_XSize = 2000; opmC_DefPWindow_YSize = 500; opmC_MinPWindow_YSize = 500; opmC_MaxPWindow_YSize = 2000; opmC_DefCatList_Size = 200; opmC_MinCatList_Size = 50; opmC_MaxCatList_Size = 500; opmC_DefGauge_Size = 150; opmC_DefCurPan_Size = 40; opmC_DefMemPan_Size = 100; opmC_Def_DisplayLang = 1; opmC_Def_Col0X = 25; opmC_Def_Col1X = 40; opmC_Def_Col2X = 85; opmC_Def_Col3X = 90; opmC_Def_Col4X = 200; opmC_Def_Col5X = 100; opmC_Def_Col6X = 32; opmC_Def_Col7X = 76; opmC_Def_Col8X = 32; opmC_Def_Col9X = 100; opmC_Def_Col10X = 20; opmC_Def_Col20X = 110; opmC_Def_Col21X = 110; opmC_Def_Col22X = 110; opmC_MinColX = 25; opmC_Def_Col0Align = taLeftJustify; opmC_Def_Col1Align = taRightJustify; opmC_Def_Col2Align = taLeftJustify; opmC_Def_Col3Align = taLeftJustify; opmC_Def_Col4Align = taLeftJustify; opmC_Def_Col5Align = taLeftJustify; opmC_Def_Col6Align = taRightJustify; opmC_Def_Col7Align = taRightJustify; opmC_Def_Col8Align = taRightJustify; opmC_Def_Col9Align = taLeftJustify; opmC_Def_Col10Align = taCenter; opmC_Def_Col20Align = taLeftJustify; opmC_Def_Col21Align = taLeftJustify; opmC_Def_Col22Align = taLeftJustify; opmC_Def_RememberDisplay = 1; opmC_Def_HotTracking = 0; opmC_Def_Autoload = 1; opmC_Def_DragDrop = 0; opmC_Def_ImgDragDrop = 0; opmC_Def_ToolTips = 1; opmC_Def_Compress = 1; opmC_Def_UseProxy = 0; opmC_Def_ProxyApply = 0; opmC_Def_UseSSH = 0; opmC_Def_SSHExe = 'plink.exe'; opmC_Def_SSHUsername = 'sshtunnel'; opmC_Def_SSHPassword = 'tunnel'; opmC_Def_SSHLocalHost = '127.0.0.1'; opmC_Def_SSHLocalPort = 3306; opmC_Def_SSHCompress = 1; opmC_Def_SSHProtocol = 2; opmC_Def_StorePass = 1; opmC_Def_Silent = 0; opmC_Def_ConfirmDels = 1; opmC_Def_ConfirmDrag = 0; opmC_Def_ConfirmMods = 0; opmC_Def_AllowZeroPrice = 0; opmC_Def_AllowEditImageName = 0; opmC_Def_AllowNegativeQuantity = 0; opmC_Def_AutoDownImg = 0; opmC_Def_NoCacheImg = 0; opmC_Def_ResizeImg = 1; opmC_Def_PaddingImg = 1; opmC_Def_KeepARImg = 1; opmC_Def_SmartRename = 1; opmC_Def_ConfirmExit = 1; opmC_Def_DBDebugLog = 0; opmC_Def_DBDebug = 0; opmC_Def_SSHDebug = 0; opmC_Def_WBDebug = 0; opmC_Def_GUILang = 'en'; opmC_DBUsername_MaxLen = 128; opmC_DBPassword_MaxLen = 128; opmC_SSHUsername_MaxLen = 128; opmC_SSHPassword_MaxLen = 128; opmC_ProdModel_MaxLen = 25; opmC_ProdName_MaxLen = 64; opmC_ProdWeight_MaxLen = 8; opmC_ProdPrice_MaxLen = 18; opmC_ProdQuantity_MaxLen = 16; opmC_ProdURL_MaxLen = 255; opmC_ProdImageURL_MaxLen = 64; opmC_ProdDescription_MaxLen = 32000; opmC_ProdSpecial_MaxLen = 18; opmC_CatName_MaxLen = 32; opmC_LangName_MaxLen = 32; opmC_ManName_MaxLen = 32; opmC_CatList_Spacer = ' '; opmC_Bevel_Size = 2; opmC_Wait_Mouse = crHourGlass; opmC_Normal_Mouse = crDefault; opmC_MaxPast_Servers = 10; opmC_MaxPast_Usernames = 10; opmC_MaxPast_SSHUsernames = 10; opmC_MaxPast_Databases = 10; opmC_MaxPast_ImgURL = 10; opmC_MaxPast_UploadURL = 10; opmC_MaxPast_Proxy = 10; opmC_Unamed_Cat = '- - - - - - - -'; opmC_Unamed_Man = '- - - - - - - -'; opmC_Unamed_Prod = '- - - - - - - -'; opmC_Unamed_Tax = '- - - - - - - -'; opmC_Def_ExportExt = 'txt'; opmC_Def_ExportFilename = 'export_products.txt'; opmC_Def_ExportFilter = '*.txt;*.csv;*.tab'; opmC_Def_ImportExt = 'txt'; opmC_Def_ImportFilename = 'import_products.txt'; opmC_Def_ImportFilter = '*.txt;*.csv;*.tab'; opmC_ExportSeparator = #9; opmC_ExportJSeparator = ' | '; opmC_ExportJHSeparator = '-'; opmC_PasswordChar = '*'; opmC_WebScriptVersion = '0.1.9'; opmC_WebScriptOKCode = 'OK'; opmC_WebScriptBadVerCode = 'ERROR WRONG SCRIPT VERSION'; opmC_InsertProdID = 999999; opmC_MaxMemoryLoad = 90; opmC_DefaultFont = 'Arial'; opmC_DefaultFontHeight = -11; opmC_DefaultFontCharset = DEFAULT_CHARSET; opmC_DefaultFontStyle = []; opmC_Min_FontHeight = 6; opmC_Max_FontHeight = 100; opmC_Def_Clip_ColSize = 30; opmC_Min_Clip_ColSize = 3; opmC_Max_Clip_ColSize = 400; opmC_Def_PRNDirectPrint = 0; opmC_PrintTitle_Separator = '-'; opmC_MiliSecIncrement = 1000; opmC_Def_DBTable_Categories = 'categories'; opmC_Def_DBTable_Manufacturers = 'manufacturers'; opmC_Def_DBTable_Languages = 'languages'; opmC_Def_DBTable_Products = 'products'; opmC_Def_DBTable_Specials = 'specials'; opmC_Def_DBTable_ProductsDescription = 'products_description'; opmC_Def_DBTable_TaxClass = 'tax_class'; opmC_Def_DBTable_Currencies = 'currencies'; opmC_Def_DBTable_Configuration = 'configuration'; opmC_Def_DBTable_ProductsToCategories = 'products_to_categories'; opmC_Def_DBTable_CategoriesDescription = 'categories_description'; opmC_Def_DBTable_TaxRates = 'tax_rates'; opmC_Def_DBTable_ManufacturersInfo = 'manufacturers_info'; opmC_DebugFile = 'OSCDEBUG.TXT'; opmC_DebugFileSeparator = '======================================'; opmC_Def_PDate = 36161; {01/01/1999} opmC_Max_PDate = 44196; {31/12/2020} opmC_Min_PDate = 29221; {01/01/1980} opmC_PDate_Format = 'yyyy-MM-dd'; opmC_Def_Past_PAvailDate = opmC_Def_PDate; opmC_Def_Past_PManufacturer = 0; opmC_Def_Past_PTaxClass = 0; opmC_Def_Past_PImageDir = ''; opmC_DirReports = 'reports'; opmC_Report_ProdList1 = 'prodlist1.frf'; opmC_Def_ReportExt = 'frf'; opmC_ETABitrates = '28 kbps (dialup)'#13#10'56 kbps (dialup)'#13#10'64 kbps (ISDN)'#13#10'128 kbps (ISDN, ADSL, Cable)'#13#10'256 kbps (ADSL, Cable)'#13#10'512 kbps (ADSL, Cable)'#13#10'1500 kbps (ADSL, Cable, LAN)'; opmC_Def_ETABase = '28'; opmC_SC_Parent = 9999999; opmC_SC_BaseID = 10000000; opmC_SC_TrashCanID = 10000001; opmC_SC_TrashCanIndex = 10000001; opmC_Capa_OSCommerce = 'OSCSTANDARD'; opmC_Capa_MorePics6 = 'MOREPICS6'; opmC_Capa_TotalB2B = 'TOTALB2B'; opmC_Capa_PollBooth = 'POLLBOOTH'; opmC_Capa_HeaderTags = 'HEADERTAGS'; opmC_DirBackups = 'backups'; opmC_Def_BackupExt = 'gz'; opmC_Def_BackupFilename = ''; opmC_Def_BackupFilter = '*.gz'; opmC_TmpBak_Filename = 'oscpmtmp.bak'; TYPE opmR_Category = RECORD ID : LONGINT; Parent : LONGINT; Name : STRING; TreeIndex : LONGINT; ListIndex : LONGINT; END; opmR_SingleCategory = RECORD ID : LONGINT; Parent : LONGINT; Name : STRING; LanguageID : LONGINT; END; opmR_Manufacturer = RECORD ID : LONGINT; Name : STRING; ListIndex : LONGINT; END; opmR_Language = RECORD ID : LONGINT; Name : STRING; ListIndex : LONGINT; END; opmR_Product = RECORD ID : LONGINT; Model : STRING; Quantity : LONGINT; Price : CURRENCY; Weight : REAL; ManufacturerID : LONGINT; CategoryID : LONGINT; DisplayName : STRING; ImageURL : STRING; Available : LONGINT; Special : CURRENCY; LanguageID : LONGINT; Tax : LONGINT; AvailDate : TDateTime; CreationDate : TDateTime; ChangeDate : TDateTime; ImageURL1, ImageURL2, ImageURL3, ImageURL4, ImageURL5, ImageURL6 : STRING; END; opmR_Description = RECORD ID : LONGINT; Name : STRING; Description : STRING; URL : STRING; LanguageID : LONGINT; Viewed : LONGINT; END; opmR_Tax = RECORD ID : LONGINT; Name : STRING; ListIndex : LONGINT; SumRate : REAL; END; opmR_Currency = RECORD Code : STRING; Left : STRING; Right : STRING; END; opmT_CategoryList = ARRAY [0..opmC_Max_Categories_PerList] OF opmR_Category; opmT_ManufacturerList = ARRAY [0..opmC_Max_Menufacturers_PerList] OF opmR_Manufacturer; opmT_LanguageList = ARRAY [0..opmC_Max_Languages_PerList] OF opmR_Language; opmT_ProductList = ARRAY [0..opmC_Max_Products_PerList] OF opmR_Product; opmT_DescriptionList = ARRAY [0..opmC_Max_Descriptions_PerList] OF opmR_Description; opmT_TaxList = ARRAY [0..opmC_Max_Taxes_PerList] OF opmR_Tax; opmT_SingleDescList = ARRAY [0..opmC_Max_Languages_PerList] OF opmR_Description; opmT_CurPosDescList = ARRAY [0..opmC_Max_Languages_PerList] OF INTEGER; opmT_CharsetList = ARRAY [0..255] OF STRING; opmT_SingleCatList = ARRAY [0..opmC_Max_Languages_PerList] OF opmR_SingleCategory; VAR opmG_TMPPath : STRING; opmG_DBHost : STRING; opmG_DBPort : LONGINT; opmG_DBProtocol : STRING; opmG_ETABase : LONGINT; opmG_DBDatabase : STRING; opmG_DBUsername : STRING; opmG_DBPassword : STRING; opmG_WBImgURL : STRING; opmG_WBUploadURL : STRING; opmG_WBProxyHost : STRING; opmG_WBProxyPort : LONGINT; opmG_DBConnWait : LONGINT; opmG_ModConnWait : LONGINT; opmG_SSHConnWait : LONGINT; opmG_DBConnRetries : LONGINT; opmG_ModConnRetries : LONGINT; opmG_WBImgX : LONGINT; opmG_WBImgY : LONGINT; opmG_WBImgQ : LONGINT; opmG_WBPaddingColor : LONGINT; opmG_UIWindow_XSize : LONGINT; opmG_UIWindow_YSize : LONGINT; opmG_UICatList_XSize : LONGINT; opmG_UICol0X, opmG_UICol1X, opmG_UICol2X, opmG_UICol3X, opmG_UICol4X, opmG_UICol5X, opmG_UICol6X, opmG_UICol7X, opmG_UICol8X, opmG_UICol9X, opmG_UICol10X : LONGINT; opmG_UICol20X, opmG_UICol21X, opmG_UICol22X : LONGINT; opmG_UIRememberDisplay : WORD; opmG_UIHotTracking : WORD; opmG_UIClickLoad : WORD; opmG_UIDragDrop : WORD; opmG_UIImgDragDrop : WORD; opmG_UIToolTips : WORD; opmG_DBCompress : WORD; opmG_UseProxy : WORD; opmG_ProxyApply : WORD; opmG_UseSSH : WORD; opmG_SSHUsername : STRING; opmG_SSHPassword : STRING; opmG_SSHLocalPort : WORD; opmG_DBStorePass : WORD; opmG_UISilent : WORD; opmG_UIConfirmDels : WORD; opmG_UIConfirmDrag : WORD; opmG_UIConfirmMods : WORD; opmG_UIAllowZeroPrice : WORD; opmG_UIAllowEditImageName : WORD; opmG_UIAllowNegativeQuantity : WORD; opmG_UIAutoDownImg : WORD; opmG_WBNoCacheImg : WORD; opmG_WBResizeImg : WORD; opmG_WBPaddingImg : WORD; opmG_WBKeepARImg : WORD; opmG_WBSmartRename : WORD; opmG_UIConfirmExit : WORD; opmG_DBDebugLog : WORD; opmG_UIDBDebug : WORD; opmG_UISSHDebug : WORD; opmG_UIWBDebug : WORD; opmG_UIGUILang : STRING; opmG_Past_PAvailDate : LONGINT; opmG_Past_PManufacturer : LONGINT; opmG_Past_PTaxClass : LONGINT; opmG_Past_PImageDir : STRING; opmG_PastHost_BoxList : TStringList; opmG_PastDatabase_BoxList : TStringList; opmG_PastUsername_BoxList : TStringList; opmG_PastSSHUsername_BoxList : TStringList; opmG_PastImgURL_BoxList : TStringList; opmG_PastUploadURL_BoxList : TStringList; opmG_PastProxy_BoxList : TStringList; opmG_CategoryList : opmT_CategoryList; opmG_ManufacturerList : opmT_ManufacturerList; opmG_LanguageList : opmT_LanguageList; opmG_ProductList : opmT_ProductList; opmG_DescriptionList : opmT_DescriptionList; opmG_TaxList : opmT_TaxList; opmG_CategoryBoxList : TStringList; opmG_ManufacturerBoxList : TStringList; opmG_LanguageBoxList : TStringList; opmG_TaxBoxList : TStringList; opm_TotalCategories : LONGINT; opm_TotalManufacturers : LONGINT; opm_TotalLanguages : LONGINT; opm_TotalProducts : LONGINT; opm_TotalTaxes : LONGINT; opm_CurrentLang : LONGINT; opm_CurrentCategory : LONGINT; opm_CurrentMan : LONGINT; opm_CurrentProdID : LONGINT; opm_CurrentProdRecord : opmR_Product; opm_CurrentSingleDescList : opmT_SingleDescList; opm_CurrentPEditRecord : opmR_Product; opm_CurrentLangRecord : opmR_Language; opm_CurrentCatRecord : opmR_Category; opm_CurrentManRecord : opmR_Manufacturer; opm_CurrentTaxRecord : opmR_Tax; opm_CurrentCurrency : opmR_Currency; opm_Search_PCategory : LONGINT; opm_Search_PManufacturer : LONGINT; opm_Search_PModel, opm_Search_PName, opm_Search_PDesc : STRING; opm_Search_PSPrice, opm_Search_PImagURL, opm_Search_PAvailable : LONGINT; opm_CanExpandTree_Flag : BOOLEAN; opm_WeAreSearching : BOOLEAN; opm_WeAreConnected : BOOLEAN; opmG_RightClickTreeBug : BOOLEAN; opmG_UIFontName : STRING; opmG_UIFontHeight : LONGINT; opmG_UIFontCharset : LONGINT; opmG_CharsetList : opmT_CharsetList; opmG_Clip_ColSize : LONGINT; opmG_PRNDirectPrint : WORD; opmG_DBTable_Categories : STRING; opmG_DBTable_Manufacturers : STRING; opmG_DBTable_Languages : STRING; opmG_DBTable_Products : STRING; opmG_DBTable_Specials : STRING; opmG_DBTable_ProductsDescription : STRING; opmG_DBTable_TaxClass : STRING; opmG_DBTable_Currencies : STRING; opmG_DBTable_Configuration : STRING; opmG_DBTable_ProductsToCategories : STRING; opmG_DBTable_CategoriesDescription : STRING; opmG_DBTable_TaxRates : STRING; opmG_DBTable_ManufacturersInfo : STRING; opmG_PList_LastOrderColumn : LONGINT; opmG_PList_LastOrderType : BOOLEAN; opmG_Cur_PPrintID : LONGINT; opmG_Cur_PPrintRecord : opmR_Product; opmG_Cur_PrintListItem : TListItem; opmG_Cur_PPrintEOF : BOOLEAN; opmG_Cur_PPrintTitle : STRING; opmG_Cur_PPrintTitle2 : STRING; opmG_Capa_MorePics6 : BOOLEAN; opmG_Capa_TotalB2B : BOOLEAN; opmG_Capa_PollBooth : BOOLEAN; opmG_Capa_HeaderTags : BOOLEAN; IMPLEMENTATION INITIALIZATION opmG_CategoryBoxList := TStringList.Create; opmG_ManufacturerBoxList := TStringList.Create; opmG_LanguageBoxList := TStringList.Create; opmG_TaxBoxList := TStringList.Create; opmG_PastHost_BoxList := TStringList.Create; opmG_PastDatabase_BoxList := TStringList.Create; opmG_PastUsername_BoxList := TStringList.Create; opmG_PastSSHUsername_BoxList := TStringList.Create; opmG_PastImgURL_BoxList := TStringList.Create; opmG_PastUploadURL_BoxList := TStringList.Create; opmG_PastProxy_BoxList := TStringList.Create; DateSeparator := '-'; ShortDateFormat := 'yyyy/mm/dd'; DecimalSeparator := '.'; ThousandSeparator := ','; opmG_RightClickTreeBug := FALSE; opmG_CharsetList[0] := 'ansi'; opmG_CharsetList[1] := 'default'; opmG_CharsetList[2] := 'symbol'; opmG_CharsetList[77] := 'mac'; opmG_CharsetList[128] := 'shiftjis'; opmG_CharsetList[129] := 'hangeul'; opmG_CharsetList[130] := 'johab'; opmG_CharsetList[134] := 'gb2312'; opmG_CharsetList[136] := 'chinesebig5'; opmG_CharsetList[161] := 'greek'; opmG_CharsetList[162] := 'turkish'; opmG_CharsetList[163] := 'vietnamese'; opmG_CharsetList[177] := 'hebrew'; opmG_CharsetList[178] := 'arabic'; opmG_CharsetList[186] := 'baltic'; opmG_CharsetList[204] := 'russian'; opmG_CharsetList[222] := 'thai'; opmG_CharsetList[238] := 'easteurope'; opmG_CharsetList[255] := 'oem'; FINALIZATION FreeAndNIL (opmG_CategoryBoxList); FreeAndNIL (opmG_ManufacturerBoxList); FreeAndNIL (opmG_LanguageBoxList); FreeAndNIL (opmG_TaxBoxList); FreeAndNIL (opmG_PastHost_BoxList); FreeAndNIL (opmG_PastDatabase_BoxList); FreeAndNIL (opmG_PastUsername_BoxList); FreeAndNIL (opmG_PastSSHUsername_BoxList); FreeAndNIL (opmG_PastImgURL_BoxList); FreeAndNIL (opmG_PastUploadURL_BoxList); FreeAndNIL (opmG_PastProxy_BoxList); end.