function register()
{
  var width = (window.innerWidth) ? window.innerWidth : document.body.clientWidth;

  var layer = document.createElement('div');
  layer.style.zIndex = 2;
  layer.id = 'layer';
  layer.style.position = 'absolute';
  layer.style.top = '0px';
  layer.style.left = '0px';
  layer.style.height = document.documentElement.scrollHeight + 'px';
  layer.style.width = width + 'px';
  layer.style.backgroundColor = 'black';
  layer.style.opacity = '0';
  layer.style.filter += ("progid:DXImageTransform.Microsoft.Alpha(opacity=0)");
  document.body.appendChild(layer);  

  var div = document.createElement('div');
  div.style.zIndex = 3;
  div.id = 'box';
  div.style.position = 'absolute';
  div.style.top = '160px';
  div.style.left = (width / 2) - (650 / 2) + 'px'; 
  div.style.height = '280px';
  div.style.width = '650px';
  div.style.backgroundColor = '#6d5331';
  div.style.border = '2px solid white';
  div.style.padding = '5px';
  document.body.appendChild(div);

  var a = document.createElement('a');
  a.innerHTML = '<table width="100%" height="100%" border="0" cellpadding="15" cellspacing="0"><tr><td align="center" valign="middle">' +
    '<form><table width="100%" border="0" cellpadding="5" cellspacing="0">' +
    '<tr><td>User Name:</td><td><input id="user" type="text" size="30" /></td>' +
    '<td align="right"><font color="#e87474"><b><div id="userError"></div></b></font></td></tr>' +
    '<tr><td>Password:</td><td><input id="password" type="password" size="30" /></td>' +
    '<td align="right"><font color="#e87474"><b><div id="passwordError"></div></b></font></td></tr>' +
    '<tr><td>Retype Password:</td><td><input id="retype" type="password" size="30" /></td>' +
    '<td align="right"><font color="#e87474"><b><div id="retypeError"></div></b></font></td></tr>' +
    '<tr><td>E-Mail (optional):</td><td><input id="email" type="text" size="30" /></td><td></td></tr>' +
    '<tr><td>Scripture Deck:</td>' +
    '<td><select id="deck" selected="selected" onchange="deckOptionRegister(this.value)">' +
      '<option value="TopVerses">Top 50 Verses</option>' +
      '<option value="Navigators">The Navigators - Topical Verses</option>' +
      '<option value="AWANA">AWANA (coming soon)</option>' +
      '<option value="Essentials">Six essential verses</option>' +
    '</select></td><td><div id="deckOption">(<a href="http://www.topverses.com" target="_blank">www.topverses.com</a>)</div></td></tr>' +
    '<tr><td colspan="3" align="center"><button type="button" onClick="okRegister()">Register</button> &nbsp; ' +
    '<button type="button" onClick="closeRegister()">Cancel</button> &nbsp;</td></tr>' +
    '<tr><td colspan="3">Once you click Register it may take a while to process. Please be patient.</td></tr></table>' +
    '</form></td></tr></table>';
  div.appendChild(a);

  document['onkeydown'] = onKeyDownRegister;
  document.getElementById('user').focus();
}
function deckOptionRegister(sValue)
{
  if (sValue == 'TopVerses')
    document.getElementById('deckOption').innerHTML = '(<a href="http://www.topverses.com" target="_blank">www.topverses.com</a>)'
  else if (sValue == 'Navigators')
    document.getElementById('deckOption').innerHTML = '(<a href="http://www.navigators.org/us/resources/illustrations/items/Topical%20Memory%20System" target="_blank">www.navigators.org</a>)'
  else if (sValue == 'AWANA')
    document.getElementById('deckOption').innerHTML = '(<a href="http://www.awana.org" target="_blank">www.awana.org</a>)'
  else
    document.getElementById('deckOption').innerHTML = "(6 verses to start with)";
}
function okRegister()
{
  var sAllowable = "abcdefghijklmnopqrstuvwxyz1234567890._-";
  var sUser = document.getElementById('user').value;
  var sPswd = document.getElementById('password').value;
  var sMail = document.getElementById('email').value;
  var sDeck = document.getElementById('deck').value;
  var sError = "";

  document.getElementById('userError').innerHTML = "";
  document.getElementById('passwordError').innerHTML = "";
  document.getElementById('retypeError').innerHTML = "";

  // Validate user name
  if (sUser.length == 0) 
  {
    document.getElementById('userError').innerHTML = "User Name is required &nbsp;";
    return false;
  }
  if (sUser.length > 50) 
  {
    document.getElementById('userError').innerHTML = "User Name is too long &nbsp;";
    return false;
  }
  var i = 0;
  var sTest = sUser.toLowerCase();
  for (i = 0; i < sTest.length; i++)
  {
    if (sAllowable.search(sTest.substr(i, 1)) < 0)
    {
      document.getElementById('userError').innerHTML = "Invalid character (" + sTest.substr(i, 1) + ") in User Name &nbsp;";
      return false;
    }
  }
  var xmlhttp = getXmlHttpObject();
  xmlhttp.open("POST", "allowuser.php?user=" + sUser, false);
  xmlhttp.send(null);
  sError = xmlhttp.responseText;
  if (sError.length > 0) 
  {
    document.getElementById('userError').innerHTML = sError;
    return false;
  }
  // Validate password
  if (sPswd.length == 0) 
  {
    document.getElementById('passwordError').innerHTML = "Password is required &nbsp;";
    return false;
  }
  if (sPswd.length < 6 || sPswd.length > 20) 
  {
    document.getElementById('passwordError').innerHTML = "Password must be between 6 and 20 characters &nbsp;";
    return false;
  }
  // Validate password
  if (sPswd != document.getElementById('retype').value) 
  {
    document.getElementById('retypeError').innerHTML = "Retyped password does not match &nbsp;";
    return false;
  }
  var xmlhttp = getXmlHttpObject();
  xmlhttp.open('POST', 'insertuser.php?user=' + sUser + '&pswd=' + sPswd + '&mail=' + sMail + '&deck=' + sDeck + '&count=2', false);
  xmlhttp.send(null);

  setCookie("userID", sUser, 30);
  closeRegister();
  initUser();
}
function closeRegister()
{
  document['onkeydown'] = onKeyDownMain;
  document.body.removeChild(document.getElementById('layer'));
  document.body.removeChild(document.getElementById('box'));
}
function onKeyDownRegister(e)
{
  var evt = e || window.event;
  if (evt.keyCode == 27)
  {
    closeRegister();
    return false;
  }
  if (evt.keyCode == 13)
  {
    okRegister();
    return false;
  }
  return true;
}