// JavaScript Document

/* ----------- */
/* Insert User */
/* ----------- */

var error = "";
var fields = "";

function validateUser(){
	var user		= document.getElementById('nickname').value;
	var regexpGeral	= /^[A-Za-z0-9_.]{6,14}$/;
	var regexpChar	= /^[A-Za-z0-9_.]$/;
	
	if(user == ""){
		fields = "User name";
	}else if(!regexpGeral.test(user)){
		if(user.length < 6 || user.length > 14){
			error = "Invalid username!<br />Valid user names must have between 6 and 14 characteres!";
		}else if(!regexpChar.test(user)){
			error = "Invalid username!<br />Valid user names contains letters, numbers, underscores ( _ ) and/or points ( . ) ";
		}
	}
}

function validatePass(){
	var pass		= document.getElementById('pass').value;
	var confirmPass	= document.getElementById('confirmpass').value;

	if(pass == ""){ 
		if(fields){
			fields+= ", Password";
		}else{
			fields = "Password";
		}
	}else if(confirmPass == ""){
		if(fields){
			fields+= ", Password Confirmation";
		}else{
			fields = "Password Confirmation";
		}
	}else if(pass != confirmPass){
		error = "Password and Password Confirmation doesn't match!";
	}else if(pass.length < 6){
		error = "Password too short!";
	}
}

function validateFirstName(){
	var firstName = document.getElementById('firstname').value;
	if(firstName == ""){
		if(fields){
			fields+= ", First Name";
		}else{
			fields = "First Name";
		}
	}
}

function validateLastName(){
	var lastName = document.getElementById('lastname').value;
	if(lastName == ""){
		if(fields){
			fields+= ", Last Name";
		}else{
			fields = "Last Name";
		}
	}
}


function validateEMail(){
	var email = document.getElementById('email').value
	var regexp = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	if(email == ""){
		if(fields){
			fields+= ", E-Mail";
		}else{
			fields = "E-mail";
		}
	}else if(!regexp.test(email)){
		error = "Invalid e-mail! Please, insert a valid e-mail address.";
	}
}

function validateCountry(){
	var country = document.getElementById('countriesuser');
	if(country.selectedIndex == 0){
		if(fields){
			fields+= ", Country";
		}else{
			fields = "Country";
		}
	}
}

function validateState(){
	var state = document.getElementById('stateuser').value;
	if(state == ""){
		if(fields){
			fields+= ", State";
		}else{
			fields = "State";
		}
	}
}

function validateCity(){
	var city = document.getElementById('cityuser').value;
	if(city == ""){
		if(fields){
			fields+= ", City";
		}else{
			fields = "City";
		}
	}
}

function validateAddress(){
	var address = document.getElementById('addressuser').value;
	if(address == ""){
		if(fields){
			fields+= ", Address";
		}else{
			fields = "Address";
		}
	}
}

function validatePostal(){
	var postal = document.getElementById('postaluser').value;
	if(postal == ""){
		if(fields){
			fields+= ", ZIP/Postal code";
		}else{
			fields = "ZIP/Postal code";
		}
	}
}

function validatePhone(){
	var phone = document.getElementById('phoneuser').value;
	if(phone == ""){
		if(fields){
			fields+= ", Phone";
		}else{
			fields = "Phone";
		}
	}
}

function validateMembership(){
	var membership = document.getElementById('membershipuser');
	if(membership.selectedIndex == 0){
		if(fields){
			fields+= ", Membership";
		}else{
			fields = "Membership";
		}
	}
}

function validateCaptcha(){
	var captcha = document.getElementById('text_captcha');
	if(captcha.selectedIndex == 0){
		if(fields){
			fields+= ", verifying code";
		}else{
			fields = "Verifying code";
		}
	}
}


function verifyFormUser(){
	validateUser();
	validatePass();
	validateFirstName();
	validateLastName();
	validateEMail();
	validateCountry();
	validateState();
	validateCity();
	validateAddress();
	validatePostal();
	validatePhone();
	validateMembership();

	if(error){
		showBoxes(error)
		error = "";
		fields = "";	
		return false;
	}else if(fields){
		showBoxes("Please, fill the following fields: "+fields+"!");
		error = "";
		fields = "";
		return false;
	}else{
		return true;
	}
}

function validateSection(obj){
	if(!obj.id){
		obj = document.getElementById(obj);
	}
	
	switch(obj.thisId){
		case "user":
			validateUser();
			validatePass();
			break;
		case "person":
			validateFirstName();
			validateLastName();
			break;
		case "contact":
			validateEMail();
			validateCountry();
			validateState();
			validateCity();
			validateAddress();
			validatePostal();
			validatePhone();
			break;
		case "club":
			validateMembership();
			break;
		case "captcha":
			validateCaptcha();
			break;
	}

	if(error){
		showBoxes(error);
		error = "";
		fields = "";	
		return false;
	}else if(fields){
		showBoxes("Please, fill the following fields: "+fields+"!");
		error = "";
		fields = "";
		return false;
	}else{
		nextArea(obj);
	}
}