//***************************************************************************
// This source code is copyrighted 2002 by Google Inc.  All rights
// reserved.  You are given a limited license to use this source code for
// purposes of participating in the Google programming contest.  If you
// choose to use or distribute the source code for any other purpose, you
// must either (1) first obtain written approval from Google, or (2)
// prominently display the foregoing copyright notice and the following
// warranty and liability disclaimer on each copy used or distributed.
// 
// The source code and repository (the "Software") is provided "AS IS",
// with no warranty, express or implied, including but not limited to the
// implied warranties of merchantability and fitness for a particular
// use.  In no event shall Google Inc. be liable for any damages, direct
// or indirect, even if advised of the possibility of such damages.
//***************************************************************************


#ifndef _LANG_ENC_H_
#define _LANG_ENC_H_

#define LATIN1		 ISO_8859_1
#define LATIN2		 ISO_8859_2
#define LATIN3		 ISO_8859_3
#define LATIN4		 ISO_8859_4
#define CYRILLIC	 ISO_8859_5
#define ARABIC_ENCODING  ISO_8859_6
#define GREEK_ENCODING	 ISO_8859_7
#define HEBREW_ENCODING  ISO_8859_8
#define LATIN5		 ISO_8859_9
#define LATIN6		 ISO_8859_10
#define KOREAN_HANGUL	 KOREAN_EUC_KR

enum Language {  
  ENGLISH = 0,         
  DANISH,
  DUTCH,
  FINNISH,
  FRENCH,
  GERMAN,
  HEBREW,
  ITALIAN,
  JAPANESE,
  KOREAN,
  NORWEGIAN,
  POLISH,
  PORTUGUESE,
  RUSSIAN,
  SPANISH,
  SWEDISH,
  CHINESE,            
  CZECH,              
  GREEK,              
  ICELANDIC,          
  LATVIAN,            
  LITHUANIAN,         
  ROMANIAN,           
  HUNGARIAN,          
  ESTONIAN,           
  OTHER_UNKNOWN_LANGUAGE,
  UNKNOWN_LANGUAGE, 
  BULGARIAN,                 
  CROATIAN,
  SERBIAN,
  IRISH,
  GALICIAN,
  TAGALOG,
  TURKISH,
  UKRAINIAN,
  HINDI,
  MACEDONIAN,
  BENGALI,
  INDONESIAN,
  LATIN,
  MALAY,
  MALAYALAM,
  WELSH,
  NEPALI,
  TELUGU,
  ALBANIAN,
  TAMIL,
  THAI,
  ARABIC,
  CATALAN,
  ESPERANTO,
  BASQUE,
  INTERLINGUA,
  KANNADA,
  PUNJABI,
  SCOTS_GAELIC,
  SWAHILI,
  SLOVENIAN,
  MARATHI,
  MALTESE,
  VIETNAMESE,
  FRISIAN,
  SLOVAK,
  NUM_LANGUAGES,              // Always keep this at the end. It is not a 
                              // valid Language enum, it is only used to 
                              // indicate the total number of Languages.
};

enum Encoding {  
  ISO_8859_1 = 0,
  ISO_8859_2,
  ISO_8859_3,
  ISO_8859_4,
  ISO_8859_5,
  ISO_8859_6,
  ISO_8859_7,
  ISO_8859_8,
  ISO_8859_9,
  ISO_8859_10,
  JAPANESE_EUC_JP,
  JAPANESE_SHIFT_JIS,
  JAPANESE_JIS,
  CHINESE_BIG5,
  CHINESE_GB,
  CHINESE_EUC_CN,
  KOREAN_EUC_KR,
  UNICODE,
  CHINESE_EUC_DEC,
  CHINESE_CNS,
  CHINESE_BIG5_CP950,
  JAPANESE_CP932,
  UTF8,
  UNKNOWN_ENCODING,
  ASCII_7BIT,                // ISO_8859_1 with all characters <= 127.
                             // never returned by Document::encoding().
  RUSSIAN_KOI8_R,
  RUSSIAN_CP1251,
  MSFT_CP1252,
  RUSSIAN_KOI8_RU,
  MSFT_CP1250,
  ISO_8859_15,
  MSFT_CP1254,
  MSFT_CP1257,
  ISO_8859_11,
  MSFT_CP874,
  MSFT_CP1256,
  MSFT_CP1255,               // Logical Hebrew Microsoft
  ISO_8859_8_I,              // Iso Hebrew Logical
  HEBREW_VISUAL,             // Iso Hebrew Visual

  NUM_ENCODINGS              // Always keep this at the end. It is not a 
                             // valid Encoding enum, it is only used to 
                             // indicate the total number of Encodings.
};

#define kDefaultLanguage ENGLISH
#define kDefaultEncoding LATIN1

#endif // _LANG_ENC_H_

