curEditPage= "";
curTeam= 0;
curSwitchBatterT= -1;
curSwitchBatterP= -1;
curSwitchPitcherT= -1;
curSwitchPitcherP= -1;

function populate() {
  switch (curEditPage) {
    case "team" :
      top.frames[2].s_color="bgr"; top.frames[2].changecolor("0C");
      top.frames[2].s_color="hel"; top.frames[2].changecolor(palPlayerData[curTeam][0]);
      top.frames[2].s_color="fle"; top.frames[2].changecolor(palPlayerData[curTeam][1]);
      top.frames[2].s_color="uni"; top.frames[2].changecolor(palPlayerData[curTeam][2]);
      top.frames[2].populateIcon();
      top.frames[2].document.forms[2].elements[0].value=attractTeamStrings[curTeam];
      top.frames[2].document.forms[2].elements[1].checked= enableLongTeamNames;
      top.frames[2].document.forms[2].elements[2].value=eogTeamStrings[curTeam];
      break;
    case "batter" :
      var x,y,t,e,fe;
      t= curTeam;
      fe= eval("top.frames[2].document.forms[0]");
      for (x=0; x<4; x++) {
        for (y=0; y<3; y++) {
          fe.elements[(x*8)+109+y].disabled= true;
        }
      }
      for (x=0; x<16; x++) {
        if (x<12) {
          e= (x*9);
        } else {
          e= 109 + ((x-12)*8);
        }
        fe.elements[e].value= batterData[t][x][0];
        if (batterData[t][x][1] == 0) {
          fe.elements[e+1].checked= true;
        } else {
          fe.elements[e+2].checked= true;
        }
        e+=3;
        for (y=0; y<5; y++) {
          if ((enablePPB == false) && (x>11)) {
            fe.elements[e].value= pitcherBattingData[y];
          } else {
            fe.elements[e].value= batterData[t][x][y+2];
          }
          e++;
        }
      }
      fe.elements[108].checked = enableLongBA;
      fe.elements[146].checked = enablePPB;
      for (x=0; x<5; x++) {
        fe.elements[x+141].value= pitcherBattingData[x];
      }
      if (curSwitchBatterT != -1) {
        x= eval("top.frames[2].document.getElementById('batter" + curSwitchBatterP + "')");
        if (curSwitchBatterT == curTeam) {
          x.bgColor= "#999900";
        } else {
          if ((curSwitchBatterP%2) == 0) {
            x.bgColor= "#000000";
          } else {
            x.bgColor= "#666666";
          }
        }
      }          
      break;
    case "pitcher" :
      var x,y,t,e,fe;
      t= curTeam;
      fe= eval("top.frames[2].document.forms[0]");
      for (x=0; x<4; x++) {
        e= (x*15);
        fe.elements[e].value= pitcherData[t][x][0];
        if (pitcherData[t][x][1] == 0) {
          fe.elements[e+1].checked= true;
        } else {
          fe.elements[e+2].checked= true;
        }
        e+=3;
        if (pitcherData[t][x][2] == 0) {
          fe.elements[e].checked= false;
        } else {
          fe.elements[e].checked= true;
        }
        e++;
        for (y=0; y<10; y++) {
          fe.elements[e].value= pitcherData[t][x][y+3];
          e++;
        }
      }
      fe.elements[60].checked= enableLongERA;
      if (curSwitchPitcherT != -1) {
        x= eval("top.frames[2].document.getElementById('pitcher" + curSwitchPitcherP + "')");
        if (curSwitchPitcherT == curTeam) {
          x.bgColor= "#999900";
        } else {
          if ((curSwitchPitcherP%2) == 0) {
            x.bgColor= "#000000";
          } else {
            x.bgColor= "#666666";
          }
        }
      }          
      break;
    case "hacks" :
      var x;
      var fe= eval("top.frames[2].document.forms[0]");
      fe.elements[0].checked= enable2PP;
      fe.elements[1].checked= enableSameTeams;
      fe.elements[2].checked= strikesDontCount;
      fe.elements[3].checked= ballsDontCount;
      fe.elements[4].value= runsCalledGame;
      fe.elements[5].value= pinchHitterBonus;
      break;
    case "colorstext" :
      top.frames[2].document.getElementById("grasscolorimg").src= "images/pal_" + palGrassColor + ".jpg";
      top.frames[2].document.getElementById("dirtcolorimg").src= "images/pal_" + palDirtColor + ".jpg";
      with (top.frames[2].document.forms[1]) {
        elements[0].value= strCopyright1;
        elements[1].value= strCopyright2;
        elements[2].value= strLicense1;
        elements[3].value= strLicense2;
        elements[4].value= strTeams;
      }
      break;
    case "save" :
      re= /rbirom=([A-Za-z0-9\ \_\']+).*/;
      romname= document.cookie.match(re);
      top.frames[2].document.forms[0].elements[0].value= romname[1];
      break;
    case "sound" :
      var fe= eval("top.frames[2].document.forms[0]");
      eloffset= 0;
      for (x=0; x<26; x++) {
        if (soundData[x] == true) {
          curEl= x*2;
        } else {
          curEl= (x*2)+1;
        }
        fe.elements[curEl].checked= true;
      }
      break;
    case "error":
      var fe= eval("top.frames[2].document.forms[0]");
      for (x=0; x<10; x++) {
        fe.elements[x].value= errors[x];
      }
      break;
    default :
      break;
  }
  return;
}

function rbiError(v,d,t) {
  var v,d,t;
  window.alert('\"' + v + '\" is NOT a valid ' + d + '.\n\n' + t);
  return;
}

// ### Teams routines

function verLTN(el) {
  var atrNameLen= new Array (10, 6, 7, 9, 7, 8, 8, 13, 8, 8);
  var n= el.checked;
  var x,y;
  if (n == true) {
    enableLongTeamNames= true;
    return;
  }
  var warnLTN= false;
  var l;
  for (x=0; x<10; x++) {
    l= attractTeamStrings[x].length;
    if(l != atrNameLen[x]) {
      warnLTN= true;
      if (l < atrNameLen[x]) {
        for (y=0; y<(atrNameLen[x]-l); y++) {
          attractTeamStrings[x] += " ";
        }
      } else {
        attractTeamStrings[x]= attractTeamStrings[x].slice(0,atrNameLen[x]);
      }
    }
  }
  if (warnLTN == true) {
    window.alert('The lengths of your team names have been changed. Please check that they are correct.');
  }
  top.frames[2].document.forms[2].elements[0].value= attractTeamStrings[curTeam];
  return;
}

// ### Batter routines

function verLBA (el) {
  var n= el.checked;
  var x,y,e;
  if (n == true) {
    enableLongBA= true;
    return;
  }
  e= "";
  for (x=0; x<10; x++) {
    for (y=0; y<16; y++) {
      if ((batterData[x][y][2] < .150) || (batterData[x][y][2] > .405)) {
        e+= batterData[x][y][0] + " (" + eogTeamStrings[x] + ") -- " + batterData[x][y][2] + "\n";
      }
      if ((y==11) && (enablePPB == false)) {
        y= 15;
      }
    }
  }
  if (enablePPB == false) {
    if ((pitcherBattingData[0] < .150) || (pitcherBattingData[0] > .405)) {
      e+= "Generic pitcher data -- " + pitcherBattingData[0] + "\n";
    }
  }
  if ((enablePPB == true) && ((pitcherBattingData[0] < .150) || (pitcherBattingData[0] > .405))) {
    pitcherBattingData[0]= .150;
    top.frames[2].document.forms[0].elements[141].value= ".150";
    for (x=0; x<4; x++) {
      top.frames[2].document.forms[0].elements[(x*8)+112].value= ".150";
    }
  }
  if (e == "") {
    enableLongBA= false;
    return;
  }
  window.alert('To disable long batting averages, you must first make sure all batting averages are between .150 and .405. The following must be changed:\n\n' + e);
  el.checked= true;
  return;
}

function switchPPB () {
  var fe= eval("top.frames[2].document.forms[0]");
  var x,y;
  enablePPB= fe.elements[146].checked;
  if (enablePPB == true) {
    for (x=0; x<4; x++) {
      for (y=0; y<5; y++) {
        fe.elements[((x*8)+112)+y].disabled= false;
      }
    }
    for (x=0; x<5; x++) {
      fe.elements[x+141].disabled= true;
    }
  } else {
    for (x=0; x<4; x++) {
      for (y=0; y<5; y++) {
        fe.elements[((x*8)+112)+y].disabled= true;
      }
    }
    for (x=0; x<5; x++) {
      fe.elements[x+141].disabled= false;
    }
  }
  return;
}

function parseBA(el) {
  var n= el.value;
  var x;
  if (isNaN(n) || (n<0) || (n>=1)) {
    rbiError(n, "batting average", "An example valid batting average is .150");
    el.value= pitcherBattingData[0];
    el.focus(); el.select();
    return;
  }
  if ((enableLongBA == false) && ((n<.150) || (n>.405))) {
    rbiError(n, "batting average", "By default, batting averages must be between .150 and .405 inclusively. You can use any batting average by enabling \"Long batting averages\" on this page.");
    el.value= pitcherBattingData[0];
    el.focus();
    return;
  }
  if (n.charAt(0) != ".") {
    n= "." + n;
  }
  if (n.length<4) {
    for (x=(4-n.length); x>0; x--) {
      n = n + "0";
    }
  }
  for (x=0; x<4; x++) {
    top.frames[2].document.forms[0].elements[(x*8)+112].value= n;
  }
  pitcherBattingData[0]= n; el.value= n;
  return;
}

function parseHR(el) {
  var n= el.value;
  if (isNaN(n) || (n<0) || (n>99)) {
    rbiError(n, "number of home runs", "Home runs must be between 0 and 99 inclusively.");
    el.value= pitcherBattingData[1];
    el.focus(); el.select();
    return;
  }
  n= Math.floor(n);
  for (x=0; x<4; x++) {
    top.frames[2].document.forms[0].elements[(x*8)+113].value= n;
  }
  pitcherBattingData[1]= n; el.value= n;
  return;
}

function parsePower(el,p) {
  var n= el.value;
  var p;
  if (isNaN(n) || (n<0) || (n>65536)) {
    rbiError(n, "power number", "Power must be between 0 and 65536 inclusively. Generally values between 600 and 1000 are used.");
    el.value= pitcherBattingData[3];
    el.focus(); el.select();
    return;
  }
  n= Math.floor(n);
  for (x=0; x<4; x++) {
    top.frames[2].document.forms[0].elements[(x*8)+115].value= n;
  }
  pitcherBattingData[3]= n; el.value= n;
  return;
}

function parseByte(el,f) {
  var n= el.value;
  var f;
  if (isNaN(n) || (n<0) || (n>255)) {
    if (f == 2) {
      rbiError(n, "contact rating", "Contact must be between 0 and 255 inclusively.");
    } else {
      rbiError(n, "speed rating", "Speed must be between 0 and 255 inclusively.");
    }
    el.value= pitcherBattingData[f];
    el.focus(); el.select();
    return;
  }
  n= Math.floor(n);
  for (x=0; x<4; x++) {
    top.frames[2].document.forms[0].elements[(x*8)+112+f].value= n;
  }
  pitcherBattingData[f]= n; el.value= n;
  return;
}

function batterSwitch(n) {
  var n,r,x,y,fe,temp;
  if (curSwitchBatterT == -1) {
    curSwitchBatterT= curTeam; curSwitchBatterP= n;
    r= eval("top.frames[2].document.getElementById('batter" + n + "')");
    r.bgColor="#999900";
    return;
  } else {
    for (x=0; x<7; x++) {
      temp= batterData[curTeam][n][x];
      batterData[curTeam][n][x]= batterData[curSwitchBatterT][curSwitchBatterP][x];
      batterData[curSwitchBatterT][curSwitchBatterP][x]= temp;
    }
    populate();
    r= eval("top.frames[2].document.getElementById('batter" + curSwitchBatterP + "')");
    if ((curSwitchBatterP%2) == 0) {
      r.bgColor= "#000000";
    } else {
      r.bgColor= "#666666";
    }
    curSwitchBatterT= -1; curSwitchBatterP= -1;
    return;
  }
}

// ### Pitcher routines

function verLERA () {
  var fe= eval("top.frames[2].document.forms[0]");
  var n= fe.elements[60].checked;
  var x,y,e;
  if (n == true) {
    enableLongERA= true;
    return;
  }
  e= "";
  for (x=0; x<10; x++) {
    for (y=0; y<4; y++) {
      if ((pitcherData[x][y][3] < 1.00) || (pitcherData[x][y][3] > 3.55)) {
        e+= pitcherData[x][y][0] + " (" + eogTeamStrings[x] + ") -- " + pitcherData[x][y][3] + "\n";
      }
    }
  }
  if (e == "") {
    enableLongERA= false;
    return;
  }
  window.alert('To disable long ERAs, you must first make sure all ERAs are between 1.00 and 3.55. The following must be changed:\n\n' + e);
  fe.elements[60].checked= true;
  return;
}

function pitcherSwitch(n) {
  var n,r,x,y,fe,temp;
  if (curSwitchPitcherT == -1) {
    curSwitchPitcherT= curTeam; curSwitchPitcherP= n;
    r= eval("top.frames[2].document.getElementById('pitcher" + n + "')");
    r.bgColor="#999900";
    return;
  } else {
    for (x=0; x<13; x++) {
      temp= pitcherData[curTeam][n][x];
      pitcherData[curTeam][n][x]= pitcherData[curSwitchPitcherT][curSwitchPitcherP][x];
      pitcherData[curSwitchPitcherT][curSwitchPitcherP][x]= temp;
    }
    n+= 12;
    for (x=0; x<7; x++) {
      temp= batterData[curTeam][n][x];
      batterData[curTeam][n][x]= batterData[curSwitchPitcherT][curSwitchPitcherP+12][x];
      batterData[curSwitchPitcherT][curSwitchPitcherP+12][x]= temp;
    }
    populate();
    if (curSwitchPitcherT == top.curTeam) {
      r= eval("top.frames[2].document.getElementById('pitcher" + curSwitchPitcherP + "')");
      if ((curSwitchPitcherP%2) == 0) {
        r.bgColor= "#000000";
      } else {
        r.bgColor= "#666666";
      }
    }
    curSwitchPitcherT= -1; curSwitchPitcherP= -1;
    return;
  }
}

// ### Hacks routines

function parseRunsCG (el) {
  var n= el.value;
  if (isNaN(n) || (n<0) || (n>255)) {
    rbiError(n, "number of runs for a called game", "This number must be between 1 and 255 inclusively, or set to 0 to disable called games.");
    el.value= runsCalledGame;
    el.focus(); el.select();
    return;
  }
  n= Math.floor(n);
  runsCalledGame= n; el.value= n;
  return;
}

function parsePHBonus (el) {
  var n= el.value;
  if (isNaN(n) || (n<0) || (n>255)) {
    rbiError(n, "pinch hitter bonus", "This number must be between 0 and 255 inclusively.");
    el.value= pinchHitterBonus;
    el.focus(); el.select();
    return;
  }
  n= Math.floor(n);
  pinchHitterBonus= n; el.value= n;
  return;
}

// ### Colors & text routines

function parseStr (el,f) {
  var n= el.value;
  var f,x,y;
  var s= new Array( strCopyright1, strCopyright2, strLicense1, strLicense2, strTeams );
  var d= new Array( "Copyright 1", "Copyright 2", "License 1", "License 2", "Teams" );
  var l= new Array( 17, 23, 11, 24, 25 );
  if (n.search(/[^A-Za-z0-9\ \.\-\@\&\"\'\!]/g) != -1) {
    rbiError(n, d[f] + " string", "These strings can only consist of alphanumeric characters, spaces, and the following characters: . - @ & \" ' !\n\nNote that \"@\" represents the copyright symbol.");
    el.value= s[f];
    el.focus(); el.select();
  }
  x=n.length;
  if (x != l[f]) {
    for (y=l[f]; y>x; y--) {
      n = n + " ";
    }
  }
  switch (f) {
    case 0 :
      strCopyright1= n;
      break;
    case 1 :
      strCopyright2= n;
      break;
    case 2 :
      strLicense1= n;
      break;
    case 3 :
      strLicense2= n;
      break;
    case 4 :
      strTeams= n;
      break;
    default :
      break;
  }
  el.value= n;
  return;
}

// ### Sound routines

function soundMuteAll() {
  elOffset= 0;
  for (x=0; x<26; x++) {
    curEl= ((x*2)+1)+elOffset;
    soundData[x]= 0;
    top.frames[2].document.forms[0].elements[curEl].checked= true;
  }
  return;
}

function soundMuteNone() {
  elOffset= 0;
  for (x=0; x<26; x++) {
    curEl= (x*2)+elOffset;
    soundData[x]= 1;
    top.frames[2].document.forms[0].elements[curEl].checked= true;
  }
  return;
}

function soundMuteSongs() {
  elOffset= 0;
  for (x=0; x<7; x++) {
    curEl= ((x*2)+1)+elOffset;
    soundData[x]= 0;
    top.frames[2].document.forms[0].elements[curEl].checked= true;
  }
  return;
}

// ### Errors routines

function parseError(el,f) {
  var n= el.value;
  var f;
  if (isNaN(n) || (n<0) || (n>255)) {
    rbiError(n, "error probability", "Error probability must be between 0 and 255 inclusively.");
    el.value= errors[f];
    el.focus(); el.select();
    return;
  }
  n= Math.floor(n);
  errors[f]= n; el.value= n;
  return;
}

