function validate_pessoa_fisica() {
	error = "";
	regex = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
	if( !regex.test( document.new_client.fisica_nascimento.value ) )
		error += "Por favor forneça o seu aniversário no formato dd/mm/aaaa\n";
	regex = /^\d{10}/;
	if( document.new_client.fisica_nome.value == "" )
		error += "Por favor preencha o campo com o nome do usuário\n";
	if( document.new_client.fone_residencial.value == "" )
		error += "Por favor preencha o campo com o seu telefone\n";
	/*else if( !regex.test ( document.new_client.fone_residencial.value ) )
		error += "Por favor preencha o telefone digitando os 2 dígitos do DDD e os 8 dígitos do telefone\n"; */
	return error;
}

function validate_pessoa_juridica() {
	error = ""; 
	regex = /^\d{10}/;
	if( document.new_client.juridica_razao.value == "" )
		error += "Por favor preencha o campo com a razão social\n";
	if( document.new_client.juridica_responsavel.value == "" )
		error += "Por favor forneça o nome do responsável\n";
	if( document.new_client.fone_residencial.value == "" )
		error += "Por favor forneça o telefone do responsável\n";
	/*else if( !regex.test( document.new_client.fone_residencial.value ) ) 
		error += "Por favor preencha o telefone digitando os 2 dígitos do DDD e os 8 dígitos do telefone\n"; 
	regex = /^\d+$/;*/
	if( !document.new_client.isento.checked ) {
		if( document.new_client.juridica_estadual.value == "" )
			error += "Por favor preencha o numero de inscrição estadual\n";
		else if( !regex.test( document.new_client.juridica_estadual.value ) )
			error += "Por favor preencha o numero de inscrição estadual de maneira correta\n";
	}
	return error;	
}

function validate_autentication( new_hosting_client ) {
	error = "";
	regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;;
	if( !regex.test( document.new_client.email.value ) ) {
		error += "Por favor insira um e-mail válido\n";
	}
	
	regex = /^[A-Za-z0-9]{1,1}[A-Za-z0-9_-]{0,16}$/;

	if( document.new_client.login.value == "" )
		error += "Por favor insira um login\n";
	else if( document.new_client.login.value.length < 1 )
		error += "Por favor insira um login com no mínimo 1 dígitos\n";
	else if( document.new_client.login.value.length > 16 )
		error += "Por favor insira um login com no máximo 16 dígitos\n";
	else if( !regex.test( document.new_client.login.value ) )
		error += "Login inválido, permitido somente letras, número, hífen e undescore \"_\"\n";
	
	if( new_hosting_client ) {

		var entrada = 0; 

        if(document.new_client.senha.value.length < 7){ 

                entrada = entrada - 1; 
        } 
        
        if(!document.new_client.senha.value.match(/[a-z_]/i) || !document.new_client.senha.value.match(/[0-9]/)){ 

                entrada = entrada - 1; 
        } 
        
        if(!document.new_client.senha.value.match(/\W/)){ 

                entrada = entrada - 1; 
        } 
        if(document.new_client.senha.value.match(/\&/)){ 

                entrada = -4; 
        } 

		if( document.new_client.senha.value.length < 5 )
			error += "Por favor insira uma senha com no mínimo 5 dígitos\n";
		else if( document.new_client.senha.value.length > 14 )
			error += "Por favor insira uma senha com no máximo 14 dígitos\n";
		else if( document.new_client.senha.value != document.new_client.senha2.value )
			error += "Senha e repetição não conferem\n";
		else if( document.new_client.senha.value == document.new_client.login.value )
			error += "O login e a senha não podem ser iguais.";
		else if( entrada == -3)
			error += "Insira uma senha com segurança maior que MUITO BAIXA\n";
		else if( entrada == -4)
			error += "A senha não permite o caracter \"&\"\n";
	}	
	return error;	
}

function login_test_return( check ) {
	if( check == 'OK' )
		return "";
	else
		return check + "\n";
}

function validate_address() {
	error = "";
	regex = /^\d{8}/;
	if( document.new_client.info_endereco.value == "" ){
		error += "Por favor insira o seu endereço\n";
	}
	if( document.new_client.info_bairro.value == "" ){
		error += "Por favor insira o seu bairro\n";
	}
	if( document.new_client.info_cep.value == "" ){
		error += "Por favor insira o seu cep\n";
	}
	if( document.new_client.numero_endereco.value == "" ){
		error += "Por favor insira o número de endereço !\n";
	}
	/*else if( !regex.test( document.new_client.info_cep.value ) ){
		error += "Por favor insira somente os números do seu cep\n";
	}*/
	if( document.new_client.info_estado.value == "" ){
		error += "Por favor escolha o seu estado e cidade\n";
	}
	else if( document.new_client.info_cidade.value == "" ){
		error += "Por favor escolha a sua cidade\n";
	}
	return error;
}

function validate_id_register_br(){
	error = "";
	if( document.new_client.id_registro_br.value == "" ){
		//error += "Por favor insira o seu id do Registro.br\n"
	}
	return error;
}

function validate_payment( type ) {
	if( type == "B" ) {
		return validate_payment_boleto()
	}
	else if( type == "T" ) {
		return validate_payment_conta()
	}
	else {
		return validate_payment_debito()
	}
}

function validate_payment_boleto() {
	return "";
	
}

function validate_payment_conta() {
	error = "";
	if( document.new_client.ddd.value == "" ){
		error += "Por favor insira o seu ddd para pagamento por conta telefonica\n";
	}
	if( document.new_client.telefone.value == "" ){
		error += "Por favor insira o seu telefone para pagamento por conta telefonica\n";
	}
	if( document.new_client.nome_titular.value == "" ){
		error += "Por favor insira o nome do titular do telefone para pagamento por conta telefonica\n";
	}
	if( document.new_client.cpf_titular.value == "" ){
		error += "Por favor insira o cpf do titular do telefone para pagamento por conta telefonica\n";
	}
	return error;
}

function validate_payment_debito() {
	error = "";
	if( document.new_client.agencia.value == "" ){
		error += "Por favor insira a agencia para pagamento por débito em conta\n";
	}
	if( document.new_client.conta.value == "" ){
		error += "Por favor insira a conta para pagamento por débito em conta\n";
	}
	if( document.new_client.digito_conta.value == "" ){
		error += "Por favor insira o dígito da conta para pagamento por débito em conta\n";
	}
	if( document.new_client.debito_nome_titular.value == "" ){
		error += "Por favor insira o nome do titular da conta para pagamento por débito em conta\n";
	}
	if( document.new_client.debito_cpf_titular.value == "" ){
		error += "Por favor insira cpf do titular da conta para pagamento por débito em conta\n";
	}
	return error;
	
}

function validate_form( arr ) {
    var check = arr[0];
	var new_client = arr[1];
	var client_type = arr[2];
	var new_hosting_client = arr[3];
	var has_payment = arr[4]
	var error = login_test_return( check );
    var payment_type = '';
	var payment_new = '';
	if( new_client != 'true' && has_payment ) {		
		for( i=0; i<document.new_client.new_payment_type.length; i++ ) {
			if( document.new_client.new_payment_type[i].checked == true ) {
				payment_new = document.new_client.new_payment_type[i].value;
				break;
			}
		}
		if( payment_new == 'old' ) {
			payment_type = 'ok';/*
			alert( document.getElementById('nr_registro_fp').length );
			for( i=0; i<document.new_client.nr_registro_fp.length; i++ ) {
				if( document.new_client.nr_registro_fp[i].checked == true ) {
					payment_type =  document.new_client.nr_registro_fp[i].value;
					break;
				}
			}*/
		}	
	}
	else {
		payment_new = 'new';
	}
	if( payment_new == 'new' ) {
		for( i=0; i<document.new_client.plano_pagamento.length; i++ ) {
			if( document.new_client.plano_pagamento[i].checked == true ) {
				payment_type =  document.new_client.plano_pagamento[i].value;
				break;
			}
		}
	}
	error += validate_id_register_br();
	
	if( payment_type == '' )
		error += "Escolha um tipo de pagamento\n"; 
	if( client_type == 'F' ){
		if( new_client == 'true' ) {
			error += validate_pessoa_fisica();
			error += validate_address();
		}
		if( payment_new == 'new' ) {
			error += validate_payment( payment_type );
		}
		error += validate_autentication( new_hosting_client );
	}
	else {
		if( new_client == 'true' ) {
			error += validate_pessoa_juridica();
			error += validate_address();
		}
		if( payment_new == 'new' ) {
			error += validate_payment( payment_type );
		}
		error += validate_autentication( new_hosting_client );
	}
	document.new_client.submit_identify.disabled = false;
	if( error == '' ) {
		document.new_client.submit();
		return true;
	}
	alert( error );
	return false;
}

function validate_domain( domain ) {
	regex = /^(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	return regex.test( domain );
}
