var xmlHttp

function findUser()
{ 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
 
 var email = document.member.email;
 
 

 
var url="../ajax/getusername.php"
url=url+"?email="+email.value
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged2 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged2() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 var error = 0;
 
 var userwarning = xmlHttp.responseText
 
  var email = document.member.email;
  
   
  if (!email.value) {
  document.getElementById('warn_email').innerHTML = 'Required';
  } else {
  if (isValidEmail(email.value) === false)
                {
                  document.getElementById('warn_email').innerHTML = 'Please enter a valid email address';
                  error =1;
                } else {               
                	if (email.value && email.value.match(/[^-a-zA-Z0-9 .@_]/)) {
  				                document.getElementById('warn_email').innerHTML = 'No special characters allowed';
  				                error = 1;
  				              } else {
  				              
  			      
  				              	
  				              	 if (userwarning == "exists") 
						 	{ 
						 	document.getElementById('warn_email').innerHTML = 'Email already in use.';
						 	error = 1;
							} else {
							document.getElementById('warn_email').innerHTML = '';	
 							}
  				    
  				              }
  
  
  
                }
 }

 
 
	
 	
 if  (ValidateForm() === false) {
	error = 1;
	} 
	
if (error == 0) {
	document.member.submit();
	}	
 	
 	
 }
  
}





function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}


function isValidEmail(str)
{
  // trim starting / ending whitespace
  str = str.replace(/^\s*/, "");
  str = str.replace(/\s*$/, "");

  var at="@"
  var dot="."
  var lat=str.indexOf(at)
  var lstr=str.length
  var ldot=str.indexOf(dot)

  if (str.indexOf(at)==-1)
    return false

  if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
    return false

  if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
    return false

  if (str.indexOf(at,(lat+1))!=-1)
    return false

  if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
    return false

  if (str.indexOf(dot,(lat+2))==-1)
    return false

  if (str.indexOf(" ")!=-1)
    return false

  return true;
}


// helper function to check to see if a string is empty
function isEmpty(str)
{
  return ((str == null) || (str.length == 0));
}


function ValidateForm() {

var firstname = document.member.firstname;
var surname = document.member.surname;
var company = document.member.company;
var addr_1 = document.member.addr_1;
var addr_2 = document.member.addr_2;
var addr_3 = document.member.addr_3;
var town = document.member.town;
var county = document.member.county;
var postcode = document.member.postcode;
var country = document.member.country;
var tel = document.member.tel;
var practices = document.member.practices;
var password1 = document.member.password1;
var password2 = document.member.password2;
var email = document.member.email;

var error = 0;



if (!firstname.value) {
document.getElementById('warn_firstname').innerHTML = 'Required';
error = 1;
} else {
if (firstname.value && firstname.value.match(/[^-a-zA-Z0-9 .']/))
              {
                document.getElementById('warn_firstname').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_firstname').innerHTML = '';
              }
}


if (!surname.value) {
document.getElementById('warn_surname').innerHTML = 'Required';
error = 1;
} else {
if (surname.value && surname.value.match(/[^-a-zA-Z0-9 .']/))
              {
                document.getElementById('warn_surname').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_surname').innerHTML = '';
              }
}

if (!company.value) {
document.getElementById('warn_company').innerHTML = 'Required';
error = 1;
} else {
if (company.value && company.value.match(/[^-a-zA-Z0-9 ._&,\(\)']/))
              {
                document.getElementById('warn_company').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_company').innerHTML = '';
              }
}


if (!addr_1.value) {
document.getElementById('warn_addr_1').innerHTML = 'Required';
error = 1;
} else {
if (addr_1.value && addr_1.value.match(/[^-a-zA-Z0-9 ._&,\(\)']/))
              {
                document.getElementById('warn_addr_1').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_addr_1').innerHTML = '';
              }
}

if (addr_2.value) {
if (addr_2.value && addr_2.value.match(/[^-a-zA-Z0-9 ._&,\(\)']/))
              {
                document.getElementById('warn_addr_2').innerHTML = 'No special characters allowed';
                document.getElementById('warn_addr_2').className = 'error';
                error = 1;
              } else {              
              	document.getElementById('warn_addr_2').innerHTML = 'Optional';
              	document.getElementById('warn_addr_2').className = 'optional';
              }
} else {

              	document.getElementById('warn_addr_2').innerHTML = 'Optional';
              	document.getElementById('warn_addr_2').className = 'optional';
}

if (addr_3.value) {
if (addr_3.value && addr_3.value.match(/[^-a-zA-Z0-9 ._&,\(\)']/))
              {
                document.getElementById('warn_addr_3').innerHTML = 'No special characters allowed';
                document.getElementById('warn_addr_3').className = 'error';
                error = 1;
              } else {
              	document.getElementById('warn_addr_3').innerHTML = 'Optional';
              	document.getElementById('warn_addr_3').className = 'optional';
              }
} else {

              	document.getElementById('warn_addr_3').innerHTML = 'Optional';
              	document.getElementById('warn_addr_3').className = 'optional';
}


if (!town.value) {
document.getElementById('warn_town').innerHTML = 'Required';
error = 1;
} else {
if (town.value && town.value.match(/[^-a-zA-Z0-9 ._&,\(\)']/))
              {
                document.getElementById('warn_town').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_town').innerHTML = '';
              }
}

if (!county.value) {
document.getElementById('warn_county').innerHTML = 'Required';
error = 1;
} else {
if (county.value && county.value.match(/[^-a-zA-Z0-9 ._&,\(\)']/))
              {
                document.getElementById('warn_county').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_county').innerHTML = '';
              }
}


if (!postcode.value) {
document.getElementById('warn_postcode').innerHTML = 'Required';
error = 1;
} else {
if (postcode.value && postcode.value.match(/[^-a-zA-Z0-9 ]/))
              {
                document.getElementById('warn_postcode').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_postcode').innerHTML = '';
              }
}


if (!tel.value) {
document.getElementById('warn_tel').innerHTML = 'Required';
error = 1;
} else {
if (tel.value && tel.value.match(/[^-0-9+() ]/))
              {
                document.getElementById('warn_tel').innerHTML = 'No special characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_tel').innerHTML = '';
              }
}


if (!practices.value) {
document.getElementById('warn_practices').innerHTML = 'Required';
error = 1;
} else {
if (practices.value && practices.value.match(/[^0-9]/))
              {
                document.getElementById('warn_practices').innerHTML = 'Only numerals allowed';
                error = 1;
              } else {
              	document.getElementById('warn_practices').innerHTML = '';
              }
}



if (!password1.value) {
document.getElementById('warn_password1').innerHTML = 'Required';
error = 1;
} else {
if (password1.value && password1.value.match(/[^0-9a-zA-Z]/))
              {
                document.getElementById('warn_password1').innerHTML = 'Only alphanumeric characters allowed';
                error = 1;
              } else {
              	document.getElementById('warn_password1').innerHTML = '';
              }
}


if (!password2.value) {
document.getElementById('warn_password2').innerHTML = 'Required';
error = 1;
} else {
if (password2.value && password2.value.match(/[^0-9a-zA-Z]/))
              {
                document.getElementById('warn_password2').innerHTML = 'Only alphanumeric characters allowed';
                error = 1;
              } else {
              
              	
              if (password2.value != password1.value) {
	                      document.getElementById('warn_password2').innerHTML = 'passwords do not match';
	                      document.getElementById('warn_password1').innerHTML = 'passwords do not match';
	                      error = 1;
	                    } else {
	                    	document.getElementById('warn_password2').innerHTML = '';
	                    	document.getElementById('warn_password1').innerHTML = '';
              }
              
              
              }
}






if (error == 1) { return false; } else {return true; }


}