﻿//#region Funções de popup
function ExibirPopUpControl(pControle, pTitulo, pRodape, pUrl, pMaximazada, pLarguraX, pAlturaY) {    
    pControle.Hide();

    //Define o titulo da popup
    if (pTitulo != null) {
        pControle.SetHeaderText(pTitulo);
    }

    //Define o rodape da popup
    if (pRodape == null) {
        pControle.SetFooterText("Para fechar a janela utilize o X no canto superior direito.");
    }
    else {
        pControle.SetFooterText(pRodape);
    }

    //Define o url de conteúdo
    pControle.SetContentUrl(pUrl);

    pControle.Show();

    if (pMaximazada == true) {
        //É uma popup maximizada, são definidas as margens
        pControle.cpMargemX = pLarguraX;
        pControle.cpMargemY = pAlturaY;
        AdicionarPopupArray(pControle);
        AjustarPosicionarPopupControl(pControle);
    }
    else {
        //Não é uma janela maximizada, serão definidas largura e altura caso não sejam nulas.
        var vLargura, vAltura;
        if (pLarguraX != null) { vLargura = pLarguraX; }
        if (pAlturaY != null) { vAltura = pAlturaY; }
        pControle.SetSize(vLargura, vAltura);
        pControle.UpdatePosition();
    }
}

function OcultarPopUpControl(pControleName) {
    if (VerificarExistenciaElemento(pControleName)) {
        vControle = window[pControleName];
        vControle.SetContentHtml(" ");
        vControle.SetContentUrl("/Htm/Aguarde.htm");
        RemoverPopupArray(vControle);
    }
}

//#endregion


//#region Redimensionamento

var vAlturaBrowser, vAlturaPopup, vVisible;
var aPopups = new Array();

window.onload = DefinirAlturaBrowser;
window.onresize = DefinirAlturaBrowser;

function AdicionarPopupArray(pControle) {

    if (aPopups.length == 0) {
        aPopups[0] = pControle;
    }
    else {
        var vAdicionar = true;

        for (i = 0; i < aPopups.length; i++) {
            if (aPopups[i] == pControle) {
                vAdicionar = false;
                break;
            }
        }

        if (vAdicionar) {
            aPopups[aPopups.length] = pControle;
        }
    }
}

function AjustarPosicionarPopupControl(pControle) {
    if (pControle != null) {
        vAlturaPopup = vAlturaBrowser - pControle.cpMargemY;
        vLarguraPopup = vLarguraBrowser - pControle.cpMargemX;
        pControle.SetSize(vLarguraPopup, vAlturaPopup);
        if (pControle.IsVisible()) {
            pControle.UpdatePosition();
        }
    }
}

function AjustarPosicionarPopups() {
    for (i = 0; i < aPopups.length; i++) {
        AjustarPosicionarPopupControl(aPopups[i]);
    }
}

function DefinirAlturaBrowser() {
    vLarguraBrowser = RetornarLarguraBrowser();
    vAlturaBrowser = RetornarAlturaBrowser();
    AjustarPosicionarPopups();
}

function RemoverPopupArray(pControle) {
    for (i = 0; i < aPopups.length; i++) {
        if (aPopups[i] == pControle) {
            aPopups.splice(i, 1);
        }
    }
}

function RetornarAlturaBrowser() {
    document.documentElement.scrollTop = 0;
    var vAltura = null;

    if (self.innerHeight) // all except Explorer
    {
        vAltura = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight)
    // Explorer 6 Strict Mode
    {
        vAltura = document.documentElement.clientHeight;
    }
    else if (document.body) // other Explorers
    {
        vAltura = document.body.clientHeight;
    }

    return vAltura;
}

function RetornarLarguraBrowser() {
    document.documentElement.scrollTop = 0;
    var vLargura = null;

    if (self.innerWidth) // all except Explorer
    {
        vLargura = self.innerWidth;
    }
    else if (document.documentElement && document.documentElement.clientWidth)
    // Explorer 6 Strict Mode
    {
        vLargura = document.documentElement.clientWidth;
    }
    else if (document.body) // other Explorers
    {
        vLargura = document.body.clientWidth;
    }

    return vLargura;
}

//#endregion
