function isnumber(input)
{  if (input.length == 0)
   {return true ;}

   for (var i = 0; i < input.length; i++)
   {  if ((input.substring(i,i+1) < '0') | (input.substring(i,i+1) > '9'))
      {return false;}
   }
   return true;
}// end isnumber

function check_email(email)
{  if (email.length == 0)
   {return false ;}

   for (var i = 0; i < email.length; i++)
   {  if (email.substring(i,i+1) == '@')
      {return true;}
   }
   return false;
}//end check_email

function writerr(errdiv,newText)
{
   var ni = document.getElementById(errdiv);
   var newNode=document.createTextNode(newText);
   ni.appendChild(newNode,ni.childNodes[0]);

   ni.setAttribute("class", "errortext");
   ni.setAttribute("className", "errortext");
}

function clearerr()
{
   //removechild(class="errortext")
   for (n=1; n<62;n++)
   {
      var errdiv="error"+n;

      if (document.getElementById(errdiv))
      {
         var ni = document.getElementById(errdiv);
         if (ni.childNodes[0])
         {
            ni.removeChild(ni.childNodes[0])
         }
    }
  }
}//end clearerr

var errtxt;

function checkform1(tutapp)
{
  var errno =0;
  clearerr();
  valid = true;

  var required = {
    "titl":"Title (Mr/Mrs/Dr)",
    "forename":"Forename",
    "surname":"Surname",
    "housename":"Housename/number",
    "street":"Street",
    "postcode":"Post code"
    }

  var reqerr = {
    "titl":"error1",
    "forename":"error2",
    "surname":"error3",
    "housename":"error7",
    "street":"error8",
    "postcode":"error12"
    }

  var valid=true;//initialise return

  for ( i in required)
  {  if (tutapp.elements[i].value == "")
     {  fieldname = required[tutapp.elements[i].name];
        if (fieldname)
        {  
           var errdiv = reqerr[tutapp.elements[i].name];
           var newText=fieldname + " is required.";
           writerr(errdiv,newText);

           errtxt +=fieldname+"is required";
           errno ++;
           valid = false;
        }
     }
  } 

  var checkd = false;
  var i = 0;
  for (var j in tutapp.elements["gender"])
  {
    if (tutapp.elements["gender"][i] == undefined)
    {  
    } else {
       if (tutapp.elements["gender"][i].checked == true)
       {
          checkd = true;
          break;
       }
    }
    i++;
  }

  if (checkd == false)
  {
     var errdiv = "error4";
     var newText="Gender is required.";
     writerr(errdiv,newText);
     errtxt +="gender is required";
     errno ++;
     valid = false;
  }

  var town = tutapp.elements["town"].value;
  var posttown = tutapp.elements["posttown"].value;
   
  if (town == "" & posttown == "")
  {
     var errdiv="error10";
     var newText="Town or post town is required.";
     writerr(errdiv,newText);
     errtxt +="Town or post town is required";
     errno ++;
     valid = false;
  }

  var landlineday = tutapp.elements["landphoneday"].value;
  var landlineeve = tutapp.elements["landphoneeve"].value;
   
  if (landlineday == "" & landlineeve == "")
  {
     var errdiv="error14";
     var newText="A landline is required.";
     writerr(errdiv,newText);
     errtxt +="A landline is required";
     errno ++;
     valid = false;
  }

  var email = tutapp.elements["email"].value;
  var remail = tutapp.elements["remail"].value;

  if (check_email(email) == true || check_email(remail) == true)
  {
     if (email != remail)
     { 
        var errdiv="error16"; 
        var newText="E-mail addresses must be the same.";
        writerr(errdiv,newText);
        errtxt +="E-mail addresses must be the same";
        errno ++;
        valid = false;
     }
  }

  if (valid==false) 
  {
     alert(errno + " errors\nIncorrect fields are marked in red");
     tutapp.elements["titl"].select();
     tutapp.elements["titl"].focus();
  }

  return valid;
}//end checkform1


function checkform2(tutapp)
{
  var errno =0;
  clearerr();
  valid = true;

  var required = {
    "tq":"Teaching qualification",
    "yearsteaching":"Years teaching",
    "hours":"Hours per week",
    "dfes":"DFES number"
    }

  var reqerr = {
    "tq":"error23",
    "yearsteaching":"error24",
    "hours":"error19",
    "dfes":"error20"
    }

  var numbers = {
    "distance":"Distance you are prepared to travel",
    "yearsteaching":"Years teaching"
    }
  var numerr = {
    "distance":"error18",
    "yearsteaching":"error24"
    }

  var valid=true;//initialise return
  for ( i in required)
  {  
     if (tutapp.elements[i].value == "")
     {
        fieldname = required[tutapp.elements[i].name];
        if (fieldname)
        {  
           var errdiv = reqerr[tutapp.elements[i].name];
           var newText=fieldname + " is required.";
           writerr(errdiv,newText);

           errtxt +=fieldname+"is required";
           errno ++;
           valid = false;
        }
     }
  } 

  for (i in numbers)
  {
     var input = tutapp.elements[i].value;

     if (input)
     {
        var output = isnumber(input);
     
        if (output == false)
        {
           fieldname = numbers[tutapp.elements[i].name];
           if (fieldname)
           {
              var errdiv = numerr[tutapp.elements[i].name];
              var newText=fieldname + " must be a number.";
              writerr(errdiv,newText);

              errtxt +=fieldname + " must be a number";
              errno ++;
              valid = false;
           }
        }
     }
  }

  var i = 0;
  var checkd = false;
  for (var j in tutapp.elements["hours"])
  {  
    if (tutapp.elements["hours"][i] == undefined)
    {
    } else {
       if (tutapp.elements["hours"][i].checked == true)
       {
          checkd = true;
          break;
       }
    }
    i++;
  }

  if (checkd == false)
  {
     var errdiv = "error19";
     var newText="Hours teaching is required.";
     writerr(errdiv,newText);
     errtxt +="Hours teaching is required";
     errno ++;
     valid = false;
  }

  if (tutapp.elements["puphome"].checked == false && tutapp.elements["tuthome"].checked == false && tutapp.elements["elsewhere"].checked == false)
  {
     var errdiv="error17";
     var newText="Venue for tuition is required.";
     writerr(errdiv,newText);

     errtxt +="Venue for tuition is required";
     errno ++;
     valid = false;
  }

  if (tutapp.day.options[tutapp.day.selectedIndex].value =="--" || tutapp.month.options[tutapp.month.selectedIndex].value =="--" || tutapp.year.options[tutapp.year.selectedIndex].value =="----" )
  {
     var errdiv="error21";
     var newText="Date of birth is incomplete.";
     writerr(errdiv,newText);
 
     errtxt +="Date of birth is incomplete<br/>";
     errno ++;
     valid = false;
  }
  
  if (valid==false) 
  {
     alert(errno + " errors\nIncorrect fields are marked in red");
     tutapp.elements["puphome"].select();
     tutapp.elements["puphome"].focus();
  }
  return valid;
}//end checkform2

function checkform3(tutapp)
{
  var errno =0;
  clearerr();
  valid = true;

  var required = {
    "ref1titl":"Personal reference\'s title (Mr/Mrs/Dr)",
    "ref1forename":"Personal reference\'s forename",
    "ref1surname":"Personal reference\'s surname",
    "ref1housename":"Personal reference\'s housename/number",
    "ref1street":"Personal reference\'s street",
    "ref1postcode":"Personal reference\'s post code",
    "ref1occupation":"Personal reference occupation",
    "ref1relationship":"Relationship to personal reference",
    "ref2titl":"Professional reference\'s title (Mr/Mrs/Dr)",
    "ref2forename":"Professional reference\'s forename",
    "ref2surname":"Professional reference\'s surname",
    "ref2":"Professional reference\'s gender",
    "ref2housename":"Professional reference\'s housename/number",
    "ref2street":"Professional reference\'s street",
    "ref2postcode":"Professional reference\'s post code",
    "ref2occupation":"Professional reference occupation",
    "ref2relationship":"Relationship to professional reference"
    }

  var reqerr = {
    "ref1titl":"error41",
    "ref1forename":"error42",
    "ref1surname":"error43",
    "ref1housename":"error45",
    "ref1street":"error46",
    "ref1postcode":"error50",
    "ref1occupation":"error55",
    "ref1relationship":"error56",
    "ref2titl":"error25",
    "ref2forename":"error26",
    "ref2surname":"error27",
    "ref2housename":"error29",
    "ref2street":"error30",
    "ref2postcode":"error34",
    "ref2occupation":"error39",
    "ref2relationship":"error40"
    }

  var valid=true;//initialise return
  for ( i in required)
  {  if (tutapp.elements[i].value == "")
     {  fieldname = required[tutapp.elements[i].name];
        if (fieldname)
        {  
           var errdiv = reqerr[tutapp.elements[i].name];
           var newText=fieldname + " is required.";
           writerr(errdiv,newText);

           errtxt +=fieldname+"is required";
           errno ++;
           valid = false;
        }
     }
  } 

  var checkd = false;
  var i = 0;
  for (var j in tutapp.elements["ref1"])
  {
    if (tutapp.elements["ref1"][i] == undefined)
    {
    } else {
       if (tutapp.elements["ref1"][i].checked == true)
       {
          checkd = true;
          break;
       }
    }
    i++;
  }

  if (checkd == false)
  {
     var errdiv = "error44";
     var newText="Personal reference's gender is required.";
     writerr(errdiv,newText);
     errtxt +="Personal reference's gender is required";
     errno ++;
     valid = false;
  }

  var checkd = false;
  var i = 0;
  for (var j in tutapp.elements["ref2"])
  {
    if (tutapp.elements["ref2"][i] == undefined)
    {
    } else {
       if (tutapp.elements["ref2"][i].checked == true)
       {
          checkd = true;
          break;
       }
    }
    i++;
  }

  if (checkd == false)
  {
     var errdiv = "error28";
     var newText="Professional reference's gender is required.";
     writerr(errdiv,newText);
     errtxt +="Professional reference's gender is required";
     errno ++;
     valid = false;
  }

  if (valid==false) 
  {
     alert(errno + " errors\nIncorrect fields are marked in red");
     tutapp.elements["ref1titl"].select();
     tutapp.elements["ref1titl"].focus();
  }

  return valid;
}//end checkform3

function checkform4(tutapp)
{
  var errno =0;nooffence
  clearerr();
  valid = true;

  if (valid==false) 
  {
     alert(errno + " errors\nIncorrect fields are marked in red");
     tutapp.elements["employer1"].select();
     tutapp.elements["employer1"].focus();
  }

  return valid;
}//end checkform4


function checkform5(tutapp)
{
  var errno =0;
  clearerr();
  var required = {
    "sign":"Signature"
    }

  var reqerr = {
    "sign":"error60"
    }

  var valid=true;//initialise return
  for ( i in required)
  {  if (tutapp.elements[i].value == "")
     {  fieldname = required[tutapp.elements[i].name];
        if (fieldname)
        {  
           var errdiv = reqerr[tutapp.elements[i].name];
           var newText=fieldname + " is required.";
           writerr(errdiv,newText);

           errtxt +=fieldname+"is required";
           errno ++;
           valid = false;
        }
     }
  } 

  if (tutapp.crbcert.checked == false)
  {
     var errdiv="error58";
     var newText="CRB checkbox is required";
     writerr(errdiv,newText);
     errno ++;
     valid = false;
  }

  if (tutapp.terms.checked == false)
  {
    var errdiv="error59";
    var newText="Terms of business checkbox is required";
    writerr(errdiv,newText);
    errno ++;
    valid = false;
  }

  if (valid==false) 
  {
     alert(errno + " errors\nIncorrect fields are marked in red");
     tutapp.elements["nooffence"].select();
     tutapp.elements["nooffence"].focus();
  }

  return valid;
}//end checkform5

