// ---------------------------------------------------------------------------
// handle activating and deactivating the forward/backward buttons
function updatecontrols()
{
  var controlF = document.getElementById("ControlForwards");
  if(gCanMoveForward==true)
  {     
     controlF.src = "controls/button_N.png";
  }
  else
  {
    controlF.src = "controls/button_N_off.png";
  }

  document.getElementById("ControlTurnLeft").src="controls/button_rotate_l.png";
  document.getElementById("ControlTurnRight").src="controls/button_rotate_r.png";

//  var controlB = document.getElementById("ControlBackwards");
//  if(gCanMoveBackward==true && controlB)
//  {     
//     controlB.src = "controls/button_S.png";
//  }
//  else
//  {
//    controlB.src = "controls/button_S_off.png";
//  }
}

// ---------------------------------------------------------------------------
function updatemazeview()
{
  updatecontrols();

  var rndcell = 0;
  if(gCellView<10)
  {
    rndcell = gCellView.substr(1,1);
  }
  else
  {
    rndcell = gCellView;
  }

  var numvariations = TheCells[rndcell][0];

  if(numvariations>0)
  {
    var panel = document.getElementById("MazeView");
    if(panel)
    {
      if(numvariations==1)
      {
        panel.src = "cells/shrub/" + gCellView + "_0" + ".png";
      }
      else if(numvariations==4)
      {
        // add 'random' element to gCellView to vary the view
        panel.src = "cells/shrub/" + gCellView + "_" + TheCells[rndcell][2] + ".png";
        TheCells[rndcell][2] = TheCells[rndcell][2]+1;
        if(TheCells[rndcell][2]==4)
        {
          TheCells[rndcell][2] = 0;
        }        
      }
      else
      {
        // should never get here ...
      }      
    }
  }

  var celltext = document.getElementById("CellText");
  celltext.innerHTML = TheCells[rndcell][3];

  var challengecell = 0;
  if(gCellView<10)
  {
    challengecell = gCellView.substr(1,1);
  }
  else
  {
    challengecell = gCellView;
  }
  // check to see if challenge is done, and if so, add done challenge text, and
  // clear any icon
  var ischallenge = TheCells[challengecell][1];
  if(ischallenge=="c")
  {
    var thechallenge = player_position_x+(player_position_y*MAZE_WIDTH);
    var c;
    for(c=1; c<NUM_CHALLENGES; c++)
    {
      if(TheChallenges[c][0]==thechallenge)
      {
        if(TheChallenges[c][2]>0)
        {
          celltext.innerHTML = TheCells[rndcell][4];
          document.getElementById("Icons").src = "controls/blank_space.png";  
        }
        break;
      }
    }  
  }
  else
  {
    checkforrandoms();
  }

}

// ---------------------------------------------------------------------------
function updatecompass()
{
  var compass = document.getElementById("Compass");
  if(!compass) return;
  switch(player_look_dir)
  {
    case 0:
      compass.src = "controls/N.png";
    break;
    case 1:
      compass.src = "controls/E.png";
    break;
    case 2:
      compass.src = "controls/s.png";
    break;
    case 3:
      compass.src = "controls/w.png";
    break;
    default:
    break;
  };
}

// ---------------------------------------------------------------------------
function controlsmoveforward()
{
  checkforrandoms();

  if(gCanMoveForward==false)
  {
    return;
  }

  var control = document.getElementById("ControlForwards");
  control.src="controls/button_N.png";    

  if(playermoveforward())
  {
    updatemazeview();   
    updatescanner(); 
  }
}

// ---------------------------------------------------------------------------
function controlsforwarddown()
{
  var control = document.getElementById("ControlForwards");
  // can't move forward if button is off ... uuurgh.
  if(gCanMoveForward==false)
  {
    return;
  }   
  control.src = "controls/button_N_on.png";
}

// ---------------------------------------------------------------------------
function controlsturnright()
{
  playerturnright();
  updatecompass();
  updatemazeview();

  var control = document.getElementById("ControlTurnRight");
  control.src = "controls/button_rotate_r.png";
}

// ---------------------------------------------------------------------------
function controlsturnrightdown()
{
  var control = document.getElementById("ControlTurnRight");
  control.src = "controls/button_rotate_r_on.png";
}

// ---------------------------------------------------------------------------
function controlsturnleft()
{
  playerturnleft();
  updatecompass();
  updatemazeview();

  var control = document.getElementById("ControlTurnLeft");
  control.src = "controls/button_rotate_l.png";
}

// ---------------------------------------------------------------------------
function controlsturnleftdown()
{
  var control = document.getElementById("ControlTurnLeft");
  control.src = "controls/button_rotate_l_on.png";  
}

// ---------------------------------------------------------------------------
function offtheblock()
{   
  document.getElementById("Ok").src = "controls/OK.png";

  var controlL = document.getElementById("ControlTurnLeft");  
  var controlR = document.getElementById("ControlTurnRight");  
 
//  var controlB = document.getElementById("ControlBackwards");  
  var controlF = document.getElementById("ControlForwards");

  controlL.onmouseup = function() {controlsturnleft();};
  controlL.onmousedown = function() {controlsturnleftdown();};
  controlL.src = "controls/button_rotate_l.png";

  controlR.onmouseup = function() {controlsturnright();};
  controlR.onmousedown = function() {controlsturnrightdown();};
  controlR.src = "controls/button_rotate_r.png";

  //controlF.onmousedown = function() {controlsforwarddown();};
  controlF.onmouseup = function() {controlsmoveforward();};  
  controlF.src = "controls/button_N.png";

  var panel = document.getElementById("MazeView");
  panel.src = "cells/shrub/" + gTheMazeStartCell + "_0" + ".png";

  var celltext = document.getElementById("CellText");
  celltext.innerHTML = TheCells[gTheMazeStartCell][3];

  showscanner();

  updatescanner();

  gCanMoveForward = false;
  gCanMoveBackward = false;

  updatecontrols();
}

// ---------------------------------------------------------------------------
function dothestart()
{
  document.getElementById("OKArea").style.display = "none";
  document.getElementById("Ok").src = "controls/OK.png";

  document.getElementById("CompassPlace").style.visibility = "visible";
  document.getElementById("TheControls").style.visibility = "visible";
 
  // maze view
  var panel = document.getElementById("MazeView");
  panel.src = "cells/shrub/15_0.png";
  
  // controls
/*
  document.getElementById("ControlTurnLeft").src="controls/button_rotate_l_off.png";
  document.getElementById("ControlForwards").src="controls/button_N.png";
  document.getElementById("ControlTurnRight").src="controls/button_rotate_r_off.png";
*/ 
  // display text
  document.getElementById("CellText").innerHTML = "<i>Welcome to the Dodo Towers Hedge Maze!</i><br>Will you find your way through and discover the fountain at the heart of the maze?<br>Look out for Lord Dodo's charming and enchanting challenges - there are ten to complete.<br><span class=\"colgreen\">Click on the <i>forward</i> arrow</span> to continue...";
}

// ---------------------------------------------------------------------------
function easydown()
{
  document.getElementById("Easy").src = "controls/easy_on.png"; 
}

// ---------------------------------------------------------------------------
function easyup()
{
  document.getElementById("Easy").src = "controls/easy.png"; 
  document.getElementById("EasyHard").style.display = "none";  
  gEASY_MODE = true;
  dothestart();
}

// ---------------------------------------------------------------------------
function harddown()
{
  document.getElementById("Hard").src = "controls/hard_on.png"; 
}

// ---------------------------------------------------------------------------
function hardup()
{
  document.getElementById("Hard").src = "controls/hard.png"; 
  document.getElementById("EasyHard").style.display = "none";  
  gEASY_MODE = false;
  dothestart();
}

// ---------------------------------------------------------------------------
function oktwo()
{
  document.getElementById("OKArea").style.display = "none";
  document.getElementById("Ok").src = "controls/OK.png";
  document.getElementById("EasyHard").style.display = "";  
  document.getElementById("MazeView").src = "randoms/Intro_text3.png";
}

// ---------------------------------------------------------------------------
function okone()
{
  document.getElementById("MazeView").src = "randoms/Intro_text2.png";
  document.getElementById("Ok").onmouseup = function() {oktwo();};
  document.getElementById("Ok").src = "controls/OK.png";
}

// ---------------------------------------------------------------------------
function introtext()
{
  document.getElementById("Ok").onmouseup = function() {okone();};
}

// ---------------------------------------------------------------------------
function endgotoinputdown()
{
  document.getElementById("EndInput").src = "controls/button_submit_on.png";   
}

// ---------------------------------------------------------------------------
function endgotoinputup()
{
  document.getElementById("EndInput").src = "controls/button_submit.png";   
  // redirect?
  window.location = REDIRECT_PAGE_URL + "?score=" + gPlayerScore;
}

// ---------------------------------------------------------------------------
function endrestartdown()
{
  document.getElementById("EndStart").src = "controls/button_replay_on.png";
}

// ---------------------------------------------------------------------------
function endrestartup()
{
  document.getElementById("EndStart").src = "controls/button_replay.png";   
  // redirect?
  window.location = "maze.html";
}

// ---------------------------------------------------------------------------
