﻿var j$ = jQuery.noConflict();

var _textoAjax = "Aguarde...";
var _bloquearAjaxStop = false;
var _ajaxInterval;

// Ajusta loading do j$
j$(document).ready(function()
{
    j$().ajaxStart(function() { ajaxStart(); });
    j$().ajaxStop(function() { ajaxStop(); });
    j$().ajaxError(function(evento, request, settings) { ajaxError(evento, request, settings); });
});

function ajaxStart()
{
    _bloquearAjaxStop = false;

    j$('#ajaxStatus').attr("class", "loading");
    j$('#ajaxStatus').text(_textoAjax);
    j$('#ajaxStatus').show();
    
    _ajaxInterval = setInterval(function(){AlinharElementoTopo('#ajaxStatus', 0)}, 50);
}
function ajaxStop()
{
    if (_bloquearAjaxStop)
        return;

    j$('#ajaxStatus').hide();

    clearInterval(_ajaxInterval);
}
function ajaxError(evento,request,settings)
{
//    _bloquearAjaxStop = true;

//    j$('#ajaxStatus').attr("class", "error");
//    j$('#ajaxStatus').text("Erro ao processar informação. Por favor, tente novamente");
//    j$('#ajaxStatus').show();
}

function encontrarElemento(pID)
{
    var form = document.forms[0];
    
    for(var i=0;i<form.elements.length;i++)
    {
        if(form.elements[i].id.indexOf(pID) > -1)
            return form.elements[i];
    }

    var elementos = document.getElementsByTagName("*");

    for(var i=0;i<elementos.length;i++)
    {
        if(elementos[i].id.indexOf(pID) > -1)
            return elementos[i];
    }
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function FormatarPreco(prefixo, valor)
{
    if (valor <= 99999)
        valor = valor.toString().substring(0,1) + "0.000";// + Right(valor,3);
    else if (valor <= 999999)
        valor = valor.toString().substring(0,2) + "0.000";// + Right(valor,3);
    else if (valor <= 9999999)
        valor = valor.toString().substring(0,1) + "." + valor.toString().substring(1,2) + "00.000";// + valor.toString().substring(1,4) + "." + Right(valor,3);
    else if (valor <= 99999999)
        valor = valor.toString().substring(0,2) + "." + valor.toString().substring(3,2) + "00.000";// + Right(valor,3);

    if (prefixo != null)
        return prefixo + valor;
    else
        return valor;
}

function FormatarMetragem(valor, sufixo)
{
    var aux = valor.toString().length;
    valor = valor.toString().substring(0,aux-1) + "0";
    
    if (valor.length >= 5)
        valor = valor.substring(0,2) + "." + Right(valor,3);
    else if (valor.length >= 4)
        valor = valor.substring(0,1) + "." + Right(valor,3);

    if (sufixo != null)
        return valor + sufixo;
    else
        return valor;
}


//*************************************************************************
//Descricao:	Carrega um combo através de HTTP Request.
//				Passar o ID do combo a ser carregado, e a referencia (this)
//				do combo pai
//Data de criacao: 06/10/06
//Autor: Andre Cinicola (NetPartners)
//**************************************************************************
function CarregarCombo(pComboCarregar, pObjCombo, pCallBack, pPrimeiroItem, pDados)
{
	var filtro = pObjCombo.value;

	//if (pComboCarregar == 'cboBairro')
	//    filtro = readCookie("Estado") + "|" + filtro;

	// Desabilita o combo pai, para evitar chamar varias vezes o servidor
	// rolando o combo
	pObjCombo.disabled = true;

	// Adiciona a primeira opcao do combo
	var Combo = encontrarElemento(pComboCarregar);
	Combo.length = 1;
	Combo[0].value = "";
	Combo[0].text = "Carregando   ";

	//Combo.style["width"] = "100px";

	// Faz piscar os "..." da palavra "Carregando..."
	var contador = 0;
	function PiscarCarregando()
	{
		var sufixo = null;
		switch (contador)
		{
			case 0:
			sufixo = "   ";
			break;

			case 1:
			sufixo = ".  ";
			break;

			case 2:
			sufixo = ".. ";
			break;

			case 3:
			sufixo = "...";
			break;
		}

		contador += 1;
		if (contador == 4)
			contador = 0;

		Combo[0].text = "Carregando" + sufixo;
	}

	// Chama funcao de piscar em intervalos de tempo
	var intervalo = setInterval(PiscarCarregando, 200);

    var dadosExtra = "";
    if (!IsNullOrEmpty(pDados))
        dadosExtra = "&dadosExtra=" + pDados;

    j$.ajax
    ({
        type: "GET",
        url: "/geral/Combo.aspx?comboCarregar=" + pComboCarregar + "&codigoFiltro=" + filtro + dadosExtra,
        //data: j$("form").serialize(),
        success: function(retorno)
        {
            clearInterval(intervalo); // Para de piscar o "Carregando..."
		    contador = 0;
            Combo[0].value = "";
		    Combo[0].text = IsNullOrEmpty(pPrimeiroItem)?"Selecione...":pPrimeiroItem;

		    pObjCombo.disabled = false; // Habilita combo pai
		    //pObjCombo.focus();

		    //Combo.style["width"] = "";

		    if (pCallBack == null)
		    {
			    if (Combo.onchange != null) // se o combo tiver funcao, tem que executar
				    Combo.onchange();
		    }

		    // Pega string de retorno do .Net e monta array
		    //var Retorno = retorno.responseText;
		    var ArrValores = retorno.split('|');

	        // Carrega combo com as opcoes do array
		    for(var i=0; i < ArrValores.length -1; i+=2)
		    {
			    Combo.length +=1;
			    Combo[Combo.length-1].value = ArrValores[i];
			    Combo[Combo.length-1].text = ArrValores[i+1];
		    }

		    if (pCallBack != null)
		    {
			    eval(pCallBack);
			    if (Combo.onchange != null) // se o combo tiver funcao, tem que executar
				    Combo.onchange();
		    }
        }
    });
}


function IsNullOrEmpty(valor)
{
    if (valor == null || valor == "")
        return true;
    else
        return false;
}

String.prototype.trim = function()
{
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function AdicionarFavorito(valores, callBackSucesso, callBackErro)
{
    var codigoImovel = valores.split('|')[0];
    var imovelTerceiro = valores.split('|')[1];

    j$.ajax
    ({
        type: "POST",
        url: "/geral/interfaceHTTP.aspx?acao=adicionar-favorito",
        data: "codigoImovel=" + codigoImovel + "&imovelTerceiro=" + imovelTerceiro,
        success: function(retorno)
        {
            if (retorno=="OK")
            {
                if(callBackSucesso != undefined)  
                    callBackSucesso();
            }
            else
            {
                if(callBackErro != undefined)
                    callBackErro();

                AbrirLogin(function(){AdicionarFavorito(valores, callBackSucesso, callBackErro);});
            }
        }
    });
}

// verifica qual o statsu do usuário 
// retorna S para usuário logado e N para usuário anonimo
function UsuarioLogado(callBackLogado, callBackNaoLogado)
{
    j$.ajax
    ({
        type: "POST",
        url: "/geral/interfaceHTTP.aspx?acao=verificar-usuario-logado",
        data: "codigo=1",
        
        success: function(retorno)
        {
            if(retorno == "S")
            {
                if (callBackLogado != undefined)
                    callBackLogado();
            }
            else
            {
                if (callBackNaoLogado != undefined)
                    callBackNaoLogado();
            }
        }
    });
}

function scrollTop()
{
    var n_win = window.pageYOffset ? window.pageYOffset : 0;
    var n_docel = document.documentElement ? document.documentElement.scrollTop : 0;
    var n_body = document.body ? document.body.scrollTop : 0;

	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function AlinharElementoTopo(elemento, pixelsDistanciaTopo)
{
    j$(elemento).css("top", parseInt(scrollTop(),10)+pixelsDistanciaTopo + "px");
}

function AbrirConsultorOnline(acao, codigoImovel, imovelTerceiro, nome, ddd, telefone, email)
{
    var UrlDestino = "";
    
    var hdnCodigoImovel = encontrarElemento("hdnCodigoImovel");
    var hdnImovelTerceiro = encontrarElemento("hdnImovelTerceiro");

    if (hdnCodigoImovel != null)
        codigoImovel = hdnCodigoImovel.value;

    if (hdnImovelTerceiro != null)
        imovelTerceiro = hdnImovelTerceiro.value;

    var Depto;
    var NomeImovel;
    var Empresa;
    var CodigoSIAV;
    var Janela = window.open("","consultorOnline","resizable=no,toolbar=no,status=no,menubar=no,scrollbars=yes,width=450,height=370");
    Janela.document.body.innerHTML = "<br><br><br><center style=\"font-family:arial\">Carregando...</center>";
    
    //if (imovelTerceiro == "S")
        //Depto = "948";

    // Localiza dados do imóvel
    j$.ajax
    ({
        type: "POST",
        url: "/geral/interfaceHTTP.aspx?acao=consultor-online",
        data: "&codigoImovel=" + codigoImovel + "&imovelTerceiro=" + imovelTerceiro,
        success: function(retorno)
        {
		    // Pega string de retorno do .Net e monta array
		    var Retorno = retorno;
		    var ArrValores = Retorno.split('|');

		    NomeImovel = ArrValores[0];
		    Empresa = ArrValores[1];
		    CodigoSIAV = ArrValores[2];
		    Depto = ArrValores[3];
		    
		    if (encontrarElemento('hdnCodigoEmpresa') != null && encontrarElemento('hdnCodigoEmpresa').value == 11) // ebc/properties
		    {
	            Janela.close();
	            alert("Não há nenhum consultor disponível no momento. Por favor, entre em contato pelo telefone (11)3817-1100, ou envie um email para properties@lopes.com.br");
		    }
		    else
		    {
                var usuarioIdentificado = !(IsNullOrEmpty(nome) && IsNullOrEmpty(ddd) && IsNullOrEmpty(telefone) && IsNullOrEmpty(email));
      
                UrlDestino = "http://atendimento.lopes.com.br/chat.asp?idc=4319&pre_empresa=" + Empresa + "&pre_depto=" + Depto; 
                UrlDestino += "&vivocustom2=" + NomeImovel.toUpperCase();
                UrlDestino += "&vivocustom4=" + acao;

                if ((codigoImovel != "0") && (!IsNullOrEmpty(codigoImovel)))
                    UrlDestino += "&vivocustom3=" + CodigoSIAV;

                if (usuarioIdentificado)
                {
                    //UrlDestino += "&login=" + nome;
                    //UrlDestino += "&email=" + email;
                    //UrlDestino += "&vivocustom=" + ddd + "-" + telefone;

                    UrlDestino += "&vivo_direto=1"; // vai direto para o chat
                    UrlDestino += "&vivo_nome="  + nome;
                    UrlDestino += "&vivo_email=" + email;
                    UrlDestino += "&vivocustom=" + ddd + "-" + telefone;
                }

                Janela.location.href = UrlDestino;
                
                trackGA(_textoGA['chat']);
            }
        }
    });
}


////nao esta sendo usando ainda dario solicitou 
////mas posteriormente pediu para aguardar
//function CapturaTeclaEnter(evt)
//{
//    var key_code = evt.keyCode  ? evt.keyCode  :
//                       evt.charCode ? evt.charCode :
//                       evt.which    ? evt.which    : void 0;


//    if (key_code == 13)
//    {
//        return true;
//    }
//}
//// by amauri

var _itensComparacao = "";
function ValidarComparacao(checkbox)
{
    var itens = document.getElementsByName("chkComparacao");
    var total = itens.length;
    var conta = 0;

    _itensComparacao = "";

    for(var i=0;i<total;i++)
    {
        if (itens[i].checked)
        {
            conta++;
            if (conta>4)
            {
                checkbox.checked = false;
                alert('Você só pode comparar até 4 imóveis por vez!');
                conta--;
                break;
            }
            else
            {
                _itensComparacao = _itensComparacao + itens[i].value + ",";
            }
        }
    }

    var texto = "COMPARAR SELECIONADOS (" + conta + " de 4)";
    j$('#aCompararTopo').html(texto);
    j$('#aCompararRodape').html(texto);
}

function Comparar()
{
    _itensComparacao = _itensComparacao.substring(0,_itensComparacao.lastIndexOf(","));

    if (_itensComparacao.indexOf(",") == -1)
        alert("Selecione ao menos 2 imóveis para comparar!");
    else
        document.location = "/imoveis/Comparacao.aspx?codigos=" + _itensComparacao;
}

String.prototype.reverse = function(){
    splitext = this.split("");
    revertext = splitext.reverse();
    reversed = revertext.join("");
    return reversed;
}

// google analytics
function trackGA(texto)
{
    try{
        MDpageTracker._trackPageview(texto);
    }
    catch(ex){}
}

function checkChr(e)
{
    var Key=e.keyCode? e.keyCode : e.charCode;
    return Key;
}