var basename = 'youthgroupdb'; // set this to match basename set in PHP class code
var stateid = basename + '-state';
var hiddenstateid = basename + '-stateid';
var subfirstid = basename + '-suburbfirst';
var suburbid = basename + '-suburb';
var localityid = basename + '-locality';
var hiddensiterootid = basename + '-siteroot';
var siteroot =location.pathname.slice(0,location.pathname.indexOf('/',1)+1);

function stateChanged (obj,subfirstobj) {
  subfirstobj.selectedIndex = 0;
  subfirstChanged(subfirstobj,obj); // .options[obj.selectedIndex].value); // would be nice if this happened automatically like in VB!
}
function subfirstChanged (obj,stateselobj) {
  // all this ajax stuff is [jas]' fault
  var subobj = document.getElementById(suburbid);
  subobj.setAttribute('disabled','disabled');
  subobj.removeChildNodes();
  var letter = obj.options[obj.selectedIndex].value;
  if (letter==0) {
    var optlabel = document.createTextNode('----------------');
  }
  else {
    var optlabel = document.createTextNode('Loading...');
  }
  var tempopt = mycreateElement('option');
  tempopt.setAttribute('value',-1);
  tempopt.appendChild(optlabel);
  subobj.appendChild(tempopt);
  if (letter==0) {
    subobj.removeAttribute('disabled');
    return true;
  }
  var URL = siteroot + 'tools/ajax.php?service=plugin&plugin=youthgroupdb';
  URL = URL + '&suburbletter=' + letter;
  if (stateselobj.options) {
    var stateval = stateselobj.options[stateselobj.selectedIndex].value;
  }
  else {
    var stateval = stateselobj.value;
  }
  URL = URL + '&state=' + stateval;//stateobjvalue;
  URL = URL + '&subobjid=' + 'subobj';
  // setup and use global xmlobj request object
  xmlobj.actionFunc = function (ajaxstr) {
    subobj.removeChildNodes();
    eval(ajaxstr);
    subobj.removeAttribute('disabled');
  }
  xmlobj.getFile(URL);
}

function youthgroupsdbLoadEvents() {
  if (document.getElementById) {
    if (document.getElementById(localityid)) {
      document.getElementById(localityid).parentNode.parentNode.removeChild(document.getElementById(localityid).parentNode);
      //document.getElementById(localityid).parentNode.style.display = 'none';
    }
    if (document.getElementById(subfirstid)) {
      var subfirstselobj = document.getElementById(subfirstid);
      subfirstselobj.parentNode.style.display = 'block';
      if (document.getElementById(suburbid)) {
        var subselobj = document.getElementById(suburbid);
        subselobj.parentNode.style.display = 'block';
      }
      if (document.getElementById(stateid)) {
        var stateselobj = document.getElementById(stateid);
        statevalue = stateselobj.options[stateselobj.selectedIndex].value
        addEvent(stateselobj,'change', function () { stateChanged(stateselobj,subfirstselobj); },false);
      }
      else if (document.getElementById(hiddenstateid)) {
        var stateselobj = document.getElementById(hiddenstateid);
        statevalue = stateselobj.value
      }
      if (document.getElementById(hiddensiterootid)) {
        var siterootobj = document.getElementById(hiddensiterootid);
        siteroot = siterootobj.value
      }
      if (subselobj) {
        var selletter = new String(subfirstselobj.options[subfirstselobj.selectedIndex].value);
        var selsuburb = new String(subselobj.options[subselobj.selectedIndex].text);
        if (selletter != selsuburb.substring(0,1)) {
          subfirstChanged(subfirstselobj,stateselobj);
        }
      }
      if (stateselobj != null) {
        addEvent(subfirstselobj,'change', function () { subfirstChanged(subfirstselobj,stateselobj); },false);
      }
      //alert(subfirstselobj.options[subfirstselobj.selectedIndex].value);
    }
  }
}

addLoadEvent(youthgroupsdbLoadEvents);

