// Nova_JS.js - Website global javascript file (AG Nov 2007)

// Check details in 'register.html'
function check_register(form){
	var forename = form.Forename.value;
	var surname = form.Surname.value;
	var day = form.dob_day.selectedIndex;
	var month = form.dob_month.selectedIndex;
	var year = form.dob_year.selectedIndex;
	var password = form.Password.value;
	var password_confirm = form.Password_Confirm.value;
	var email = form.Email.value;
	var email_confirm = form.Email_Confirm.value;
	var novaref = form.NovaRef.value;
	var aNumber = /[0-9]/;
	var errors=new Array();
	var formfocus;
	
	// Name check
	if (forename ==""){
	errors.push("Please fill in your first name.<br />");
	}
	if (surname ==""){
	errors.push("Please fill in your surname.<br />");
	}
	// Date of birth check
	if ((day == 0) || (month == 0) || (year == 0)){
  	errors.push("Please provide a complete date of birth.<br />");
	}	
	// Email check
	if (email == ""){
	// Do nothing
	}
		else if (email == " "){
		// Do nothing 
		}
			else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) {
			// Do nothing
			}
				else {
				errors.push("The email address you have entered is in an invalid format.<br />")
				}
	if (email != email_confirm){
	errors.push("Please confirm your email address.<br />");
	}
	if ((novaref == "") || (novaref == " ")){
	errors.push("You must enter your Nova Reference Number<br />");
	}
	// Password check
	if ((password == "") || (password.length < 6) || (password.search(aNumber) == -1)){
	errors.push("Passwords must be at least 6 characters long and contain at least 1 number.<br />");
	}
	// Checks the password fields match
	if (password != password_confirm){
	errors.push("Password and password confirmation must match.");
	}
	if ((form.Vehicle_Reg1.value == "") && ((form.Vehicle_Make1.value != "") || (form.Vehicle_Model1.value != "") || (form.Vehicle_CC1.value != ""))) {
	errors.push("Please tell us the registration number of the first vehicle.<br />");
	}	
	if (((form.Vehicle_Type1[0].checked == false) && (form.Vehicle_Type1[1].checked == false)) && 
		((form.Vehicle_Make1.value != "") || (form.Vehicle_Model1.value != ""))) {
	errors.push("Please tell us the type of the first vehicle.<br />");
	}
	if (((form.Vehicle_Owner1[0].checked == false) && (form.Vehicle_Owner1[1].checked == false)) && 
		((form.Vehicle_Make1.value != "") || (form.Vehicle_Model1.value != ""))) {
	errors.push("You must tell use whether or not you are the registered owner of the first vehicle.<br />");
	}
	if ((form.Vehicle_Reg2.value == "") && ((form.Vehicle_Make2.value != "") || (form.Vehicle_Model2.value != "") || (form.Vehicle_CC2.value != ""))) {
	errors.push("Please tell us the registration number of the second vehicle.<br />");
	}
	if (((form.Vehicle_Type2[0].checked == false) && (form.Vehicle_Type2[1].checked == false)) && 
		((form.Vehicle_Make2.value != "") || (form.Vehicle_Model2.value != ""))) {
	errors.push("Please tell us the type of the second vehicle.<br />");
	}
	if (((form.Vehicle_Owner2[0].checked == false) && (form.Vehicle_Owner2[1].checked == false)) && 
		((form.Vehicle_Make2.value != "") || (form.Vehicle_Model2.value != ""))) {
	errors.push("You must tell use whether or not you are the registered owner of the second vehicle.<br />");
	}
	
	// Outputs error messages to div tag named "output"
	if(errors.length)
	{
	self.scrollTo(0,0);
	document.getElementById("output").innerHTML=errors.join("\n") + "<br /><br />"; 
	return false;
	}
document.form.btn_submit.disabled=true;
return true;
}

function check_edit_details(form){
	var email = form.email.value;
	var errors=new Array();
	// Email check
	if (email == ""){ // Do nothing
	}
		else if (email == " "){ // Do nothing 
		}
			else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) { // Do nothing
			}
				else {
				errors.push("The email address you have entered is in an invalid format.")
				}
	if ((form.vehicle_reg1.value == "") && ((form.vehicle_make1.value != "") || (form.vehicle_model1.value != "") || (form.vehicle_cc1.value != ""))) {
	errors.push("Please tell us the registration number of the first vehicle.<br />");
	}
	if (((form.vehicle_type1[0].checked == false) && (form.vehicle_type1[1].checked == false)) && 
		((form.vehicle_make1.value != "") || (form.vehicle_model1.value != ""))) {
	errors.push("Please tell us the type of the first vehicle.<br />");
	}
	if ((form.vehicle_reg2.value == "") && ((form.vehicle_make2.value != "") || (form.vehicle_model2.value != "") || (form.vehicle_cc2.value != ""))) {
	errors.push("Please tell us the registration number of the second vehicle.<br />");
	}	
	if (((form.vehicle_type2[0].checked == false) && (form.vehicle_type2[1].checked == false)) && 
		((form.vehicle_make2.value != "") || (form.vehicle_model2.value != ""))) {
	errors.push("Please tell us the type of the second vehicle.<br />");
	}
	
	if(errors.length){
	self.scrollTo(0,0);
	document.getElementById("output").innerHTML=errors.join("\n") + "<br /><br />"; 
	return false;
	}
return true;
}

function check_forgottenpass(form){
		var errors=new Array();
		
		var day = form.dob_day.selectedIndex;
		var month = form.dob_month.selectedIndex;
		var year = form.dob_year.selectedIndex;
		
		if ((day == 0) || (month == 0) || (year == 0)){
		errors.push("Please provide a complete date of birth.<br />");
		}
		
		if(errors.length){
		self.scrollTo(0,0);
		document.getElementById("output").innerHTML=errors.join("\n") + "<br />"; 
		return false;
		}
		document.form.btn_submit.disabled=true;
		return true;
}

// Check details in 'expenses_form.asp'
function check_expenses(form){
	// Errors arrays
	var errors=new Array();
	var mileage_errors=new Array();
	//var accom_errors=new Array();
	//var travel_errors=new Array();
	//var tools_errors=new Array();
	//var tel_errors=new Array();
	//var fees_errors=new Array();
	// Mileage to Date
	var mtd = Number(form.Hidden_MTD.value) //current mtd from database
	var miles = Number(form.miles_total.value)
	var mtd_new = (mtd + miles)
	// Date fields
	var date1 = form.date1.value;
	var date2 = form.date2.value;
	var date3 = form.date3.value;
	var date4 = form.date4.value;
	var date5 = form.date5.value;
	var date6 = form.date6.value;
	var date7 = form.date7.value;
	var date8 = form.date8.value;
	// End client fields
	var client1 = form.client1.value;
	var client2 = form.client2.value;
	var client3 = form.client3.value;
	var client4 = form.client4.value;
	var client5 = form.client5.value;
	var client6 = form.client6.value;
	var client7 = form.client7.value;
	var client8 = form.client8.value;
	// Worksite fields
	var worksite1 = form.worksite1.value;
	var worksite2 = form.worksite2.value;
	var worksite3 = form.worksite3.value;
	var worksite4 = form.worksite4.value;
	var worksite5 = form.worksite5.value;
	var worksite6 = form.worksite6.value;
	var worksite7 = form.worksite7.value;
	var worksite8 = form.worksite8.value;
	//
	var miles1 = form.miles1.value;
	var miles2 = form.miles2.value;
	var miles3 = form.miles3.value;
	var miles4 = form.miles4.value;
	var miles5 = form.miles5.value;
	var miles6 = form.miles6.value;
	var miles7 = form.miles7.value;
	var miles8 = form.miles8.value;
	//
	var odometer1 = form.odometer1.value;
	var odometer2 = form.odometer2.value;
	//
	var accom_date_from = form.accom_date_from.value;
	var accom_date_to = form.accom_date_to.value;
	var accom_details = form.accom_details.value;
	var accom_total = form.accom_total.value;
	//
	var laundry_total = form.laundry_total.value;
	// Declarations 1-4 checkboxes
	var declaration1 = form.declaration1.checked
	var declaration2 = form.declaration2.checked
	var declaration3 = form.declaration3.checked
	var declaration4 = form.declaration4.checked
	var bicycle = form.chkBicycle.checked
	
	if (((date1 != "") && ((client1 == "") || (worksite1 == "") || (miles1 <= 0))) ||  
		((date2 != "") && ((client2 == "") || (worksite2 == "") || (miles2 <= 0))) ||
		((date3 != "") && ((client3 == "") || (worksite3 == "") || (miles3 <= 0))) ||
		((date4 != "") && ((client4 == "") || (worksite4 == "") || (miles4 <= 0))) ||
		((date5 != "") && ((client5 == "") || (worksite5 == "") || (miles5 <= 0))) ||
		((date6 != "") && ((client6 == "") || (worksite6 == "") || (miles6 <= 0))) ||
		((date7 != "") && ((client7 == "") || (worksite7 == "") || (miles7 <= 0))) ||
		((date8 != "") && ((client8 == "") || (worksite8 == "") || (miles8 <= 0))) ){
		errors.push("Mileage date/client/worksite details incomplete. <a href='#anc_mileage'>Click here</a><br />");
		mileage_errors.push("If you enter dates you MUST enter the corresponding end client/worksite/no. of miles details.");
		}
	if (((date1 == "") && ((client1 != "") || (worksite1 != "") || (miles1 > 0))) ||  
		((date2 == "") && ((client2 != "") || (worksite2 != "") || (miles2 > 0))) ||
		((date3 == "") && ((client3 != "") || (worksite3 != "") || (miles3 > 0))) ||
		((date4 == "") && ((client4 != "") || (worksite4 != "") || (miles4 > 0))) ||
		((date5 == "") && ((client5 != "") || (worksite5 != "") || (miles5 > 0))) ||
		((date6 == "") && ((client6 != "") || (worksite6 != "") || (miles6 > 0))) ||
		((date7 == "") && ((client7 != "") || (worksite7 != "") || (miles7 > 0))) ||
		((date8 == "") && ((client8 != "") || (worksite8 != "") || (miles8 > 0))) ){
		errors.push("Mileage date/client/worksite details incomplete. <a href='#anc_mileage'>Click here</a><br />");
		mileage_errors.push("Please provide FULL details of your mileage claim.<br />");
		}
		
	if ((miles > 0) && (bicycle == false) && ((form.vehicle_type.value == "Car") || (form.vehicle_type.value == "Motorcycle")) && ((odometer1 == "") || (odometer2 == ""))) {
		errors.push("If you claim mileage you must enter odometer readings. <a href='#anc_mileage'>Click here</a><br />");
	}
	
	if (miles > 5000) {
		errors.push("You cannot claim over 5000 miles in one claim.<br />");
	}
	
	// Accommodation claim errors
	if ((((accom_date_from == "") || (accom_date_to == "") || (accom_details == "")) && (accom_total > 0)) ||
		(((accom_date_from != "") || (accom_date_to != "") || (accom_details != "")) && (accom_total == 0)) ){
		errors.push("Please provide FULL details of your accommodation claim. <a href='#anc_accom'>Click here</a><br />");
	}
	// Meal allowance errors
	if ((((form.meal_date1.value == "") || (form.meal1.value == "")) && (form.meal_amt1.value > 0)) ||
		(((form.meal_date1.value != "") || (form.meal1.value != "")) && (form.meal_amt1.value == "")) ||
		(((form.meal_date2.value == "") || (form.meal2.value == "")) && (form.meal_amt2.value > 0)) ||
		(((form.meal_date2.value != "") || (form.meal2.value != "")) && (form.meal_amt2.value == "")) ||
		(((form.meal_date3.value == "") || (form.meal3.value == "")) && (form.meal_amt3.value > 0)) ||
		(((form.meal_date3.value != "") || (form.meal3.value != "")) && (form.meal_amt3.value == "")) ||
		(((form.meal_date4.value == "") || (form.meal4.value == "")) && (form.meal_amt4.value > 0)) ||
		(((form.meal_date4.value != "") || (form.meal4.value != "")) && (form.meal_amt4.value == "")) ||
		(((form.meal_date5.value == "") || (form.meal5.value == "")) && (form.meal_amt5.value > 0)) ||
		(((form.meal_date5.value != "") || (form.meal5.value != "")) && (form.meal_amt5.value == "")) ||
		(((form.meal_date6.value == "") || (form.meal6.value == "")) && (form.meal_amt6.value > 0)) ||
		(((form.meal_date6.value != "") || (form.meal6.value != "")) && (form.meal_amt6.value == "")) ||
		(((form.meal_date7.value == "") || (form.meal7.value == "")) && (form.meal_amt7.value > 0)) ||
		(((form.meal_date7.value != "") || (form.meal7.value != "")) && (form.meal_amt7.value == "")) ){
		errors.push("Please provide FULL details of your meal allowance claim. <a href='#anc_meal'>Click here</a><br />");
	}
	// Travel allowance errors
	if ((((form.travel_date1.value == "") || (form.travel1.value == "")) && (form.travel_amt1.value > 0)) ||
		(((form.travel_date1.value != "") || (form.travel1.value != "")) && (form.travel_amt1.value == "")) ||
		(((form.travel_date2.value == "") || (form.travel2.value == "")) && (form.travel_amt2.value > 0)) ||
		(((form.travel_date2.value != "") || (form.travel2.value != "")) && (form.travel_amt2.value == "")) ||
		(((form.travel_date3.value == "") || (form.travel3.value == "")) && (form.travel_amt3.value > 0)) ||
		(((form.travel_date3.value != "") || (form.travel3.value != "")) && (form.travel_amt3.value == "")) ||
		(((form.travel_date4.value == "") || (form.travel4.value == "")) && (form.travel_amt4.value > 0)) ||
		(((form.travel_date4.value != "") || (form.travel4.value != "")) && (form.travel_amt4.value == "")) ||
		(((form.travel_date5.value == "") || (form.travel5.value == "")) && (form.travel_amt5.value > 0)) ||
		(((form.travel_date5.value != "") || (form.travel5.value != "")) && (form.travel_amt5.value == "")) ){
		errors.push("Please provide FULL details of your travel allowance claim. <a href='#anc_travel'>Click here</a><br />");
	}
	// Laundry allowance errors
	if ((((form.laundry_date1.value == "") || (form.laundry1.value == "")) && (form.laundry_amt1.value > 0)) ||
		(((form.laundry_date1.value != "") || (form.laundry1.value != "")) && (form.laundry_amt1.value == "")) ||
		(((form.laundry_date2.value == "") || (form.laundry2.value == "")) && (form.laundry_amt2.value > 0)) ||
		(((form.laundry_date2.value != "") || (form.laundry2.value != "")) && (form.laundry_amt2.value == "")) ||
		(((form.laundry_date3.value == "") || (form.laundry3.value == "")) && (form.laundry_amt3.value > 0)) ||
		(((form.laundry_date3.value != "") || (form.laundry3.value != "")) && (form.laundry_amt3.value == "")) ||
		(((form.laundry_date4.value == "") || (form.laundry4.value == "")) && (form.laundry_amt4.value > 0)) ||
		(((form.laundry_date4.value != "") || (form.laundry4.value != "")) && (form.laundry_amt4.value == "")) ||
		(((form.laundry_date5.value == "") || (form.laundry5.value == "")) && (form.laundry_amt5.value > 0)) ||
		(((form.laundry_date5.value != "") || (form.laundry5.value != "")) && (form.laundry_amt5.value == "")) ||
		(((form.laundry_date6.value == "") || (form.laundry6.value == "")) && (form.laundry_amt6.value > 0)) ||
		(((form.laundry_date6.value != "") || (form.laundry6.value != "")) && (form.laundry_amt6.value == "")) ||
		(((form.laundry_date7.value == "") || (form.laundry7.value == "")) && (form.laundry_amt7.value > 0)) ||
		(((form.laundry_date7.value != "") || (form.laundry7.value != "")) && (form.laundry_amt7.value == "")) ){
		errors.push("Please provide FULL details of your laundry allowance claim. <a href='#anc_laundry'>Click here</a><br />");
	}
	
	if (((form.laundry_amt1.value != "") && (form.laundry_amt1.value != 2.20) && (form.laundry_amt1.value != 4.40)) || 
	   ((form.laundry_amt2.value != "") && (form.laundry_amt2.value != 2.20) && (form.laundry_amt2.value != 4.40)) ||
	   ((form.laundry_amt3.value != "") && (form.laundry_amt3.value != 2.20) && (form.laundry_amt3.value != 4.40)) ||
	   ((form.laundry_amt4.value != "") && (form.laundry_amt4.value != 2.20) && (form.laundry_amt4.value != 4.40)) ||
	   ((form.laundry_amt5.value != "") && (form.laundry_amt5.value != 2.20) && (form.laundry_amt5.value != 4.40)) ||
	   ((form.laundry_amt6.value != "") && (form.laundry_amt6.value != 2.20) && (form.laundry_amt6.value != 4.40)) ||
	   ((form.laundry_amt7.value != "") && (form.laundry_amt7.value != 2.20) && (form.laundry_amt7.value != 4.40))) {
		errors.push("Daily laundry claim amounts must be £2.20 (1 item) or £4.40 (2 items).<br />");
	}
	
	// Daily Allowance errors
	if ((((form.allowance_date1.value == "") || (form.allowance1.value == "")) && (form.allowance_amt1.value > 0)) ||
		(((form.allowance_date1.value != "") || (form.allowance1.value != "")) && (form.allowance_amt1.value == "")) ||
		(((form.allowance_date2.value == "") || (form.allowance2.value == "")) && (form.allowance_amt2.value > 0)) ||
		(((form.allowance_date2.value != "") || (form.allowance2.value != "")) && (form.allowance_amt2.value == "")) ||
		(((form.allowance_date3.value == "") || (form.allowance3.value == "")) && (form.allowance_amt3.value > 0)) ||
		(((form.allowance_date3.value != "") || (form.allowance3.value != "")) && (form.allowance_amt3.value == "")) ||
		(((form.allowance_date4.value == "") || (form.allowance4.value == "")) && (form.allowance_amt4.value > 0)) ||
		(((form.allowance_date4.value != "") || (form.allowance4.value != "")) && (form.allowance_amt4.value == "")) ||
		(((form.allowance_date5.value == "") || (form.allowance5.value == "")) && (form.allowance_amt5.value > 0)) ||
		(((form.allowance_date5.value != "") || (form.allowance5.value != "")) && (form.allowance_amt5.value == "")) ||
		(((form.allowance_date6.value == "") || (form.allowance6.value == "")) && (form.allowance_amt6.value > 0)) ||
		(((form.allowance_date6.value != "") || (form.allowance6.value != "")) && (form.allowance_amt6.value == "")) ||
		(((form.allowance_date7.value == "") || (form.allowance7.value == "")) && (form.allowance_amt7.value > 0)) ||
		(((form.allowance_date7.value != "") || (form.allowance7.value != "")) && (form.allowance_amt7.value == "")) ){
		errors.push("Please provide FULL details of your daily allowance claim. <a href='#anc_allowance'>Click here</a><br />");
	}
	// tools purchased errors
	if ((((form.tools_date1.value == "") || (form.tools1.value == "")) && (form.tools_amt1.value > 0)) ||
		(((form.tools_date1.value != "") || (form.tools1.value != "")) && (form.tools_amt1.value == "")) ||
		(((form.tools_date2.value == "") || (form.tools2.value == "")) && (form.tools_amt2.value > 0)) ||
		(((form.tools_date2.value != "") || (form.tools2.value != "")) && (form.tools_amt2.value == "")) ||
		(((form.tools_date3.value == "") || (form.tools3.value == "")) && (form.tools_amt3.value > 0)) ||
		(((form.tools_date3.value != "") || (form.tools3.value != "")) && (form.tools_amt3.value == "")) ||
		(((form.tools_date4.value == "") || (form.tools4.value == "")) && (form.tools_amt4.value > 0)) ||
		(((form.tools_date4.value != "") || (form.tools4.value != "")) && (form.tools_amt4.value == "")) ||
		(((form.tools_date5.value == "") || (form.tools5.value == "")) && (form.tools_amt5.value > 0)) ||
		(((form.tools_date5.value != "") || (form.tools5.value != "")) && (form.tools_amt5.value == "")) ){
		errors.push("Please provide FULL details of your tools purchased claim. <a href='#anc_tools'>Click here</a><br />");
	}
	// telephone calls errors
	if ((((form.tel_date1.value == "") || (form.tel1.value == "")) && (form.tel_amt1.value > 0)) ||
		(((form.tel_date1.value != "") || (form.tel1.value != "")) && (form.tel_amt1.value == "")) ||
		(((form.tel_date2.value == "") || (form.tel2.value == "")) && (form.tel_amt2.value > 0)) ||
		(((form.tel_date2.value != "") || (form.tel2.value != "")) && (form.tel_amt2.value == "")) ||
		(((form.tel_date3.value == "") || (form.tel3.value == "")) && (form.tel_amt3.value > 0)) ||
		(((form.tel_date3.value != "") || (form.tel3.value != "")) && (form.tel_amt3.value == "")) ||
		(((form.tel_date4.value == "") || (form.tel4.value == "")) && (form.tel_amt4.value > 0)) ||
		(((form.tel_date4.value != "") || (form.tel4.value != "")) && (form.tel_amt4.value == "")) ||
		(((form.tel_date5.value == "") || (form.tel5.value == "")) && (form.tel_amt5.value > 0)) ||
		(((form.tel_date5.value != "") || (form.tel5.value != "")) && (form.tel_amt5.value == "")) ){
		errors.push("Please provide FULL details of your telephone calls claim. <a href='#anc_tel'>Click here</a><br />");
	}
	// professional fees errors
	if ((((form.fees_date1.value == "") || (form.fees1.value == "")) && (form.fees_amt1.value > 0)) ||
		(((form.fees_date1.value != "") || (form.fees1.value != "")) && (form.fees_amt1.value == "")) ||
		(((form.fees_date2.value == "") || (form.fees2.value == "")) && (form.fees_amt2.value > 0)) ||
		(((form.fees_date2.value != "") || (form.fees2.value != "")) && (form.fees_amt2.value == "")) ||
		(((form.fees_date3.value == "") || (form.fees3.value == "")) && (form.fees_amt3.value > 0)) ||
		(((form.fees_date3.value != "") || (form.fees3.value != "")) && (form.fees_amt3.value == "")) ||
		(((form.fees_date4.value == "") || (form.fees4.value == "")) && (form.fees_amt4.value > 0)) ||
		(((form.fees_date4.value != "") || (form.fees4.value != "")) && (form.fees_amt4.value == "")) ||
		(((form.fees_date5.value == "") || (form.fees5.value == "")) && (form.fees_amt5.value > 0)) ||
		(((form.fees_date5.value != "") || (form.fees5.value != "")) && (form.fees_amt5.value == "")) ){
		errors.push("Please provide FULL details of your professional fees/courses claim. <a href='#anc_fees'>Click here</a><br />");
	}
	
	if (laundry_total > 30.80){
		errors.push("Maximum laundry claim exceeded. <a href='#anc_laundry'>Click here</a><br />");
	}
	
	if ((declaration1 == false) || (declaration2 == false)){ // If dec1 OR dec2 are FALSE...
		errors.push("You must complete both parts of the declaration.<br />");
	}
	if ((declaration3 == false) && (declaration4 == false)){ // If dec3 AND dec4 are FALSE...
		errors.push("You must confirm how you will be sending receipts.<br />");
	}
	
	// and finally.....ZERO CLAIM CHECK
	if ((form.miles_total_amt.value == 0) && 
	   (form.accom_total.value == 0) && 
	   (form.meal_total.value == 0) && 
	   (form.travel_total.value == 0) &&
	   (form.laundry_total.value == 0) &&
	   (form.allowance_total.value == 0) &&
	   (form.tools_total.value == 0) &&
	   (form.tel_total.value == 0) &&
	   (form.fees_total.value == 0) ){
		errors.push("You are trying to submit a zero value claim!<br />");
	}
	
	// Outputs error messages to div tags
	if(errors.length)
	{
	document.getElementById("output").innerHTML=errors.join("\n") + "<br />";
	document.getElementById("mileage_output").innerHTML=mileage_errors.join("\n") + "<br /><br />"; 
	self.scrollTo(0,10000);
	return false;
	}
	
	if(mtd <= 10000 && mtd_new > 10000){
	alert("This submission will take your total mileage to date over 10000 miles." + '\n' + "Please be aware Nova will take this into account and your claim may be adjusted.")
	}
	/*alert("Thanks for your submission - if you encounter errors or YOU DO NOT see a receipt" + '\n' + "on the following page please press 'F5' to resend your claim.")*/
	document.form.btn_submit.disabled=true;
	return true;
}

//Bicycle function
function check_bicycle(form) {
	if (form.chkBicycle.checked == true){
		form.VehicleRegMenu.disabled=true;
		form.vehicle_type.disabled=true;
		form.vehicle_make.disabled=true;
		form.vehicle_model.disabled=true;
		form.vehicle_cc.disabled=true;
		}
	else if (form.chkBicycle.checked == false){
		form.VehicleRegMenu.disabled=false;
		form.vehicle_type.disabled=false;
		form.vehicle_make.disabled=false;
		form.vehicle_model.disabled=false;
		form.vehicle_cc.disabled=false;
		}
}

//Password check functions
function check_new_password(form) {
	var errors=new Array();
	var password = form.Password.value;
	var password_confirm = form.Password_Confirm.value;
	var aNumber = /[0-9]/;

	if ((password == "") || (password.length < 6) || (password.search(aNumber) == -1)){
	errors.push("Passwords must be at least 6 characters long and contain at least 1 number.<br />");
	}
	// Checks the password fields match
	if (password != password_confirm){
	errors.push("Password and password confirmation must match.");
	}
 
	// Outputs error messages to div tag named "output"
	if(errors.length)
	{
	self.scrollTo(0,0);
	document.getElementById("output").innerHTML=errors.join("\n") + "<br /><br />"; 
	return false;
	}
document.form.btn_submit.disabled=true;
return true;
}

function check_tc(form) {
	var errors=new Array();
	var forename = form.forename.value;
	var surname = form.surname.value;
	var novaref = form.novaref.value;
	var house_no = form.house_no.value;
	var street = form.street.value;
	var city = form.city.value;
	var postcode = form.postcode.value;
	
	if ((forename =="") || (forename ==" ")){
		errors.push("Please fill in your first name.<br />");
		}
	if ((surname =="") || (surname == " ")){
		errors.push("Please fill in your surname.<br />");
		}
	if ((novaref =="") || (novaref ==" ")){
		errors.push("Please fill in your Nova Reference Number.<br />");
		}
	if ((city =="") || (city ==" ")){
		errors.push("Please fill in your city.<br />");
		}
	if ((postcode =="") || (postcode ==" ")){
		errors.push("Please fill in your postcode.<br />");
		}
	if (form.chk_terms.checked == false){
		errors.push("You must agree to the terms and conditions.<br />");
		}
	if(errors.length){
		/*self.scrollTo(0,0);*/
		document.getElementById("output").innerHTML=errors.join("\n") + "<br />"; 
		return false;
		}

document.form.btn_submit.disabled=true;
return true;
}


//Only numbers function
function onlyNumbers(evt)
{
evt = (evt) ? evt : event;
       var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ?
evt.keyCode :
        ((evt.which) ? evt.which : 0));

  		if ((charCode > 31 && charCode < 46) || (charCode > 57) || (charCode == 47))
		return false;

    return true;
}

//Join (as contractor)
function check_join(form){
	var forename = form.forename.value;
	var surname = form.surname.value;
	var address = form.address.value;
	var postcode = form.postcode.value;
	var dob = form.dob.value;
	var email = form.email.value;
	var nino = form.nino.value;
	var nationality = form.nationality.value;
	var occupation = form.occupation.value;
	var tel = form.tel.value;
	var agency = form.agency.value;
	var agency_contact = form.agency_contact.value;
	var bank = form.bank.value;
	var sortcode = form.sortcode.value;
	var account_no = form.account_no.value;
	var account_name = form.account_name.value;
	var check_terms = form.check_terms.checked;
	var errors=new Array();
	
	if ((forename =="") || (forename ==" ")){
		errors.push("Please fill in your first name.<br />");
		}
	if ((surname =="") || (surname == " ")){
		errors.push("Please fill in your surname.<br />");
		}
	if ((address =="") || (address ==" ")){
		errors.push("Please fill in your address.<br />");
		}
	if ((postcode =="") || (postcode ==" ")){
		errors.push("Please fill in your postcode.<br />");
		} 
	if ((dob =="") || (dob ==" ")){
		errors.push("Please fill in your date of birth.<br />");
		} 
	// Email check
	if (email == ""){ // Do nothing
	}
		else if (email == " "){ // Do nothing 
		}
			else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) { // Do nothing
			}
				else {
				errors.push("The email address you have entered is in an invalid format.<br />")
				}
	if ((nino =="") || (nino ==" ")){
		errors.push("Please fill in your National Insurance Number.<br />");
		} 
	if ((nationality =="") || (nationality ==" ")){
		errors.push("Please fill in your nationality.<br />");
		} 
	if ((occupation =="") || (occupation ==" ")){
		errors.push("Please fill in your occupation.<br />");
		} 
	if ((tel =="") || (tel ==" ")){
		errors.push("Please provide a telephone number.<br />");
		} 
	if ((agency =="") || (agency ==" ")){
		errors.push("Please tell us the name of your agency.<br />");
		} 
	if ((agency_contact =="") || (agency_contact ==" ")){
		errors.push("Please provide the name of an agency contact.<br />");
		} 
	if ((form.p45[0].checked == false) && (form.p45[1].checked == false)){
	errors.push("Please confirm how Nova will receive your P45.<br />");
		}
	if ((form.eu[0].checked == false) && (form.eu[1].checked == false)){
		errors.push("Please confirm your EU citizenship status.<br />");
		}
	if ((bank =="") || (bank ==" ")){
		errors.push("Please fill in your bank's name<br />");
		}
	if ((sortcode =="") || (sortcode ==" ")){
		errors.push("Please fill in your account sortcode<br />");
		}
	if ((account_no =="") || (account_no ==" ")){
		errors.push("Please fill in your account number<br />");
		}
	if ((account_name =="") || (account_name ==" ")){
		errors.push("Please provide the name on your account<br />");
		}
	if ((form.supporting_id[0].checked == false) && (form.supporting_id[1].checked == false)){ //not working at present
		errors.push("Please confirm how you will be sending your ID<br />");
		}
	if (check_terms == false){ //not working at present
		errors.push("You must agree to the terms and conditions<br />");
		}
	if(errors.length){
		self.scrollTo(0,0);
		document.getElementById("output").innerHTML=errors.join("\n") + "<br />"; 
		return false;
		}
document.form.btn_submit.disabled=true;
return true;
}

function check_agency_submit(form) {
	var agency = form.agency.value;
	var agency_contact = form.agency_contact.value;
	var email = form.agency_email.value;
	var errors=new Array();
	
	if ((agency == "") || (agency == " ")){
		errors.push("You must enter your agency's name<br />");
		}
	if ((agency_contact == "") || (agency_contact == " ")){
		errors.push("You must enter a contact name at your agency<br />");
		}
	if (email == ""){ // Do nothing
	}
		else if (email == " "){ // Do nothing 
		}
			else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) { // Do nothing
			}
				else {
				errors.push("The email address you have entered is in an invalid format.<br />")
				}	
	if(errors.length){
		self.scrollTo(0,0);
		document.getElementById("output").innerHTML=errors.join("\n") + "<br /><br />"; 
		return false;
		}
document.form.btn_submit.disabled=true;
return true;
}

function check_coa(form) {
	var name = form.name.value;
	var novaref = form.novaref.value;
	var agency = form.agency.value;
	var dec = form.chk_declaration.checked;
	var pay = form.chk_payments.checked;
	var errors=new Array(); 
	var email = form.email.value;
	
	if ((novaref == "") || (novaref == " ")){
	errors.push("You must enter your Nova Reference Number<br />");
	}
	if ((name == "") || (name == " ")){
	errors.push("You must enter your name<br />");
	}
	if (email == ""){ // Do nothing
	}
		else if (email == " "){ // Do nothing 
		}
			else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) { // Do nothing
			}
				else {
				errors.push("The email address you have entered is in an invalid format.<br />")
				}
	if ((agency == "") || (agency == " ")){
	errors.push("You must enter your agency's name<br />");
	}
	if (dec == false) {
		errors.push("You must agree to the declaration<br />");
	}
	if (pay == false) {
		errors.push("You must agree to let Nova handle payments on your behalf<br />");
	}
	if(errors.length){
	self.scrollTo(0,0);
	document.getElementById("output").innerHTML=errors.join("\n") + "<br />"; 
	return false;
	}
document.form.btn_submit.disabled=true;
return true;
}

function calculate_agency_submit(form) {

A = Number(document.form.gross1.value)+Number(document.form.gross2.value)+Number(document.form.gross3.value)+Number(document.form.gross4.value)+Number(document.form.gross5.value)
B = Number(document.form.expenses1.value)+Number(document.form.expenses2.value)+Number(document.form.expenses3.value)+Number(document.form.expenses4.value)+Number(document.form.expenses5.value)

d1 = Math.abs(document.form.deductions1.value) 
d2 = Math.abs(document.form.deductions2.value) 
d3 = Math.abs(document.form.deductions3.value) 
d4 = Math.abs(document.form.deductions4.value) 
d5 = Math.abs(document.form.deductions5.value) 

deductionsbeforevat=0
deductionsaftervat=0

if (document.form.dedsaftervat1.checked) {deductionsaftervat = deductionsaftervat + Number(d1)}
	else {deductionsbeforevat = deductionsbeforevat + Number(d1)}
if (document.form.dedsaftervat2.checked) {deductionsaftervat = deductionsaftervat + Number(d2)}
	else {deductionsbeforevat = deductionsbeforevat + Number(d2)}
if (document.form.dedsaftervat3.checked) {deductionsaftervat = deductionsaftervat + Number(d3)}
	else {deductionsbeforevat = deductionsbeforevat + Number(d3)}
if (document.form.dedsaftervat4.checked) {deductionsaftervat = deductionsaftervat + Number(d4)}
	else {deductionsbeforevat = deductionsbeforevat + Number(d4)}
if (document.form.dedsaftervat5.checked) {deductionsaftervat = deductionsaftervat + Number(d5)}
	else {deductionsbeforevat = deductionsbeforevat + Number(d5)}

C = Number(deductionsbeforevat)
D = Number(deductionsaftervat)
E = Number(A+B-C)
F = Number((E/100)*17.5)
G = Number(E+F-D)
H = Math.round(E*100)/100
I = Math.round(F*100)/100
J = Math.round(G*100)/100
K = H.toFixed(2); 
L = I.toFixed(2); 
M = J.toFixed(2); 

document.form.net_inv.value = K
document.form.vat.value = L
document.form.gross_inv.value = M
}

function check_agency_join(form) {
	var agency = form.agency.value;
	var trade = form.trade.value;
	var address = form.address.value;
	var agency_tel = form.agency_tel.value;
	var agency_fax = form.agency_fax.value;
	var email = form.agency_email.value;
	var agency_manager = form.agency_manager.value;
	var consultant_name1 = form.consultant_name1.value;
	var consultant_name2 = form.consultant_name2.value;
	var who_hr = form.who_hr.value;
	var invoice_email1 = form.invoice_email1.value;
	var invoice_email2 = form.invoice_email2.value;
	var newreg_name = form.newreg_name.value;
	var your_name = form.your_name.value;
	var your_position = form.your_position.value;

	var errors=new Array();
	
	if ((agency == "") || (agency == " ")){
	errors.push("Please enter your Agency's name<br />");
	}
	if ((trade == "") || (trade == " ")){
	errors.push("Please enter the trades your organisation handles<br />");
	}
	if ((address == "") || (address == " ")){
	errors.push("Please enter your Agency's address<br />");
	}
	if ((agency_tel == "") || (agency_tel == " ")){
	errors.push("Please enter your Agency's telephone number<br />");
	}
	if ((agency_fax == "") || (agency_fax == " ")){
	errors.push("Please enter your Agency's fax number<br />");
	}
	// Email check
	if (email == ""){ // Do nothing
	}
		else if (email == " "){ // Do nothing 
		}
			else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) { // Do nothing
			}
				else {
				errors.push("The branch email address you have entered is in an invalid format.<br />")
				}
	if ((agency_manager == "") || (agency_manager == " ")){
	errors.push("Please enter the name of your branch manager<br />");
	}
	if (((consultant_name1 == "") || (consultant_name1 == " ")) && ((consultant_name2 == "") || (consultant_name2 == " "))){
	errors.push("Please enter the name of at least one consultant<br />");
	}
	if ((form.who_hr[0].checked == false) && (form.who_hr[1].checked == false) && (form.who_hr[2].checked == false)){
	errors.push("Please let us know who will be responsible for confirming hours and rates<br />");
	}
	if (((invoice_email1 == "") || (invoice_email1 == " ")) && ((invoice_email2 == "") || (invoice_email2 == " "))){
	errors.push("Please enter at least one e-mail address for us to send our invoices<br />");
	}
	if ((form.payment_method[0].checked == false) && (form.payment_method[1].checked == false)){
	errors.push("Please let us know if you will be paying Nova by BACS or CHAPS<br />");
	}
	if ((newreg_name == "") || (newreg_name == " ")){
	errors.push("Please let us know who you would like us to send new contractor confirmations to<br />");
	}
	if ((your_name =="") || (your_name == " ")){
	errors.push("Please enter your name<br />");
	}
	if ((your_position =="") || (your_position == " ")){
	errors.push("Please enter your position<br />");
	}
	//display errors
	if(errors.length){
	self.scrollTo(0,0);
	document.getElementById("output").innerHTML=errors.join("\n") + "<br />"; 
	return false;
	}
document.form.btn_submit.disabled=true;
return true;
}

//*****Calculation functions**************************************************************************************************

//Calculates pence per mile (ppm) according to vehicle type (car, motorcycle) and miles to date. Sums totals etc

function calculate_ppm(form) {
//var type = form.Hidden_Type1.value //vehicle type
var type = form.vehicle_type.value //vehicle type
var mtd = form.Hidden_MTD.value //total miles to date
var ppm = 0.40
var miles1 = Number(form.miles1.value)
var miles2 = Number(form.miles2.value)
var miles3 = Number(form.miles3.value)
var miles4 = Number(form.miles4.value)
var miles5 = Number(form.miles5.value)
var miles6 = Number(form.miles6.value)
var miles7 = Number(form.miles7.value)
var miles8 = Number(form.miles8.value)
var miles_total = (miles1 + miles2 + miles3 + miles4 + miles5 + miles6 + miles7 + miles8)
// if statement MUST stay here!
if(type == "" && miles_total > 0 && form.chkBicycle.checked == false){
	alert("You must inform us of your vehicle details if you are claiming mileage." + '\n' + "Please select your vehicle above, or close this form and register a vehicle in 'Update personal details'.")
	}
if(type == "Car" && mtd > 10000){
	ppm = 0.25
	} 
if(type == "Car" && mtd <= 10000){
	ppm = 0.40
	}
if(type == "Motorcycle"){
	ppm = 0.24
	}
if (form.chkBicycle.checked == true){
	ppm = 0.20
	}

var amount1 = Number(miles1 * ppm) //converts text to number
var amount2 = Number(miles2 * ppm)
var amount3 = Number(miles3 * ppm)
var amount4 = Number(miles4 * ppm)
var amount5 = Number(miles5 * ppm)
var amount6 = Number(miles6 * ppm)
var amount7 = Number(miles7 * ppm)
var amount8 = Number(miles8 * ppm)
var miles_total_amt = Number(amount1 + amount2 + amount3 + amount4 + amount5 + amount6 + amount7 + amount8)

form.miles_total.value = miles_total
form.miles_total_amt.value = miles_total_amt.toFixed(2)

form.amount1.value = amount1.toFixed(2)
form.amount2.value = amount2.toFixed(2)
form.amount3.value = amount3.toFixed(2)
form.amount4.value = amount4.toFixed(2)
form.amount5.value = amount5.toFixed(2)
form.amount6.value = amount6.toFixed(2)
form.amount7.value = amount7.toFixed(2)
form.amount8.value = amount8.toFixed(2)
}

///////////////////////////////////////////////////////////////////////////////////////
function calculate_meal(form) {
var A = Number(form.meal_amt1.value) //declares variables
var B = Number(form.meal_amt2.value)
var C = Number(form.meal_amt3.value)
var D = Number(form.meal_amt4.value)
var E = Number(form.meal_amt5.value)
var F = Number(form.meal_amt6.value)
var G = Number(form.meal_amt7.value)
var H = Number(A + B + C + D + E + F + G)
/*form.meal_total.value = Math.round(H*100)/100 */
form.meal_total.value = H.toFixed(2)
}

function calculate_travel(form) {
var A = Number(form.travel_amt1.value) //declares variables
var B = Number(form.travel_amt2.value)
var C = Number(form.travel_amt3.value)
var D = Number(form.travel_amt4.value)
var E = Number(form.travel_amt5.value)
var F = Number(A + B + C + D + E)
form.travel_total.value = F.toFixed(2)
}

function calculate_accom(form) {
var A = Number(form.accom_amt.value) //declares variables
form.accom_total.value = A.toFixed(2)
}

function calculate_laundry(form) {
var A = Number(form.laundry_amt1.value)
var B = Number(form.laundry_amt2.value)
var C = Number(form.laundry_amt3.value)
var D = Number(form.laundry_amt4.value)
var E = Number(form.laundry_amt5.value)
var F = Number(form.laundry_amt6.value)
var G = Number(form.laundry_amt7.value)
var H = Number(A + B + C + D + E + F + G)
form.laundry_total.value = H.toFixed(2)
}

function calculate_allowance(form) {
var A = Number(form.allowance_amt1.value)
var B = Number(form.allowance_amt2.value)
var C = Number(form.allowance_amt3.value)
var D = Number(form.allowance_amt4.value)
var E = Number(form.allowance_amt5.value)
var F = Number(form.allowance_amt6.value)
var G = Number(form.allowance_amt7.value)
var H = Number(A + B + C + D + E + F + G)
form.allowance_total.value = H.toFixed(2)
}

function calculate_tools(form) {
var A = Number(form.tools_amt1.value) 
var B = Number(form.tools_amt2.value)
var C = Number(form.tools_amt3.value)
var D = Number(form.tools_amt4.value)
var E = Number(form.tools_amt5.value)
var F = Number(A + B + C + D + E)
form.tools_total.value = F.toFixed(2)
}

function calculate_tel(form) {
var A = Number(form.tel_amt1.value)
var B = Number(form.tel_amt2.value)
var C = Number(form.tel_amt3.value)
var D = Number(form.tel_amt4.value)
var E = Number(form.tel_amt5.value)
var F = Number(A + B + C + D + E)
form.tel_total.value = F.toFixed(2)
}

function calculate_fees(form) {
var A = Number(form.fees_amt1.value) 
var B = Number(form.fees_amt2.value)
var C = Number(form.fees_amt3.value)
var D = Number(form.fees_amt4.value)
var E = Number(form.fees_amt5.value)
var F = Number(A + B + C + D + E)
form.fees_total.value = F.toFixed(2)
}

//******************************************************************
function clearDefault(el) {
  if (el.defaultValue==el.value) el.value = ""
}
	
function check_vehicle(form) {

var type1 = form.Hidden_Type1.value
var make1 = form.Hidden_Make1.value
var model1 = form.Hidden_Model1.value
var cc1 = form.Hidden_CC1.value
var type2 = form.Hidden_Type2.value
var make2 = form.Hidden_Make2.value
var model2 = form.Hidden_Model2.value
var cc2 = form.Hidden_CC2.value
var menu = form.VehicleRegMenu.selectedIndex;
//var make_hidden = form.Hidden_Make1.value;
//document.getElementById("VehicleRegMenu")

if (menu == 0) {
	form.vehicle_type.value = ""
	form.vehicle_make.value = ""
	form.vehicle_model.value = ""
	form.vehicle_cc.value = ""
	
	}
if (menu == 1) {
	form.vehicle_type.value = type1
	form.vehicle_make.value = make1
	form.vehicle_model.value = model1
	form.vehicle_cc.value = cc1
	
	}
if (menu == 2) {
	form.vehicle_type.value = type2
	form.vehicle_make.value = make2
	form.vehicle_model.value = model2
	form.vehicle_cc.value = cc2
	
	}
}

function enableField(form) { 
	if ((document.form.hardcopy_req[0].checked == true) && (document.form.hardcopy_req[1].checked == false)){
	document.form.hardcopy_address.disabled=false;
	}
	else
	{ 
	document.form.hardcopy_address.disabled=true; 
	} 
} 

function submitOnce(form) {
	document.form.btn_submit.disabled=true;
	return true;
}


//Jump Menu function
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

//Calculator.html
function calculate(form)
{
<!--basics-->
upliftedrate = Number(form.hourlyrate.value) + 1
gross = Number(form.hoursworked.value) * upliftedrate
fee=20.75
<!--expenses any weird multiplications and divisions are to make-->
<!--javascript realise we're talking numbers-->
miles=form.miles.value
mileageclaimed=miles*0.40 
travelclaimed=form.travel.value*2/2 
meals=form.meals.value
mealsclaimed=meals*5
dailyallowance=form.dailyallowance.value
dailyallowanceclaimed=dailyallowance*5
accommclaimed=form.accomm.value*2/2
toolsclaimed=form.tools.value*2/2
laundry=form.laundry.value
laundryclaimed=laundry*2.2
phoneclaimed=form.phone.value*2/2
profeesclaimed=form.profees.value*2/2
exxs = mileageclaimed + travelclaimed + mealsclaimed + dailyallowanceclaimed + accommclaimed + toolsclaimed + laundryclaimed + phoneclaimed + profeesclaimed
<!--Expenses cannot be greater than gross less fee less acc ins less min wage-->
if(exxs>(gross-20.75-1.95-279.20))
exxs=gross-20.75-1.95-279.20
else exxs=exxs
if(exxs<0)
exxs=0
else exxs=exxs
<!--basics continued-->
net = gross-exxs-fee-1.95
<!--ernic tfa off net-->
netlesstfa=net-110
ernicoffnet=netlesstfa*(12.8/112.8)
net=net-ernicoffnet
<!--ernic-->
if (net>110) 
ernic= ((net-110)/100*12.8)
else ernic=0;
<!--eenic-->
  if (net > 844) eenic = (((net  - 844) / 100) + ((844 - 110) / 100 * 11));
    else if (net > 110) eenic = ((net  - 110) / 100 * 11);
    else eenic = 0



<!--paye-->
personalallowancethreshold = 1923.077
personalallowance= 124.5192
fiftypercenttaxthreshold = 2165.38
fortypercenttaxthreshold = 719.2308

umbpersonalallowance = personalallowance
if (net > personalallowancethreshold) umbpersonalallowance = umbpersonalallowance - ((net - personalallowancethreshold )/2);
if (umbpersonalallowance < 0) umbpersonalallowance = 0 ;


umbtwentypercenttax = 0
umbfortypercenttax = 0
umbfiftypercenttax = 0 

if ((net > umbpersonalallowance) && ( net <= fortypercenttaxthreshold )) umbtwentypercenttax = ((net - umbpersonalallowance) / 100 * 20);
if ((net > umbpersonalallowance) && ( net > fortypercenttaxthreshold )) umbtwentypercenttax = (fortypercenttaxthreshold /100 * 20);
if ((net > fortypercenttaxthreshold) && (net <= fiftypercenttaxthreshold)) umbfortypercenttax = ((net - fortypercenttaxthreshold - umbpersonalallowance) / 100 * 40);
if ((net > fortypercenttaxthreshold) && (net > fiftypercenttaxthreshold )) umbfortypercenttax = (fiftypercenttaxthreshold / 100 * 40);
if (net > fiftypercenttaxthreshold)  umbfiftypercenttax = ((net - fiftypercenttaxthreshold - fortypercenttaxthreshold  - umbpersonalallowance) / 100 * 50);
umbpaye = umbtwentypercenttax + umbfortypercenttax + umbfiftypercenttax 



<!--takehome-->
takehome=gross-fee-ernic-eenic-umbpaye-1.95
form.novatakehome.value = takehome.toFixed(2); 
if(isNaN(form.novatakehome.value))
form.novatakehome.value = "Error";


<!--normal paye earnings-->

normalnet= Number(form.hoursworked.value) * Number(form.hourlyrate.value)

  if (normalnet > 844) normaleenic = (((normalnet  - 844) / 100) + ((844 - 110) / 100 * 11));
    else if (normalnet > 110) normaleenic = ((normalnet  - 110) / 100 * 11);
    else normaleenic = 0

normalpersonalallowance = personalallowance
if (normalnet > personalallowancethreshold) normalpersonalallowance = normalpersonalallowance - ((normalnet - personalallowancethreshold )/2);
if (normalpersonalallowance < 0) normalpersonalallowance = 0 ;


normaltwentypercenttax = 0
normalfortypercenttax = 0
normalfiftypercenttax = 0 

if ((normalnet > normalpersonalallowance) && ( normalnet <= fortypercenttaxthreshold )) normaltwentypercenttax = ((normalnet - normalpersonalallowance) / 100 * 20);
if ((normalnet > normalpersonalallowance) && ( normalnet > fortypercenttaxthreshold )) normaltwentypercenttax = (fortypercenttaxthreshold /100 * 20);
if ((normalnet > fortypercenttaxthreshold) && (normalnet <= fiftypercenttaxthreshold)) normalfortypercenttax = ((normalnet - fortypercenttaxthreshold - normalpersonalallowance) / 100 * 40);
if ((normalnet > fortypercenttaxthreshold) && (normalnet > fiftypercenttaxthreshold )) normalfortypercenttax = (fiftypercenttaxthreshold / 100 * 40);
if (normalnet > fiftypercenttaxthreshold)  normalfiftypercenttax = ((normalnet - fiftypercenttaxthreshold - fortypercenttaxthreshold  - normalpersonalallowance) / 100 * 50);
normalpaye = normaltwentypercenttax + normalfortypercenttax + normalfiftypercenttax 

normaltakehome = normalnet-normalpaye-normaleenic
form.payetakehome.value = normaltakehome.toFixed(2); 

if(isNaN(form.payetakehome.value))
form.payetakehome.value = "Error";
<!--difference - takes the rounded figures-->
diff1=(form.novatakehome.value)
diff2=(form.payetakehome.value)
diff=diff1-diff2
form.difference.value = diff.toFixed(2); 
if(isNaN(form.difference.value))
form.difference.value = "Error";
}