//var Land=new Array(7)
//var Shaduf=new Array(7)
//var Water=new Array(7)

//var nPlayers=3
playdemo = false;

//standaard hoogte en breedte is 50
CHeight = 70;
CWidth = 70;

//basis functies
function ShowLand(array){
  var str = "" 
  for (ii = 0; ii <= 6; ii++) { 
  for (jj = 0; jj <= 6; jj++) { 
    str = str + "<img src=\"L" +  array [ii][jj] + ".gif\" height="+CHeight+" width="+CWidth+" >" 
	}
	str = str + "<br>"
  } 
  return str;
}


function ShowShaduf(array){
  var str = "" 
  for (ii = 0; ii <= 6; ii++) { 
  for (jj = 0; jj <= 6; jj++) { 
    str = str + "<img src=\"P" +  array [ii][jj] + ".gif\" height="+CHeight+" width="+CWidth+">" 
	}
	str = str + "<br>"
  } 
  return str;
}

function ShowWater(array){
  var str = "" 
  for (ii = 0; ii <= 6; ii++) { 
  for (jj = 0; jj <= 6; jj++) { 
    str = str + "<img src=\"W" +  array [ii][jj] + ".gif\" height="+CHeight+" width="+CWidth+">" 
	}
	str = str + "<br>"
  } 
  return str;
}


function ShowRedlayer(array){
  var str = "" 
  for (ii = 0; ii <= 6; ii++) { 
  for (jj = 0; jj <= 6; jj++) { 
	str = str + "<img src=\"R" + array [ii][jj] + ".gif\" height="+CHeight+" width="+CWidth+">" 
	}
	str = str + "<br>"
  } 
  return str;
}


//acties  (moeten verbeterd worden met de regels)
function UndoPumpWater(sFrom, sTo, array){
	PumpWater(sTo, sFrom, array);
}

function PumpWater(sFrom, sTo, array, land){
	amWater = 1;
	x1 = sFrom.charCodeAt(0)-65;
	y1 = sFrom.substring(1,2)-1;
	x2 = sTo.charCodeAt(0)-65;
	y2 = sTo.substring(1,2)-1;
	
	if (sTo == 'XX'){
		//remove water from the game
		array[x1][y1] = 0;
	}
	else{
		if (Land[x2][y2]==0){amWater = array[x1][y1]};
		if (array[x1][y1]<1 && amWater >0){alert(sFrom+ ' doesn\'t contain water! ' + amWater);};
	
		//move water
		array[x1][y1]=array[x1][y1]-amWater;
		array[x2][y2]=array[x2][y2]+amWater;
	}
}

function UndoBuildShaduf(sTo, Player, array){
	x1 = sTo.charCodeAt(0)-65;
	y1 = sTo.substring(1,2)-1;
	array[x1][y1]=0;
}

function BuildShaduf(sTo, Player, array){
	x1 = sTo.charCodeAt(0)-65;
	y1 = sTo.substring(1,2)-1;
	array[x1][y1]=Player;
}

function SetRedLayer(sTo, Value, array){
	x1 = sTo.charCodeAt(0)-65;
	y1 = sTo.substring(1,2)-1;
	array[x1][y1]=Value;
}

function redraw(millis){ 
	window.showModalDialog("javascript:document.writeln('<" + "script" + ">setTimeout(\"window.close();\"," + millis + ");</" + "script" + ">')");
	}	

function PauseAndRefresh(millis){
	// demo play mode true or false;
	if (playdemo){
		ShowLayer1();
		redraw(millis);
		}
}

function DoAction(action){
	a = action.split(',');
	if (a[0].substring(0,1) == 'I') {
		document.getElementById('Info').innerHTML = document.getElementById('Info').innerHTML + a[1] + '<br>';
	}
	else if (a[0].substring(0,1) == 'S') {
		BuildShaduf(a[1], a[0].substring(1,2)  , Shaduf);
		PauseAndRefresh(300);
		}
	else
		{
		PumpWater(a[0],a[1], Water, Land);
		PauseAndRefresh(300);
		}
}

function DoRedAction(action){
	a = action.split(',');
	if (a[0].substring(0,1) != 'I') {
		SetRedLayer(a[1], 1, Redlayer);
		}
}

function DoTurn(turn){
	var i;  
	for (i = 0; i < turn.length; i++)   { DoAction(turn[i]); }
}

function DoRedTurn(turn){
	var i;  
	for (i = 0; i < turn.length; i++)   { DoRedAction(turn[i]); }
}

function DoRound(round, nRound){
	DoRoundPartly(round, nRound, 0);
}

function DoRoundPartly(round, nRound, turn){
	if (turn>0 || turn==0){DoTurn(round[GetPlayer(nRound, 1)])};
	if (turn>1 || turn==0){DoTurn(round[GetPlayer(nRound, 2)])};
	if ((turn>2 || turn==0) && nPlayers>2){DoTurn(round[GetPlayer(nRound, 3)])};
	if ((turn>3 || turn==0) && nPlayers>3){DoTurn(round[GetPlayer(nRound, 4)])};
	if (turn==0) {DoTurn(round[0])};
}

function DoEndturn(round, nRound, turn){
	
	if (turn==1 ){DoRedTurn(round[GetPlayer(nRound, 1)])};
	if (turn==2 ){DoRedTurn(round[GetPlayer(nRound, 2)])};
	if ((turn==3) && nPlayers>2){DoRedTurn(round[GetPlayer(nRound, 3)])};
	if ((turn==4) && nPlayers>3){DoRedTurn(round[GetPlayer(nRound, 4)])};
	if (turn==0) {DoRedTurn(round[0])};
}

function Get_Color(player){
	if (player == 1) {return "#ffff00"};
	if (player == 2) {return "#ff0000"};
	if (player == 3) {return "#000000"};
	if (player == 4) {return "#eeeeee"};
	if (player == 0) {return "#0000ff"};
}

function GetPlayer(nRound, nTurn){
	nStartRound = ((nRound-1) % nPlayers)+1;
	nPlayer = nStartRound + nTurn-1;
	return ((nPlayer-1) % nPlayers)+1;
}
 