// function to do some basic validation of loan quote form

function postcodeCheck(postcode)
{
	//check postcode format is valid
 	var test = postcode;
	var size = test.length

	test = test.toUpperCase(); //Change to uppercase

 	while (test.slice(0,1) == " ") //Strip leading spaces
  	{
		test = test.substr(1,size-1);
		size = test.length
  	}

	while(test.slice(size-1,size)== " ") //Strip trailing spaces
  	{
		test = test.substr(0,size-1);
		size = test.length
  	}

	//document.details.pcode.value = test; //write back to form field

	if (size < 6 || size > 8)
	{
		//Code length rule
  		return false;
  	}

	if (!(isNaN(test.charAt(0))))
	{
		//leftmost character must be alpha character rule
 	  	return false;
 	}

 	if (isNaN(test.charAt(size-3)))
	{
		//first character of inward code must be numeric rule
   		return false;
  	}

	if (!(isNaN(test.charAt(size-2))))
	{
		//second character of inward code must be alpha rule
   		return false;
  	}

	if (!(isNaN(test.charAt(size-1))))
	{
		//third character of inward code must be alpha rule
   		return false;
	}

	return true;
}

function validate()
{
	var ok = true;

	if(document.getElementById("bma_membership_number").value=='') {
                alert('Please enter your bma membership number.');
                ok = false;
        }

	if(document.getElementById("forename").value=='') {
		alert('Please enter your forename.');
		ok = false;
	}

	if(document.getElementById("surname").value=='') {
		alert('Please enter your surname.');
		ok = false;
	}

	if(document.getElementById("house_name").value=='') {
                alert('Please enter your house name/number.');
                ok = false;
        }

	if(document.getElementById("town").value=='') {
                alert('Please enter your town.');
                ok = false;
        }
                                                             
	if(document.getElementById("city").value=='') {
                alert('Please enter your city.');
                ok = false;
        }
                                                                              
        if(document.getElementById("postcode").value=='' || !postcodeCheck(document.getElementById("postcode").value)) {
                alert('Please enter a valid post code.');
                ok = false;
        }

	if(document.getElementById("email_address").value=='') {
		alert('Please enter your email address.');
		ok = false;
	}
	else if(isEmail(document.getElementById("email_address").value) == false) {
		alert('Please enter a valid email address.');
		ok = false;
	}

	var index = document.getElementById("seminar_location").selectedIndex;
	var fpe_index = document.getElementById("fpe_seminar_location").selectedIndex;

	if((document.getElementById("seminar_location").options[index].value=='') && (document.getElementById("fpe_seminar_location").options[fpe_index].value=='')) {
                alert('Please choose a seminar location.');
                ok = false;
        }


	return ok;
}

function isEmail(str)
{

	if (str == null || str == '' || str.length == 0) {
		return false;
	}
	
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
	var matchArray=str.match(emailPat);
	
	if (matchArray == null) { return false; }
	
	var user=matchArray[1];
	var domain=matchArray[2];
	
	if (user.match(userPat) == null) { return false; }
	
	var IPArray = domain.match(ipDomainPat);
	
	if (IPArray != null) {
		for (var i = 1; i <= 4; i++) {
			if (IPArray[i] > 255)
			return false;
		}
		return true;
	}
	
	var domainArray=domain.match(domainPat);
	
	if (domainArray == null) { return false; }
	
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	
	if (domArr[domArr.length-1].length < 2 || domArr[domArr.length-1].length > 3) { return false; }
	
	if (len < 2) { return false; }
	
	return true;
}

function isPhone(str)
{
	var ok = false;
	var reg1str = "^[0-9 ]+$"
	var reg1 = new RegExp(reg1str);
	var reg2str = "[0-9]"
	var reg2 = new RegExp(reg2str, "g");
	if (reg1.test(str)) {
		var numbers = 0;
		var result;
		while ((result = reg2.exec(str)) != null) {
			if (numbers > 0 && result.lastIndex == 0)  {
				break;
			}
			numbers++;
		}
		if (numbers >= 8) {
			ok = true;
		}
	}
	return ok;
}

