// constants
var noValue = '-99'

// globals
var curOption = new Array();
var isLoaded = new Array();

function body_onLoad(){

  // initialize lists
  emptyList( 'lstSystem' );
  emptyList( 'lstSchool');
  jsrsExecute( 'reports_rs.asp', cbFillSystem, 'SystemList' );
}

function lstSystem_onChange(){
  var val = this.options[this.selectedIndex].value;
  if(val == noValue){
    // don't allow novalue selection - revert to current
    selectOption( this.name, curOption[this.name] )
  } else {
    curOption[this.name] = val;
    // init dependent lists
    emptyList( 'lstSchool' );
    window.status = 'Loading School Selections...';
    jsrsExecute( 'reports_rs.asp', cbFillSchool, 'SchoolList', val );
  }  
}

function lstSchool_onChange(){
  var val = this.options[this.selectedIndex].value;
  if(val == noValue){
    selectOption( this.name, curOption[this.name] )
  } else {
var SysCode = this.form.lstSystem.options[this.form.lstSystem.selectedIndex].value;
var SchCode = this.options[this.selectedIndex].value;
//alert (SysCode+"\n"+SchCode);
window.location.href = 'http://www.alsde.edu/html/reports1.asp?systemcode='+SysCode+'&schoolcode='+SchCode;
  }
}

function cbFillSystem ( strSystem ){ 
  window.status = '';
  fillList( 'lstSystem',  strSystem ); 
}

function cbFillSchool ( strSchool ){ 
  // callback for dependent listbox
  window.status = '';
  fillList( 'lstSchool',  strSchool ); 
}

function fillList( listName, strOptions ){
  // fill any list with options
  emptyList( listName );
  
  // always insert selection prompt
  var lst = document.forms['QForm'][listName];
  lst.disabled = true;
  lst.options[0] = new Option('-- Please Select --', -1);
  switch( listName ) {
  case 'lstSystem':
	lst.options[1] = new Option('State of Alabama', '000');
    break;
  case 'lstSchool':
	lst.options[1] = new Option('Entire System', '0000');
    break;
	}
  
  // options in form "value~displaytext|value~displaytext|..."
  var aOptionPairs = strOptions.split('|');
  for( var i = 0; i < aOptionPairs.length; i++ ){
    if (aOptionPairs[i].indexOf('~') != -1) {
      var aOptions = aOptionPairs[i].split('~');

		switch( listName ) {
		case 'lstSystem':
			lst.options[i + 2] = new Option(aOptions[1], aOptions[0]);
			break;
		case 'lstSchool':
			lst.options[i + 2] = new Option(aOptions[1], aOptions[0]);
			break;
		default:
			lst.options[i + 1] = new Option(aOptions[1], aOptions[0]);
		    break;
		  }
    }  
  }
  
  // init to no value
  selectOption( listName, noValue );
  lst.onchange = eval( listName + "_onChange" );
  isLoaded[listName] = true;
  lst.disabled = false;
}

function emptyList( listName ){
  var lst = document.forms['QForm'][listName];
  lst.options.length = 0;
  lst.onchange = null;
  isLoaded[listName] = false;
  curOption[listName] = noValue;
}

function selectOption( listName, optionVal ){
  // set list selection to option based on value
  var lst = document.forms['QForm'][listName];
  for( var i = 0; i< lst.options.length; i++ ){
    if( lst.options[i].value == optionVal ){
      lst.selectedIndex = i;
      curOption[listName] = optionVal;
      return;
    }  
  }
}


