
	var nsForm = {}  //Container de variáveis e funções inerentes aos formulários

	nsForm.ini = function(){
		nsForm.processaServerSideData();
		nsForm.startFormPlugins();
		//nsForm.startTemplates();
	};window.startOnLoaded('nsForm.ini');

	/*-- Funções startadas na inicialização da página -----------------------------------------------------*/
		//Processando as informações vindas dos servidor
		nsForm.processaServerSideData = function(){
			fb.setLog('nsForm.processaServerSideData()');
			jq('#clube').jsonPopulate({ json : nsServerSideData.clube, firstOptionBlank: true });
		}

		//Aplicando os plugins aos elementos dos formulários
		nsForm.startFormPlugins = function(){
			fb.setLog('nsForm.startFormPlugins()');
			jq("#cpf"		  ).setMask("999.999.999-99");
			jq("#fone"	      ).setMask("(99) 9999.9999");
			jq("#IniContrato" ).setMask('99/99/9999'); 
		}
	/*-----------------------------------------------------------------------------------------------------*/


	/*-- Funções registradas para eventos dos elementos ---------------------------------------------------*/
		nsForm.eventosDeObj = {};
		
		nsForm.eventosDeObj.ufs_change = function(id){
			fb.setLog('nsForm.eventosDeObj.ufs_change('+id+')');

			nsForm.buscarSubEndereco(id);
		}

		nsForm.eventosDeObj.locais_change = function(id){
			fb.setLog('nsForm.eventosDeObj.locais_change('+id+')');
			
			nsForm.buscarSubEndereco(id);
		}

		nsForm.eventosDeObj.bairros_change = function(id){
			fb.setLog('nsForm.eventosDeObj.bairros_change('+id+')');

			if(jq('#bairros option:selected').length==1){
				nsForm.buscarSubEndereco(id);
			}else{
				jq('#tdEnderecos').html('');
			}
		}

		nsForm.eventosDeObj.btnSubmitForm_click = function(){
			fb.setLog('nsForm.eventosDeObj.btnSubmitForm_click()');
			var erro = false;
			boxContainer.hideTopMsg();
			jq('input[type=text], select, table', '#form').removeClass("inputErro");

			//Validacao da Influencia Regional
			var arrClasseSocial        = jq('input:checkbox:checked', '#tiposDeClasseSocial'      ).checkedValues(),
				arrTipoBairro          = jq('input:checkbox:checked', '#tiposDeBairro'            ).checkedValues(),
				arrPerfilHabitantes    = jq('input:checkbox:checked', '#tiposDePerfisDeHabitantes').checkedValues(),
				jsonBancosConcorrentes = [];

			jq('#containerBancos input:checkbox:checked').each(function(i){
				jsonBancosConcorrentes.push({
					cod  : this.value,
					qtds : {
						qtdSAA :(jq('#qtd_'+ this.value +'_SAA').val() == '') ? 'NULL' : jq('#qtd_'+ this.value +'_SAA').val(),
						qtdSNC :(jq('#qtd_'+ this.value +'_SNC').val() == '') ? 'NULL' : jq('#qtd_'+ this.value +'_SNC').val(),
						qtdPAE :(jq('#qtd_'+ this.value +'_PAE').val() == '') ? 'NULL' : jq('#qtd_'+ this.value +'_PAE').val()
					}
				})
			});

			jsonCampos = {
				tipoBairros			: arrTipoBairro.join(','),
				classeSocial		: arrClasseSocial.join(','),
				perfilHabitantes	: arrPerfilHabitantes.join(','),
				ufs					: jq('#ufs'               ).val(),
				obs					: jq('#obs'               ).val(),
				agenciaDeVinculacao : jq('#unidadesVinculadas').val(),
				populacao 			: jq('#populacao'         ).val(),
				rendaPerCapta 		: jq('#rendaPerCapta'     ).val(),
				pibRegiao 			: jq('#pibRegiao'         ).val(),
				qtdTransferencia 	: jq('#qtdTransferencia'  ).val(),
				txtPAE              : jq('#txtPAE'            ).val(),
				txtSNC              : jq('#txtSNC'            ).val(),
				txtSAA              : jq('#txtSAA'            ).val(),
				txtPAB				: jq('#txtPAB'            ).val(),
				txtAgencia          : jq('#txtAgencia'        ).val(),
				txtCaixaAqui        : jq('#txtCaixaAqui'      ).val(),
				txtLoterico         : jq('#txtLoterico'       ).val(),
				outrasInfos			: jq('#outrasInfos'       ).val(),
				locais				: jq('#locais'            ).val() || '',
				enderecos	    	: jq('#complementos'      ).val() || '',
				bairros				: jq('#bairros'           ).val() || '',
				bancosConcorrentes	: JSON.encode(jsonBancosConcorrentes)
			}

			if(jsonCampos.ufs                 == ''    ){return boxContainer.showErro('Selecione uma UF',                         'ufs'                      )};
			if(jsonCampos.locais              == ''    ){return boxContainer.showErro('Selecione o Local',                        'locais'                   )};
			if(jsonCampos.bairros             == ''    ){return boxContainer.showErro('Selecione um bairro',                      'bairros'                  )};
			if(jsonCampos.agenciaDeVinculacao == ''    ){return boxContainer.showErro('Informe a unidade de vinculação do ponto', 'unidadesVinculadas'       )};
			if(arrClasseSocial.length  		  == 0     ){return boxContainer.showErro('Selecione uma classe social',              'tiposDeClasseSocial'      )};
			if(arrTipoBairro.length			  == 0     ){return boxContainer.showErro('Selecione um tipo de bairro',              'tiposDeBairro'            )};
			if(arrPerfilHabitantes.length 	  == 0     ){return boxContainer.showErro('Selecione perfil dos habitantes',          'tiposDePerfisDeHabitantes')};
			if(jsonCampos.populacao 		  == '0,00'){return boxContainer.showErro('Informe a população',                      'populacao'                )};
			if(jsonCampos.rendaPerCapta       == '0,00'){return boxContainer.showErro('Informe a Renda per capta',                'rendaPerCapta'            )};
			if(jsonCampos.pibRegiao           == '0,00'){return boxContainer.showErro('Informe o PIB da região',                  'pibRegiao'                )};
			if(jsonCampos.qtdTransferencia    == ''    ){return boxContainer.showErro('Informe a a quantidade de transferencias', 'qtdTransferencia'         )};

			/*util.form.postPage({
				destino	  : 'form_InstalacaoSNC/controle/startCadastroInfoMarcadologica.asp',
				variaveis : jsonCampos
			})*/
		}

		/*-- Eventos comuns a vários objetos ----------------------*/
		nsForm.eventosDeObj.ctrlQtdsRedePropria = function(checkbox){
			var nome = '#txt'+checkbox.id.substr(3,20);
			if(checkbox.checked){
				jq(nome).attr('disabled', '').focus();
			}else{
				jq(nome).attr('disabled', 'disabled').focus();
			}
		}

		nsForm.eventosDeObj.ctrlQtdsRedeConcorrente = function(checkbox){
			var nome = checkbox.id.substr(4,20);
			var inputText = jq('#tblRedeConcorrente input[id^=qtd_'+nome+']')
			if(checkbox.checked){
				jq(inputText).attr('disabled', '')[0].focus();
			}else{
				jq(inputText).attr('disabled', 'disabled');
			}
		}
	/*-----------------------------------------------------------------------------------------------------*/


	nsForm.buscarSubEndereco = function(comboId){
		fb.setLog('nsForm.buscarSubEndereco('+ comboId +')');
		var idNextCombo = ajaxNextCombo = '';
		switch(comboId){
			case 'ufs':{
				idNextCombo = 'locais';
				ajaxNextCombo = 'buscarLocais';
				jq('#locais').html('<option value="">Carregando! Aguarde...</option>');
				jq('#tdBairros, #tdComplementos').html('');
				break;
			}
			case 'locais':{
				idNextCombo = 'bairros';
				ajaxNextCombo = 'buscarBairros' ;
				jq('#tdBairros').html('Carregando! Aguarde...');
				jq('#tdEnderecos').html('');
				break;
			}
			case 'bairros':{
				idNextCombo = 'complementos';
				ajaxNextCombo = 'buscarComplementos' ;
				jq('#tdEnderecos').html('Carregando! Aguarde...');
				break;
			}
		}

		valorSel = jq('#'+comboId).val(); // Opção selecionada

		if(valorSel!=''){
			jq('#load_'+idNextCombo).show();

			jsonResposta = nsAjax[ajaxNextCombo].get({chaveBusca:valorSel});

			if(jsonResposta.status=='ok'){
				jsonInfos = jsonResposta.json;
			}else{
				alert('Ocorreu um erro no processamento da sua requisição.');
				return false;
			}

			switch(idNextCombo){
				case 'bairros':{
					rewriteSelectBairros(jsonInfos);
					break;
				}
				case 'complementos':{
					//jq('#'+ idNextCombo).jsonPopulate({ json : jsonInfos, firstOptionBlank : false });
					rewriteSelectEnderecos(jsonInfos);
					break;
				}
				default : {
					jq('#'+ idNextCombo).jsonPopulate({ json : jsonInfos });
					break;
				}
			}

			jq('#load_'+idNextCombo).hide();
		}else if(comboId=='ufs') jq('#locais').html('');
	}
	
	nsForm.startTemplates = function(){
		fb.setLog('nsForm.startTemplates()');
		jq('#containerBancos').json2template();
		nsEventos.ctrlQtdsRedeConcorrente();
	}
