function fldval(f) {
  var re_email = /^.+@[a-z0-9\-\.]{1,67}\.([a-z]{2,4}|museum)$/i;
  ret = true;
  vmin = (typeof(f.min)!='undefined')?true:false;
  vmax = (typeof(f.max)!='undefined')?true:false;
  switch(f.type) {
    case 'text':
    case 'textarea':
    case 'password':
      if(f.chk) switch(f.chk) {
        case 'email': ret = re_email.test(f.value); break;
        case 'url': ret = (((f.value.substr(0,7).toLowerCase()=='http://')?(f.value.length>=11):(f.value.length>=4)) && (f.value.indexOf('.')>=0)); break;
      }
      if(ret)ret=((vmax)?(f.value.length<=f.max):true) && ((vmin)?(f.value.length>=f.min):true);
      break;
    case 'select-one':
      if(vmin) ret=(f.selectedIndex>=f.min);
      else ret=((f.value!='')&&(f.value!='0')&&(f.value!=0));
      break;
    case 'select-multiple':
      var sel = 0;
      for (var i=1;i<f.options.length;i++) if (f.options[i].selected) sel++;
      ret=((sel>=((vmin)?f.min:1)) && (sel<=((vmax)?f.max:sel)));
      break;
    case 'checkbox':
      break;
    default:
      break;
  }
  return ret;
}

function formCheck(form) {
  var msg='';
  var errNum=0;
  for (i=0; i<form.elements.length; i++) {
    var f = form.elements[i];
    if (f.required!=undefined) {
      if (!fldval(f)) { 
        msg+=((f.desc)?f.desc:f.name)+'\n';
        f.style.color = '#FF0000'; f.style.backgroundColor = '#FFFFCC'; errNum++;
      } else {
        f.style.color = ''; f.style.backgroundColor = '';
      }
    }
  }
  if (errNum>0) {
    alert('The following '+errNum+' fields are not filled or invalid:\n\n' + msg);
    return false;
  } else return true;
}

function chkonfly(o) {
  if (fldval(o)) { o.style.color = ''; o.style.backgroundColor = ''; }
  else { o.style.color = '#FF0000'; }
}

function fixURL(url) {
  var rt_url = url;
  if (rt_url.substr(0,7)!='http://') {
    var rt_pos = rt_url.lastIndexOf('://');
    if (rt_pos>=0) rt_url = rt_url.substr(rt_pos+3);
    if (rt_url.substr(0,6)!='http:/') {
      if (rt_url.substr(0,5)!='http:') {
        if (rt_url.substr(0,4)!='http') {
          rt_url='http://'+rt_url;
        } else { rt_url='http://'+rt_url.substr(4); }
      } else { rt_url='http://'+rt_url.substr(5); }
    } else { rt_url='http://'+rt_url.substr(6); }
  }
  return rt_url;
}

