// JavaScript Document

combo = {
	alimentaCombo : function(objSelect,string, codSelecionar){
		codSelecionar = (codSelecionar=='' || codSelecionar==null) ? 0 : codSelecionar;
		var lenAtual = objSelect.options.length;
		var results = string.split(",");
		var string;
		
		//NÃO SEI PORQUE, MAS O LENGTH DO TEXTO QUE É RETORNADO PELA REQUISISÃO DE AJAX E ENTRA NESTA FUNÇÃO PELO
		//PARAMETRO STRING, ESTÁ RETORNANDO 2 CARACTERES A MAIS, JA TENTEI DESCOBRIR DE TODAS AS FORMAS O MOTIVO, 
		//POREM NÃO CONSEGUI.... ACHEI UMA SOLUÇÃO ALTERNATIVA QUE É TESTAR SE ESTA STRING POSSUI A '|' QUE SEPARA
		//O ID DO NOME DO OPTION... NÃO DEIXANDO ENTRAR NO FOR CASO NÃO TENHA, FUNCINOU PERFEITAMENTE APARENTEMENTE.
		//POREM.. NÃO É UMA SOLUÇÃO E SIM UM CONTORNO PARA O PROBLEMA... JA QUE PERDI UM BOM TEMPINHO TENTANDO ACHAR A CAUSA.
		if(string.indexOf('|')!=-1){
			for( i = lenAtual; i < parseInt(lenAtual)+parseInt(results.length); i++ ){
				string = results[i-lenAtual].split( "|" );
				objSelect.options[i] = new Option( string[0], string[1] );
				if(string[1]==codSelecionar) objSelect.options[i].selected=true;
			}
		}
		if(string=='')objSelect.options.length = 0;		
	},
	cidade : function(idSelect, codEstado, codSelecionar){
		var objSelect = document.getElementById(idSelect);
		codEstado = (codEstado==null) ? '' : codEstado;
		if(codEstado==''){
			
		}else{
			$j.ajax({
				// Usando metodo Post
				type: 'POST',
				// this.action pega o script para onde vai ser enviado os dados
				url: 'controllers/con_cidade.php',
				// os dados que pegamos com a função serialize()
				data: 'acao=combo&codEstado='+codEstado,
				// Antes de enviar
				beforeSend: function(){
					objSelect.options.length = 0;
					objSelect.options[0] = new Option('Aguarde, carregando...', '' );
				}, 
				success: function(txt){ // txt => conteúdo trazido pela requisição
					objSelect.options.length = 0;
					$j('#'+idSelect).hide();
					objSelect.options[0] = new Option( '- Escolha uma das Opções - ', '' );
					combo.alimentaCombo(objSelect,txt,codSelecionar);
					$j('#'+idSelect).fadeIn('normal');
				},
				// Se acontecer algum erro é executada essa função
				error: function(txt){
					//$j('#containerMenu').html(txt);
					$j('#'+idSelect).html(txt);
				}
			})
		}
	},
	estado : function(idSelect, codSelecionar){
		var objSelect = document.getElementById(idSelect);
		$j.ajax({
			// Usando metodo Post
			type: 'POST',
			// this.action pega o script para onde vai ser enviado os dados
			url: 'controllers/con_estado.php',
			// os dados que pegamos com a função serialize()
			data: 'acao=combo',
			// Antes de enviar
			beforeSend: function(){
				objSelect.options.length = 0;
				objSelect.options[0] = new Option( 'Aguarde, carregando...', '' );
			}, 
			success: function(txt){ // txt => conteúdo trazido pela requisição
				objSelect.options.length = 0;
				$j('#'+idSelect).hide();
				objSelect.options[0] = new Option( '- Escolha uma das Opções - ', '' );
				combo.alimentaCombo(objSelect,txt,codSelecionar);
				$j('#'+idSelect).fadeIn('normal');
			},
			// Se acontecer algum erro é executada essa função
			error: function(txt){
				//$j('#containerMenu').html(txt);
				$j('#'+idSelect).html(txt);
			}
		})	
	},
	generico : function(idSelect, codFiltrar, exigeCodFiltrar, codSelecionar, valorDefault, linkControlador, acao, nomVarValorDefault){
		var objSelect = document.getElementById(idSelect);
		nomVarValorDefault=(nomVarValorDefault==null || nomVarValorDefault=='' || nomVarValorDefault=='undefined')? 'codFiltrar' : nomVarValorDefault;
		codFiltrar 		= (codFiltrar==null || codFiltrar=='' || codFiltrar=='undefine') 	? '' : codFiltrar;
		exigeCodFiltrar	= (exigeCodFiltrar==null || exigeCodFiltrar=='' || exigeCodFiltrar=='undefined')? false : exigeCodFiltrar;
		codSelecionar 	= (codSelecionar==null || codSelecionar=='' || codSelecionar=='undefined') ? '' : codSelecionar;
		valorDefault 	= (valorDefault==null || valorDefault=='' || valorDefault=='undefined') 	? '' : valorDefault;
		if(codFiltrar=='' && exigeCodFiltrar==true){
			objSelect.options.length = 0;
		}else{
			$j.ajax({
				// Usando metodo Post
				type: 'POST',
				// this.action pega o script para onde vai ser enviado os dados
				url: linkControlador,
				// os dados que pegamos com a função serialize()
				data: 'acao='+acao+'&'+nomVarValorDefault+'='+codFiltrar,
				// Antes de enviar
				beforeSend: function(){
					objSelect.options.length = 0;
					objSelect.options[0] = new Option( 'Aguarde, carregando...', '' );
				}, 
				success: function(txt){ // txt => conteúdo trazido pela requisição
					$j('#'+idSelect).hide();
					if(txt=='' || txt==null || txt=='undefined'){
						objSelect.options.length = 0;
					}else{
						objSelect.options.length = 0;
						if(valorDefault!='') objSelect.options[0] = new Option(valorDefault,'');
						combo.alimentaCombo(objSelect,txt,codSelecionar);
					}
					$j('#'+idSelect).fadeIn('normal');
				},
				// Se acontecer algum erro é executada essa função
				error: function(txt){
					//$j('#containerMenu').html(txt);
					$j('#'+idSelect).html(txt);
				}
			})
		}
	}
}