var lastfirst = '';
var lastlast = '';
var lastpass = '';
var lastpassagain = '';
var lastemail = '';
var lastrealname = '';
var lastaddress = '';
var lastaddress2 = '';
var lasttown = '';
var lastcounty = '';
var lastcountry = '';
var lastdobday = '';
var lastdobmonth = '';
var lastdobyear = '';

function xmlhttpPost(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(getquerystring());
}

function getquerystring() {
    qstr = 'first=' + escape(document.getElementById('firstname').value)+'&last='+ escape(document.getElementById('lastname').value);
    return qstr;
}

function updatepage(str){
    if (str=="TAKEN")
	{
		document.getElementById('firstnameanim').innerHTML = document.getElementById('cross').innerHTML;
		document.getElementById('lastnameanim').innerHTML = document.getElementById('cross').innerHTML;
		var error = document.getElementById('firstnameerror');
		error.innerHTML="Sorry, this name is taken!";
		var error = document.getElementById('lastnameerror');
		error.innerHTML="Sorry, this name is taken!";		
	} 
	else if (str=="INVALID")
	{
		document.getElementById('firstnameanim').innerHTML = document.getElementById('cross').innerHTML;
		document.getElementById('lastnameanim').innerHTML = document.getElementById('cross').innerHTML;
		var error = document.getElementById('firstnameerror');
		error.innerHTML="Sorry, this name is invalid!";
		var error = document.getElementById('lastnameerror');
		error.innerHTML="Sorry, this name is invalid!";		
	}
	else if (str=="OK")
	{
		validate(false);	
	}
}

function echeck(str) {

		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					
}
function trim(str)
{
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');	
}

function validate(post)
{
	//Here we need to check each field to make sure it's ok.
	var avFirstName = document.getElementById('firstname');
	var avLastName = document.getElementById('lastname');
	var password = document.getElementById('password');
	var passwordAgain = document.getElementById('passwordagain');
	var email = document.getElementById('email');	
	var rl = document.getElementById('rl');
	var address1 = document.getElementById('address');
	var address2 = document.getElementById('address2');
	var town = document.getElementById('town');
	var county = document.getElementById('county');
	var country = document.getElementById('country');
	
	if (avFirstName.value != lastfirst)
	{
		var error = document.getElementById('firstnameerror');
		error.innerHTML="";
		
		avFirstName.value = trim(avFirstName.value);
		if (avFirstName.value.length < 1 || avFirstName.value.length > 32)
		{
			if (avFirstName.value=="")
			{
				document.getElementById('firstnameanim').innerHTML = "";	
			}
			else
			{
				document.getElementById('firstnameanim').innerHTML = document.getElementById('cross').innerHTML;
				error.innerHTML="Must be 1-32 characters";
			}
		}
		else
		{
			var n = avFirstName.value;
			if (n.indexOf(' ') != -1)
			{
				document.getElementById('firstnameanim').innerHTML = document.getElementById('cross').innerHTML;
				error.innerHTML="Mustn't contain a space";
			}
			else
			{
				document.getElementById('firstnameanim').innerHTML = document.getElementById('tick').innerHTML;	
				
				if (avLastName.value.length > 0 && post == true)
				{
					xmlhttpPost("checkname.php");	
				}
				
			}
		}
		lastfirst = avFirstName.value;
	}
	if (avLastName.value != lastlast)
	{
		var error = document.getElementById('lastnameerror');
		error.innerHTML="";
		
		avLastName.value = trim(avLastName.value);
		if (avLastName.value.length < 1 || avLastName.value.length > 32)
		{
			if (avLastName.value=="")
			{
				document.getElementById('lastnameanim').innerHTML = "";	
			}
			else
			{
				document.getElementById('lastnameanim').innerHTML = document.getElementById('cross').innerHTML;
				error.innerHTML="Must be 1-32 characters";
			}
		}
		else
		{
			var n = avLastName.value;
			if (n.indexOf(' ') != -1)
			{
				document.getElementById('lastnameanim').innerHTML = document.getElementById('cross').innerHTML;
				error.innerHTML="Mustn't contain a space";
			}
			else
			{
				document.getElementById('lastnameanim').innerHTML = document.getElementById('tick').innerHTML;	
				if (avFirstName.value.length > 0)
				{
					xmlhttpPost("checkname.php");	
				}
			}
		}
		lastlast = avLastName.value;
	}
	if (password.value != lastpass || passwordAgain.value != lastpassagain)
	{
		var error = document.getElementById('passworderror');
		error.innerHTML="";
		var error2 = document.getElementById('passwordagainerror');
		error2.innerHTML="";
		
		if (password.value.length < 8)
		{
			if (password.value.length ==0)
			{
				document.getElementById('passwordanim').innerHTML = "";	
			}
			else
			{
				document.getElementById('passwordanim').innerHTML = document.getElementById('cross').innerHTML;	
				error.innerHTML="Too short! 8 char minimum";
			}
		}
		else
		{
			if (password.value != lastpass)
			{
				document.getElementById('passwordanim').innerHTML = document.getElementById('tick').innerHTML;	
			}
		}
		if (passwordAgain.value=='')
		{
			document.getElementById('passwordagainanim').innerHTML = "";	
		}
		else
		{
			if (passwordAgain.value == password.value)
			{
				document.getElementById('passwordagainanim').innerHTML = document.getElementById('tick').innerHTML;	
			}
			else
			{
				document.getElementById('passwordagainanim').innerHTML = document.getElementById('cross').innerHTML;
				error2.innerHTML="Passwords don't match";
			}
		}
		lastpass=password.value;
		lastpassagain = passwordAgain.value;
	}
	if (email.value != lastemail)
	{
		var error = document.getElementById('emailerror');
		error.innerHTML="";
		if (echeck(email.value)==true)
		{
			document.getElementById('emailanim').innerHTML = document.getElementById('tick').innerHTML;
		}
		else
		{
			if (email.value=="")
			{
				document.getElementById('emailanim').innerHTML = "";
			}
			else
			{
				document.getElementById('emailanim').innerHTML = document.getElementById('cross').innerHTML;	
				error.innerHTML="Invalid E-Mail address";
			}
		}
		lastemail = email.value;
	}
	if (rl.value != lastrealname)
	{
		var error = document.getElementById('rlerror');
		error.innerHTML="";
		rl.value = trim(rl.value);
		if (rl.value.length == 0)
		{
			document.getElementById('realnameanim').innerHTML = "";
		}
		else
		{
			if (rl.value.indexOf(' ')== -1)
			{
				document.getElementById('realnameanim').innerHTML = document.getElementById('cross').innerHTML;
				error.innerHTML="All names please";
			}
			else
			{
				if (rl.value.length > 64)
				{
					document.getElementById('realnameanim').innerHTML = document.getElementById('cross').innerHTML;	
					error.innerHTML="Must be under 64 chars";
				}
				else
				{
					document.getElementById('realnameanim').innerHTML = document.getElementById('tick').innerHTML;	
				}
			}
		}
		lastrealname = rl.value;
	}
	if (address1.value != lastaddress)
	{
		var error = document.getElementById('addresserror');
		error.innerHTML="";
		address1.value = trim(address1.value);
		if (address1.value.length == 0)
		{
			document.getElementById('addressanim').innerHTML = "";
		}
		else
		{
			if (address1.value.length > 32)
			{
				document.getElementById('addressanim').innerHTML = document.getElementById('cross').innerHTML;	
				error.innerHTML="Must be under 32 chars";
			}
			else
			{
				document.getElementById('addressanim').innerHTML = document.getElementById('tick').innerHTML;
			}
		}
		lastaddress = address1.value;
	}
	if (address2.value != lastaddress2)
	{
		var error = document.getElementById('address2error');
		error.innerHTML="";
		address2.value = trim(address2.value);
		if (address2.value.length == 0)
		{
			document.getElementById('address2anim').innerHTML = "";
		}
		else
		{
			if (address2.value.length > 32)
			{
				document.getElementById('address2anim').innerHTML = document.getElementById('cross').innerHTML;	
				error.innerHTML="Must be under 32 chars";
			}
			else
			{
				document.getElementById('address2anim').innerHTML = document.getElementById('tick').innerHTML;
			}
		}
		lastaddress2 = address2.value;
	}
	if (town.value != lasttown)
	{
		var error = document.getElementById('townerror');
		error.innerHTML="";
		town.value = trim(town.value);
		if (town.value.length == 0)
		{
			document.getElementById('townanim').innerHTML = "";
		}
		else
		{
			if (town.value.length > 32)
			{
				document.getElementById('townanim').innerHTML = document.getElementById('cross').innerHTML;	
				error.innerHTML="Must be under 32 chars";
			}
			else
			{
				document.getElementById('townanim').innerHTML = document.getElementById('tick').innerHTML;
			}
		}
		lasttown = town.value;
	}
	if (county.value != lastcounty)
	{
		var error = document.getElementById('countyerror');
		error.innerHTML="";
		county.value = trim(county.value);
		if (county.value.length == 0)
		{
			document.getElementById('countyanim').innerHTML = "";
		}
		else
		{
			if (county.value.length > 32)
			{
				document.getElementById('countyanim').innerHTML = document.getElementById('cross').innerHTML;	
				error.innerHTML="Must be under 32 chars";
			}
			else
			{
				document.getElementById('countyanim').innerHTML = document.getElementById('tick').innerHTML;
			}
		}
		lastcounty = county.value;
	}
	if (country.value != lastcountry)
	{
		var error = document.getElementById('countryerror');
		error.innerHTML="";
		country.value = trim(country.value);
		if (country.value.length == 0)
		{
			document.getElementById('countryanim').innerHTML = "";
		}
		else
		{
			if (country.value.length > 32)
			{
				document.getElementById('countryanim').innerHTML = document.getElementById('cross').innerHTML;	
				error.innerHTML="Must be under 32 chars";
			}
			else
			{
				document.getElementById('countryanim').innerHTML = document.getElementById('tick').innerHTML;
			}
		}
		lastcountry = country.value;
	}	
}
function unnoob(first,last,avt)
{
    xmlhttpPost("createavt.php?first="+escape(first)+"&last="+escape(last)+"&type="+escape(avt)+"&action=createavt.unnoob");
}


