// COST CALCULATOR GLOBAL VARIABLES

var MIN = 1;
var MAX = 100000000;

// GENERAL ENQUIRY FORM VALIDATION

var BAD_EMAIL = "Please enter a valid email address";

function checkEnquiry( form ) {
	trimFields( form );
	with( form ){
		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( company ) ) {
			alert( "Please enter your company" );
			company.focus();
			return false;
		} else if ( !isEmpty( email ) ) {
			if ( !isEmailAddress( email ) ) {
				alert( BAD_EMAIL );
				email.focus();
				return false;
			}
		} else if ( isEmpty( telephone ) ) {
			alert( "Please enter your telephone number" );
			telephone.focus();
			return false;
		} else if ((enquiry_type.value == 0) || (enquiry_type.selectedIndex == 0)) {
          alert ("Please select an enquiry type ");
		  enquiry_type.focus();
          return false;
		} else if ( isEmpty( enquiry_info ) ) {
			alert( "Please enter your enquiry" );
			enquiry_info.focus();
			return false
		}
		return true;
	}
}

// ATTEND EVENT FORM VALIDATION

var BAD_EMAIL = "Please enter a valid email address";

function checkAttend( form ) {
	trimFields( form );
	with( form ){
		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( company ) ) {
			alert( "Please enter your company" );
			company.focus();
			return false;
		} else if ( isEmpty( jobtitle ) ) {
			alert( "Please enter your job title" );
			jobtitle.focus();
			return false;
		} else if ( isEmpty( phone ) ) {
			alert( "Please enter your telephone number" );
			phone.focus();
			return false;
		} else if ( isEmpty( email ) ) {
			alert( "Please enter your email" );
			email.focus();
			return false;
		} else if ( !isEmpty( email ) ) {
			if ( !isEmailAddress( email ) ) {
				alert( BAD_EMAIL );
				email.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( internalPrice ) ) {
									salePrice.focus();
									return false;
								}
								break;
				case '2': 		if ( !validPrice( externalPrice ) ) {
									purchasePrice.focus();
									return false;
								}
								break;
				case '4': 		if ( !validPrice( internalPrice ) ) {
									internalPrice.focus();
									return false;
								} else if ( !validPrice( externalPrice ) ) {
									externalPrice.focus();									
									return false;
								}
								break;
				default:		alert( NO_TYPE );
								return false;
			}
			return true;
		}
	}
	return false;
}

function validPrice( price ) {
	var NO_PRICE 		= "Please enter an amount";
	var OUTSIDE_RANGE 	= "Please enter an acmount 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 ( 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( company ) ) {
				alert( "Please enter your comany name" );
				company.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;
	}
}