﻿//$Get = function(objID) { return document.getElementById(objID); };
Array.prototype.remove = function(index)
{
    for (var i = index; i < this.length - 1; i++) this[i] = this[i + 1];
    this.length -= 1;
}
Array.prototype.insert = function(value, index)
{
    for (var i = this.length; i > index; i--) this[i] = this[i - 1];
    this[index] = value;
}
function GetHierarchy(obj)
{
    var ret = [];
    while (true)
    {
        ret.push(obj);
        obj = obj.parentNode;
        if (obj.tagName && obj.tagName.toLowerCase() == 'body') break;
    }
    return ret;
}
function GetTagName(obj)
{
    return (obj.tagName || '').toLowerCase();
}
function $GetByID(obj)
{
    if (obj && !obj.innerHTML) obj = $Get(obj);
    return obj;
}
function AddClassName(obj, className)
{
    obj = $GetByID(obj);
    var str = obj.className || '';
    var arrClassNames = str.split(' ');
    for (var i=0; i<arrClassNames.length; i++)
    {
        if (i==0 && arrClassNames.length == 1 && arrClassNames[i] == '') { arrClassNames[0] = className; obj.className = className; return;}
        if (arrClassNames[i].toLowerCase() == className.toLowerCase()) return;
    }
    arrClassNames.push(className);
    obj.className = arrClassNames.join(' ');
}
function RemoveClassName(obj, className)
{
    obj = $GetByID(obj);
    var str = obj.className || '';
    var arrClassNames = str.split(' ');
    for (var i=arrClassNames.length-1; i>=0; i--)
        if (arrClassNames[i].toLowerCase() == className.toLowerCase())
            arrClassNames.remove(i);
    obj.className = arrClassNames.join(' ');
}
function ReplaceClassName(obj, classNameOld, classNameNew)
{
    obj = $GetByID(obj);
    var str = obj.className || '';
    var arrClassNames = str.split(' ');
    for (var i = arrClassNames.length - 1; i >= 0; i--)
        if (arrClassNames[i].toLowerCase() == classNameOld.toLowerCase())
            arrClassNames[i] = classNameNew;
    obj.className = arrClassNames.join(' ');
}
function ReplaceClassNameUndescore(obj, classNameOld, classNameNew)
{
    obj = $GetByID(obj);
    var str = obj.className || '';
    var arrClassNames = str.split('_');
    for (var i = arrClassNames.length - 1; i >= 0; i--)
        if (arrClassNames[i].toLowerCase() == classNameOld.toLowerCase())
            arrClassNames[i] = classNameNew;
    obj.className = arrClassNames.join('_');
}
function ClearClassName(identificador)
{
    var id = '';
    if(typeof(identificador) == "object")
        id = identificador.id;
    else
        id = identificador;
    $Get(id).className = '';
}
function GetChildNodes(elem, childNodeTagName)
{
    var filhos = [];
    var filhosAux = elem.childNodes;
    if (!childNodeTagName || childNodeTagName.length === 0)
    {
        for (var i = 0; i < filhosAux.length; i++)
        {
            if (filhosAux[i].tagName)
                filhos.push(filhosAux[i]);
        }
    }
    else
    {
        for (var i = 0; i < filhosAux.length; i++)
        {
            if (filhosAux[i].tagName && filhosAux[i].tagName.toLowerCase() == childNodeTagName.toLowerCase())
                filhos.push(filhosAux[i]);
        }
    }
    
    return filhos;
}
function ReplaceAll(string, token, newtoken)
{
    while (string.indexOf(token) != -1)
        string = string.replace(token, newtoken);

    return string;
}

MenuPrincipal = {
    MenuSelecionado: null,
    ClosingControl: null,
    AbrirMenu: function(idMenu)
    {
        if (this.MenuSelecionado == idMenu)
        {
            this.ClearClosingControl();
            return;
        }
        else
        {
            this.ClearClosingControl();
            this.FecharMenu();
        }
        var menu = $Get("Menu" + idMenu);
        RemoveClassName(menu.id, "off");
        AddClassName(menu.id, "on");

        var submenu = $Get("SubMenu" + idMenu);
		submenu.style.display = 'block';
		//RemoveClassName(submenu.id, "off");
        //AddClassName(submenu.id, "on");
        //$Get(submenu.id).style.display = '';
        //$("#" + submenu.id).fadeIn("fast");
        //$("#" + submenu.id).slideDown(500);
        //setTimeout('$Get(' + submenu.id + ').style.display = null;', 2000);
    },
    FecharMenu: function()
    {
        var menu, submenu;
        for (var i = 1; i <= 4; i++)
        {
            menu = $Get("Menu" + i);
            RemoveClassName(menu.id, "on");
            AddClassName(menu.id, "off");

            submenu = $Get("SubMenu" + i);
            //ShowMessage(submenu.style.display);
			submenu.style.display = 'none';
            //RemoveClassName(submenu.id, "on");
            //AddClassName(submenu.id, "off");
        }
        this.MenuSelecionado = null;
    },
    OnMouseOut: function(idMenu)
    {
        this.MenuSelecionado = idMenu;
        this.ClosingControl = setTimeout('MenuPrincipal.FecharMenu();', 300);
    },
    ClearClosingControl: function()
    {
        if (this.ClosingControl)
            clearTimeout(this.ClosingControl);
        this.ClosingControl = null;
    },
    Inicializa: function()
    {
        for (var i = 1; i <= 4; i++)
        {
            var menu = $Get('SubMenu' + i);
            for (var j = 0; j < menu.childNodes.length; j++)
            {
                if (menu.childNodes[j].tagName && menu.childNodes[j].tagName.toLowerCase() == 'li')
                {
                    menu.childNodes[j].onmouseover = menu.onmouseover;
                    for (var k = 0; k < menu.childNodes[j].childNodes.length; k++)
                    {
                        if (menu.childNodes[j].childNodes[k].tagName && menu.childNodes[j].childNodes[k].tagName.toLowerCase() == 'a')
                        {
                            menu.childNodes[j].childNodes[k].onmouseover = menu.onmouseover;
                        }
                    }
                }
            }
        }
    }

};

// Funções para as listagens laterais de usados e lançamentos
function AdicionaFavoritos(url, titulo)
{
    if (window.external)
        window.external.AddFavorite(url, titulo);
    else
        ShowMessage("Desculpe! Seu navegador de Internet não suporta esta funcionalidade.");
}

function EfetuaScrollParaFiltroSelecionado(nomeFiltro)
{
    location.hash = nomeFiltro;
}

function MostraTodos(linkMostraTodos)
{
    ReplaceClassName(linkMostraTodos.parentNode.parentNode, 'ulQueFecha', 'ulAberto');
}

function MostraTodos(linkMostraTodos)
{
    if (linkMostraTodos.parentNode != null)
        ReplaceClassName(linkMostraTodos.parentNode.parentNode, 'ulQueFecha', 'ulAberto');
    else if (linkMostraTodos.parentNode.parentNode != null)
        ReplaceClassName(linkMostraTodos.parentNode, 'ulQueFecha', 'ulAberto');
}

function MostraTodosItens(ul)
{
    if ($Get(ul) !== null)
        ReplaceClassName(ul, 'ulQueFecha', 'ulAberto');
}

function MostraTodosItensFiltro(itens, mostrar)
{
    var filhos = GetChildNodes(itens, 'li');

    var totalItens = filhos.length;

    for (var i = 0; i < totalItens; i++)
        filhos[i].style.display = mostrar ? '' : 'none';
}

function AlteraTextoElemento(elemento, conteudo)
{
    elemento.innerHTML = conteudo;
}

function AtribuiTextoDinamico(link, li, textoPadrao, textoComOpcaoExpandir)
{
    var ul = $Get(li).parentNode; //testar para ve se funciona no firefox

    var filhos = GetChildNodes(ul, 'li');

    var linkTexto = $Get(link);

    linkTexto.innerHTML = filhos.length === 1 ? textoPadrao : textoComOpcaoExpandir;
}

function MostrarItemDoGrupo(li)
{
    var ul = $Get(li).parentNode; //testar para ve se funciona no firefox

    var filhos = GetChildNodes(ul, 'li');

    var totalItens = filhos.length;

    for (var i = 0; i < totalItens; i++)
        filhos[i].style.display = filhos[i].id === li ? '' : 'none';
}
// Fim funções para as listagens laterais de usados e lançamentos

//Função que bloqueia os dígitos após uma certa quantidade ter sido alcançada
function ValidaQuantidadeCaracteres(campo, e)
{
    e = e || window.event;
    var whichCode = e.which || e.keyCode;

    //Setas, delete e backspace não contam
    if (whichCode == 13 || whichCode == 9 || whichCode == 8 || whichCode == 37 || whichCode == 39 || whichCode == 35 || whichCode == 36)
        return true;

    if (campo.value.length === 300)
    return false;
}

function Trim(str)
{
    return str.replace(/^\s+|\s+$/g, "");
}


function CurrencyFormat(fld, e, milSep, decSep)
{
    milSep = milSep || '.';
    decSep = decSep || ',';

    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    e = e || window.event;
    var whichCode = e.which || e.keyCode;

    if (whichCode == 13 || whichCode == 9 || whichCode == 8 || whichCode == 37 || whichCode == 39 || whichCode == 35 || whichCode == 36)
        return true;  // Enter, Tab, Delete, Esquerda, Direita, Home, End
    key = String.fromCharCode(whichCode);  // Get key value from key code
    if (strCheck.indexOf(key) == -1) return false;  // Not a valid key

    var txt = fld.value.replace(/[^0-9]/g, ''); if (fld.maxLength && txt.length >= fld.maxLength) return false;

    len = fld.value.length;
    for (i = 0; i < len; i++)
        if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep))
        break;

    aux = '';

    for (; i < len; i++)
        if (strCheck.indexOf(fld.value.charAt(i)) != -1)
        aux += fld.value.charAt(i);

    aux += key;
    len = aux.length;

    if (len == 0)
        fld.value = '';

    if (len == 1)
        fld.value = '0' + decSep + '0' + aux;

    if (len == 2)
        fld.value = '0' + decSep + aux;

    if (len > 2)
    {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--)
        {
            if (j == 3)
            {
                aux2 += milSep;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        fld.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
            fld.value += aux2.charAt(i);
        fld.value += decSep + aux.substr(len - 2, len);
    }
    return false;
}

function ParseCurrency(txt)
{
    if (String.IsNullOrEmpty(txt))
        return null;
        
    var val = txt.replace(/\./g, '');
    val.replace(',', '.');
    return parseFloat(val);
}

function VerificarDigitoNumerico(evt)
{
    evt = evt || window.event;

    var charCode = evt.which || evt.keyCode;

    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}

function DefineMascara(campo, mask, maxLength, evt)
{
    if (!VerificarDigitoNumerico(evt))
        return false;

    vCampo = campo.value;
    tCampo = vCampo.length;

    //Quando o valor no campo passa a não corresponder exatamente ao comprimento determinado no pattern informado, a função entra num loop infinito
    //Então, este trecho verifica o comprimento e não deixa passar do pattern informado
    if (tCampo === maxLength)
        return;
    
    tMask = mask.length;
    vFinal = "";

    for (i = 0; i < tCampo; i++)
    {
        vCampo = vCampo.replace("-", "");
        vCampo = vCampo.replace(".", "");
        vCampo = vCampo.replace("/", "");
        vCampo = vCampo.replace(" ", "");
    }

    tCampo = vCampo.length;
    pMask = tMask - 1;

    for (i = 0; i < tCampo; i++)
    {
        pMask--;
        while (mask.charAt(pMask) != "#")
        {
            pMask--;
        }
    }

    cont = 0;
    for (i = pMask; i < tMask; i++)
    {
        if (mask.charAt(i) == "#")
        {
            vFinal = vFinal + vCampo.charAt(cont);
            cont++;
        }
        else
        {
            vFinal = vFinal + mask.charAt(i);
        }
    }
    campo.value = "";
    campo.value = vFinal;

    return true;
}

function RemoveCaracteresCPF(CPF)
{
    var numerosCPF = ReplaceAll(CPF, ".", "");
    numerosCPF = ReplaceAll(numerosCPF, "-", "");

    return numerosCPF;
}

function OpenPopUPImpressao(url)
{
    window.open(url, 'Impressao', 'scrollbars=yes,status=no,location=no,toolbar=no,menubar=no,resizable=yes');
    // 'scrollbars=no,status=no,location=no,toolbar=no,menubar=no,top=50,left=50'
}

function OpenPopUPRadioCoelho() {
    window.open(page.ResolveUrl('~/swf/RadioCoelho/default.htm'), 'RadioCoelho', 'scrollbars=no,status=no,location=no,toolbar=no,menubar=no,resizable=no,height=330,width=260');
}

function IsTelefone(telefone)
{
    return !telefone || !telefone.length || telefone.match('^[0-9]{4,4}\\-[0-9]{4,4}$') != null;
}

function ChangeQueryString(paramName, paramValue)
{
    var qs = location.search;
    var ns = '?';
    if (qs && qs.length > 0)
    {
        var parts = location.search.substr(1).split('&');
        var contains = false;
        var any = false;
        for (var i = 0; i < parts.length; i++)
        {
            if (i > 0) ns += '&';
            var nameValue = parts[i].split('=');
            if (nameValue[0] == paramName)
            {
                contains = true;
                ns += paramName + '=' + paramValue;
            }
            else if (nameValue.length == 2)
            {
                ns += nameValue[0] + '=' + nameValue[1];
            }
            else
                ns += nameValue[0];
        }
    }
    if (ns != '?' && !contains) ns += '&';
    if (!contains) ns += paramName + '=' + paramValue;
    var url = location.href.split('?')[0] + ns;

    try
    {
        pageTracker._link(url);
    }
    catch (e)
    {
    }
    //location.href = url;
}

function ExibeConfirmacaoExclusao()
{
    return window.confirm('Você tem certeza que deseja remover este imóvel?');
}

function ShowMessage(msg)
{
    window.alert(msg);
}

jQuery.fn.center = function(params)
{

    var options = {

        vertical: true,
        horizontal: true

    }
    op = jQuery.extend(options, params);

    this.each(function()
    {

        //initializing variables
        var $self = jQuery(this);
        //get the dimensions using dimensions plugin
        var width = $self.width();
        var height = $self.height();
        //get the paddings
        var paddingTop = parseInt($self.css("padding-top"));
        var paddingBottom = parseInt($self.css("padding-bottom"));
        //get the borders
        var borderTop = parseInt($self.css("border-top-width"));
        var borderBottom = parseInt($self.css("border-bottom-width"));
        //get the media of padding and borders
        var mediaBorder = (borderTop + borderBottom) / 2;
        var mediaPadding = (paddingTop + paddingBottom) / 2;
        //get the type of positioning
        var positionType = $self.parent().css("position");
        // get the half minus of width and height
        var halfWidth = (width / 2) * (-1);
        var halfHeight = ((height / 2) * (-1)) - mediaPadding - mediaBorder;
        // initializing the css properties
        var cssProp = {
            position: 'absolute'
        };

        if (op.vertical)
        {
            cssProp.height = height;
            cssProp.top = '50%';
            cssProp.marginTop = halfHeight;
        }
        if (op.horizontal)
        {
            cssProp.width = width;
            cssProp.left = '50%';
            cssProp.marginLeft = halfWidth;
        }
        //check the current position
        if (positionType == 'static')
        {
            $self.parent().css("position", "relative");
        }
        //aplying the css
        $self.css(cssProp);


    });

};
RedirecionarRegional = function(virtualPath, urlPar, args) {
    var url = 'http://' + args.split(',')[1] + virtualPath + '?' + urlPar + '=' + args.split(',')[0];
    location.href = url;
}
RegistraConversaoAdWords = function() {
    window.frames["iframeGoogleAdwordsScripts"].location.href = page.ResolveUrl("~/aspx/Geral/GoogleAdwordsScripts.aspx");
}

function ConfiguraJanelaConfFavorito_IE6(nomeElemento, background)
{
    var elemento = document.getElementById(nomeElemento);
    
    if (elemento !== null)
        elemento.style.cssText = 'background:none;display:none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + background + ', sizingMethod="scale");';
}

window.SedesRodape = {};
SedesRodape.ContainersFilial = [];
SedesRodape.AgrupadoresFilial = [];
SedesRodape.Contador = 1;
SedesRodape.MostraContainer = function(nomeContainer)
{
    var container = null;

    for (var a = 0; a < SedesRodape.ContainersFilial.length; a++)
    {
        container = $GetByID(SedesRodape.ContainersFilial[a]);
        if (container !== null)
        {
            if (SedesRodape.ContainersFilial[a] === nomeContainer)
                SedesRodape.MostraElemento(container,true);
            else
                SedesRodape.MostraElemento(container,false);
        }
    }
}

SedesRodape.AlteraCSSClass = function(nomeElemento, classNameMostragem, classNameOcultamento)
{
    var agrupador = null;

    for (var a = 0; a < SedesRodape.AgrupadoresFilial.length; a++)
    {
        agrupador = $GetByID(SedesRodape.AgrupadoresFilial[a]);
        if (agrupador !== null)
        {
            if (SedesRodape.AgrupadoresFilial[a] === nomeElemento)
                agrupador.className = classNameMostragem;
            else
                agrupador.className = classNameOcultamento;
        }
    }
}

SedesRodape.GetOffset = function(obj)
{
    var ret = { x: 0, y: 0 };
    if (obj.offsetParent)
        ret = SedesRodape.GetOffset(obj.offsetParent);

    ret.x += obj.offsetLeft;
    ret.y += obj.offsetTop;

    return ret;
}

SedesRodape.PosicionaElemento = function(elemento, objTarget, larguraElem, alturaElem, paddingHorizontal)
{
    var elem = $Get(elemento);
    var target = $Get(objTarget);

    var ofs = SedesRodape.GetOffset(target);

    elem.style.top = (ofs.y - alturaElem + 12) + 'px';
    elem.style.left = (ofs.x - paddingHorizontal) + 'px';
}

SedesRodape.MostraElemento = function(elemento, mostrar)
{
    var elem = $GetByID(elemento);

    if (elem !== null)
        elem.style.display = mostrar ? '' : 'none';
}

SedesRodape.MostraElementoComReadicionamento = function(elemento, mostrar)
{
    var elem = $GetByID(elemento);
    
    elem.parentNode.removeChild(elem);
    document.body.appendChild(elem);

    if (elem !== null)
    {
        if (mostrar)
            elem.style.display = '';
        else
            elem.style.display = 'none';
    }
}

window.ListagemSEO = {};
ListagemSEO.SubstituirTodosPorClassName = function(className, novoClassName, parentNodeId)
{
    var node = document.getElementById(parentNodeId);
    var elementosInativos = window.ListagemSEO.GetElementsByClassName(className, node);

    if (elementosInativos !== null) {
        for (var i = 0; i < elementosInativos.length; i++)
            elementosInativos[i].className = novoClassName;
    }
}

ListagemSEO.GetElementsByClassName = function(classname, node)
{
    if (!node)
        node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for (var i = 0, j = els.length; i < j; i++)
    {
        if (re.test(els[i].className))
            a.push(els[i]);
    }
    
    return a;
}