﻿var lightbox = {
    width: null,
    height: null,
    divFundo: null,
    divPrincipal: null,
    divIframe: null,
    divTexto: null,
    divFechar: null,
    btnFechar: null,
    iframe: null,
    cache: true,
    iframeScrolling: 'yes',
    url: null,
    destroiObjetos: function() {
        if (lightbox.divFundo != null)
            document.body.removeChild(lightbox.divFundo);

        if (lightbox.divPrincipal != null)
            document.body.removeChild(lightbox.divPrincipal);

        lightbox.divFundo = null;
        lightbox.divPrincipal = null;
        lightbox.divIframe = null;
        lightbox.divFechar = null;
        lightbox.iframe = null;
        lightbox.btnFechar = null;

        if (window.attachEvent) {
            window.detachEvent('onresize', lightbox.redimensionaFundo);
            window.detachEvent('onscroll', lightbox.redimensionaFundo);
        } else {
            try {
                removeEventListener('resize', lightbox.redimensionaFundo, false);
                removeEventListener('scroll', lightbox.redimensionaFundo, false);
            } catch (e) {

            }
        }
    },
    criaObjetos: function() {
        //Destroi os Objetos, caso já tenham sido instanciados
        lightbox.destroiObjetos();

        //Cria instâcia dos objetos
        lightbox.divFundo = document.createElement('div');
        lightbox.divPrincipal = document.createElement('div');
        lightbox.divIframe = document.createElement('div');
        lightbox.divTexto = document.createElement('div');
        lightbox.divFechar = document.createElement('div');
        lightbox.iframe = document.createElement('iframe');
        lightbox.btnFechar = document.createElement('input');

        //Configura objetos
        lightbox.divFundo.className = 'divFundo';

        lightbox.divPrincipal.className = 'divPrincipal';
        lightbox.divPrincipal.style.width = lightbox.width;
        lightbox.divPrincipal.style.height = lightbox.height;

        lightbox.iframe.src = lightbox.url;

        if (!lightbox.cache) {
            if (lightbox.iframe.src.indexOf('?') == -1) {
                lightbox.iframe.src += '?NewID=' + Math.floor(100000000) * Math.random()
            } else {
                lightbox.iframe.src += '&NewID=' + Math.floor(100000000) * Math.random()
            }
        }

        lightbox.iframe.frameBorder = 'no';
        lightbox.iframe.scrolling = lightbox.iframeScrolling;
        lightbox.iframe.width = lightbox.width;
        lightbox.iframe.height = lightbox.height;

        lightbox.divIframe.className = 'divIframe';

        lightbox.btnFechar.type = 'button';
        lightbox.btnFechar.className = 'BotoesGerais';
        lightbox.btnFechar.style.width = '90px';
        lightbox.btnFechar.value = 'Fechar';
        lightbox.btnFechar.onclick = function() { lightbox.destroiObjetos(); };

        lightbox.divFechar.className = 'divFechar';

        //Monta hierarquia objetos
        lightbox.divFechar.appendChild(lightbox.btnFechar);
        lightbox.divIframe.appendChild(lightbox.iframe);
        lightbox.divPrincipal.appendChild(lightbox.divIframe);
        lightbox.divPrincipal.appendChild(lightbox.divFechar);

        document.body.appendChild(lightbox.divFundo);
        document.body.appendChild(lightbox.divPrincipal);

        lightbox.redimensionaFundo();

        if (window.attachEvent) {
            window.attachEvent('onresize', lightbox.redimensionaFundo)
            window.attachEvent('onscroll', lightbox.redimensionaFundo)
        } else {
            addEventListener('resize', lightbox.redimensionaFundo, false);
            addEventListener('scroll', lightbox.redimensionaFundo, false);
        }
    },
    abreLightbox: function(url, width, height, cache, iframeScrolling) {
        lightbox.cache = cache;
        lightbox.url = url;
        lightbox.width = width;
        lightbox.height = height;
        if (iframeScrolling) {
            lightbox.iframeScrolling = 'yes';
        } else {
            lightbox.iframeScrolling = 'no';
        }
        lightbox.criaObjetos();
    },
    redimensionaFundo: function() {
        var alturaJanela = parseInt(document.documentElement.clientHeight);
        var alturaScroll = parseInt(document.documentElement.scrollTop) + parseInt(document.body.scrollTop);

        var alturaDivPrincipal = lightbox.divPrincipal.offsetHeight;
        var larguraDivPrincipal = lightbox.divPrincipal.offsetWidth;

        var larguraJanela = parseInt(document.documentElement.clientWidth);
        var larguraScroll = parseInt(document.documentElement.scrollLeft) + parseInt(document.body.scrollLeft);

        lightbox.divFundo.style.height = (alturaJanela + alturaScroll) + 'px';
        lightbox.divFundo.style.width = (larguraJanela + larguraScroll) + 'px';

        lightbox.divPrincipal.style.top = (alturaJanela + alturaScroll * 2 - alturaDivPrincipal) / 2 + 'px';
        lightbox.divPrincipal.style.left = (larguraJanela + larguraScroll * 2 - larguraDivPrincipal) / 2 + 'px';
    }
}
