var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
  var keyCode = (isNN) ? e.which : e.keyCode; 
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].focus();
  }

  function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
    if(arr[index] == ele)
    found = true;
    else
    index++;
    return found;
  }

  function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
    return index;
  }
  return true;
}

function trim(str) {
  return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function errMsg(field,str,em) {
  var em = document.getElementById('errmsg');
  em.innerHTML = '<span class="errmsg">** '+str+'</span>';
  field.focus();
  field.select();
  return false;
}

function isBlank(f) {
  return (trim(f.value) == "");
}

function goodZip(z) {
  var zipRegEx = /\d{5}/;
  return ((z.value.search(zipRegEx) != -1) && (z.value.length == 5))
}

function goodPhone(ac,p1,p2) {
  var phone = ac.value+'-'+p1.value+'-'+p2.value;
  var phoneRegEx = /\d{3}\-\d{3}\-\d{4}/;
  return ((phone.search(phoneRegEx) != -1) && (phone.length == 12))
}

function goodEmail(em) {
  var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
  return (em.value.search(emailRegEx) != -1)
}

function goodPW(pw1,pw2) {
  return ((pw1.value != '') && (pw2.value != '') && (pw1.value == pw2.value))
}
