// validate form

function isEmail(emailStr) {
   var emailReg = /^[a-zA-Z0-9_\-\.]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
   var regex = new RegExp(emailReg);
   return regex.test(emailStr)
}

function validForm(passForm) {
	
			// check for first name
			if (passForm.firstName!=null) {
				if (passForm.firstName.value.length == 0) {
					alert('Please enter your first name');
					passForm.firstName.focus();
					return false;
				}
			}
		
			// check for last name
			if (passForm.lastName!=null) {
				if (passForm.lastName.value.length == 0) {
					alert('Please enter your last name');
					passForm.lastName.focus();
					return false;
				}
			}
		
		if(passForm.day!=null) {
			// validate date day/month
			var day = passForm.day.value;
			var month = passForm.month.value;
			var year = passForm.year.value;
			
			var allowed = '0123456789';
			
			if (!(day == '' && month == '' && ((year == '') || (year == '3000')))) {
				for (var i=0; i < day.length; i++) {
					if (allowed.indexOf(day.charAt(i)) == -1) {
						alert(day.charAt(i) + ' invalid character in date');
						passForm.day.focus();
						return false;
					}
				}
				for (var i=0; i < month.length; i++) {
					if (allowed.indexOf(month.charAt(i)) == -1) {
						alert(month.charAt(i) + ' invalid character in date');
						passForm.month.focus();
						return false;
					}
				}
				for (var i=0; i < year.length; i++) {
					if (allowed.indexOf(year.charAt(i)) == -1) {
						alert(year.charAt(i) + ' invalid character in date');
						passForm.year.focus();
						return false;
					}
				}
				// need to improve this eg. 31/9/80 is valid here but chokes sql server
				if (day < 1 || day > 31) {
					alert('Invalid day');
					passForm.day.focus();
					return false;
				}
				if (month < 1 || month > 12) {
					alert('Invalid month');
					passForm.month.focus();
					return false;
				}
				if (month == 2 && day > 29) {
					alert('Invalid date');
					passForm.month.focus();
					return false;
				}
				if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30) {
					alert('Invalid date');
					passForm.month.focus();
					return false;
				}
			}
		}
		
			// validate mobile
			if(passForm.mobile!=null) {
			var mobile = passForm.mobile.value;
			
			// check for mobile
			if (mobile.length == 0) {
				alert('Please enter your mobile number');
				passForm.mobile.focus();
				return false;
			}
			
			//	validate entered value
			if (mobile.length > 0 && !valid_mobile('mobile','country')) {
				passForm.mobile.focus();
				return false;
			}
			}
		
			// check for postcode
			if (passForm.postcode!=null) {
				if (passForm.postcode.value.length == 0) {
					alert('Please enter your postcode');
					passForm.postcode.focus();
					return false;
				}
			}
		

		// validate email if it exists
		if(passForm.email!=null) {
			var email = passForm.email.value;
			email = trim(email);
			
				// check for email address
				if (email.length == 0) {
					alert('Please enter your email address');
					passForm.email.focus();
					return false;
				}
			
			if (email.length > 0) {
			     if (!isEmail(email)){



					    passForm.email.focus();
						alert("Invalid email address"); 
						return false;
				 }
			}
		}

		

	// validate selection of a parent account if required
	

	// check for any contact details
	if(passForm.mobile!=null && passForm.address!=null && passForm.address!=null && passForm.postcode!=null && passForm.email!=null) {
	if ((passForm.mobile.value.length == 0)&&((passForm.address.value.length == 0)||(passForm.postcode.value.length == 0))&&(isEmail(passForm.email.value) == false)) {
		alert('Please enter one of the following contact details:\n -mobile number\n -email address\n -street address & postcode');
		passForm.mobile.focus();
		return false;
	}
	}


    return true;	  
}

function anyNight_onClick(master,slaves) {
 	var intSlaves = slaves.length;
	if (master.checked) {  
		for (var i = 0; i < intSlaves; i++) {
			slaves[i].checked = true;
		}
	}
	else {
		for (var i = 0; i < intSlaves; i++) {
			slaves[i].checked = false;
		}	
	}
}

// validate altering details form
function validForm2(passForm) {
	// validate mobile
	var mobile = passForm.v2mobile.value;
	if (mobile.length > 0 && !valid_mobile('v2mobile','country')) {
		passForm.v2mobile.focus();
		return false;		
	}

	// validate email
	var email = passForm.email.value;
	if (email.length != 0) {
		if(!isEmail(email)) {
			passForm.email.focus();
			alert("Invalid email address"); 
			return false;
		}
	}

	// check for email or phone
	if ((mobile.length == 0) && (email.length == 0)){
        alert('Please enter your mobile number or email address');
		passForm.v2mobile.focus();
        return false;
	}

	
		// check for password
		if (passForm.password.value.length == 0) {
			alert('Please enter your password');
			passForm.password.focus();
			return false;
		}
	
	
	return true;
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g, '');
}


function checkNumber(question) {
	var number = question.value;
	var allowed = '0123456789';
	var temp = '';
    for (var i=0; i < number.length; i++) {
        if (allowed.indexOf(number.charAt(i)) == -1) {
            alert('Please enter numbers only');
			question.value = temp;
			question.focus();
            return false;
        }
		temp = temp + number.charAt(i);
    }
}

// validate number
function checkNumberRange(question) {
	var number = question.value;
	var allowed = '0123456789.';
	var temp = '';
    for (var i=0; i < number.length; i++) {
        if (allowed.indexOf(number.charAt(i)) == -1) {
            alert('Please enter numbers only');
			question.value = temp;
			question.focus();
            return false;
        }
		temp = temp + number.charAt(i);
    }
}
