function changeNavButton(x) {
    if (x == 'faq') {
      document.getElementById('tofaq').value = infofromtable();
      document.getElementById('itemstofaq').submit();
    }
    else if (x == 'wtlb') {
      document.getElementById('towtlb').value = infofromtable();
      document.getElementById('wordstoliveby').submit();
    }
    else if (x == 'save') {
      document.getElementById('tosave').value = infofromtable();
      document.getElementById('saveitems').submit();
    }
    else {
       functionBlocksOff();
      if (x == 'pageEnter') {
        setAddOn();
        document.getElementById('leftlabel').innerHTML = '<img src="./img/text_enter.gif" width="220" height="25" alt="" />';
        document.getElementById('addWell').style.display="block";
        document.getElementById('enterpic1').src ="./img/nav_entertxt_d.gif";
        document.getElementById('enterpic2').src ="./img/nav_entertxt_d.gif";
      }
      else if (x == 'edit') {
        document.getElementById('leftlabel').innerHTML = '<img src="./img/label_itemEdit.gif" width="208" height="25" alt="" />';
        document.getElementById('editWell').style.display="block";
      }
      else if (x == 'pageMem') {
        document.getElementById('leftlabel').innerHTML = '<img src="./img/label_memorize.gif" width="98" height="25" alt="" />';
        fetchItem(document.getElementById('currentitemNum').value);
        document.getElementById('memorize').style.display="block";
        resetBlanks();
        changeTab('word');
        hideShow('show');
        processText(0, 'W');
        document.getElementById('mempic').src ="./img/nav_mem_d.gif";
      }
      else if (x == 'pageFlash') {
        fc_reset();
        flashcard('q');
        document.getElementById('leftlabel').innerHTML = '<img src="./img/label_flashCard.gif" width="98" height="25" alt="" />';
        document.getElementById('flashpic').src ="./img/nav_flash_d.gif";
      }
      else if (x == 'pageDisplay') {
        setDisplayAllOn();
        document.getElementById('leftlabel').innerHTML = '<img src="./img/label_displayAll.gif" width="148" height="25" alt="" />';
        document.getElementById('displayWell').style.display="block";
        document.getElementById('displaypic').src ="./img/nav_display_d.gif";
      }
      clearFlash();
    }
}

function functionBlocksOff() {
  document.getElementById('displayWell').style.display="none";
  document.getElementById('addWell').style.display="none";
  document.getElementById('flashboxholder').style.display="none";
  document.getElementById('memorize').style.display="none";
  document.getElementById('editWell').style.display="none";
  document.getElementById('enterpic1').src ="img/t.gif";
  document.getElementById('enterpic2').src ="img/t.gif";
  document.getElementById('mempic').src ="img/t.gif";
  document.getElementById('flashpic').src ="img/t.gif";
  document.getElementById('displaypic').src ="img/t.gif";
  document.getElementById('wordtag').style.display="none";
}

function addMode() {
  var mode = document.getElementById('radiovalue').value;
  if (mode == 'standard') {
    insertItem();
  }
  if (mode == 'bulkt') {
    insertBulkt();
  }
  if (mode == 'bulkh') {
    insertBulkh();
  }
}

function insertItem() {
  var nRows = document.getElementById('datatable').getElementsByTagName('tr');
  var rowCount = (nRows.length);
  var txt=document.getElementById('inputtext').value;
  var label=document.getElementById('itemlabel').value;
  if (label == '') { label = 'unnamed'; }  
  addToTables(rowCount, label, txt);
  document.getElementById('inputtext').value='';
  document.getElementById('itemlabel').value='';
  showButtons('on_d');
}

function insertBulkt() {
  var nRows = document.getElementById('datatable').getElementsByTagName('tr');
  var rowCount = (nRows.length);
  var txt=document.getElementById('inputtext').value;
  var anarray = new Array();
  anarray = txt.split('\n');
  var numToAdd = anarray.length;
  for (i=0; i<=numToAdd; i++) {
    var rowNum = rowCount + i;
    var lineArray = new Array();
    lineArray = anarray[i].split('\t');
    addToTables(rowNum, lineArray[0], lineArray[1]);
    if (i+1 == numToAdd) {
        showButtons('on_d');
        document.getElementById('inputtext').value='';
        document.getElementById('itemlabel').value='';
    }
  }
}

function insertBulkh() {
  var nRows = document.getElementById('datatable').getElementsByTagName('tr');
  var rowCount = (nRows.length);
  var txt=document.getElementById('inputtext').value;
  var anarray = new Array();
  anarray = txt.split('\n');
  var numToAdd = anarray.length;
  var first = 'on';
  var count = 0;
  var label = '';
  var info = '';
  var rowNum = '';

  for (i=0; i<=numToAdd; i++) {
    if (anarray[i].match(/^#/)) { 
      if (first == 'on') {
        var label = anarray[i].replace(/^#/,'');
        first = 'off';
      }
      else {
        rowNum = rowCount + count;
        addToTables(rowNum, label, info);
        count++;
        label = anarray[i].replace(/^#/,'');
        info = '';
      }
    }
    else {
      var info = info + ' ' + anarray[i];
      if (i+1 == numToAdd) {
        rowNum = rowCount + count;
        addToTables(rowNum, label, info);
        showButtons('on_d');
        document.getElementById('inputtext').value='';
        document.getElementById('itemlabel').value='';
      }
    }
  }

}


function addToTables(rowNum, label, info) {
  var lt=document.getElementById('listTable').insertRow(rowNum);
  var lt0=lt.insertCell(0);
  var lt1=lt.insertCell(1);
  var lt2=lt.insertCell(2);
  var lt3=lt.insertCell(3);
  var lt4=lt.insertCell(4);
  lt0.innerHTML = '&nbsp;';
  lt1.innerHTML = '<span class="fcresult" id="pf' + rowNum + '"></span>';
  lt2.innerHTML = '<a href="JavaScript:void(0);" class="edlist" id="fetch" onclick="changeNavButton(\'edit\'), editItem(this), setCurrentItemNum(this, \'t\')" value="" title="edit">edit</a>';
  lt3.innerHTML = '<a href="JavaScript:void(0);" onclick="deleteRow(this)" class="delete" title="delete">x</a>';
  lt4.innerHTML = '<a href="JavaScript:void(0);" class="list" onclick="resetBlanks(), setCurrentItemNum(this, \'t\'), changeNavButton(\'pageMem\')" title="memorize">' + label + '</a>';

  var dt=document.getElementById('datatable').insertRow(rowNum);
  var dt0=dt.insertCell(0);
  var dt1=dt.insertCell(1);
  var dt2=dt.insertCell(2);
  dt0.innerHTML="n";
  dt1.innerHTML=label;
  dt2.innerHTML=info;
  setCurrentItemNum(rowNum, 'n')
}

function changeItem() {
  var label=document.getElementById('edititemlabel').value;
  var txt=document.getElementById('editinputtext').value;
  var num=document.getElementById('editidnum').value;
  document.getElementById('listTable').rows[num].cells[4].innerHTML = '<a href="JavaScript:void(0);" class="list" onclick="setCurrentItemNum(this, \'t\'), changeNavButton(\'pageMem\')" title="memorize">' + label + '</a>';
  document.getElementById('datatable').rows[num].cells[1].innerHTML = label;  
  document.getElementById('datatable').rows[num].cells[2].innerHTML = txt;  
  document.getElementById('edititemlabel').value= '';
  document.getElementById('editinputtext').value= ''
}


function deleteRow(r) {
  var prev = document.getElementById('previousitemNum').value;
  var pltcell =  document.getElementById('listTable').rows[prev].cells;
  pltcell[0].innerHTML='&nbsp;';
  document.getElementById('currentitemNum').value = 0;
  document.getElementById('previousitemNum').value = 0;
  var i=r.parentNode.parentNode.rowIndex;
  document.getElementById('listTable').deleteRow(i);
  document.getElementById('datatable').deleteRow(i);
  var nRows = document.getElementById('datatable').getElementsByTagName('tr');
  var rowCount = (nRows.length);
  changeNavButton('pageEnter');
  if (rowCount < 1) { 
    showButtons(); 
  }
}

function deleteAll() {
  var r=confirm("Are you sure you want to delete all entries?");
  if (r==true) {
    var nRows = document.getElementById('datatable').getElementsByTagName('tr');
    var rowCount = (nRows.length);
    rowCount --;
    var i=0;
    for (i=0; i<=rowCount; i++) {
      document.getElementById('listTable').deleteRow(0);
      document.getElementById('datatable').deleteRow(0);
    }
    showButtons();
    changeNavButton('pageEnter');
  }
}

function popUp(URL) {
  day = new Date();
  id = day.getTime();
  eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=355,height=250,left = 552.5,top = 312.5');");
}

function instruct(x) {
  var l =  document.getElementById('addlabel').style;
  var ins = document.getElementById('addinstructions');
  var mode = document.getElementById('radiovalue');
  switch(x) {
    case 's': ins.innerHTML = 'Enter label and item, press <i>add</i>, below'; 
      l.display="inline"; 
      mode.value = "standard"; 
      break;
    case 't': ins.innerHTML = 'One label and item per line, separated by a tab. Press <i>add</i>, below';
      l.display="none";
      mode.value = "bulkt"; 
      break;
    case 'h': ins.innerHTML = 'Label preceeded by #, item on next lines. Repeat as needed. Press <i>add</i>, below'; 
      l.display="none"; 
      mode.value = "bulkh"; 
      break;
    default:  ins.innerHTML = 'Enter label and text, then press <i>add</i>, below'; 
      l.display="none"; 
      mode.value = "standard"; 
      break;
  }
}

function resetBlanks() {
  document.getElementById('percentRemove').value='0';
  document.getElementById('itemsBlanked').value='0';
}

function hideShow(x) {
  if (x == 'Hide') {
    document.getElementById('out').style.color="white";
    document.getElementById('hidebutton').style.display="none";
    document.getElementById('showbutton').style.display="inline";    
  }
  else {
    document.getElementById('out').style.color="#666666";
    document.getElementById('showbutton').style.display="none";    
    document.getElementById('hidebutton').style.display="inline";
  }
}

function infofromtable() {
  var fl=document.getElementById('datatable');
  var iRowCount = fl.rows.length;
  var r = 0;
  var brk = '';
  var x = '';
  while (r < iRowCount) {
    if (r > 0) { brk = "_BrK_"; }
    if (brk) { x = x + brk; }
    var head = fl.rows[r].cells[1].innerHTML;
    head.replace(/<br>/,'');
    head.replace(/<br \/>/,''); 
    var item = fl.rows[r].cells[2].innerHTML;
    item = item.replace(/\<br>/g,'');
    item = item.replace(/<br \/>/g,'');  
    x = x + fl.rows[r].cells[0].innerHTML + '_IBrK_' + head + '_IBrK_' + item;
    r++;
  }
  return x;
}

var __isMSIE = navigator.userAgent.match(/MSIE/i);
function flashcard(qa) {
  functionBlocksOff();
  document.getElementById('fcretry').style.display="none";
  document.getElementById('flashboxholder').style.display="block";
  var r = 0;
  setCurrentItemNum(r, 'n');
  var fl=document.getElementById('datatable');
  var len = fl.rows.length;
  while (r < len) {
    var x=fl.rows[r].cells[0].innerHTML;
    setCurrentItemNum(r, 'n');
    if ((qa == 'q') && (x == 'n')) {
      document.getElementById('flashbox').innerHTML=fl.rows[r].cells[1].innerHTML;
      document.getElementById('datatable').rows[r].cells[0].innerHTML='c';
      document.getElementById('showanswer').style.display="block";
      document.getElementById('answerr').style.display="none";
      document.getElementById('answerw').style.display="none";
      var end='y';
    }
    if ((qa == 'a') && (x == 'c')) {
      var ans=fl.rows[r].cells[1].innerHTML + '<br />' + fl.rows[r].cells[2].innerHTML;
      document.getElementById('flashbox').innerHTML=ans;
      document.getElementById('showanswer').style.display="none";
      document.getElementById('answerr').style.display="inline";
      document.getElementById('answerw').style.display="inline";
      var end='y';
    }
    
    if ((qa == 'p') && (x == 'c')) {
      var character;
      if (__isMSIE) {
        character = '<span class="fcresult" style="color:green; font-family:arial, san-serif; font-size:9pt">ok</span>';
      }
      else {
        character = '<span class="fcresult" style="color:green">&#10004;</span>';
      }
      fl.rows[r].cells[0].innerHTML='p';
      document.getElementById('listTable').rows[r].cells[1].innerHTML=character;
      document.getElementById('flashnumright').value = parseInt(document.getElementById('flashnumright').value)+1;
      var end='yn';
    }
    
    if ((qa == 'f') && (x == 'c')) {
      var character;
      if (__isMSIE) {
        character = '<span class="fcresult" style="color:red; font-family:arial, san-serif; font-size:9pt">no</span>';
      }
      else {
        character = '<span class="fcresult" style="color:red">&#10007;</span>';
      }
      fl.rows[r].cells[0].innerHTML='f';
      document.getElementById('listTable').rows[r].cells[1].innerHTML=character;
      document.getElementById('flashnumwrong').value = parseInt(document.getElementById('flashnumwrong').value)+1;
      document.getElementById('flashresult').value = 'f';
      var end='yn';
    }
    if (end) {
      if (end=='yn') {
        flashcard('q');
      }
      break;
    }
    if (r == len-1) {
      document.getElementById('showanswer').style.display="none";
      document.getElementById('answerr').style.display="none";
      document.getElementById('answerw').style.display="none";
      var right = parseInt(document.getElementById('flashnumright').value);
      var wrong = parseInt(document.getElementById('flashnumwrong').value);
      var result = 'You got ' + right + ' right and ' + wrong + ' wrong\.';
      if (wrong > 0) {
        result = result + ' Would you like to retry the ones you missed?'
        document.getElementById('flashbox').innerHTML=result;
        document.getElementById('fcretry').style.display="block";
      }
      else {
        result = result + '<br /><br />Good work\!';
        document.getElementById('flashbox').innerHTML=result;
      }
    }
    r++;
  }
}

function fc_reset() {
  var r = 0;
  document.getElementById('fcretry').style.display="none";
  document.getElementById('flashresult').value = '';
  document.getElementById('flashnumright').value = '0';
  document.getElementById('flashnumwrong').value = '0';
  var fl=document.getElementById('datatable');
  var len = fl.rows.length;
  while (r < len) {
    fl.rows[r].cells[0].innerHTML='n';
    r++;
  }
}

function fc_retry() {
  document.getElementById('flashresult').value = '';
  document.getElementById('flashnumright').value = '0';
  document.getElementById('flashnumwrong').value = '0';
  var r = 0;
  var fl=document.getElementById('datatable');
  var len = fl.rows.length;
  while (r < len) {
    if (fl.rows[r].cells[0].innerHTML=='f') {
      fl.rows[r].cells[0].innerHTML='n';
    }
    r++;
  }
}

function clearFlash() {
  var fl=document.getElementById('datatable');
  var iRowCount = fl.rows.length;
  var r = 0;
  while (r < iRowCount) {
    document.getElementById('listTable').rows[r].cells[1].innerHTML='&nbsp;';
    r++;
  }
}

function showButtons(x) {
  if (x) {
    document.getElementById('nav_empty').style.display="none";
    document.getElementById('nav_nonempty').style.display="block";
    document.getElementById('navRt_empty').style.display="none";
    document.getElementById('navRt_nonempty').style.display="block";
    document.getElementById('deleteall').style.display="block";
  }
  else {
    document.getElementById('nav_empty').style.display="block";
    document.getElementById('nav_nonempty').style.display="none";
    document.getElementById('navRt_empty').style.display="block";
    document.getElementById('navRt_nonempty').style.display="none";
    document.getElementById('deleteall').style.display="none";
  }
}

function fetchItem(x) {
  // put text in currentitem field
  var fl=document.getElementById('datatable');
  document.getElementById('currentitem').value = fl.rows[x].cells[2].innerHTML;
}

function editItem(x) {
  // put label in label field and text in inputtext field
  var i=x.parentNode.parentNode.rowIndex;
  var fl=document.getElementById('datatable');
  document.getElementById('edititemlabel').value = fl.rows[i].cells[1].innerHTML;
  document.getElementById('editinputtext').value = fl.rows[i].cells[2].innerHTML;
  document.getElementById('editidnum').value=i;
}


function setCurrentItemNum(input, mode) {   // mode indicates whether line number ('n') is given (in 'input') or should be calculated
  if (mode == 'n') { 
    x = input;
  }
  else if (mode == 'blank') { 
    x = 'skip';
  }
  else {
    var x=input.parentNode.parentNode.rowIndex;
  }
  if (x != 'skip') {
    var prev = document.getElementById('previousitemNum').value;
    var ltcell =  document.getElementById('listTable').rows[x].cells;
    ltcell[0].innerHTML='&rarr;';
    if (x != prev) {
      var pltcell =  document.getElementById('listTable').rows[prev].cells;
      pltcell[0].innerHTML='&nbsp;';
    }
    document.getElementById('currentitemNum').value = x;
    document.getElementById('previousitemNum').value =   document.getElementById('currentitemNum').value;
  }
}


function setAddOn() {
  document.getElementById('remember').style.display="block";
  document.getElementById('itemlabel').value="";
  var fl=document.getElementById('datatable');
  var rowCount = fl.rows.length;
  if (rowCount > 0) {
   document.getElementById('inputtext').value="";
  }
  document.getElementById('percentRemove').value=0;
}


function setDisplayAllOn() {
  var nRows = document.getElementById('datatable').getElementsByTagName('tr');
  var rowCount = nRows.length-1;
  var x = '';
  var fl=document.getElementById('datatable');
  for (i=0; i<=rowCount; i++) {
    var count = i + 1;
    x = x + '<p><b>' + count + ') ' + fl.rows[i].cells[1].innerHTML + '</b><br />' + fl.rows[i].cells[2].innerHTML + '</p>';
  }
  document.getElementById('displayall').innerHTML=x;
}


function popHide() {
  var element=document.getElementById('wordtag');
  element.style.display="none";
  element.innerHTML='';
}

function popLetterShow(id) {
  r = stripNum(id);
  document.getElementById('wordtag').innerHTML=r[0];
  popSettings(id);
  document.getElementById('word').value=r[1];
}

function popWordShow(id) {
  r = stripNum(id);
  document.getElementById('wordtag').innerHTML=r[1];
  popSettings(id);
}


var __isFireFox = navigator.userAgent.match(/firefox/i);
var __isChrome = navigator.userAgent.match(/chrome/i);

function popSettings(element) {
  var resx = 0; 
  var resy = 0;
  if (element !== null) {
    resx = document.getElementById(element).offsetLeft; 
    resy = document.getElementById(element).offsetTop; 
    var offsetParent = document.getElementById(element).offsetParent;
    var parentNode = document.getElementById(element).parentNode;
    while (offsetParent !== null) {
      resx += offsetParent.offsetLeft;
      resy += offsetParent.offsetTop;
      if (offsetParent != document.body && offsetParent != document.documentElement) {
        resx -= offsetParent.scrollLeft;
        resy -= offsetParent.scrollTop;
      }
      //next lines are necessary to support FireFox problem with offsetParent
      if (__isFireFox) {
        while (offsetParent != parentNode && parentNode !== null) {
          resx -= parentNode.scrollLeft;
          resy -= parentNode.scrollTop;
          parentNode = parentNode.parentNode;
        }    
      }
      parentNode = offsetParent.parentNode;
      offsetParent = offsetParent.offsetParent;
    }
  }
  
  var left = resx + 'px';
  var top  = resy + 'px';
  var oElement=document.getElementById('wordtag');
  oElement.style.left= left;
  oElement.style.top=top;
  if (__isChrome) {
    oElement.style.top= resy-2;
  }
  else {
    oElement.style.top= resy;
  }
  oElement.style.display="block";
}


 
function processText(increment, letterorword) { 
  var itemsBlanked = document.getElementById('itemsBlanked').value;
  itemsBlanked = 1 * itemsBlanked;
  var percent = document.getElementById('percentRemove').value;
  percent = 1* percent;
  var msg = document.getElementById('currentitem').value;
  msg = msg.replace(new RegExp( "<br>\n", "g" ), " <br> ");   
  msg = msg.replace(new RegExp( "<br \/>\n", "g" ), " <br> "); 
  msg = msg.replace(new RegExp( "\n", "g" ), " <br> ");  
  msg = msg.replace(new RegExp( '-', "g" ), ' <-> ');
  msg = msg.replace(new RegExp( " +", "g" ), " ");
  anarray = msg.split(" ");
  var itemsInArray = anarray.length;
  percent=calcPercent(percent, increment);
  if (percent > 0) {
      var numberofwordstoblank = Math.ceil(itemsInArray * (percent / 100));
      if ((increment > 0) && (numberofwordstoblank <= itemsBlanked) && (itemsInArray > itemsBlanked)) {
          numberofwordstoblank = itemsBlanked+1;
      }
      if ((increment < 0) && (numberofwordstoblank >= itemsBlanked) && (itemsBlanked > 0)) {
          numberofwordstoblank = itemsBlanked-1;
      }
      document.getElementById('itemsBlanked').value = numberofwordstoblank;
      percent = (numberofwordstoblank/itemsInArray)*100;
  }
  else {
      var numberofwordstoblank = 0;
      document.getElementById('itemsBlanked').value = 0;
  }
  wordstoBlank=randomNum(itemsInArray,numberofwordstoblank);
  var reg = new RegExp("<br>");
  var reg1 = new RegExp("[A-Za-z]");
  i = 0;
  var spanid;

  while (i < itemsInArray) {
      spanid = anarray[i];
      spanid = spanid.replace( /^[\W]*([\w]*'*[\w]*)[\W]*$/ , "$1");

       // if a break mark, leave it alone
      if (reg.test(anarray[i]) == true) {  
          i++;
          continue;
      }
      // if it does not have letters (such as a dash -- ), leave it alone
      if (reg1.test(anarray[i]) == false) {                           
          i++;
         continue;
      }
      var punc = getPunctuation(anarray[i]);
      if (letterorword == 'L') {
          anarray[i] = anarray[i].replace(/([\w])[\w]*[\W]*[\w]/, "$1");
          // Show blanks
          if (wordstoBlank[i]) {
            var replace = punc[0] + '<span id="' + i + '~_~' + spanid + '" onMouseOver="popLetterShow(this.id)">_</span>' + punc[1];
          }
          // Show non-blanks
          else {
           var replace = '<span id="' + i + '~_~' + spanid + '" onMouseOver="popLetterShow(this.id)">' + anarray[i] + '</span>';
          }
          anarray[i] = replace;
      }
      // For word display, shows blanks
      else {
          if (wordstoBlank[i]) {
              var replace = punc[0] + '<span id="' + i + '~_~' + spanid + '" \
              onMouseOver="popLetterShow(this.id)" \
              >_</span>' + punc[1];
              anarray[i] = replace; 
          }
      }
      i++;
  }
  var tojoin = anarray.join(' ');
  tojoin = tojoin.replace(new RegExp("<br>", "g"), '<br />');
  tojoin = tojoin.replace(new RegExp(" <-> ", "g"), '-');
  document.getElementById('out').innerHTML=tojoin;
  document.getElementById('percentRemove').value=percent;
  
  if (percent > 0) {
    document.getElementById('lotsfewergray').style.display="none";
    document.getElementById('fewergray').style.display="none";
    document.getElementById('lotsfewerunderlines').style.display="inline";
    document.getElementById('fewerunderlines').style.display="inline";
  }
  else {
    document.getElementById('lotsfewerunderlines').style.display="none";
    document.getElementById('fewerunderlines').style.display="none";
    document.getElementById('lotsfewergray').style.display="inline";
    document.getElementById('fewergray').style.display="inline";
  }
  
  document.getElementById('wordletter').value=letterorword;
}

function randomNum(arraylen, numtoblank) {
  var results = new Array();
  if (numtoblank == 0) { results.push(''); return results; }
  else {
    var x = 0;
    while (x < numtoblank) {
      var randomnumber= Math.floor(arraylen * Math.random());
      if (results[randomnumber]) {
      } else {
        results[randomnumber] = 'num';
        x++;
      }
    }
  }
  return results;
}

function calcPercent(percent, increment) {
  percent = percent * 1;
  increment = increment * 1;
  percent = percent + increment;
  if (percent < 0) { percent = 0; }
  if (percent > 100) { percent = 100; }
  return percent;
}

function getPunctuation(word) {
  if ( (new RegExp(/^\W+/).test(word)) || (new RegExp(/\W+$/).test(word)) ) {
    if (new RegExp(/^\W+\w+\W$/).test(word)) {
       begin = word.replace(/[\w]*\W$/, '');
       end   = word.replace(/^\W[\w]*/, '');
    }
    else if (new RegExp(/^\W+\w+$/).test(word)) {
       begin = word.replace(/[\w]*$/, '');
       end = '';
    }
    else  {
       begin = '';
       end   = word.replace(/^[\w]*/, '');
    }
  } 
  else {
    begin = '';
    end = '';
  }
  var result = new Array(begin,end);
  return result;
}

function showWordFromLetter(id) {
  document.getElementById('wordtag').style.display="block";
  document.getElementById('wordtag').innerHTML=document.getElementById('word').value
  document.getElementById('word').value='';
}

function stripNum(x)  {
  var n   = x.replace(/^\d+?~_~[^A-Za-z0-9]*/, '');
  n = n.replace(/[^A-Za-z0-9]+$/, '');
  fl = n.charAt(0);
  var result = new Array(fl,n);
  return result;
}


function changeTab(x) {
  if (x == 'letters') { 
    document.getElementById('controlbuttons').style.backgroundColor = '#d39930';
  }
  else {
    document.getElementById('controlbuttons').style.backgroundColor = '#e3e38d';
  }
}


// for wtlb and faq pages

function compile() {
  var nRows = document.getElementById('datatable').getElementsByTagName('tr');
  var rowCount = (nRows.length);
  var x=document.getElementById("listForm");
  var cnt=0;
  for (var i=0;i<x.length;i++) {
    ck = i + 'x';
    if (document.getElementById(ck).checked==true) {
      var memitem = x.elements[i].value;
      anarray = memitem.split('_IBrK_');
      rowNum = rowCount+cnt;
      addToDataTable(rowNum, anarray[0], anarray[1]);
      cnt++
    }
  }
  alert('Memory items added');
  showButtons('on');
}


function addToDataTable(rowNum, label, info) {
  var dt=document.getElementById('datatable').insertRow(rowNum);
  var dt0=dt.insertCell(0);
  var dt1=dt.insertCell(1);
  var dt2=dt.insertCell(2);
  dt0.innerHTML="n";
  dt1.innerHTML=label;
  dt2.innerHTML=info;
}


function switchToMode(x) {
  if (x == 'save') {
    document.getElementById('tosave').value = infofromtable();
    document.getElementById('saveitems').submit();
  }
  else if (x == 'faq') {
    document.getElementById('tofaq').value = infofromtable();
    document.getElementById('itemstofaq').submit();
  }
  else if (x == 'wtlb') {
    document.getElementById('towtlb').value = infofromtable();
    document.getElementById('wordstoliveby').submit();
  }
  else if (x == 'memorize') {
    document.getElementById('allitems').value = infofromtable();
    document.getElementById('mode').value='pageMem';
    document.getElementById('submitdata').submit();
  }
  else if (x == 'flashcard') {
    document.getElementById('allitems').value = infofromtable();
    document.getElementById('mode').value='pageFlash';
    document.getElementById('submitdata').submit();
  }
  else if (x == 'displayall') {
    document.getElementById('allitems').value = infofromtable();
    document.getElementById('mode').value='pageDisplay';
    document.getElementById('submitdata').submit();
  }
  else {
    document.getElementById('allitems').value = infofromtable();
    document.getElementById('mode').value='pageEnter';
    document.getElementById('submitdata').submit();
  }
}

