Indica.controller.cadastrocandidato = {
	EMAIL_STATUS_BUSCANDO: 'emailbuscando',

	EMAIL_STATUS_EXISTENTE: 'emailexistente',

	EMAIL_STATUS_NAOEXISTE: 'emailnaoexiste',

	CPF_STATUS_BUSCANDO: 'cpfbuscando',

	CPF_STATUS_EXISTENTE: 'cpfexistente',

	CPF_STATUS_NAOEXISTE: 'cpfnaoexiste',

	statusEmail: '',

	statusCpf: '',

	qtFormacao: 0,

	qtEmpresa: 0,
	
	
	init : function()
	{
		//Aplica tooltip de recompensa na página de vaga para candidato não logado
		jQuery('.tooltipVaga').bt(
			{
					padding: 6,
					width: 160,
					spikeLength: 5,
					spikeGirth: 10,
					cornerRadius: 8,
					fill: 'rgba(255, 204, 51, .9)',
					strokeWidth: 2,
					strokeStyle: '#ff9933',
					cssStyles: {color: '#666', fontWeight: 'normal', fontSize: '10px'},
					positions: ['bottom'],
					hoverIntentOpts: { interval: 100, timeout: 3000 }
			}
		);
		
	},
	
	index: function(){
		
		var that = this;



		//Adicionar cidades de acordo com o estado;
		NOIX.get( 'cadastro_estado' ).on( 'change', function()
		{
			that.atualizaCidadeSelect();
		}
		);

		NOIX.validation.registerTags();

		NOIX.get( 'cpfPessoa' ).applyMask( 'cpf' );
		NOIX.get( 'nmCep' ).applyMask( 'cep' );
		
		NOIX.get('dtNascimento_dia').applyMask('number');
		NOIX.get('dtNascimento_mes').applyMask('number');
		NOIX.get('dtNascimento_ano').applyMask('number');

		NOIX.get( "cpfPessoa" ).on( 'change', function(){
			Indica.controller.cadastrocandidato.validaCpf();
		});
		NOIX.get( 'btContinuar' ).on( 'click', function(){
			Indica.controller.cadastrocandidato.submit();
		});

	},
	
	validaCpf: function()
	{
		jQuery.ajax(
			{
				url: Indica.siteUrl + '/cadastroindicador/verificacpf',

				data: {
					cpf: NOIX.get( 'cpfPessoa' ).value
				},

				beforeSend: function(){
					Indica.controller.cadastrocandidato.statusCpf = Indica.controller.cadastrocandidato.CPF_STATUS_BUSCANDO;
					NOIX.get( 'informacao_cpf' ).innerHTML = 'Verificando cpf...';
				},

				complete: function( data ){
					eval( 'var response = ' + data.responseText );

					if( response.status == 'success' ){
						Indica.controller.cadastrocandidato.statusCpf = Indica.controller.cadastrocandidato.CPF_STATUS_NAOEXISTE;
						NOIX.get('informacao_cpf').innerHTML = '';
					}
					else{
						Indica.controller.cadastrocandidato.statusCpf = Indica.controller.cadastrocandidato.CPF_STATUS_EXISTENTE;
						NOIX.get('informacao_cpf').innerHTML = response.message;
					}
				},

				type: 'POST'
			}
		);
	},

	submit: function(){
		var validou = NOIX.validation.process(
			function(){
					Indica.messages.appMessage( '', this.getError().message, 1 );
				}
		);


		if( !validou ){
			return false;
		}

		if( !NOIX.get( "masculino" ).checked && !NOIX.get( "feminino" ).checked ){
			Indica.messages.appMessage('', 'Selecione o sexo' );
			return false;
		}

		var campoDia = NOIX.get( 'dtNascimento_dia' ).value;
		var campoMes = NOIX.get( 'dtNascimento_mes' ).value;
		var campoAno = NOIX.get( 'dtNascimento_ano' ).value;

		if( !Indica.data.verificaDataNascimento( campoDia, campoMes, campoAno ) ){
			Indica.messages.appMessage( '', 'Data inválida' );
			return false;
		}

		var campoEmail = NOIX.get( 'nmEmail' ).value;
		var campoEmailVerif = NOIX.get( 'nmConfEmail' ).value;
		
		if( campoEmail != campoEmailVerif ){
			Indica.messages.appMessage( '', "E-mail de confirmação inválido.", 1 );
			return false;
		}
		
		var campoSenha = NOIX.get( 'nmSenha' ).value;
		var campoSenhaVerif = NOIX.get( 'nmConfSenha' ).value;
		
		if( campoSenha.length >= 6 ){
			if( campoSenha != campoSenhaVerif ){
				Indica.messages.appMessage( '', "Senhas digitadas não coincidem.", 1 );
				return false;
			}
		}
		else {
			Indica.messages.appMessage( '', "A senha deve ter pelo menos 6 dígitos", 1 );
			return false;
		}

		if( Indica.controller.cadastrocandidato.statusEmail == Indica.controller.cadastrocandidato.EMAIL_STATUS_EXISTENTE ){
			Indica.messages.appMessage( '', 'O email informado já existe no nosso sistema. Por favor, informe outro.' );
			return false;
		}
		if( Indica.controller.cadastrocandidato.statusCpf == Indica.controller.cadastrocandidato.CPF_STATUS_EXISTENTE ){
			Indica.messages.appMessage( '', 'O CPF informado já existe no nosso sistema.' );
			return false;
		}


		var objSelect = NOIX.get( "select_como_conheceu" );

		if( objSelect.options[ objSelect.selectedIndex ].getAttribute( 'comp' ) == '1' ){
			var txt = NOIX.get( 'como_conheceu_mais' ).value;
			if( txt == 'Informe qual' || txt == '' ){
				Indica.messages.appMessage( '', 'Informe onde conheceu o Indica' );
				return false;
			}
		}
		
		var campoHidCodSeguranca = NOIX.get( 'codHidSeguranca' ).value;
		var campoCodSeguranca = NOIX.get( 'codSeguranca' ).value;
		
		if(campoHidCodSeguranca != campoCodSeguranca){
			Indica.messages.appMessage( '', 'Código de segurança inválido' );
			return false;
		}			

		if( !NOIX.get( 'leuTermo' ).checked ) {
			Indica.messages.appMessage( '', "Você precisa aceitar os termos do Indica para continuar.", 1 );
			return false;
		}

		this.salvarCadastro();
	},

	atualizaCidadeSelect: function(){
		
		var idEstado = jQuery('#cadastro_estado').val();
	
		if( idEstado != '' ){
			
			var url = Excelsior.siteUrl + '/cadastrocandidato/cidade';
	
			jQuery.ajax(
			{
				type: 'POST',
					
				data:
				{
					_ajax: 1,
					idEstado : idEstado
				},
						
				url: url,
					
				complete: function( data ){
					
					eval( "response = " + data.responseText );
						
					NOIX.get( 'cadastro_cidade' ).clear();
					NOIX.get( 'cadastro_cidade' ).append( 'selecione', '' );
					NOIX.get( 'cadastro_cidade' ).appendJson( response );
				}
			}
			);
		
		}else{
			NOIX.get( 'cadastro_cidade' ).append( 'selecione', '' );
		}
	
	},
		
	Email: function( mail ){		
		var email = mail;
		var er = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
		
		if( email.search( er ) == -1 || email == ''){
			return true;
		}
		return false;
	},
	
	validaEmail: function()
	{
		if( NOIX.get( 'nmEmail' ).value != '' ){
			jQuery.ajax(
			{
				url: Indica.siteUrl + '/cadastrocandidato/verificaemail',

				data: {
					email: NOIX.get( 'nmEmail' ).value
				},

				beforeSend: function(){
					Indica.controller.cadastrocandidato.statusEmail = Indica.controller.cadastrocandidato.EMAIL_STATUS_BUSCANDO;
					NOIX.get( 'informacao_email' ).innerHTML = 'Verificando email...';
				},

				complete: function( data ){
					eval( 'var response = ' + data.responseText );

					if( response.status == 'success' ){
						Indica.controller.cadastrocandidato.statusEmail = Indica.controller.cadastrocandidato.EMAIL_STATUS_NAOEXISTE;
						NOIX.get('informacao_email').innerHTML = '';
					}
					else{
						Indica.controller.cadastrocandidato.statusEmail = Indica.controller.cadastrocandidato.EMAIL_STATUS_EXISTENTE;
						NOIX.get('informacao_email').innerHTML = response.message;
					}
				},

				type: 'POST'
			}
			);
		}
	},

	mudaComoConheceu: function(){
		var objSelect = NOIX.get( 'select_como_conheceu' );
		var select = objSelect.value;
		var temcomplemento = objSelect.options[ objSelect.selectedIndex ].getAttribute( 'comp' );
		
		if( temcomplemento == '1' ){
			NOIX.get( 'conheceu_div' ).style.display = "block";
			NOIX.get( 'como_conheceu_mais' ).disabled = '';
			NOIX.get( 'como_conheceu_mais' ).value = 'Informe qual';

			NOIX.get( 'como_conheceu_mais' ).on( 'focus', function(){
				if( this.value == 'Informe qual' ){
					this.value = '';
				}
			} )
		}
		else{
			NOIX.get( 'conheceu_div' ).style.display = "none";
			NOIX.get( 'como_conheceu_mais' ).disabled = 'disabled';
		}
	},
	
	adicionarFormacao: function(){		
		var that = this;
		
		var nrFormacao = new Number( NOIX.get( "nrFormacao" ).value );
		
		var url = Excelsior.siteUrl + "/cadastrocandidato/adicionarformacao";

		jQuery.ajax(
		{
			type: 'POST',
	
			data:
			{
				_ajax: 1,
				i: nrFormacao
			},
	
			url: url,
	
			beforeSend: function()
			{
				Excelsior.messages.ajaxShowMessage( 'Aguarde...' );
			},
					
			complete: function( data )
			{
						
				NOIX.get( "nrFormacao" ).value = ++nrFormacao;
				jQuery( "#formacao_adicional" ).append( data.responseText );
				that.qtFormacao++;
				Excelsior.messages.ajaxHideMessage();
	
			}
		}
		);
		
	},

	adicionarEmpresa: function(){
		var that = this;

		var nrEmpresa = new Number( NOIX.get( "nrEmpresa" ).value );

		var url = Excelsior.siteUrl + "/cadastrocandidato/adicionarempresa";

		jQuery.ajax(
		{
			type: 'POST',
	
			data:
			{
				_ajax: 1,
				i: nrEmpresa
			},
	
			url: url,
	
			beforeSend: function()
			{
				Excelsior.messages.ajaxShowMessage( 'Aguarde...' );
			},
	
			complete: function( data ){
	
				NOIX.get( "nrEmpresa" ).value = ++nrEmpresa;
				jQuery( "#empresa_adicional" ).append( data.responseText );
				that.qtEmpresa++;
				Excelsior.messages.ajaxHideMessage();
	
			}
		}
		);

	},
	
	scrollIndicarContato: function()
	{
		jQuery.scrollTo( '#anchorBotoes', 900 );		
	},	
		
	fechaLightBox: function( num )
	{

		jQuery( '#i' + num ).remove();
		jQuery( '#di' + num ).remove();
		
		NOIX.get( 'qnt_item' ).value = new Number( NOIX.get( 'qnt_item' ).value ) - 1;

	},
	
	excluirFormacao: function( i )
	{

		Excelsior.messages.ajaxShowMessage( 'Aguarde...' );

		if( this.qtFormacao == 0 ){
			return false;
		}

		jQuery( '#formacao_' + i ).remove();

		this.qtFormacao--;

		Excelsior.messages.ajaxHideMessage();

	},

	excluirEmpresa: function( i )
	{
		Excelsior.messages.ajaxShowMessage( 'Aguarde...' );

		if( this.qtEmpresa == 0 ){
			return false;
		}

		jQuery( '#empresa_' + i ).remove();

		Excelsior.messages.ajaxHideMessage();

		this.qtEmpresa--;
	},

	habilitaCadastrar: function()
	{
		NOIX.get( 'btContinuar' ).disabled = !NOIX.get( 'leuTermo' ).checked;
	},

	salvarCadastro: function()
	{

		var dtNascimento_dia 	= jQuery('#dtNascimento_dia').val();
		var dtNascimento_mes 	= jQuery('#dtNascimento_mes').val();
		var dtNascimento_ano 	= jQuery('#dtNascimento_ano').val();

		var dtNascimento		= dtNascimento_dia + '/' + dtNascimento_mes + '/' + dtNascimento_ano;

		var pars = jQuery('#cadCandidatoForm').serialize() + '&dt_nascimento=' + dtNascimento;

		var url = Excelsior.siteUrl + '/cadastrocandidato/savecadastro';

		jQuery.ajax({

			type: 'POST',

			data: pars,

			url: url,

			beforeSend: function()
			{
				Excelsior.messages.ajaxShowMessage('Aguarde...');
			},

			complete: function(e)
			{
				var response;
				
				Excelsior.messages.ajaxHideMessage();

				eval( 'response = ' + e.responseText );

				if( response.status == 'success'){
					Indica.messages.appMessage('Cadastro de Candidato', response.message, 1);
					window.location.href = Excelsior.siteUrl + response.redirect;
				}
				else{
					Indica.messages.appMessage('Cadastro de Candidato', response.message, 1);
				}

			}

		});

	},

	hideAte: function( id )
	{
		var ate = document.getElementById( id );

		if( ate.style.display == 'block' ){
			ate.style.display = 'none';
		}
		else{
			ate.style.display = 'block';
		}
	},

	vaga : function()
	{
		 jQuery( '#btnIndicar' ).click(function()
                    {
                        jQuery( '#tipoFlag' ).val( '1' );   
                    }
                );
	},
	
	

	meCandidatar : function( tipo )
	{
		NOIX.get( 'vaga_login_tipo' ).value = tipo;
		
		if( tipo == 2 ){
			var paginaCadastro = 'cadastroindicador';
		}
		else{
			var paginaCadastro = 'cadastrocandidato';
		}
		
		NOIX.get( 'link_cadastrar' ).href = Indica.siteUrl + '/'+ paginaCadastro +'?vid='+ NOIX.get( 'vid' ).value +'&indid='+ NOIX.get( 'indid' ).value +'&idcont='+ NOIX.get( 'idcont' ).value;
		
		jQuery.ajax(
			{
				type : 'POST',
				
				data : { 
					_ajax : '1'
				},
				
				url : Indica.siteUrl + '/cadastrocandidato/hasauth',
				
				complete : function( data ){
					
					eval( 'var response = ' + data.responseText );
	
					if ( response['status'] == 'success' ) {
						if( NOIX.get( 'indid' ) ){
							var vid = NOIX.get( 'vid' ).value;
							var indid = NOIX.get( 'indid' ).value;
							var idcont = NOIX.get( 'idcont' ).value;
							//window.location.href = Indica.siteUrl + '/painelcandidato/detalhevaga?vid='+vid+'&indicar=1&indicador=1';
                                                        window.location.href = Indica.siteUrl + '/painelcandidato/detalhevaga/confirmar?vid=' + vid + '&indid=' + indid + '&idcont=' + idcont;
						}
						else{
							NOIX.lightbox.show( '#loginCandidato' );
						}
	
					}
					else {
						NOIX.lightbox.show( '#loginCandidato' );
					}
				}
			}
		);
	}
}