function checkField(id, regexp, oid) {
  ok = true;
  var ele = document.getElementById(id);
  if (ele) {
    if (ele.type == 'password' || ele.type == 'text' || ele.type == 'textarea' || ele.type == 'select-one') {
      if (!regexp.test(ele.value)) {
        ok = false;
        if (oid) {
          var nele = document.getElementById(oid);
          if (nele) {
            if (regexp.test(nele.value)) {
              ok = true;
            }
          }
        }
        if (!ok) {
          var err = document.getElementById(id+'_err');
          if (err) {
            err.style.display = '';
          }
          try {
            ele.select();
          } catch (e) {}
        }
      }
    } else if (ele.type == 'radio') {
      if (!ele.checked) {
        for (var i=0;;i++) {
          var r = document.getElementById(ele.id + '_' + i);
          if (!r) {
            break;
          } else {
            if (r.checked) {
              ok = true;
              break;
            } else ok = false;
          }
        }
      }
      if (!ok) {
        var err = document.getElementById(id+'_err');
        if (err) {
          err.style.display = '';
        }
        ele.select();
      }
    }
    if (ok) {
      var err = document.getElementById(id+'_err');
      if (err) {
        err.style.display = 'none';
      }
    }
  }
  return ok;
}

function chkRadio(id, val) {
  var g = document.getElementById(id);
  if (g.value == val) g.checked = true;
  else {
    for (var i=0;g != null;i++) {
      g = document.getElementById(id + '_' + i);
      if (g.value == val) {
        g.checked = true;
        break;
      }
    }
  }
}

function reloadRandomImg() {
  var img = document.getElementById('randomimg');
  if (img) {
    var imgsrc = img.src;
    var date = new Date();
    var idx = imgsrc.indexOf('?');
    if (idx > 0) {
      imgsrc = imgsrc.substring(0, idx);
    }
    imgsrc = imgsrc+'?'+date.getTime();
    img.src = imgsrc;
  }
}

function chkfunc(results, form) {
  var res = results.getElementsByTagName('results');
  var restxt = res[1].firstChild.nodeValue;
  if (restxt=='true') {
    form.submit();
  } else {
    var rimg = document.getElementById('rimg_err');
    if (rimg) {
      rimg.style.display = '';
    }
  }
}

function chkRandomImg(form) {
  var data = 'rimg='+form.rimg.value;
  $.ajax({
    type:"GET",
    url:'chkrimg.html?'+'rimg='+form.rimg.value,
    async:false,
    success: function(results, status) {
      chkfunc(results, form);
    }
  });
  return false;
}

function removeClass(obj, cn) {
  if (obj == null) return;
  var cName = obj.className;
  var idx = cName.indexOf(cn);
  if (idx > 0) {
    cName = cName.substring(0, idx) + ' ' + cName.substring(idx + cn.length);
    obj.className = cName;
  }
}

