
// Global validation variable
var validationErrorArray = null;

// Create an error array
function createErrorArray() {
	return new Array();
}
function addError(errorMsg, item, errorArray, skip) {
	if(skip)
		return false;
	
	if(errorArray == null) {
		if(validationErrorArray == null)
			validationErrorArray = createErrorArray();
		
		errorArray = validationErrorArray;
	}

	var i = errorArray.length;
	errorArray.length += 2;
	errorArray[i] = errorMsg;
	errorArray[i + 1] = item;
	
	return false;
}


function calculate_charge_donation(form) {
      var total_charge=0;
   
      for (i=0;i<form.donation.length;i++)
      {
        if (form.donation[i].checked) {
          total_charge += (form.donation[i].value * 100);
        }
      }
      if (form.donation_other.value != "" ) {
        total_charge += (form.donation_other.value * 100);
      }
      /*Try and remove leading 0. */
      form.total_charge.value = total_charge / 100;
    }
    
    function validEmail_donation(email_text){
      var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
      
      if (email_text == "" || re.test(email_text)) {
       return true;
      } else {
       return false;
      }
    }
    
    function validate_donation(form) {

      var missing = "";
      var checked = false;

      if (form.sname.value=="") {
        missing += "Surname\n";
      }
      if (form.fname.value=="") {
        missing += "Forename\n";
      }
      if (form.addr1.value=="") {
        missing += "Postal Address\n";
      }
      if (form.postcode.value=="") {
        missing += "ZIP/Postcode\n";
      }
      if (form.country.value=="") {
        missing += "Country\n";
      }
      if (form.telephone.value=="") {
        missing += "Telephone Number\n";
      }
      if (form.rcsi_class.value=="") {
        missing += "RCSI Class of\n";
      }
      if (form.specialty.value=="") {
        missing += "Specialty\n";
      }
      if (form.email.value=="") {
        missing += "Email Address\n";
      }
      for (i=0;i<form.donation.length;i++)
      {
        if (form.donation[i].checked) {
          checked = true;
        }
      }
      if (checked == false && form.donation_other.value == "")
      {
        missing += "Donation Amount\n";
      }
      if (checked == true && form.donation_other.value != "")
      {
        missing += "Choose only one Donation value\n";
      }

      checked = false;
      for (i=0;i<form.fund.length;i++)
      {
        if (form.fund[i].checked)
        {
          checked = true;
        }
      }
      if (checked == false) {
        missing += "Donation Fund\n";
      }

      if (missing == "") {
        if (validEmail_donation(form.email.value) == false ){
          alert("Invalid EMail address");
          return false;
        }
        //Everything seems in order, lets calulate their total charge
        calculate_charge_donation(form);
        return true;
      } else {
        alert("You must enter the following values\n" + missing);
        return false;
      }
    }


 function validate_breast_cancer(form) {

      var missing = "";
      var checked = false;

      if (form.sname.value=="") {
        missing += "Surname\n";
      }
      if (form.fname.value=="") {
        missing += "Forename\n";
      }
      if (form.addr1.value=="") {
        missing += "Postal Address\n";
      }
      if (form.postcode.value=="") {
        missing += "ZIP/Postcode\n";
      }
      if (form.country.value=="") {
        missing += "Country\n";
      }
      if (form.email.value=="") {
        missing += "Email Address\n";
      }
      for (i=0;i<form.donation.length;i++)
      {
        if (form.donation[i].checked && i!=3) {
          checked = true;
        }
      }
      if (checked == false && (form.donation_other.value == "" || form.donation_other.value == "0"))
      {
        missing += "Donation Amount\n";
      }
      if (checked == true && form.donation_other.value != "")
      {
        missing += "Choose only one Donation value\n";
      }


      if (missing == "") {
        if (validEmail_donation(form.email.value) == false ){
          alert("Invalid EMail address");
          return false;
        }
        //Everything seems in order, lets calulate their total charge
        calculate_charge_donation(form);
        return true;
      } else {
        alert("You must enter the following values\n" + missing);
        return false;
      }
    }



 function calculate_charge_charter(form) {

		var total_charge=0;
		
		for (i=0;i<form.consultant.length;i++)
		{
		  if (form.consultant[i].checked) 
		  {
		    if (form.consultant[i].value == "combined") 
		    {
				total_charge += 280;
			} else if ((form.consultant[i].value == "thursday") || (form.consultant[i].value == "friday")) 
			{
				total_charge += 160;
			}
			break;
		  }
		}

		for (i=0;i<form.registrar.length;i++)
		{
		  if (form.registrar[i].checked) 
		  {
		    if (form.registrar[i].value == "combined") 
		    {
				total_charge += 100;
			} else if ((form.registrar[i].value == "thursday") || (form.registrar[i].value == "friday")) 
			{
				total_charge += 60;
			}
			break;
		  }
		}

        /*Currently no charge for the retired section, but if it changes we just change the 0's below*/
		for (i=0;i<form.retired.length;i++)
		{
		  if (form.retired[i].checked) 
		  {
		    if (form.retired[i].value == "combined") 
		    {
				total_charge += 0;
			} else if ((form.retired[i].value == "thursday") || (form.retired[i].value == "friday")) 
			{
				total_charge += 0;
			}
			break;
		  }
		}

		for (i=0;i<form.guest_tickets.length;i++)
		{
		  if (form.guest_tickets[i].checked) 
		  {
			total_charge += (form.guest_tickets[i].value * 1);
			break;
		  }
		}

		/*Try and remove leading 0. */
		form.total_charge.value = total_charge;
    }
    
    function validEmail_charter(email_text){
      var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
      
      if (email_text == "" || re.test(email_text)) {
       return true;
      } else {
       return false;
      }
    }
    
    function validate_charter(form) {
      var missing = "";
      var checked = false;
      
      if (form.surname.value=="") {
        missing += "Surname\n";
      }
      if (form.firstname.value=="") {
        missing += "Forename\n";
      }
      if (form.address1.value=="") {
        missing += "Mailing Address\n";
      }
      if (form.telephone.value=="") {
        missing += "Telephone Number\n";
      }
      if (form.email.value=="") {
        missing += "Email Address\n";
      }
      
      checked = false;
      for (i=0;i<form.consultant.length;i++)
      {
        if (form.consultant[i].checked) {
          checked = true;
        }
      }
      for (i=0;i<form.registrar.length;i++)
      {
        if (form.registrar[i].checked) {
          checked = true;
        }
      }
      for (i=0;i<form.retired.length;i++)
      {
        if (form.retired[i].checked) {
          checked = true;
        }
      }

      if ( checked == false ) {
        missing += "Daily Registration Fees\n";
      }

	  checked = false;
      for (i=0;i<form.supper.length;i++)
      {
        if (form.supper[i].checked) {
          checked = true;
        }
      }
      if ( checked == false ) {
        missing += "Supper Attendance\n";
      }

	  checked = false;
      for (i=0;i<form.ihstg.length;i++)
      {
        if (form.ihstg[i].checked) {
          checked = true;
        }
      }
      if ( checked == false ) {
        missing += "IHSTG Meeting\n";
      }
	  checked = false;
      for (i=0;i<form.dinner.length;i++)
      {
        if (form.dinner[i].checked) {
          checked = true;
        }
      }
      if ( checked == false ) {
        missing += "Charter Day Dinner\n";
      }

      
      if (missing == "") {
        if (validEmail_charter(form.email.value) == false ){
          alert("Invalid EMail address");
          return false;
        }
        //Everything seems in order, lets calculate their total charge
        calculate_charge_charter(form);
        return true;
      } else {
        alert("You must enter the following values\n" + missing);
        return false;
      }
    }

    function calculate_charge_fellow(form) {
      var total_charge=0;
   
      if (form.Opt_A.checked) {
        total_charge += (form.Opt_A.value * 100);
        form.sub_A.value = "1";
      }
      if (form.Opt_B.checked == true) {
        total_charge += (form.Opt_B.value * 100);
        form.sub_B.value = "1";
      }
      if (form.Opt_C.checked == true) {
        total_charge += (form.Opt_C.value * 100);
        form.sub_C.value = "1";
      }
      /*Try and remove leading 0. */
      form.total_charge.value = total_charge / 100;
    }
    
    function validEmail_fellow(email_text){
      var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
      
      if (email_text == "" || re.test(email_text)) {
       return true;
      } else {
       return false;
      }
    }
    
    function validate_fellows(form) {
      var missing = "";
      var checked = false;
      
      if (form.sname.value=="") {
        missing += "Surname\n";
      }
      if (form.fname.value=="") {
        missing += "Forename\n";
      }
      if (form.addr1.value=="") {
        missing += "Postal Address\n";
      }
      if (form.postcode.value=="") {
        missing += "ZIP/Postcode\n";
      }
      if (form.country.value=="") {
        missing += "Country\n";
      }
      if (form.telephone.value=="") {
        missing += "Telephone Number\n";
      }
      if (form.year_of_fellowship.value=="") {
        missing += "Year of Fellowship\n";
      }
      if (form.specialty.value=="") {
        missing += "Specialty\n";
      }
      if (form.email.value=="") {
        missing += "Email Address\n";
      }
      if (form.Opt_A.checked != "") {
        checked = true;
      }
      if (form.Opt_B.checked != "") {
        checked = true;
      }
      if (form.Opt_C.checked != "") {
        checked = true;
      }
      if ( checked == false ) {
        missing += "Subscription Fee";
      }

      
      if (missing == "") {
        if (validEmail_fellow(form.email.value) == false ){
          alert("Invalid EMail address");
          return false;
        }
        //Everything seems in order, lets calulate their total charge
        calculate_charge_fellow(form);
        return true;
      } else {
        alert("You must enter the following values\n" + missing);
        return false;
      }
    }

function validate_updateyourdetails(form) {

      var missing = "";
      var checked = false;

      if (form.FirstName.value=="") {
        missing += "First Name\n";
      }
      if (form.MiddleName.value=="") {
        missing += "Middle Name\n";
      }
      if (form.LastName.value=="") {
        missing += "Last Name\n";
      }
      if (form.DOB.value=="") {
        missing += "Date of Birth\n";
      }
      if (form.Address.value=="") {
        missing += "Address\n";
      }
      if (form.City.value=="") {
        missing += "City\n";
      }
      if (form.Country.value=="") {
        missing += "Country\n";
      }
     
      if (missing == "") {
        if (validEmail_donation(form.Email.value) == false ){
          alert("Invalid EMail address");
          return false;
        }
        //Everything seems in order
        return true;
      } else {
        alert("You must enter the following values\n" + missing);
        return false;
      }
    }

function validate_lib_membership(form) {

      var missing = "";
      var checked = false;

      if (form.name.value=="") {
        missing += "Surname, Forename\n";
      }
      if (form.clinical_dept.value=="") {
        missing += "Clinical Department\n";
      }
      if (form.hosp_clinical.value=="") {
        missing += "Hospital/Clinical Site\n";
      }
      if (form.stud_course_involve.value=="") {
        missing += "RCSI students/course involvement\n";
      }
      if (form.academ_clinical_dept.value=="") {
        missing += "RCSI Academic/Clinical Head of Department\n";
      }
      if (form.work_address.value=="") {
        missing += "Working address\n";
      }
      if (form.address2.value=="") {
        missing += "Address Line 2\n";
      }
      if (form.work_phone.value=="") {
        missing += "Work phone number\n";
      }
if (form.work_email.value=="") {
        missing += "Work email address\n";
      }
if (form.period_contract.value=="") {
        missing += "Period of contract\n";
      }

if (!form.agree_bound.checked) {
        	missing += "Agreement to be bound by the Library Code of Use\n";
   	}
if (!form.accept_usage.checked) {
        	missing += "Agreement to abide by the RCSI IT Acceptable Usage Policy\n";
   	}
     
      if (missing == "") {
        if (validEmail_donation(form.work_email.value) == false ){
          alert("Invalid Work email address");
          return false;
        }
        //Everything seems in order
        return true;
      } else {
        alert("You must enter the following values\n" + missing);
        return false;
      }
    }

 function validate_mini(form) {
      var missing = "";
      var checked = false;
      

var myOption = -1;
	for (i=form.total_charge.length-1; i > -1; i--) {
		if (form.total_charge[i].checked) {
			myOption = i; 
			i = -1;
		}
	}
if (myOption == -1) {
	missing += "What you wish to register for\n";
}


      if (form.fname.value=="") {
        missing += "Firstname\n";
      }
	if (form.sname.value=="") {
        missing += "Surname\n";
      }
      if (form.addr1.value=="") {
        missing += "Postal Address\n";
      }
     
     
      if (form.telephone.value=="") {
        missing += "Phone Number\n";
      }      
      
      if (form.email.value=="") {
        missing += "Email Address\n";
      }
	if (form.dob.value=="") {
        missing += "Date of Birth\n";
      }
    
      
      if (missing == "") {
        if (validEmail_fellow(form.email.value) == false ){
          alert("Invalid EMail address");
          return false;
        }                
        return true;
      } else {
        alert("You must enter the following values\n" + missing);
        return false;
      }
    }



