/*
	Copyright © 2008 VoteOften Inc.
*/

document.observe('dom:loaded', function(){
	$('signup-form').observe('submit', function(e){
		e.stop();
		if(checkForm() == false) return false;
		$('submit-btn').disabled = true;
		this.submit();
	});
});

function checkForm()
{
	if(checkUsername() == false || checkPassword() == false || checkRPassword() == false || checkEmail() == false)
	{
		return false;
	}

	var form = $('signup-form');

	var input = form['terms'];
	var terms = Form.Element.getValue(input);
	
	if(terms != "agree")
	{
		$('terms-error').innerHTML = "You must agree to the Terms of Service and Privacy Policy.";
		return false;
	}
	else
	{
		$('terms-error').innerHTML = "";
	}

	return true;
}

function checkUsername()
{
	var form = $('signup-form');
	var input = form['uname'];
	var uname = Form.Element.getValue(input);
	
	if(uname.length < 5)
	{
		$('uname-error').innerHTML = "Usernames must be greater than 5 characters long.";
		$('uname-error').style.padding = "5px 0";
		return false;
	}
	else if(uname.length < 5)
	{
		$('uname-error').innerHTML = "Usernames must be less than 15 characters long.";
		$('uname-error').style.padding = "5px 0";
		return false;
	}
		
	var special = " !@#$%^&*()+=-[]\\\';,./{}|\":<>?~`";
	for(i=0;i<uname.length;i++)
	{
		if(special.indexOf(uname.charAt(i)) != -1)
		{
			$('uname-error').innerHTML = "Symbols aren't allowed.";
			$('uname-error').style.padding = "5px 0";
			return false;
		}
	}
	
	$('uname-error').innerHTML = "";
	$('uname-error').style.padding = "0";
	return true;
}

function checkPassword()
{
	var form = $('signup-form');
	var input = form['upass'];
	var upass = Form.Element.getValue(input);
	
	if(upass.length < 5)
	{
		$('upass-error').innerHTML = "Passwords must be greater than 5 characters long.";
		$('upass-error').style.padding = "5px 0";
		return false;
	}
	
	$('upass-error').innerHTML = "";
	$('upass-error').style.padding = "0";	
	return true;
}

function checkRPassword()
{
	var form = $('signup-form');
	var input = form['upass'];
	var upass = Form.Element.getValue(input);

	var input = form['rupass'];
	var rupass = Form.Element.getValue(input);
	
	if(upass != rupass)
	{
		$('rupass-error').innerHTML = "Your passwords don't match.";
		$('rupass-error').style.padding = "5px 0";
		return false;
	}
	
	$('rupass-error').innerHTML = "";
	$('rupass-error').style.padding = "0";	
	return true;
}

function checkEmail()
{ 	
	var form = $('signup-form');
	var input = form['email'];
	var email = Form.Element.getValue(input);

  	var valid = (email.indexOf("@") > 0);
  	
  	if(!valid)
  	{
		$('email-error').innerHTML = "That isn't a valid email address.";
		$('email-error').style.padding = "5px 0";
		return false;
  	}
  	
  	$('email-error').innerHTML = "";
	$('email-error').style.padding = "0";
  	return true;
}
