// JavaScript Document

var characters = new Array('!', '"', '#', '$', '%', '&', '`', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '\'', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~');

var alphanumchars = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

var keyval = '';
var keysize = -1;

function random_character(array) {
 return array[Math.floor(Math.random() * array.length)];
}

function generate(f) {

 keyval = '';
 f = document.getElementById("keygen");

 for (i=0; i < 4; i++) {
  if (f.r_size[i].checked) {
   keysize = f.r_size[i].value;
  }
 }

 if (keysize == "custom") {
  if (f.r_custom_size.value != '') {
   keysize = f.r_custom_size.value;
  } else {
   alert("If you choose a custom size, you must enter a value!!");
   return;
  }
 }

 for (i = 0; i < keysize; i++) {
  keyval += random_character(characters);
 }
 
 f.r_key.value = keyval;

 return;
}
