var ids = new Array();
var nomes = new Array();
var distr;
/*
  Método que inicializa os valores que vão ser passados por QueryString para a página de resultado.
*/
function emptyArrays()
{
  ids = null;
  ids = new Array();
  nomes = null;
  nomes = new Array();
}
/*
  Método que permite seleccionar um distrito.
*/
function set_distrito(id)
{
  document.getElementById(document.getElementById("_control").value+"_distrito").value = '' + id;
}
/*
  Método que permite seleccionar um concelho.
*/
function add_Concelho(id)
{
  var stp = false;
  for(i=0; i<ids.length; i++) {
	if(parseInt(ids[i]) == parseInt(id))
	  stp = true;
  }
  if(!stp) {
    ids = ids.concat(new Array(''+id));
	nomes = nomes.concat(new Array(id.toString()));
	document.getElementById(document.getElementById("_control").value+"_concelho").value = nomes.join(',');
	document.getElementById("_id").value = ids.join(',');
  }
}
/*
  Método que permite limpar a selecção de determinado concelho.
*/
function del_Concelho(id)
{
  var aux = ids.join(',');
  var aux2 = nomes.join(',');
  var aux = aux.split(",");
  var aux2 = aux2.split(",");
  emptyArrays();
	
  for(i=0; i<aux.length; i++) {
    if(parseInt(aux[i]) != parseInt(''+id)) {
	  ids = ids.concat(new Array(aux[i]));
	  nomes = nomes.concat(new Array(aux2[i]));
	}
  }
  document.getElementById(document.getElementById("_control").value+"_concelho").value = nomes.join(',');
  document.getElementById("_id").value = ids.join(',');
}
/*
  Método que permite limpar todas as selecções do mapa.
*/
function del_all()
{
  distr = '';
  emptyArrays();
  document.getElementById(document.getElementById("_control").value+"_distrito").value = '';
  document.getElementById(document.getElementById("_control").value+"_concelho").value = '';
  document.getElementById("_id").value = '';
}



/*
  Método que realiza o DataBind do filtro 'Preço'.
*/
function pesqRapida_ddlTipo_SelectedIndexChanged() {
  // Inicializa a variável que contém caracteres especiais (devido ao encoding do portal DotNetNuke)
  var _euro=String.fromCharCode(8364);
  var _ate=String.fromCharCode(233);
  var _char=[
			 'At'+_ate+' X '+_euro,
			 'De X at'+_ate+' Y '+_euro,
			 'Mais de X '+_euro
			 ];
	
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;

  // Adiciona o texto 'Preco:'
  var _preco = document.getElementById(_client+"ddlPreco");
  var _option = _preco.options[0];
  _preco.options.length = 0;
  _preco.options.add(_option);
    
  // Verifica qual é a finalidade seleccionada
  with(_preco.options) {
    switch(document.getElementById(_client+"ddlFinalidade").value) {
	  case "241":
	  case "1516":
	    // Arrendamento, Arrendamento para férias
		add(new Option(_char[0].replace("X","350"), "|350"));
		add(new Option(_char[1].replace("X","350").replace("Y","500"), "350|500"));
		add(new Option(_char[1].replace("X","500").replace("Y","1000"), "500|1000"));
		add(new Option(_char[1].replace("X","1000").replace("Y","2000"), "1000|2000"));
		add(new Option(_char[2].replace("X","2000"), "2000|"));
		break;
	  default:
	    if(document.getElementById(_client+"ddlFinalidade").selectedIndex != 0) {
		  add(new Option(_char[0].replace("X","110.000"), "|110000"));
		  add(new Option(_char[1].replace("X","110.000").replace("Y","150.000"), "110000|150000"));
		  add(new Option(_char[1].replace("X","150.000").replace("Y","190.000"), "150000|190000"));
		  add(new Option(_char[1].replace("X","190.000").replace("Y","230.000"), "190000|230000"));
		  add(new Option(_char[2].replace("X","230.000"), "230000|"));
		}
		break;
	}
  }
}
/*
  Método que configura a seleccção da localização (Mapa, Distrito, Concelho e Freguesia).
*/
function pesqRapida_ddlPais_SelectedIndexChanged() {	
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
  var _pais = document.getElementById(_client+"ddlPais").value;

  // Configura a apresentação do mapa
  if(typeof(_arrayD) != "undefined") {
	var _mapa = document.getElementById(_client+"divMapa")
    if(_pais == "1") {
	  _mapa.style.visibility = "visible";
	  _mapa.style.display = "block";
    } else {
	  _mapa.style.visibility = "hidden";
	  _mapa.style.display = "none"; 
    }
  } else {
	// Configura o acesso aos objectos "Distrito" e "Concelho"
    var _distrito = document.getElementById(_client+"ddlDistrito");
	if(_pais == "1") {
	  _distrito.disabled = false;
	  document.getElementById(_client+"ddlConcelho").disabled = false;
    } else {
	  _distrito.selectedIndex = 0;
	  _distrito.disabled = true;
	  clear_dropdown("ddlConcelho", true);
    }
  }
}
function clear_dropdown(ddl, disabled) {
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
	
  var _obj = document.getElementById(_client+ddl);
  var _default = _obj.options[0];
  _obj.options.length = 0;
  var _option = new Option(_default.text, "");
  _obj.options[_obj.options.length] = _option;
  _obj.disabled = disabled;
}


/*
  Método que configura o texto a apresentar no filtro 'Referência'.
*/
function txtReferencia_Focus(_event) {
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
  var _value;
  var _text;
	
  switch(_event) {
    case "onFocus":
      _value = "";
      _text = document.getElementById(_client+"_txtlabel").value;
      break;
    case "onBlur":
      _value = document.getElementById(_client+"_txtlabel").value;
      _text = "";
      break;
  }
  // Verifica se a referência do imóvel ainda não se encontra introduzida
  if(trim(document.getElementById(_client+"txtReferencia").value) == _text) {
    document.getElementById(_client+"txtReferencia").value = _value;
  }
}

function trim(string) {
  var re= /^\s*|\s*$/g;
  return string.replace(re,"");
}




/*
  Método que acrescenta um campo obrigatório à mensagem de validação do formulário.
*/
function pesqRapida_cfgMessage(_dropdown, _text, _return) {
  if(_dropdown.type == "select-one" && _dropdown.value == "") {
	_dropdown.options[0].style.color = "#DC423B";
	if(!_dropdown.enabled) _dropdown.enabled = true;
	if(_return) return String.fromCharCode(187) + " " + _text + "\n";
  }
}
/*
  Método que obtém a endereço da página de resultado da pesquisa de imóveis.
*/
function pesqRapida_getURL() {
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
  // Cria o endereço da página do Resultado da Pesquisa
  var _url = "/Default.aspx?tabid=" + document.getElementById(_client+"__tabid").value;

  // Mediador
  _url += pesqRapida_add_value("_idmed", "idMed");
  // Verifica o tipo de pesquisa
  if(trim(document.getElementById(_client+"txtReferencia").value) == document.getElementById(_client+"_txtlabel").value) {
    // Finalidade
    _url += pesqRapida_add_value("ddlFinalidade", "tNeg");	  
	// Tipo Imóvel
	if(document.getElementById(_client+"_idmed").value == "" && document.getElementById(_client+"divMapa").style.visibility == "visible") {
	  // Verifica a opção seleccionada (é necessário esta verificação porque existem tipos e sub-tipos)
	  switch(document.getElementById(_client+"ddlTipo").selectedIndex) {
	    case 1: case 2: case 7: case 8:	case 9:
		  _url += pesqRapida_add_value("ddlTipo", "gImo");
		  break;
	    case 3:	case 4:	case 5:	case 6:
		  _url += pesqRapida_add_value("ddlTipo", "tImo");
		  break;
      }
	} else {
	  _url += pesqRapida_add_value("ddlTipo", "tImo");
	}
    // País	  
    _url += pesqRapida_add_value("ddlPais", "lPai");
    // Localização (Distrito, Concelho)
    if(document.getElementById(_client+"divMapa").style.visibility == "visible") {
      _url += pesqRapida_add_value("_distrito", "lDis");
      _url += pesqRapida_add_value("_concelho", "lCon");
    } else {
	   if(document.getElementById(_client+"ddlPais").value == 1) {
	    _url += pesqRapida_add_value("ddlDistrito", "lDis");
        _url += pesqRapida_add_value("ddlConcelho", "lCon");
	   }
    }
    // Tipologia
    _url += pesqRapida_add_value("ddlTipologia", "tMin");
    _url += pesqRapida_add_value("ddlTipologia", "tMax");
	// Preço
	var _preco = document.getElementById(_client+"ddlPreco").value;
	if(_preco.length > 0) {
	  var _pos = _preco.indexOf("|");
	  // Gama de Preços 'Até'
	  if(_pos == 0) {
	    _url += "&pMax="+_preco.substring(_pos+1);
	  // Gama de Preços 'Mais de'
	  } else if (_preco.length == _pos+1) {
	    _url += "&pMin="+_preco.substring(0,_pos);
	  // Gama de Preços 'De Até'
	  } else {
	    _url += "&pMin="+_preco.substring(0,_pos);
	    _url += "&pMax="+_preco.substring(_pos+1);  
	  }
	}
	_url += "&language="+document.getElementById("__idioma").value;
  } else {
    _url += pesqRapida_add_value("txtReferencia", "iRef");
	_url += pesqRapida_add_flag(_client, "rblPesquisa_0", "pExacta");
	_url += "&language="+document.getElementById("__idioma").value;
  }
  
  return _url;
}
/*
  Método que adiciona um valor à QueryString.
*/
function pesqRapida_add_value(_name, _query){
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
  var _value = document.getElementById(_client+_name).value;
  if(_value.length > 0) {
    return "&" + _query + "=" + _value;
  }
  return "";
}
/*
  Metódo que permite adicionar uma característica CheckBox.
*/
function pesqRapida_add_flag(_client, _name, _query) {
  if(document.getElementById(_client+_name).checked) {
    return "&" + _query + "=1";
  }
  return "";
}
/*
  Método que permite aceder à DropDownList 'Concelho'.
*/
function show_concelho() {
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
  document.getElementById(_client+"ddlConcelho").disabled = false;
}

/*
  Método que permite definir o concelho seleccionado.
*/
function set_concelho(_value) {
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
  document.getElementById(_client+"ddlConcelho").value = _value;
}
/*
  Método que permite definir o concelho seleccionado.
*/
function set_preco(_value) {
  // Obtém o clientID do controlo
  var _client = document.getElementById("_control").value;
  var _dropdown = document.getElementById(_client+"ddlPreco");
  
  _dropdown.value = _value;
}