//Replaces links to pages within the logged in area of the site
//Asks the user whether they want to save the changes by calling the promptSave function
//which opens question.asp. If they answer yes the page is submitted to the nextpage
//Every page containing a form must also contain the function dataChanged
function SaveAndForward(nextpage)
{
  if (document.dataform == null)
  {
    window.location=nextpage;
  }
  else
  {  
    if (dataChanged())
    {
      var sPath = window.location.pathname;
      var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
      document.dataform.action='savedata.asp?nextpage='+nextpage;
      promptSave(nextpage,sPage);
    }
    else
    {
      window.location=nextpage;
    }
  }
}

//Saves the data and forwards to nextpage
//Called when they click on a save link so no need to ask whether they want to save
function Save(thispage,nextpage)
{
  if (CheckData(window,thispage)) 
  {
    var action ='savedata.asp?nextpage='+nextpage
    document.dataform.action=action;
    document.dataform.submit();
  }
}


//Checks for a valid date, input should be in the format dd/mm/yyyy
//This doesn't check that the day, month and year are all numbers since they have been selected from the drop downs.
function CheckDate(inDate)
{ 
  var strDay, strMonth, strYear
  var daylength, monthlength
  if (inDate.charAt(1) == '/')  //day is 1 digit
  {
    inDate = '0'+inDate.substr(0,1);
    daylength=1;
  }
  else //day is 2 digits
  {
    strDay = inDate.substr(0,2)
    daylength=2;
  }
  if (inDate.charAt(daylength+2) == '/')  //month is 1 digit
  {
    strMonth = inDate.substr(daylength+1,1); //the month
    monthlength=1;
  }
  else //month is 2 digits
  {
    strMonth = '0'+inDate.substr(daylength+1,2); //the month
    monthlength=2;
  }  
  strYear = inDate.substr(daylength+monthlength+2,4);

  var intDay = parseInt(strDay,10) //convert to an integer
  var intMonth = parseInt(strMonth,10) //convert to an integer
  var intYear = parseInt(strYear,10) //convert to an integer
  
  if (intMonth==2)
  {
    if (intDay > 29) //no dates after 29th in February
      return false;
    if ((intDay == 29) & (intYear%4 != 0)) //% gives the remainder after division
      return false;
  }
  else if ((intMonth == 4)|(intMonth == 6)|(intMonth == 9)|(intMonth == 11)) //30 days in the month
  {
    if (intDay > 30)
      return false;
  }
  else   
    return true;
}

//Check whether the data input is valid
//win is the window containing the form
//currentpage is the name of the page
function CheckData(win,currentpage)
{
switch(currentpage)
  {
  case 'QGeneralInfo.asp':
    {
      if (win.document.dataform.SheetNumber.value=='')
      {
        alert('Please enter the sheet number (original number is at the top of the page).');
        win.document.dataform.SheetNumber.focus();
        return false;
      }
      if (ValidNumber(win.document.dataform.SheetNumber.value)==false)
      {
        alert('The sheet number must be a number (original number is at the top of the page).');
        win.document.dataform.SheetNumber.focus();
        return false;
      }
      if (win.document.dataform.StartDay.value=='')
      {
        alert('Please enter the start day.')
        win.document.dataform.StartDay.focus();
        return false;
      }
      if (win.document.dataform.StartMonth.value=='')
      {
        alert('Please enter the start month.')
        win.document.dataform.StartMonth.focus();
        return false;
      }
      if (win.document.dataform.StartYear.value=='')
      {
        alert('Please enter the start year.')
        win.document.dataform.StartYear.focus();
        return false;
      }
      var StrStartDate = win.document.dataform.StartDay.value + "/" + win.document.dataform.StartMonth.value + "/" + win.document.dataform.StartYear.value
      if (CheckDate(StrStartDate)==false)
      {
        alert('The start date you have entered is not a valid date.');
        win.document.dataform.StartDay.focus();
        return false;
      }
      if (win.document.dataform.EndDay.value=='')
      {
        alert('Please enter the end day.')
        win.document.dataform.EndDay.focus();
        return false;
      }
      if (win.document.dataform.EndMonth.value=='')
      {
        alert('Please enter the end month.')
        win.document.dataform.EndMonth.focus();
        return false;
      }
      if (win.document.dataform.EndYear.value=='')
      {
        alert('Please enter the end year.')
        win.document.dataform.EndYear.focus();
        return false;
      }      
      var StrEndDate = win.document.dataform.EndDay.value + "/" + win.document.dataform.EndMonth.value + "/" + win.document.dataform.EndYear.value
      if (StrEndDate != '//') //Something in the end date
      {
        if (CheckDate(StrEndDate)==false)
        {
          alert('The end date you have entered is not a valid date.');
          win.document.dataform.EndDay.focus();
          return false;
        }
        var Dstartdate = Date.UTC(win.document.dataform.StartYear.value,win.document.dataform.StartMonth.value,win.document.dataform.StartDay.value,0,0,0);
        var Denddate = Date.UTC(win.document.dataform.EndYear.value,win.document.dataform.EndMonth.value,win.document.dataform.EndDay.value,0,0,0);
        if (Dstartdate > Denddate)
        {
          alert('The end date is earlier than the start day.');
          win.document.dataform.EndDay.focus();
          return false;
        }
      }
      if (win.document.dataform.Category.value==' ')
      {
        alert('Please select the category of experience.')
        win.document.dataform.Category.focus();
        return false;
      }
      if (win.document.dataform.Location.length==2)
      {
        if ((eval(win.document.dataform.Location[0].checked) == false) & (eval(win.document.dataform.Location[1].checked) == false))
        {
          alert('Please select the location.')
          return false;
        }
      }
      else
      {
        if ((eval(win.document.dataform.Location[0].checked) == false) & (eval(win.document.dataform.Location[1].checked) == false) & (eval(win.document.dataform.Location[2].checked) == false))
        {
          alert('Please select the location.')
          return false;
        }
      }  
      var category = win.document.dataform.Category.value
      if ((category=='B' & eval(win.document.dataform.Location[0].checked) == true)
        | ((category=='A'|category=='C'|category=='D'|category=='E'|category=='G'|category=='H') & eval(win.document.dataform.Location[1].checked) == true))
      {
        alert('You cannot select that category with that location. Please change one of them.')
        win.document.dataform.Category.focus();
        return false;
      }
      if ((eval(win.document.dataform.Level[0].checked) == false) & (eval(win.document.dataform.Level[1].checked) == false))
      {
        alert('Please select the level of experience.')
        return false;
      }
      if (win.document.dataform.OfficeName.value.length>100)
      {
        alert('The placement provider name cannot be more than 100 characters long.');
        win.document.dataform.OfficeName.focus();
        return false;
      }
      //if (CheckTextInput(win.document.dataform.OfficeName.value)==false)
      //{
      //  win.document.dataform.OfficeName.focus();
      //  showMessage('texterror.html',300,150);
      //  return false;
      //}
      //if (CheckTextInput(win.document.dataform.OfficeAddress.value)==false)
      //{
      //  win.document.dataform.OfficeAddress.focus();
      //  showMessage('texterror.html',300,150);
      //  return false;
      //}
      if (win.document.dataform.OfficeTel.value.length>30)
      {
        alert('The placement provider telephone number cannot be more than 30 characters long.');
        win.document.dataform.OfficeTel.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeTel.value)==false)
//      {
//        win.document.dataform.OfficeTel.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.OfficeWebsite.value.length>100)
      {
        alert('The website cannot be more than 100 characters long.');
        win.document.dataform.OfficeWebsite.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeWebsite.value)==false)
//      {
//        win.document.dataform.OfficeWebsite.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.OfficeDesc.value)==false)
//      {
//        win.document.dataform.OfficeDesc.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.OfficeStudentTel.value.length>30)
      {
        alert('Your telephone number cannot be more than 30 characters long.');
        win.document.dataform.OfficeStudentTel.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeStudentTel.value)==false)
//      {
//        win.document.dataform.OfficeStudentTel.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.OfficeStudentEmail.value.length>100)
      {
        alert('Your email cannot be more than 100 characters long.');
        win.document.dataform.OfficeStudentEmail.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeStudentEmail.value)==false)
//      {
//        win.document.dataform.OfficeStudentEmail.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;  
    } 
  case 'QPSA.asp':
    {
//      if (CheckTextInput(win.document.dataform.PSAName.value)==false)
//      {
//        win.document.dataform.PSAName.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.PSAName.value.length>100)
      {
        alert('The name of your PSA cannot be more than 100 characters long.');
        win.document.dataform.PSAName.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.PSAEmail.value)==false)
//      {
//        win.document.dataform.PSAEmail.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.PSAEmail.value.length>100)
      {
        alert('The email addrees cannot be more than 100 characters long.');
        win.document.dataform.PSAEmail.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.PSATel.value)==false)
//      {
//        win.document.dataform.PSATel.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.PSATel.value.length>30)
      {
        alert('The telephone number cannot be more than 30 characters long.');
        win.document.dataform.PSATel.focus();
        return false;
      }
      if (win.document.dataform.SchoolName.value.length>100)
      {
        alert('The school of architecture cannot be more than 100 characters long.');
        win.document.dataform.SchoolName.focus();
        return false;
      }
      return true;
    }
  case 'QOffice.asp':
    {
      if (win.document.dataform.OfficeName.value.length>100)
      {
        alert('The office name cannot be more than 100 characters long.');
        win.document.dataform.OfficeName.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeName.value)==false)
//      {
//        win.document.dataform.OfficeName.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.OfficeAddress.value)==false)
//      {
//        win.document.dataform.OfficeAddress.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.OfficeTel.value.length>30)
      {
        alert('The office telephone number cannot be more than 30 characters long.');
        win.document.dataform.OfficeTel.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeTel.value)==false)
//      {
//        win.document.dataform.OfficeTel.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.OfficeWebsite.value.length>100)
      {
        alert('The website cannot be more than 100 characters long.');
        win.document.dataform.OfficeWebsite.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeWebsite.value)==false)
//      {
//        win.document.dataform.OfficeWebsite.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.OfficeDesc.value)==false)
//      {
//        win.document.dataform.OfficeDesc.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.OfficeStudentTel.value.length>30)
      {
        alert('Your telephone number cannot be more than 30 characters long.');
        win.document.dataform.OfficeStudentTel.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeStudentTel.value)==false)
//      {
//        win.document.dataform.OfficeStudentTel.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.OfficeStudentEmail.value.length>100)
      {
        alert('Your email cannot be more than 100 characters long.');
        win.document.dataform.OfficeStudentEmail.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.OfficeStudentEmail.value)==false)
//      {
//        win.document.dataform.OfficeStudentEmail.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;
    }
  case 'QMentor.asp':
    {
      if (win.document.dataform.MentorName.value.length>100)
      {
        alert('The mentor name cannot be more than 100 characters long.');
        win.document.dataform.MentorName.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.MentorName.value)==false)
//      {
//        win.document.dataform.MentorName.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.MentorMember.value.length>100)
      {
        alert('The membership information cannot be more than 100 characters long.');
        win.document.dataform.MentorMember.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.MentorMember.value)==false)
//      {
//        win.document.dataform.MentorMember.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.MentorARB.value.length>30)
      {
        alert('The Professional Registration Number cannot be more than 30 characters long.');
        win.document.dataform.MentorARB.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.MentorARB.value)==false)
//      {
//        win.document.dataform.MentorARB.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.MentorEmail.value.length>100)
      {
        alert('The email address cannot be more than 100 characters long.');
        win.document.dataform.MentorEmail.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.MentorEmail.value)==false)
//      {
//        win.document.dataform.MentorEmail.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.MentorTel.value.length>30)
      {
        alert('The telephone number cannot be more than 30 characters long.');
        win.document.dataform.MentorTel.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.MentorTel.value)==false)
//      {
//        win.document.dataform.MentorTel.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;
    }
  case 'QProject.asp':
    {
      if (win.document.dataform.ProjectName.value=='')
      {
        alert('Please enter the project name.');
        win.document.dataform.ProjectName.focus();
        return false;
      } 
      if (win.document.dataform.ProjectName.value.length>100)
      {
        alert('The project name cannot be more than 100 characters long.');
        win.document.dataform.ProjectName.focus();
        return false;
      }
      if (win.document.dataform.StageOther.value.length>100)
      {
        alert('The other stage cannot be more than 100 characters long.');
        win.document.dataform.StageOther.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.ProjectName.value)==false)
//      {
//        win.document.dataform.ProjectName.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.ProjectDesc.value)==false)
//      {
//        win.document.dataform.ProjectDesc.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.ProjectTasks.value)==false)
//      {
//        win.document.dataform.ProjectTasks.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if ((win.document.dataform.StageOther.value=='') &
        ((win.document.dataform.OOther.value!='')|(win.document.dataform.POther.value!='')))
      {
        alert('Please enter the other stage associated with the hours you have entered.');
        win.document.dataform.StageOther.focus();
        return false;
      } 
      return true;
    }
//  case 'QNonWork.asp':
//    {
//      if (win.document.dataform.OtherHours1.value != '' & win.document.dataform.OtherActivity1.value =='')
//      { //Entered hours for another activity but not entered the activity
//        alert('Please enter the activity associated with the hours you have entered.');
//        win.document.dataform.OtherActivity1.focus();
//        return false;
//      }
//      if (win.document.dataform.OtherHours2.value != '' & win.document.dataform.OtherActivity2.value =='')
//      { //Entered hours for another activity but not entered the activity
//        alert('Please enter the activity associated with the hours you have entered.');
//        win.document.dataform.OtherActivity2.focus();
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.OtherActivity1.value)==false)
//      {
//        win.document.dataform.OtherActivity1.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.OtherActivity2.value)==false)
//      {
//        win.document.dataform.OtherActivity2.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      return true;
//    }
  case 'QComments.asp':
    {
//      if (CheckTextInput(win.document.dataform.CommentsLearn.value)==false)
//      {
//        win.document.dataform.CommentsLearn.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.CommentsEvaluate.value)==false)
//      {
//        win.document.dataform.CommentsLearn.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.CommentsAchieve.value)==false)
//      {
//        win.document.dataform.CommentsAchieve.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.CommentsSkills.value)==false)
//      {
//        win.document.dataform.CommentsSkills.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.CommentsOther.value)==false)
//      {
//        win.document.dataform.CommentsOther.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;
    }
//  case '10details.asp':
//    {
//      if (win.document.dataform.forenames.value=='')
//      {
//        alert('Please enter your first name.');
//        return false;
//      }
//      if (win.document.dataform.surname.value=='')
//      {
//        alert('Please enter your surname.');
//        return false;
//      }
//      if (win.document.dataform.email.value=='')
//      {
//        alert('Please enter your email address.');
//        return false;
//      }
//      if (win.document.dataform.email.value!=win.document.dataform.email2.value)
//      {
//        alert('The email and confirm email are not the same. Please check your typing.');
//        return false;
//      }
//      if (ValidEmail(win.document.dataform.email.value) == 0)
//      {
//        alert('The email address you have entered does not appear to be valid.');
//        return false;
//      }
//      if ((eval(win.document.dataform.EmailPreference[0].checked) == false) & (eval(document.dataform.EmailPreference[1].checked) == false))
//      {
//        alert('Please answer the question about whether we can email you.');
//        return false;
//      }
//      return true;    
//    }
  case 'OPart1.asp':
    {
      var StrAssessDate = win.document.dataform.AssessmentDay.value + "/" + win.document.dataform.AssessmentMonth.value + "/" + win.document.dataform.AssessmentYear.value
      if (StrAssessDate != '//') //Something in the end date
      {
        if (CheckDate(StrAssessDate)==false)
        {
          alert('The assessment date you have entered is not a valid date.');
          win.document.dataform.AssessmentDay.focus();
          return false;
        }
      }
      var StrCourseDate = win.document.dataform.CourseStartDay.value + "/" + win.document.dataform.CourseStartMonth.value + "/" + win.document.dataform.CourseStartYear.value
      if (StrCourseDate != '//') //Something in the end date
      {
        if (CheckDate(StrCourseDate)==false)
        {
          alert('The course start date you have entered is not a valid date.');
          win.document.dataform.CourseStartDay.focus();
          return false;
        }
      }
      var StrExamDate = win.document.dataform.ExamDay.value + "/" + win.document.dataform.ExamMonth.value + "/" + win.document.dataform.ExamYear.value
      if (StrExamDate != '//') //Something in the end date
      {
        if (CheckDate(StrExamDate)==false)
        {
          alert('The date for passing the exam that you have entered is not a valid date.');
          win.document.dataform.ExamDay.focus();
          return false;
        }
      }
      if ((StrAssessDate != '//') & (StrCourseDate != '//' | StrExamDate != '//'))
      {
        alert('Enter EITHER the information about your UK degree OR the information about your assessment.');
        return false;
      }
      if (win.document.dataform.CourseSchoolName.value.length>100)
      {
        alert('The school where the course was taken cannot be more than 100 characters long.');
        win.document.dataform.CourseSchoolName.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.CourseSchoolName.value)==false)
//      {
//        win.document.dataform.CourseSchoolName.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      if (win.document.dataform.Part1SchoolName.value.length>100)
      {
        alert('The school where the exam was taken cannot be more than 100 characters long.');
        win.document.dataform.Part1SchoolName.focus();
        return false;
      }
      if (CheckTextInput(win.document.dataform.Part1SchoolName.value)==false)
      {
        win.document.dataform.Part1SchoolName.focus();
        showMessage('texterror.html',300,150);
        return false;
      }
      return true;
    }
  case 'OPart2.asp':
    {
      var StrAssessDate = win.document.dataform.AssessmentDay.value + "/" + win.document.dataform.AssessmentMonth.value + "/" + win.document.dataform.AssessmentYear.value
      if (StrAssessDate != '//') //Something in the end date
      {
        if (CheckDate(StrAssessDate)==false)
        {
          alert('The assessment date you have entered is not a valid date.');
          win.document.dataform.AssessmentDay.focus();
          return false;
        }
      }
      var StrExamDate = win.document.dataform.ExamDay.value + "/" + win.document.dataform.ExamMonth.value + "/" + win.document.dataform.ExamYear.value
      if (StrExamDate != '//') //Something in the end date
      {
        if (CheckDate(StrExamDate)==false)
        {
          alert('The date for passing the exam that you have entered is not a valid date.');
          win.document.dataform.ExamDay.focus();
          return false;
        }
      }
      if ((StrAssessDate != '//') & (StrExamDate != '//'))
      {
        alert('Enter EITHER the information about your UK degree OR the information about your assessment.');
        return false;
      }
      if (win.document.dataform.Part2SchoolName.value.length>100)
      {
        alert('The school where the exam was taken cannot be more than 100 characters long.');
        win.document.dataform.Part2SchoolName.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.Part2SchoolName.value)==false)
//      {
//        win.document.dataform.Part2SchoolName.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;
    }
  case 'CGeneral.asp':
    {
      if (win.document.dataform.CertNo.value=='')
      {
        alert('Please enter the certificate number (original number is at the top of the page).');
        win.document.dataform.CertNo.focus();
        return false;
      }
      if (ValidNumber(win.document.dataform.CertNo.value)==false)
      {
        alert('The certificate number must be a number (original number is at the top of the page).');
        win.document.dataform.CertNo.focus();
        return false;
      }
      if (win.document.dataform.StartDay.value=='')
      {
        alert('Please enter the start day.')
        win.document.dataform.StartDay.focus();
        return false;
      }
      if (win.document.dataform.StartMonth.value=='')
      {
        alert('Please enter the start month.')
        win.document.dataform.StartMonth.focus();
        return false;
      }
      if (win.document.dataform.StartYear.value=='')
      {
        alert('Please enter the start year.')
        win.document.dataform.StartYear.focus();
        return false;
      }
      var StrStartDate = win.document.dataform.StartDay.value + "/" + win.document.dataform.StartMonth.value + "/" + win.document.dataform.StartYear.value
      //alert(StrStartDate);
      if (CheckDate(StrStartDate)==false)
      {
        alert('The start date you have entered is not a valid date.');
        win.document.dataform.StartDay.focus();
        return false;
      }
      var StrEndDate = win.document.dataform.EndDay.value + "/" + win.document.dataform.EndMonth.value + "/" + win.document.dataform.EndYear.value
      if (StrEndDate != '//') //Something in the end date
      {
        if (CheckDate(StrEndDate)==false)
        {
          alert('The end date you have entered is not a valid date.');
          win.document.dataform.EndDay.focus();
          return false;
        }
        var Dstartdate = Date.UTC(win.document.dataform.StartYear.value,win.document.dataform.StartMonth.value,win.document.dataform.StartDay.value,0,0,0);
        var Denddate = Date.UTC(win.document.dataform.EndYear.value,win.document.dataform.EndMonth.value,win.document.dataform.EndDay.value,0,0,0);
        if (Dstartdate > Denddate)
        {
          alert('The end date is earlier than the start day.');
          win.document.dataform.EndDay.focus();
          return false;
        }
      }
      if (win.document.dataform.Workplace.value=='')
      {
        alert('Please enter the workplace.');
        win.document.dataform.Workplace.focus();
        return false;
      }
      if (win.document.dataform.Workplace.value.length>100)
      {
        alert('The workplace cannot be more than 100 characters long.');
        win.document.dataform.Workplace.focus();
        return false;
      }
//      if (CheckTextInput(win.document.dataform.Workplace.value)==false)
//      {
//        win.document.dataform.Workplace.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;
    }
  case 'CStage.asp':
    {
//      if (CheckTextInput(win.document.dataform.Stages.value)==false)
//      {
//        win.document.dataform.Stages.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;
    }  
  case '11details.asp':
    {
      if (win.document.dataform.title.value.length>10)
      {
        alert('The title cannot be more than 10 characters long.');
        win.document.dataform.title.focus();
        return false;
      }
      if (win.document.dataform.forename.value =='')
      {
        alert('Please enter your forename.');
        return false;
      }   
      if (win.document.dataform.forename.value.length>50)
      {
        alert('The forenames cannot be more than 50 characters long.');
        win.document.dataform.forename.focus();
        return false;
      }
      if (win.document.dataform.surname.value =='')
      {
        alert('Please enter your surname.');
        return false;
      }   
      if (win.document.dataform.surname.value.length>50)
      {
        alert('The surname cannot be more than 50 characters long.');
        win.document.dataform.surname.focus();
        return false;
      }
      if (win.document.dataform.email.value =='')
      {
        alert('Please enter your email.');
        win.document.dataform.email.focus();
        return false;
      }   
      if (win.document.dataform.email.value.length>100)
      {
        alert('The email cannot be more than 100 characters long.');
        win.document.dataform.email.focus();
        return false;
      }
      if (win.document.dataform.PhoneNumber.value.length>40)
      {
        alert('The phone number cannot be more than 40 characters long.');
        win.document.dataform.PhoneNumber.focus();
        return false;
      }
      if (win.document.dataform.Mobile.value.length>30)
      {
        alert('The mobile phone number cannot be more than 30 characters long.');
        win.document.dataform.Mobile.focus();
        return false;
      }
      if (ValidEmail(win.document.dataform.email.value)==0)
      {
        alert('The email address you have entered does not appear to be valid.');
        win.document.dataform.email.focus();
        return false;
      }
//      if (win.document.dataform.email.value !=win.document.dataform.email2.value)
//      {
//        alert('The email and confirm email are not the same, please check your typing.');
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.title.value)==false)
//      {
//        win.document.dataform.title.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.forename.value)==false)
//      {
//        win.document.dataform.forename.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.surname.value)==false)
//      {
//        win.document.dataform.surname.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
//      if (CheckTextInput(win.document.dataform.PhoneNumber.value)==false)
//      {
//        win.document.dataform.PhoneNumber.focus();
//        showMessage('texterror.html',300,150);
//        return false;
//      }
      return true;
    }
  case '11address.asp':
    {
      if (win.document.dataform.addr1.value.length>100)
      {
        alert('The first line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr1.focus();
        return false;
      }
      if (win.document.dataform.addr2.value.length>100)
      {
        alert('The second line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr2.focus();
        return false;
      }
      if (win.document.dataform.addr3.value.length>100)
      {
        alert('The third line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr3.focus();
        return false;
      }
      if (win.document.dataform.addr4.value.length>100)
      {
        alert('The fourth line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr4.focus();
        return false;
      }
      if (win.document.dataform.postcode.value.length>30)
      {
        alert('The post code cannot be more than 30 characters long.');
        win.document.dataform.postcode.focus();
        return false;
      }
      if (win.document.dataform.Country.value.length>50)
      {
        alert('The country cannot be more than 50 characters long.');
        win.document.dataform.Country.focus();
        return false;
      }
      return true;
    }
  case 'CAddress.asp': //Same code as for 11address
    {
      if (win.document.dataform.addr1.value.length>100)
      {
        alert('The first line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr1.focus();
        return false;
      }
      if (win.document.dataform.addr2.value.length>100)
      {
        alert('The second line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr2.focus();
        return false;
      }
      if (win.document.dataform.addr3.value.length>100)
      {
        alert('The third line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr3.focus();
        return false;
      }
      if (win.document.dataform.addr4.value.length>100)
      {
        alert('The fourth line of the address cannot be more than 100 characters long.');
        win.document.dataform.addr4.focus();
        return false;
      }
      if (win.document.dataform.postcode.value.length>30)
      {
        alert('The post code cannot be more than 30 characters long.');
        win.document.dataform.postcode.focus();
        return false;
      }
      if (win.document.dataform.Country.value.length>50)
      {
        alert('The country cannot be more than 50 characters long.');
        win.document.dataform.Country.focus();
        return false;
      }
      return true;
    }
  }//end of case statement
  return true; //default return value, some pages have no mandatory fields
}

//Ask the user whether they want to save the changes
//Opens question.asp which asks the question and forwards to the appropriate
//location depending on the answer
function promptSave(nextpage,currentpage) 
{
  var w = 480, h = 340;

  if (document.all || document.layers) 
  {
    w = screen.availWidth;
    h = screen.availHeight;
  }

  var popW = 300, popH = 100;

  var leftPos = (w-popW)/2, topPos = (h-popH)/2;


   WinId = window.open('question.asp?nextpage='+nextpage+'&amp;currentpage='+currentpage,'newwin','width=' + popW + ',height=' + popH + ',top=' + topPos + ',left=' + leftPos);
   if (!WinId.opener) WinId.opener = self;
}

//Determines whether an email may be valid
function ValidEmail(email)
{
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   return reg.test(email)
}

//Determines whether an integer is valid by checking that it contains only numbers.
function ValidInteger(entry)
{
	  var numbers = '0123456789';
        for (var i=0; i < entry.length; i++) 
          {
            if (numbers.indexOf(entry.substring(i,i+1)) == -1) 
            {
              return false;
            }
          }
        return true;
}

//Determines whether a number is valid by checking that it contains only numbers and a decimal point.
function ValidNumber(entry)
{
	  var numbers = '0123456789.';
        for (var i=0; i < entry.length; i++) 
          {
            if (numbers.indexOf(entry.substring(i,i+1)) == -1) 
            {
              return false;
            }
          }
        return true;
}

//Checks that text input does not contain script
function CheckTextInput(strinput)
{
  if ((strinput.indexOf('<') == -1) & (strinput.indexOf('>') == -1))
  {
    //String does not contain > or <, string is ok
    return true;
  }
  if ((strinput.indexOf('<') == -1) & (strinput.indexOf('>') != -1))
  {
    //String only contains >, probably ok but may cause problems with output
    return false;
  }
  if ((strinput.indexOf('>') == -1) & (strinput.indexOf('<') != -1))
  {
    //String only contains <, probably ok but may cause problems with output
    return false;
  }
  else //string contains a <
  {
    var tmpStr=strinput.toUpperCase();//They could have entered the formatting in upper or lower case
    var firstarrow = tmpStr.indexOf('<');
    while (tmpStr.indexOf('<') >= 0)
    {
      if ((tmpStr.indexOf('<B>')==firstarrow)|
      (tmpStr.indexOf('<I>')==firstarrow)|
      (tmpStr.indexOf('<STRONG>')==firstarrow)|
      (tmpStr.indexOf('<EM>')==firstarrow)|
      (tmpStr.indexOf('</B>')==firstarrow)|
      (tmpStr.indexOf('</I>')==firstarrow)|
      (tmpStr.indexOf('</STRONG>')==firstarrow)|
      (tmpStr.indexOf('</EM>')==firstarrow))
      {
        //formatting is allowed, check the next <
        tmpStr=tmpStr.substring(firstarrow+1,tmpStr.length);
        firstarrow = tmpStr.indexOf('<');
      }
      else
      {
        // < is followed by something else, may contain script
        tmpStr=''; //terminate the loop
        return false;
      }
    }    
  }      
  return true; //if we got to the end of the loop the string is OK
}

//Shows a pop-up window.
//This is a separate function because if the window.open function is used on the pages 
//it changes the text of the main window to [object]
function showPopup(doc,params)
{
  PopupWindow = window.open(doc,'pop',params)
  PopupWindow.focus()
}

//Shows a pop-up in the center of the screen
//Used to display messages
function showMessage(filename,popW,popH) 
{
  var w = 480, h = 340;

  if (document.all || document.layers) 
  {
    w = screen.availWidth;
    h = screen.availHeight;
  }

  var leftPos = (w-popW)/2, topPos = (h-popH)/2;

  WinId = window.open(filename,'message','width=' + popW + ',height=' + popH + ',top=' + topPos + ',left=' + leftPos);
   if (!WinId.opener) WinId.opener = self;
}

//called when the Check spelling button is clicked
//doesn't work if it is called "doSpell", probably a conflict with old spell checker
function CheckSpelling(textboxname) 
{
    alert('Sorry but the spell checker is currently unavailable. We apologise for any inconvenience caused.')
    //url = "../spellchecker/window.asp?jsvar=" + textboxname + ".value";
    //window.open(url, null, "height=230,width=450,status=no,toolbar=no,menubar=no,location=no"); 
}


//function imposeMaxLength(Object, MaxLen)
//{
//  return (Object.value.length <= MaxLen);
//}

//From http://marilynburgess.com/2009/10/enforcing-max-length-on-a-textarea/
function imposeMaxLength(event, object, MaxLen)
{     
    var key = event.keyCode ? event.keyCode : event.which;    
    if(key == 8){         
    // 8 is the keycode for the backspace key 05.        
        return true;    
    }else{         
        return (object.value.length <= MaxLen);    
    }
}


