// JavaScript Document

//***********************************************************
function checkField(formRef, id) {
	var el = formRef && formRef.elements[id];
	return !el || Boolean(el.value);
}

//***********************************************************
function change(formRef, id, newClass) {
	var el = formRef && formRef.elements[id];
	
if (el){	
	el.className = newClass;
}else{
	alert('Unknown field:- '+id);}
}

//***********************************************************
function validateField(formRef,fldname)
{
	sText = document.getElementById(fldname).value;
	if (!checkField(formRef,fldname)) {
		retval = 1;
		change(formRef, fldname,'error') + document.getElementById(fldname).focus();
	}
	else { 
		change(formRef, fldname,'normal'); 
		retval = 0;
	}
	return retval;
}

//***********************************************************
function validateFieldAlpha(formRef,fldname)
{
	sText = document.getElementById(fldname).value;
	if (!checkField(formRef,fldname)) {
		retval = 1;
		change(formRef, fldname,'error') + document.getElementById(fldname).focus();
	}
	else if(!IsAlpha(sText)){
		retval = 1;
		change(formRef, fldname,'error') + document.getElementById(fldname).focus();
		}
	else { 
		change(formRef, fldname,'normal'); 
		retval = 0;
	}
	return retval;
}

//***********************************************************
function validateFielddecimal(formRef,fldname)
{
	sText = document.getElementById(fldname).value;
	if (!checkField(formRef,fldname)) {
		retval = 1;
		change(formRef, fldname,'error') + document.getElementById(fldname).focus();
	}
	else if(!IsDecimal(sText)){
		retval = 1;
		change(formRef, fldname,'error') + document.getElementById(fldname).focus();
		}
	else { 
		change(formRef, fldname,'normal'); 
		retval = 0;
	}
	return retval;
}

//***********************************************************
function validateFieldInteger(formRef,fldname)
{
	sText = document.getElementById(fldname).value;
	if (!checkField(formRef,fldname)) {
		retval = 1;
		change(formRef, fldname,'error') + document.getElementById(fldname).focus();
	}
	else if(!isInteger(sText)){
		retval = 1;
		change(formRef, fldname,'error') + document.getElementById(fldname).focus();
		}
	else { 
		change(formRef, fldname,'normal'); 
		retval = 0;
	}
	return retval;
}

//***********************************************************
function validateFieldDOB(formRef,fldname)
{
	sText = document.getElementById(fldname).value;
	if (!checkField(formRef,fldname)) {
		retval = 1;
		change(formRef, fldname,'error');
	}
	else { 
		change(formRef, fldname,'normal'); 
		retval = 0;
	}
	return retval;
}

//***********************************************************
function validateFieldMonth(fldname)
{
	if(document.getElementById(fldname).value < 0 || document.getElementById(fldname).value > 11){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatefieldYear(fldname)
{
	var dt = new Date();
	var thisyear = dt.getFullYear();
	if(document.getElementById(fldname).value < 1900 || document.getElementById(fldname).value > thisyear){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_1()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"sel_app1_title");
	retval = retval + validateField(formRef,"sel_app1_gender");
	retval = retval + validateFieldAlpha(formRef,"inp_app1_forename");
	retval = retval + validateFieldAlpha(formRef,"inp_app1_surname");
	retval = retval + validateField(formRef,"inp_app1_telephone_home");	
	//retval = retval + validateField(formRef,"inp_app1_email");
	retval = retval + validateFieldDOB(formRef,"inp_app1_dob");
	retval = retval + validateField(formRef,"sel_app1_marriagestatus");
	if (document.getElementById("current_app1_postcode1").disabled == false){
		retval = retval + validateField(formRef,"current_app1_housename1");
		retval = retval + validateFieldAlpha(formRef,"current_app1_postcode1");
	}
	retval = retval + validateField(formRef,"sel_app1_ResidentialStatus");
	retval = retval + validateFielddecimal(formRef,"inp_grossincome");
	retval = retval + validateFielddecimal(formRef,"inp_propertyValue");
	retval = retval + validateFielddecimal(formRef,"inp_mortgageBalance");
		
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_2()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"current_housename");
	retval = retval + validateFieldAlpha(formRef,"current_postcode");
	retval = retval + validateField(formRef,"current_street");
	retval = retval + validateField(formRef,"current_town");
	retval = retval + validateField(formRef,"current_county");
	retval = retval + validateField(formRef,"sel_PropertyType");
	retval = retval + validateFielddecimal(formRef,"pop_propertyValue");
	retval = retval + validateFielddecimal(formRef,"pop_mortgageBalance");
	retval = retval + validateFielddecimal(formRef,"inp_mortgagePayment");
	retval = retval + validateField(formRef,"inp_MortgageLender");

	if (document.getElementById("pop_mortgageBalance").value > 0){
		retval = retval + validateField(formRef,"inp_MortgageLender");
	}
	else{
		change(formRef, 'inp_MortgageLender','normal'); 
	}
	retval = retval + validateFieldInteger(formRef,"inp_timeataddress_years");
	retval = retval + validateFieldInteger(formRef,"inp_timeataddress_months");
	
	if (!validateFieldMonth("inp_timeataddress_months")){
		alert('Months at address is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
	
	retval = retval + validateFielddecimal(formRef,"inp_PurchasePrice");
	retval = retval + validateFieldInteger(formRef,"inp_purchasedate_year");
	
	if (!validatefieldYear("inp_purchasedate_year")){
		alert('Purchase year must be in the format YYYY');
		retval = retval + 1;
	}
	
	retval = retval + validateField(formRef,"sel_purchasedate_month");
	retval = retval + validateField(formRef,"sel_excouncil");
	
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_2a()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateFieldAlpha(formRef,"previous_housename");
	retval = retval + validateFieldAlpha(formRef,"previous_postcode");
	retval = retval + validateFieldAlpha(formRef,"previous_street");
	retval = retval + validateFieldAlpha(formRef,"previous_town");
	retval = retval + validateFieldAlpha(formRef,"previous_county");
	
	retval = retval + validateFieldInteger(formRef,"inp_previous_timeataddress_years");
	retval = retval + validateFieldInteger(formRef,"inp_previous_timeataddress_months");
	
	if (!validateFieldMonth("inp_previous_timeataddress_months")){
		alert('Months at address is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}	
}

//***********************************************************
function validatediv_yourdetails_3()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"sel_app1_EmploymentStatus");
	if (document.getElementById("sel_app1_EmploymentStatus").value == "Self Employed"){
		retval = retval + validateField(formRef,"sel_app1_Accountant");
	}
	else{
		change(formRef, 'sel_app1_Accountant','normal'); 
	}
	
	retval = retval + validateFieldAlpha(formRef,"inp_app1_occupation");
	retval = retval + validateFieldInteger(formRef,"inp_app1_timeatemploymentyears");
	retval = retval + validateFieldInteger(formRef,"inp_app1_timeatemploymentmonths");
	
	if (!validateFieldMonth("inp_app1_timeatemploymentmonths")){
		alert('Months in Current Position is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
	retval = retval + validateFieldInteger(formRef,"pop_grossincome");
	retval = retval + validateFieldInteger(formRef,"inp_app1_timeatbankyears");
	retval = retval + validateFieldInteger(formRef,"inp_app1_timeatbankmonths");
	retval = retval + validateField(formRef,"sel_CCJsDefaults");
	
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_3a()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"sel_app1_previous_EmploymentStatus");
	if (document.getElementById("sel_app1_previous_EmploymentStatus").value == "Self Employed"){
		retval = retval + validateField(formRef,"sel_app1_previous_Accountant");
	}
	else{
		change(formRef, 'sel_app1_Accountant','normal'); 
	}
	
	retval = retval + validateFieldAlpha(formRef,"inp_app1_previous_occupation");
	retval = retval + validateFieldInteger(formRef,"inp_app1_previous_timeatemploymentyears");
	retval = retval + validateFieldInteger(formRef,"inp_app1_previous_timeatemploymentmonths");
	
	if (!validateFieldMonth("inp_app1_previous_timeatemploymentmonths")){
		alert('Months in Current Position is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
	
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_4()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"sel_app2_title");
	retval = retval + validateField(formRef,"sel_app2_gender");
	retval = retval + validateFieldAlpha(formRef,"inp_app2_forename");
	retval = retval + validateFieldAlpha(formRef,"inp_app2_surname");
	retval = retval + validateField(formRef,"inp_app2_telephone_home");	
	//retval = retval + validateField(formRef,"inp_app2_email");
	retval = retval + validateFieldDOB(formRef,"inp_app2_dob");
	retval = retval + validateField(formRef,"sel_app2_marriagestatus");
	
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}


//***********************************************************
function validatediv_yourdetails_5()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateFieldAlpha(formRef,"app2_current_housename");
	retval = retval + validateFieldAlpha(formRef,"app2_current_postcode");
	retval = retval + validateFieldAlpha(formRef,"app2_current_street");
	retval = retval + validateFieldAlpha(formRef,"app2_current_town");
	retval = retval + validateFieldAlpha(formRef,"app2_current_county");
	retval = retval + validateFieldInteger(formRef,"inp_app2_timeataddress_years");
	retval = retval + validateFieldInteger(formRef,"inp_app2_timeataddress_months");
	
	if (!validateFieldMonth("inp_app2_timeataddress_months")){
		alert('Months at address is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
	
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_5a()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateFieldAlpha(formRef,"app2_previous_housename");
	retval = retval + validateFieldAlpha(formRef,"app2_previous_postcode");
	retval = retval + validateFieldAlpha(formRef,"app2_previous_street");
	retval = retval + validateFieldAlpha(formRef,"app2_previous_town");
	retval = retval + validateFieldAlpha(formRef,"app2_previous_county");
	retval = retval + validateFieldInteger(formRef,"inp_app2_previous_timeataddress_years");
	retval = retval + validateFieldInteger(formRef,"inp_app2_previous_timeataddress_months");
	
	if (!validateFieldMonth("inp_app2_previous_timeataddress_months")){
		alert('Months at address is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
	
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_6()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"sel_app2_EmploymentStatus");
	if (document.getElementById("sel_app2_EmploymentStatus").value == "Self Employed"){
		retval = retval + validateField(formRef,"sel_app2_Accountant");
	}
	else{
		change(formRef, 'sel_app2_Accountant','normal'); 
	}
	
	retval = retval + validateFieldAlpha(formRef,"inp_app2_occupation");
	retval = retval + validateFieldInteger(formRef,"inp_app2_timeatemploymentyears");
	retval = retval + validateFieldInteger(formRef,"inp_app2_timeatemploymentmonths");
	
	if (!validateFieldMonth("inp_app2_timeatemploymentmonths")){
		alert('Months in Current Position is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
		
	retval = retval + validateFieldInteger(formRef,"inp_app2_grossincome");
	retval = retval + validateField(formRef,"sel_app2_CCJsDefaults");
		
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_6a()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"sel_app2_previous_EmploymentStatus");
	if (document.getElementById("sel_app2_previous_EmploymentStatus").value == "Self Employed"){
		retval = retval + validateField(formRef,"sel_app2_previous_Accountant");
	}
	else{
		change(formRef, 'sel_app2_Accountant','normal'); 
	}
	
	retval = retval + validateFieldAlpha(formRef,"inp_app2_previous_occupation");
	retval = retval + validateFieldInteger(formRef,"inp_app2_previous_timeatemploymentyears");
	retval = retval + validateFieldInteger(formRef,"inp_app2_previous_timeatemploymentmonths");
	
	if (!validateFieldMonth("inp_app2_previous_timeatemploymentmonths")){
		alert('Months in Current Position is invalid. Must be between 0 and 11');
		retval = retval + 1;
	}
		
	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}

//***********************************************************
function validatediv_yourdetails_8()
{
	retval 			= 0;
	var alertMsg 	= "The following REQUIRED fields\nhave been left empty:\n";
	formRef 		= document.form1;

	retval = retval + validateField(formRef,"sel_PurposeOfLoan");
	if (document.getElementById("sel_PurposeOfLoan").value == "Other - Please Specify"){
		retval = retval + validateField(formRef,"inp_otherloanpurpose");
	}
	else{
		change(formRef, 'inp_otherloanpurpose','normal'); 
	}

	retval = retval + validateFieldInteger(formRef,"inp_chosenAmount");
	retval = retval + validateFieldInteger(formRef,"inp_chosenTerm");
	retval = retval + validateField(formRef,"inp_chosenLoanType");
	retval = retval + validateField(formRef,"inp_chosenProvider");

 	if(document.getElementById("chk_creditsearch").checked){
		document.getElementById("hid_chk_creditsearch").value = "Yes";
	}
	else{
		document.getElementById("hid_chk_creditsearch").value = "No";
		alert('The application cannot be accepted unless the applicant agrees to a credit search being performed');
		retval = retval + 1;
	}
	//var chk_creditsearch = document.getElementById("hid_chk_creditsearch").value;
 	//alert(chk_creditsearch);



	if (retval > 0){
		return false;
	}
	else{
		return true;
	}
}


//***********************************************************
function validateCriteria()
{
	var minage = document.getElementById("hid_lcu_minage").value;
	var maxage = document.getElementById("hid_lcu_maxage").value;
	var minamount = document.getElementById("hid_lcu_minamount").value;
	var maxamount = document.getElementById("hid_lcu_maxamount").value;
	var minpropertyvalue = document.getElementById("hid_lcu_minpropertyvalue").value;
	var minincome = document.getElementById("hid_lcu_minincome").value;
	var maxltv = document.getElementById("hid_lcu_maxltv").value;
	var loanamountforltvcalc = document.getElementById("hid_lcu_loanamountforltvcalc").value;

	var amount = document.getElementById("hid_amount").value;
	var propertyValue = document.getElementById("inp_propertyValue").value;
	var grossincome = document.getElementById("inp_grossincome").value;
	var resstatus = document.getElementById("sel_app1_ResidentialStatus").value;
	
	var dob = document.getElementById("inp_app1_dob").value;
	var age = calcAge(dob);
	
	var mortgageBalance = document.getElementById("inp_mortgageBalance").value;

	//ltv = Math.round(((parseFloat(amount) + parseFloat(mortgageBalance)) / parseFloat(propertyValue)) * 100);
	ltv = Math.round(((parseFloat(11000) + parseFloat(mortgageBalance)) / parseFloat(propertyValue)) * 100);

	//check Residential Status
	if (resstatus == 'Home Owner'){validresstatus = true;}else{validresstatus = false;}
	//Check Age
	if (age > minage && age < maxage){validage = true;}else{validage=false;}
	//Check Property Value
	if (parseFloat(propertyValue) > parseFloat(minpropertyvalue)){validpropertyValue = true;}else{validpropertyValue=false;}
	// Check income
	if (parseFloat(grossincome) > parseFloat(minincome)){validgrossincome = true;}else{validgrossincome=false;}
	// Check LTV
	if (ltv <= maxltv){validltv = true;}else{validltv = false;}
		
	if (validresstatus && validage && validpropertyValue && validgrossincome && validltv){
			return true;
	}
	else{
		return false;
	}
}

//***********************************************************




