// COST CALCULATOR GLOBAL VARIABLES

var MIN = 1;
var MAX = 100000000;

// GENERAL ENQUIRY FORM VALIDATION

function checkEnquiry( form ) {
	trimFields( form );
	with( form ){
		if( isEmpty( name ) ) {
			alert( "Please enter your name" );
			name.focus();
			return false;
		} else if ( isEmpty( email ) && isEmpty( phone ) ) {
			alert( "Please enter either your email address or telephone number" );
			email.focus();
			return false;
		} else if ( !isEmailAddress( email ) && isEmpty ( phone ) ) {
			alert( "Please a valid email address" );
			email.focus();
			return false;
		} else if( enquiryType.value == 0 || enquiryType.selectedIndex == 0 ) {
			alert( "Please select an enquiry type" );
			enquiryType.focus();
			return false;
		} else if( isEmpty( enquiryInfo ) ) {
			alert( "Please enter your enquiry details" );
			enquiryInfo.focus();
			return false
		}
		return true;
	}
}

// COST CALCULATOR VALIDATION

function checkEstimate( form ) {
	if ( form != null ) {
		var NO_TYPE			= "Please select a transaction type";		
		trimFields( form );
		with ( form ) {
			switch ( type.value ) {
				case '1': 		if ( !validPrice( salePrice ) ) {
									salePrice.focus();
									return false;
								}
								break;
				case '2': 		if ( !validPrice( purchasePrice ) ) {
									purchasePrice.focus();
									return false;
								}
								break;
				case '3': 		if ( !validPrice( remortgagePrice ) ) {
									remortgagePrice.focus();
									return false;
								}
								break;
				case '4': 		if ( !validPrice( salePrice ) ) {
									salePrice.focus();
									return false;
								} else if ( !validPrice( purchasePrice ) ) {
									purchasePrice.focus();									
									return false;
								}
								break;
				default:		alert( NO_TYPE );
								return false;
			}
			return true;
		}
	}
	return false;
}

function validPrice( price ) {
	var NO_PRICE 		= "Please enter a price";
	var OUTSIDE_RANGE 	= "Please enter a price between " + MIN + " and " + MAX;
	var NON_NUMERIC		= "Please enter only numeric characters";

	if ( !isEmpty( price ) ) {
		if ( isNaN( price.value ) ) {
			alert( NON_NUMERIC );
			return false;
		} else if ( !rangeOK( price.value ) ) {
			alert( OUTSIDE_RANGE );
			return false;
		}
	} else {
		alert( NO_PRICE );
		return false;
	}
	return true;
}

// INSTRUCTION FORM VALIDATION

function checkInstruct( form ) {
	if ( form != null ) {
		with ( form ) {
			if ( feeEarner.selectedIndex == 0 && usedBefore.selectedIndex == 0) {
				alert( "Please select a fee earner" );
				feeEarner.focus();
				return false;
			} else if ( title.value == 0 || title.selectedIndex == 0 ) {
				alert( "Please select a title" );
				title.focus();
				return false;
			} else if ( isEmpty( forename ) ) {
				alert( "Please enter your forename" );
				forename.focus();
				return false;
			} else if ( isEmpty( surname ) ) {
				alert( "Please enter your surname" );
				surname.focus();
				return false;
			} else if ( isEmpty( number ) ) {
				alert( "Please enter your house name / number" );
				number.focus();
				return false;
			} else if ( isEmpty( street ) ) {
				alert( "Please enter your street name" );
				street.focus();
				return false;
			} else if ( isEmpty( town ) ) {
				alert( "Please enter your town" );
				town.focus();
				return false;
			} else if ( isEmpty( postcode ) ) {
				alert( "Please enter your postcode" );
				postcode.focus();
				return false;
			} else if ( isEmpty( telephone ) ) {
				alert( "Please enter your telephone number" );
				telephone.focus();
				return false;
			} else if ( !isEmpty( email ) ) {
				if ( !isEmailAddress( email ) ) {
					alert( BAD_EMAIL );
					email.focus();
					return false;
				}
			}
			return true;
		}
	}
	return false;
}

// RANGE VALIDATION

function rangeOK( value ) {
	return ( value >= MIN && value <= MAX );
}

function updateForType( type ) {
	switch ( type ) {
		case '1': 	showField( 'sale_span' );
					hideField( 'purchase_span' );
					hideField( 'remortgage_span' );
					break;
		case '2': 	showField( 'purchase_span' );
					hideField( 'sale_span' );
					hideField( 'remortgage_span' );
					break;
		case '3': 	showField( 'remortgage_span' );
					hideField( 'sale_span' );
					hideField( 'purchase_span' );
					break;
		case '4': 	showField( 'sale_span' );
					showField( 'purchase_span' );
					hideField( 'remortgage_span' );
					break;
	}
}


// DISPLAY FEE EARNER LIST ON INSTRUCTION FORM

function feeEarnerList() {
	var feeEarnerSpan = document.getElementById( 'feeEarnerList' );
	var title = document.getElementById( 'usedBefore' );
	feeEarnerSpan.style.display = title.value == "Yes" ? "block" : "none";
}
