// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
$(document).ready(function() {
  prepare_show_hide();
  prepare_nav_key_help();
  prepare_short_keys();
  $('#share').bookmark({sites: ['facebook', 'myspace', 'delicious', 'digg', 'google', 'stumbleupon']});
});

function prepare_show_hide() {
  $('#question').append('<p id="reveal"></p>');
  $('#reveal').append('<a href="#" id="show-link">Show answer</a>');
  $('#reveal').append('<a href="#" id="hide-link">Hide answer</a>');
  $('#answer').hide();
  $('#hide-link').hide();
  $('#show-link').click( function() {
    $('#show-link').hide();
    $('#hide-link').show();
    $('#answer').show();
  });
  $('#hide-link').click( function() {
    $('#answer').hide();
    $('#hide-link').hide();
    $('#show-link').show();
  });
}

var key_nav_table = '<table>' +
                    '<tr><th>Key</th><th>Action</th></tr>' +
                    '<tr><td>S</td><td>Show answer</td></tr>' +
                    '<tr><td>H</td><td>Hide answer</td></tr>' +
                    '<tr><td>N</td><td>Next Question</td></tr>' +
                    '<tr><td>P</td><td>Previous Question</td></tr>' +
                    '<tr><td>F</td><td>First Question</td></tr>' +
                    '<tr><td>L</td><td>Last Question</td></tr>' +
                    '<tr><td>B</td><td>Back to Question List</td></tr>' +
                    '</table>';

function prepare_nav_key_help() {
  $('#question_nav').append('<p></p>');
  $('#question_nav p').append('<a href="#" id="show-keys-link">Show keyboard shortcuts</a>');
  $('#question_nav p').append('<a href="#" id="hide-keys-link">Hide keyboard shortcuts</a>');
  $('#hide-keys-link').hide();
  $('#show-keys-link').click( function() {
    $('#show-keys-link').hide();
    $('#hide-keys-link').show();
    $('#question_nav').append(key_nav_table);
  });
  $('#hide-keys-link').click( function() {
    $('#question_nav table').remove();
    $('#hide-keys-link').hide();
    $('#show-keys-link').show();
  });
}

function prepare_short_keys() {
  $(document).shortkeys({
    'S': function () { $('#show-link').click(); },
    'H': function () { $('#hide-link').click(); },
    'F': function () { follow_link('#first-link') },
    'L': function () { follow_link('#last-link') },
    'P': function () { follow_link('#prev-link') },
    'N': function () { follow_link('#next-link') },
    'B': function () { follow_link('#back-link') }
  });
}

function follow_link(id) {
  if ($(id).size() > 0) {
    document.location = $(id).attr('href');
  }
}
