function isAlpha(aChar)
{
  return (((aChar >= 'a') && (aChar <= 'z')) ||
          ((aChar >= 'a') && (aChar <= 'z')));
}

function isDigit(aChar)
{
  return ((aChar >= '0') && (aChar <= '9'));
}

function removeLast(aStr)
{
  localS=aStr.split("");
  localS.pop();
  return localS.join("");
}

function removeFirst(aStr)
{
  localS=aStr.split("");
  localS.shift();
  return localS.join("");
}

function toSentence(word)
{
  if (word) {
    firstchar = word.charAt(0);
    remainder = removeFirst(word);
    if (firstchar) 
      firstchar = firstchar.toUpperCase();
    return (firstchar+remainder);
  }
  else 
    return word;
}

function writeLn(something)
{
  document.writeln(something+"<br>\n");
}

function intRandLim(lim1, lim2)
{
  x=Math.random();
  y=lim1 + Math.round((lim2-lim1)*x);
  return y;
}

function decode_url() 
{
  var var_array = new Array();
  x=document.URL.split("?");
  loc=x[0];
  if (x.length > 1) {
    x=x[1];
    y=x.split("&");
    hist_new="";
    for (i in y) {
      var_name=decode_left(y[i]);
      value=decode_right(y[i]);
      var_array[var_name] = value;
    }
  }
  return var_array;
}

function write_question(dict, text, entry, options)
{
  values = dict[entry];
  if (values != null) {
    writeLn(text);
    values = values.split("$");
    var len = values.length;
    var total = 0;
    for (val in values) {
      total = total + eval(val);
    }
    if (total > 0) {
      writeLn("<table>");
      for (i=0; i<len; i=i+1) {
        perc = eval(val) / total;
        writeLn("<tr><td>" + options[i]);
        writeLn("<td>"+perc+"\%");
      }
      writeLn("</table>");
    }
  }
}

function rand_answer(rand_array)
{
  var leng=rand_array.length;
  var i=intRandLim(0,leng-1);
  return rand_array[i];
}

function in_array(array, target) 
{
  for (var i in array)
    if (array[i] == target)
      return i;
  return -1;
}
