
function Validate_JoinForm(){
if(!isChkBoxGroupChecked(document.JoinForm, 1)){alert('Please select an area of interest');return false;};
if(isBlank(document.JoinForm.AbsFirstName.value)){alert('Please enter your First Name');document.JoinForm.AbsFirstName.focus();return false;};
if(isBlank(document.JoinForm.AbsLastName.value)){alert('Please enter your Last Name');document.JoinForm.AbsLastName.focus();return false;};
if(isBlank(document.JoinForm.AbsBusinessName.value)){alert('Please enter your Business Name');document.JoinForm.AbsBusinessName.focus();return false;};
if(!isSelected(document.JoinForm.AbsState)){alert('Please select a state');document.JoinForm.AbsState.focus();return false;};
if(!checkPhone(document.JoinForm.AbsPhone)){return false};if(!isInteger(document.JoinForm.AbsPostcode.value)){alert('Please enter a valid Postcode');document.JoinForm.AbsPostcode.focus();return false;};
if(!isLengthExact(document.JoinForm.AbsPostcode.value, 4)){alert('Please enter a valid Postcode');document.JoinForm.AbsPostcode.focus();return false;};
if(!checkPhone(document.JoinForm.AbsFax)){return false};if(!isEmail(document.JoinForm.AbsEmail.value)){alert('Please enter an email address eg. yourname@address.com');document.JoinForm.AbsEmail.focus();return false;};
document.JoinForm.AbsEmail.value = trimEmail(document.JoinForm.AbsEmail.value);
if(isBlank(document.JoinForm.AbsPassword.value)){alert(var_PswdErr);document.JoinForm.AbsPassword.focus();return false;};
if(!validateUserPassword(document.JoinForm.AbsPassword,'Password')){return false};if(isBlank(document.JoinForm.Password2.value)){alert('Please rekey your Password');document.JoinForm.Password2.focus();return false;};
if(!checkPassword()){return false};if(!subscribe()){return false};
disableSubmit(document.JoinForm, var_DisableButtonText)
}

function isInteger(src) {
	// only allow numbers to be entered
	var checkOK = "0123456789";
	 
	var checkStr = src;
	var allValid = true;
	var allNum = "";
 
	for (i = 0;  i < checkStr.length;  i++){
		 
		ch = checkStr.charAt(i);
		 
		for (j = 0;  j < checkOK.length;  j++) {
			//alert('ch='+ch+'\ncheckOK.charAt(j)='+checkOK.charAt(j))
			if (ch != checkOK.charAt(j)) {
				allValid = false;
			} else {
				allValid = true;
				break;
			}
		}
		if (allValid==false) {
			break;
		}
	}
	return allValid
}
function isBlank(src) {
	
	if (src=='') {
		return true;
	} else {
		return false;
	}
}
function isEmail(emailStr) {
	// checks if the e-mail address is valid
	emailStr = trimEmail(emailStr)
	var emailPat = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) {return false;}

	// make sure the IP address domain is valid
	var IPArray = matchArray[2].match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
	if (IPArray != null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255)
				return false;
		}
	}
	return true;
}
function trimEmail(inputString) {

	if (typeof inputString != "string") { return inputString; }

	var retValue = inputString;
	var ch = retValue.substring(0, 1);
	   
	// Check for spaces at the beginning of the string
	while (ch == " ") { 
		retValue = retValue.substring(1, retValue.length);
		ch = retValue.substring(0, 1);
	}
	// Check for spaces at the end of the string
	ch = retValue.substring(retValue.length-1, retValue.length);
	while (ch == " ") { 
		retValue = retValue.substring(0, retValue.length-1);
		ch = retValue.substring(retValue.length-1, retValue.length);
	}
	while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
	 	retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
	}
	// Return the trimmed string back to the user
	return retValue; 

}
function isLengthExact(src, theLength) {
	// src must be exactly theLength chars long
	if (src.length==theLength)  {
		return true
	} else {
		return false
	}
}
function isSelected(el) {
	if(el.selectedIndex==0)
		return false
	else
		return true
}
function isChkBoxGroupChecked(formObj,grpNum){
	var blnIsChecked = false
	var HiddenFieldName = '';
	for (var c = 0; c < formObj.elements.length; c++){
		// is it a checkbox?
		if (formObj.elements[c].type == 'checkbox'){
			// is it in our group?
			if (formObj.elements[c].name.indexOf('chkgrp'+grpNum)!='-1'){
				// set hidden field name
				HiddenFieldName = formObj.elements[c].name.split('chkgrp'+grpNum+'_')[1]
				// is it checked?
				if (formObj.elements[c].checked == true) {
					blnIsChecked = true;
					document.getElementById(HiddenFieldName).value = 'CHECKED'
				} else {
					document.getElementById(HiddenFieldName).value = ''
				}
			}
		}
	}
	return blnIsChecked
}

function CreateChkBoxGroup(grpNum, fldName, checked, OnClk){
	var txtOnClk = ''; var txtChecked = '';
	if (checked){txtChecked = ' CHECKED'}
	if (OnClk != ''){txtOnClk = " onclick=\"" + OnClk + "\""}
	document.write('<input type="checkbox"' + txtChecked + ' name="chkgrp' + grpNum + '_' + fldName + '"' + ' id="chkgrp' + grpNum + '_' + fldName + '"' + txtOnClk + '>')
	document.write('<input type="hidden" name="' + fldName + '" id="' + fldName + '">')
}
function disableSubmit(formObj, btnValue) {
	var nav = false;
	if ( (navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 3) ) {nav = true}
	if ( document.all || document.getElementById || nav ) {
		var tempobj = "";
		for ( i = 0; i < formObj.length; i++ ) {
			tempobj = formObj.elements[i];
			if ( (tempobj.type.toLowerCase() == "submit") || (tempobj.type.toLowerCase() == "reset") || (tempobj.type.toLowerCase() == "button") ) { 
				tempobj.disabled = true; 
				if (btnValue!='') {tempobj.value = btnValue}
			}
		}
		formObj.submit();
	} else {
		alert("Your form has not been submitted as you're not using IE 4+ or NS 4+. Please, upgrade your browser.");
		return false;
	}
}

