#ifndef LIBRARIES_LOCALE_H
#define LIBRARIES_LOCALE_H

/*******************************************************************
 pOS / Amiga adapt
*******************************************************************/


#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_NODES_H
#include <exec/nodes.h>
#endif
#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif
#ifndef __INC_POS_PEXEC_LIST_H
#include <pExec/List.h>
#endif
#ifndef __INC_POS_LOCALE_LOCTAGS_H
#include <pLocale/LocTags.h>
#endif


enum LocaleStrings {
  DAY_1 = 1,
  DAY_2,
  DAY_3,
  DAY_4,
  DAY_5,
  DAY_6,
  DAY_7,

  ABDAY_1,
  ABDAY_2,
  ABDAY_3,
  ABDAY_4,
  ABDAY_5,
  ABDAY_6,
  ABDAY_7,

  MON_1,
  MON_2,
  MON_3,
  MON_4,
  MON_5,
  MON_6,
  MON_7,
  MON_8,
  MON_9,
  MON_10,
  MON_11,
  MON_12,

  ABMON_1,
  ABMON_2,
  ABMON_3,
  ABMON_4,
  ABMON_5,
  ABMON_6,
  ABMON_7,
  ABMON_8,
  ABMON_9,
  ABMON_10,
  ABMON_11,
  ABMON_12,

  YESSTR,
  NOSTR,

  AM_STR,
  PM_STR,

  SOFTHYPHEN,
  HARDHYPHEN,

  OPENQUOTE,
  CLOSEQUOTE,

  YESTERDAYSTR,
  TODAYSTR,
  TOMORROWSTR,
  FUTURESTR,

  MAXSTRMSG,
};


struct LocaleBase
{
    struct Library lb_LibNode;

/***** private ******/

};


#define loc_MonCS loc_CurrencySymbol
#define loc_MonSmallCS loc_SmallCurrencySymbol
#define loc_MonIntCS loc_IntCurrencySymbol

struct Locale
{
    struct pOS_ExNode   loc_Node;

    STRPTR  loc_LocaleName;
    STRPTR  loc_LanguageName;
    STRPTR  loc_PrefLanguages[10];
    ULONG   loc_Flags;

    ULONG   loc_CodeSet;
    STRPTR  loc_CountryCode__NOT_COMPATIBLE__; /* siehe p:pLocale/locale.h */
    ULONG   loc_TelephoneCode;
    LONG    loc_GMTOffset;
    UBYTE   loc_MeasuringSystem;
    UBYTE   loc_CalendarType;

    STRPTR  loc_DateTimeFormat;
    STRPTR  loc_DateFormat;
    STRPTR  loc_TimeFormat;

    STRPTR  loc_ShortDateTimeFormat;
    STRPTR  loc_ShortDateFormat;
    STRPTR  loc_ShortTimeFormat;

    STRPTR  loc_DecimalPoint;
    STRPTR  loc_GroupSeparator;
    STRPTR  loc_FracGroupSeparator;

    STRPTR  loc_MonDecimalPoint;
    STRPTR  loc_MonGroupSeparator;
    STRPTR  loc_MonFracGroupSeparator;

    STRPTR  loc_MonCS;
    STRPTR  loc_MonSmallCS;
    STRPTR  loc_MonIntCS;

/****** private *******/

};



enum MeasuringSystemConstants
{
  MS_ISO=0,
  MS_AMERICAN,
  MS_IMPERIAL,
  MS_BRITISH,
};

enum CalendarTypeConstants
{
  CT_7SUN = 0,
  CT_7MON,
  CT_7TUE,
  CT_7WED,
  CT_7THU,
  CT_7FRI,
  CT_7SAT,
};

enum LocaleTags
{
  OC_TagBase = LOCTAG_First,
  OC_BuiltInLanguage,
  OC_BuiltInCodeSet,
  OC_Version,
  OC_Language,
};

struct Catalog
{
    struct pOS_ExNode cat_Link;
    STRPTR      cat_Language;
    ULONG       cat_CodeSet;
    UWORD       cat_Version;
    UWORD       cat_Revision;

/****** private *******/

};


#define SC_ASCII    0
#define SC_COLLATE1 0
#define SC_COLLATE2 0



#ifdef __IGNORE_NOT_SUPPORTED__

 #define SS_NOSPACE 0
 #define SS_SPACE   0

 #define SP_PARENS    0
 #define SP_PREC_ALL  0
 #define SP_SUCC_ALL  0
 #define SP_PREC_CURR 0
 #define SP_SUCC_CURR 0

 #define CSP_PRECEDES 0
 #define CSP_SUCCEEDS 0

#endif /** __IGNORE_NOT_SUPPORTED__ **/



#endif  /* LIBRARIES_LOCALE_H */
