var dateIX = 0;
var sMonth = 0;
var sDay = 0;
var vTeams = new Array();
var dGames = new Array();
var localID = new Array();
//var fieldID = 0;

function getMonth(form, mth, day, sched) {
  var m = mth.value
  var beg = 1;
  var end;
  if (m == "")
    return false;
  if (m == "May") {
    m = 5;
	  beg = base_date.getDate();
	  end = 31;
  } else if (m == "June") {
    m = 6;
	  end = 30;
  } else if (m == "July") {
    m = 7;
	  end = end_date.getDate();
  }
  if (sched) {
    sMonth = m;
	  form.home_team.options.length = 0;
    form.home_team.options[0] = new Option("-- No Games Scheduled --","");
	  form.visit_team.value = "";
  }
  day.length = 0;
  var ix = 0;
  day.options[ix] = new Option("--","");
  if (sched) {
    form.gamemonth.selectedIndex = mth.selectedIndex;
	  form.gameday.length = 0;
    form.gameday.options[ix] = new Option("--","");
  }
  ix++;
  for (i = beg; i <= end; i++) {
    day.options[ix] = new Option("" + i, "" + i);
	  if (sched)
        form.gameday.options[ix] = new Option("" + i, "" + i);	
	  ix++;
  }
}

function getDateIX(form) {
  var m = form.schedmonth.value
  if (form.gamemonth.value == m)
    form.gameday.selectedIndex = form.schedday.selectedIndex;
  if (m == "")
    return false;
  if (m == "May")
    m = 5;
  else if (m == "June")
    m = 6;
  else if (m == "July")
    m = 7;
  var d = form.schedday.value;
  if (d == "")
    return false;
  if (m == 6 && d == 31)
    return false;
  var y = form.schedyear.value;
  var dt = new Date(y,m-1,d);
  dateIX = (dt - base_date) / 86400000;
  fillHomeTeam(form);
  return true;
}

function fillHomeTeam(form) {
  var g = 0;
  var ix = 0;
  var isFirst = true;
  vTeams = new Array();
  dGames = new Array();
  form.visit_team.value = "";
  while (g < games.length) {
    fld = games[g].split(":");
    if (fld[0] > dateIX) {
      break;
	  } else if (fld[0] == dateIX) {
	    if (isFirst) {
	      form.home_team.length = 0;
	      form.home_team.options[ix] = new Option("-- Select Home Team --","");
		    vTeams[ix] = "";
		    dGames[ix] = "";
	      ix++;
		    isFirst = false;
	    }
	    var tm = team_names[fld[3]].split(":");
	    form.home_team.options[ix] = new Option(tm[1],tm[1]);
	    vTeams[ix] = team_names[fld[4]];
	    dGames[ix] = games[g];
	    ix++
 	  }
    g++;
  }
  if (isFirst) {
    form.home_team.options.length = 0;
    form.home_team.options[0] = new Option("-- No Games Scheduled --","");
  }
}

function getVisitingTeam(form) {
  var ix = form.home_team.selectedIndex;
  if (ix == 0) return;
  form.visit_team.value = vTeams[ix].split(":")[1];
  var fld = dGames[ix].split(":");
  form.date_ix.value = fld[0];
  form.game_id.value = fld[1];
  form.class_id.value = fld[2];
  form.home_id.value = team_names[fld[3]].split(":")[0];
  form.away_id.value = team_names[fld[4]].split(":")[0];
  localID[0] = team_names[fld[3]].split(":")[2];
  localID[1] = team_names[fld[4]].split(":")[2];
}

function getVisitTeamFieldsAndTimes(form) {
  getVisitingTeam(form);
  setFields(form);
}

function setFields(form) {
  form.resched_field.length = 0;
  form.resched_field.options[0] = new Option("-- Select --","");
  var o = 1;
  for (i = 0; i < field_names.length; i++){
    var flds = field_names[i].split(";");
    if (localID[0] == flds[0]) {
      form.resched_field.options[o] = new Option(flds[2],flds[2]);
      o++;
    } 
  }
  if (localID[0] == localID[1])
    return;
  for (i = 0; i < field_names.length; i++){
    var flds = field_names[i].split(";");
    if (localID[1] == flds[0]) {
      form.resched_field.options[o] = new Option(flds[2],flds[2]);
      o++;
    } 
  }
}

function setTimes(form) {
  if (form.resched_field.selectedIndex == 0)
    return false;
  var m = form.gamemonth.value
  if (m == "")
    return false;
  if (m == "May")
    m = 5;
  else if (m == "June")
    m = 6;
  else if (m == "July")
    m = 7;
  var d = form.gameday.value;
  if (d == "")
    return false;
  if (m == 6 && d == 31)
    return false;
  var y = form.gameyear.value;
  var dt = new Date(y,m-1,d);
  dateIX = (dt - base_date) / 86400000;
  var day = dateIX % 7;
  var fld = new Array("");
  for (i = 0; i < field_names.length; i++) {
    fld = field_names[i].split(";");
    if (localID[0] == fld[0] && form.resched_field.value == fld[2])
      break;
  }
  if (fld.length == 1)
    return false;
  var times = fld[3];
  if (times.indexOf("5:00") == -1)
    times += ",5:00";
  if (times.indexOf("5:30") == -1)
    times += ",5:30";
  if (day == 0) {
    times = "1:00,1:30,2:00,2:30,3:00,3:30,4:00,4:30,5:00,5:30,6:00,6:30,7:00,7:30,8:00";
  } else if (day == 6)
    times = "10:00,10:30,11:00,11:30,12:00,12:30,1:00,1:30,2:00,2:30,3:00,3:30,4:00,4:30,5:00,5:30,6:00,6:30,7:00,7:30,8:00";
  form.resched_time.length = 0;
  form.resched_time.options[0] = new Option("-- Select --","");
  fld = times.split(",");
  var o = 1;
  for (i = 0; i < fld.length; i++) {
    form.resched_time.options[o] = new Option(fld[i], fld[i]);
    o++;    
  }  
//  form.resched_time.options[o] = new Option("Call","Call");
  return true;
}

function validateFields(form) {
  var valid = tfv.exec();
  if (valid) { 
  	 var hScore = form.home_score.value;
  	 var vScore = form.visit_score.value;
  	 if (hScore == 100 && vScore == 100) {
  	   valid = verifyHome(form);
  	   if (!valid) form.Submit.disabled = false;
     } else {
//       valid = verifyHomeOrAway(form); 
//  	   if (!valid) form.Submit.disabled = false;
       if (valid && hScore == vScore)
         alert("Tie scores are accepted as a suspended game\nand shown as a tie in the standings\nThe game must be completed to be official");
     }
  }
  return valid;
}

function verifyName(form, id) {
  for (i = 0; i < team_names.length; i++) {
    var fld = team_names[i].split(":");
    if (id == fld[0]) {
      var name = form.report_name.value.toUpperCase();
      return (name.indexOf(fld[3].toUpperCase()) != -1);
    }
  }
  return false;
}

function verifyHomeOrAway(form) {
  if (form.report_name.value == "")
    return;
  var found = verifyName(form, form.home_id.value);
  if (!found)
    found = verifyName(form, form.away_id.value);
  if (!found) {
    alert("The name entered must be the manager of the home or visiting team.\nPlease try again.");
  }
  return found;
}

function verifyHome(form) {
  var found = verifyName(form, form.home_id.value);
  if (!found) {
    alert("The name entered must be the manager of the home team.\nPlease try again.");
  }
  return found;
}

function resetFields(form) {
  form.date_ix.value = "";
  form.game_id.value = "";
  form.class_id.value = "";
  form.home_id.value = "";
  form.away_id.value = "";
  form.home_team.options.length = 0;
  form.home_team.options[0] = new Option("-- No Games Scheduled --","");
  form.resched_field.options.length = 0;
  form.resched_field.options[0] = new Option("-- Select --","");
  form.resched_time.options.length = 0;
  form.resched_time.options[0] = new Option("-- Select --","");
  form.visit_team.value = "";
  form.Submit.disabled = false;
}