var iban_data = new Array(
  new Country("Andorra",        "AD", "0  4n 4n", "0  12   0 "),
  new Country("Austria",        "AT", "0  5n 0 ", "0  11n  0 "),
  new Country("Belgium",        "BE", "0  3n 0 ", "0   7n  2n"),
  new Country("Cyprus",         "CY", "0  3n 5n", "0  16   0 "),
  new Country("Czech Republic", "CZ", "0  4n 0 ", "0  16n  0 "),
  new Country("Denmark",        "DK", "0  4n 0 ", "0   9n  1n"),
  new Country("Estonia",        "EE", "0  2n 2n", "0  11n  1n"),
  new Country("Finland",        "FI", "0  6n 0 ", "0   7n  1n"),
  new Country("Faroe Islands",  "FO", "0  4n 0 ", "0   9n  1n"),
  new Country("France",         "FR", "0  5n 5n", "0  11   2n"),
  new Country("Germany",        "DE", "0  8n 0 ", "0  10n  0 "),  
  new Country("Gibraltar",      "GI", "0  4a 0 ", "0  15   0 "),
  new Country("Greenland",      "GL", "0  4n 0 ", "0   9n  1n"),
  new Country("Greece",         "GR", "0  3n 4n", "0  16   0 "),
  new Country("Hungary",        "HU", "0  3n 4n", "1  15   1 "),
  new Country("Iceland",        "IS", "0  4n 0 ", "0  18n  0 "),
  new Country("Ireland",        "IE", "0  4a 6n", "0   8n  0 "),
  new Country("Italy",          "IT", "1a 5n 5n", "0  12   0 "),
  new Country("Latvia",         "LV", "0  4a 0 ", "0  13   0 "),
  new Country("Lithuania",      "LT", "0  5n 0 ", "0  11   0 "),
  new Country("Liechtenstein",  "LI", "0  5n 0 ", "0  12   0 "),
  new Country("Luxembourg",     "LU", "0  3n 0 ", "0  13   0 "),
  new Country("Monaco",         "MC", "0  5n 5n", "0  11   2n"),
  new Country("Malta",          "MT", "0  4a 5n", "0  18   0 "), 
  new Country("Netherlands",    "NL", "0  4a 0 ", "0  10n  0 "),
  new Country("Norway",         "NO", "0  4n 0 ", "0   6n  1n"),
  new Country("Poland",         "PL", "0  8n 0 ", "0  16   0 "),
  new Country("Portugal",       "PT", "0  4n 4n", "0  11n  2n"),
  new Country("Romania",        "RO", "0  4a 0 ", "0  16   0 "),
  new Country("Slovak Republic","SK", "0  4n 0 ", "6n 10n  0 "),  
  new Country("Slovenia",       "SI", "0  5n 0 ", "0   8n  2n"),
  new Country("Spain",          "ES", "0  4n 4n", "2n 10n  0 "),  
  new Country("San Marino",     "SM", "1a 5n 5n", "0  12   0 "),
  new Country("Sweden",         "SE", "0  3n 0 ", "0  16n  1n"),
  new Country("Switzerland",    "CH", "0  5n 0 ", "0  12   0 "),
  new Country("United Kingdom", "GB", "0  4a 6n", "0   8n  0 "),

  new Country("Serbia",			"RS", "0  3n 0 ", "0  13n  2n"),
  new Country("Montenegro",		"ME", "0  3n 0 ", "0  13n  2n"),
  
  new Country("Turkey",         "TR", "0  5n 0 ", "1  16   0 "),
  new Country("Macedonia",      "MK", "0  3n 0 ", "0  10   2n"),
  new Country("Croatia",        "HR", "0  7n 0 ", "0  10n  0 "),    
  new Country("Tunisia",        "TN", "0  2n 3n", "0  13n  2n"),
  new Country("Bulgaria",       "BG", "0  4a 0 ", "0  14  0 "),
  new Country("Mauritius",      "MU", "4a 2n 2n", "12n 3n 3a"),
  new Country("Bosnia and Herzegovina","BA", "0  3n 3n", "0 8n 2n"),
  new Country("Israel",         "IL", "0  3n 3n", "0  13n 0 "),
  new Country("Saudi Arabia",   "SA", "0  2n 0 ", "0  18  0 "),
  new Country("Albania",        "AL", "0  8n 0 ", "0  16  0 "),
  new Country("Lebanon",        "LB", "0  4n 0 ", "0  20  0 "),
  new Country("Georgia",        "GE", "0  2a 0 ", "0  16n 0 "),
  new Country("Kazakhstan",     "KZ", "0  3n 0 ", "0  13  0 "),
  new Country("Mauritania",     "MR", "0  5n 5n", "0  11n 2n"),
  new Country("Kuwait",         "KW", "0  4a 0 ", "0  22n 0 "),
  new Country("United Arab Emirates","AE", "0  3n 0 ", "0  16n 0 "),
  new Country("Dominican Republic","DO", "0  4a 0 ", "0  20n 0 ")
  );

  
  
  
function Country(name, code, bank_form, acc_form){
  this.name      = name;
  this.code      = code;
  this.bank      = Country_decode_format(bank_form);
  this.acc       = Country_decode_format(acc_form);
  this.bank_lng  = Country_calc_length(this.bank);
  this.acc_lng   = Country_calc_length(this.acc);
  this.total_lng = 4 + this.bank_lng + this.acc_lng;
}

function Country_decode_format(form){
  var form_list = new Array();
  var parts = form.split(" ");
  for (var i = 0; i<parts.length; ++i)  {
    var part = parts[i];
    if (part != "") {
      var a_n = part.charAt(part.length - 1);
      if (a_n == "a" || a_n == "n") part = part.substring(0, part.length - 1);
      else a_n = "an";
      var lng = parseInt(part);
      form_list[form_list.length] = new Array(lng, a_n);
    }
  }
  return form_list;
}

function Country_calc_length(form_list){
  var sum = 0;
  for (var i = 0; i < form_list.length; ++i)
    sum += form_list[i][0];
  return sum;
}
