// JavaScript code for handling the CatapultGeek calculator.

function int0(str)
{
  I=parseInt(str);
  if(isNaN(I))
    return 0;
  else
    return I;
}

function encode(total,startcode,codebase)
{
  code = startcode;

  if( total == 1 )
    code = codebase;
  else if( total >= 2 && total <=3 )
    code = codebase + "+";
  else if( total >=4 && total <=8 )
    code = codebase + "++";
  else if( total >=8 && total <=15 )
    code = codebase + "+++";
  else if( total >=16 )
    code = codebase + "++++";

  return code;
}

var codeB = "B-";
var codeG = "G-";
var codeC = "C-";
var codeA = "";
var codeV = "V-";
var codeI = "";
var codeD = "";
var codeT = "";
var codeW = "";
var codeP = "";
var codeBk = "";
var codeVi = "";

function CatapultBuiltTotal()
{
  small=int0(document.CatapultGeek.numsmallbuilt.value);
  med=int0(document.CatapultGeek.nummediumbuilt.value);
  large=int0(document.CatapultGeek.numlargebuilt.value);
  huge=int0(document.CatapultGeek.numhugebuilt.value);

  total = small + med + large + huge*2;

  codeB=encode(total,"B-","B");

  document.CatapultGeek.totalcatapults.value = codeB;

  computeAll();
}

function CatapultGarageTotal()
{
  small=int0(document.CatapultGeek.numsmallgarage.value);
  med=int0(document.CatapultGeek.nummediumgarage.value);
  large=int0(document.CatapultGeek.numlargegarage.value);

  total = small + med + large;

  codeG=encode(total,"G-","G");

  document.CatapultGeek.totalgaragecatapults.value = codeG;

  computeAll();
}

function CatapultContest()
{
  attend=int0(document.CatapultGeek.contestTotal.value);
  unique=int0(document.CatapultGeek.contestUnique.value);
  trophies=int0(document.CatapultGeek.contestTrophies.value);
  bystander=int0(document.CatapultGeek.contestBystander.value);

  codeC = encode(attend,"C-","C");

  if( attend > 0 ) {
    noa = "A-";
    nov = "V-";
  } else {
    noa = "";
    nov = "";
  }

  codeA = encode(trophies, noa, "A");
  codeV = encode(bystander, nov,"V");

  document.CatapultGeek.contestCode.value = codeC + codeA + codeV;

  computeAll();
}

function CatapultDesign()
{
  invent=int0(document.CatapultGeek.invented.value);
  designed=int0(document.CatapultGeek.designed.value);
  taught=int0(document.CatapultGeek.taught.value);

  codeI = encode(invent, "", "I");
  codeD = encode(designed, "", "D");
  codeT = encode(taught, "", "T");

  document.CatapultGeek.designCode.value = codeI + codeD + codeT;

  computeAll();
}

function CatapultDoc()
{
  web=int0(document.CatapultGeek.webMB.value);
  plans=int0(document.CatapultGeek.plans.value);
  book=int0(document.CatapultGeek.book.value);
  video=int0(document.CatapultGeek.video.value);

  codeW = encode(Math.round(web/3), "", "W");
  codeP = encode(plans, "", "P");
  codeBk = encode(book, "", "Bk");
  codeVi = encode(video, "", "Vi");

  document.CatapultGeek.docCode.value = codeW + codeP + codeBk + codeVi;

  computeAll();
}

function computeAll()
{
  total = 0;

  small=int0(document.CatapultGeek.numsmallbuilt.value);
  med=int0(document.CatapultGeek.nummediumbuilt.value);
  large=int0(document.CatapultGeek.numlargebuilt.value);
  huge=int0(document.CatapultGeek.numhugebuilt.value);

  total = small*10+med*20+large*40+huge*100;

  small=int0(document.CatapultGeek.numsmallgarage.value);
  med=int0(document.CatapultGeek.nummediumgarage.value);
  large=int0(document.CatapultGeek.numlargegarage.value);

  total = total + small*1+med*3+large*10;

  attend=int0(document.CatapultGeek.contestTotal.value);
  uniquestr=document.CatapultGeek.contestUnique.value;
  unique=int0(uniquestr);
  trophies=int0(document.CatapultGeek.contestTrophies.value);
  bystander=int0(document.CatapultGeek.contestBystander.value);

  // Lets add this in to make sure no one is cheated.
  if(uniquestr == "")
    unique = 1;

  total = total + attend*10*unique + trophies*50 + bystander*unique;

  invent=int0(document.CatapultGeek.invented.value);
  designed=int0(document.CatapultGeek.designed.value);
  taught=int0(document.CatapultGeek.taught.value);

  total = total + invent*100 + designed*20 + taught*10;

  web=int0(document.CatapultGeek.webMB.value);
  plans=int0(document.CatapultGeek.plans.value);
  book=int0(document.CatapultGeek.book.value);
  video=int0(document.CatapultGeek.video.value);

  total = total + web + plans*20 + book*50 + video*35;

  rank="";
  if(total==0)
    rank = "citizen";
  else if(total>=1 && total<=10)
    rank = "target";
  else if(total>=11 && total<=30)
    rank = "effectum";
  else if(total>=31 && total<=100)
    rank = "effectum maximus";
  else if(total>=101 && total<=400)
    rank = "repertor";
  else if(total>=401 && total<=1000)
    rank = "repertor maximus";
  else if(total>=1001 && total<=5000)
    rank = "ceasar";
  else if(total>=5001)
    rank = "Ron Toms";
  else
    rank = "";
   
  document.CatapultGeek.computeIndex.value="CGI: " + total;
  document.CatapultGeek.computeRank.value="Title: " + rank;

  document.CatapultGeek.computeCode.value="CGC: " + codeI + codeD + codeT + codeB + codeG + codeC + codeA + codeV + codeW + codeP + codeBk + codeVi;
}

// End
