var types=new Array("Hero Soldier","Hero Sorcerer","Evil Soldier","Evil Sorcerer","Neutral Soldier","Neutral Sorcerer","Weapon","Protector","Power","Soul","Survival","Magic");

var rewards=new Array("1000 HP","3000 HP","4000 HP","5000 HP","10000 HP","200 ST","400 ST","600 ST","800 ST","1000 ST","200 DF","400 DF","600 DF","800 DF","1000 DF","P-Code 05","P-Code 10","P-Code 15","P-Code 20","P-Code 25","P-Code 35","P-Code 36","P-Code 37","P-Code 38","P-Code 39","P-Code 40","P-Code 41","P-Code 42","P-Code 43","P-Code 44","P-Code 45","P-Code 46","P-Code 47","P-Code 48","P-Code 49");
var reduc=new Array("ST-30%","ST-50%","DF-30%","DF-50%","DF-80%","HP-30%","HP-50%");
var formBits=new Array(1,17,21,25,14,18,22,26);

var power=0;
var mode=0;
var choice=0;
var chMax=2;
var choices;
var machine=0;

var mhp,fhp,fst,fdf,fsp,fmp,fso,fty,fpl;
mhp=new Array(8);
fhp=new Array(8);
fst=new Array(8);
fdf=new Array(8);
fsp=new Array(8);
fmp=new Array(8);
fso=new Array(8);
fty=new Array(8);
fpl=new Array(4);

function onOff(){
var i;
power=1-power;
if(power==1){
for(i=0;i<8;i++){
mhp[i]=0;
fhp[i]=0;
fst[i]=0;
fdf[i]=0;
fsp[i]=0;
fmp[i]=0;
fso[i]=0;
fty[i]=0;
}
prompt("Welcome to Bakodo. Please click on the SELECT button to choose a mode, and the SET button to confirm your choice.");
cMode(0);
choice=2;
chMax=2;
selBut();
}else{
clear();
}
}

function imprt(){
document.forms[0].elements[31].value=cardCodes[document.forms[1].elements[0].selectedIndex];
}

function selBut(){
choice++;
if(choice>chMax){choice=0;}
if(power==1){
switch(mode){
case 0:
choices=new Array("Bakodo","BCB","BCBII");
chMax=2;
menu();
break;
case 1:
choices=new Array("1 On 1 Exhibition","2 On 2 Exhibition","Career Mode");
menu();
chMax=2;
machine=2;
break;
case 2:
choices=new Array("COM (P1 Vs CPU)","B1 (P1 Vs CPU Cards)","B2 (P1 Vs P2)");
menu();
chMax=2;
machine=1;
break;
case 3:
choices=new Array("C0 (P1 Vs P2)","C1 (P1 Vs CPU)","C2 (P1 Vs CPU Cards)");
menu();
chMax=2;
machine=2;
break;
case 4:

break;
case 5:

break;
case 6:

break;
case 7:

break;
case 8:

break;
case 9:

break;
case 10:

break;
case 11:

break;
case 12:

break;
case 1006:
screenBCBII(4,0,4,0);
cMode(1008);
break;
case 1007:
screenBCBII(5,0,4,0);
cMode(1009);
break;
case 1008:
screenBCBII(0,0,4,0);
cMode(1006);
break;
case 1009:
screenBCBII(0,0,4,0);
cMode(1007);
break;
}
}
}

function setBut(){
var ipt,opt,optParts;
if(power==1){
switch(mode){
case 0:
switch(choice){
case 0:
cMode(1);
choice=2;
selBut();
break;
case 1:
cMode(2);
choice=2;
selBut();
break;
case 2:
cMode(3);
choice=2;
selBut();
break;
}
break;
case 1:
switch(choice){
case 0:
cMode(4);

break;
case 1:
cMode(5);

break;
case 2:
cMode(6);

break;
}
break;
case 2:
switch(choice){
case 0:
cMode(7);

break;
case 1:
cMode(8);

break;
case 2:
cMode(9);

break;
}
break;
case 3:
switch(choice){
case 0:
fpl[0]=0;
fpl[1]=4;
cMode(10);
prompt("Please enter any Soldier or Sorcerer for P1");
break;
case 1:
cMode(11);

break;
case 2:
cMode(12);

break;
}
break;
case 4:

break;
case 5:

break;
case 6:

break;
case 7:

break;
case 8:

break;
case 9:

break;
case 10:

break;
case 11:

break;
case 12:

break;
case 1002:
ipt="000000000000";
opt=getStats(ipt);
optParts=numParts(opt);
loadToMem(1,ipt,opt,optParts);
cMode(1003);
cpt=document.forms[0].elements[14].value;
cptParts=numParts(cpt);
if(cptParts[4]%2==0){
prompt("Please enter a Weapon, Protector, Power or Survival for P2");
}else{
prompt("Please enter a Power, Survival or Magic for P2");
}
break;
case 1003:
ipt="000000000000";
opt=getStats(ipt);
optParts=numParts(opt);
loadToMem(5,ipt,opt,optParts);
cMode(1004);
prompt("Applying any stat effects...");
window.setTimeout("reduce(0,4);",3000);
break;
}
}
}

function menu(){
document.forms[0].elements[6].value=choices[choice];
}

function lPower(){
var r,hp;
switch(mode){
case 1006:
if(fsp[0]>0){
cMode(1010);
r=1+Math.floor(Math.random()*3);
hp=recover(r,fpl[0]);
prompt("Player 1 recovered "+hp+"00 Energy Points");
}else{
prompt("Player 1 has no Survival Points. Please press L-BATTLE.");
}
if(fsp[0]<0){
prompt("Player 2's F9 spell has turned your SP against you! Player 2 Wins!");
}
break;
}
}

function lBattle(){
switch(mode){
case 1006:
cMode(1012);
fight(0,0,4);
break;
}
}

function lTag(){}

function lSoul(){}

function rPower(){
var r,hp;
switch(mode){
case 1007:
if(fsp[0]>0){
cMode(1011);
r=1+Math.floor(Math.random()*3);
hp=recover(r,fpl[1]);
prompt("Player 2 recovered "+hp+"00 Energy Points");
}else{
prompt("Player 2 has no Survival Points. Please press R-BATTLE.");
}
if(fsp[4]<0){
prompt("Player 1's F9 spell has turned your SP against you! Player 1 Wins!");
}
break;
}
}

function rBattle(){
switch(mode){
case 1007:
cMode(1013);
fight(1,0,4);
break;
}
}

function rTag(){}

function rSoul(){}

function numParts(ipt){
var parts=ipt.split("@");
for(i=0;i<parts.length;i++){
parts[i]=parseInt(parts[i],10);
}
return(parts);
}

function swipe(){
if(mode>3){
var ipt=document.forms[0].elements[31].value;
var i,opt,optParts,cpt,cptParts;
opt=getStats(ipt);
optParts=numParts(opt);
switch(mode){
case 4:

break;
case 5:

break;
case 6:

break;
case 7:

break;
case 8:

break;
case 9:

break;
case 10:
if(optParts[3]<6){
loadToMem(0,ipt,opt,optParts);
screenBCBII(0,0,4,0);
cMode(1001);
prompt("Please enter any Soldier or Sorcerer for P2");
}else{
prompt("Wrong type ("+types[optParts[3]]+"). Please enter any Soldier or Sorcerer for P1");
}
break;
case 11:

break;
case 12:

break;
case 1001:
if(optParts[3]<6){
loadToMem(4,ipt,opt,optParts);
screenBCBII(0,0,4,0);
cMode(1002);
cpt=document.forms[0].elements[1].value;
cptParts=numParts(cpt);
if(cptParts[4]%2==0){
prompt("Please enter a Weapon, Protector, Power or Survival for P1");
}else{
prompt("Please enter a Power, Survival or Magic for P1");
}
}else{
prompt("Wrong type ("+types[optParts[3]]+"). Please enter any Soldier or Sorcerer for P2");
}
break;
case 1002:
cpt=document.forms[0].elements[1].value;
cptParts=numParts(cpt);
if(1==compat(cptParts[0],ipt)){
loadToMem(1,ipt,opt,optParts);
if(optParts[3]<10){
screenBCBII(0,1,4,5);
}else{
screenBCBII(1,1,4,3);
}
powUp(0);
cMode(1003);
cpt=document.forms[0].elements[14].value;
cptParts=numParts(cpt);
if(cptParts[4]%2==0){
prompt("Please enter a Weapon, Protector, Power or Survival for P2");
}else{
prompt("Please enter a Power, Survival or Magic for P2");
}
}else{
if(cptParts[4]%2==0){
prompt("Please enter a different Weapon, Protector, Power or Survival for P1");
}else{
prompt("Please enter a different Power, Survival or Magic for P1");
}
}
break;
case 1003:
cpt=document.forms[0].elements[14].value;
cptParts=numParts(cpt);
if(1==compat(cptParts[0],ipt)){
loadToMem(5,ipt,opt,optParts);
if(optParts[3]<10){
screenBCBII(0,0,5,6);
}else{
screenBCBII(1,0,5,4);
}
powUp(4);
cMode(1004);
prompt("Applying any stat effects...");
window.setTimeout("reduce(0,4);",3000);
}else{
if(cptParts[4]%2==0){
prompt("Please enter a different Weapon, Protector, Power or Survival for P2");
}else{
prompt("Please enter a different Power, Survival or Magic for P2");
}
}
break;
}
}
document.forms[0].elements[31].value="";
}

function powUp(p){
var cod0,cod1,c0Parts,c1Parts,typ1;
cod0=document.forms[0].elements[formBits[p]].value;
cod1=document.forms[0].elements[formBits[p+1]].value;
c0Parts=numParts(cod0);
c1Parts=numParts(cod1);
typ1=c1Parts[4];
switch(typ1){
case 9:
break;
case 10:
fsp[p]+=fsp[p+1];
break;
case 11:
fmp[p]+=fmp[p+1];
break;
default:
fhp[p]+=fhp[p+1];
mhp[p]=fhp[p];
fst[p]+=fst[p+1];
fdf[p]+=fdf[p+1];
break;
}
}

function getStats(cod){
var chkDig,frst,j,hp0,hp1,st0,st1,df0,df1,opt;
if(cod.length==12){
switch(machine){
case 1:
opt=m3(cod);
break;
case 2:
cod=m0(cod);
opt=m1(cod);
break;
}
}else{
if(cod.length==8){
chkDig=0;
for(j=0;j<7;j++){
weight=1;
if(j%2==0){weight=3;}
chkDig+=parseInt(cod.charAt(j),10)*weight;
}
frst=(10-(chkDig%10))%10;
cod=cod.substr(0,7)+frst;
document.forms[0].elements[31].value=cod;
switch(machine){
case 1:
opt=m4(cod);
break;
case 2:
opt=m2(cod);
break;
}
}else{
window.alert("Invalid Barcode length - must be 8 or 12 digits long!");
opt="ERROR";
}
}
return(opt);
}

function loadToMem(mem,bcd,dat,parts){
document.forms[0].elements[formBits[mem]].value=bcd+"@"+dat;
fty[mem]=parts[3];
fhp[mem]=parts[0];
mhp[mem]=fhp[mem];
fst[mem]=parts[1];
fdf[mem]=parts[2];
if(fty[mem]<6){fsp[mem]=5;}
if(fty[mem]==10){fsp[mem]=parts[1];}
if(fty[mem]%2==1 && fty[mem]<6){fmp[mem]=10;}
if(fty[mem]==11){fmp[mem]=parts[2];}
}

function screenBCB(md){}

function screenBCBII(md,p1,p2,t){
switch(md){
case 0:
document.forms[0].elements[2].value=types[fty[p1]];
document.forms[0].elements[3].value=fhp[p1]+"00";
document.forms[0].elements[4].value=fst[p1]+"00";
document.forms[0].elements[5].value=fdf[p1]+"00";
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="HP";
document.forms[0].elements[8].value="ST";
document.forms[0].elements[9].value="DF";
document.forms[0].elements[10].value=types[fty[p2]];
document.forms[0].elements[11].value=fhp[p2]+"00";
document.forms[0].elements[12].value=fst[p2]+"00";
document.forms[0].elements[13].value=fdf[p2]+"00";
break;
case 1:
document.forms[0].elements[2].value=types[fty[p1]];
document.forms[0].elements[3].value=fhp[p1]+"00";
document.forms[0].elements[4].value=fmp[p1];
document.forms[0].elements[5].value=fsp[p1];
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="HP";
document.forms[0].elements[8].value="MP";
document.forms[0].elements[9].value="SP";
document.forms[0].elements[10].value=types[fty[p2]];
document.forms[0].elements[11].value=fhp[p2]+"00";
document.forms[0].elements[12].value=fmp[p2];
document.forms[0].elements[13].value=fsp[p2];
break;
case 2:
document.forms[0].elements[2].value=types[fty[p1]];
document.forms[0].elements[3].value=t+"00";
document.forms[0].elements[4].value="";
document.forms[0].elements[5].value="";
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="DA";
document.forms[0].elements[8].value="ST";
document.forms[0].elements[9].value="DF";
document.forms[0].elements[10].value=types[fty[p2]];
document.forms[0].elements[11].value=fhp[p2]+"00";
document.forms[0].elements[12].value=fst[p2]+"00";
document.forms[0].elements[13].value=fdf[p2]+"00";
t=1;
break;
case 3:
document.forms[0].elements[2].value=types[fty[p1]];
document.forms[0].elements[3].value=fhp[p1]+"00";
document.forms[0].elements[4].value=fst[p1]+"00";
document.forms[0].elements[5].value=fdf[p1]+"00";
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="HP";
document.forms[0].elements[8].value="ST";
document.forms[0].elements[9].value="DF";
document.forms[0].elements[10].value=types[fty[p2]];
document.forms[0].elements[11].value=t+"00";
document.forms[0].elements[12].value="";
document.forms[0].elements[13].value="";
t=1;
break;
case 4:
document.forms[0].elements[2].value=types[fty[p1]];
document.forms[0].elements[3].value="";
document.forms[0].elements[4].value=fmp[p1];
document.forms[0].elements[5].value=fsp[p1];
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="";
document.forms[0].elements[8].value="MP";
document.forms[0].elements[9].value="SP";
document.forms[0].elements[10].value=types[fty[p2]];
document.forms[0].elements[11].value="";
document.forms[0].elements[12].value="";
document.forms[0].elements[13].value="";
break;
case 5:
document.forms[0].elements[2].value=types[fty[p1]];
document.forms[0].elements[3].value="";
document.forms[0].elements[4].value="";
document.forms[0].elements[5].value="";
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="";
document.forms[0].elements[8].value="MP";
document.forms[0].elements[9].value="SP";
document.forms[0].elements[10].value=types[fty[p2]];
document.forms[0].elements[11].value="";
document.forms[0].elements[12].value=fmp[p2];
document.forms[0].elements[13].value=fsp[p2];
break;
case 6:
document.forms[0].elements[2].value=types[fty[p1]];
document.forms[0].elements[3].value=fhp[p1]+"00";
document.forms[0].elements[4].value=fst[p1]+"00";
document.forms[0].elements[5].value=fdf[p1]+"00";
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="HP";
document.forms[0].elements[8].value="ST";
document.forms[0].elements[9].value="DF";
document.forms[0].elements[10].value="Recover";
document.forms[0].elements[11].value=t+"00";
document.forms[0].elements[12].value="";
document.forms[0].elements[13].value="";
t=1;
break;
case 7:
document.forms[0].elements[2].value="Recover";
document.forms[0].elements[3].value=t+"00";
document.forms[0].elements[4].value="";
document.forms[0].elements[5].value="";
document.forms[0].elements[6].value="TYPE";
document.forms[0].elements[7].value="HP";
document.forms[0].elements[8].value="ST";
document.forms[0].elements[9].value="DF";
document.forms[0].elements[10].value=types[fty[p2]];
document.forms[0].elements[11].value=fhp[p2]+"00";
document.forms[0].elements[12].value=fst[p2]+"00";
document.forms[0].elements[13].value=fdf[p2]+"00";
t=1;
break;
}
if(t==1){window.setTimeout("screenBCBII(0,"+p1+","+p2+",0)",1000)}
if(t==2){window.setTimeout("screenBCBII(0,"+fpl[0]+","+fpl[1]+",0)",1000)}
if(t==3){window.setTimeout("screenBCBII(1,"+(p1-1)+","+p2+",1)",1000)}
if(t==4){window.setTimeout("screenBCBII(1,"+p1+","+(p2-1)+",2)",1000)}
if(t==5){window.setTimeout("screenBCBII(0,"+(p1-1)+","+p2+",1)",1000)}
if(t==6){window.setTimeout("screenBCBII(0,"+p1+","+(p2-1)+",2)",1000)}
}

function screenBakodo(md){}

function m0(cod){
var newCode="";
switch(cod){
case "905040352507":
newCode="521501106508";
break;
case "905040352521":
newCode="521501187507";
break;
case "120401154185":
newCode="120401154505";
break;
case "120201044181":
newCode="120201044501";
break;
case "120102308184":
newCode="120102308504";
break;
default:
newCode=cod;
}
return(newCode);
}

function m1(cod){
var i,prty,hp,st,df,type,duration,effect,reslt;
var bcd=new Array(12);
var mthd=2;
duration=0;
hp=0;
st=0;
df=0;
chkDig=0;
for(i=0;i<12;i++){
bcd[i]=parseInt(cod.charAt(i),10);
weight=1;
if(i%2==0){weight=3;}
chkDig+=bcd[i]*weight;
}
prty=(10-(chkDig%10))%10;
if(prty<2 || (bcd[1]==9 && bcd[8]==5)){
if(bcd[6]<5){
mthd=1;
if(prty==0 && bcd[0]<6 && bcd[2]<2 && bcd[4]<2 && bcd[9]==5 && bcd[10]==0){
if(bcd[7]>6){
type=1;
}else{
type=0;
}
hp=bcd[0]*10+bcd[1];
st=bcd[2]*10+bcd[3];
df=bcd[4]*10+bcd[5];
}else{
if(bcd[7]>6){
type=3;
}else{
type=2;
}
hp=prty*100+bcd[0]*10+bcd[1];
st=bcd[2]*10+bcd[3];
if(prty>1 && (bcd[6]==0 || bcd[6]==2)){st+=100;}
df=bcd[4]*10+bcd[5];
if(prty>1 && bcd[6]>0 && bcd[6]<3){df+=100;}
}
}
if(bcd[6]>4 && ((bcd[2]<2 && bcd[4]<2) || prty>1)){
if(bcd[6]<7){
type=6;
st=bcd[2]*10+bcd[3];
mthd=1;
if(bcd[6]==5){
duration=0;
}else{
duration=1;
}
}
if(bcd[6]>6 && bcd[6]<9){
type=7;
df=bcd[4]*10+bcd[5];
mthd=1;
if(bcd[6]==7){
duration=0;
}else{
duration=1;
}
}
if(bcd[6]==9){
if(bcd[7]<5){
type=8;
hp=bcd[0]*10+bcd[1];
mthd=1;
}else{
if(bcd[7]<7){
type=9;
mthd=1;
}else{
if(bcd[7]<8){
type=10;
st=bcd[2]*10+bcd[3];
mthd=1;
}else{
type=11;
df=bcd[4]*10+bcd[5];
mthd=1;
}
}
}
}
}
}
if(mthd==2){
return(m2(cod.substr(4,8)));
}else{
effect=0;
if(bcd[9]==2 && bcd[10]>2 && (bcd[6]<9 || bcd[7]<5 || bcd[7]>6)){
effect=bcd[10];
}
reslt=hp+"@"+st+"@"+df+"@"+type+"@"+duration+"@"+effect;
return(reslt);
}
}

function m2(cod){
var i,prty,hp0,st0,df0,hp1,st1,df1,type,duration,effect,reslt;
hp0=0;
st0=0;
df0=0;
hp1=0;
st1=0;
df1=0;
duration=1;
bcd=new Array(8);
for(i=0;i<8;i++){
bcd[i]=parseInt(cod.charAt(i),10);
}
if(bcd[7]<5){
if(bcd[0]<7){
type=4;
}else{
type=5;
}
hp0=Math.floor(bcd[6]*0.5)*10+bcd[5];
st0=(bcd[5]+8)%10;
if(st0<3){st0+=10;}
df0=bcd[4];
if(df0<3){df0+=10;}
hp1=hp0*10+bcd[4];
st1=(st0-1)*10+((5+bcd[4])%10);
df1=(df0-3)*10+((bcd[3]+7)%10);
}else{
if(bcd[7]<7){
type=6;
if(bcd[7]==5){
duration=0;
}else{
duration=1;
}
st0=((bcd[4]+5)%10);
st1=st0+10;
if((bcd[5]+5)%10>3){st1+=10;}
if((bcd[5]+5)%10>7){st1+=10;}
}else{
if(bcd[7]<9){
type=7;
if(bcd[7]==7){
duration=0;
}else{
duration=1;
}
df0=((bcd[3]+7)%10);
df1=df0;
if((bcd[4]+7)%10>3){df1+=10;}
if((bcd[4]+7)%10>7){df1+=10;}
}else{
type=8;
hp0=bcd[5];
if(bcd[6]>3){hp0+=10;}
if(bcd[6]>7){hp0+=10;}
hp1=bcd[4]+bcd[5]*10;
if(bcd[6]>7){hp1+=100;}
}
}
}
effect=0;
if(bcd[3]>7 && bcd[5]>2){
effect=bcd[5];
}
reslt=hp0+"@"+st0+"@"+df0+"@"+type+"@"+duration+"@"+effect+"@"+hp1+"@"+st1+"@"+df1;
return(reslt);
}

function m3(cod){
var i,prty,hp,st,df,type,duration,reslt;
var bcd=new Array(12);
var mthd=4;
duration=0;
hp=0;
st=0;
df=0;
chkDig=0;
for(i=0;i<12;i++){
bcd[i]=parseInt(cod.charAt(i),10);
weight=1;
if(i%2==0){weight=3;}
chkDig+=bcd[i]*weight;
}
prty=(10-(chkDig%10))%10;
if(prty<2){
if(bcd[6]<5){
mthd=1;
if(bcd[9]==1 && bcd[10]==8){
type=0;
}else{
type=2;
}
hp=prty*100+bcd[0]*10+bcd[1];
st=bcd[2]*10+bcd[3];
df=bcd[4]*10+bcd[5];
}
if(bcd[6]>4 && ((bcd[2]<2 && bcd[4]<2) || prty>1)){
if(bcd[6]<7){
type=6;
st=bcd[2]*10+bcd[3];
mthd=1;
if(bcd[6]==5){
duration=0;
}else{
duration=1;
}
}
if(bcd[6]>6 && bcd[6]<9){
type=7;
df=bcd[4]*10+bcd[5];
mthd=1;
if(bcd[6]==7){
duration=0;
}else{
duration=1;
}
}
if(bcd[6]==9){
type=8;
hp=bcd[0]*10+bcd[1];
mthd=1;
}
}
}
if(mthd==4){
return(m4(cod.substr(4,8)));
}else{
reslt=hp+"@"+st+"@"+df+"@"+type+"@"+duration;
return(reslt);
}
}

function m4(cod){
var i,prty,hp,st,df,type,reslt;
type=2;
hp=0;
st=0;
df=0;
duration=1;
bcd=new Array(8);
for(i=0;i<8;i++){
bcd[i]=parseInt(cod.charAt(i),10);
}
hp=bcd[3]*10+bcd[4];
if(bcd[3]==0){hp+=100;}
st=10+bcd[5];
df=Math.max(1,bcd[6]);
reslt=hp+"@"+st+"@"+df+"@"+type;
return(reslt);
}

function compat(ccod,pcod){
var i,clen,plen,yn;
ccod=""+ccod;
pcod=""+pcod;
clen=ccod.length;
plen=pcod.length;
yn=0;
var cbcd=new Array(clen);
var pbcd=new Array(plen);
for(i=0;i<clen;i++){
cbcd[i]=parseInt(ccod.charAt(i),10);
}
for(i=0;i<plen;i++){
pbcd[i]=parseInt(pcod.charAt(i),10);
}
if(clen==8 || plen==8){
yn=1;
}else{
switch(machine){
case 1:
if(pbcd[6]==9 && (pbcd[7]==0 || cbcd[7]==9 || pbcd[7]==cbcd[7]+1)){yn=1;}
if(pbcd[6]!=9 && (pbcd[7]==0 || pbcd[7]==cbcd[7])){yn=1;}
break;
case 2:
if(pbcd[6]==9 && (pbcd[7]==0 || (pbcd[7]>4 && pbcd[7]<8) || cbcd[7]==9 || pbcd[7]==cbcd[7]+1)){yn=1;}
if(pbcd[6]<9 && pbcd[6]>4 && cbcd[6]<7 && (pbcd[7]==0 || pbcd[7]==cbcd[7] || (cbcd[7]<4 && pbcd[7]==7) || (cbcd[7]>2 && pbcd[7]==8) || (cbcd[7]==0 && pbcd[7]==9))){yn=1;}
if(pbcd[6]<5 && ((pbcd[7]==3 || pbcd[7]==8) && cbcd[6]==pbcd[6] && cbcd[7]==pbcd[7] && ccod!=pcod) || (mode>999 && mode<1100)){yn=1;}
break;
}
}
return(yn);
}

function clear(){
var i;
for(i=1;i<15;i++){
document.forms[0].elements[i].value="";
}
document.forms[0].elements[17].value="";
document.forms[0].elements[18].value="";
document.forms[0].elements[21].value="";
document.forms[0].elements[22].value="";
document.forms[0].elements[25].value="";
document.forms[0].elements[26].value="";
prompt("");
}

function reduce(p1,p2){
var i,opt,optParts,efct,target,fnd;
var efcts=new Array(4);
opt=document.forms[0].elements[formBits[p1]].value;
optParts=numParts(opt);
efcts[0]=optParts[6];
opt=document.forms[0].elements[formBits[p1+1]].value;
optParts=numParts(opt);
efcts[1]=optParts[6];
opt=document.forms[0].elements[formBits[p2]].value;
optParts=numParts(opt);
efcts[2]=optParts[6];
opt=document.forms[0].elements[formBits[p2+1]].value;
optParts=numParts(opt);
efcts[3]=optParts[6];
for(i=3;i>-1;i--){
if(efcts[i]>0){
efct=efcts[i]-3;
if(i>1){
target=p1;
}else{
target=p2;
}
opt=document.forms[0].elements[formBits[target]].value;
optParts=numParts(opt);
switch(efct){
case 0:
fst[target]=Math.floor(optParts[2]*0.7);
break;
case 1:
fst[target]=Math.floor(optParts[2]*0.5);
break;
case 2:
fdf[target]=Math.floor(optParts[3]*0.7);
break;
case 3:
fdf[target]=Math.floor(optParts[3]*0.5);
break;
case 4:
fdf[target]=Math.floor(optParts[3]*0.2);
break;
case 5:
fhp[target]=Math.floor(optParts[1]*0.7);
break;
case 6:
fhp[target]=Math.floor(optParts[1]*0.5);
break;
}
mhp[target]=fhp[target];
powUp(target);
}
}
screenBCBII(0,0,4,0);
mode++;
prompt("Starting Battle...");
startBattle(p1,p2);
}

function startBattle(p1,p2){
var ranPlayer=Math.floor(Math.random()*2);
mode++;
if(ranPlayer==0){
prompt("P1: Press L-POWER to recover, L-BATTLE to fight, or SELECT to change view.");
}else{
prompt("P2: Press R-POWER to recover, R-BATTLE to fight, or SELECT to change view.");
mode++;
}
}

function fight(ag,p1,p2){
var atk,hit,damage;
hit=Math.floor(Math.random()*4);
damage=0;
if(hit>0){
if(ag==0){
atk=fst[p1]-fdf[p2];
}else{
atk=fst[p2]-fdf[p1];
}
atk=Math.max(1,atk);
damage=1+Math.floor(Math.random()*atk*4);
if(hit==3){
damage=damage*2;
}
}
switch(mode){
case 1012:
screenBCBII(2,0,4,damage);
fhp[p2]-=damage;
fhp[p2]=Math.max(0,fhp[p2]);
prompt("P2: Press L-POWER to recover, L-BATTLE to fight, or SELECT to change view.");
cMode(1007);
break;
case 1013:
screenBCBII(3,0,4,damage);
fhp[p1]-=damage;
fhp[p1]=Math.max(0,fhp[p1]);
prompt("P1: Press L-POWER to recover, L-BATTLE to fight, or SELECT to change view.");
cMode(1006);
break;
}
}

function recover(r,p){
r=Math.min(r,fsp[p]);
fsp[p]-=r;
switch(r){
case 1:
hp=1+Math.floor(Math.random()*mhp[p]*0.3);
break;
case 2:
hp=Math.floor(Math.random()*mhp[p]*0.3+mhp[p]*0.3);
break;
case 3:
hp=Math.floor(Math.random()*mhp[p]*0.4+mhp[p]*0.6);
break;
}
hp=Math.min(hp,mhp[p]-fhp[p]);
fhp[p]+=hp;
switch(mode){
case 1010:
screenBCBII(6,0,4,hp);
cMode(1007);
break;
case 1011:
screenBCBII(7,0,4,hp);
cMode(1006);
break;
}
return(hp);
}

function cMode(x){
mode=x;
document.forms[0].elements[34].value=mode;
}

function prompt(s){
document.forms[0].elements[33].value=s;
}