// Expects a DIV on the page named matrix to place the resulting message in

// SETUP SCHOLARSHIP TEXT VALUES HERE
var scholar=new Array();
scholar[0]="Based on your combined scores and GPA, you may qualify for a Breakthrough Award upon admission to Westminster and receipt of your FAFSA results.  Please don't forget to file by our priority deadline of February 15 during your senior year.<br/><br/>To hear about other financial aid options available to you, please submit your information, or call our Financial Aid office at (573) 642-3361.";
scholar[1]="Congratulations, your combined scores and GPA may qualify you for a Dean's Scholarship between $4,000 and $7,000!";
scholar[2]="Congratulations, your combined scores and GPA may qualify you for a Churchill, Trustee's, or President's Scholarship between $7,500 and full tuition each year!";


// SETUP SCHOLARSHIP BRACKETS HERE

function GetSATBracket(v){
  if (trim(v)=='') return null;
  v = parseInt(v);
  if (v < 1589) return 0;
  if (v < 1760) return 1;
  if (v >= 1760) return 2;

  return null;
}

function GetACTBracket(v){
  if (trim(v)=='') return null;
  v = parseInt(v);
  if (v < 23) return 0;
  if (v < 26) return 1;
  if (v >= 26) return 2;

  return null;
}

function GetGPABracket(v){
  if (trim(v)=='') return null;
  v = Number(v);
  if (v < 3.00) return 0;
  if (v < 3.25) return 1;
  if (v >= 3.25) return 2;

  return null;
}

// !!!!-=DON'T EDIT ANYTHING FROM HERE DOWN=-!!!!

function GPAtoInt(gpaVal){
  switch(gpaVal){
    case 'a+':
    case 'A+':
    case 'a':
    case 'A':
      return 4;
      break;
    case 'a-':
    case 'A-':
      return 3.7;
      break;
    case 'b+':
    case 'B+':
      return 3.3;
      break;
    case 'b':
    case 'B':
      return 3;
      break;
    case 'b-':
    case 'B-':
      return 2.7;
      break;
    case 'c+':
    case 'C+':
      return 2.3;
      break;
    case 'c':
    case 'C':
      return 2.0;
      break;
    case 'c-':
    case 'C-':
      return 1.7;
      break;
    case 'd+':
    case 'D+':
      return 1.3;
      break;
    case 'd':
    case 'D':
      return 1.0;
      break;
    case 'f':
    case 'F':
      return 0;
      break;
    default:
      return gpaVal;
      break;
  }
}

function trim(stringToTrim) {
	if(!stringToTrim.split) return stringToTrim;
  if(stringToTrim) return stringToTrim.replace(/^\s+|\s+$/g,"");
  return null;
}

function MaxTest(edtVal, maxVal){
  var nVal = Number(edtVal);
  if((nVal==0)||(isNaN(nVal))) return edtVal;
  maxVal = Number(maxVal);
  if(nVal > maxVal){
    return maxVal;
  }else{
    return nVal;
  }
}

function CheckForm(){
  var satMax = 1800;
  var gpaMax = 4.5;
  var actMax = 36;
	var actEdt = document.getElementById('act');
  var satEdt = document.getElementById('sat');
  var gpaEdt = document.getElementById('gpa');
  if (!(actEdt.options)) actEdt.value = MaxTest(actEdt.value, actMax);
  if (!(satEdt.options)) satEdt.value = MaxTest(satEdt.value, satMax);
  if (!(gpaEdt.options)) gpaEdt.value = MaxTest(gpaEdt.value, gpaMax);
}

function GetElemVal(elemId){
  var elem = document.getElementById(elemId);
  if (!elem) return null;
  if (elem.options) return elem.options[elem.selectedIndex].value;
  return elem.value;
}

function calc(){
  CheckForm();
  var act=GetElemVal('act');
  if (act=='...') act = null;
  act = GetACTBracket(act);
  var sat=GetSATBracket(GetElemVal('sat'));
  var gpaEdt = document.getElementById('gpa');
	var gpa=(GetElemVal('gpa'));
	gpa = gpa.replace(/ /g,"");
  gpa = GPAtoInt(gpa);
  if(!(gpaEdt.options)) gpaEdt.value = gpa;
  gpa = GetGPABracket(gpa);

  var matrix = document.getElementById('matrix');
  var msg;
  
  if ((act != null)&&(gpa != null)){
    // factor on ACT
    if (gpa < act){
      msg = gpa;
    }else{
      msg = act;
    }
    matrix.innerHTML = scholar[msg];
  }else if ((sat != null)&&(gpa != null)){
    // factor on SAT
    if (gpa < sat){
      msg = gpa;
    }else{
      msg = sat;
    }
    matrix.innerHTML = scholar[msg];
  }else{
    // prompt for proper input
    matrix.innerHTML = 'Please enter your SAT or ACT score and your GPA in the fields provided.';
  }
  
  return false;
}
