sync
[roojs1] / roojs-bootstrap-debug.js
index a463428..c97d666 100644 (file)
@@ -37927,11 +37927,1271 @@ Roo.extend(Roo.bootstrap.panel.TabItem, Roo.util.Observable,
      */
     closeText : "Close this tab"
 });
+
+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
+**/
+
 Roo.bootstrap.PhoneInput = function(config) {
     Roo.bootstrap.PhoneInput.superclass.constructor.call(this, config);
 };
 
-Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
+Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField, {
         
         triggerList : true,
         
@@ -37939,13 +39199,22 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
         
         selectedClass: 'active',
         
+        allCountries: false,
+        
+        dialCodeMapping: false,
+        
+        preferedCountries: false,
+        
+        defaultDialCode: '+852',
+        
         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];
+            for (var i = 0; i < data.length; i++) {
+              var c = data[i];
               this.allCountries[i] = {
                 name: c[0],
                 iso2: c[1],
@@ -37953,22 +39222,25 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
                 priority: c[3] || 0,
                 areaCodes: c[4] || null
               };
+              this.dialCodeMapping[c[2]] = {
+                  name: c[0],
+                  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',
+                type : 'number',
                 cls : 'form-control tel-input',
                 autocomplete: 'new-password'
-                //placeholder : this.placeholder || '' 
             };
             
             if (this.name) {
@@ -37976,12 +39248,12 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             }
             
             if (this.disabled) {
-                input.disabled=true;
+                input.disabled = true;
             }
             
             var flag_container = {
                 tag: 'div',
-                cls: 'flag-container',
+                cls: 'flag-box',
                 cn: [
                     {
                         tag: 'div',
@@ -37998,7 +39270,12 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
                 tag: 'div',
                 cls: this.hasFeedback ? 'has-feedback' : '',
                 cn: [
-                    input
+                    input,
+                    {
+                        tag: 'input',
+                        cls: 'dial-code-holder',
+                        disabled: true
+                    }
                 ]
             };
             
@@ -38080,7 +39357,6 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
                 container
             ];
             
-            
             var settings = this;
             
             ['xs','sm','md','lg'].map(function(size){
@@ -38092,7 +39368,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',
@@ -38115,21 +39390,13 @@ 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;
+            this.store.proxy.data = {
+                success: true,
+                data: this.allCountries
+            };
             
             return cfg;
         },
@@ -38139,7 +39406,11 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             this.createList();
             Roo.bootstrap.PhoneInput.superclass.initEvents.call(this);
             
-            this.trigger = this.el.select('div.flag-container',true).first();
+            this.indicator = this.indicatorEl();
+            this.flag = this.flagEl();
+            this.dialCodeHolder = this.dialCodeHolderEl();
+            
+            this.trigger = this.el.select('div.flag-box',true).first();
             this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true});
             
             var _this = this;
@@ -38151,30 +39422,25 @@ 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.list.on('scroll', this.onViewScroll, this);
             
-            this.tpl = '<li><a href="#"><div class="flag {iso2}"></div>{name}</a></li>';
+            this.tpl = '<li><a href="#"><div class="flag {iso2}"></div>{name} <span class="dial-code">+{dialCode}</span></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.view.on('click', this.onViewClick, this);
+            this.setValue(this.defaultDialCode);
         },
         
         onTriggerClick : function(e)
         {
             Roo.log('trigger click');
-            
             if(this.disabled || !this.triggerList){
                 return;
             }
             
-            this.page = 0;
-            this.loadNext = false;
-            
             if(this.isExpanded()){
                 this.collapse();
                 this.hasFocus = false;
@@ -38185,11 +39451,13 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             }
         },
         
-        isExpanded : function(){
+        isExpanded : function()
+        {
             return this.list.isVisible();
         },
         
-        collapse : function(){
+        collapse : function()
+        {
             if(!this.isExpanded()){
                 return;
             }
@@ -38197,12 +39465,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(){
-           
+        expand : function()
+        {
+            Roo.log('expand');
+
             if(this.isExpanded() || !this.hasFocus){
                 return;
             }
@@ -38210,10 +39479,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);
@@ -38224,19 +39490,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
+        onViewOver : function(e, t)
+        {
+            if(this.inKeyMode){
                 return;
             }
             var item = this.view.findItemFromChild(t);
@@ -38254,45 +39514,6 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             
             var r = this.store.getAt(index);
             
-            if(this.tickable){
-                
-                if(typeof(e) != 'undefined' && e.getTarget().nodeName.toLowerCase() != 'input'){
-                    return;
-                }
-                
-                var rm = false;
-                var _this = this;
-                
-                Roo.each(this.tickItems, function(v,k){
-                    
-                    if(typeof(v) != 'undefined' && v[_this.valueField] == r.data[_this.valueField]){
-                        Roo.log(v);
-                        _this.tickItems.splice(k, 1);
-                        
-                        if(typeof(e) == 'undefined' && view == false){
-                            Roo.get(_this.view.getNodes(index, index)[0]).select('input', true).first().dom.checked = false;
-                        }
-                        
-                        rm = true;
-                        return;
-                    }
-                });
-                
-                if(rm){
-                    return;
-                }
-                
-                if(this.fireEvent('tick', this, r, index, Roo.get(_this.view.getNodes(index, index)[0]).select('input', true).first().dom.checked) !== false){
-                    this.tickItems.push(r.data);
-                }
-                
-                if(typeof(e) == 'undefined' && view == false){
-                    Roo.get(_this.view.getNodes(index, index)[0]).select('input', true).first().dom.checked = true;
-                }
-                        
-                return;
-            }
-            
             if(r){
                 this.onSelect(r, index);
             }
@@ -38306,50 +39527,12 @@ Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField,  {
             this.inKeyMode = false;
         },
         
-        onViewScroll : function(e, t)
+        select : function(index, scrollIntoView)
         {
-            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);
                 }
@@ -38363,1280 +39546,117 @@ 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){
+        collapseIf : function(e)
+        {
             var in_combo  = e.within(this.el);
             var in_list =  e.within(this.list);
             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();
         },
         
-        onSelect : function(record, index){
-            Roo.log('onselecting...');
+        onSelect : function(record, index)
+        {
             if(this.fireEvent('beforeselect', this, record, index) !== false){
                 
-                this.setFromData(index > -1 ? record.data : false);
-                
+                this.setFlagClass(record.data.iso2);
+                this.setDialCode(record.data.dialCode);
+                this.hasFocus = false;
                 this.collapse();
                 this.fireEvent('select', this, record, index);
             }
         },
         
-        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
-          ]
-      ]
+        flagEl : function()
+        {
+            var flag = this.el.select('div.flag',true).first();
+            if(!flag){
+                return false;
+            }
+            return flag;
+        },
+        
+        dialCodeHolderEl : function()
+        {
+            var d = this.el.select('input.dial-code-holder',true).first();
+            if(!d){
+                return false;
+            }
+            return d;
+        },
+        
+        setDialCode : function(v)
+        {
+            this.dialCodeHolder.dom.value = '+'+v;
+        },
+        
+        setFlagClass : function(n)
+        {
+            this.flag.dom.className = 'flag '+n;
+        },
+        
+        getValue : function()
+        {
+            var v = this.inputEl().getValue();
+            if(this.dialCodeHolder) {
+                v = this.dialCodeHolder.dom.value+this.inputEl().getValue();
+            }
+            return v;
+        },
+        
+        setValue : function(v)
+        {
+            var d = this.getDialCode(v);
+            this.value = v;
+            
+            if(!d || d.length == 0) {
+                if(this.rendered){
+                    this.inputEl().dom.value = (v === null || v === undefined ? '' : v);
+                }
+                return;
+            }
+            
+            this.setFlagClass(this.dialCodeMapping[d].iso2);
+            this.setDialCode(d);
+            this.inputEl().dom.value = v.replace('+'+d,'');
+        },
+        
+        getDialCode : function(v = '')
+        {
+            if (v.length == 0) {
+                return this.dialCodeHolder.dom.value;
+            }
+            
+            var dialCode = "";
+            // only interested in international numbers (starting with a plus)
+            if (v.charAt(0) != "+") {
+                return false;
+            }
+            var numericChars = "";
+            for (var i = 1; i < v.length; i++) {
+              var c = v.charAt(i);
+              if (!isNaN(c)) {
+                numericChars += c;
+                if (this.dialCodeMapping[numericChars]) {
+                  dialCode = v.substr(1, i);
+                }
+                if (numericChars.length == 4) {
+                  break;
+                }
+              }
+            }
+            return dialCode;
+        },
+        
+        validate : function()
+        {
+            //
+            return false;
+        }
 });
\ No newline at end of file