var MonsterID=new Array('Fungus','Mushroom','Champgno','Shiitake','Toadstol','Flower','P-Flower','F-Flower','SunPlant','DarkRose','MapleMan','LiveOrk','EvilPine','MadCedar','Treant','Pebble','Cobble','Boulder','Rock','Earth','Woodman','Clayman','Stoneman','Ironman','Mazin','Hofud','Gae Bolg','Answerer','Moaner','Kusanagi','Slime','Jelly','Tororo','Pudding','SlimeGod','Worm','P-Worm','LavaWorm','SandWorm','GigaWorm','Big Eye','Gazer','Watcher','Evil Eye','Beholder','Spider','P-Spider','Tarantla','F-Spider','Arachne','Beetle','Chafer','Ant Lion','C-Fisher','Scarab','Moth','Swallow','FireMoth','Gloom','Madame','Octopus','Amoeba','Ammonite','Squid','Kraken','Barracud','Piranha','Shark','Gunfish','Leviathan','Crab','Hermit','IceCrab','KingCrab','Dagon','Toad','P-Toad','HugeToad','GianToad','KingToad','Snake','Serpent','Anaconda','Hydra','Jorgandr','Tortoise','Turtle','Adamant','D-Turtle','Gen-Bu','Lizard','Cameleon','Komodo','Salamand','Basilisk','Rhino','Triceras','Dinosaur','T Rex','Behemoth','Baby-D','Young-D','Dragon','Great-D','Sei-Ryu','BabyWyrm','Wyrm Kid','Wyvern','Wyrm','FengLung','Eagle','Thunder','Cocatris','Roc','Su-Zaku','Raven','Harpy','Ten-Gu','Garuda','Nike','Jaguar','SabreCat','SnowCat','BlackCat','Byak-Ko','Silver','Kelpie','Nitemare','Sleipnir','Unicorn','Griffon','Mantcore','Chimera','Sphinx','Kirin','Fly','Hornet','Mosquito','Cicada','Mantis','WereRat','WereWolf','CatWoman','Rakshasa','Anubis','Medusa','Lamia','Naga','Scylla','Lilith','Goblin','Oni','Ogre','Giant','Susano-O','Fiend','Mephisto','Demon','DemoLoad','Athtalot','Sprite','Fairy','Nymph','Sylph','Titania','Skelton','Red Bone','Warrior','BoneKing','Lich','Zombie','Ghoul','Ghast','Wight','Revenant','O-Bake','Phantom','Wraith','Spector','Ghost');

var MonsterDS=new Array(1,5,6,10,11,2,6,9,10,11,4,5,7,10,11,2,3,7,10,11,3,5,7,10,11,4,7,8,10,11,2,4,6,10,11,3,5,8,10,11,4,7,9,10,11,1,4,7,10,11,2,5,6,10,11,4,6,8,10,11,2,3,6,10,11,2,6,8,10,11,3,7,9,10,11,1,5,9,10,11,2,6,7,10,11,4,5,8,10,11,1,4,6,10,11,3,6,8,10,11,5,8,9,10,11,2,4,7,10,11,2,5,9,10,11,4,5,9,10,11,1,4,8,10,11,3,4,8,10,11,4,6,9,10,11,1,5,7,10,11,2,5,8,10,11,4,8,9,10,11,1,3,6,10,11,3,7,8,10,11,5,7,9,10,11,1,2,6,10,11,2,4,8,10,11,5,7,8,10,11);

var SpecialID=new Array('Plasma','Phagocyt','Corpuscl','Cancer','Grippe','Virus','Pathogen','Plague','OdinCrow','TianLung','Fenrir');
var SpecialDS=new Array(3,4,6,10,3,4,7,10,7,11,11);
var SpecialFamily=new Array(6,6,6,6,6,6,6,6,24,20,24);
var MeatID=MonsterID.concat(SpecialID);
var MeatDS=MonsterDS.concat(SpecialDS);

function bodyInit(){
	selectInit();
	CalcButtonOnPress();
	LongButtonOnPress();
}

function selectInit(){
	var select1=document.getElementById("OrigMonster");
	var select2=document.getElementById("MeatMonster");
	for ( var i=0; i<MonsterID.length; i++){
		var opt=document.createElement("option");
		opt.value=i;
		var text=document.createTextNode(MonsterID[i]);
		opt.appendChild(text);
		select1.appendChild(opt);
	}
	for ( var i=0; i<MeatID.length; i++){
		var opt=document.createElement("option");
		opt.value=i;
		var text=document.createTextNode(MeatID[i]);
		opt.appendChild(text);
		select2.appendChild(opt);
	}
}

function GetFinalFamily(orig, meat){
	var family=orig*1;
	var modifier=0;
	if ( meat >= 18 && meat < 36) {
		family+=(Math.floor(meat/3)-5)*3;
	}
	else if ( meat >= 0 && meat < 18 ) {
		family+=(Math.floor(meat/3)+6)*3;
	}
	if ( (meat%3)==2 && (orig%3)<2 ){
		// C meat
		modifier=1;
	}
	else if ( (meat%3)==0 && (orig%3)>0 ){
		// A meat
		modifier=35;
	}
	family=(family+modifier)%36;
	return family;
}

function GetFinalSpecies(family, DS){
	var firstspecies=family*5;
	var species=firstspecies+4;
	for ( ;species>firstspecies; species--){
		if ( DS>=MonsterDS[species] ) {
			break;
		}
	}
	return species;
}

function CalcButtonOnPress(){
	var orig=document.getElementById("OrigText").value;
	var meat=document.getElementById("MeatText").value;
	var family=document.getElementById("FamilyText");
	// set value
	var fam=GetFinalFamily( orig, meat );
	family.value=fam;
	document.getElementById("FamilyNameText").innerHTML=MonsterID[fam*5];
	return family;
}

function LongButtonOnPress(){
	var origID=document.getElementById("OrigMonster").options;
	origID=origID[origID.selectedIndex].value;
	var meatID=document.getElementById("MeatMonster").options;
	meatID=meatID[meatID.selectedIndex].value;
	var DS;
	var family;
	if ( meatID >= 180 ){
		family=GetFinalFamily(Math.floor(origID/5),SpecialFamily[meatID-180]);
	} else {
		family=GetFinalFamily(Math.floor(origID/5),Math.floor(meatID/5));
	}
	DS=Math.max(MonsterDS[origID], MeatDS[meatID]);
	var species=GetFinalSpecies(family,DS);
	var speciesText=document.getElementById("SpeciesText");
	speciesText.value=MonsterID[species];
	return species;
}

