//
// Badger Kingdom Version 2.0
// Copyright Alexander Martin & Pantomimepony 2001-2007
//


// data and globals
//***************************************************************************************************

var nameIndex;
nameIndex=rand(20);
var imageClaim=new Image();
imageClaim.src="images/claim.gif";
var imageMoves=new Image();
imageMoves.src="images/moves.gif";
var bgIndex=0;
preload=new Image();
preload.src="images/bg3.jpg";

bgImages=["rgb(63,67,98) url(images/badgercub.jpg)","rgb(63,67,98) url(images/badgeradolescent.gif)","rgb(63,67,98) url(images/badgeradult.gif)","rgb(63,67,98) url(images/badgercubf.gif)","XXX"]

badgerImages=["badgercub.gif","badgeradolescent.gif","badgeradult.gif","badgercubf.gif","badgeradolescentf.gif","badgeradultf.gif"];
var maleNames=["Nuts","Zag","Ziggy","Stripey","Benny","Limper","Derek","Bolt","Screamer","Dancer","Jim","Clancy","Trampas","Zippy","Wellington","Pooper","Charlie Boy","Pumpy","Fritzy","Felix","The Fonz","Randolf","Gandolf","Jonesy","Sting","Glum","Horace","Peter","David","Mikey","Mac","Steven","John","Jack","Albert","Cnut","William","Roy","Rumpsfold","Cedric","Jimi","Mitchell","Boss","Morris","Branson","Bradley","Bonaparte","Patton","Alun","Bumpy","Cheezy","Cuddles","Coco","Bucket Boy","Lardy","Yum Yum","Nipper","Trotter","Abdul","Roland","Wrecker","Vandal","Corky","Desperate Dan","Spanner","Plonker","Dim wit","Nobby","Bobby","Robby","Dobby","Larkin","Barkin","Markin","Choosey","Loser","Champ","Nosher","Barker","Dragon","XXX","XXX","XXX","XXX","XXX","XXX","XXX","XXX","XXX","XXX"];
var femaleNames=["Buttercup","Daisy","Viv","Bibi","Clumpy","Maisy","Bobbin","Miss Piggy","Missy","Lumpy","Pammy","Britney","Noush","Gemma","Stacey","Jumpy","Bunny","Titania","Denise","Petal","Pee-pee","Avril","Cheri","Rumpy","Rosie","Posie","Moon Child","Poppy","Wild Violet","Charlotte","Jane","Courtney","Shazza","Lou-lou","Thelma","Selma","Posh","Candice","Condie","Monica","Jordan","Minxy","Waynetta","Alice","Susan","Jackie","Sarah","Sheila","Angel","Kate","Becca","Anne","Lindsay","Paris","Victoria","Geri","Teri","Beyonce","Liz","Tea Cake","Fluffy","Mintie","Moany","Marilyn","Maria","Olive","Google","Kimmy","La-la","Sally","Tina","Calista","Dumpling","Dimples","Star","Pink","Tiger","Floosey","Moo","Silly Moo","Bimbo","XXX","XXX","XXX"];
var dirty=["Dirty","Mucky","Grubby","Sleazy","Smelly","Itchy","Tatty","Sloppy","Flea Bitten","Poxy","Contagious","Coughing","Wheezing",""];

board = new Board();
game = new Game();
badger = new Badger();
	badger.BuildClan();
	
function initialise(){
	game.DisplayForagers();
	game.DisplayFood();
	game.DisplayDanger();
	window.onresize = doResize;
	refreshOverlay();
	//setInterval("updateBG()",100);
	}

// minor subroutines
//***************************************************************************************************

function indir(n,d) {
//next index in direction d
//d = N, S E or W
switch(d) {
	case 0://n
		n-=10;
		if(n<0) return -1;
		else return n;
			break;
	case 1://s
		n+=10;
		if(n>99) return -1;
		else return n;
			break;
	case 2://e
		if ((n%10)==9) return-1;
		return n+1;
			break;
	case 3: //w
		if ((n%10)==0) return-1;
		return n-1;
			break;
	}
}

function rand(num) {
	return Math.floor(Math.random() * num);
}
function randSwitch() {
	return (Math.floor(Math.random() * 2)==1);
}


// Controls
//*****************************************************************************************************

function DisplayControls(){
		document.write('<input type="button" class="btn" id="but1" value="Next season" onclick="AdvanceGame();"><br />');
		document.write('<input type="button" class="btn" id="but2" value="Instructions" onclick="doButton(2);"   >');
		document.write('<input type="button" class="btn" id="but3" value=" Map " onclick="doButton(3);" disabled>' );	
		document.write('<input type="button" class="btn" id="but4" value=" Table " onclick="doButton(4);">' );
		document.write('<input type="button" class="btn" id="but5" value=" Quit " onclick="quit();" >' );

		
}	

// Screen handling
//*****************************************************************************************************



function updateBG(){
 	
 	var src=bgImages[bgIndex++];
 	if(src=="XXX"){
		bgIndex=0;
 		src=bgImages[bgIndex++];
 		}
 
	document.body.style.background=src;

}


function getBoardPosition(){

//	if ((navigator.appName).indexOf("Microsoft")!=-1) return (screen.width/2)-401;
//	else return (screen.width/2)-376;

var obj=document.getElementById("cell3");
var p=getElementPos(obj);

}

// pass the HTML element return the x, y position
function getElementPos(obj){
	x=obj.offsetLeft;
	y=obj.offsetTop;
	while(obj.offsetParent!=null){
		par=obj.offsetParent;
		x+=par.offsetLeft;
		y+=par.offsetTop;
		obj=par;
}
return[x,y];
}

function doResize(){
	if(game.instructions==false && game.board=="board")refreshOverlay();
}


// Names
//*****************************************************************************************************

function getName(sex){

	var name="XXX"
	while(name=="XXX"){
		if(sex=="female")name=femaleNames[nameIndex];
		else name=maleNames[nameIndex];
		if(name=="XXX" )nameIndex=0;
		else nameIndex++;	
	}
	return(name);
}

function showGameOver(){

	var str="";
	str+=GetGameOverReport();
	document.getElementById('cell3').innerHTML=str;
	document.getElementById('overlayContainer').style.visibility="hidden";
	disableButton("but1",true);
	disableButton("but2",true);
	disableButton("but3",true);
	disableButton("but4",true);
}


function doInstructions(){
	var str="";
	str=GetInstructions();
	document.getElementById('cell3').innerHTML=str;
	document.getElementById('overlayContainer').style.visibility="hidden";
}

function doMap(){
	 	refreshBoard();
		document.getElementById('overlayContainer').style.visibility="visible"
}

function doTable(){
		document.getElementById('cell3').innerHTML='<div class="styleBigTable" width="500px">'+badger.DisplayTable()+'</div>';
		document.getElementById('overlayContainer').style.visibility="hidden";
}

function doButton(button){
	switch(button){
		case 2: //instructions 
			doInstructions();
			updateTable();			
			disableButton("but1",true);
			disableButton("but2",true);
			disableButton("but3",false);
			disableButton("but4",false);
		break;
		case 3:	//map
			doMap();
			updateTable();				
			disableButton("but1",false);
			disableButton("but2",false);
			disableButton("but3",true);
			disableButton("but4",false);
		break;
		case 4: //table
			doTable();
			document.getElementById('cell5').innerHTML=""; //do possible table substitute here
			disableButton("but1",true);
			disableButton("but2",false);
			disableButton("but3",false);
			disableButton("but4",true);
		break;
	}
}

function disableButton(button,state){
	document.getElementById(button).disabled=state; //true to disable
}

function quit(){
	if(confirm('Are you sure you want to quit?')) document.location="http://badgerkingdom.pantomimepony.co.uk/index.htm";
}
function RestartGame(){
	game.deploy=1;
  	game.season="Spring";
   	game.year=0;
	game.report="<br />Better luck this time..";
	game.deathRoll="";
	game.deathCount=0;
	game.clanSick=false;
	game.foragers=0;
	game.numBadgers=12;
	game.food=15;
	game.danger=1;
	game.instructions=false;
	game.cubsBorn=0;
	game.hungryBadgers=0;
	game.roadDanger=false;
 	game.nmeClanNum=12;
 	game.noking=true;
	game.noqueen=true;
	board.MakeBoard();
	badger.BuildClan();
	game.DisplayForagers();
	game.DisplayFood();
	game.DisplayDanger();
	refreshBoard();
	board.GetValidMoves();
	document.getElementById('overlayContainer').style.visibility="visible";
	refreshOverlay();
	updateTable();
	game.DisplayDeploy();
	game.DisplayReport();
	game.DisplaySeason();
	game.DisplayFood();
	game.DisplayYear();
	disableButton("but1",false);
	disableButton("but2",false);
	disableButton("but3",true);
	disableButton("but4",false);
}

function spacebarHit(e,n)
{
var keynum

if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
if(keynum==32)board.BoardClick(n);

}


