// If you have PHP you can set the post values like this
//var postState = '<?= $_POST["state"] ?>';
//var postCountry = '<?= $_POST["country"] ?>';
var postState = '';
var postCountry = '';

// State table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var state = '\
D.I Aceh:Banda Aceh:Banda Aceh|\
D.I Aceh:Meulaboh:Meulaboh|\
Sumatera Utara:Medan:Medan|\
Riau:Pekanbaru:Pekanbaru|\
Kepulauan Riau:Batam:Batam|\
Sumatera Barat:Padang:Padang|\
Jambi:Jambi:Jambi|\
Jambi:Sungai Penuh:Sungai Penuh|\
Sumatera Selatan:Palembang:Palembang|\
Sumatera Selatan:Lubuklinggau:Lubuklinggau|\
Bangka Belitung:Pangkal Pinang:Pangkal Pinang|\
Bengkulu:Bengkulu:Bengkulu|\
Lampung:Bandar Lampung:Bandar Lampung|\
Lampung:Metro:Metro|\
Jakarta:Jakarta Barat:Jakarta Barat|\
Jakarta:Jakarta Utara:Jakarta Utara|\
Jakarta:Jakarta Timur:Jakarta Timur|\
Jakarta:Jakarta Pusat:Jakarta Pusat|\
Jakarta:Jakarta Selatan:Jakarta Selatan|\
Banten:Cilegon:Cilegon|\
Banten:Tangerang:Tangerang|\
Banten:Pamulang:Pamulang|\
Banten:Serpong/BSD:Serpong/BSD|\
Jawa Barat:Bandung:Bandung|\
Jawa Barat:Bekasi:Bekasi|\
Jawa Barat:Bogor:Bogor|\
Jawa Barat:Cianjur:Cianju|\
Jawa Barat:Cimahi:Cimahi|\
Jawa Barat:Cirebon:Cirebon|\
Jawa Barat:Depok:Depok|\
Jawa Barat:Garut:Garut|\
Jawa Barat:Indramayu:Indramayu|\
Jawa Barat:Karawang:Karawang|\
Jawa Barat:Purwakarta:Purwakarta|\
Jawa Barat:Sukabumi:Sukabumi|\
Jawa Barat:Sumedang:Sumedang|\
Jawa Barat:Tasikmalaya:Tasikmalaya|\
Jawa Tengah:Banyumanik:Banyumanik|\
Jawa Tengah:Cilacap:Cilacap|\
Jawa Tengah:Grobogan:Grobogan|\
Jawa Tengah:Jepara:Jepara|\
Jawa Tengah:Magelang:Magelang|\
Jawa Tengah:Pekalongan:Pekalongan|\
Jawa Tengah:Purwokerto:Purwokerto|\
Jawa Tengah:Salatiga:Salatiga|\
Jawa Tengah:Semarang:Semarang|\
Jawa Tengah:Sragen:Sragen|\
Jawa Tengah:Surakarta/Solo:Surakarta/Solo|\
D.I Yogyakarta:Bantul:Bantul|\
D.I Yogyakarta:D.I Yogyakarta:D.I Yogyakarta|\
D.I Yogyakarta:Sleman:Sleman|\
Jawa Timur:Banyuwangi:Banyuwangi|\
Jawa Timur:Jember:Jember|\
Jawa Timur:Kediri:Kediri|\
Jawa Timur:Lumajang:Lumajang|\
Jawa Timur:Madiun:Madiun|\
Jawa Timur:Malang:Malang|\
Jawa Timur:Mojokerto:Mojokerto|\
Jawa Timur:Pasuruan:Pasuruan|\
Jawa Timur:Pacitan:Pacitan|\
Jawa Timur:Probolinggo:Probolinggo|\
Jawa Timur:Sidoarjo:Sidoaro|\
Jawa Timur:Surabaya:Surabaya|\
Jawa Timur:Trenggalek:Trenggalek|\
Jawa Timur:Tuban:Tuban|\
Bali:Denpasar:Denpasar|\
Bali:Gianyar:Gianyar|\
Bali:Kuta:Kuta|\
Bali:Nusa Dua:Nusa Dua|\
Bali:Jimbaran:Jimbaran|\
Bali:Sanur:Sanur|\
Bali:Singaraja:Singaraja|\
Kalimantan Barat:Pontianak:Pontianak|\
Kalimantan Selatan:Banjarmasin:Banjarmasin|\
Kalimantan Tengah:Palangkaraya:Palangkaraya|\
Kalimantan Timur:Balikpapan:Balikpapan|\
Kalimantan Timur:Samarinda:Samarinda|\
Sulawesi Tengah:Palu:Palu|\
Sulawesi Selatan:Makassar:Makassar|\
Sulawesi Tenggara:Kendari:Kendari|\
Sulawesi Utara:Manado:Manado|\
Sulawesi Barat:Mamuju:Mamuju|\
Gorontalo:Gorontalo:Gorontalo|\
Maluku:Ambon:Ambon|\
Maluku Utara:Ternate:Ternate|\
Nusa Tenggara Barat:Mataram:Mataram|\
Nusa Tenggara Timur:Atambua:Atambua|\
Nusa Tenggara Timur:Kupang:Kupang|\
Papua Barat:Sorong:Sorong|\
Papua Barat:Fak-Fak:Fak-Fak|\
Papua:Jayapura:Jayapura|\
Papua:Timika:Timika|\
';

// Country data table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var country = '\
D.I Aceh:D.I Aceh|\
Sumatera Utara:Sumatera Utara|\
Riau:Riau|\
Kepulauan Riau:Kepulauan Riau|\
Sumatera Barat:Sumatera Barat|\
Jambi:Jambi|\
Sumatera Selatan:Sumatera Selatan|\
Bangka Belitung:Bangka Belitung|\
Bengkulu:Bengkulu|\
Lampung:Lampung|\
Jakarta:Jakarta|\
Banten:Banten|\
Jawa Barat:Jawa Barat|\
Jawa Tengah:Jawa Tengah|\
D.I Yogyakarta:D.I Yogyakarta|\
Jawa Timur:Jawa Timur|\
Bali:Bali|\
Kalimantan Barat:Kalimantan Barat|\
Kalimantan Selatan:Kalimantan Selatan|\
Kalimantan Tengah:Kalimantan Tengah|\
Kalimantan Timur:Kalimantan Timur|\
Sulawesi Tengah:Sulawesi Tengah|\
Sulawesi Selatan:Sulawesi Selatan|\
Sulawesi Tenggara:Sulawesi Tenggara|\
Sulawesi Utara:Sulawesi Utara|\
Sulawesi Barat:Sulawesi Barat|\
Gorontalo:Gorontalo|\
Maluku:Maluku|\
Maluku Utara:Maluku Utara|\
Nusa Tenggara Barat:Nusa Tenggara Barat|\
Nusa Tenggara Timur:Nusa Tenggara Timur|\
Papua Barat:Papua Barat|\
Papua:Papua|\
';

function TrimString(sInString) {
  if ( sInString ) {
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
  }
}

// Populates the country selected with the counties from the country list
function populateCountry(defaultCountry) {
  if ( postCountry != '' ) {
    defaultCountry = postCountry;
  }
  var countryLineArray = country.split('|');  // Split into lines
  var selObj = document.getElementById('countrySelect');
  selObj.options[0] = new Option('Pilih Propinsi','');
  selObj.selectedIndex = 0;
  for (var loop = 0; loop < countryLineArray.length; loop++) {
    lineArray = countryLineArray[loop].split(':');
    countryCode  = TrimString(lineArray[0]);
    countryName  = TrimString(lineArray[1]);
    if ( countryCode != '' ) {
      selObj.options[loop + 1] = new Option(countryName, countryCode);
    }
    if ( defaultCountry == countryCode ) {
      selObj.selectedIndex = loop + 1;
    }
  }
}

function populateState() {
  var selObj = document.getElementById('stateSelect');
  var foundState = false;
  // Empty options just in case new drop down is shorter
  if ( selObj.type == 'select-one' ) {
    for (var i = 0; i < selObj.options.length; i++) {
      selObj.options[i] = null;
    }
    selObj.options.length=null;
    selObj.options[0] = new Option('Pilih Kota','');
    selObj.selectedIndex = 0;
  }
  // Populate the drop down with states from the selected country
  var stateLineArray = state.split("|");  // Split into lines
  var optionCntr = 1;
  for (var loop = 0; loop < stateLineArray.length; loop++) {
    lineArray = stateLineArray[loop].split(":");
    countryCode  = TrimString(lineArray[0]);
    stateCode    = TrimString(lineArray[1]);
    stateName    = TrimString(lineArray[2]);
  if (document.getElementById('countrySelect').value == countryCode && countryCode != '' ) {
    // If it's a input element, change it to a select
      if ( selObj.type == 'text' ) {
        parentObj = document.getElementById('stateSelect').parentNode;
        parentObj.removeChild(selObj);
        var inputSel = document.createElement("SELECT");
        inputSel.setAttribute("name","state");
        inputSel.setAttribute("id","stateSelect");
        parentObj.appendChild(inputSel) ;
        selObj = document.getElementById('stateSelect');
        selObj.options[0] = new Option('Pilih Kota','');
        selObj.selectedIndex = 0;
      }
      if ( stateCode != '' ) {
        selObj.options[optionCntr] = new Option(stateName, stateCode);
      }
      // See if it's selected from a previous post
      if ( stateCode == postState && countryCode == postCountry ) {
        selObj.selectedIndex = optionCntr;
      }
      foundState = true;
      optionCntr++
    }
  }
  // If the country has no states, change the select to a text box
 /* if ( ! foundState ) {
    parentObj = document.getElementById('stateSelect').parentNode;
    parentObj.removeChild(selObj);
  // Create the Input Field
    var inputEl = document.createElement("INPUT");
    inputEl.setAttribute("id","stateSelect");
    inputEl.setAttribute("type","text");
    inputEl.setAttribute("name","kota");
    inputEl.setAttribute("size",30);
    inputEl.setAttribute("value",postState);
    parentObj.appendChild(inputEl) ;
  } */
}

function initCountry(country) {
  populateCountry(country);
  populateState();
}
