/**
 * Função genérica
 */
function openDialog(o){
    // cuidar definicao das vars
    var dialogClass = o.dialogClass; // classe para theming a dialog
    var title = o.title; // title na cartola
    var width = o.width; // largura
    var height = o.height; // altura
    var openFunction = o.openFunction; // função de callback (pagina, event)
    var page = o.page; // nome da [página].php e id para seleção css caso necessário
    var id_page = (o.page.indexOf('.php')!==-1) ? o.page.substr(0, o.page.indexOf('.php')) : o.page; // nome da [página].php e id para seleção css caso necessário
    var index_aba = 0;

    $("#dialog").dialog({
        width : width,
        //height : height ,
        dialogClass: 'dialogp pg_' + dialogClass,
        title : title,
        closeText : 'fechar',
        resizable : false,
        draggable : false,
        'show' : 'slide',
        position: ['center', 10],
        modal : true,
        
        open: function(event, ui){            
            // criando container para carregar bordar arredondadas personalizadas
            $(this).prepend('<div id="' + id_page + '" class="cbb" />');

            // objeto resonsável pela manipulação HTML para exibir bordas
            cbb.init();

            // Auxiliando no theming da cartola da Dialog
            $('.ui-dialog-title')
            .addClass('replace cd sprite');

            // limitando a altura da janela para correção de margens
            if( page=='galeria' )
            {
//                $('.i3').height(535);
            }
            else if(page=='cardapio')
            {
                if( $('#dDownload').size()<=0 )
                    $('.ui-dialog-title').after('<div id="dDownload"><a href="' + rootUrl + '/cardapio.pdf" target="_blank" class="tTitle">Clique aqui</a> para baixar a versão impressa do cardápio.</div>');

//                $('.i3').height(408);

                index_aba = ( typeof o.index_aba != 'undefined' ) ? o.index_aba : 0;
            }
            else
            {
//                $('.i3').height(367);
            }

            if(typeof openFunction == 'function')
                openFunction(page,event,index_aba);
        },

        close: function(event,ui){
            $(event.target).empty();
            
            if( $('#dDownload').size()>0 )
                    $('#dDownload', '.ui-dialog-titlebar').remove();

            if( $('#dSelect').size()>0 )
                    $('#dSelect', '.ui-dialog-titlebar').remove();

        }
    });
}

/*
 * Função ao abrir Dialog
 */
function carregaPage(p, e, index){
    var tar = $(e.target).find('div.i3');

    // se não precisa enviar parametros GET pode preencher a var p sem o .php
    var url = (p.indexOf('.php')) === -1 ? p+".php" : p;

    $.ajax({
        url: url,
        async: false,

        beforeSend:
        function(XMLHttpRequest){
            showLoading();
        },

        success:
        function(data, textStatus, XMLHttpRequest){
            // sincronizar o hideLoading
            // se não usar o hideLoading nos eventos
            // das tabs pode trazer o hide para ca novamente
            hideLoading();

            var ret = data;
            tar.append(ret);

            // Tabs
            $('#tabs').tabs({
                selected: index,
                
                enable: function(event, ui) {
                //$.log('enable');
                },

                disable: function(event, ui) {
                //$.log('disable');

                },

                load: function(event, ui) {
                //$.log('load');
                // esconder o loading tab
                // pois carregou a tab
                //$.log(event);
                //hideLoading();
                },

                show: function(event, ui) {
                //$.log('show');
                //if( $('#loadingDialog:visible').size()>0)
                //hideLoading();
                },

                select: function(event, ui) {
                //$.log('select');
                // aparecer o loading tab
                // pois esta carregando uma tab
                //$.log('SELECT tabs');
                //$.log(event);
                //showLoading();
                }
            });
        }
    });
}

/*
 * Outras funções auxiliares
 */
function getScripts(scripts){
    for( script in scripts)
        $.getScript(siteComUrl + scripts[script]);
}

jQuery.getCSS = function( url, media ) {
    jQuery( document.createElement('link') ).attr({
        href: url,
        media: media || 'screen',
        type: 'text/css',
        rel: 'stylesheet'
    }).appendTo('head');
};

function showLoading(){
    //$.log('LOADING');
    
    if( !$('#loadingDialog').size()>0 )
        $('body').append('<div id="loadingDialog" />');
        
    $('#loadingDialog')
    .css({
        'height' : $(window).height(),
        'z-index' : $('.ui-dialog').css('z-index')+1
    })
    .show();
}

function hideLoading(){
    $('#loadingDialog').fadeOut();
}

/*
 * Execução
 */
$(function(){
    
    /*
     * Template para botão do menu
     *
     * obs. a largura precisa de 25px (pra mais)  de folga do valor na [source].png
    $("#bt_").data('o',{
        'dialogClass':'',
        'title':'',
        'width': 800,
        'height': 740,
        'page' : '',
        'openFunction' : carrega__
    });
    */

    $("#bt_o-bifao").data('o',{
        'dialogClass':'o-bifao',
        'title':'O Bifão',
        'width': 956,
        'height': 740,
        'page' : 'o-bifao',
        'openFunction' : carregaPage
    });
    
    $("#bt_cardapio, #ddCardapio").data('o',{
        'dialogClass':'cardapio',
        'title':'Cardápio',
        'width': 956,
        'height': 340,
        'page' : 'cardapio',
        'openFunction' : carregaPage
    });

    $("#bt_promocoes").data('o',{
        'dialogClass':'promocoes',
        'title':'Promoções',
        'width': 809,
        'height': 740,
        'page' : 'promocoes',
        'openFunction' : carregaPage
    });

    $("#bt_galeria").data('o',{
        'dialogClass':'galeria',
        'title':'Galeria',
        'width': 725,
        'height': 740,
        'page' : 'galeria',
        'openFunction' : carregaPage
    });

    $("#bt_eventos").data('o',{
        'dialogClass':'eventos',
        'title':'Eventos',
        'width': 956,
        'height': 740,
        'page' : 'eventos',
        'openFunction' : carregaPage
    });

    $("#bt_parceiros").data('o',{
        'dialogClass':'parceiros',
        'title':'Parceiros',
        'width': 500,
        'height': 740,
        'page' : 'parceiros',
        'openFunction' : carregaPage
    });
    
    $('#btComemore').parent().data('o', $("#bt_eventos").data('o'));

    $("#bt_como-chegar").data('o',{
        'dialogClass':'como-chegar',
        'title':'Como chegar',
        'width': 809,
        'height': 740,
        'page' : 'como-chegar',
        'openFunction' : carregaPage
    });
    
    $('#bt_como-chegar-footer').parent().data('o', $("#bt_como-chegar").data('o'));

    $("#bt_contato").data('o',{
        'dialogClass':'contato',
        'title':'Contato',
        'width': 809,
        'height': 740,
        'page' : 'contato',
        'openFunction' : carregaPage
    });

    $("#dCongelados, #ddCongelados p a, #ddCongelados h3 a")
    .parent()
    .data('o',{
        'dialogClass':'congelados',
        'title':'Congelados',
        'width': 958,
        'height': 740,
        'page' : 'congelados',
        'openFunction' : carregaPage
    });
    
    $("#btPedidos").data('o',
    {
        'dialogClass':'pedidos-online',
        'title':'Pedidos Online',
        'width': 409,
        'height': 240,
        'page' : 'pedidos-online',
        'openFunction' : carregaPage
    });
    
    $('#dComNav li').each(function(k,v)
    {
        var index_aba = $('a', v).attr('rel');

        // ver qual o A esta sendo capturado ao clicar!!
        
        $(v).data('o',{
            'dialogClass'   :'cardapio',
            'title'         :'Cardápio',
            'width'         : 956,
            'height'        : 740,
            'page'          : 'cardapio',
            'index_aba'     : index_aba,
            'openFunction'  : carregaPage
        });
    });
    
    $('.openDialog').click(function(){
        var data = $(this).parent().data('o');

        if(typeof data == 'object')
            openDialog(data);
    });
    
    $('.ui-widget-overlay').live('click',function(){
        $('#dialog').dialog('close');
    });
// abre automaticamente alguma Dialog para fins de produção
//openDialog($('#bt_galeria').data('o'));
//openDialog($('#dCongelados').parent().data('o'));
});
