// (C) 2007 - Vincent van Scherpenseel - SYN-ACK.org
// JSVK (JavaScript Virtual Keyboard) version 0.1
// Licensed under the GNU GPL

var button_timeout = 500;		// default: 1 second time out on button press
var shift = 0;				// default: no shift pressed
var caps = 0;				// default: lowercase
var button_target = 'rcmloginuser';	// default: loginfield

var alertTimerId = 0;			// initialise
var input_length = 0;			// initialise

function set_button_target(target) {
  button_target = target;
}

function switch_button_target(target) {
  if (button_target == 'rcmloginuser') {
    button_target = 'rcmloginpwd';
    document.getElementById('rcmloginpwd').focus();
  } else if (button_target == 'rcmloginpwd') {
    button_target = 'rcmloginuser';
    document.getElementById('rcmloginuser').focus();
  }
}

function set_buttons_upper() {
      document.getElementById('button_1').innerHTML = '!';
      document.getElementById('button_2').innerHTML = '@';
      document.getElementById('button_3').innerHTML = '#';
      document.getElementById('button_4').innerHTML = '$';
      document.getElementById('button_5').innerHTML = '%';
      document.getElementById('button_6').innerHTML = '^';
      document.getElementById('button_7').innerHTML = '&';
      document.getElementById('button_8').innerHTML = '*';
      document.getElementById('button_9').innerHTML = '(';
      document.getElementById('button_0').innerHTML = ')';
      document.getElementById('button_dash').innerHTML = '_';
      document.getElementById('button_equals').innerHTML = '+';
      document.getElementById('button_backspace').innerHTML = '<--';


      document.getElementById('button_q').innerHTML = 'Q';
      document.getElementById('button_w').innerHTML = 'W';
      document.getElementById('button_e').innerHTML = 'E';
      document.getElementById('button_r').innerHTML = 'R';
      document.getElementById('button_t').innerHTML = 'T';
      document.getElementById('button_y').innerHTML = 'Y';
      document.getElementById('button_u').innerHTML = 'U';
      document.getElementById('button_i').innerHTML = 'I';
      document.getElementById('button_o').innerHTML = 'O';
      document.getElementById('button_p').innerHTML = 'P';
      document.getElementById('button_a').innerHTML = 'A';
      document.getElementById('button_s').innerHTML = 'S';
      document.getElementById('button_d').innerHTML = 'D';
      document.getElementById('button_f').innerHTML = 'F';
      document.getElementById('button_g').innerHTML = 'G';
      document.getElementById('button_h').innerHTML = 'H';
      document.getElementById('button_j').innerHTML = 'J';
      document.getElementById('button_k').innerHTML = 'K';
      document.getElementById('button_l').innerHTML = 'L';
      document.getElementById('button_z').innerHTML = 'Z';
      document.getElementById('button_x').innerHTML = 'X';
      document.getElementById('button_c').innerHTML = 'C';
      document.getElementById('button_v').innerHTML = 'V';
      document.getElementById('button_b').innerHTML = 'B';
      document.getElementById('button_n').innerHTML = 'N';
      document.getElementById('button_m').innerHTML = 'M';

      document.getElementById('button_bracketleft').innerHTML = '{';
      document.getElementById('button_bracketright').innerHTML = '}';
      document.getElementById('button_backslash').innerHTML = '|';
      document.getElementById('button_semicolon').innerHTML = ':';
      document.getElementById('button_quote').innerHTML = '"';
      document.getElementById('button_comma').innerHTML = '<';
      document.getElementById('button_point').innerHTML = '>';
      document.getElementById('button_slash').innerHTML = '?';
      document.getElementById('button_backtick').innerHTML = '~';
}

function set_buttons_lower() {
      document.getElementById('button_1').innerHTML = '1';
      document.getElementById('button_2').innerHTML = '2';
      document.getElementById('button_3').innerHTML = '3';
      document.getElementById('button_4').innerHTML = '4';
      document.getElementById('button_5').innerHTML = '5';
      document.getElementById('button_6').innerHTML = '6';
      document.getElementById('button_7').innerHTML = '7';
      document.getElementById('button_8').innerHTML = '8';
      document.getElementById('button_9').innerHTML = '9';
      document.getElementById('button_0').innerHTML = '0';
      document.getElementById('button_dash').innerHTML = '_';
      document.getElementById('button_equals').innerHTML = '+';
      document.getElementById('button_backspace').innerHTML = '<--';

      document.getElementById('button_q').innerHTML = 'q';
      document.getElementById('button_w').innerHTML = 'w';
      document.getElementById('button_e').innerHTML = 'e';
      document.getElementById('button_r').innerHTML = 'r';
      document.getElementById('button_t').innerHTML = 't';
      document.getElementById('button_y').innerHTML = 'y';
      document.getElementById('button_u').innerHTML = 'u';
      document.getElementById('button_i').innerHTML = 'i';
      document.getElementById('button_o').innerHTML = 'o';
      document.getElementById('button_p').innerHTML = 'p';
      document.getElementById('button_a').innerHTML = 'a';
      document.getElementById('button_s').innerHTML = 's';
      document.getElementById('button_d').innerHTML = 'd';
      document.getElementById('button_f').innerHTML = 'f';
      document.getElementById('button_g').innerHTML = 'g';
      document.getElementById('button_h').innerHTML = 'h';
      document.getElementById('button_j').innerHTML = 'j';
      document.getElementById('button_k').innerHTML = 'k';
      document.getElementById('button_l').innerHTML = 'l';
      document.getElementById('button_z').innerHTML = 'z';
      document.getElementById('button_x').innerHTML = 'x';
      document.getElementById('button_c').innerHTML = 'c';
      document.getElementById('button_v').innerHTML = 'v';
      document.getElementById('button_b').innerHTML = 'b';
      document.getElementById('button_n').innerHTML = 'n';
      document.getElementById('button_m').innerHTML = 'm';

      document.getElementById('button_bracketleft').innerHTML = '[';
      document.getElementById('button_bracketright').innerHTML = ']';
      document.getElementById('button_backslash').innerHTML = '\\';
      document.getElementById('button_semicolon').innerHTML = ';';
      document.getElementById('button_quote').innerHTML = '\'';
      document.getElementById('button_comma').innerHTML = ',';
      document.getElementById('button_point').innerHTML = '.';
      document.getElementById('button_slash').innerHTML = '/';
      document.getElementById('button_backtick').innerHTML = '`';
}

function button_push(button) {
// set permanent upper- or lowercase (caps-lock button)
  if (button == 'caps') {
    if (caps == 0) {
      caps = 1;
      set_buttons_upper();
    } else if (caps == 1) {
      caps = 0;
      set_buttons_lower();
    }

// set temporarily upper- or lowercase (shift button)
  } else if (button == 'shift') {
    shift = 1;
    if (caps == 0) {
      caps = 1;
      set_buttons_upper();
    } else if (caps == 1) {
      caps = 0;
      set_buttons_lower();
    }

// post form input (enter button)
  } else if (button == 'enter') {
    //form.myform.submit();
    alert('This function has been disabled');

// switch button target (tab button)
  } else if (button == 'tab') {
    switch_button_target();

// erase last input (backspace button)
  } else if (button == 'backspace') {
    input_length = (document.getElementById(button_target).value.length - 1);
    document.getElementById(button_target).value = document.getElementById(button_target).value.substring(0,input_length);

// write whitespace (space button)
  } else if (button == 'space') {
    document.getElementById(button_target).value = document.getElementById(button_target).value + ' ';

// write button to login field
  } else {
    document.getElementById(button_target).value = document.getElementById(button_target).value + button;

// restore pressed shift key
    if (shift == 1) {
      shift = 0;
      if (caps == 1) {
        caps = 0;
        set_buttons_lower();
      } else if (caps == 0) {
        caps = 1;
        set_buttons_upper();
      }
    }
  }

}
