/* Variável utilizada para manter a seleção do usuário para este campo */
var nEstadoSelecionado         = 0;
var nCidadeSelecionada         = 0;
var nBairroSelecionado         = 0;
var sOperacaoSelecionada       = "";
var nTipoSelecionado           = 0;
var nNegocioSelecionado        = 0;
var nDormitoriosSelecionado    = 0;
var sAcomodacoesSelecionada    = "";
var	sDataEntradaSelecionada    = ""; 
var	sProximidadeMarSelecionada = "";
var sValorSelecionado          = "";
var sAreaSelecionada           = "";
var sURLCode				   = "";

function getCampo( sCampo ) {
	return document.formBusca[sCampo];
}

function setarURLCode( sCode ) {
	sURLCode = sCode;
}

if( typeof _ajaxConfig == "undefined" ) {
    _ajaxConfig = { '_cfscriptLocation': '/cst/dommus/js/cfcAjax/ajCapa.cfc', '_jsscriptFolder': '/ajax/core' };
}

function Existe( sCampo ) {
	var bExiste = getCampo( sCampo );
	if( typeof bExiste != "undefined" ) {
		return true;
	} else {
		return false;	
	}
}

/* Verifica se o campo está populado ou não */
function CampoPopulado( sCampo ) {
	if( Existe( sCampo ) ) {
		var sValor = getCampo( sCampo ).value;
		if( sValor.length == 0 || sValor == "0" || sValor == undefined ) {
			return false;
		} else {
			return true;
		}
	}
}

function pegarIndicePeloValor( sCampo, xValor ){
  	var campo = "";
  	if( Existe( sCampo ) ){
		campo = getCampo( sCampo );
		for( var i = 0; i < campo.options.length; i++ ){
	  		if( campo.options[i].value == xValor ) {
	    		return i;
	  		}
		}
  	}
  	return 0;
}

function HabilitaDesabilitaSeExistir( aCampo, bValor, bCampoOK ) {
	for( nItem in aCampo ) {
		var sCampo = aCampo[nItem];
		if( Existe( sCampo ) ) {
			getCampo( sCampo ).disabled = bValor;
			if( bCampoOK && CampoPopulado(sCampo) ){
			    getCampo(sCampo).className = ''; 
			}
		}
	}
}

function HabilitaDesabilitaDropDown( bImovelRural ) {

	// Habilita todos os campos input
	HabilitaDesabilitaSeExistir( new Array("estado", "cidade", "bairro", "tipo", "operacaoComercial", "area", "valor"), false );

	/* Se o estado não foi selecionado, desabilita os campos seguintes */
	if( Existe( "estado" ) && !CampoPopulado( "estado" ) ) {
		HabilitaDesabilitaSeExistir( new Array("cidade", "bairro", "tipo", "area", "operacaoComercial", "valor"), true );
	}
	
	/* Se a cidade não foi selecionada, desabilita os campos seguintes */
	if( Existe( "cidade" ) && !CampoPopulado( "cidade" ) ) {  
	    if( bImovelRural ) { 
		  	HabilitaDesabilitaSeExistir( new Array("bairro"), true );
		} else { 
		  	HabilitaDesabilitaSeExistir( new Array("bairro", "tipoCasa", "area", "operacaoComercial", "valor"), true );	
		}	
	}

	/* Se o tipo de imóvel não foi selecionado, desabilita os campos seguintes */
	if( Existe( "tipo" ) && !CampoPopulado( "tipo" ) ) { 
		HabilitaDesabilitaSeExistir( new Array( "operacaoComercial", "area", "valor"), true );
	}

	/* Se a operação comercial não foi selecionada, desabilita os campos seguintes */
	if( Existe( "operacaoComercial" ) && !CampoPopulado( "operacaoComercial" ) ) { 
		HabilitaDesabilitaSeExistir( new Array("valor"), true );
	}

}

function TrocarBusca( elemento ) {
	
	var aDados = new Array();
	
	if( elemento.name == 'estado' ) {
	  	getCampo( 'cidade' ).selectedIndex = 0;
	}
	
	if( elemento.name == 'cidade' && getCampo( 'bairro' ) ) {
	  	getCampo( 'bairro' ).selectedIndex = 0;
	}
	
	aDados[0] = getCampo('estado').value;
	aDados[1] = getCampo('cidade').value;
	aDados[2] = getCampo('bairro') ? getCampo('bairro').value		    : 0;
	aDados[3] = getCampo('tipo').value;
	aDados[4] = getCampo('operacaoComercial') ? getCampo('operacaoComercial').value : '';
	
	nEstadoSelecionado         = getCampo('estado').value;
	nCidadeSelecionada         = getCampo('cidade').value;
	nBairroSelecionado         = getCampo('bairro') 		   ? getCampo('bairro').value		     : 0;
	sOperacaoSelecionada       = getCampo('operacaoComercial') ? getCampo('operacaoComercial').value : '';
	nTipoSelecionado           = getCampo('tipo').value;
	sValorSelecionado          = getCampo('valor').value;
	sAreaSelecionada           = getCampo('area')              ? getCampo('area').value              : '';
	
	HabilitaDesabilitaSeExistir( new Array("estado", "cidade", "bairro", "tipo", "area", "operacaoComercial", "valor"), true, true );
	
	//ajxLoading();
	DWREngine._execute(_ajaxConfig._cfscriptLocation , null, 'alterarBusca', aDados, elemento.name, sURLCode, ajxRetornoTrocaBusca);
}

function ajxRetornoTrocaBusca( structDados ) {

	if( structDados["bimovelrural"] == 'true' ){
		 sTextoPadraoCidade = "Qualquer município";
	} else {
		 sTextoPadraoCidade = "* Município";
	}

    if( structDados["q_cidades"] ) {
      	ajxAtualizarDropDown( 'cidade', structDados["q_cidades"], sTextoPadraoCidade, nCidadeSelecionada, '0', true );
    } else {
      	if( getCampo('cidade').options.length > 1 ) {
        	getCampo('cidade').options[0].text = sTextoPadraoCidade;
      	}
    }
  
	if( structDados["q_bairros"] ) {
    	ajxAtualizarDropDown( 'bairro', structDados["q_bairros"], 'Qualquer bairro', nBairroSelecionado, '0', false );
  	} else {
    	if( getCampo('cidade').value == 0 && getCampo('bairro') ) {
      		getCampo('bairro').selectedIndex   = 0;
      		getCampo('bairro').options[0].text = "Qualquer bairro";
    	}
  	}
  
  	if( structDados["q_tiposimoveis"] ) {
    	ajxAtualizarDropDown( 'tipo', structDados["q_tiposimoveis"], '* Tipo de imóvel', nTipoSelecionado, '0', true );
    	if( getCampo('tipo').value == 0 && getCampo('cidade').options.length > 1 ) {
      		if( getCampo('cidade').options[0].text == "Qualquer município" ) {
        		getCampo('cidade').options[0].text = "* Município";
      		}
    	}
  	}

	getCampo('area').selectedIndex = pegarIndicePeloValor( 'area', sAreaSelecionada );
	getCampo('area').style.display = "inline";
	
    if( structDados['sgrupo'] ) {
  		getCampo("grupo").value = structDados['sgrupo'];
	}

    if( structDados["q_areas"] ) {
    	ajxAtualizarDropDown( 'area', structDados["q_areas"], '', sAreaSelecionada, '' );
      	getCampo('area').selectedIndex = pegarIndicePeloValor( 'area', sAreaSelecionada );
  	}
    
  	if( structDados["q_valores"] ) {
    	ajxAtualizarDropDown( 'valor', structDados["q_valores"], 'Qualquer valor (R$)' , sValorSelecionado, '' );
  	}

  	HabilitaDesabilitaDropDown( structDados["bimovelrural"] == 'true' );
}

function ajxAtualizarDropDown( sNomeCampo, q_Dados, sOpcaoPadrao, sValorSelecionado, sValorVazio, bSelecionarUnica ) {

   	var nLinhas  = q_Dados.getRowCount();
   	var elemento = getCampo( sNomeCampo );  
   	var option   = null;
   	var grupo    = "";
   	var optgroup = null;
      
   	while( elemento.hasChildNodes() ) {
    	elemento.removeChild( elemento.lastChild );
   	}
   
   	if( sOpcaoPadrao.length > 0 && (( !bSelecionarUnica || nLinhas > 1 ) || nLinhas == 0 ) ) {
    	option       = document.createElement('option');
     	option.value = sValorVazio;
     	option.appendChild( document.createTextNode( sOpcaoPadrao ) );
     	elemento.appendChild( option );
   	}
   
   	for( var i=0; i<nLinhas; i++ ) {

   	 	if( (sNomeCampo == 'cidade' || sNomeCampo == 'bairro') && nLinhas >= 30 ) {
			if( grupo != removerAcento(q_Dados.nome[i].substr(0, 1)) && q_Dados.nome[i].substr(0, 1) != '·' && ( isNaN(q_Dados.nome[i].substr(0, 1)) || (!isNaN(q_Dados.nome[i].substr(0, 1)) && grupo != "0-9" ))) {
				if( !isNaN( q_Dados.nome[i].substr(0, 1) ) ) {
					grupo = "0-9";
				} else {
					grupo = removerAcento(q_Dados.nome[i].substr(0, 1));
				}
				if( navigator.userAgent.indexOf("Chrome") >= 0 ) { 
			  		/* Bug do Chrome com geração dinamica do optgroup via DOM */
			  		elemento.innerHTML += "<optgroup label='-------------- " + grupo.toUpperCase() + " --------------'>\n";		
			  		elemento.innerHTML += "</optgroup>";
				} else { 
					optgroup = document.createElement('optgroup');	
					optgroup.label = "-------------- " + grupo.toUpperCase() + " --------------";
					elemento.appendChild( optgroup );		
				}
			}
	 	}
	
     	option = document.createElement('option');
     	option.value = q_Dados.codigo[i];
     	if( sValorSelecionado == q_Dados.codigo[i] ) {
       		option.selected = true;
     	}
     	option.appendChild( document.createTextNode( q_Dados.nome[i] ) );
     	elemento.appendChild( option );
   	}
}

function removerAcento( sChar ){
  	var sAcentuadas = "ÁÉÍÓÚÂÊÔ";
  	var sSemAcentos = "AEIOUAEO";
  
  	if ( sAcentuadas.indexOf( sChar.toUpperCase() ) > -1 ) {
  		return sSemAcentos.charAt( sAcentuadas.indexOf( sChar.toUpperCase() ) );
  	}
  	return sChar;  
}

