function check() {
	//# MINIMUM LENGTH, NULL AND STRING CHECK : First Name
	if (document.ECL_Estimate.Fname.value == "") {
		alert("Please Input Your First Name");
		return false;
	} else {
		mFN = document.ECL_Estimate.Fname.value
		var i,cnt = 0;
		for (i=0; i<mFN.length; i++) {
			c = mFN.charAt(i);
			if ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz., ".indexOf(c,0) < 0) {
				alert("Invalid Data on - First Name -");
				return false;
			}
		}
		if (i < 2) {
			alert("Please Input Your First Name Correctly.");
			return false;
		}
	}
	//# MINIMUM LENGTH, NULL AND STRING CHECK : Last Name
	if (document.ECL_Estimate.Lname.value == "") {
		alert("Please Input Your Last Name");
		return false;
	} else {
		mGN = document.ECL_Estimate.Lname.value
		var i,cnt = 0;
		for (i=0; i<mGN.length; i++) {
			c = mGN.charAt(i);
			if ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz., ".indexOf(c,0) < 0) {
				alert("Invalid Data on - Last Name -");
				return false;
			}
		}
		if (i < 2) {
			alert("Please Input Your Last Name Correctly.");
			return false;
		}
	}
	//# NULL AND STRING CHECK : E-Mail
	addr = document.ECL_Estimate.Email.value;
	badtxt = "!#$%&'()=\|,:;^[]{}`*?<>" + '"'
	// # NULL #
	if (addr != "") {
		// # PATTERN MATCHING #
		if (addr.match(/.+@.+\..+/)) {
			for (i=0; i<addr.length; i++) {
				n = escape(addr.charAt(i));
				// # 2Byte String CHECK #
				if (n.length > 3) {
					alert("The String of E-Mail Address Includes Bad Letter(s).");
					return false;
				}
				// # DOT AT THE TOP OR THE END
				if (i == 0 || i == addr.length - 1) {
					if (".".indexOf(addr.charAt(i),0) >= 0) {
					alert("Bad E-Mail String.");
					return false;
					}
				}
				// # "@" AT THE TOP OR THE END
				if (i == 0 || i == addr.length - 1) {
					if ("@".indexOf(addr.charAt(i),0) >= 0) {
					alert("Bad E-Mail String.");
					return false;
					}
				}
				// # BAD LETTERS #
				if (badtxt.indexOf(addr.charAt(i),0) >= 0) {
					alert("The String of E-Mail Address Includes Bad Letter(s).");
					return false;
				}
			}
			// # DOUBLE DOTS #
			if (addr.indexOf("..",0) >= 0) {
				alert("The String of E-Mail Address Includes Dots in Double.");
				return false;
			}
			// # "@" in TWICE #
			intIndex = addr.indexOf('@',0);
			intIndex = addr.indexOf('@',intIndex + 1);
			if (intIndex != -1) {
				alert("@ in TWICE");
				return false;
			}
		} else {
			alert("The String of E-Mail Address Includes Bad Letter(s).");
			return false;
		}
	} else {
		alert("Please Input Your E-Mail Address");
		return false;
	}
	//# NULL AND NUMBER CHECK : Phone
	if (document.ECL_Estimate.Phone.value == "") {
		alert("Please Input Phone Number");
		return false;
	} else {
		pnum = document.ECL_Estimate.Phone.value;
		var i,cnt = 0;
		for (i=0; i<pnum.length; i++) {
			c = pnum.charAt(i);
			if ("0123456789-".indexOf(c,0) < 0) {
				alert("Invalid Data on - Phone Number -");
				return false;
			}
		}
	}
	//# MAXLENGTH CHECK : Mailing Address
	adr = document.ECL_Estimate.Address.value;
	var i,cnt = 0;
	for(i=0; i<adr.length; i++) {
		if (escape(adr.charAt(i)).length >= 4 ) cnt+=2;
		else cnt++;
	}
	if (cnt > 250) {
		alert("Please Input Mailing Address Within 250 letters.");
		return false;
	}
	//# NULL AND NUMBER CHECK : Year of Manufacture
	if (document.ECL_Estimate.manuYear.value == "") {
		alert("Please Input Year of Manufacture");
		return false;
	} else {
		manuYr = document.ECL_Estimate.manuYear.value
		var i,cnt = 0;
		for (i=0; i<manuYr.length; i++) {
			c = manuYr.charAt(i);
			if ("0123456789".indexOf(c,0) < 0) {
				alert("Invalid Data on - Year of Manufacture -");
				return false;
			}
		}
	}
	//# SELECTED CHECK : Date of First Registration
	if (document.ECL_Estimate.CarRegYear.selectedIndex == 0) {
		alert("Please Select Date of First Registration");
		return false;
	}
	if (document.ECL_Estimate.CarRegMonth.selectedIndex == 0) {
		alert("Please Select Date of First Registration");
		return false;
	}
	if (document.ECL_Estimate.CarRegDay.selectedIndex == 0) {
		alert("Please Select Date of First Registration");
		return false;
	}
	//# NULL AND STRING CHECK : Make
	if (document.ECL_Estimate.Make.value == "") {
		alert("Please Input Make");
		return false;
	} else {
		mks = document.ECL_Estimate.Make.value
		var i,cnt = 0;
		for (i=0; i<mks.length; i++) {
			c = mks.charAt(i);
			if ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-_abcdefghijklmnopqrstuvwxyz ".indexOf(c,0) < 0) {
				alert("Invalid Data on - Make -");
				return false;
			}
		}
	}
	//# NULL AND STRING CHECK : Model
	if (document.ECL_Estimate.Model.value == "") {
		alert("Please Input Model");
		return false;
	} else {
		mdl = document.ECL_Estimate.Model.value
		var i,cnt = 0;
		for (i=0; i<mdl.length; i++) {
			c = mdl.charAt(i);
			if ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-_abcdefghijklmnopqrstuvwxyz ".indexOf(c,0) < 0) {
				alert("Invalid Data on - Model -");
				return false;
			}
		}
	}
	//# NULL AND STRING CHECK : Exterior Color
	if (document.ECL_Estimate.exColor.value == "") {
		alert("Please Input Exterior Color");
		return false;
	} else {
		ecol = document.ECL_Estimate.exColor.value
		var i,cnt = 0;
		for (i=0; i<ecol.length; i++) {
			c = ecol.charAt(i);
			if ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-_abcdefghijklmnopqrstuvwxyz ".indexOf(c,0) < 0) {
				alert("Invalid Data on - Exterior Color -");
				return false;
			}
		}
	}
	//# NULL AND STRING CHECK : Interior Color
	if (document.ECL_Estimate.inColor.value == "") {
		alert("Please Input Interior Color");
		return false;
	} else {
		icol = document.ECL_Estimate.inColor.value
		var i,cnt = 0;
		for (i=0; i<icol.length; i++) {
			c = icol.charAt(i);
			if ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-_abcdefghijklmnopqrstuvwxyz ".indexOf(c,0) < 0) {
				alert("Invalid Data on - Interior Color -");
				return false;
			}
		}
	}
	//# NULL AND NUMBER CHECK : Mileage
	if (document.ECL_Estimate.Mileage.value == "") {
		alert("Please Input Mileage");
		return false;
	} else {
		mil = document.ECL_Estimate.Mileage.value
		var i,cnt = 0;
		for (i=0; i<mil.length; i++) {
			c = mil.charAt(i);
			if ("0123456789".indexOf(c,0) < 0) {
				alert("Invalid Data on - Mileage -");
				return false;
			}
		}
	}
	//# SELECTED CHECK : Previous Ownership
	if (document.ECL_Estimate.preOwner.selectedIndex == 0) {
		alert("Please Select Previous Ownership");
		return false;
	}
	//# Submit
	return(true);
}
