Event.observe(window, 'load', inicio);


function inicio(){
	
	if ($('campo_fpg')){
		Event.observe($('campo_fpg'), 'change', function(){ desabilitaParcelas(); } );
		
		desabilitaParcelas();
		
	} 
	
	
	$$('.opg').each(function(obj){
		
		Event.observe(obj, 'click', function(){exibeValor(obj); } );
		
		if ($(obj).checked == true){
			exibeValor(obj);
		}else {
			//$('parcelas').hide();
		}
		
	});

    //Verifica Número de Inscrição
    if ($('num_ins')){
        num_ins = $F('num_ins');
        Event.observe($('num_ins'), 'blur', function(){ duplicidadeNumIns($('num_ins'), num_ins); } );
    }


    //Verifica Estado
    if ($('uf')){
        Event.observe( $('uf'), 'change', function(){ checaUfRegional(); } );
    }
	
	if ($('select_cat')){
		Event.observe($('select_cat'), 'change', function(){ exibeCategoria(); } );
	}
	
	//uma vairiavel global que habilida ou nao campos de nome e telefone de um socio Representane do formulario de inscrição
	disableField = 0;
	
	//variavel global para remoçao no form de inscricao de socio
	remove = 0;
	
	
	/*
	**Representantes (inscrição)
	*/
	
	num = 1;
	str = location.href;
	

	try{
		if($('qtdeMaxRep')){
			if ( $('qtdeMaxRep').value != null){

				//total de representantes na categoria
				totalRep = $('qtdeMaxRep').value;

                //loop de todas os formularios de representante
				while (num <= totalRep){
		
                    //para cada input
                    $$('.class_rep'+num).each(function(obj){

                        //if ( obj.up().hasClassName('padrao') != true )
                        //verifica se tem algum input com valor
                        if (obj.getValue() != ''){

                            if ( str.search(/edit/) != -1){
                                $('salvo'+num).value = 1;
                            }

                            //esconde o botao anterior de add representante
                            if ($('button_rep'+(num-1))){
                                $('button_rep'+(num-1)).hide();
                            }//fim if

                            //exibe todo o formulário
                            $('rep'+num).show();

                            //força finalização da estrutura de repetição "each"
                            throw $break;

                        }//fim if

                    });
	
                    //verifica se o formulario ta salvo
                    if ( ($('salvo'+num) != null) && ( $('salvo'+num).getValue() == '1') || ( ($('editando')) && ($('editando').getValue() != '') ) ){
                        salvarRep(num, 'false');
                    }//fim if

                    //incrementa
                    num++;

                }//fim while

            }//fim if
		}
	}catch(erro){
		//alert('erro = ' + erro);
	}
	
	
	//Observa Campo URL
 	if($('url')){
		Event.observe( $('url'), 'change', function(){ ExibiLink('url');} );
 	}
	
	
	
	
}//fim inicio

function desabilitaParcelas(){

		
	url = location.href;
	
	//se NAO estiver editando no form  NAO for o retorno do form por um dado incorreto
	if (( url.search(/edit/) == -1) && ( url.search(/voltar/) == -1)  && ( ($('editando'))==false )  ){	
		//para cada iteração 
		$$('.opg').each(function(obj){
			obj.checked=false;
		});
	}
	
	
	//se nenhum selecionado
	if ( $F('campo_fpg') == '' ){
		
		//$('cat_valor').innerHTML = "";
		setInnerHTML( $('cat_valor'), "");
		
		$('valor_escolha').value='';		
		$('opg_hidden').checked=true;		
		$('bloco_opg').hide();
		$('label_valor').hide();
		$('desconto').hide();
		$('desconto').value='';
		
				
	//Deposito em Conta
	}else if ( $F('campo_fpg') == '1' ){
		
		$('bloco_opg').show();
		$('label_valor').show();
		$('desconto').show();		
		$('parcelas').hide();
		$('campo_opg_avista').checked=true;
				
		
		//$('cat_valor').innerHTML = $F('valor_avista');
		setInnerHTML( $('cat_valor'), $F('valor_avista') );
		
		$('valor_escolha').value = $F('valor_avista');
		
		exibeValor($('campo_opg_avista'));
	
	//Boleto Bancario
	}else{
		
		if ( ($('campo_opg_avista').checked == true) ){
			//recalcularValorAjax();
			 exibeValor($('campo_opg_avista'));
			
		}
		
		$('bloco_opg').show();
		$('label_valor').show();
		$('parcelas').show();
		$('desconto').show();
		
		//$('campo_opg_avista').checked=false;
		
		//$('cat_valor').innerHTML = "";
		setInnerHTML( $('cat_valor'), "");
		
		$('valor_escolha').value='';		
	}
}

function converte(valor){
	if(valor === ""){
		valor = 0;
	}else{
		valor = valor.replace(".","");
		valor = valor.replace(",",".");
		valor = parseFloat(valor);
	}
	
	return valor;
	
}

function recalcularValorAjax(){
	
	//if ( $F('valor_desconto') != '' ){
	
		$$('.opg').each(function(obj){
			
			if ($(obj).checked == true){
				
				//alert($(obj).value);
				exibeValor(obj);
			}else {
				//$('parcelas').hide();
			}
		});
	//}//fim if
	
}//fim recalcularValorAjax

//exibe valor 
function exibeValor(obj){
	
	//obtem o endereço base
	var base 		= $F('url_base');
	var parcelas	= $F(obj);	
	var valor 		= converte($F('valor_avista') );
	var tipo;
    var tipoPessoa  = $F('tipoPessoa');
	
	if( $F('campo_fpg') == '2' ){
		tipo = 'boleto';
	}else{
		tipo = 'deposito';
	}
	
	//alert('valor depois = '+valor);
	
	//alert('desconto antes = '+$F('valor_desconto'));
	var desconto = converte($F('valor_desconto') );
	//alert('desconto depois = '+desconto);
	
	if (desconto < valor){
		valor = valor - desconto;
	}else{

        //se a categoria do sócio for diferente de Honorarios
        if ( $F('cat_aux')!= 21 ) {
            alert('O desconto não poderá ser maior do que o valor total');
            $('valor_desconto').clear();
        }
	}
	
			
		//AJAX
		var url = base+'inc/ajax_ValorAnuidade.php';
		//var pars = 'valor='+valor+'&parcelas='+$F(obj);
		var pars = 'valor='+valor+'&parcelas='+parcelas+'&tipo='+tipo+'&pessoa='+tipoPessoa;
		var myAjax = new Ajax.Request( url, {
			method: 'post',
			parameters: pars,
			
			onLoading: function() {
				//exibe Load
				//objResp.innerHTML = "Carregando....";alert('kii');
				setInnerHTML($('objResp'), "Atualizando....");
				
			},
			onComplete: function(originalRequest) {
				
				//Zera Dados
				//$('cat_valor').innerHTML = "";
				setInnerHTML( $('cat_valor'), "");
				
				setInnerHTML($('objResp'), "");
				
				//Exibe Resultado
				//$('cat_valor').innerHTML = originalRequest.responseText;
				setInnerHTML( $('cat_valor'), originalRequest.responseText);
				
				$('valor_escolha').value = originalRequest.responseText;
			},
			onFailure: function() {
				//Zera Dados
				//objResp.innerHTML = "";
				setInnerHTML( $('objResp'), ""); 
				//Alerta
				alert('Erro!\n\nFavor recarregue esta página e tente novamente, caso o erro persistir entre em contato com o desenvolvedor do sistema.');
			}			
		});//fim AJAX
		
	//}//fim if
		
	
}//fim exibeValor


function exibeCategoria(){

	//esconde tudo
	$$('#todasCat div').each(Element.hide);
	
	//exibe somente o selecionado
	$('cat_'+$F('select_cat') ).show();
	
}//exibeCategoria()



var status_salvar = 1;

function showRep(num){
	
	//incrementa variavel
	num_prox = num + 1;
		
	//exibe o outro formulario de representantes 
	$('rep'+num_prox).show();
	
	//esconde botao de add representantes
	$('button_rep'+num).hide();	
	
	//editarForm(num_prox, true);
	editarRep(num_prox);
	
	//$('button_salvar'+num_prox).show();
	//$('button_editar'+num_prox).hide();
	
	
}//fim showRep


//remove representante
function hideRep(num){
	
	
	if (confirm('Você deseja realmente remover esse Representante?')){
		
		
		//variavel global
		tes = num;	
						
		//se for o primeiro representante, 
		if (num == 1){
			
			//
			if ($('id_rep'+num).getValue() == ''){
				editarForm(num, true);
			}
			
			//para cada iteração 
			$$('.class_rep'+num).each(function(obj){ 
				//destroi o observer
				obj.stopObserving('focus', recebeFoco);
			});
					
		} //fim if
		else{
		
			//esconde formulario do representante
			$('rep'+num).hide();
			
			//decrementa
			num_ant = num - 1;
			
			//retira o botão anterior de add representante
			$('button_rep'+num_ant).show();	
			
			//se estiver incluindo um novo registro vai para funcao
			if ($('id_rep'+num).getValue() == ''){
				editarForm(num, true);
			}
			
			//para cada campo
			$$('.class_rep'+num).each(function(obj){ 
				
				//destroi observer
				obj.stopObserving('focus', recebeFoco);
				
				//verifica se a classe do label nao é a padrao
				if ( obj.up().hasClassName('padrao') != true ){
					
					//remove a classe
					obj.up().removeClassName('erro_obrigatorio');
					
					//adiciona a classe padrao
					obj.up().addClassName('padrao');
					
				}//fim if
				
			});
			
			//seta valor - nao esta salvo
			$('salvo'+num).value = 0;
			
		}//fim else
		
		//variavel global
		//****
		//remove = 1;
		
		
		//se for diferente do primeiro representante, 
		if (num != 1){
			//exibição de botoes
			$('button_salvar'+num).show();
			$('button_editar'+num).hide();
		}
		
		//input do delete recebe o id do rep. deletado
		$('deletou'+num).value = $('id_rep'+num).getValue();
		
		//se for verdade quer dizer que o formulario é de ediçao e faz um ajax
		if ( $('deletou'+num).getValue() ){
			//ajax - envia o id do socio representante e o id do socio juridico
			ajaxDelRep( $('deletou'+num).getValue(), $('socioID').getValue(), num );
			
		}//fim if
		
		//seta como em branco
		$('deletou'+num).value = '';
		
		if( (num == 1) && ($('id_rep'+num).getValue() == '') ){
			$('id_rep'+num).value = '';
		}//fim if
		
		
	}//fim if (confirm)
	
}//fim hideRep



//tenta apagar um registro de representante
function ajaxDelRep(idrep, idsoc, num){
	
	//obtem o endereço base
	var base = $F('url_base');
	
	//AJAX
	var url = base+'rpc/remove_representante.php';
		
	var pars = 'idrep='+idrep+'&idsoc='+idsoc;

	var myAjax = new Ajax.Request( url, {
		method: 'post',
		parameters: pars,
		
		onComplete: function(originalRequest) {
			
			$('carregando'+num).hide();
						
			//resultado do ajax
			var resposta = originalRequest.responseText;
			
			//debug
			//$('aaa').innerHTML = resposta;
			
			//se nao apagou			
			if (resposta != true){
				alert('Você não pode apagar este representante. Empresa não poderá ficar sem representante.\n Para excluir este registro, inclua um novo Representante clique em Atualizar e refaça a remoção');
			}//fim if
			else{
				//chama função - habilita form
				editarForm(num, true);
				remove = 1;
			}//fim else
			
		},
		
		onLoading: function(){
			//exibe			
			$('carregando'+num).show();			
		},
		
		onFailure: function() {
			//Alerta
			alert('Erro!\n\nFavor recarregue esta página e tente novamente, caso o erro persistir entre em contato com o desenvolvedor do sistema.');
		}	
			
	});//fim AJAX
	
	
}//fim ajaxDelRep


//funcao que reabilita o uso do form
function editarForm(num, clear){
	
	$$('.class_rep'+num).each(function(obj){
		
		(clear)? obj.clear(): null;
		
		obj.setStyle({opacity:'1'});
		
		obj.enable();

		obj.readOnly = false;	
		
	});
	
}//fim editarForm


//salvar representante
function salvarRep(num, clicou){
	
	//variavel global	
	tes = num;
	
	//para cada iteração formata inputs
	$$('.class_rep'+num).each(function(obj){
				
		
		obj.readOnly = true;
		
		//obj.setStyle({background:'none', border:'0'});
		obj.setStyle({opacity:'0.5'});
		
		//troca o focus dos campos do formulario, para o botao de editar
		Event.observe(obj, 'focus', recebeFoco);
			
	});
	
	//troca exibição dos botões
	trocaExibicao($('button_salvar'+num), $('button_editar'+num));
	
	//seta valor - esta salvo
	$('salvo'+num).value = 1;
	
	
	if (clicou == 'true'){
		//entra na função ajax, que verifica se o representante ja é um sócio
		ajaxRep( $('email'+num).getValue(), num, $('id_rep'+num).getValue() );
	}//fim if
	
}//fim salvarRep


//Editar representante
function editarRep(num){
	
	status_salvar = 1;
	
	//variavel para iteração
	var i = 1;
	
	//chama função - habilitar form
	editarForm(num, false);
	
	//seta valor - esta salvo
	$('salvo'+num).value = 0;
	
	
	//para cada iteração formata inputs
	$$('.class_rep'+num).each(function(obj){ 
			
		//alert('remove = '+remove+'  disableField = '+disableField+'  ');
		
		
		//se verdadeiro pára o observer
		if(  (remove == 1) || ((disableField == 1) && (i > 2)) || ( ($('id_rep'+num).getValue() == '') && (disableField == 0) ) || ( ($('id_rep'+num).getValue() != '') && (i > 2) ) ){
			
			//destroi o observer
			obj.stopObserving('focus', recebeFoco);
			
		}//fim if
		else{
			//muda estilo
			obj.setStyle({opacity:'0.5'});
		}
		  
		//incrementa	
		i++;
	});
	
	remove = 0;
	
	//troca exibição dos botões
	trocaExibicao($('button_salvar'+num), $('button_editar'+num));

}//fim editarRep


function recebeFoco(){
	//botão recebe o foco
	$('button_editar'+tes).focus();	
}//fim recebeFoco


function trocaExibicao(id1, id2){
	//troca exibição de cada id
	$(id1, id2).each(Element.toggle);	
}//fim trocaExibicao


//verifica se o representante é um socio
function ajaxRep(email, num, id){
	
	//obtem o endereço base
	var base = $F('url_base');
	
	//AJAX
	var url = base+'rpc/checa_duplicidade_email.php';
		
	var pars = 'email='+email+'&id='+id;

	var myAjax = new Ajax.Request( url, {
		method: 'post',
		parameters: pars,
		
		onComplete: function(originalRequest) {
			
 			//resultado do ajax
			var resposta = originalRequest.responseText;
			
			//$('aaa').innerHTML = resposta;
			
			//opções
			switch(resposta){
				
				//nao é socio
				case '0' :
					disableField = 0;
					//remove = 1;
				break;
				
				//sócio pessoa juridica
				case '1' :
                    /**
					disableField = 0;
					//exibe msg
					alert('Você não poderá cadastrar representante com esse e-mail,\n pois este já é de um sócio de pessoa jurídica');
					//limpa campo do email
					$('email'+num).clear();
                    **/
				break;
				
				//socio
				default :
				
					//confirma (com o usuario) se vai continuar com o registro do email
					if (!confirm('Esse e-mail já é de um sócio da ABPol\nDeseja continuar?')){
						
						//se cancelar limpa o campo email
						$('email'+num).clear();
						
						disableField = 0;
						
					}//fim if
					else{
						
						disableField = 1;
						
						//array q recebera o valores
						var ret = new Array(4);
						
						//indice
						var i = 0;
						
						//converte o json
						var dados = resposta.evalJSON();
						
						//para cada valor
						dados.result.each(function(e){
							
							//seta variavel
							ret[i] = e;
							
							//incrementa
							i++;
							
						});
							
						//zera variavel
						i = 0;
						
						//para cada iteração dos inputs
						$$('.class_rep'+num).each(function(obj){ 
							
							//verifica para nao popular o campo cargo
							if (i != 2){
								//seta o valor em cada input
								obj.value = ret[i];
							}//fim if
							
							//incrementa
							i++;
							
						});
							
					}//fim else
					
				break;
				
			}//fim switch
			
		
		},
		
		onFailure: function() {
			//Alerta
			alert('Erro!\n\nFavor recarregue esta página e tente novamente, caso o erro persistir entre em contato com o desenvolvedor do sistema.');
		}			
	});//fim AJAX
	
}//fim ajaxRep



function ExibiLink(campo) {
		if($(campo).value==""){
			//$('linkPreview').innerHTML='';
			setInnerHTML($('linkPreview'), '');
		}else{

			var PegaURL = $(campo).value.substring(0,7).toLowerCase();
			if(PegaURL!="http://"){
				$(campo).value = 'http://'+$(campo).value;
			}
				//$('linkPreview').innerHTML='<a href="'+$(campo).value+'" target="_blank">Click aqui para testar o link (abre nova janela).</a>';
				setInnerHTML( $('linkPreview') , '<a href="'+$(campo).value+'" target="_blank">Click aqui para testar o link (abre nova janela).</a>' );
		}
}

function duplicidadeNumIns(obj, num_ins){

//    if(obj.value == num_ins){
//        return true;
//    }else if(obj.value == ''){
//        return true;
//    }else{
        

        //obtem o endereço base
        var base = $F('url_base');

        var socioId = ($('socioID'))?$F('socioID'):'-1';

        //AJAX
        var url = base+'rpc/checa_duplicidade.php';

        var pars = 'type=num_ins'+'&value='+obj.value+'&socio_id='+socioId;

        var myAjax = new Ajax.Request( url, {
            method: 'post',
            parameters: pars,

            onComplete: function(originalRequest) {

                var resposta = originalRequest.responseText;

                if (resposta != ''){
                    
                    alert('Atenção\nNúmero de Inscrição já existente');
                    $('label_numins').className = "erro_obrigatorio";

                }else{
                    $('label_numins').className = "padrao";
                }
                

            },

            onFailure: function() {
                //Alerta
                alert('Erro!\n\nFavor recarregue esta página e tente novamente, caso o erro persistir entre em contato com o desenvolvedor do sistema.');
            }
            
        });//fim AJAX

//    }//fim else

//    alert('obj value=' + obj.value + '  num='+num_ins);

}//fim function duplicidadeNumIns


/**
 * Liga o estado selecionado no select com a Regional correspondente
 */
function checaUfRegional(){

    //verifica o valor do id do Estado
    switch( $F('uf') ){

        //regional SUL
        case 'SC':
        case 'PR':
        case 'RS':
            $('regional_1').checked = true;
        break;

        //regional LESTE
        case 'RJ':
        case 'ES':
        case 'MG':
            $('regional_2').checked = true;
        break;

        //região OUTROS
        default:
            $('regional_3').checked = true;
        break

    }//fim switch

}//fim checaUfRegional
