/*
 * tikiThickBox
 * @constructor Anderson Böger Roveda <dinhex@gmail.com>
 *
 * Criado em 2009-06-04
 * Última atualização: 2009-06-04 16:50
 *
 * Melhorias a serem feitas:
 * - Se o height definido for menor que o tamanho real que ele ficou, não fica alinhado corretamente no centro.
 * - Tentar por tamanho automático no arquivo carregado.
 * - fadeIn e fadeOut nas telas.
 * - ESC para fechar a tela.
 * - Explicar os parâmetros e etc...
 * - Ver esquema dos Scrollbar no IE
 */

$(document).ready(function () {
    $('a[rel="tikiThickBox"]').click(function () {
        tikiThickBox (this.href);
        return false;
    });
});

jQuery.query = function (q) {
    var r = {};
    q = q.replace(/^\?/,'');
    q = q.replace(/\&$/,'');
    jQuery.each(q.split('&'), function () {
        var key = this.split('=')[0];
        var val = this.split('=')[1];
        if(/^[0-9.]+$/.test(val)) {
            val = parseFloat(val);
        }
        if (val) {
            r[key] = val;
        }
    });
    return r;
};

function tikiThickBox (URL) {
    if (URL != '') {
        var queryString = URL.replace(/^[^\?]+\??/, '');
        var params = $.query(queryString);
        var ttbWidth = (params['ttbWidth'] * 1) || 640;
        var ttbHeight = (params['ttbHeight'] * 1) || 480;

        /*if ($.browser.msie) {
            if ($.browser.version < 7) {
                $('body').css('overflow', 'hidden');
            }
            else {
                $('body', 'html').css({'height': '100%', 'width': '100%'});
                $('html').css('overflow', 'hidden');
            }
        }*/
        $('body').scrollTo(0, 0, function(){
            $('body').css('overflow', 'hidden');
        });

        $('body').append(
            '<div id="tikiThickBox_overlay">&nbsp;</div>'
            + '<div id="tikiThickBox_window">&nbsp;</div>'
        );

        $('#tikiThickBox_window').css({
            'width': ttbWidth + 'px',
            'height': ttbHeight + 'px',
            'display': 'none'
        }).load(URL + '&random=' + (new Date().getTime()), function () {
            $(this).css({
                'marginLeft': parseInt(0 - ($(this).outerWidth(true)  / 2)) + 'px',
                'marginTop': parseInt(0 - ($(this).outerHeight(true)  / 2)) + 'px',
                'display': ''
            });
            $('a[rel="tikiThickBox_close"]').click(function () {
                $('#tikiThickBox_overlay').click();
            });
        });

        $('#tikiThickBox_overlay').click(function () {
            $('#tikiThickBox_overlay').remove();
            $('#tikiThickBox_window').remove();
            /*if ($.browser.msie) {
                if ($.browser.version < 7) {
                    $('body').css('overflow', '');
                }
                else {
                    $('body', 'html').css({'height': 'auto', 'width': 'auto'});
                    $('html').css('overflow', '');
                }
            }*/
            $('body').css('overflow', '');
        });
    }
}
