
function applyNowForm(frm){
	if(!ValidateField(frm.CompanyName,true,"text","Please enter your Company or Organisation Name.")) return false;
	if(!ValidateField(frm.Address1,true,"text","Please enter your address.")) return false;
	if(!ValidateField(frm.Postcode,true,"text","Please enter your post or ZIP code.")) return false;
	if(!ValidateField(frm.Country,true,"select","Please enter your country.")) return false;
	if(!ValidateField(frm.FirstName,true,"text","Please enter your first name.")) return false;
	if(!ValidateField(frm.SurName,true,"text","Please enter your surname.")) return false;
	if(!ValidateField(frm.Position,true,"text","Please enter your company position or title.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Phone,true,"int","Please enter your phone number.")) return false;
	if(!ValidateField(frm.FranchiseCountry,true,"text","Please enter your choice of franchise country.")) return false;
	if(!ValidateField(frm.Interest,true,"text","Please enter your reasons for interest.")) return false;
	return true;
}

function solarRegisterForm(frm){
	if(!ValidateField(frm.CompanyName,true,"text","Please enter your Company or Name.")) return false;
	if(!ValidateField(frm.Address1,true,"text","Please enter your address.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Phone,true,"int","Please enter your phone number.")) return false;
	if(!ValidateField(frm.Mobile,true,"text","Please enter your Mobile phone number.")) return false;
	if(!ValidateField(frm.InstallationAddress,true,"text","Please enter your information about the Site Installation address.")) return false;
	return true;
}


// ************************************* //
//          Validation Functions         //
// ************************************* //

function validateMessage(fld, msg) {
	if (!msg) msg = 'enter a';
	alert(msg);
	fld.focus();
}


function isNumeric(value) {
	value = value.toString();
	if (value.replace(/[0-9]+/, "") == '') {
		return true;
	} else {
		return false;
	}
}

function ValidateField(fld, required, type, message) {
	if (type != "date" && type != "datetime" && type != "time" && type != "lookup" && type != "checks")
		var fieldvalue = fld.value.replace(/ $/);
	switch(type) {
		case "text": case "varchar": case "memo": case "halign": case "color": case "html":
			if (fieldvalue == "") {	
				fld.focus();
				alert(message);
				return false;
			}
			break;
		case "image" :
			var ret = true;
			if (fieldvalue.length < 5)
				ret = false;
			fieldvalue = fieldvalue.toLowerCase();
			if (fieldvalue.substr(fieldvalue.length-4, 4) != ".gif" && fieldvalue.substr(fieldvalue.length-4, 4) != ".jpg" && fieldvalue.substr(fieldvalue.length-5, 5) != ".jpeg")
				ret = false;
				
			if (fieldvalue.indexOf(":") != -1 && fieldvalue.indexOf("?") != -1 && fieldvalue.indexOf("&") != -1 && fieldvalue.indexOf("+") != -1)
				ret = false;
			
			if (!ret) {
				fld.focus();
				fld.value = "";
				alert(message + "\n- valid image file types are: (gif,jpg,jpeg)\n- file names can NOT contain an of the following characters: (?,&,+,:)");
			}
			return ret;
			break;
		case "email":
			if (fieldvalue == '' || fieldvalue.replace(/[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/, '') != '') {
				fld.focus();
				alert(message + "\n- E-mail address needs to be correctly formatted. (eg): yourname@domain.com");
				return false;
			}
			break;
		case "currency" :
			if (fld.value == "" || fld.value.replace(/[0-9]*[.]?[0-9]?[0-9]?/, "") != "") {
				fld.focus();
				alert(message + "\n- must be a valid currency entry (no $ sign, max 2 decimal places).");
				return false;
			}
			break;
		case "int" :
			if (fld.value == "" || fld.value.replace(/[0-9]+/, "") != "") {
				fld.focus();
				alert(message + "\n- must be a valid integer (non-decimal number).");
				return false;
			}
			break;
		case "dec" :
			if (fld.value == "" || fld.value.replace(/[0-9]*[.]?[0-9]*/, "") != "") {
				fld.focus();
				alert(message + "\n- must be a valid decimal number.");
				return false;
			}
			break;
		case "lookup": case "select":
			if (fld.options[fld.selectedIndex].value == "" || fld.options[fld.selectedIndex].value == "0") {
				fld.focus();
				alert(message);
				return false;
			}
			break;
		case "checks":
			checkcheck = false;
			if (fld.length == undefined) {
				if (fld.checked)
					checkcheck = true;
			}				
			else {
				for (var i=0; i < fld.length; i++) {
					if (fld[i].checked) {
						checkcheck = true;
						break;
					}
				}
			}
			if (!checkcheck) {
				alert(message + "\n- select at least one item from the list by clicking the box so that a check appears in it.");
				return false;
			}
			break;
	}	
	return true;
}

