﻿
//Propriedades da _divFormWindow ( esta é uma div com um 1 iframe contendo a Window a ser mostrada )
var MMW_FormWindowWidth 
var MMW_FormWindowHeight

var MMW_windowHandlersAttached = false;    // Flag para indicar se os eventos de resize e scroll estão interceptados

function MostraModalWindow(strNomePaginaASPX, intWindowWidth, intWindowHeight) {

    if (strNomePaginaASPX == '') {
        alert('Informe o nome da página .aspx a ser mostrada...');
        return false
    }

    if (strNomePaginaASPX == undefined) {
        alert('Informe o nome da página .aspx a ser mostrada...');
        return false
    }

    //Primeira Etapa: Criar uma div que simulará uma janela Modal
    var MMW_OwnerBounds
    var MMW_OwnerWidth = '100'
    var MMW_OwnerHeight ='100'

    // O Owner da divModal será a Pagina
    MMW_OwnerBounds = GetJanelaBrowserClientArea();
    MMW_OwnerWidth = MMW_OwnerBounds.width;
    if (MMW_OwnerBounds.height < 725) {//Alterado dia 03/06/2015. Por Thomaz Neto 
        MMW_OwnerHeight = '100';
    } else {
        MMW_OwnerHeight = '100'
    }
    

    // Cria a div Modal que cobrirá a página Owner
    var MMW_divModalWindow = document.createElement('div');
    MMW_divModalWindow.id = '_divModalLoaderWindow';
    MMW_divModalWindow.className = 'CSS_divModalLoaderWindow';

    MMW_divModalWindow.style.width = '100' + '%';
    MMW_divModalWindow.style.height = '100' + '%';
    MMW_divModalWindow.style.position = 'absolute';
    MMW_divModalWindow.style.left = '0px';
    MMW_divModalWindow.style.top = '0px';
    document.body.appendChild(MMW_divModalWindow);

    // Segunda Etapa : Criar o form que conterá a Window ( página aspx )
    //Crio a div que vai conter a window

    if (intWindowWidth != undefined) {
        MMW_FormWindowWidth = '100';
    }

    if (intWindowHeight != undefined) {
        MMW_FormWindowHeight = '100';
    }

//    var MMW_divForm = document.createElement('div');
//    MMW_divForm.id = '_divFormWindow';
//    MMW_divForm.className = 'CSS_divFormLoaderWindow';
//    MMW_divForm.style.width = MMW_FormWindowWidth + 2 + 'px';
//    MMW_divForm.style.height = MMW_FormWindowHeight + 2 + 'px';
//    MMW_divForm.style.position = 'absolute';

//    MMW_divForm.style.left = MMW_OwnerBounds.x + Math.round(MMW_OwnerBounds.width / 2) - Math.round(MMW_FormWindowWidth / 2) + 'px';
////    MMW_divForm.style.top = MMW_OwnerBounds.y + Math.round(MMW_OwnerBounds.height / 2) - Math.round(MMW_FormWindowHeight / 2) + 'px';
//    MMW_divForm.style.top = Math.round(MMW_OwnerBounds.height / 2) - Math.round(MMW_FormWindowHeight / 2) + 'px';

//    MMW_divForm.style.zIndex = 999;
//    MMW_divModalWindow.appendChild(MMW_divForm);

    var MMW_divForm = document.createElement('div');
    MMW_divForm.id = '_divFormWindow';
    MMW_divForm.className = 'CSS_divFormLoaderWindow';
    MMW_divForm.style.width = '100' + '%';
    MMW_divForm.style.height = '100' + '%';
    MMW_divForm.style.position = 'absolute'; 
    MMW_divForm.style.backgroundColor = "rgba(0, 0, 0, 0.3)";

    MMW_divForm.style.left = '0px'; //MMW_OwnerBounds.x + Math.round(MMW_OwnerBounds.width / 2) - Math.round(MMW_FormWindowWidth / 2) + 'px';
    //    MMW_divForm.style.top = MMW_OwnerBounds.y + Math.round(MMW_OwnerBounds.height / 2) - Math.round(MMW_FormWindowHeight / 2) + 'px';
    MMW_divForm.style.top = '0px'; //Math.round(MMW_OwnerBounds.height / 2) - Math.round(MMW_FormWindowHeight / 2) + 'px';

    MMW_divForm.style.zIndex = 999;
    MMW_divModalWindow.appendChild(MMW_divForm);


    //Terceira Etapa : Crio o iFrame que conterá a window ( página aspx )

//    var MMW_ifrConteudo = document.createElement('iframe');
//    MMW_ifrConteudo.id = '_ifrLoaderWindow';
//    MMW_ifrConteudo.className = 'CSS_ifrLoaderWindow';
//    MMW_ifrConteudo.setAttribute("scrolling", "no");
//    MMW_ifrConteudo.setAttribute("allowTransparency", "true");
//    MMW_ifrConteudo.setAttribute("frameBorder", "0");
//    MMW_ifrConteudo.setAttribute("runat", "server");
//    MMW_ifrConteudo.style.width = MMW_FormWindowWidth + 2 + 'px';
//    MMW_ifrConteudo.style.height = MMW_FormWindowHeight + 2 + 'px';
//    MMW_ifrConteudo.style.position = 'absolute';
//    MMW_ifrConteudo.style.left = 0 + 'px';
//    MMW_ifrConteudo.style.top = 0 + 'px';


    var MMW_ifrConteudo = document.createElement('iframe');
    MMW_ifrConteudo.id = '_ifrLoaderWindow';
    MMW_ifrConteudo.className = 'CSS_ifrLoaderWindow';
    MMW_ifrConteudo.setAttribute("allowTransparency", "true");
    MMW_ifrConteudo.setAttribute("frameBorder", "0");
    MMW_ifrConteudo.setAttribute("runat", "server");
    MMW_ifrConteudo.style.width = '100' + '%';
    MMW_ifrConteudo.style.height = '100' + '%';
    MMW_ifrConteudo.style.position = 'absolute';
    MMW_ifrConteudo.style.left = 0 + 'px';
    MMW_ifrConteudo.style.top = 0 + 'px';
    MMW_ifrConteudo.style.overflow = 'scroll';
   // MMW_ifrConteudo.style.backgroundColor = 'blue';


    MMW_divForm.appendChild( MMW_ifrConteudo );


    MMW_ifrConteudo.src = strNomePaginaASPX;

    // Quarta Etapa : Se o Owner for a Página, atachar os eventos Scroll/resize
//    AtacharMostraModalWindowEventos();

    //$get('_ifrLoaderWindow').focus();

}

function AtacharMostraModalWindowEventos() {
    // Intercepto os eventos 'resize' e 'scroll' da janela do Browser para ajustar o tamanho da _divModalLoader
    // e a posição da _divMessageBox
    $addHandler(window, 'resize', OnUpdatingMostraModalWindow);
    $addHandler(window, 'scroll', OnUpdatingMostraModalWindow);
    // Assinalo que os eventos estão sendo interceptados ( será usado para retirar a interceptação )
    MMW_windowHandlersAttached = true;
};

function OnUpdatingMostraModalWindow() {

    // Função para Recuperar as medidas da 'Cliente Area' da janela do Browser
    var docBounds = GetJanelaBrowserClientArea();
    // Recupera a divModal ( a div que simula Modal )
    var divModal = $get('_divModalLoaderWindow');
    //Seta o tamanho da divModal igual ao tamanho da Area do Browser
    divModal.style.width = '100' + '%';
    divModal.style.height = '100'+ '%';      // Funciona ok

//    // Recupera a div com o Loader
//    var divLoader = $get('_divFormWindow');
//    //Calcula a posição left e top que a divLoader deve ficar para centralizar
//    var x = docBounds.x + Math.round(docBounds.width / 2) - Math.round(MMW_FormWindowWidth / 2);
//    var y = docBounds.y + Math.round(docBounds.height / 2) - Math.round(MMW_FormWindowHeight / 2);
//    //Seta posição da divMessageBox
//    Sys.UI.DomElement.setLocation(divLoader, x, y);
}

function DesatacharMostraModalWindowEventos() {
    // Verifico se os eventos estão sendo interceptados. Só tento retirar a interceptação se estiverem
    if (MMW_windowHandlersAttached) {
        // Retiro a interceptação dos eventos
        $removeHandler(window, 'scroll', OnUpdatingMostraModalWindow);
        $removeHandler(window, 'resize', OnUpdatingMostraModalWindow);
        // Assinalo que os eventos não estão mais sendo interceptados
        MMW_windowHandlersAttached = false;
    }
}

function FecharMostraModalWindow() {
    DesatacharMostraModalWindowEventos()
    var MMW_divModal = $get('_divModalLoaderWindow');
    var MMW_divLoader = $get('_divFormWindow');
    if (MMW_divModal) {
        if ((MMW_divLoader)) {
            MMW_divModal.removeChild(MMW_divLoader);
        }
        document.body.removeChild(MMW_divModal);    
    }
    return false;
}

//function MostraModalWindowInterna(strNomePaginaASPX, intWindowHeight) {

//    if (strNomePaginaASPX == '') {
//        alert('Informe o nome da página .aspx a ser mostrada...');
//        return false
//    }

//    if (strNomePaginaASPX == undefined) {
//        alert('Informe o nome da página .aspx a ser mostrada...');
//        return false
//    }

//    //Primeira Etapa: Pega uma div que simulará uma janela Modal
//    var MMW_OwnerBounds
//    var MMW_OwnerWidth
//    var MMW_OwnerHeight

//    // O Owner da divModal será a Pagina
//    MMW_OwnerBounds = GetJanelaBrowserClientArea();
//    MMW_OwnerWidth = MMW_OwnerBounds.width;
//    MMW_OwnerHeight = MMW_OwnerBounds.height;

//    // Cria a div Modal que cobrirá a página Owner
//    var MMW_divModalWindow = $get('divModalInterna');
//    MMW_divModalWindow.className = 'CSS_divModalLoaderWindow';

//    MMW_divModalWindow.style.width = MMW_OwnerWidth + 'px';
//    MMW_divModalWindow.style.height = MMW_OwnerHeight + 'px';
//    MMW_divModalWindow.style.position = 'absolute';
//    MMW_divModalWindow.style.left = '0px';
//    MMW_divModalWindow.style.top = '0px';

//    // Segunda Etapa : Pega o form que conterá a Window ( página aspx )
//    //Crio a div que vai conter a window

//    var MMW_divForm = $get('divFormModal');
//    MMW_divForm.className = 'CSS_divFormLoaderWindow';
//    MMW_divForm.style.width = MMW_OwnerWidth + 'px';
//    MMW_divForm.style.height = MMW_OwnerHeight + 'px';
//    MMW_divForm.style.position = 'absolute';
//    MMW_divForm.style.backgroundColor = "rgba(0, 0, 0, 0.3)";
//    MMW_divForm.style.left = '0px'; 
//    MMW_divForm.style.top = '0px';
//    MMW_divForm.style.zIndex = 999;

//    var MMW_ifrConteudo = $get('ifrLoaderWindow');
//    MMW_ifrConteudo.className = 'CSS_ifrLoaderWindow';
//    MMW_ifrConteudo.setAttribute("scrolling", "no");
//    MMW_ifrConteudo.setAttribute("allowTransparency", "true");
//    MMW_ifrConteudo.setAttribute("frameBorder", "0");
//    MMW_ifrConteudo.setAttribute("runat", "server");
//    MMW_ifrConteudo.style.width = MMW_OwnerWidth + 'px';
//    MMW_ifrConteudo.style.height = MMW_OwnerHeight + 'px';
//    MMW_ifrConteudo.style.position = 'absolute';
//    MMW_ifrConteudo.style.left = 0 + 'px';
//    MMW_ifrConteudo.style.top = 0 + 'px';

//    MMW_ifrConteudo.src = strNomePaginaASPX;

//    //$('#divModalInterna').show('scale', {}, 'fast');

//    MMW_divModalWindow.style.visibility = 'visible';
//    MMW_divForm.style.visibility = 'visible';
//    MMW_ifrConteudo.style.visibility = 'visible';
//    MMW_ifrConteudo.focus();

//}

//function FecharMostraModalWindowInterna() {
//    DesatacharMostraModalWindowEventos()
//    var MMW_divModalWindow = $get('divModalInterna');
//    var MMW_divLoader = $get('divFormModal');
//    var MMW_ifrConteudo = $get('ifrLoaderWindow');
//    if (MMW_divModalWindow) {
//        if (MMW_divLoader) {
//            if (MMW_ifrConteudo) {
//                MMW_ifrConteudo.src = '';
//                MMW_ifrConteudo.style.visibility = 'hidden';
//            }
//            MMW_divLoader.style.visibility = 'hidden';
//        }
//        MMW_divModalWindow.style.visibility = 'hidden';
//        //$('#divModalInterna').hide('drop', {}, 'fast');
//    }
//    return false;
//}