var keyword= new Object;

function isblank(s) {
  for(var i=0; i< s.length; i++) {
    var c= s.charAt(i);
    if ((c != " ") && (c != "\n") && (c != "\t")) return false;
  }
  return true;
}

function checkchVal(s) {
  for (j=0; j<s.length; j++) {
    if (s[j].checked) return 'good';
  }
  return 'bad';
}

function checkselVal(s) {
  if (s.selectedIndex >0) return true;
  return false;
}
function checkradVal(s) {
  if (s.checked) return true;
  return false;
}

function checkEmail(s) {
  if (s == '') return '';
  if (s.indexOf(';')>0 || s.indexOf(' ')>0 || s.indexOf('@')!= s.lastIndexOf('@')){
     return "\n\t-invalid E-mail address (only one address is allowed)";
  }
  if (s.lastIndexOf('.') > (s.length-3)) {
     return "\n\t-invalid E-mail address";
  }
  if (s.indexOf(',')>0 || s.indexOf('@')<2 || s.lastIndexOf('.')<3) {
     return "\n\t-invalid E-mail address";
  }
  return '';
}

function checkSC(s) {
  var c= s.charAt(0);
  var cc= c.toUpperCase();
  if (c != cc ) {
    return false;
  }
  return true;
}

function verify(f) {
  var msg;
  var s_msg= "";
  var errors= new Array();
  var errorsdetected=false;
  for (var i=0; i<f.length; i++) {
    var e = f.elements[i];
    if (e.name.indexOf('email')>=0) errors['email']= checkEmail(e.value);
    if (e.type=="button" || e.type=="submit") continue;
    
    var optioneel= f[e.name].optioneel;
    var thelabel= f[e.name].label;
    var thename = e.name;
    if (optioneel > 2 && e.type=="radio" && checkchVal(f[e.name]) != 'good') {
        errors[thename] = "\n\t-" + thelabel + " is required";
        errorsdetected=true;
        continue;
    }
    if (optioneel > 2 && e.type=="checkbox" && checkchVal(f[e.name]) != 'good') {
        errors[thename] = "\n\t-" + thelabel + " is required";
        errorsdetected=true;
        continue;
    }
    if (optioneel > 2 && e.type=="select-one" && e.selectedIndex <1) {
        errors[thename] = "\n\t-" + thelabel + " is required";
        errorsdetected=true;
        continue;
    }
    if (e.type=="hidden" || e.type=="text" || e.type=="textarea") {
      if (optioneel > 2 && (e.value == null || e.value=="" || isblank(e.value))) {
        errors[e.name] = "\n\t-" + e.label + " is required";
        errorsdetected=true;
        continue;
      }
      if (!checkSC(e.value) && (optioneel==1 || optioneel==4)) {
        errors[e.name] = "\n\t-" + e.label + " is sentence case";
        s_msg= "Sentence case: e.g. John Smith and not john smith";
        errorsdetected=true;
        continue;
      }
      if ((optioneel==2 || optioneel==5)) {
        e.value=e.value.toUpperCase();
      }
    }
  }
  if (!errorsdetected) return true;
  msg = "_______________________________________________\n\n";
  msg+= " The form could not be submitted due to the ";
  msg+= " following errors. \n";
  msg+= " Please correct these errors and re-submit.\n";
  msg+= "_______________________________________________\n";
  for (err in errors) {
    msg+= errors[err];
  }
  if (s_msg) {
    msg+= "\n_______________________________________________\n";
    msg+= s_msg;
  }
  alert(msg);
  return false;
}

var donotsend= 0;
var dontsend= new Array;

function countwords2(e, maxitems, itype, n) {
  var string= e.value;
  var items=string.length;
  if (itype == 'words') {
    a= string.split("\n");
    b= a.join(' ');
    c= b.split(' ');
    items= c.length;
  }
  if (items > maxitems) {
    maxmsg='Text is '+items+' '+itype+"\n but can only be "+maxitems+' '+itype+"\n Abstract will not be submitted.";
    dontsend[n]=1;
    alert(maxmsg);
  } else {
    dontsend[n]=0;                                                              
  }
}

function countwords(e, maxitems, itype) {
  var string= e.value;
  var items=string.length;
  if (itype == 'words') {
    a= string.split("\n");
    b= a.join(' ');
    c= b.split(' ');
    items= c.length;
  }
  if (items > maxitems) {
    maxmsg='Text is '+items+' '+itype+"\n but can only be "+maxitems+' '+itype+"\n Abstract will not be submitted.";
    donotsend=1;
    alert(maxmsg);
  } else {
    donotsend=0;                                                              
  }
}

function checkInput2(e) {
  for (i in dontsend) {
    if (dontsend[i]==1) return false;
  }
  if (!(verify(e))) {
    return false;
  } else {
    return true;
  }
}

function checkInput(e) {
  if (donotsend==1) return false;
  if (!(verify(e))) {
    return false;
  } else {
    return true;
  }
}

