
function ValidNumber(thestring) {
	for (i = 0; i < thestring.length; i++) {
    	var ch = thestring.substring(i, i+1);
		if (ch < "0" || ch > "9") {
        	alert("Please enter numbers 0 thru 9 only, no spaces");
			return false;
       }
	}
		return true;
}

function checkPostCode(postCode) {
	return /^[A-Z]{1,2}[0-9]{1,2}[A-Z]? ?[0-9][ABDEFGHJLNPQRSTUWXYZ]{2}$/i.test(postCode);
}


function formCheck (formobj, formName) {
	switch (formName) {
		case 'general':
			// name of mandatory fields
			var fieldRequired = Array("name", "risk_addr", "postcode", "home_tel","email_addr","startday","startmonth","startyear","insurance_type");
			// field description to appear in the dialog box
			var fieldDescription = Array("Full name", "Risk address", "Postcode", "Home telephone number","E-mail address","Start day","Start month","Start Year","Type of cover");
			break;
		case 'home':
			var fieldRequired = Array("name", "risk_addr", "postcode", "home_tel","email_addr","startday","startmonth","startyear","buildingsuminsured","buildingcover","contentcover","contentsuminsured","personalpossessions","propertytype","bedrooms","privatedwelling","claims");
			var fieldDescription = Array("Full name", "Risk address", "Postcode", "Home telephone number","E-mail address","Start day","Start month","Start Year","Building sum insured","Type of cover required (building)","Type of cover required (contents)","Contents sum insured","Personal possessions extension?","Type of property","Numer of bedrooms","Occupied solely as private dwelling?","Made any claims in the last 5 years?");
			break;
		case 'motorcommercial':
			var fieldRequired = Array("name", "address", "postcode", "tel_no","email_addr","startday","startmonth","startyear","vehiclemake","enginesize","yearofman","value","modified","kept","security","accident","offence","disbility","criminal");
			var fieldDescription = Array("Full name", "Address", "Postcode", "Telephone number","E-mail address","Start day","Start month","Start Year","Make of vehicle","Engine size","Year of manufacturer","Vehicle value","Has the vehicle been modified","Where is the vehicle kept overnight","Has the vehicle been fitted with any security","Been involved in accident or loss in the last 3 years?","Been convicted of any motoring offence in the last 5 years?","Suffer any physical or mental disability?","any criminal offences?");
			break;
		case 'motor':
			var fieldRequired = Array("name", "address", "postcode", "home_tel","email_addr","startday","startmonth","startyear","vehiclemake","enginesize","yearofman","value","modified","kept","security","selfday","selfmonth","selfyear","selfocc","selftype","selfperiod","selfncb","useofvehicle","accident","offence","disbility","drivers","criminal");
			var fieldDescription = Array("Full name", "Address", "Postcode", "Home telephone number","E-mail address","Start day","Start month","Start Year","Make of vehicle","Engine size","Year of manufacturer","Vehicle value","Has the vehicle been modified","Where is the vehicle kept overnight","Has the vehicle been fitted with any security","Day of birth","Month of birth","Year of birth","Your occupation","Your type of licence","Period licence held for","Number of years NCB available","Use of vehicle","Been involved in accident or loss in the last 3 years?","Been convicted of any motoring offence in the last 5 years?","Suffer any physical or mental disability?","Drivers required","any criminal offences?");
			break;
		case 'motortrade':
			var fieldRequired = Array("name", "postcode", "work_tel","email_addr", "besttime", "how_to_contact");
			var fieldDescription = Array("Full name", "Postcode", "Work telephone number","E-mail address", "When to contact", "How to contact");
			break;
		case 'travel':
			var fieldRequired = Array("name", "address", "postcode", "home_tel","email_addr","startday","startmonth","startyear","applicantname","applicantage","commenceday","commencemonth","commenceyear","periodofcover","typeofcover","areacode","medical","wintersportscover","baggageexclusion");
			var fieldDescription = Array("Full name", "Address", "Postcode", "Home telephone number","E-mail address","Start day","Start month","Start Year","Applicant name","Applicant age","Commencement day","Commence Month","Commence Year","Period of cover","Type of cover","Area code","Medical problems","Winter Sports Cover","Baggage cover exclusion");
			break;
		case 'haulage':
			var fieldRequired = Array("name", "address", "postcode","email_addr");
			var fieldDescription = Array("Full name", "Address", "Postcode","E-mail address");
			break;
		default:
			return false;
	}

	var alertMsg = "The following fields are required:\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var fieldToCheck = fieldRequired[i];
		if (fieldToCheck == 'postcode' && document.getElementById('postCode1') && document.getElementById('postCode2')) {
			fieldToCheck = 'postCode1';
		}

		var obj = formobj.elements[fieldToCheck];
		if (obj){
			if (obj.type == null) {
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				continue;
			}

			switch(obj.type){
				case "select-one":
					if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "Please select"){
						alertMsg += " - " + fieldDescription[i] + "\n";
					}
					break;
				case "select-multiple":
					if (obj.selectedIndex == -1){
						alertMsg += " - " + fieldDescription[i] + "\n";
					}
					break;
				case "text":
					if (fieldToCheck == 'postCode1') {
						if (!checkPostCode(document.getElementById('postCode1').value + document.getElementById('postCode2').value)) {
							alertMsg += " - " + fieldDescription[i] + "\n";
						}
						break;
					}
				case "textarea":
					if (obj.value == "" || obj.value == null){
						alertMsg += " - " + fieldDescription[i] + "\n";
					}
					break;
				default:
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}
	 else {
		alert(alertMsg);
		return false;
	}
}
