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

// Populates the region selected with the counties from the region list
function populateRegion(defaultRegion) {
  if ( postRegion != '' ) {
    defaultRegion = postRegion;
  }
  var regionLineArray = region.split('|');  // Split into lines
  var selObj = document.getElementById('regionSelect');
  selObj.options[0] = new Option('Select Region','');
  selObj.selectedIndex = 0;
  for (var loop = 0; loop < (regionLineArray.length -1); loop++) {
    lineArray = regionLineArray[loop].split(':');
    regionCode  = TrimString(lineArray[0]);
    regionName  = TrimString(lineArray[1]);
    if ( regionCode != '' ) {
      selObj.options[loop + 1] = new Option(regionName, regionCode);
    }
    if ( defaultRegion == regionCode ) {
      selObj.selectedIndex = loop + 1;
    }
  }
}

function populateSuburb() {
  var selObj = document.getElementById('suburbSelect');
  var foundSuburb = 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('Select Suburb','');
    selObj.selectedIndex = 0;
  }
  // Populate the drop down with suburbs from the selected region
  var suburbLineArray = suburb.split("|");  // Split into lines
  var optionCntr = 1;
  for (var loop = 0; loop < suburbLineArray.length; loop++) {
    lineArray = suburbLineArray[loop].split(":");
    regionCode  = TrimString(lineArray[0]);
    suburbCode    = TrimString(lineArray[1]);
    suburbName    = TrimString(lineArray[2]);
  if (document.getElementById('regionSelect').value == regionCode && regionCode != '' ) {
    // If it's a input element, change it to a select
      if ( selObj.type == 'text' ) {
        parentObj = document.getElementById('suburbSelect').parentNode;
        parentObj.removeChild(selObj);
        var inputSel = document.createElement("SELECT");
        inputSel.setAttribute("name","suburb");
        inputSel.setAttribute("id","suburbSelect");
        parentObj.appendChild(inputSel) ;
        selObj = document.getElementById('suburbSelect');
        selObj.options[0] = new Option('Select Suburb','');
        selObj.selectedIndex = 0;
      }
      if ( suburbCode != '' ) {
        selObj.options[optionCntr] = new Option(suburbName, suburbCode);
      }
      // See if it's selected from a previous post
      if ( suburbCode == postSuburb && regionCode == postRegion ) {
        selObj.selectedIndex = optionCntr;
      }
      foundSuburb = true;
      optionCntr++
    }
  }
  // If the region has no suburbs, change the select to a text box
  if ( ! foundSuburb ) {
    parentObj = document.getElementById('suburbSelect').parentNode;
    parentObj.removeChild(selObj);
  // Create the Input Field
    var inputEl = document.createElement("INPUT");
    inputEl.setAttribute("id", "suburbSelect");
    inputEl.setAttribute("type", "text");
    inputEl.setAttribute("name", "suburb");
    inputEl.setAttribute("size", 20);
    inputEl.setAttribute("value", postSuburb);
    parentObj.appendChild(inputEl) ;
  }
}

function initRegion(region) {
  populateRegion(region);
  populateSuburb();
}
