
//new version 

function Validate(){
	var myErrors = '';
	var passerr = '';
	
	//name of text input fields on form to be checked
	var myFields = new Array("name","email","postcode","username","password","password2");
	
	//descriptions of those fields
	var myDescs = new Array("Name","Email address","Postcode","Username","Password","Repeated password");
	
	// check for empty fields and store a record of the empty ones (if found)
	for (var x = 0; x < myFields.length; x++){	
		if(document.getElementById(myFields[x]).value==''){
			myErrors += '- ' + myDescs[x] + ' is missing\r\n';
		}
	}
 	
	// check for valid email FORMAT, some code courtesy of:
	// http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C40004CC8C6
    if (document.getElementById('email').value !== '' ){
		re = new RegExp(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
		if (re.test(document.getElementById('email').value) == false) {
        	myErrors += '- Email address is invalid\r\n';
   		}
	}
	
	//check repeated password matches first typed password
	if(document.getElementById('password').value !== document.getElementById('password2').value){
		myErrors += '- Passwords do not match\r\n';
		passerr = '1';
	}
	
	//no 'obvious' errors (e.g. with fields not being filled) so now check what is in those fields..........
		
	if (document.getElementById('username').value !== ''){
			
		if (document.getElementById('username').value !== ''){
			// Check for white space / non-AN chars in username, some code courtesy of:
			//http://code.dreamincode.net/snippet68.htm 
			//regex from do_register.php
			reWhiteSpace = new RegExp(/^[a-z0-9]*$/i);
			if (reWhiteSpace.test(document.getElementById('username').value) == false) {
				 myErrors += '- Your chosen username contains non-alphanumeric characters and/or spaces\r\n';
			}
		}
		
		// length checker (username)
		if(document.getElementById('username').value.length < 6){
			myErrors += '- Your chosen username is less than 6 characters\r\n';
		}
		
		//check for letters in username
		reLetters = new RegExp(/.*[a-zA-Z]/);
		if (reLetters.test(document.getElementById('username').value) == false) {  
			myErrors += '- Your chosen username contains no letters \r\n';
		}
		
		
		// check for numbers in username
		reNumbers = new RegExp(/.*[0-9]/);
		if (reNumbers.test(document.getElementById('username').value) == false) {
			myErrors += '- Your chosen username contains no numbers \r\n';
		}
	}
	/*** now repeat for password ***/
	if ((document.getElementById('password').value !== '')&&(passerr=='')){
		
		if (document.getElementById('password').value !== ''){
			reWhiteSpace = new RegExp(/^[a-z0-9]*$/i);
			if (reWhiteSpace.test(document.getElementById('password').value) == false) {
				 myErrors += '- Your chosen password contains non-alphanumeric characters and/or spaces\r\n';
			}
		}
		
		if(document.getElementById('password').value.length < 6){
			myErrors += '- Your chosen password is less than 6 characters\r\n';
		}
		
		reLetters = new RegExp(/.*[a-zA-Z]/);
		if (reLetters.test(document.getElementById('password').value) == false) {  
			myErrors += '- Your chosen password contains no letters \r\n';
		}
		
		reNumbers = new RegExp(/.*[0-9]/);
		if (reNumbers.test(document.getElementById('password').value) == false) {
			myErrors += '- Your chosen password contains no numbers \r\n';
		}
		
	}
	
	
	// if errors found, display a list of descriptions of erroneous fields
	if (myErrors.length > 0){
		alert('The following errors occured: \r\n\r\n' +myErrors);
		return false;
	}
	else {
		return true;
	}
}

