less/roojs-bootstrap/money-field.less
[roojs1] / roojs-bootstrap-debug.js
index c22e8dd..32e01b8 100644 (file)
@@ -7675,7 +7675,6 @@ Roo.extend(Roo.bootstrap.Form, Roo.bootstrap.Component,  {
         var target = false;
         
         items.each(function(f){
-            Roo.log(f.name);
             if(f.validate()){
                 return;
             }
@@ -8916,8 +8915,8 @@ Roo.extend(Roo.bootstrap.Input, Roo.bootstrap.Component,  {
         this.indicator = this.indicatorEl();
         
         if(this.indicator){
-            this.indicator.setVisibilityMode(Roo.Element.DISPLAY);
-            this.indicator.hide();
+            this.indicator.addClass('invisible');
+            
         }
  
         // reference to original value for reset
@@ -9225,7 +9224,8 @@ Roo.extend(Roo.bootstrap.Input, Roo.bootstrap.Component,  {
         }
         
         if(this.indicator){
-            this.indicator.hide();
+            this.indicator.removeClass('visible');
+            this.indicator.addClass('invisible');
         }
         
         this.el.addClass(this.validClass);
@@ -9271,7 +9271,8 @@ Roo.extend(Roo.bootstrap.Input, Roo.bootstrap.Component,  {
         }
         
         if(this.indicator){
-            this.indicator.show();
+            this.indicator.removeClass('invisible');
+            this.indicator.addClass('visible');
         }
         
         this.el.addClass(this.invalidClass);
@@ -15229,6 +15230,14 @@ Roo.extend(Roo.bootstrap.ComboBox, Roo.bootstrap.TriggerField, {
             
             var default_text = '-- SELECT --';
             
+            if(this.placeholder.length){
+                default_text = this.placeholder;
+            }
+            
+            if(this.emptyTitle.length){
+                default_text += ' - ' + this.emptyTitle + ' -';
+            }
+            
             var opt = this.inputEl().createChild({
                 tag: 'option',
                 value : 0,
@@ -33352,8 +33361,7 @@ Roo.extend(Roo.bootstrap.RadioSet, Roo.bootstrap.Input,  {
         this.itemsEl = this.el.select('.roo-radio-set-items', true).first();
         this.itemsEl.setVisibilityMode(Roo.Element.DISPLAY);
         
-        this.indicatorEl().setVisibilityMode(Roo.Element.DISPLAY);
-        this.indicatorEl().hide();
+        this.indicatorEl().addClass('invisible');
         
         this.originalValue = this.getValue();
         
@@ -33405,7 +33413,8 @@ Roo.extend(Roo.bootstrap.RadioSet, Roo.bootstrap.Input,  {
     markValid : function()
     {
         if(this.labelEl.isVisible(true)){
-            this.indicatorEl().hide();
+            this.indicatorEl().removeClass('visible');
+            this.indicatorEl().addClass('invisible');
         }
         
         this.el.removeClass([this.invalidClass, this.validClass]);
@@ -33421,7 +33430,8 @@ Roo.extend(Roo.bootstrap.RadioSet, Roo.bootstrap.Input,  {
         }
         
         if(this.labelEl.isVisible(true)){
-            this.indicatorEl().show();
+            this.indicatorEl().removeClass('invisible');
+            this.indicatorEl().addClass('visible');
         }
         
         this.el.removeClass([this.invalidClass, this.validClass]);
@@ -35447,7 +35457,9 @@ Roo.extend(Roo.bootstrap.layout.Region, Roo.bootstrap.layout.Basic, {
     {
         panel = this.getPanel(panel);
         if(this.activePanel && this.activePanel != panel){
-            this.activePanel.setActiveState(false);
+            if(this.activePanel.setActiveState(false) === false){
+                return;
+            }
         }
         this.activePanel = panel;
         panel.setActiveState(true);
@@ -36490,10 +36502,13 @@ Roo.extend(Roo.bootstrap.panel.Content, Roo.bootstrap.Component, {
         this.active = active;
         this.setActiveClass(active);
         if(!active){
-            this.fireEvent("deactivate", this);
-        }else{
-            this.fireEvent("activate", this);
+            if(this.fireEvent("deactivate", this) === false){
+                return false;
+            }
+            return true;
         }
+        this.fireEvent("activate", this);
+        return true;
     },
     /**
      * Updates this panel's element
@@ -37654,7 +37669,7 @@ Roo.bootstrap.panel.TabItem = function(config){
     this.inner = Roo.get(els.inner, true);
     this.textEl = Roo.get(this.el.dom.firstChild, true);
     this.pnode = Roo.get(els.el.parentNode, true);
-    this.el.on("mousedown", this.onTabMouseDown, this);
+//    this.el.on("mousedown", this.onTabMouseDown, this);
     this.el.on("click", this.onTabClick, this);
     /** @private */
     if(config.closable){
@@ -37927,27 +37942,1323 @@ Roo.extend(Roo.bootstrap.panel.TabItem, Roo.util.Observable,
      */
     closeText : "Close this tab"
 });
+/**
+*    This script refer to:
+*    Title: International Telephone Input
+*    Author: Jack O'Connor
+*    Code version:  v12.1.12
+*    Availability: https://github.com/jackocnr/intl-tel-input.git
+**/
+
+Roo.bootstrap.PhoneInputData = function() {
+    var d = [
+      [
+        "Afghanistan (‫افغانستان‬‎)",
+        "af",
+        "93"
+      ],
+      [
+        "Albania (Shqipëri)",
+        "al",
+        "355"
+      ],
+      [
+        "Algeria (‫الجزائر‬‎)",
+        "dz",
+        "213"
+      ],
+      [
+        "American Samoa",
+        "as",
+        "1684"
+      ],
+      [
+        "Andorra",
+        "ad",
+        "376"
+      ],
+      [
+        "Angola",
+        "ao",
+        "244"
+      ],
+      [
+        "Anguilla",
+        "ai",
+        "1264"
+      ],
+      [
+        "Antigua and Barbuda",
+        "ag",
+        "1268"
+      ],
+      [
+        "Argentina",
+        "ar",
+        "54"
+      ],
+      [
+        "Armenia (Հայաստան)",
+        "am",
+        "374"
+      ],
+      [
+        "Aruba",
+        "aw",
+        "297"
+      ],
+      [
+        "Australia",
+        "au",
+        "61",
+        0
+      ],
+      [
+        "Austria (Österreich)",
+        "at",
+        "43"
+      ],
+      [
+        "Azerbaijan (Azərbaycan)",
+        "az",
+        "994"
+      ],
+      [
+        "Bahamas",
+        "bs",
+        "1242"
+      ],
+      [
+        "Bahrain (‫البحرين‬‎)",
+        "bh",
+        "973"
+      ],
+      [
+        "Bangladesh (বাংলাদেশ)",
+        "bd",
+        "880"
+      ],
+      [
+        "Barbados",
+        "bb",
+        "1246"
+      ],
+      [
+        "Belarus (Беларусь)",
+        "by",
+        "375"
+      ],
+      [
+        "Belgium (België)",
+        "be",
+        "32"
+      ],
+      [
+        "Belize",
+        "bz",
+        "501"
+      ],
+      [
+        "Benin (Bénin)",
+        "bj",
+        "229"
+      ],
+      [
+        "Bermuda",
+        "bm",
+        "1441"
+      ],
+      [
+        "Bhutan (འབྲུག)",
+        "bt",
+        "975"
+      ],
+      [
+        "Bolivia",
+        "bo",
+        "591"
+      ],
+      [
+        "Bosnia and Herzegovina (Босна и Херцеговина)",
+        "ba",
+        "387"
+      ],
+      [
+        "Botswana",
+        "bw",
+        "267"
+      ],
+      [
+        "Brazil (Brasil)",
+        "br",
+        "55"
+      ],
+      [
+        "British Indian Ocean Territory",
+        "io",
+        "246"
+      ],
+      [
+        "British Virgin Islands",
+        "vg",
+        "1284"
+      ],
+      [
+        "Brunei",
+        "bn",
+        "673"
+      ],
+      [
+        "Bulgaria (България)",
+        "bg",
+        "359"
+      ],
+      [
+        "Burkina Faso",
+        "bf",
+        "226"
+      ],
+      [
+        "Burundi (Uburundi)",
+        "bi",
+        "257"
+      ],
+      [
+        "Cambodia (កម្ពុជា)",
+        "kh",
+        "855"
+      ],
+      [
+        "Cameroon (Cameroun)",
+        "cm",
+        "237"
+      ],
+      [
+        "Canada",
+        "ca",
+        "1",
+        1,
+        ["204", "226", "236", "249", "250", "289", "306", "343", "365", "387", "403", "416", "418", "431", "437", "438", "450", "506", "514", "519", "548", "579", "581", "587", "604", "613", "639", "647", "672", "705", "709", "742", "778", "780", "782", "807", "819", "825", "867", "873", "902", "905"]
+      ],
+      [
+        "Cape Verde (Kabu Verdi)",
+        "cv",
+        "238"
+      ],
+      [
+        "Caribbean Netherlands",
+        "bq",
+        "599",
+        1
+      ],
+      [
+        "Cayman Islands",
+        "ky",
+        "1345"
+      ],
+      [
+        "Central African Republic (République centrafricaine)",
+        "cf",
+        "236"
+      ],
+      [
+        "Chad (Tchad)",
+        "td",
+        "235"
+      ],
+      [
+        "Chile",
+        "cl",
+        "56"
+      ],
+      [
+        "China (中国)",
+        "cn",
+        "86"
+      ],
+      [
+        "Christmas Island",
+        "cx",
+        "61",
+        2
+      ],
+      [
+        "Cocos (Keeling) Islands",
+        "cc",
+        "61",
+        1
+      ],
+      [
+        "Colombia",
+        "co",
+        "57"
+      ],
+      [
+        "Comoros (‫جزر القمر‬‎)",
+        "km",
+        "269"
+      ],
+      [
+        "Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",
+        "cd",
+        "243"
+      ],
+      [
+        "Congo (Republic) (Congo-Brazzaville)",
+        "cg",
+        "242"
+      ],
+      [
+        "Cook Islands",
+        "ck",
+        "682"
+      ],
+      [
+        "Costa Rica",
+        "cr",
+        "506"
+      ],
+      [
+        "Côte d’Ivoire",
+        "ci",
+        "225"
+      ],
+      [
+        "Croatia (Hrvatska)",
+        "hr",
+        "385"
+      ],
+      [
+        "Cuba",
+        "cu",
+        "53"
+      ],
+      [
+        "Curaçao",
+        "cw",
+        "599",
+        0
+      ],
+      [
+        "Cyprus (Κύπρος)",
+        "cy",
+        "357"
+      ],
+      [
+        "Czech Republic (Česká republika)",
+        "cz",
+        "420"
+      ],
+      [
+        "Denmark (Danmark)",
+        "dk",
+        "45"
+      ],
+      [
+        "Djibouti",
+        "dj",
+        "253"
+      ],
+      [
+        "Dominica",
+        "dm",
+        "1767"
+      ],
+      [
+        "Dominican Republic (República Dominicana)",
+        "do",
+        "1",
+        2,
+        ["809", "829", "849"]
+      ],
+      [
+        "Ecuador",
+        "ec",
+        "593"
+      ],
+      [
+        "Egypt (‫مصر‬‎)",
+        "eg",
+        "20"
+      ],
+      [
+        "El Salvador",
+        "sv",
+        "503"
+      ],
+      [
+        "Equatorial Guinea (Guinea Ecuatorial)",
+        "gq",
+        "240"
+      ],
+      [
+        "Eritrea",
+        "er",
+        "291"
+      ],
+      [
+        "Estonia (Eesti)",
+        "ee",
+        "372"
+      ],
+      [
+        "Ethiopia",
+        "et",
+        "251"
+      ],
+      [
+        "Falkland Islands (Islas Malvinas)",
+        "fk",
+        "500"
+      ],
+      [
+        "Faroe Islands (Føroyar)",
+        "fo",
+        "298"
+      ],
+      [
+        "Fiji",
+        "fj",
+        "679"
+      ],
+      [
+        "Finland (Suomi)",
+        "fi",
+        "358",
+        0
+      ],
+      [
+        "France",
+        "fr",
+        "33"
+      ],
+      [
+        "French Guiana (Guyane française)",
+        "gf",
+        "594"
+      ],
+      [
+        "French Polynesia (Polynésie française)",
+        "pf",
+        "689"
+      ],
+      [
+        "Gabon",
+        "ga",
+        "241"
+      ],
+      [
+        "Gambia",
+        "gm",
+        "220"
+      ],
+      [
+        "Georgia (საქართველო)",
+        "ge",
+        "995"
+      ],
+      [
+        "Germany (Deutschland)",
+        "de",
+        "49"
+      ],
+      [
+        "Ghana (Gaana)",
+        "gh",
+        "233"
+      ],
+      [
+        "Gibraltar",
+        "gi",
+        "350"
+      ],
+      [
+        "Greece (Ελλάδα)",
+        "gr",
+        "30"
+      ],
+      [
+        "Greenland (Kalaallit Nunaat)",
+        "gl",
+        "299"
+      ],
+      [
+        "Grenada",
+        "gd",
+        "1473"
+      ],
+      [
+        "Guadeloupe",
+        "gp",
+        "590",
+        0
+      ],
+      [
+        "Guam",
+        "gu",
+        "1671"
+      ],
+      [
+        "Guatemala",
+        "gt",
+        "502"
+      ],
+      [
+        "Guernsey",
+        "gg",
+        "44",
+        1
+      ],
+      [
+        "Guinea (Guinée)",
+        "gn",
+        "224"
+      ],
+      [
+        "Guinea-Bissau (Guiné Bissau)",
+        "gw",
+        "245"
+      ],
+      [
+        "Guyana",
+        "gy",
+        "592"
+      ],
+      [
+        "Haiti",
+        "ht",
+        "509"
+      ],
+      [
+        "Honduras",
+        "hn",
+        "504"
+      ],
+      [
+        "Hong Kong (香港)",
+        "hk",
+        "852"
+      ],
+      [
+        "Hungary (Magyarország)",
+        "hu",
+        "36"
+      ],
+      [
+        "Iceland (Ísland)",
+        "is",
+        "354"
+      ],
+      [
+        "India (भारत)",
+        "in",
+        "91"
+      ],
+      [
+        "Indonesia",
+        "id",
+        "62"
+      ],
+      [
+        "Iran (‫ایران‬‎)",
+        "ir",
+        "98"
+      ],
+      [
+        "Iraq (‫العراق‬‎)",
+        "iq",
+        "964"
+      ],
+      [
+        "Ireland",
+        "ie",
+        "353"
+      ],
+      [
+        "Isle of Man",
+        "im",
+        "44",
+        2
+      ],
+      [
+        "Israel (‫ישראל‬‎)",
+        "il",
+        "972"
+      ],
+      [
+        "Italy (Italia)",
+        "it",
+        "39",
+        0
+      ],
+      [
+        "Jamaica",
+        "jm",
+        "1876"
+      ],
+      [
+        "Japan (日本)",
+        "jp",
+        "81"
+      ],
+      [
+        "Jersey",
+        "je",
+        "44",
+        3
+      ],
+      [
+        "Jordan (‫الأردن‬‎)",
+        "jo",
+        "962"
+      ],
+      [
+        "Kazakhstan (Казахстан)",
+        "kz",
+        "7",
+        1
+      ],
+      [
+        "Kenya",
+        "ke",
+        "254"
+      ],
+      [
+        "Kiribati",
+        "ki",
+        "686"
+      ],
+      [
+        "Kosovo",
+        "xk",
+        "383"
+      ],
+      [
+        "Kuwait (‫الكويت‬‎)",
+        "kw",
+        "965"
+      ],
+      [
+        "Kyrgyzstan (Кыргызстан)",
+        "kg",
+        "996"
+      ],
+      [
+        "Laos (ລາວ)",
+        "la",
+        "856"
+      ],
+      [
+        "Latvia (Latvija)",
+        "lv",
+        "371"
+      ],
+      [
+        "Lebanon (‫لبنان‬‎)",
+        "lb",
+        "961"
+      ],
+      [
+        "Lesotho",
+        "ls",
+        "266"
+      ],
+      [
+        "Liberia",
+        "lr",
+        "231"
+      ],
+      [
+        "Libya (‫ليبيا‬‎)",
+        "ly",
+        "218"
+      ],
+      [
+        "Liechtenstein",
+        "li",
+        "423"
+      ],
+      [
+        "Lithuania (Lietuva)",
+        "lt",
+        "370"
+      ],
+      [
+        "Luxembourg",
+        "lu",
+        "352"
+      ],
+      [
+        "Macau (澳門)",
+        "mo",
+        "853"
+      ],
+      [
+        "Macedonia (FYROM) (Македонија)",
+        "mk",
+        "389"
+      ],
+      [
+        "Madagascar (Madagasikara)",
+        "mg",
+        "261"
+      ],
+      [
+        "Malawi",
+        "mw",
+        "265"
+      ],
+      [
+        "Malaysia",
+        "my",
+        "60"
+      ],
+      [
+        "Maldives",
+        "mv",
+        "960"
+      ],
+      [
+        "Mali",
+        "ml",
+        "223"
+      ],
+      [
+        "Malta",
+        "mt",
+        "356"
+      ],
+      [
+        "Marshall Islands",
+        "mh",
+        "692"
+      ],
+      [
+        "Martinique",
+        "mq",
+        "596"
+      ],
+      [
+        "Mauritania (‫موريتانيا‬‎)",
+        "mr",
+        "222"
+      ],
+      [
+        "Mauritius (Moris)",
+        "mu",
+        "230"
+      ],
+      [
+        "Mayotte",
+        "yt",
+        "262",
+        1
+      ],
+      [
+        "Mexico (México)",
+        "mx",
+        "52"
+      ],
+      [
+        "Micronesia",
+        "fm",
+        "691"
+      ],
+      [
+        "Moldova (Republica Moldova)",
+        "md",
+        "373"
+      ],
+      [
+        "Monaco",
+        "mc",
+        "377"
+      ],
+      [
+        "Mongolia (Монгол)",
+        "mn",
+        "976"
+      ],
+      [
+        "Montenegro (Crna Gora)",
+        "me",
+        "382"
+      ],
+      [
+        "Montserrat",
+        "ms",
+        "1664"
+      ],
+      [
+        "Morocco (‫المغرب‬‎)",
+        "ma",
+        "212",
+        0
+      ],
+      [
+        "Mozambique (Moçambique)",
+        "mz",
+        "258"
+      ],
+      [
+        "Myanmar (Burma) (မြန်မာ)",
+        "mm",
+        "95"
+      ],
+      [
+        "Namibia (Namibië)",
+        "na",
+        "264"
+      ],
+      [
+        "Nauru",
+        "nr",
+        "674"
+      ],
+      [
+        "Nepal (नेपाल)",
+        "np",
+        "977"
+      ],
+      [
+        "Netherlands (Nederland)",
+        "nl",
+        "31"
+      ],
+      [
+        "New Caledonia (Nouvelle-Calédonie)",
+        "nc",
+        "687"
+      ],
+      [
+        "New Zealand",
+        "nz",
+        "64"
+      ],
+      [
+        "Nicaragua",
+        "ni",
+        "505"
+      ],
+      [
+        "Niger (Nijar)",
+        "ne",
+        "227"
+      ],
+      [
+        "Nigeria",
+        "ng",
+        "234"
+      ],
+      [
+        "Niue",
+        "nu",
+        "683"
+      ],
+      [
+        "Norfolk Island",
+        "nf",
+        "672"
+      ],
+      [
+        "North Korea (조선 민주주의 인민 공화국)",
+        "kp",
+        "850"
+      ],
+      [
+        "Northern Mariana Islands",
+        "mp",
+        "1670"
+      ],
+      [
+        "Norway (Norge)",
+        "no",
+        "47",
+        0
+      ],
+      [
+        "Oman (‫عُمان‬‎)",
+        "om",
+        "968"
+      ],
+      [
+        "Pakistan (‫پاکستان‬‎)",
+        "pk",
+        "92"
+      ],
+      [
+        "Palau",
+        "pw",
+        "680"
+      ],
+      [
+        "Palestine (‫فلسطين‬‎)",
+        "ps",
+        "970"
+      ],
+      [
+        "Panama (Panamá)",
+        "pa",
+        "507"
+      ],
+      [
+        "Papua New Guinea",
+        "pg",
+        "675"
+      ],
+      [
+        "Paraguay",
+        "py",
+        "595"
+      ],
+      [
+        "Peru (Perú)",
+        "pe",
+        "51"
+      ],
+      [
+        "Philippines",
+        "ph",
+        "63"
+      ],
+      [
+        "Poland (Polska)",
+        "pl",
+        "48"
+      ],
+      [
+        "Portugal",
+        "pt",
+        "351"
+      ],
+      [
+        "Puerto Rico",
+        "pr",
+        "1",
+        3,
+        ["787", "939"]
+      ],
+      [
+        "Qatar (‫قطر‬‎)",
+        "qa",
+        "974"
+      ],
+      [
+        "Réunion (La Réunion)",
+        "re",
+        "262",
+        0
+      ],
+      [
+        "Romania (România)",
+        "ro",
+        "40"
+      ],
+      [
+        "Russia (Россия)",
+        "ru",
+        "7",
+        0
+      ],
+      [
+        "Rwanda",
+        "rw",
+        "250"
+      ],
+      [
+        "Saint Barthélemy",
+        "bl",
+        "590",
+        1
+      ],
+      [
+        "Saint Helena",
+        "sh",
+        "290"
+      ],
+      [
+        "Saint Kitts and Nevis",
+        "kn",
+        "1869"
+      ],
+      [
+        "Saint Lucia",
+        "lc",
+        "1758"
+      ],
+      [
+        "Saint Martin (Saint-Martin (partie française))",
+        "mf",
+        "590",
+        2
+      ],
+      [
+        "Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)",
+        "pm",
+        "508"
+      ],
+      [
+        "Saint Vincent and the Grenadines",
+        "vc",
+        "1784"
+      ],
+      [
+        "Samoa",
+        "ws",
+        "685"
+      ],
+      [
+        "San Marino",
+        "sm",
+        "378"
+      ],
+      [
+        "São Tomé and Príncipe (São Tomé e Príncipe)",
+        "st",
+        "239"
+      ],
+      [
+        "Saudi Arabia (‫المملكة العربية السعودية‬‎)",
+        "sa",
+        "966"
+      ],
+      [
+        "Senegal (Sénégal)",
+        "sn",
+        "221"
+      ],
+      [
+        "Serbia (Србија)",
+        "rs",
+        "381"
+      ],
+      [
+        "Seychelles",
+        "sc",
+        "248"
+      ],
+      [
+        "Sierra Leone",
+        "sl",
+        "232"
+      ],
+      [
+        "Singapore",
+        "sg",
+        "65"
+      ],
+      [
+        "Sint Maarten",
+        "sx",
+        "1721"
+      ],
+      [
+        "Slovakia (Slovensko)",
+        "sk",
+        "421"
+      ],
+      [
+        "Slovenia (Slovenija)",
+        "si",
+        "386"
+      ],
+      [
+        "Solomon Islands",
+        "sb",
+        "677"
+      ],
+      [
+        "Somalia (Soomaaliya)",
+        "so",
+        "252"
+      ],
+      [
+        "South Africa",
+        "za",
+        "27"
+      ],
+      [
+        "South Korea (대한민국)",
+        "kr",
+        "82"
+      ],
+      [
+        "South Sudan (‫جنوب السودان‬‎)",
+        "ss",
+        "211"
+      ],
+      [
+        "Spain (España)",
+        "es",
+        "34"
+      ],
+      [
+        "Sri Lanka (ශ්‍රී ලංකාව)",
+        "lk",
+        "94"
+      ],
+      [
+        "Sudan (‫السودان‬‎)",
+        "sd",
+        "249"
+      ],
+      [
+        "Suriname",
+        "sr",
+        "597"
+      ],
+      [
+        "Svalbard and Jan Mayen",
+        "sj",
+        "47",
+        1
+      ],
+      [
+        "Swaziland",
+        "sz",
+        "268"
+      ],
+      [
+        "Sweden (Sverige)",
+        "se",
+        "46"
+      ],
+      [
+        "Switzerland (Schweiz)",
+        "ch",
+        "41"
+      ],
+      [
+        "Syria (‫سوريا‬‎)",
+        "sy",
+        "963"
+      ],
+      [
+        "Taiwan (台灣)",
+        "tw",
+        "886"
+      ],
+      [
+        "Tajikistan",
+        "tj",
+        "992"
+      ],
+      [
+        "Tanzania",
+        "tz",
+        "255"
+      ],
+      [
+        "Thailand (ไทย)",
+        "th",
+        "66"
+      ],
+      [
+        "Timor-Leste",
+        "tl",
+        "670"
+      ],
+      [
+        "Togo",
+        "tg",
+        "228"
+      ],
+      [
+        "Tokelau",
+        "tk",
+        "690"
+      ],
+      [
+        "Tonga",
+        "to",
+        "676"
+      ],
+      [
+        "Trinidad and Tobago",
+        "tt",
+        "1868"
+      ],
+      [
+        "Tunisia (‫تونس‬‎)",
+        "tn",
+        "216"
+      ],
+      [
+        "Turkey (Türkiye)",
+        "tr",
+        "90"
+      ],
+      [
+        "Turkmenistan",
+        "tm",
+        "993"
+      ],
+      [
+        "Turks and Caicos Islands",
+        "tc",
+        "1649"
+      ],
+      [
+        "Tuvalu",
+        "tv",
+        "688"
+      ],
+      [
+        "U.S. Virgin Islands",
+        "vi",
+        "1340"
+      ],
+      [
+        "Uganda",
+        "ug",
+        "256"
+      ],
+      [
+        "Ukraine (Україна)",
+        "ua",
+        "380"
+      ],
+      [
+        "United Arab Emirates (‫الإمارات العربية المتحدة‬‎)",
+        "ae",
+        "971"
+      ],
+      [
+        "United Kingdom",
+        "gb",
+        "44",
+        0
+      ],
+      [
+        "United States",
+        "us",
+        "1",
+        0
+      ],
+      [
+        "Uruguay",
+        "uy",
+        "598"
+      ],
+      [
+        "Uzbekistan (Oʻzbekiston)",
+        "uz",
+        "998"
+      ],
+      [
+        "Vanuatu",
+        "vu",
+        "678"
+      ],
+      [
+        "Vatican City (Città del Vaticano)",
+        "va",
+        "39",
+        1
+      ],
+      [
+        "Venezuela",
+        "ve",
+        "58"
+      ],
+      [
+        "Vietnam (Việt Nam)",
+        "vn",
+        "84"
+      ],
+      [
+        "Wallis and Futuna (Wallis-et-Futuna)",
+        "wf",
+        "681"
+      ],
+      [
+        "Western Sahara (‫الصحراء الغربية‬‎)",
+        "eh",
+        "212",
+        1
+      ],
+      [
+        "Yemen (‫اليمن‬‎)",
+        "ye",
+        "967"
+      ],
+      [
+        "Zambia",
+        "zm",
+        "260"
+      ],
+      [
+        "Zimbabwe",
+        "zw",
+        "263"
+      ],
+      [
+        "Åland Islands",
+        "ax",
+        "358",
+        1
+      ]
+  ];
+  
+  return d;
+}/**
+*    This script refer to:
+*    Title: International Telephone Input
+*    Author: Jack O'Connor
+*    Code version:  v12.1.12
+*    Availability: https://github.com/jackocnr/intl-tel-input.git
+**/
+
+/**
+ * @class Roo.bootstrap.PhoneInput
+ * @extends Roo.bootstrap.TriggerField
+ * An input with International dial-code selection
+ * @cfg {String} defaultDialCode default '+852'
+ * @cfg {Array} preferedCountries default []
+  
+ * @constructor
+ * Create a new PhoneInput.
+ * @param {Object} config Configuration options
+ */
+
 Roo.bootstrap.PhoneInput = function(config) {
     Roo.bootstrap.PhoneInput.superclass.constructor.call(this, config);
 };
 
-Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
-        
-        triggerList : true,
+Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField, {
         
         listWidth: undefined,
         
         selectedClass: 'active',
         
-        dialCodeMapping: [],
+        invalidClass : "has-warning",
+        
+        validClass: 'has-success',
+        
+        allowed: '0123456789',
+        
+        /**
+         * @cfg {String} defaultDialCode The default dial code when initializing the input
+         */
+        defaultDialCode: '+852',
+        
+        /**
+         * @cfg {Array} preferedCountries A list of iso2 in array (e.g. ['hk','us']). Those related countries will show at the top of the input's choices
+         */
+        preferedCountries: false,
         
         getAutoCreate : function()
         {
+            var data = Roo.bootstrap.PhoneInputData();
             var align = this.labelAlign || this.parentLabelAlign();
             var id = Roo.id();
             
-            for (var i = 0; i < this.allCountries.length; i++) {
-              var c = this.allCountries[i];
+            this.allCountries = [];
+            this.dialCodeMapping = [];
+            
+            for (var i = 0; i < data.length; i++) {
+              var c = data[i];
               this.allCountries[i] = {
                 name: c[0],
                 iso2: c[1],
@@ -37957,34 +39268,36 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
               };
               this.dialCodeMapping[c[2]] = {
                   name: c[0],
-                  dialCode: c[2],
+                  iso2: c[1],
                   priority: c[3] || 0,
                   areaCodes: c[4] || null
               };
             }
             
-            this.data = this.allCountries;
-            
             var cfg = {
-                cls: 'form-group', //input-group
+                cls: 'form-group',
                 cn: []
             };
             
             var input =  {
                 tag: 'input',
                 id : id,
-                type : 'tel',
                 cls : 'form-control tel-input',
                 autocomplete: 'new-password'
-                //placeholder : this.placeholder || '' 
+            };
+            
+            var hiddenInput = {
+                tag: 'input',
+                type: 'hidden',
+                cls: 'hidden-tel-input'
             };
             
             if (this.name) {
-                input.name = this.name;
+                hiddenInput.name = this.name;
             }
             
             if (this.disabled) {
-                input.disabled=true;
+                input.disabled = true;
             }
             
             var flag_container = {
@@ -38006,6 +39319,7 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
                 tag: 'div',
                 cls: this.hasFeedback ? 'has-feedback' : '',
                 cn: [
+                    hiddenInput,
                     input,
                     {
                         tag: 'input',
@@ -38093,7 +39407,6 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
                 container
             ];
             
-            
             var settings = this;
             
             ['xs','sm','md','lg'].map(function(size){
@@ -38105,7 +39418,6 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             this.store = new Roo.data.Store({
                 proxy : new Roo.data.MemoryProxy({}),
                 reader : new Roo.data.JsonReader({
-                    
                     fields : [
                         {
                             'name' : 'name',
@@ -38128,21 +39440,35 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
                             'type' : 'string'
                         }
                     ]
-                }),
-                listeners : {
-                    beforeload : function(_self, o)
-                    {
-                        o.params = o.params || {};
-                        var d = {
-                            success :true,
-                            data: this.data_cache
-                        };
-                        this.proxy.data = d;
-                    }
-                }
+                })
             });
             
-            this.store.data_cache = this.data;
+            if(!this.preferedCountries) {
+                this.preferedCountries = [
+                    'hk',
+                    'gb',
+                    'us'
+                ];
+            }
+            
+            var p = this.preferedCountries.reverse();
+            
+            if(p) {
+                for (var i = 0; i < p.length; i++) {
+                    for (var j = 0; j < this.allCountries.length; j++) {
+                        if(this.allCountries[j].iso2 == p[i]) {
+                            var t = this.allCountries[j];
+                            this.allCountries.splice(j,1);
+                            this.allCountries.unshift(t);
+                        }
+                    } 
+                }
+            }
+            
+            this.store.proxy.data = {
+                success: true,
+                data: this.allCountries
+            };
             
             return cfg;
         },
@@ -38152,7 +39478,6 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             this.createList();
             Roo.bootstrap.PhoneInput.superclass.initEvents.call(this);
             
-            //setting up object
             this.indicator = this.indicatorEl();
             this.flag = this.flagEl();
             this.dialCodeHolder = this.dialCodeHolderEl();
@@ -38169,7 +39494,7 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             
             this.list.on('mouseover', this.onViewOver, this);
             this.list.on('mousemove', this.onViewMove, this);
-            this.list.on('scroll', this.onViewScroll, this);
+            this.inputEl().on("keyup", this.onKeyUp, this);
             
             this.tpl = '<li><a href="#"><div class="flag {iso2}"></div>{name} <span class="dial-code">+{dialCode}</span></a></li>';
 
@@ -38178,22 +39503,16 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             });
             
             this.view.on('click', this.onViewClick, this);
-            // this.view.on('click', this.onViewClick, this);
-            // this.store.on('beforeload', this.onBeforeLoad, this);
-            // this.store.on('load', this.onLoad, this);
-            // this.store.on('loadexception', this.onLoadException, this);
+            this.setValue(this.defaultDialCode);
         },
         
         onTriggerClick : function(e)
         {
             Roo.log('trigger click');
-            if(this.disabled || !this.triggerList){
+            if(this.disabled){
                 return;
             }
             
-            this.page = 0;
-            this.loadNext = false;
-            
             if(this.isExpanded()){
                 this.collapse();
                 this.hasFocus = false;
@@ -38218,12 +39537,13 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             Roo.get(document).un('mousedown', this.collapseIf, this);
             Roo.get(document).un('mousewheel', this.collapseIf, this);
             this.fireEvent('collapse', this);
-            
             this.validate();
         },
         
         expand : function()
         {
+            Roo.log('expand');
+
             if(this.isExpanded() || !this.hasFocus){
                 return;
             }
@@ -38231,10 +39551,7 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             var lw = this.listWidth || Math.max(this.inputEl().getWidth(), this.minListWidth);
             this.list.setWidth(lw);
             
-            Roo.log('expand');
-            
             this.list.show();
-            
             this.restrictHeight();
             
             Roo.get(document).on('mousedown', this.collapseIf, this);
@@ -38245,20 +39562,13 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
         
         restrictHeight : function()
         {
-            //this.innerList.dom.style.height = '';
-            //var inner = this.innerList.dom;
-            //var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight);
-            //this.innerList.setHeight(h < this.maxHeight ? 'auto' : this.maxHeight);
-            //this.list.beginUpdate();
-            //this.list.setHeight(this.innerList.getHeight()+this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight);
             this.list.alignTo(this.inputEl(), this.listAlign);
             this.list.alignTo(this.inputEl(), this.listAlign);
-            //this.list.endUpdate();
         },
         
         onViewOver : function(e, t)
         {
-            if(this.inKeyMode){ // prevent key nav and mouse over conflicts
+            if(this.inKeyMode){
                 return;
             }
             var item = this.view.findItemFromChild(t);
@@ -38289,51 +39599,12 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             this.inKeyMode = false;
         },
         
-        onViewScroll : function(e, t)
-        {
-            if(this.view.el.getScroll().top == 0 ||this.view.el.getScroll().top < this.view.el.dom.scrollHeight - this.view.el.dom.clientHeight || !this.hasFocus || !this.append || this.hasQuery){
-                return;
-            }
-            
-            this.hasQuery = true;
-            
-            this.loading = this.list.select('.loading', true).first();
-            
-            if(this.loading === null){
-                this.list.createChild({
-                    tag: 'div',
-                    cls: 'loading roo-select2-more-results roo-select2-active',
-                    html: 'Loading more results...'
-                });
-                
-                this.loading = this.list.select('.loading', true).first();
-                
-                this.loading.setVisibilityMode(Roo.Element.DISPLAY);
-                
-                this.loading.hide();
-            }
-            
-            this.loading.show();
-            
-            var _combo = this;
-            
-            this.page++;
-            this.loadNext = true;
-            
-            (function() { _combo.doQuery(_combo.allQuery, true); }).defer(500);
-            
-            return;
-        },
-        
         select : function(index, scrollIntoView)
         {
             this.selectedIndex = index;
             this.view.select(index);
             if(scrollIntoView !== false){
                 var el = this.view.getNode(index);
-                /*
-                 * el && !this.multiple && !this.tickable // not sure why we disable multiple before..
-                 */
                 if(el){
                     this.list.scrollChildIntoView(el, false);
                 }
@@ -38347,9 +39618,7 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
                 cls: 'typeahead typeahead-long dropdown-menu tel-list',
                 style: 'display:none'
             });
-            
             this.list.setVisibilityMode(Roo.Element.DISPLAY).originalDisplay = 'block';;
-            
         },
         
         collapseIf : function(e)
@@ -38359,7 +39628,6 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             var is_list = (Roo.get(e.getTarget()).id == this.list.id) ? true : false;
             
             if (in_combo || in_list || is_list) {
-                //e.stopPropagation();
                 return;
             }
             this.collapse();
@@ -38377,11 +39645,6 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             }
         },
         
-        setPlaceholder : function(v)
-        {
-            
-        },
-        
         flagEl : function()
         {
             var flag = this.el.select('div.flag',true).first();
@@ -38422,16 +39685,23 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
         setValue : function(v)
         {
             var d = this.getDialCode(v);
-            this.value = v;
             
-            if(!d || d.length == 0) {
+            //invalid dial code
+            if(v.length == 0 || !d || d.length == 0) {
                 if(this.rendered){
                     this.inputEl().dom.value = (v === null || v === undefined ? '' : v);
+                    this.hiddenEl().dom.value = (v === null || v === undefined ? '' : v);
                 }
                 return;
             }
             
+            //valid dial code
+            this.setFlagClass(this.dialCodeMapping[d].iso2);
+            this.setDialCode(d);
+            this.inputEl().dom.value = v.replace('+'+d,'');
+            this.hiddenEl().dom.value = this.getValue();
             
+            this.validate();
         },
         
         getDialCode : function(v = '')
@@ -38441,23 +39711,17 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             }
             
             var dialCode = "";
-            // only interested in international numbers (starting with a plus)
             if (v.charAt(0) != "+") {
                 return false;
             }
             var numericChars = "";
-            // iterate over chars
-            for (var i = 0; i < v.length; i++) {
+            for (var i = 1; i < v.length; i++) {
               var c = v.charAt(i);
-              // if char is number
               if (!isNaN(c)) {
                 numericChars += c;
-                // if current numericChars make a valid dial code
                 if (this.dialCodeMapping[numericChars]) {
-                  // store the actual raw string (useful for matching later)
-                  dialCode = v.substr(1, i + 2);
+                  dialCode = v.substr(1, i);
                 }
-                // longest dial code is 4 chars
                 if (numericChars.length == 4) {
                   break;
                 }
@@ -38466,1252 +39730,494 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             return dialCode;
         },
         
-        allCountries : [
-          [
-            "Afghanistan (‫افغانستان‬‎)",
-            "af",
-            "93"
-          ],
-          [
-            "Albania (Shqipëri)",
-            "al",
-            "355"
-          ],
-          [
-            "Algeria (‫الجزائر‬‎)",
-            "dz",
-            "213"
-          ],
-          [
-            "American Samoa",
-            "as",
-            "1684"
-          ],
-          [
-            "Andorra",
-            "ad",
-            "376"
-          ],
-          [
-            "Angola",
-            "ao",
-            "244"
-          ],
-          [
-            "Anguilla",
-            "ai",
-            "1264"
-          ],
-          [
-            "Antigua and Barbuda",
-            "ag",
-            "1268"
-          ],
-          [
-            "Argentina",
-            "ar",
-            "54"
-          ],
-          [
-            "Armenia (Հայաստան)",
-            "am",
-            "374"
-          ],
-          [
-            "Aruba",
-            "aw",
-            "297"
-          ],
-          [
-            "Australia",
-            "au",
-            "61",
-            0
-          ],
-          [
-            "Austria (Österreich)",
-            "at",
-            "43"
-          ],
-          [
-            "Azerbaijan (Azərbaycan)",
-            "az",
-            "994"
-          ],
-          [
-            "Bahamas",
-            "bs",
-            "1242"
-          ],
-          [
-            "Bahrain (‫البحرين‬‎)",
-            "bh",
-            "973"
-          ],
-          [
-            "Bangladesh (বাংলাদেশ)",
-            "bd",
-            "880"
-          ],
-          [
-            "Barbados",
-            "bb",
-            "1246"
-          ],
-          [
-            "Belarus (Беларусь)",
-            "by",
-            "375"
-          ],
-          [
-            "Belgium (België)",
-            "be",
-            "32"
-          ],
-          [
-            "Belize",
-            "bz",
-            "501"
-          ],
-          [
-            "Benin (Bénin)",
-            "bj",
-            "229"
-          ],
-          [
-            "Bermuda",
-            "bm",
-            "1441"
-          ],
-          [
-            "Bhutan (འབྲུག)",
-            "bt",
-            "975"
-          ],
-          [
-            "Bolivia",
-            "bo",
-            "591"
-          ],
-          [
-            "Bosnia and Herzegovina (Босна и Херцеговина)",
-            "ba",
-            "387"
-          ],
-          [
-            "Botswana",
-            "bw",
-            "267"
-          ],
-          [
-            "Brazil (Brasil)",
-            "br",
-            "55"
-          ],
-          [
-            "British Indian Ocean Territory",
-            "io",
-            "246"
-          ],
-          [
-            "British Virgin Islands",
-            "vg",
-            "1284"
-          ],
-          [
-            "Brunei",
-            "bn",
-            "673"
-          ],
-          [
-            "Bulgaria (България)",
-            "bg",
-            "359"
-          ],
-          [
-            "Burkina Faso",
-            "bf",
-            "226"
-          ],
-          [
-            "Burundi (Uburundi)",
-            "bi",
-            "257"
-          ],
-          [
-            "Cambodia (កម្ពុជា)",
-            "kh",
-            "855"
-          ],
-          [
-            "Cameroon (Cameroun)",
-            "cm",
-            "237"
-          ],
-          [
-            "Canada",
-            "ca",
-            "1",
-            1,
-            ["204", "226", "236", "249", "250", "289", "306", "343", "365", "387", "403", "416", "418", "431", "437", "438", "450", "506", "514", "519", "548", "579", "581", "587", "604", "613", "639", "647", "672", "705", "709", "742", "778", "780", "782", "807", "819", "825", "867", "873", "902", "905"]
-          ],
-          [
-            "Cape Verde (Kabu Verdi)",
-            "cv",
-            "238"
-          ],
-          [
-            "Caribbean Netherlands",
-            "bq",
-            "599",
-            1
-          ],
-          [
-            "Cayman Islands",
-            "ky",
-            "1345"
-          ],
-          [
-            "Central African Republic (République centrafricaine)",
-            "cf",
-            "236"
-          ],
-          [
-            "Chad (Tchad)",
-            "td",
-            "235"
-          ],
-          [
-            "Chile",
-            "cl",
-            "56"
-          ],
-          [
-            "China (中国)",
-            "cn",
-            "86"
-          ],
-          [
-            "Christmas Island",
-            "cx",
-            "61",
-            2
-          ],
-          [
-            "Cocos (Keeling) Islands",
-            "cc",
-            "61",
-            1
-          ],
-          [
-            "Colombia",
-            "co",
-            "57"
-          ],
-          [
-            "Comoros (‫جزر القمر‬‎)",
-            "km",
-            "269"
-          ],
-          [
-            "Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",
-            "cd",
-            "243"
-          ],
-          [
-            "Congo (Republic) (Congo-Brazzaville)",
-            "cg",
-            "242"
-          ],
-          [
-            "Cook Islands",
-            "ck",
-            "682"
-          ],
-          [
-            "Costa Rica",
-            "cr",
-            "506"
-          ],
-          [
-            "Côte d’Ivoire",
-            "ci",
-            "225"
-          ],
-          [
-            "Croatia (Hrvatska)",
-            "hr",
-            "385"
-          ],
-          [
-            "Cuba",
-            "cu",
-            "53"
-          ],
-          [
-            "Curaçao",
-            "cw",
-            "599",
-            0
-          ],
-          [
-            "Cyprus (Κύπρος)",
-            "cy",
-            "357"
-          ],
-          [
-            "Czech Republic (Česká republika)",
-            "cz",
-            "420"
-          ],
-          [
-            "Denmark (Danmark)",
-            "dk",
-            "45"
-          ],
-          [
-            "Djibouti",
-            "dj",
-            "253"
-          ],
-          [
-            "Dominica",
-            "dm",
-            "1767"
-          ],
-          [
-            "Dominican Republic (República Dominicana)",
-            "do",
-            "1",
-            2,
-            ["809", "829", "849"]
-          ],
-          [
-            "Ecuador",
-            "ec",
-            "593"
-          ],
-          [
-            "Egypt (‫مصر‬‎)",
-            "eg",
-            "20"
-          ],
-          [
-            "El Salvador",
-            "sv",
-            "503"
-          ],
-          [
-            "Equatorial Guinea (Guinea Ecuatorial)",
-            "gq",
-            "240"
-          ],
-          [
-            "Eritrea",
-            "er",
-            "291"
-          ],
-          [
-            "Estonia (Eesti)",
-            "ee",
-            "372"
-          ],
-          [
-            "Ethiopia",
-            "et",
-            "251"
-          ],
-          [
-            "Falkland Islands (Islas Malvinas)",
-            "fk",
-            "500"
-          ],
-          [
-            "Faroe Islands (Føroyar)",
-            "fo",
-            "298"
-          ],
-          [
-            "Fiji",
-            "fj",
-            "679"
-          ],
-          [
-            "Finland (Suomi)",
-            "fi",
-            "358",
-            0
-          ],
-          [
-            "France",
-            "fr",
-            "33"
-          ],
-          [
-            "French Guiana (Guyane française)",
-            "gf",
-            "594"
-          ],
-          [
-            "French Polynesia (Polynésie française)",
-            "pf",
-            "689"
-          ],
-          [
-            "Gabon",
-            "ga",
-            "241"
-          ],
-          [
-            "Gambia",
-            "gm",
-            "220"
-          ],
-          [
-            "Georgia (საქართველო)",
-            "ge",
-            "995"
-          ],
-          [
-            "Germany (Deutschland)",
-            "de",
-            "49"
-          ],
-          [
-            "Ghana (Gaana)",
-            "gh",
-            "233"
-          ],
-          [
-            "Gibraltar",
-            "gi",
-            "350"
-          ],
-          [
-            "Greece (Ελλάδα)",
-            "gr",
-            "30"
-          ],
-          [
-            "Greenland (Kalaallit Nunaat)",
-            "gl",
-            "299"
-          ],
-          [
-            "Grenada",
-            "gd",
-            "1473"
-          ],
-          [
-            "Guadeloupe",
-            "gp",
-            "590",
-            0
-          ],
-          [
-            "Guam",
-            "gu",
-            "1671"
-          ],
-          [
-            "Guatemala",
-            "gt",
-            "502"
-          ],
-          [
-            "Guernsey",
-            "gg",
-            "44",
-            1
-          ],
-          [
-            "Guinea (Guinée)",
-            "gn",
-            "224"
-          ],
-          [
-            "Guinea-Bissau (Guiné Bissau)",
-            "gw",
-            "245"
-          ],
-          [
-            "Guyana",
-            "gy",
-            "592"
-          ],
-          [
-            "Haiti",
-            "ht",
-            "509"
-          ],
-          [
-            "Honduras",
-            "hn",
-            "504"
-          ],
-          [
-            "Hong Kong (香港)",
-            "hk",
-            "852"
-          ],
-          [
-            "Hungary (Magyarország)",
-            "hu",
-            "36"
-          ],
-          [
-            "Iceland (Ísland)",
-            "is",
-            "354"
-          ],
-          [
-            "India (भारत)",
-            "in",
-            "91"
-          ],
-          [
-            "Indonesia",
-            "id",
-            "62"
-          ],
-          [
-            "Iran (‫ایران‬‎)",
-            "ir",
-            "98"
-          ],
-          [
-            "Iraq (‫العراق‬‎)",
-            "iq",
-            "964"
-          ],
-          [
-            "Ireland",
-            "ie",
-            "353"
-          ],
-          [
-            "Isle of Man",
-            "im",
-            "44",
-            2
-          ],
-          [
-            "Israel (‫ישראל‬‎)",
-            "il",
-            "972"
-          ],
-          [
-            "Italy (Italia)",
-            "it",
-            "39",
-            0
-          ],
-          [
-            "Jamaica",
-            "jm",
-            "1876"
-          ],
-          [
-            "Japan (日本)",
-            "jp",
-            "81"
-          ],
-          [
-            "Jersey",
-            "je",
-            "44",
-            3
-          ],
-          [
-            "Jordan (‫الأردن‬‎)",
-            "jo",
-            "962"
-          ],
-          [
-            "Kazakhstan (Казахстан)",
-            "kz",
-            "7",
-            1
-          ],
-          [
-            "Kenya",
-            "ke",
-            "254"
-          ],
-          [
-            "Kiribati",
-            "ki",
-            "686"
-          ],
-          [
-            "Kosovo",
-            "xk",
-            "383"
-          ],
-          [
-            "Kuwait (‫الكويت‬‎)",
-            "kw",
-            "965"
-          ],
-          [
-            "Kyrgyzstan (Кыргызстан)",
-            "kg",
-            "996"
-          ],
-          [
-            "Laos (ລາວ)",
-            "la",
-            "856"
-          ],
-          [
-            "Latvia (Latvija)",
-            "lv",
-            "371"
-          ],
-          [
-            "Lebanon (‫لبنان‬‎)",
-            "lb",
-            "961"
-          ],
-          [
-            "Lesotho",
-            "ls",
-            "266"
-          ],
-          [
-            "Liberia",
-            "lr",
-            "231"
-          ],
-          [
-            "Libya (‫ليبيا‬‎)",
-            "ly",
-            "218"
-          ],
-          [
-            "Liechtenstein",
-            "li",
-            "423"
-          ],
-          [
-            "Lithuania (Lietuva)",
-            "lt",
-            "370"
-          ],
-          [
-            "Luxembourg",
-            "lu",
-            "352"
-          ],
-          [
-            "Macau (澳門)",
-            "mo",
-            "853"
-          ],
-          [
-            "Macedonia (FYROM) (Македонија)",
-            "mk",
-            "389"
-          ],
-          [
-            "Madagascar (Madagasikara)",
-            "mg",
-            "261"
-          ],
-          [
-            "Malawi",
-            "mw",
-            "265"
-          ],
-          [
-            "Malaysia",
-            "my",
-            "60"
-          ],
-          [
-            "Maldives",
-            "mv",
-            "960"
-          ],
-          [
-            "Mali",
-            "ml",
-            "223"
-          ],
-          [
-            "Malta",
-            "mt",
-            "356"
-          ],
-          [
-            "Marshall Islands",
-            "mh",
-            "692"
-          ],
-          [
-            "Martinique",
-            "mq",
-            "596"
-          ],
-          [
-            "Mauritania (‫موريتانيا‬‎)",
-            "mr",
-            "222"
-          ],
-          [
-            "Mauritius (Moris)",
-            "mu",
-            "230"
-          ],
-          [
-            "Mayotte",
-            "yt",
-            "262",
-            1
-          ],
-          [
-            "Mexico (México)",
-            "mx",
-            "52"
-          ],
-          [
-            "Micronesia",
-            "fm",
-            "691"
-          ],
-          [
-            "Moldova (Republica Moldova)",
-            "md",
-            "373"
-          ],
-          [
-            "Monaco",
-            "mc",
-            "377"
-          ],
-          [
-            "Mongolia (Монгол)",
-            "mn",
-            "976"
-          ],
-          [
-            "Montenegro (Crna Gora)",
-            "me",
-            "382"
-          ],
-          [
-            "Montserrat",
-            "ms",
-            "1664"
-          ],
-          [
-            "Morocco (‫المغرب‬‎)",
-            "ma",
-            "212",
-            0
-          ],
-          [
-            "Mozambique (Moçambique)",
-            "mz",
-            "258"
-          ],
-          [
-            "Myanmar (Burma) (မြန်မာ)",
-            "mm",
-            "95"
-          ],
-          [
-            "Namibia (Namibië)",
-            "na",
-            "264"
-          ],
-          [
-            "Nauru",
-            "nr",
-            "674"
-          ],
-          [
-            "Nepal (नेपाल)",
-            "np",
-            "977"
-          ],
-          [
-            "Netherlands (Nederland)",
-            "nl",
-            "31"
-          ],
-          [
-            "New Caledonia (Nouvelle-Calédonie)",
-            "nc",
-            "687"
-          ],
-          [
-            "New Zealand",
-            "nz",
-            "64"
-          ],
-          [
-            "Nicaragua",
-            "ni",
-            "505"
-          ],
-          [
-            "Niger (Nijar)",
-            "ne",
-            "227"
-          ],
-          [
-            "Nigeria",
-            "ng",
-            "234"
-          ],
-          [
-            "Niue",
-            "nu",
-            "683"
-          ],
-          [
-            "Norfolk Island",
-            "nf",
-            "672"
-          ],
-          [
-            "North Korea (조선 민주주의 인민 공화국)",
-            "kp",
-            "850"
-          ],
-          [
-            "Northern Mariana Islands",
-            "mp",
-            "1670"
-          ],
-          [
-            "Norway (Norge)",
-            "no",
-            "47",
-            0
-          ],
-          [
-            "Oman (‫عُمان‬‎)",
-            "om",
-            "968"
-          ],
-          [
-            "Pakistan (‫پاکستان‬‎)",
-            "pk",
-            "92"
-          ],
-          [
-            "Palau",
-            "pw",
-            "680"
-          ],
-          [
-            "Palestine (‫فلسطين‬‎)",
-            "ps",
-            "970"
-          ],
-          [
-            "Panama (Panamá)",
-            "pa",
-            "507"
-          ],
-          [
-            "Papua New Guinea",
-            "pg",
-            "675"
-          ],
-          [
-            "Paraguay",
-            "py",
-            "595"
-          ],
-          [
-            "Peru (Perú)",
-            "pe",
-            "51"
-          ],
-          [
-            "Philippines",
-            "ph",
-            "63"
-          ],
-          [
-            "Poland (Polska)",
-            "pl",
-            "48"
-          ],
-          [
-            "Portugal",
-            "pt",
-            "351"
-          ],
-          [
-            "Puerto Rico",
-            "pr",
-            "1",
-            3,
-            ["787", "939"]
-          ],
-          [
-            "Qatar (‫قطر‬‎)",
-            "qa",
-            "974"
-          ],
-          [
-            "Réunion (La Réunion)",
-            "re",
-            "262",
-            0
-          ],
-          [
-            "Romania (România)",
-            "ro",
-            "40"
-          ],
-          [
-            "Russia (Россия)",
-            "ru",
-            "7",
-            0
-          ],
-          [
-            "Rwanda",
-            "rw",
-            "250"
-          ],
-          [
-            "Saint Barthélemy",
-            "bl",
-            "590",
-            1
-          ],
-          [
-            "Saint Helena",
-            "sh",
-            "290"
-          ],
-          [
-            "Saint Kitts and Nevis",
-            "kn",
-            "1869"
-          ],
-          [
-            "Saint Lucia",
-            "lc",
-            "1758"
-          ],
-          [
-            "Saint Martin (Saint-Martin (partie française))",
-            "mf",
-            "590",
-            2
-          ],
-          [
-            "Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)",
-            "pm",
-            "508"
-          ],
-          [
-            "Saint Vincent and the Grenadines",
-            "vc",
-            "1784"
-          ],
-          [
-            "Samoa",
-            "ws",
-            "685"
-          ],
-          [
-            "San Marino",
-            "sm",
-            "378"
-          ],
-          [
-            "São Tomé and Príncipe (São Tomé e Príncipe)",
-            "st",
-            "239"
-          ],
-          [
-            "Saudi Arabia (‫المملكة العربية السعودية‬‎)",
-            "sa",
-            "966"
-          ],
-          [
-            "Senegal (Sénégal)",
-            "sn",
-            "221"
-          ],
-          [
-            "Serbia (Србија)",
-            "rs",
-            "381"
-          ],
-          [
-            "Seychelles",
-            "sc",
-            "248"
-          ],
-          [
-            "Sierra Leone",
-            "sl",
-            "232"
-          ],
-          [
-            "Singapore",
-            "sg",
-            "65"
-          ],
-          [
-            "Sint Maarten",
-            "sx",
-            "1721"
-          ],
-          [
-            "Slovakia (Slovensko)",
-            "sk",
-            "421"
-          ],
-          [
-            "Slovenia (Slovenija)",
-            "si",
-            "386"
-          ],
-          [
-            "Solomon Islands",
-            "sb",
-            "677"
-          ],
-          [
-            "Somalia (Soomaaliya)",
-            "so",
-            "252"
-          ],
-          [
-            "South Africa",
-            "za",
-            "27"
-          ],
-          [
-            "South Korea (대한민국)",
-            "kr",
-            "82"
-          ],
-          [
-            "South Sudan (‫جنوب السودان‬‎)",
-            "ss",
-            "211"
-          ],
-          [
-            "Spain (España)",
-            "es",
-            "34"
-          ],
-          [
-            "Sri Lanka (ශ්‍රී ලංකාව)",
-            "lk",
-            "94"
-          ],
-          [
-            "Sudan (‫السودان‬‎)",
-            "sd",
-            "249"
-          ],
-          [
-            "Suriname",
-            "sr",
-            "597"
-          ],
-          [
-            "Svalbard and Jan Mayen",
-            "sj",
-            "47",
-            1
-          ],
-          [
-            "Swaziland",
-            "sz",
-            "268"
-          ],
-          [
-            "Sweden (Sverige)",
-            "se",
-            "46"
-          ],
-          [
-            "Switzerland (Schweiz)",
-            "ch",
-            "41"
-          ],
-          [
-            "Syria (‫سوريا‬‎)",
-            "sy",
-            "963"
-          ],
-          [
-            "Taiwan (台灣)",
-            "tw",
-            "886"
-          ],
-          [
-            "Tajikistan",
-            "tj",
-            "992"
-          ],
-          [
-            "Tanzania",
-            "tz",
-            "255"
-          ],
-          [
-            "Thailand (ไทย)",
-            "th",
-            "66"
-          ],
-          [
-            "Timor-Leste",
-            "tl",
-            "670"
-          ],
-          [
-            "Togo",
-            "tg",
-            "228"
-          ],
-          [
-            "Tokelau",
-            "tk",
-            "690"
-          ],
-          [
-            "Tonga",
-            "to",
-            "676"
-          ],
-          [
-            "Trinidad and Tobago",
-            "tt",
-            "1868"
-          ],
-          [
-            "Tunisia (‫تونس‬‎)",
-            "tn",
-            "216"
-          ],
-          [
-            "Turkey (Türkiye)",
-            "tr",
-            "90"
-          ],
-          [
-            "Turkmenistan",
-            "tm",
-            "993"
-          ],
-          [
-            "Turks and Caicos Islands",
-            "tc",
-            "1649"
-          ],
-          [
-            "Tuvalu",
-            "tv",
-            "688"
-          ],
-          [
-            "U.S. Virgin Islands",
-            "vi",
-            "1340"
-          ],
-          [
-            "Uganda",
-            "ug",
-            "256"
-          ],
-          [
-            "Ukraine (Україна)",
-            "ua",
-            "380"
-          ],
-          [
-            "United Arab Emirates (‫الإمارات العربية المتحدة‬‎)",
-            "ae",
-            "971"
-          ],
-          [
-            "United Kingdom",
-            "gb",
-            "44",
-            0
-          ],
-          [
-            "United States",
-            "us",
-            "1",
-            0
-          ],
-          [
-            "Uruguay",
-            "uy",
-            "598"
-          ],
-          [
-            "Uzbekistan (Oʻzbekiston)",
-            "uz",
-            "998"
-          ],
-          [
-            "Vanuatu",
-            "vu",
-            "678"
-          ],
-          [
-            "Vatican City (Città del Vaticano)",
-            "va",
-            "39",
-            1
-          ],
-          [
-            "Venezuela",
-            "ve",
-            "58"
-          ],
-          [
-            "Vietnam (Việt Nam)",
-            "vn",
-            "84"
-          ],
-          [
-            "Wallis and Futuna (Wallis-et-Futuna)",
-            "wf",
-            "681"
-          ],
-          [
-            "Western Sahara (‫الصحراء الغربية‬‎)",
-            "eh",
-            "212",
-            1
-          ],
-          [
-            "Yemen (‫اليمن‬‎)",
-            "ye",
-            "967"
-          ],
-          [
-            "Zambia",
-            "zm",
-            "260"
-          ],
-          [
-            "Zimbabwe",
-            "zw",
-            "263"
-          ],
-          [
-            "Åland Islands",
-            "ax",
-            "358",
-            1
-          ]
-      ]
+        reset : function()
+        {
+            this.setValue(this.defaultDialCode);
+            this.validate();
+        },
+        
+        hiddenEl : function()
+        {
+            return this.el.select('input.hidden-tel-input',true).first();
+        },
+        
+        onKeyUp : function(e){
+            
+            var k = e.getKey();
+            var c = e.getCharCode();
+            
+            if(
+                    (String.fromCharCode(c) == '.' || String.fromCharCode(c) == '-') &&
+                    this.allowed.indexOf(String.fromCharCode(c)) === -1
+            ){
+                e.stopEvent();
+            }
+            
+            // if(!Roo.isIE && (e.isSpecialKey() || k == e.BACKSPACE || k == e.DELETE)){
+            //     return;
+            // }
+            if(this.allowed.indexOf(String.fromCharCode(c)) === -1){
+                e.stopEvent();
+            }
+            
+            this.setValue(this.getValue());
+        }
+        
+});
+/**
+ * @class Roo.bootstrap.MoneyField
+ * @extends Roo.bootstrap.ComboBox
+ * Bootstrap MoneyField class
+ * 
+ * @constructor
+ * Create a new MoneyField.
+ * @param {Object} config Configuration options
+ */
+
+Roo.bootstrap.MoneyField = function(config) {
+    
+    Roo.bootstrap.MoneyField.superclass.constructor.call(this, config);
+    
+};
+
+Roo.extend(Roo.bootstrap.MoneyField, Roo.bootstrap.ComboBox, {
+    
+    /**
+     * @cfg {String} decimalSeparator Character(s) to allow as the decimal separator (defaults to '.')
+     */
+    decimalSeparator : ".",
+    
+    inputlg : 9,
+    inputmd : 9,
+    inputsm : 9,
+    inputxs : 6,
+    
+    store : false,
+    
+    getAutoCreate : function()
+    {
+        var align = this.labelAlign || this.parentLabelAlign();
+        
+        var id = Roo.id();
+
+        var cfg = {
+            cls: 'form-group',
+            cn: []
+        };
+
+        var input =  {
+            tag: 'input',
+            id : id,
+            cls : 'form-control roo-money-amount-input',
+            autocomplete: 'new-password'
+        };
+        
+        if (this.name) {
+            input.name = this.name;
+        }
+
+        if (this.disabled) {
+            input.disabled = true;
+        }
+
+        var clg = 12 - this.inputlg;
+        var cmd = 12 - this.inputmd;
+        var csm = 12 - this.inputsm;
+        var cxs = 12 - this.inputxs;
+        
+        var container = {
+            tag : 'div',
+            cls : 'row roo-money-field',
+            cn : [
+                {
+                    tag : 'div',
+                    cls : 'roo-money-currency column col-lg-' + clg + ' col-md-' + cmd + ' col-sm-' + csm + ' col-xs-' + cxs,
+                    cn : [
+                        {
+                            tag : 'div',
+                            cls: 'roo-select2-container input-group',
+                            cn: [
+                                {
+                                    tag : 'input',
+                                    cls : 'form-control roo-money-currency-input',
+                                    autocomplete: 'new-password'
+                                },
+                                {
+                                    tag :'span',
+                                    cls : 'input-group-addon',
+                                    cn : [
+                                        {
+                                            tag: 'span',
+                                            cls: 'caret'
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
+                    ]
+                },
+                {
+                    tag : 'div',
+                    cls : 'roo-money-amount column col-lg-' + this.inputlg + ' col-md-' + this.inputmd + ' col-sm-' + this.inputsm + ' col-xs-' + this.inputxs,
+                    cn : [
+                        {
+                            tag: 'div',
+                            cls: this.hasFeedback ? 'has-feedback' : '',
+                            cn: [
+                                input
+                            ]
+                        }
+                    ]
+                }
+            ]
+            
+        };
+        
+        if (this.fieldLabel.length) {
+            var indicator = {
+                tag: 'i',
+                tooltip: 'This field is required'
+            };
+
+            var label = {
+                tag: 'label',
+                'for':  id,
+                cls: 'control-label',
+                cn: []
+            };
+
+            var label_text = {
+                tag: 'span',
+                html: this.fieldLabel
+            };
+
+            indicator.cls = 'roo-required-indicator text-danger fa fa-lg fa-star left-indicator';
+            label.cn = [
+                indicator,
+                label_text
+            ];
+
+            if(this.indicatorpos == 'right') {
+                indicator.cls = 'roo-required-indicator text-danger fa fa-lg fa-star right-indicator';
+                label.cn = [
+                    label_text,
+                    indicator
+                ];
+            }
+
+            if(align == 'left') {
+                container = {
+                    tag: 'div',
+                    cn: [
+                        container
+                    ]
+                };
+
+                if(this.labelWidth > 12){
+                    label.style = "width: " + this.labelWidth + 'px';
+                }
+                if(this.labelWidth < 13 && this.labelmd == 0){
+                    this.labelmd = this.labelWidth;
+                }
+                if(this.labellg > 0){
+                    label.cls += ' col-lg-' + this.labellg;
+                    input.cls += ' col-lg-' + (12 - this.labellg);
+                }
+                if(this.labelmd > 0){
+                    label.cls += ' col-md-' + this.labelmd;
+                    container.cls += ' col-md-' + (12 - this.labelmd);
+                }
+                if(this.labelsm > 0){
+                    label.cls += ' col-sm-' + this.labelsm;
+                    container.cls += ' col-sm-' + (12 - this.labelsm);
+                }
+                if(this.labelxs > 0){
+                    label.cls += ' col-xs-' + this.labelxs;
+                    container.cls += ' col-xs-' + (12 - this.labelxs);
+                }
+            }
+        }
+
+        cfg.cn = [
+            label,
+            container
+        ];
+
+        var settings = this;
+
+        ['xs','sm','md','lg'].map(function(size){
+            if (settings[size]) {
+                cfg.cls += ' col-' + size + '-' + settings[size];
+            }
+        });
+        
+        return cfg;
+        
+    },
+    
+    initEvents : function()
+    {
+        this.initCurrencyEvent();
+        
+        this.initNumberEvent();
+        
+    },
+    
+    initCurrencyEvent : function()
+    {
+        if (!this.store) {
+            throw "can not find store for combo";
+        }
+        
+        this.store = Roo.factory(this.store, Roo.data);
+        this.store.parent = this;
+        
+        this.createList();
+        
+        this.indicator = this.indicatorEl();
+        
+        this.triggerEl = this.el.select('.input-group-addon', true).first();
+        
+        this.triggerEl.on("click", this.onTriggerClick, this, { preventDefault : true });
+        
+        this.currencyEl = this.el.select('.roo-money-currency-input', true).first();
+        
+        this.amountEl = this.el.select('.roo-money-amount-input', true).first();
+        
+        var _this = this;
+        
+        (function(){
+            var lw = _this.listWidth || Math.max(_this.inputEl().getWidth(), _this.minListWidth);
+            _this.list.setWidth(lw);
+        }).defer(100);
+        
+        this.list.on('mouseover', this.onViewOver, this);
+        this.list.on('mousemove', this.onViewMove, this);
+        this.list.on('scroll', this.onViewScroll, this);
+        
+        if(!this.tpl){
+            this.tpl = '<li><a href="#">{' + this.currencyField + '}</a></li>';
+        }
+        
+        this.view = new Roo.View(this.list, this.tpl, {
+            singleSelect:true, store: this.store, selectedClass: this.selectedClass
+        });
+        
+        this.view.on('click', this.onViewClick, this);
+        
+        this.store.on('beforeload', this.onBeforeLoad, this);
+        this.store.on('load', this.onLoad, this);
+        this.store.on('loadexception', this.onLoadException, this);
+        
+        this.keyNav = new Roo.KeyNav(this.currencyEl, {
+            "up" : function(e){
+                this.inKeyMode = true;
+                this.selectPrev();
+            },
+
+            "down" : function(e){
+                if(!this.isExpanded()){
+                    this.onTriggerClick();
+                }else{
+                    this.inKeyMode = true;
+                    this.selectNext();
+                }
+            },
+
+            "enter" : function(e){
+                this.collapse();
+                
+                if(this.fireEvent("specialkey", this, e)){
+                    this.onViewClick(false);
+                }
+                
+                return true;
+            },
+
+            "esc" : function(e){
+                this.collapse();
+            },
+
+            "tab" : function(e){
+                this.collapse();
+                
+                if(this.fireEvent("specialkey", this, e)){
+                    this.onViewClick(false);
+                }
+                
+                return true;
+            },
+
+            scope : this,
+
+            doRelay : function(foo, bar, hname){
+                if(hname == 'down' || this.scope.isExpanded()){
+                   return Roo.KeyNav.prototype.doRelay.apply(this, arguments);
+                }
+                return true;
+            },
+
+            forceKeyDown: true
+        });
+        
+    },
+    
+    initNumberEvent : function(e)
+    {
+        var allowed = "0123456789";
+        
+        if(this.allowDecimals){
+            allowed += this.decimalSeparator;
+        }
+        
+        if(this.allowNegative){
+            allowed += "-";
+        }
+        
+        this.stripCharsRe = new RegExp('[^'+allowed+']', 'gi');
+        
+        var keyPress = function(e){
+            
+            var k = e.getKey();
+            
+            var c = e.getCharCode();
+            
+            if(
+                    (String.fromCharCode(c) == '.' || String.fromCharCode(c) == '-') &&
+                    allowed.indexOf(String.fromCharCode(c)) === -1
+            ){
+                e.stopEvent();
+                return;
+            }
+            
+            if(!Roo.isIE && (e.isSpecialKey() || k == e.BACKSPACE || k == e.DELETE)){
+                return;
+            }
+            
+            if(allowed.indexOf(String.fromCharCode(c)) === -1){
+                e.stopEvent();
+            }
+        };
+        
+        this.amountEl.on("keypress", keyPress, this);
+        
+    },
+    
+    onTriggerClick : function(e)
+    {   
+        if(this.disabled){
+            return;
+        }
+        
+        this.page = 0;
+        this.loadNext = false;
+        
+        if(this.isExpanded()){
+            this.collapse();
+            return;
+        }
+        
+        this.hasFocus = true;
+        
+        if(this.triggerAction == 'all') {
+            this.doQuery(this.allQuery, true);
+            return;
+        }
+        
+        this.doQuery(this.getRawValue());
+    },
+    
+    restrictHeight : function()
+    {
+        this.list.alignTo(this.currencyEl, this.listAlign);
+        this.list.alignTo(this.currencyEl, this.listAlign);
+    },
+    
+    onViewClick : function(view, doFocus, el, e)
+    {
+        var index = this.view.getSelectedIndexes()[0];
+        
+        var r = this.store.getAt(index);
+        
+        if(r){
+            this.onSelect(r, index);
+        }
+    },
+    
+    setFromData : function(o)
+    {
+        var currency = '';
+        
+        this.lastData = o;
+        
+        if (this.currencyField) {
+            currency = !o || typeof(o[this.currencyField]) == 'undefined' ? '' : o[this.currencyField];
+        } else {
+            Roo.log('no  displayField value set for '+ (this.name ? this.name : this.id));
+        }
+        
+        this.lastSelectionText = currency;
+        this.currencyValue = currency;
+        
+        this.setCurrency(currency);
+        
+        
+    },
+    
+    setCurrency : function(v)
+    {   
+        this.currencyValue = v;
+        
+        if(this.rendered){
+            this.currencyEl.dom.value = (v === null || v === undefined ? '' : v);
+            this.validate();
+        }
+    },
+    
+    validate : function()
+    {
+        return;
+        
+        var v = this.getRawValue();
+        
+        if(this.multiple){
+            v = this.getValue();
+        }
+        
+        if(this.disabled || this.allowBlank || v.length){
+            this.markValid();
+            return true;
+        }
+        
+        this.markInvalid();
+        return false;
+    },
+    
+    parseValue : function(value)
+    {
+        value = parseFloat(String(value).replace(this.decimalSeparator, "."));
+        return isNaN(value) ? '' : value;
+    },
+    
+    fixPrecision : function(value)
+    {
+        var nan = isNaN(value);
+        
+        if(!this.allowDecimals || this.decimalPrecision == -1 || nan || !value){
+            return nan ? '' : value;
+        }
+        
+        return parseFloat(value).toFixed(this.decimalPrecision);
+    },
+    
+    decimalPrecisionFcn : function(v)
+    {
+        return Math.floor(v);
+    },
+    
+    setValue : function(v)
+    {
+        v = this.fixPrecision(v);
+        Roo.bootstrap.NumberField.superclass.setValue.call(this, String(v).replace(".", this.decimalSeparator));
+    }
 });
\ No newline at end of file