/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* Defined in CSS Counter Styles Level 3 */

/* 6 Simple Predefined Counter Styles */

/* 6.1 Numeric */

@counter-style decimal-leading-zero {
  system: extends decimal;
  pad: 2 '0';
}

@counter-style arabic-indic {
  system: numeric;
  symbols: \660  \661  \662  \663  \664  \665  \666  \667  \668  \669;
}

@counter-style armenian {
  system: additive;
  range: 1 9999;
  additive-symbols: 9000 \554, 8000 \553, 7000 \552, 6000 \551, 5000 \550, 4000 \54F, 3000 \54E, 2000 \54D, 1000 \54C, 900 \54B, 800 \54A, 700 \549, 600 \548, 500 \547, 400 \546, 300 \545, 200 \544, 100 \543, 90 \542, 80 \541, 70 \540, 60 \53F, 50 \53E, 40 \53D, 30 \53C, 20 \53B, 10 \53A, 9 \539, 8 \538, 7 \537, 6 \536, 5 \535, 4 \534, 3 \533, 2 \532, 1 \531;
}

@counter-style upper-armenian {
  system: additive;
  range: 1 9999;
  additive-symbols: 9000 \554, 8000 \553, 7000 \552, 6000 \551, 5000 \550, 4000 \54F, 3000 \54E, 2000 \54D, 1000 \54C, 900 \54B, 800 \54A, 700 \549, 600 \548, 500 \547, 400 \546, 300 \545, 200 \544, 100 \543, 90 \542, 80 \541, 70 \540, 60 \53F, 50 \53E, 40 \53D, 30 \53C, 20 \53B, 10 \53A, 9 \539, 8 \538, 7 \537, 6 \536, 5 \535, 4 \534, 3 \533, 2 \532, 1 \531;
}

@counter-style lower-armenian {
  system: additive;
  range: 1 9999;
  additive-symbols: 9000 \584, 8000 \583, 7000 \582, 6000 \581, 5000 \580, 4000 \57F, 3000 \57E, 2000 \57D, 1000 \57C, 900 \57B, 800 \57A, 700 \579, 600 \578, 500 \577, 400 \576, 300 \575, 200 \574, 100 \573, 90 \572, 80 \571, 70 \570, 60 \56F, 50 \56E, 40 \56D, 30 \56C, 20 \56B, 10 \56A, 9 \569, 8 \568, 7 \567, 6 \566, 5 \565, 4 \564, 3 \563, 2 \562, 1 \561;
}

@counter-style bengali {
  system: numeric;
  symbols: \9E6  \9E7  \9E8  \9E9  \9EA  \9EB  \9EC  \9ED  \9EE  \9EF;
}

@counter-style cambodian {
  system: extends khmer;
}

@counter-style khmer {
  system: numeric;
  symbols: \17E0  \17E1  \17E2  \17E3  \17E4  \17E5  \17E6  \17E7  \17E8  \17E9;
}

@counter-style cjk-decimal {
  system: numeric;
  range: 0 infinite;
  symbols: \3007  \4E00  \4E8C  \4E09  \56DB  \4E94  \516D  \4E03  \516B  \4E5D;
  suffix: '\3001';
}

@counter-style devanagari {
  system: numeric;
  symbols: \966  \967  \968  \969  \96A  \96B  \96C  \96D  \96E  \96F;
}

@counter-style georgian {
  system: additive;
  range: 1 19999;
  additive-symbols: 10000 \10F5, 9000 \10F0, 8000 \10EF, 7000 \10F4, 6000 \10EE, 5000 \10ED, 4000 \10EC, 3000 \10EB, 2000 \10EA, 1000 \10E9, 900 \10E8, 800 \10E7, 700 \10E6, 600 \10E5, 500 \10E4, 400 \10F3, 300 \10E2, 200 \10E1, 100 \10E0, 90 \10DF, 80 \10DE, 70 \10DD, 60 \10F2, 50 \10DC, 40 \10DB, 30 \10DA, 20 \10D9, 10 \10D8, 9 \10D7, 8 \10F1, 7 \10D6, 6 \10D5, 5 \10D4, 4 \10D3, 3 \10D2, 2 \10D1, 1 \10D0;
}

@counter-style gujarati {
  system: numeric;
  symbols: \AE6  \AE7  \AE8  \AE9  \AEA  \AEB  \AEC  \AED  \AEE  \AEF;
}

@counter-style gurmukhi {
  system: numeric;
  symbols: \A66  \A67  \A68  \A69  \A6A  \A6B  \A6C  \A6D  \A6E  \A6F;
}

/* hebrew is not included because our builtin algorithm can generate a wider
 * range of number in this style than what the spec defines. */

@counter-style kannada {
  system: numeric;
  symbols: \CE6  \CE7  \CE8  \CE9  \CEA  \CEB  \CEC  \CED  \CEE  \CEF;
}

@counter-style lao {
  system: numeric;
  symbols: \ED0  \ED1  \ED2  \ED3  \ED4  \ED5  \ED6  \ED7  \ED8  \ED9;
}

@counter-style malayalam {
  system: numeric;
  symbols: \D66  \D67  \D68  \D69  \D6A  \D6B  \D6C  \D6D  \D6E  \D6F;
}

@counter-style mongolian {
  system: numeric;
  symbols: \1810  \1811  \1812  \1813  \1814  \1815  \1816  \1817  \1818  \1819;
}

@counter-style myanmar {
  system: numeric;
  symbols: \1040  \1041  \1042  \1043  \1044  \1045  \1046  \1047  \1048  \1049;
}

@counter-style oriya {
  system: numeric;
  symbols: \B66  \B67  \B68  \B69  \B6A  \B6B  \B6C  \B6D  \B6E  \B6F;
}

@counter-style persian {
  system: numeric;
  symbols: \6F0  \6F1  \6F2  \6F3  \6F4  \6F5  \6F6  \6F7  \6F8  \6F9;
}

@counter-style lower-roman {
  system: additive;
  range: 1 3999;
  additive-symbols: 1000 m, 900 cm, 500 d, 400 cd, 100 c, 90 xc, 50 l, 40 xl, 10 x, 9 ix, 5 v, 4 iv, 1 i;
}

@counter-style upper-roman {
  system: additive;
  range: 1 3999;
  additive-symbols: 1000 M, 900 CM, 500 D, 400 CD, 100 C, 90 XC, 50 L, 40 XL, 10 X, 9 IX, 5 V, 4 IV, 1 I;
}

@counter-style tamil {
  system: numeric;
  symbols: \BE6  \BE7  \BE8  \BE9  \BEA  \BEB  \BEC  \BED  \BEE  \BEF;
}

@counter-style telugu {
  system: numeric;
  symbols: \C66  \C67  \C68  \C69  \C6A  \C6B  \C6C  \C6D  \C6E  \C6F;
}

@counter-style thai {
  system: numeric;
  symbols: \E50  \E51  \E52  \E53  \E54  \E55  \E56  \E57  \E58  \E59;
}

@counter-style tibetan {
  system: numeric;
  symbols: \F20  \F21  \F22  \F23  \F24  \F25  \F26  \F27  \F28  \F29;
}

/* 6.2 Alphabetic */

@counter-style lower-alpha {
  system: alphabetic;
  symbols: a b c d e f g h i j k l m n o p q r s t u v w x y z;
}

@counter-style lower-latin {
  system: extends lower-alpha;
}

@counter-style upper-alpha {
  system: alphabetic;
  symbols: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z;
}

@counter-style upper-latin {
  system: extends upper-alpha;
}

@counter-style cjk-heavenly-stem {
  system: alphabetic;
  symbols: \7532  \4E59  \4E19  \4E01  \620A  \5DF1  \5E9A  \8F9B  \58EC  \7678;
  fallback: cjk-decimal;
  suffix: '\3001';
}

@counter-style cjk-earthly-branch {
  system: alphabetic;
  symbols: \5B50  \4E11  \5BC5  \536F  \8FB0  \5DF3  \5348  \672A  \7533  \9149  \620C  \4EA5;
  fallback: cjk-decimal;
  suffix: '\3001';
}

@counter-style lower-greek {
  system: alphabetic;
  symbols: \3B1  \3B2  \3B3  \3B4  \3B5  \3B6  \3B7  \3B8  \3B9  \3BA  \3BB  \3BC  \3BD  \3BE  \3BF  \3C0  \3C1  \3C3  \3C4  \3C5  \3C6  \3C7  \3C8  \3C9;
}

@counter-style hiragana {
  system: alphabetic;
  symbols: \3042  \3044  \3046  \3048  \304A  \304B  \304D  \304F  \3051  \3053  \3055  \3057  \3059  \305B  \305D  \305F  \3061  \3064  \3066  \3068  \306A  \306B  \306C  \306D  \306E  \306F  \3072  \3075  \3078  \307B  \307E  \307F  \3080  \3081  \3082  \3084  \3086  \3088  \3089  \308A  \308B  \308C  \308D  \308F  \3090  \3091  \3092  \3093;
  suffix: '\3001';
}

@counter-style hiragana-iroha {
  system: alphabetic;
  symbols: \3044  \308D  \306F  \306B  \307B  \3078  \3068  \3061  \308A  \306C  \308B  \3092  \308F  \304B  \3088  \305F  \308C  \305D  \3064  \306D  \306A  \3089  \3080  \3046  \3090  \306E  \304A  \304F  \3084  \307E  \3051  \3075  \3053  \3048  \3066  \3042  \3055  \304D  \3086  \3081  \307F  \3057  \3091  \3072  \3082  \305B  \3059;
  suffix: '\3001';
}

@counter-style katakana {
  system: alphabetic;
  symbols: \30A2  \30A4  \30A6  \30A8  \30AA  \30AB  \30AD  \30AF  \30B1  \30B3  \30B5  \30B7  \30B9  \30BB  \30BD  \30BF  \30C1  \30C4  \30C6  \30C8  \30CA  \30CB  \30CC  \30CD  \30CE  \30CF  \30D2  \30D5  \30D8  \30DB  \30DE  \30DF  \30E0  \30E1  \30E2  \30E4  \30E6  \30E8  \30E9  \30EA  \30EB  \30EC  \30ED  \30EF  \30F0  \30F1  \30F2  \30F3;
  suffix: '\3001';
}

@counter-style katakana-iroha {
  system: alphabetic;
  symbols: \30A4  \30ED  \30CF  \30CB  \30DB  \30D8  \30C8  \30C1  \30EA  \30CC  \30EB  \30F2  \30EF  \30AB  \30E8  \30BF  \30EC  \30BD  \30C4  \30CD  \30CA  \30E9  \30E0  \30A6  \30F0  \30CE  \30AA  \30AF  \30E4  \30DE  \30B1  \30D5  \30B3  \30A8  \30C6  \30A2  \30B5  \30AD  \30E6  \30E1  \30DF  \30B7  \30F1  \30D2  \30E2  \30BB  \30B9;
  suffix: '\3001';
}

/* 6.3 Symbolic */

/* symbolic counter styles are not included because they will be drew directly
 * by the program instead of use alternative symbols defined in the spec */

/* 7 Complex Predefined Counter Styles */

/* only alias is included as other complex counter styles will be generated by
 * specific algorithms to support the extended range. */

@counter-style cjk-ideographic {
  system: extends trad-chinese-informal;
}

/* Mozilla-specific counter styles */

/* Numeric */

@counter-style -moz-arabic-indic {
  system: extends arabic-indic;
}

@counter-style -moz-persian {
  system: extends persian;
}

@counter-style -moz-urdu {
  system: extends persian;
}

@counter-style -moz-devanagari {
  system: extends devanagari;
}

@counter-style -moz-bengali {
  system: extends bengali;
}

@counter-style -moz-gurmukhi {
  system: extends gurmukhi;
}

@counter-style -moz-gujarati {
  system: extends gujarati;
}

@counter-style -moz-oriya {
  system: extends oriya;
}

@counter-style -moz-tamil {
  system: extends tamil;
}

@counter-style -moz-telugu {
  system: extends telugu;
}

@counter-style -moz-kannada {
  system: extends kannada;
}

@counter-style -moz-malayalam {
  system: extends malayalam;
}

@counter-style -moz-thai {
  system: extends thai;
}

@counter-style -moz-lao {
  system: extends lao;
}

@counter-style -moz-myanmar {
  system: extends myanmar;
}

@counter-style -moz-khmer {
  system: extends khmer;
}

/* Alphabetic */

@counter-style -moz-cjk-heavenly-stem {
  system: extends cjk-heavenly-stem;
}
@counter-style -moz-cjk-earthly-branch {
  system: extends cjk-earthly-branch;
}

@counter-style -moz-hangul {
  system: alphabetic;
  symbols: \AC00  \B098  \B2E4  \B77C  \B9C8  \BC14  \C0AC  \C544  \C790  \CC28  \CE74  \D0C0  \D30C  \D558;
  suffix: ',';
}
@counter-style -moz-hangul-consonant {
  system: alphabetic;
  symbols: \3131  \3134  \3137  \3139  \3141  \3142  \3145  \3147  \3148  \314A  \314B  \314C  \314D  \314E;
  suffix: ',';
}

/* Ge'ez set of Ethiopic ordered list. There are other locale-dependent sets.
 * For the time being, let's implement two Ge'ez sets only
 * per Momoi san's suggestion in bug 102252. 
 * For details, refer to http://www.ethiopic.org/Collation/OrderedLists.html. */
@counter-style -moz-ethiopic-halehame {
  system: alphabetic;
  symbols: \1200  \1208  \1210  \1218  \1220  \1228  \1230  \1240  \1260  \1270  \1280  \1290  \12A0  \12A8  \12C8  \12D0  \12D8  \12E8  \12F0  \1308  \1320  \1330  \1338  \1340  \1348  \1350;
}
@counter-style -moz-ethiopic-halehame-am {
  system: alphabetic;
  symbols: \1200  \1208  \1210  \1218  \1220  \1228  \1230  \1238  \1240  \1260  \1270  \1278  \1280  \1290  \1298  \12A0  \12A8  \12B8  \12C8  \12D0  \12D8  \12E0  \12E8  \12F0  \1300  \1308  \1320  \1328  \1330  \1338  \1340  \1348  \1350;
}
@counter-style -moz-ethiopic-halehame-ti-er {
  system: alphabetic;
  symbols: \1200  \1208  \1210  \1218  \1228  \1230  \1238  \1240  \1250  \1260  \1270  \1278  \1290  \1298  \12A0  \12A8  \12B8  \12C8  \12D0  \12D8  \12E0  \12E8  \12F0  \1300  \1308  \1320  \1328  \1330  \1338  \1348  \1350;
}
@counter-style -moz-ethiopic-halehame-ti-et {
  system: alphabetic;
  symbols: \1200  \1208  \1210  \1218  \1220  \1228  \1230  \1238  \1240  \1250  \1260  \1270  \1278  \1280  \1290  \1298  \12A0  \12A8  \12B8  \12C8  \12D0  \12D8  \12E0  \12E8  \12F0  \1300  \1308  \1320  \1328  \1330  \1338  \1340  \1348  \1350;
}

/* Alias */

@counter-style -moz-trad-chinese-informal {
  system: extends trad-chinese-informal;
}

@counter-style -moz-trad-chinese-formal {
  system: extends trad-chinese-formal;
}

@counter-style -moz-simp-chinese-informal {
  system: extends simp-chinese-informal;
}

@counter-style -moz-simp-chinese-formal {
  system: extends simp-chinese-formal;
}

@counter-style -moz-japanese-informal {
  system: extends japanese-informal;
}

@counter-style -moz-japanese-formal {
  system: extends japanese-formal;
}

@counter-style -moz-ethiopic-numeric {
  system: extends ethiopic-numeric;
}