/* code was generated by Emperor */

#define CATCOMP_NUMBERS
#define CATCOMP_STRINGS
#define ALL_REACTION_CLASSES
#define ALL_REACTION_MACROS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <clib/alib_protos.h>
#include <clib/asl_protos.h>
#include <clib/dos_protos.h>
#include <clib/exec_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#include <clib/intuition_protos.h>
#include <clib/locale_protos.h>
#include <clib/resource_protos.h>
#include <clib/utility_protos.h>
#include <clib/chooser_protos.h>
#include <clib/datebrowser_protos.h>
#include <clib/texteditor_protos.h>
#include <intuition/gadgetclass.h>
#include <intuition/icclass.h>
#include <intuition/imageclass.h>
#include <reaction/reaction.h>
#include <workbench/startup.h>
#include <wbstartup.h>
#include <gadgets/texteditor.h>
#define INTUITIONLIBRARY "intuition.library"
#define LOCALELIBRARY "locale.library"
#define GADTOOLSLIBRARY "gadtools.library"
#define ASLLIBRARY "asl.library"
#define DOSLIBRARY "dos.library"
#define RESOURCELIBRARY "resource.library"
#define WINDOWCLASSLIB "window.class"
#define REQUESTERCLASSLIB "requester.class"
#define LABELIMAGELIB "images/label.image"
#define BUTTONGADGETLIB "gadgets/button.gadget"
#define CHECKBOXGADGETLIB "gadgets/checkbox.gadget"
#define CHOOSERGADGETLIB "gadgets/chooser.gadget"
#define CLICKTABGADGETLIB "gadgets/clicktab.gadget"
#define COLORWHEELGADGETLIB "gadgets/colorwheel.gadget"
#define DATEBROWSERGADGETLIB "gadgets/datebrowser.gadget"
#define FUELGAUGEGADGETLIB "gadgets/fuelgauge.gadget"
#define GETFILEGADGETLIB "gadgets/getfile.gadget"
#define GETFONTGADGETLIB "gadgets/getfont.gadget"
#define GETSCREENMODEGADGETLIB "gadgets/getscreenmode.gadget"
#define GRADIENTSLIDERGADGETLIB "gadgets/gradientslider.gadget"
#define INTEGERGADGETLIB "gadgets/integer.gadget"
#define LAYOUTGADGETLIB "gadgets/layout.gadget"
#define LISTBROWSERGADGETLIB "gadgets/listbrowser.gadget"
#define PALETTEGADGETLIB "gadgets/palette.gadget"
#define RADIOBUTTONGADGETLIB "gadgets/radiobutton.gadget"
#define SCROLLERGADGETLIB "gadgets/scroller.gadget"
#define SLIDERGADGETLIB "gadgets/slider.gadget"
#define SPACEGADGETLIB "gadgets/space.gadget"
#define SPEEDBARGADGETLIB "gadgets/speedbar.gadget"
#define STRINGGADGETLIB "gadgets/string.gadget"
#define TAPEDECKGADGETLIB "gadgets/tapedeck.gadget"
#define TEXTEDITORGADGETLIB "gadgets/texteditor.gadget"
#define LOCALE_REQUEST_INITIALIZATIONERROR_TITLE GetCatalogStr(Catalog, 0, "Program error")
#define LOCALE_REQUEST_INITIALIZATIONERROR_GADGET GetCatalogStr(Catalog, 1, "Okay")
#define LOCALE_REQUEST_INITIALIZATIONERROR_BODYTITLE GetCatalogStr(Catalog, 2, "Error during initialization:\n")
#define LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT1 GetCatalogStr(Catalog, 3, "Can't open Amiga-library\n")
#define LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT2 GetCatalogStr(Catalog, 4, "Can't lock your public-screen.\n")
#define LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT3 GetCatalogStr(Catalog, 5, "Can't get visualinfo of your public-screen.\n")
#define LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT4 GetCatalogStr(Catalog, 6, "Can't create menu.\n")
#define LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT5 GetCatalogStr(Catalog, 7, "Can't create message-port.\n")
#define LOCALE_REQUEST_INITIALIZATIONERROR_SOLUTION1 GetCatalogStr(Catalog, 8, "\nProbably you don't have a correct\ninstalled AmigaOS 3.5 system !")
#define LOCALE_REQUEST_INITIALIZATIONERROR_SOLUTION2 GetCatalogStr(Catalog, 9, "\nMaybe there isn't enough memory !")
#define LOCALE_WINDOW_TITLE1 GetCatalogStr(Catalog, 10, "AminetSearcher Version 1.0")
#define LOCALE_SCREEN_TITLE1 GetCatalogStr(Catalog, 11, "AminetSearcher Version 1.0   created by Emperor")
#define LOCALE_ICONIFIED_TITLE1 GetCatalogStr(Catalog, 12, "Iconified Program")
#define LOCALE_PATTERN1 GetCatalogStr(Catalog, 13, "Pattern #1")
#define LOCALE_PATTERN2 GetCatalogStr(Catalog, 14, "Pattern #2")
#define LOCALE_PATTERN3 GetCatalogStr(Catalog, 15, "Pattern #3")
#define LOCALE_PATTERN4 GetCatalogStr(Catalog, 16, "Pattern #4")
#define LOCALE_PATTERN5 GetCatalogStr(Catalog, 17, "Pattern #5")
#define LOCALE_ALLCDS GetCatalogStr(Catalog, 18, "all CD's")
#define LOCALE_ONECD GetCatalogStr(Catalog, 19, "one CD")
#define LOCALE_REQUEST_INFO_TITLE GetCatalogStr(Catalog, 20, "Program information")
#define LOCALE_REQUEST_INFO_BODY GetCatalogStr(Catalog, 21, " AminetSearcher was written by Matthias Gietzelt \n AminetSearcher was created with Emperor")
#define LOCALE_REQUEST_INFO_GADGET GetCatalogStr(Catalog, 22, "Okay")
#define LOCALE_REQUEST_QUIT_TITLE GetCatalogStr(Catalog, 23, "Program request")
#define LOCALE_REQUEST_QUIT_BODY GetCatalogStr(Catalog, 24, " Do you really want to quit this program ?")
#define LOCALE_REQUEST_QUIT_GADGET GetCatalogStr(Catalog, 25, "Okay|No")
#define LOCALE_REQUEST_ERROR1_TITLE GetCatalogStr(Catalog, 26, "Program error")
#define LOCALE_REQUEST_ERROR1_BODY GetCatalogStr(Catalog, 27, "An error has been occured: Can't get Aminet-Index !")
#define LOCALE_REQUEST_ERROR1_GADGET GetCatalogStr(Catalog, 28, "Okay")
#define LOCALE_PROJECT GetCatalogStr(Catalog, 29, "Project")
#define LOCALE_MENU_PREFS GetCatalogStr(Catalog, 30, "Prefs")
#define LOCALE_MENU_INFO GetCatalogStr(Catalog, 31, "Info")
#define LOCALE_MENU_QUIT GetCatalogStr(Catalog, 32, "Quit")
#define LOCALE_MENU_EXTRA GetCatalogStr(Catalog, 33, "Extra")
#define LOCALE_MENU_SELECTALL GetCatalogStr(Catalog, 34, "Select all")
#define LOCALE_SELECTNONE GetCatalogStr(Catalog, 35, "Select none")
#define LOCALE_SCAN_IN_LHA GetCatalogStr(Catalog, 36, "scan in LhA")
#define LOCALE_SEARCH GetCatalogStr(Catalog, 37, "Search")
#define LOCALE_BREAK GetCatalogStr(Catalog, 38, "Break")
#define LOCALE_ASL_FILEREQ_TITLE11 GetCatalogStr(Catalog, 39, "Pick a file")
#define LOCALE_REQUEST_TITLE1 GetCatalogStr(Catalog, 40, "AminetSearcher request")
#define LOCALE_REQUEST_BODY1 GetCatalogStr(Catalog, 41, " Do you want to do ? ")
#define LOCALE_REQUEST_GAD1 GetCatalogStr(Catalog, 42, "Readme|Extract|Break")
#define String1 Gadget1[4]
#define String2 Gadget1[6]
#define String3 Gadget1[8]
#define String4 Gadget1[10]
#define String5 Gadget1[12]
#define Checkbox1 Gadget1[16]
#define Checkbox2 Gadget1[17]
#define Checkbox3 Gadget1[18]
#define Checkbox4 Gadget1[19]
#define Checkbox5 Gadget1[20]
#define Checkbox6 Gadget1[22]
#define Checkbox7 Gadget1[23]
#define Checkbox8 Gadget1[24]
#define Checkbox9 Gadget1[25]
#define Checkbox10 Gadget1[26]
#define Checkbox11 Gadget1[28]
#define Checkbox12 Gadget1[29]
#define Checkbox13 Gadget1[30]
#define Checkbox14 Gadget1[31]
#define Checkbox15 Gadget1[32]
#define Checkbox16 Gadget1[34]
#define Space1 Gadget1[35]
#define Chooser1 Gadget1[36]
#define Button1 Gadget1[37]
#define Button2 Gadget1[38]
#define Listbrowser1 Gadget1[39]
#define Fuelgauge1 Gadget1[40]
#define Fuelgauge2 Gadget1[41]
#define String6 Gadget1[42]
#define Menu_Project 65504
#define Menu_Info 63488
#define Menu_Quit 63552
#define Menu_Extra 65505
#define Menu_Select_All 63489
#define Menu_Select_None 63521
BYTE Emperor_Gadgetkind1[44] = { 12, 12, 12, 20, 11, 20, 11, 20, 11, 20, 11, 20, 11, 12, 12, 1, 1, 1, 1, 1, 12, 1, 1, 1, 1, 1, 12, 1, 1, 1, 1, 1, 12, 1, 18, 2, 0, 0, 13, 6, 6, 20, -1 };

LONG Inforequest1(void);
LONG Quitrequest1(void);
LONG Errorrequest1(void);
LONG ExtractRequest1(void);
STRPTR Filerequest1(void);
void Window1_CloseWindow_Event(void);
BOOL Emperor_InitProgram(void);
void Emperor_QuitProgram(void);
void Emperor_CloseWindow_Window1(void);
void Emperor_IconifyWindow_Window1(void);
struct Window *Emperor_OpenWindow_Window1(void);
struct Window *Emperor_UniconifyWindow_Window1(void);
BOOL Emperor_GetMenuItemAttr(UWORD, UBYTE);
void Emperor_SetMenuItemAttr(UWORD, UBYTE, BOOL);
STRPTR Emperor_GetGadgetAttr(struct Gadget *);
void Emperor_SetGadgetAttr(struct Gadget *, STRPTR);
BOOL Emperor_GetGadgetDisabledAttr(struct Gadget *);
void Emperor_SetGadgetDisabledAttr(struct Gadget *, BOOL);
BOOL Emperor_GetGadgetReadOnlyAttr(struct Gadget *);
void Emperor_SetGadgetReadOnlyAttr(struct Gadget *, BOOL);
void Emperor_ActivateGadget(struct Gadget *);
void Emperor_RethinkLayout(struct Gadget *);
void Emperor_RefreshGList(struct Gadget *, WORD);
void Emperor_ChangeWindowPosition(struct Window *, WORD, WORD);
void Emperor_ChangeWindowSize(struct Window *, WORD, WORD);
void Emperor_SetWindowBusyPointer(struct Window *, BOOL);
void Emperor_SetWindowTitle(struct Window *, STRPTR);
void Emperor_SetScreenTitle(struct Window *, STRPTR);
void Emperor_AllocChooserNode(struct List *, char **, WORD *);
void Emperor_AllocClicktabNode(struct List *, char **, WORD *);
void Emperor_AllocListbrowserNode(struct List *, char **, WORD *);
void Emperor_AllocRadiobuttonNode(struct List *, char **, WORD *);
LONG stringtoint(STRPTR);
STRPTR inttostring(LONG);

struct Library *IntuitionBase = NULL;
struct Library *LocaleBase = NULL;
struct Library *GadToolsBase = NULL;
struct Library *ASLBase = NULL;
struct Library *DOSLibBase = NULL;
struct Library *ResourceBase = NULL;
struct Library *RequesterBase = NULL;
struct Library *WindowBase = NULL;
struct Library *ButtonBase = NULL;
struct Library *CheckBoxBase = NULL;
struct Library *ChooserBase = NULL;
struct Library *ClickTabBase = NULL;
struct Library *ColorWheelBase = NULL;
struct Library *DateBrowserBase = NULL;
struct Library *FuelGaugeBase = NULL;
struct Library *GetFileBase = NULL;
struct Library *GetFontBase = NULL;
struct Library *GetScreenModeBase = NULL;
struct Library *IntegerBase = NULL;
struct Library *LabelBase = NULL;
struct Library *LayoutBase = NULL;
struct Library *ListBrowserBase = NULL;
struct Library *PaletteBase = NULL;
struct Library *RadioButtonBase = NULL;
struct Library *ScrollerBase = NULL;
struct Library *SliderBase = NULL;
struct Library *SpaceBase = NULL;
struct Library *SpeedBarBase = NULL;
struct Library *StringBase = NULL;
struct Library *TapeDeckBase = NULL;
struct Library *TextEditorBase = NULL;
struct List Chooser_Chooserarray;
struct List Clicktab_Chooserarray;
struct List Listbrowser_Chooserarray;
struct List Radiobutton_Chooserarray;

struct NewMenu NewMenu[] = {
                             { NM_TITLE, 0, 0, 0, 0, 0 },
                             { NM_ITEM, 0, "I", 0, 0, 0 },
                             { NM_ITEM, NM_BARLABEL, 0, 0, 0, 0 },
                             { NM_ITEM, 0, "Q", 0, 0, 0 },
                             { NM_TITLE, 0, 0, 0, 0, 0 },
                             { NM_ITEM, 0, "A", 0, 0, 0 },
                             { NM_ITEM, 0, "N", 0, 0, 0 },
                             { NM_END, 0, 0, 0, 0, 0 }
                           };
void *vinfo = NULL;
BOOL os35 = TRUE;
BOOL terminated = FALSE;
ULONG WindowSignals1 = 0L;
struct Catalog *Catalog = NULL;
struct Gadget *Gadget1[44];
struct Gadget *GList1;
struct Menu *Menu = NULL;
struct MsgPort *AppPort = NULL;
struct Screen *Screen = NULL;
struct Window *Window1 = NULL;

/* global variables declarations */

char *Chooserarrayraw[] = { "one CD", "all CD's", NULL };
WORD Chooserarrayattr[] = { 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL };

void main(void)
{
    BYTE Emperor_Exception = 0;
    ULONG Emperor_Input, Emperor_Code;
    char Emperor_ExceptionString[200];
    struct EasyStruct EmperorRequest_InitializationErrorRequest;
    struct IntuiMessage *IntuiMessage;
    struct Gadget *GadgetMessage;

    Emperor_Input = 0L;
    Emperor_Code = 0L;
    if(!Emperor_InitProgram())
    {
        if(Screen = LockPubScreen(NULL))
        {
            if(vinfo = GetVisualInfo(Screen, TAG_DONE))
            {
                NewMenu[0].nm_Label = LOCALE_PROJECT;
                NewMenu[1].nm_Label = LOCALE_MENU_INFO;
                NewMenu[2].nm_Label = NM_BARLABEL;
                NewMenu[3].nm_Label = LOCALE_MENU_QUIT;
                NewMenu[4].nm_Label = LOCALE_MENU_EXTRA;
                NewMenu[5].nm_Label = LOCALE_MENU_SELECTALL;
                NewMenu[6].nm_Label = LOCALE_SELECTNONE;
                if(Menu = CreateMenus(NewMenu, GTMN_FullMenu, TRUE, TAG_DONE))
                {
                    LayoutMenus(Menu, vinfo, GTMN_FrontPen, 0, TAG_DONE);
                    Emperor_AllocChooserNode(&Chooser_Chooserarray, Chooserarrayraw, Chooserarrayattr);
                    Emperor_AllocClicktabNode(&Clicktab_Chooserarray, Chooserarrayraw, Chooserarrayattr);
                    Emperor_AllocListbrowserNode(&Listbrowser_Chooserarray, Chooserarrayraw, Chooserarrayattr);
                    Emperor_AllocRadiobuttonNode(&Radiobutton_Chooserarray, Chooserarrayraw, Chooserarrayattr);
                    if(AppPort = CreateMsgPort())
                    {
                        Emperor_OpenWindow_Window1();
                        while(!terminated)
                        {
                            Wait(WindowSignals1);
                            while(IntuiMessage = GT_GetIMsg(Window1->UserPort))
                            {
                                GadgetMessage = (struct Gadget *) IntuiMessage->IAddress;
                                GT_ReplyIMsg(IntuiMessage);
                                switch(IntuiMessage->Class)
                                {
                                    case IDCMP_GADGETDOWN:
                                        switch(GadgetMessage->GadgetID)
                                        {
                                        }
                                        break;
                                    case IDCMP_GADGETUP:
                                        switch(GadgetMessage->GadgetID)
                                        {
                                        }
                                        break;
                                    case IDCMP_GADGETHELP:
                                        switch(GadgetMessage->GadgetID)
                                        {
                                        }
                                        break;
                                    case IDCMP_MENUPICK:
                                        switch(IntuiMessage->Code)
                                        {
                                        }
                                        break;
                                    case IDCMP_MENUHELP:
                                        switch(IntuiMessage->Code)
                                        {
                                        }
                                        break;
                                    case IDCMP_CLOSEWINDOW:
                                        Window1_CloseWindow_Event();
                                        break;
                                    case IDCMP_ACTIVEWINDOW:
                                        break;
                                    case IDCMP_INACTIVEWINDOW:
                                        break;
                                    case IDCMP_RAWKEY:
                                        break;
                                    case IDCMP_VANILLAKEY:
                                        break;
                                    case IDCMP_MOUSEBUTTONS:
                                        break;
                                    case IDCMP_MOUSEMOVE:
                                        break;
                                    case IDCMP_NEWSIZE:
                                        break;
                                    case IDCMP_CHANGEWINDOW:
                                        break;
                                    case IDCMP_SIZEVERIFY:
                                        break;
                                    case IDCMP_REFRESHWINDOW:
                                        break;
                                    case IDCMP_INTUITICKS:
                                        break;
                                }
                            }
                        }
                    }
                    else Emperor_Exception = 4;
                }
                else Emperor_Exception = 3;
            }
            else Emperor_Exception = 2;
        }
        else Emperor_Exception = 1;
    }
    if(Emperor_Exception)
    {
        strcpy(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_BODYTITLE);
        switch(Emperor_Exception)
        {
            case 1: strcat(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT2); break;
            case 2: strcat(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT3); break;
            case 3: strcat(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT4); break;
            case 4: strcat(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT5); break;
        }
        strcat(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_SOLUTION2);
        EmperorRequest_InitializationErrorRequest.es_StructSize = sizeof(struct EasyStruct);
        EmperorRequest_InitializationErrorRequest.es_Flags = 0L;
        EmperorRequest_InitializationErrorRequest.es_Title = (UBYTE *) LOCALE_REQUEST_INITIALIZATIONERROR_TITLE;
        EmperorRequest_InitializationErrorRequest.es_TextFormat = (UBYTE *) Emperor_ExceptionString;
        EmperorRequest_InitializationErrorRequest.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_INITIALIZATIONERROR_GADGET;
        EasyRequest(Window1, &EmperorRequest_InitializationErrorRequest, NULL, NULL);
    }
    Emperor_QuitProgram();
}

void wbmain(struct WBStartup *Emperor_ArgMsg)
{
    main();
}

#include <AminetSearcher.h>

LONG Inforequest1(void)
{
    struct EasyStruct EmperorRequest_Inforequest1;

    EmperorRequest_Inforequest1.es_StructSize = sizeof(struct EasyStruct);
    EmperorRequest_Inforequest1.es_Flags = 0L;
    EmperorRequest_Inforequest1.es_Title = (UBYTE *) LOCALE_REQUEST_INFO_TITLE;
    EmperorRequest_Inforequest1.es_TextFormat = (UBYTE *) LOCALE_REQUEST_INFO_BODY;
    EmperorRequest_Inforequest1.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_INFO_GADGET;
    return(EasyRequest(Window1, &EmperorRequest_Inforequest1, NULL, NULL));
}

LONG Quitrequest1(void)
{
    struct EasyStruct EmperorRequest_Quitrequest1;

    EmperorRequest_Quitrequest1.es_StructSize = sizeof(struct EasyStruct);
    EmperorRequest_Quitrequest1.es_Flags = 0L;
    EmperorRequest_Quitrequest1.es_Title = (UBYTE *) LOCALE_REQUEST_QUIT_TITLE;
    EmperorRequest_Quitrequest1.es_TextFormat = (UBYTE *) LOCALE_REQUEST_QUIT_BODY;
    EmperorRequest_Quitrequest1.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_QUIT_GADGET;
    return(EasyRequest(Window1, &EmperorRequest_Quitrequest1, NULL, NULL));
}

LONG Errorrequest1(void)
{
    struct EasyStruct EmperorRequest_Errorrequest1;

    EmperorRequest_Errorrequest1.es_StructSize = sizeof(struct EasyStruct);
    EmperorRequest_Errorrequest1.es_Flags = 0L;
    EmperorRequest_Errorrequest1.es_Title = (UBYTE *) LOCALE_REQUEST_ERROR1_TITLE;
    EmperorRequest_Errorrequest1.es_TextFormat = (UBYTE *) LOCALE_REQUEST_ERROR1_BODY;
    EmperorRequest_Errorrequest1.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_ERROR1_GADGET;
    return(EasyRequest(Window1, &EmperorRequest_Errorrequest1, NULL, NULL));
}

LONG ExtractRequest1(void)
{
    struct EasyStruct EmperorRequest_ExtractRequest1;

    EmperorRequest_ExtractRequest1.es_StructSize = sizeof(struct EasyStruct);
    EmperorRequest_ExtractRequest1.es_Flags = 0L;
    EmperorRequest_ExtractRequest1.es_Title = (UBYTE *) LOCALE_REQUEST_TITLE1;
    EmperorRequest_ExtractRequest1.es_TextFormat = (UBYTE *) LOCALE_REQUEST_BODY1;
    EmperorRequest_ExtractRequest1.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_GAD1;
    return(EasyRequest(Window1, &EmperorRequest_ExtractRequest1, NULL, NULL));
}

STRPTR Filerequest1(void)
{
    STRPTR Emperor_ASLReturn = "";
    struct FileRequester *Emperor_ASLRequester;

    Emperor_ASLRequester = (struct FileRequester *) AllocAslRequestTags(ASL_FileRequest, ASLFR_Window, Window1, ASLFR_Screen, Screen, ASLFR_SleepWindow, TRUE, ASLFR_TitleText, LOCALE_ASL_FILEREQ_TITLE11, TAG_DONE);
    AslRequestTags(Emperor_ASLRequester, ASLFR_SetSortBy, 0, ASLFR_SetSortOrder, 0, ASLFR_SetSortDrawers, 0, ASLFR_DoMultiSelect, TRUE, ASLFR_RejectIcons, TRUE, TAG_DONE);
    strcpy(Emperor_ASLReturn, Emperor_ASLRequester->fr_Drawer);
    strcat(Emperor_ASLReturn, "/");
    strcat(Emperor_ASLReturn, Emperor_ASLRequester->fr_File);
    return(Emperor_ASLReturn);
}

BOOL Emperor_InitProgram(void)
{
    BOOL Emperor_InitVar = FALSE;
    BYTE Emperor_ExceptionStringLength;
    char Emperor_OccuredError[50], Emperor_ExceptionString[200];
    struct EasyStruct EmperorRequest_InitializationErrorRequest;

    if(!(IntuitionBase = OpenLibrary(INTUITIONLIBRARY, 39L)))
    {
        Emperor_InitVar = TRUE;
        strcpy(Emperor_OccuredError, INTUITIONLIBRARY);
    }
    if(!(LocaleBase = OpenLibrary(LOCALELIBRARY, 39L)))
    {
        Emperor_InitVar = TRUE;
        strcpy(Emperor_OccuredError, LOCALELIBRARY);
    }
    if(!(GadToolsBase = OpenLibrary(GADTOOLSLIBRARY, 39L)))
    {
        Emperor_InitVar = TRUE;
        strcpy(Emperor_OccuredError, GADTOOLSLIBRARY);
    }
    if(!(DOSLibBase = OpenLibrary(DOSLIBRARY, 39L)))
    {
        Emperor_InitVar = TRUE;
        strcpy(Emperor_OccuredError, DOSLIBRARY);
    }
    if(!(ASLBase = OpenLibrary(ASLLIBRARY, 39L)))
    {
        Emperor_InitVar = TRUE;
        strcpy(Emperor_OccuredError, ASLLIBRARY);
    }
    if(!(ResourceBase = OpenLibrary(RESOURCELIBRARY, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, RESOURCELIBRARY);
    }
    if(!(LayoutBase = OpenLibrary(LAYOUTGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, LAYOUTGADGETLIB);
    }
    if(!(WindowBase = OpenLibrary(WINDOWCLASSLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, WINDOWCLASSLIB);
    }
    if(!(RequesterBase = OpenLibrary(REQUESTERCLASSLIB, 42L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, REQUESTERCLASSLIB);
    }
    if(!(LabelBase = OpenLibrary(LABELIMAGELIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, LABELIMAGELIB);
    }
    if(!(ButtonBase = OpenLibrary(BUTTONGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, BUTTONGADGETLIB);
    }
    if(!(CheckBoxBase = OpenLibrary(CHECKBOXGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, CHECKBOXGADGETLIB);
    }
    if(!(ChooserBase = OpenLibrary(CHOOSERGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, CHOOSERGADGETLIB);
    }
    if(!(ClickTabBase = OpenLibrary(CLICKTABGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, CLICKTABGADGETLIB);
    }
    if(!(ColorWheelBase = OpenLibrary(COLORWHEELGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, COLORWHEELGADGETLIB);
    }
    if(!(DateBrowserBase = OpenLibrary(DATEBROWSERGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, DATEBROWSERGADGETLIB);
    }
    if(!(FuelGaugeBase = OpenLibrary(FUELGAUGEGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, FUELGAUGEGADGETLIB);
    }
    if(!(GetFileBase = OpenLibrary(GETFILEGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, GETFILEGADGETLIB);
    }
    if(!(GetFontBase = OpenLibrary(GETFONTGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, GETFONTGADGETLIB);
    }
    if(!(GetScreenModeBase = OpenLibrary(GETSCREENMODEGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, GETSCREENMODEGADGETLIB);
    }
    if(!(IntegerBase = OpenLibrary(INTEGERGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, INTEGERGADGETLIB);
    }
    if(!(ListBrowserBase = OpenLibrary(LISTBROWSERGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, LISTBROWSERGADGETLIB);
    }
    if(!(PaletteBase = OpenLibrary(PALETTEGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, PALETTEGADGETLIB);
    }
    if(!(RadioButtonBase = OpenLibrary(RADIOBUTTONGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, RADIOBUTTONGADGETLIB);
    }
    if(!(ScrollerBase = OpenLibrary(SCROLLERGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, SCROLLERGADGETLIB);
    }
    if(!(SliderBase = OpenLibrary(SLIDERGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, SLIDERGADGETLIB);
    }
    if(!(SpaceBase = OpenLibrary(SPACEGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, SPACEGADGETLIB);
    }
    if(!(SpeedBarBase = OpenLibrary(SPEEDBARGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, SPEEDBARGADGETLIB);
    }
    if(!(StringBase = OpenLibrary(STRINGGADGETLIB, 44L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, STRINGGADGETLIB);
    }
    if(!(TapeDeckBase = OpenLibrary(TAPEDECKGADGETLIB, 40L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, TAPEDECKGADGETLIB);
    }
    if(!(TextEditorBase = OpenLibrary(TEXTEDITORGADGETLIB, 15L)))
    {
        os35 = FALSE;
        strcpy(Emperor_OccuredError, TEXTEDITORGADGETLIB);
    }
    Catalog = OpenCatalogA(NULL, "AminetSearcher.catalog", NULL);
    if(Emperor_InitVar)
    {
        strcpy(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_BODYTITLE);
        strcat(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_ERRRTEXT1);
        Emperor_ExceptionStringLength = 0; while(Emperor_ExceptionString[Emperor_ExceptionStringLength] != NULL) Emperor_ExceptionStringLength++;
        Emperor_ExceptionString[Emperor_ExceptionStringLength] = (char) 34;
        Emperor_ExceptionString[Emperor_ExceptionStringLength + 1] = NULL;
        strcat(Emperor_ExceptionString, Emperor_OccuredError);
        Emperor_ExceptionStringLength = 0; while(Emperor_ExceptionString[Emperor_ExceptionStringLength] != NULL) Emperor_ExceptionStringLength++;
        Emperor_ExceptionString[Emperor_ExceptionStringLength] = (char) 34;
        Emperor_ExceptionString[Emperor_ExceptionStringLength + 1] = NULL;
        strcat(Emperor_ExceptionString, LOCALE_REQUEST_INITIALIZATIONERROR_SOLUTION1);
        EmperorRequest_InitializationErrorRequest.es_StructSize = sizeof(struct EasyStruct);
        EmperorRequest_InitializationErrorRequest.es_Flags = 0L;
        EmperorRequest_InitializationErrorRequest.es_Title = (UBYTE *) LOCALE_REQUEST_INITIALIZATIONERROR_TITLE;
        EmperorRequest_InitializationErrorRequest.es_TextFormat = (UBYTE *) Emperor_ExceptionString;
        EmperorRequest_InitializationErrorRequest.es_GadgetFormat = (UBYTE *) LOCALE_REQUEST_INITIALIZATIONERROR_GADGET;
        EasyRequest(Window1, &EmperorRequest_InitializationErrorRequest, NULL, NULL);
    }
    return(Emperor_InitVar);
}

void Emperor_QuitProgram(void)
{
    Emperor_CloseWindow_Window1();
    if(AppPort) DeleteMsgPort(AppPort);
    if(Menu) FreeMenus(Menu);
    if(vinfo) FreeVisualInfo(vinfo);
    if(Screen) UnlockPubScreen(NULL, Screen);
    if(Catalog) CloseCatalog(Catalog);
    if(TextEditorBase) CloseLibrary(TextEditorBase);
    if(TapeDeckBase) CloseLibrary(TapeDeckBase);
    if(StringBase) CloseLibrary(StringBase);
    if(SpeedBarBase) CloseLibrary(SpeedBarBase);
    if(SpaceBase) CloseLibrary(SpaceBase);
    if(SliderBase) CloseLibrary(SliderBase);
    if(ScrollerBase) CloseLibrary(ScrollerBase);
    if(RadioButtonBase) CloseLibrary(RadioButtonBase);
    if(PaletteBase) CloseLibrary(PaletteBase);
    if(ListBrowserBase) CloseLibrary(ListBrowserBase);
    if(IntegerBase) CloseLibrary(IntegerBase);
    if(GetScreenModeBase) CloseLibrary(GetScreenModeBase);
    if(GetFontBase) CloseLibrary(GetFontBase);
    if(GetFileBase) CloseLibrary(GetFileBase);
    if(FuelGaugeBase) CloseLibrary(FuelGaugeBase);
    if(DateBrowserBase) CloseLibrary(DateBrowserBase);
    if(ColorWheelBase) CloseLibrary(ColorWheelBase);
    if(ClickTabBase) CloseLibrary(ClickTabBase);
    if(ChooserBase) CloseLibrary(ChooserBase);
    if(CheckBoxBase) CloseLibrary(CheckBoxBase);
    if(ButtonBase) CloseLibrary(ButtonBase);
    if(LabelBase) CloseLibrary(LabelBase);
    if(RequesterBase) CloseLibrary(RequesterBase);
    if(WindowBase) CloseLibrary(WindowBase);
    if(LayoutBase) CloseLibrary(LayoutBase);
    if(ResourceBase) CloseLibrary(ResourceBase);
    if(ASLBase) CloseLibrary(ASLBase);
    if(DOSLibBase) CloseLibrary(DOSLibBase);
    if(GadToolsBase) CloseLibrary(GadToolsBase);
    if(LocaleBase) CloseLibrary(LocaleBase);
    if(IntuitionBase) CloseLibrary(IntuitionBase);
    exit(0);
}

void Emperor_CloseWindow_Window1(void)
{
    if(Menu) ClearMenuStrip(Window1);
    if(Window1) CloseWindow(Window1);
    Window1 = NULL;
    WindowSignals1 = 0L;
}

void Emperor_IconifyWindow_Window1(void)
{
    if(Menu) ClearMenuStrip(Window1);
    if(Window1) CloseWindow(Window1);
    Window1 = NULL;
    WindowSignals1 = 0L;
}

struct Window *Emperor_OpenWindow_Window1(void)
{
    struct NewGadget ng;

    Gadget1[0] = CreateContext(&GList1);
    Window1 = OpenWindowTags(NULL,
                                        WA_Left, 0,
                                        WA_Top, 17,
                                        WA_Width, 400,
                                        WA_Height, 300,
                                        WA_SizeGadget, TRUE,
                                        WA_DragBar, TRUE,
                                        WA_DepthGadget, TRUE,
                                        WA_CloseGadget, TRUE,
                                        WA_Activate, TRUE,
                                        WA_AutoAdjust, TRUE,
                                        WA_IDCMP, 0x07fdffff,
                                        WA_MinWidth, -1,
                                        WA_MinHeight, -1,
                                        WA_MaxWidth, -1,
                                        WA_MaxHeight, -1,
                                        WA_Title, "AminetSearcher Version 1.0",
                                        WA_ScreenTitle, LOCALE_SCREEN_TITLE1,
                                        WA_PubScreen, Screen,
                                        WA_Gadgets,Gadget1[0], TAG_DONE);
    WindowSignals1 = 1L << Window1->UserPort->mp_SigBit;
    SetMenuStrip(Window1, Menu);
    return(Window1);
}

struct Window *Emperor_UniconifyWindow_Window1(void)
{
    return(Emperor_OpenWindow_Window1());
}

BOOL Emperor_GetMenuItemAttr(UWORD Emperor_MenuObject, UBYTE Emperor_MenuFlag)
{
    UWORD Emperor_MenuFlagMask;
    struct MenuItem *Emperor_MenuItem = NULL;

    if(Emperor_MenuFlag == 0) Emperor_MenuFlagMask = CHECKED;
    if(Emperor_MenuFlag == 1) Emperor_MenuFlagMask = ITEMENABLED;
    if(Emperor_MenuFlag == 2) Emperor_MenuFlagMask = MENUTOGGLED;
    Emperor_MenuItem = ItemAddress(Menu, Emperor_MenuObject);
    if(Emperor_MenuItem->Flags & Emperor_MenuFlagMask) return(TRUE);
    else return(FALSE);
}

void Emperor_SetMenuItemAttr(UWORD Emperor_MenuObject, UBYTE Emperor_MenuFlag, BOOL Emperor_SetReset)
{
    UWORD Emperor_MenuFlagMask;
    struct MenuItem *Emperor_MenuItem = NULL;

    if((Emperor_MenuFlag == 0) || (Emperor_MenuFlag == 1))
    {
        if(Emperor_MenuFlag == 0) Emperor_MenuFlagMask = CHECKED;
        if(Emperor_MenuFlag == 1) Emperor_MenuFlagMask = ITEMENABLED;
        Emperor_MenuItem = ItemAddress(Menu, Emperor_MenuObject);
        if(Emperor_SetReset) Emperor_MenuItem->Flags += Emperor_MenuFlagMask;
        else Emperor_MenuItem->Flags -= Emperor_MenuFlagMask;
    }
}

STRPTR Emperor_GetGadgetAttr(struct Gadget *Emperor_GadgetName)
{
    LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
    STRPTR Emperor_GadgetAttrReturn = "";

    Emperor_GadgetAttrBuffer = 0L;
    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            switch(Emperor_Gadgetkind1[Emperor_GadgetCounter])
            {
                case 2:
                    GetAttr(GA_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
                    break;
                case 3:
                    GetAttr(GTIN_Number, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
                    break;
                case 4:
                    GetAttr(GTCY_Active, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
                    break;
                case 6:
                    GetAttr(GTLV_Selected, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
                    break;
                case 7:
                    GetAttr(GTPA_Color, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
                    break;
                case 8:
                    GetAttr(GTSC_Top, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
                    break;
                case 9:
                    GetAttr(GTSL_Level, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, inttostring(Emperor_GadgetAttrBuffer));
                    break;
                case 10:
                    GetAttr(GTST_String, Emperor_GadgetName, (ULONG *) &Emperor_GadgetAttrBuffer);
                    strcpy(Emperor_GadgetAttrReturn, (char *) Emperor_GadgetAttrBuffer);
                    break;
            }
            break;
        }
    }
    return(Emperor_GadgetAttrReturn);
}

void Emperor_SetGadgetAttr(struct Gadget *Emperor_GadgetName, STRPTR Emperor_GadgetValue)
{
    LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
    struct Window *Emperor_Whichwindow = NULL;

    Emperor_GadgetAttrBuffer = 0L;
    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            Emperor_Whichwindow = Window1;
            switch(Emperor_Gadgetkind1[Emperor_GadgetCounter])
            {
                case 2:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Selected, stringtoint(Emperor_GadgetValue), TAG_DONE);
                    break;
                case 3:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GTIN_Number, stringtoint(Emperor_GadgetValue), TAG_DONE);
                    break;
                case 4:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GTLV_Selected, stringtoint(Emperor_GadgetValue), TAG_DONE);
                    break;
                case 6:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GTCY_Active, stringtoint(Emperor_GadgetValue), TAG_DONE);
                    break;
                case 7:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GTPA_Color, stringtoint(Emperor_GadgetValue), TAG_DONE);
                    break;
                case 8:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GTSC_Top, stringtoint(Emperor_GadgetValue), TAG_DONE);
                    break;
                case 9:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GTSL_Level, stringtoint(Emperor_GadgetValue), TAG_DONE);
                    break;
                case 10:
                    GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GTST_String, Emperor_GadgetValue, TAG_DONE);
                    break;
            }
            break;
        }
    }
}

BOOL Emperor_GetGadgetDisabledAttr(struct Gadget *Emperor_GadgetName)
{
    LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
    BOOL Emperor_GadgetAttrReturn;

    Emperor_GadgetAttrBuffer = 0L;
    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            GT_GetGadgetAttrs(Emperor_GadgetName, Window1, NULL, GA_Disabled, &Emperor_GadgetAttrBuffer, TAG_DONE);
            break;
        }
    }
    Emperor_GadgetAttrReturn = Emperor_GadgetAttrBuffer;
    return(Emperor_GadgetAttrReturn);
}

void Emperor_SetGadgetDisabledAttr(struct Gadget *Emperor_GadgetName, BOOL Emperor_GadgetValue)
{
    LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
    struct Window *Emperor_Whichwindow = NULL;

    Emperor_GadgetAttrBuffer = 0L;
    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            Emperor_Whichwindow = Window1;
            GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_Disabled, Emperor_GadgetValue, TAG_DONE);
            break;
        }
    }
}

BOOL Emperor_GetGadgetAttrReadOnly(struct Gadget *Emperor_GadgetName)
{
    LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
    BOOL Emperor_GadgetAttrReturn;

    Emperor_GadgetAttrBuffer = 0L;
    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            GT_GetGadgetAttrs(Emperor_GadgetName, Window1, NULL, GA_ReadOnly, &Emperor_GadgetAttrBuffer, TAG_DONE);
            break;
        }
    }
    Emperor_GadgetAttrReturn = Emperor_GadgetAttrBuffer;
    return(Emperor_GadgetAttrReturn);
}

void Emperor_SetGadgetReadOnlyAttr(struct Gadget *Emperor_GadgetName, BOOL Emperor_GadgetValue)
{
    LONG Emperor_GadgetAttrBuffer, Emperor_GadgetCounter;
    struct Window *Emperor_Whichwindow = NULL;

    Emperor_GadgetAttrBuffer = 0L;
    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            Emperor_Whichwindow = Window1;
            GT_SetGadgetAttrs(Emperor_GadgetName, Emperor_Whichwindow, NULL, GA_ReadOnly, Emperor_GadgetValue, TAG_DONE);
            break;
        }
    }
}

void Emperor_ActivateGadget(struct Gadget *Emperor_GadgetName)
{
    LONG Emperor_GadgetCounter;
    struct Window *Emperor_Whichwindow = NULL;

    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            Emperor_Whichwindow = Window1;
            break;
        }
    }
    ActivateGadget(Emperor_GadgetName, Emperor_Whichwindow, NULL);
}

void Emperor_RethinkLayout(struct Gadget *Emperor_GadgetName)
{
    LONG Emperor_GadgetCounter;
    struct Window *Emperor_Whichwindow = NULL;

    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
    }
    RethinkLayout(Emperor_GadgetName, Emperor_Whichwindow, NULL, TRUE);
}

void Emperor_RefreshGList(struct Gadget *Emperor_GadgetName, WORD Emperor_NumberRefresh)
{
    LONG Emperor_GadgetCounter;
    struct Window *Emperor_Whichwindow = NULL;

    for(Emperor_GadgetCounter = 0;Emperor_GadgetCounter < 255;Emperor_GadgetCounter++)
    {
        if(Gadget1[Emperor_GadgetCounter] == Emperor_GadgetName)
        {
            Emperor_Whichwindow = Window1;
            break;
        }
    }
    RefreshGList(Emperor_GadgetName, Emperor_Whichwindow, NULL, Emperor_NumberRefresh);
}

void Emperor_ChangeWindowPosition(struct Window *Emperor_ApplicationWindow, WORD Emperor_Left, WORD Emperor_Top)
{
    WORD Emperor_Width, Emperor_Height;

    Emperor_Width = Emperor_ApplicationWindow->Width;
    Emperor_Height = Emperor_ApplicationWindow->Height;
    ChangeWindowBox(Emperor_ApplicationWindow, Emperor_Left, Emperor_Top, Emperor_Width, Emperor_Height);
}

void Emperor_ChangeWindowSize(struct Window *Emperor_ApplicationWindow, WORD Emperor_Width, WORD Emperor_Height)
{
    WORD Emperor_Left, Emperor_Top;

    Emperor_Left = Emperor_ApplicationWindow->LeftEdge;
    Emperor_Top = Emperor_ApplicationWindow->TopEdge;
    ChangeWindowBox(Emperor_ApplicationWindow, Emperor_Left, Emperor_Top, Emperor_Width, Emperor_Height);
}

void Emperor_SetWindowBusyPointer(struct Window *Emperor_ApplicationWindow, BOOL Emperor_SetReset)
{
    if(Emperor_SetReset) SetWindowPointer(Emperor_ApplicationWindow, WA_BusyPointer, TRUE, WA_PointerDelay, TRUE, TAG_DONE);
    else SetWindowPointer(Emperor_ApplicationWindow, TAG_DONE);
}

void Emperor_SetWindowTitle(struct Window *Emperor_ApplicationWindow, STRPTR Emperor_Title)
{
    SetWindowTitles(Emperor_ApplicationWindow, (UBYTE *) Emperor_Title, ((UBYTE *) ~0));
}

void Emperor_SetScreenTitle(struct Window *Emperor_ApplicationWindow, STRPTR Emperor_Title)
{
    SetWindowTitles(Emperor_ApplicationWindow, ((UBYTE *) ~0), (UBYTE *) Emperor_Title);
}

void Emperor_AllocChooserNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
{
    WORD i = 0;
    struct Node *Emperor_Node;

    NewList(Emperor_List);
    while(*Emperor_Labels)
    {
        Emperor_Node = AllocChooserNode(CNA_Text, *Emperor_Labels, CNA_Disabled, Emperor_Attributes[i], CNA_ReadOnly, Emperor_Attributes[i + 1], TAG_DONE);
        AddTail(Emperor_List, Emperor_Node);
        Emperor_Labels++;
        i += 12;
    }
}

void Emperor_AllocClicktabNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
{
    WORD i = 0, j = 0;
    struct Node *Emperor_Node;

    NewList(Emperor_List);
    while(*Emperor_Labels)
    {
        Emperor_Node = AllocClickTabNode(TNA_Text, *Emperor_Labels, TNA_Disabled, Emperor_Attributes[i], TNA_Number, j, TAG_DONE);
        AddTail(Emperor_List, Emperor_Node);
        Emperor_Labels++;
        i += 12;
        j++;
    }
}

void Emperor_AllocListbrowserNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
{
    WORD i = 0, j = 0;
    struct Node *Emperor_Node;

    NewList(Emperor_List);
    while(*Emperor_Labels)
    {
        j = 0;
        if(Emperor_Attributes[i + 1]) j += 1;
        if(Emperor_Attributes[i + 2]) j += 4;
        if(Emperor_Attributes[i + 3]) j += 8;
        if(Emperor_Attributes[i + 4]) j += 16;
        Emperor_Node = AllocListBrowserNode(1, LBNCA_Text, *Emperor_Labels, LBNCA_CopyText, TRUE, LBNA_Generation, Emperor_Attributes[i + 10], LBNA_Column, Emperor_Attributes[i + 11], LBNA_Flags, j, LBNA_Selected, Emperor_Attributes[i + 5], LBNA_CheckBox, Emperor_Attributes[i + 6], LBNA_Checked, Emperor_Attributes[i + 7], TAG_DONE);
        AddTail(Emperor_List, Emperor_Node);
        Emperor_Labels++;
        i += 12;
    }
}

void Emperor_AllocRadiobuttonNode(struct List *Emperor_List, char **Emperor_Labels, WORD *Emperor_Attributes)
{
    WORD i = 0;
    struct Node *Emperor_Node;

    NewList(Emperor_List);
    while(*Emperor_Labels)
    {
        Emperor_Node = AllocRadioButtonNode(1, RBNA_Labels, *Emperor_Labels, TAG_DONE);
        AddTail(Emperor_List, Emperor_Node);
        Emperor_Labels++;
        i += 12;
    }
}

LONG stringtoint(STRPTR buffer)
{
    BOOL negative = FALSE;
    BYTE num1 = 0, length1 = 0;
    LONG num2 = 0;

    if(*buffer == '-')
    {
        buffer++;
        negative = TRUE;
    }
    if(*buffer == '0') num2 = 0;
    else
    {
        while(*buffer != 0x0a)
        {
            buffer++;
            length1++;
        }
        buffer -= length1;
        for(;length1 > 0;length1--)
        {
            num1 = 0;
            if(*buffer == '1') num1 = 1;
            if(*buffer == '2') num1 = 2;
            if(*buffer == '3') num1 = 3;
            if(*buffer == '4') num1 = 4;
            if(*buffer == '5') num1 = 5;
            if(*buffer == '6') num1 = 6;
            if(*buffer == '7') num1 = 7;
            if(*buffer == '8') num1 = 8;
            if(*buffer == '9') num1 = 9;
            if(length1 == 1)  num2 += num1;
            if(length1 == 2)  num2 += 10 * num1;
            if(length1 == 3)  num2 += 100 * num1;
            if(length1 == 4)  num2 += 1000 * num1;
            if(length1 == 5)  num2 += 10000 * num1;
            if(length1 == 6)  num2 += 100000 * num1;
            if(length1 == 7)  num2 += 1000000 * num1;
            if(length1 == 8)  num2 += 10000000 * num1;
            if(length1 == 9)  num2 += 100000000 * num1;
            if(length1 == 10) num2 += 1000000000 * num1;
            buffer++;
        }
    }
    if(negative) num2 = -num2;
    return(num2);
}

STRPTR inttostring(LONG buffer1)
{
    LONG buffer2;
    BYTE intlen = 0, n = 0;
    char *buffstr = "1";

    strcpy(buffstr, "");
    if(buffer1 < 0)
    {
        strcpy(buffstr, "-");
        buffer1 = -buffer1;
    }
    if(buffer1 > 0) intlen = 1;
    if(buffer1/10 > 0) intlen = 2;
    if(buffer1/100 > 0) intlen = 3;
    if(buffer1/1000 > 0) intlen = 4;
    if(buffer1/10000 > 0) intlen = 5;
    if(buffer1/100000 > 0) intlen = 6;
    if(buffer1/1000000 > 0) intlen = 7;
    if(buffer1/10000000 > 0) intlen = 8;
    if(buffer1/100000000 > 0) intlen = 9;
    if(buffer1 == 0)  strcpy(buffstr, "0");
    else
    {
        n = intlen;
        for(;n > 0;n--)
        {
            if(n == 9) buffer2 = buffer1/100000000;
            if(n == 8) buffer2 = buffer1/10000000;
            if(n == 7) buffer2 = buffer1/1000000;
            if(n == 6) buffer2 = buffer1/100000;
            if(n == 5) buffer2 = buffer1/10000;
            if(n == 4) buffer2 = buffer1/1000;
            if(n == 3) buffer2 = buffer1/100;
            if(n == 2) buffer2 = buffer1/10;
            if(n == 1) buffer2 = buffer1;
            if(buffer2 == 0) strcat(buffstr, "0");
            if(buffer2 == 1) strcat(buffstr, "1");
            if(buffer2 == 2) strcat(buffstr, "2");
            if(buffer2 == 3) strcat(buffstr, "3");
            if(buffer2 == 4) strcat(buffstr, "4");
            if(buffer2 == 5) strcat(buffstr, "5");
            if(buffer2 == 6) strcat(buffstr, "6");
            if(buffer2 == 7) strcat(buffstr, "7");
            if(buffer2 == 8) strcat(buffstr, "8");
            if(buffer2 == 9) strcat(buffstr, "9");
            if(n == 9) buffer1 -= buffer2*100000000;
            if(n == 8) buffer1 -= buffer2*10000000;
            if(n == 7) buffer1 -= buffer2*1000000;
            if(n == 6) buffer1 -= buffer2*100000;
            if(n == 5) buffer1 -= buffer2*10000;
            if(n == 4) buffer1 -= buffer2*1000;
            if(n == 3) buffer1 -= buffer2*100;
            if(n == 2) buffer1 -= buffer2*10;
            if(n == 1) buffer1 -= buffer2;
        }
    }
    return(buffstr);
}
