// randoms file
// ---------------------------------------------------------------------------
function hidespecial()
{
  var icon = document.getElementById("Icons");
  icon.src = "controls/blank_space.png";
  icon.onmouseup = "";

  document.getElementById("TheControls").style.visibility = "visible";

  showscanner();

  var yesno = document.getElementById("YesNo").style.display = "none";
  document.getElementById("EasyHard").style.display = "none";

  var panel = document.getElementById("MazeView");
  panel.src = gToFromChallengeCell;
  gToFromChallengeCell = "";

  var celltext = document.getElementById("CellText");
  celltext.innerHTML = gToFromOtherText;
  celltext.style.display = "";
  gToFromOtherText = "";    

  var itemtext = document.getElementById("ItemText");  
  itemtext.innerHTML = "";
  document.getElementById("ItemTextTR").style.display = "none";
}

// ---------------------------------------------------------------------------
function okdown()
{  
  document.getElementById("Ok").src = "controls/OK_on.png";
}

// ---------------------------------------------------------------------------
function yesdown()
{
  document.getElementById("Yes").src = "randoms/yes_on.png";
}

// ---------------------------------------------------------------------------
function nodown()
{
  var no_button = document.getElementById("No").src = "randoms/no_on.png";
}

// ---------------------------------------------------------------------------
function postteapotview()
{
  // DISABLE NAVIGATION CONTROLS!
  player_position_x = gTeaPotPlayerX;
  player_position_y = gTeaPotPlayerY;
  // N=0, E=1, S=2, W=3
  player_look_dir = gTeaPotPlayerLookDir;
  
  var cell_string = TheMaze[player_position_x+(player_position_y*MAZE_WIDTH)][player_look_dir]; 
  // setglobal cell view to draw
  gCellView = cell_string.substr(0,2);

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

  var can_move = cell_string.substr(2,1);
  if(can_move=="x")
  {    
    gCanMoveForward = false;
  }
  else
  {
    gCanMoveForward = true;
  }

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

  document.getElementById("EasyHard").style.display = "none";

  document.getElementById("OKArea").style.display = "none";
  document.getElementById("OKArea").onmouseup = "";  
  document.getElementById("Ok").src = "controls/OK.png";

  showscanner();

  updatescanner();

  // update controls
  document.getElementById("TheControls").style.visibility = "visible";
  var controlF = document.getElementById("ControlForwards");
  if(gCanMoveForward==true)
  {
    controlF.src = "controls/button_N.png"; 
  }
  else
  {
    controlF.src = "controls/button_N_off.png";
  }  

  // update compass
  var compass = document.getElementById("Compass");  
  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;
  };

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

  // reset the randomness of the teapot
  setteapotplayer();
  setteapot();
}

// ---------------------------------------------------------------------------
function yesteapotup()
{
  // 'teleport' player to new position
  var yes_button = document.getElementById("Yes").src = "randoms/yes.png";

  // hide yes/no
  document.getElementById("YesNo").style.display = "none";

  // show ok
  document.getElementById("OKArea").style.display = "";

  document.getElementById("EasyHard").style.display = "none";

  // clear icon
  var icon = document.getElementById("Icons");
  icon.src = "controls/blank_space.png";
  icon.onmouseup = "";

  document.getElementById("MazeView").src = "randoms/result_teapot.png";

  document.getElementById("OKArea").style.display = "";
  document.getElementById("OKArea").onmouseup = function() {postteapotview();};  
}

// ---------------------------------------------------------------------------
function noteapotup()
{
  var no_button = document.getElementById("No").src = "randoms/no.png";

  document.getElementById("TheControls").style.visibility = "visible";

  document.getElementById("Scanner").style.visibility = "visible";

  document.getElementById("EasyHard").style.display = "none";

  hidespecial();

  var itemtext = document.getElementById("ItemText");        
  itemtext.innerHTML = HELPER_TEXT[2];
  document.getElementById("ItemTextTR").style.display = "";


  var icon = document.getElementById("Icons");
  icon.src = "randoms/icon_teapot.png";
  icon.onmouseup = function() {showteapot();};
}

// ---------------------------------------------------------------------------
function postcatacombsview()
{  
  player_position_x = 3;
  player_position_y = 6;

  // N=0, E=1, S=2, W=3
  player_look_dir = 2;

  var cell_string = TheMaze[player_position_x+(player_position_y*MAZE_WIDTH)][player_look_dir]; 
  // setglobal cell view to draw
  gCellView = cell_string.substr(0,2);

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

  document.getElementById("EasyHard").style.display = "none";

  document.getElementById("OKArea").style.display = "none";
  document.getElementById("Ok").onmouseup = "";
  document.getElementById("Ok").src = "controls/OK.png";

  showscanner();

  updatescanner();

  // update controls
  document.getElementById("TheControls").style.visibility = "visible";
  var controlF = document.getElementById("ControlForwards");
  gCanMoveForward=true;       
  controlF.src = "controls/button_N.png";

  // update compass
  var compass = document.getElementById("Compass");  
  compass.src = "controls/s.png";

  var celltext = document.getElementById("CellText");
  celltext.innerHTML = "<i>Warning</i> - you are about to leave the maze!<br>If you wish to stay in the maze, turn <i>left</i> or <i>right</i> to continue exploring.";
  celltext.style.display = "";

  gCatacombsUsed = gCatacombsUsed+1;  
}

// ---------------------------------------------------------------------------
function yescatacombsup()
{
  document.getElementById("Yes").src = "randoms/yes.png";

  // hide yes/no
  document.getElementById("YesNo").style.display = "none";

  document.getElementById("EasyHard").style.display = "none";  

  document.getElementById("MazeView").src = "randoms/result_tunnel.png";

  document.getElementById("OKArea").style.display = "";
  document.getElementById("Ok").onmouseup = function() {postcatacombsview();};
  document.getElementById("Ok").src = "controls/OK.png";

  var icon = document.getElementById("Icons");
  icon.src = "controls/blank_space.png";
  icon.onmouseup = "";
}

// ---------------------------------------------------------------------------
function nocatacombsup()
{
  var no_button = document.getElementById("No").src = "randoms/no.png";

  document.getElementById("TheControls").style.visibility = "visible";

  hidespecial();

  var itemtext = document.getElementById("ItemText");        
  itemtext.innerHTML = HELPER_TEXT[3];
  document.getElementById("ItemTextTR").style.display = "";

  var icon = document.getElementById("Icons");
  icon.src = "randoms/icon_tunnel.png";
  icon.onmouseup = function() {showcatacombs();};
}

// ---------------------------------------------------------------------------
function showteapot()
{
  var panel = document.getElementById("MazeView");
  gToFromChallengeCell = panel.src;

  document.getElementById("TheControls").style.visibility = "hidden";

  hidescanner();

  var icons = document.getElementById("Icons").src = "controls/blank_space.png";

  // clear directions text under main screen
  var celltext = document.getElementById("CellText");
  gToFromOtherText = celltext.innerHTML;
  celltext.style.display = "none";

  var itemtext = document.getElementById("ItemText");  
  itemtext.innerHTML = "";
  document.getElementById("ItemTextTR").style.display = "none";

  // show catacombs screen
  panel.src = "randoms/teapot_screen.png";

  var yesno = document.getElementById("YesNo").style.display = "";
  document.getElementById("Yes").onmouseup = function() {yesteapotup();};
  document.getElementById("No").onmouseup = function() {noteapotup();};
}

// ---------------------------------------------------------------------------
function showcatacombs()
{
  // DISABLE NAVIGATION CONTROLS?

  var panel = document.getElementById("MazeView");
  gToFromChallengeCell = panel.src;

  document.getElementById("TheControls").style.visibility = "hidden";

  hidescanner();

  var icons = document.getElementById("Icons").src = "controls/blank_space.png";

  // clear directions text under main screen
  var celltext = document.getElementById("CellText");
  gToFromOtherText = celltext.innerHTML;
  celltext.style.display = "none";

  var itemtext = document.getElementById("ItemText");  
  itemtext.innerHTML = "";
  document.getElementById("ItemTextTR").style.display = "none";

  // show catacombs screen
  panel.src = "randoms/tunnel_screen.png";

  var yesno = document.getElementById("YesNo").style.display = "";
  document.getElementById("Yes").onmouseup = function() {yescatacombsup();};
  document.getElementById("No").onmouseup = function() {nocatacombsup();};
}

// ---------------------------------------------------------------------------
function showmapmain(mapindex)
{
  var panel = document.getElementById("MazeView");
  gToFromChallengeCell = panel.src;  

  // show tha found map! duh ...
  panel.src = "randoms/mazemap_screen_" + RandomsMapCells[mapindex][1] + ".png";

  // hide the item text
  var itemtext = document.getElementById("ItemText");  
  itemtext.innerHTML = "";
  document.getElementById("ItemTextTR").style.display = "none";

  document.getElementById("TheControls").style.visibility = "hidden";

  hidescanner();

  // clear directions text under main screen
  var celltext = document.getElementById("CellText");
  gToFromOtherText = celltext.innerHTML;
  celltext.innerHTML = "";
  celltext.style.display = "none";

  document.getElementById("Icons").src = "controls/blank_space.png";  

  document.getElementById("OKArea").style.display = "";
  document.getElementById("Ok").onmouseup = function() 
    {
      RandomsMapCells[mapindex][2] = 1; 
      hidespecial();  
      document.getElementById("OKArea").style.display = "none";
      document.getElementById("Ok").onmouseup = "";
      document.getElementById("Ok").src = "controls/OK.png";
    };  

  gNumberOfMapsUsed = gNumberOfMapsUsed+1;  
}

// ---------------------------------------------------------------------------
function checkforrandoms()
{
  var icon;
  var cell = player_position_x+(player_position_y*MAZE_WIDTH);

  var c;
  var found = false;
  for(c=0; c<NUM_MAP_CELLS; c++)
  {
    if(RandomsMapCells[c][0]==cell)
    {
      // only if we not used this map before ...
      if(RandomsMapCells[c][2]==0)
      {
        // we on a map cell, so show map icon
        icon = document.getElementById("Icons");
        icon.src = "randoms/icon_map.png";
        icon.onmouseup = function() {icon.src = "randoms/icon_map.png";showmapmain(c);};      
        icon.onmousedown = function() {icon.src = "randoms/icon_map_on.png";};
        found = true;
      
        var itemtext = document.getElementById("ItemText");        
        itemtext.innerHTML = HELPER_TEXT[0];
        document.getElementById("ItemTextTR").style.display = "";
      }
      break;
    }
  }

  if(RandomsCatacombs[gChosenCatacombCell]==cell)
  {
    // we on the catacombs cell, so show catacombs icon
    icon = document.getElementById("Icons");
    icon.src = "randoms/icon_tunnel.png";

    var itemtext = document.getElementById("ItemText");        
    itemtext.innerHTML = HELPER_TEXT[3];
    document.getElementById("ItemTextTR").style.display = "";

    icon.onmouseup = function() {icon.src = "randoms/icon_tunnel.png";showcatacombs();};
    icon.onmousedown = function() {icon.src = "randoms/icon_tunnel_on.png";};
    found = true;    
  }

  if(player_position_x == gTeaPotX &&
       player_position_y == gTeaPotY)
  { 
    icon = document.getElementById("Icons");
    icon.src = "randoms/icon_teapot.png";

    var itemtext = document.getElementById("ItemText");        
    itemtext.innerHTML = HELPER_TEXT[2];
    document.getElementById("ItemTextTR").style.display = "";

    icon.onmouseup = function() {icon.src = "randoms/icon_teapot.png";showteapot();};
    icon.onmousedown = function() {icon.src = "randoms/icon_teapot_on.png";};
    found=true;
  }

  if(found == false)
  {
    // hide the item text
    var itemtext = document.getElementById("ItemText");  
    itemtext.innerHTML = "";
    document.getElementById("ItemTextTR").style.display = "none";
  }

  icon = document.getElementById("Icons");
  if(found == false && gChallengeMode==-1)
  {
     icon.src = "controls/blank_space.png";       
  }
}
// ---------------------------------------------------------------------------