



function clearSelect(id1)
{
  var select = document.getElementById(id1);
  if (select != null)
    select.options.length = 1;
}

function getStateData()
{
  dojo.byId("state").disabled = true;
  dojo.byId("state-label").text = "Loading States...";
  var url = "/list/getStates.htm";
  dojo.io.bind({
    url: url,
    load: function(type, data, evt) { processStateData(data); },
    error: function(type, data, evt) { assignError(data); },
    timeoutSeconds: 60,
    timeout: function(type, data, evt)
    {
      displayTimeoutError("loading states");
    },
    mimetype: "text/plain"
  });
}

function processStateData(dataResponse)
{
  dojo.byId("state").disabled = false;
  dojo.byId("state-label").text = "State";
  var data = eval("(" + dataResponse + ")");
  clearSelect("state");
  clearSelect("city");
  clearSelect("school");

  var stateSelect = document.getElementById("state");
  for (var i = 0; i < data.states.length; i++)
    stateSelect[i+1] = new Option(data.states[i].name, data.states[i].name);
}

function getCityData(state)
{
  if (dojo.byId("state").value != "")
  {
    dojo.byId("city").disabled = true;
    dojo.byId("city-label").text = "Loading Cities...";
    var url = "/list/getCities.htm?state=" + state;
    dojo.io.bind({
      url: url,
      load: function(type, data, evt) { processCityData(data); },
      error: function(type, data, evt) { assignError(data); },
      timeoutSeconds: 60,
      timeout: function(type, data, evt)
      {
        displayTimeoutError("loading cities");
        dojo.byId("city").disabled = false;
      },
      mimetype: "text/plain"
    });
  }
}

function processCityData(dataResponse)
{
  dojo.byId("city-label").text = "City";
  dojo.byId("city").disabled = false;
  var data = eval("(" + dataResponse + ")");
  clearSelect("city");
  clearSelect("school");

  var citySelect = document.getElementById("city");
  for (var i = 0; i < data.cities.length; i++ )
    citySelect[i+1] = new Option(data.cities[i].name, data.cities[i].name);
}

function getSchoolData(city, state)
{
  if (dojo.byId("city").value != "")
  {
    dojo.byId("school").disabled = true;
    dojo.byId("school-label").text = "Loading Schools...";
    var url = "/list/getSchools.htm?city=" + city + "&state=" + state;
    dojo.io.bind({
      url: url,
      load: function(type, data, evt) { processSchoolData(data); },
      error: function(type, data, evt) { assignError(data); },
      timeoutSeconds: 60,
      timeout: function(type, data, evt)
      {
        displayTimeoutError("loading schools");
        dojo.byId("school").disabled = false;
      },
      mimetype: "text/plain"
    });
  }
}

function processSchoolData(dataResponse)
{
  dojo.byId("school-label").text = "School";
  dojo.byId("school").disabled = false;
  var data = eval("(" + dataResponse + ")");
  clearSelect("school");

  var schoolSelect = document.getElementById("school");
  for (var i = 0; i < data.schools.length; i++ )
    schoolSelect[i+1] = new Option(data.schools[i].name, data.schools[i].name);
}

function displayTimeoutError(action)
{
  dojo.event.disconnect(dojo.byId('warning-submit'), 'onclick');
  dojo.event.connect(dojo.byId("warning-submit"), "onclick", function(e)
  {
    dojo.widget.byId("warning-dialog").minimizeWindow();
    window.location.reload();
  });
  dojo.event.disconnect(dojo.byId('warning-cancel'), 'onclick');
  dojo.event.connect(dojo.byId("warning-cancel"), "onclick", function(e)
  {
    dojo.widget.byId("warning-dialog").minimizeWindow();
  });
  dojo.byId("warning-text").innerHTML = "The server took too long responding when " + action + ". Please reload the page and try again.";
  dojo.widget.byId("warning-dialog").restoreWindow();
}

function addNewSchool()
{
  var form = dojo.byId("schoolLookup");
  form.action = "/admin/schoolProfile.htm";
  form.submit();
}