/* 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 cjk-decimal {
  system: numeric;
  range: 0 infinite;
  symbols: \3007  \4E00  \4E8C  \4E09  \56DB  \4E94  \516D  \4E03  \516B  \4E5D;
  suffix: '\3001';
}

/* Though {lower,upper}-roman have been defined as builtin styles, they
 * are redefined here to allow the correct extending behavior. */

@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 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 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;
}

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

/* 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 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;
}

/* Predefined Counter Styles */

/* Some counter styles defined in Predefined Counter Styles are also included
 * here for compatibility with other browsers. */

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

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

@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 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 bengali {
  system: numeric;
  symbols: \9E6  \9E7  \9E8  \9E9  \9EA  \9EB  \9EC  \9ED  \9EE  \9EF;
}

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

@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;
}

@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 kannada {
  system: numeric;
  symbols: \CE6  \CE7  \CE8  \CE9  \CEA  \CEB  \CEC  \CED  \CEE  \CEF;
}

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

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

@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 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;
}

/* 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;
}
