$(document).ready(function() {

    var parentWindow = window;
    while(parentWindow != parentWindow.parent){
        parentWindow = parentWindow.parent;
    }

    var parentDollar = parentWindow.$;

    if($('a[name=modal]') != null){
        $('a[name=modal]').click(function(e) {
            e.preventDefault();

            var href = $(this).attr('href');
            var splitHref = href.split(';');
            var id = splitHref[0];
            var action = $(this).attr('id');

            var maskHeight = parentDollar(parentWindow.document).height();
            var maskWidth = parentDollar(parentWindow).width();

            if(document.all){
                var newFrame = parentDollar('#frameModal').clone();
                parentDollar('#frameModal').remove();
                newFrame.attr('scrolling', splitHref[3] == 'true' ? 'yes' : 'no');
                parentDollar(id).append(newFrame);
            }else{
                parentDollar('#frameModal').attr('scrolling', splitHref[3] == 'true' ? 'yes' : 'no');
            }

            parentDollar('#frameModal').attr('src', action);

            parentDollar('#frameModal').css('width', splitHref[1]);
            parentDollar('#frameModal').css('height', splitHref[2]);

            parentDollar('#mask').css({
                'width':maskWidth,
                'height':maskHeight
            });

            parentDollar('#mask').fadeIn(1);
            parentDollar('#mask').fadeTo("fast",0.5);

            //Get the window height and width
            var winH = parentDollar(parentWindow).height();
            var winW = parentDollar(parentWindow).width();

            parentDollar(id).css('width', parseInt(splitHref[1]) + 20);
            parentDollar(id).css('height', parseInt(splitHref[2]) + 20);

            parentDollar(id).css('top',  winH/2-parentDollar(id).height()/2);
            parentDollar(id).css('left', winW/2-parentDollar(id).width()/2);

            parentDollar(id).fadeIn(1);

            // Ao apresentar o modal, adiciona o evento de click para fechar.
            try{
                parentDollar('.window .close').bind('click', {
                    $parent : parentDollar
                },
                function (e) {
                    fecharModal($(this).attr('id'), e)
                });
            }catch(erro){
            //setErros(erro);
            }
        });
    }

//parentDollar('#mask').click(function (e) {
//    e.preventDefault();
//
//    parentDollar(this).hide();
//    parentDollar('.window').hide();
//
//});

});

// Codigo duplicado, pois por algum motivo no ie os tamanhos da janela serão diferentes.

function abrirModal(action, id, width, height, scrolling, callback) {
    var parentWindow = window;
    while(parentWindow != parentWindow.parent){
        parentWindow = parentWindow.parent;
    }

    var parent$ = parentWindow.$;
    var divModal = $(parent$(id));
    var divFrame = $(divModal.find('#frameModal')[0]);

    var maskHeight = parent$(parentWindow.document).height();
    var maskWidth = parent$(parentWindow).width();

    scrolling = scrolling ? 'yes' : 'no';
    // Verificação IE
    if(document.all){
        var newFrame = divFrame.clone();
        divFrame.remove();
        newFrame.attr('scrolling', scrolling);
        divModal.append(newFrame);
        divFrame = $(divModal.find('#frameModal')[0]);
    }else{
        divFrame.attr('scrolling', scrolling);
    }

    divFrame.attr('src', action);

    divFrame.css('width', width);
    divFrame.css('height', height);

    parent$('#mask').css({
        'width':maskWidth,
        'height':maskHeight
    });

    parent$('#mask').fadeIn(1);
    parent$('#mask').fadeTo("fast",0.5);

    //Get the window height and width
    var winH = parent$(parentWindow).height();
    var winW = parent$(parentWindow).width();

    var plusSize = 20;
    if (divModal.find('.close').length > 1) {
        plusSize += 20;
    }

    divModal.css('width', parseInt(width) + plusSize);
    divModal.css('height', parseInt(height) + plusSize);

    divModal.css('top',  winH/2-divModal.height()/2);
    divModal.css('left', winW/2-divModal.width()/2);

    divModal.fadeIn(1);

    // Ao apresentar o modal, adiciona o evento de click para fechar.
    try{
        parent$('.window .close').bind('click', {
            callback : callback,
            frame : divFrame,
            $parent : parent$
        },
        function (e) {
            fecharModal($(this).attr('id'), e)
        });
    }catch(erro){
    //setErros(erro);
    }
}

function fecharModal(id, e) {
    if (!e) {
        return;
    }
    e.preventDefault();
    var callback = e.data.callback;
    var frame = e.data.frame;
    var $parent = e.data.$parent;

    var close = true;
    if (callback) {
        var inputs = frame.contents().find(':input');
        var values = {};
        values['id'] = id;
        inputs.each(function() {
            if (this.type != 'button') {
                values[this.name] = $(this).val();
            }
        });
        close = callback(values);
    }

    if (close) {
        try {
            // Evita que mais de um applet da biometria esteja em execução após o fechamento da modal.
            frame.contents().find('applet').each(
                function() {
                    // Vai saber!.....
                        this.removeNode();
                }
            );
        } catch (e) {
        }

        $parent('#mask').hide();
        $parent('.window').hide();

        // FIX IE: Por algum motivo no IE, o jquery tenta executar este sendo que
        // a janela já não existe mais.
        $parent('.window .close').unbind("click");
    }
}
