if( typeof ExtendUser == 'undefined' ){
    ExtendUser = {};
}

ExtendUser.user = {};

ExtendUser.user.validacao = {
	
    campos: [
    {
	name: 'name',
	failMessage: 'Informe o nome'
    },

    {
	name: 'username',
	failMessage: 'Informe o nome de usuário'
    },

    {
	name: 'email',
	failMessage: 'Informe o email'
    },

    {
	name: 'password',
	failMessage: 'Informe a senha'
    },

    {
	name: 'password2',
	failMessage: 'Informe a confirmação de senha'
    }
    ],
	
    validou: function(){
	var validadorUsuario = ExtendUser.user.validacao.empresa;
		
	var result = this.exec( this.campos );
		
	if( !result ){
	    return false;
	}
	else{
	    var senha = document.getElementById('password').value;
	    var confirmacao = document.getElementById('password2').value;
			
	    if( senha !== confirmacao ){
		this.alertar('A senha  e a confirmação de senha não conferem');
		return false;
	    }
			
	    var emailRegex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
			
	    if( !emailRegex.test( document.getElementById('email').value ) ){
		this.alertar('Informe um email válido');
		return false;
	    }
	}
		
	var result2 = validadorUsuario.validar();
		
	if( !result2 ){
	    return false;
	}
		
	return true;
    },
	
    exec: function( campos ){
	for( var i = 0; i < campos.length; i++ ){
	    var campo = campos[i];
	    var el = document.getElementById( campo.name );
	    if( !el ) return true;
	    if( el.value == '' ){
		this.alertar( campo.failMessage );
		return false;
	    }

	    if( campo.defaultValue ){
		if( el.value == campo.defaultValue ){
		    this.alertar( campo.failMessage );
		    return false;
		}
	    }
	}
		
	return true;
    },
	
    alertar: function( msg ){
	alert(msg);
    }

};

ExtendUser.user.validacao.empresa = {
    campos: [
    {
	name: 'cargo',
	failMessage: 'Informe seu cargo na empresa'
    },
    {
	name: 'nomeempresa',
	failMessage: 'Informe o nome da Empresa'
    },

    {
	name: 'endereco',
	failMessage: 'Informe o endereço da empresa'
    },

    {
	name: 'numero',
	failMessage: 'Informe o número da casa'
    },

    {
	name: 'pais',
	failMessage: 'Informe o país'
    },

    {
	name: 'estado',
	failMessage: 'Informe o Estado'
    },

    {
	name: 'cidade',
	failMessage: 'Informe a cidade'
    },

    {
	name: 'cep',
	failMessage: 'Informe o cep'
    },

    {
	name: 'ddd',
	failMessage: 'Informe o DDD',
	defaultValue: '(xx)'
    },
    {
	name: 'telefone',
	failMessage: 'Informe o telefone',
	defaultValue: 'xxxxxxxx'
    }
],
	
    validar: function(){
	return ExtendUser.user.validacao.exec( this.campos );
    }
};