

// impostare a true per attivare i messaggi di debug
var DEBUG = false;



var strmessages = {
    error   : "Si e' verificato un errore durante l'operazione",
    success : "Operazione eseguita con successo"
}


function toggleEvents(string_id, trigger_id, item_id, evento_id)
{
    if ($(string_id).is(':hidden'))
    {
        $(string_id).show();
        $(trigger_id).addClass("active");
    }
    else if ($(string_id).is(':visible'))
    {
        $(string_id).hide();
        $(trigger_id).removeClass("active");
    }
    
    $(item_id).removeClass("non-letto");
    
    $.ajax({
        type: "POST",
        url:  "segna_come_letta.php",
        data: {id_evento : evento_id},
        success: function(msg){
            if (DEBUG)
                alert(msg);
        }
    });
    
}



function modificaEvento(dom_link, destination_id)
{
    var jlink = $(dom_link);
    
    $(destination_id).load(jlink.attr("href"));
    
    // per bloccare l'esecuzione dell'<a>
    return false;
}



function stdEffect(content)
{
    var content_str = "";
    
    if (content != null && content != "")
    {
        content_str = content + " ";
    }
    
    //
    // jQuery di default per tutte le pagine
    //
    
    
    $(content_str + '.form-container :input').tooltip({
        
        // place tooltip on the right edge 
        position: ['center', 'right'], 
        
        // a little tweaking of the position 
        offset: [-2, 10], 
        
        // use a simple show/hide effect 
        effect: 'toggle', 
        
        // custom opacity setting 
        opacity: 1
        
    });
    
    
    
    /*
     * Applica l'effetto tooltips a tutti i campi che hanno la classe trigger-tooltips
     * Se sono presenti altre classi come center, top, bottom, right, left le utilizza
     * per posizionare il tooltip nell'area che si preferisce.
     *
     * Es.
     * 
     * <a href="#" class="trigger-tooltip top center">trigger</a>
     * <div class="tooltip">
     *   Questo e' il mio tooltip
     * </div>
     *
     * Posizionamento:
     * la prima classe per il posizionamento si riferisce all'asse verticale e può valere:
     *   top | [center] | bottom
     * 
     * la seconda classe di posizionamento si riferisce all'asse orizzontale e può valere:
     *   left | center | [right]
     * 
     */
    $(content_str + '.trigger-tooltip').each(function(){
    
        var jthis = $(this);
        var position_v = '';
        var position_o = '';
        
        var class_attr  = jthis.attr('class');
        var class_array = class_attr.split(" ");
        
        for (i = 0; i < class_array.length; i++)
        {
            if (class_array[i] == 'center'
                || class_array[i] == 'top'
                || class_array[i] == 'bottom'
                || class_array[i] == 'right'
                || class_array[i] == 'left')
            {
                if (position_v == '')
                    position_v = class_array[i];
                else if (position_o == '')
                    position_o = class_array[i];
            }
        }
        
        if (position_v == '')
            position_v = 'center';
        
        if (position_o == '')
            position_o = 'right';
        
        jthis.tooltip({
            position: [position_v, position_o], 
            offset: [-2, 10], 
            effect: 'toggle', 
            opacity: 1
        });
    
    });
    
    
    $(content_str + '.confirm').click(function(){
        
        var jthis = $(this);
        var message = jthis.attr("rel");
        
        return confirm(message);
        
    });
    
    
    /*
     * Applicata ai link
     * Utilizza le proprietà <rel> e <rev>
     * <rel>  messaggio da visualizzare per la conferma
     * <rev>  indica il selettore jquery (Es. '#pippo', '.miaclasse') da nascondere
     *        con fadeOut("fast")
     */
    $(content_str + '.delete').click(function(){
        
        var jthis   = $(this);
        var message = jthis.attr("rel");
        
        if (confirm(message))        
        {
            $.get(jthis.attr("href"), {},
                function(data, textStatus){
                    
                    // per debug
                    if (DEBUG)
                        alert(data);
                    
                    if (data == "ok")
                        // elimina il parent
                        jthis.parents(jthis.attr("rev")).each(function(){
                            $(this).fadeOut("fast");
                            return false;
                        });
                    else
                        alert(strmessages['error']);
                    
                }, "text");
        }
        
        return false;
    });
    
    
    /*
     * Caricamento ajax dei contenuti
     */
    $(content_str + '.load').click(function(){
        
        var jthis   = $(this);
        var jloader = $('<span></span>').html($('#loader').html());
        
        jthis.after(jloader);
        
        $(jthis.attr("rel")).load(jthis.attr("href"),
            
            function(){
                $(jloader).remove();
                stdEffect(jthis.attr("rel"));
            });
        
        return false;
    });
    
    
    /*
     * Esecuzione di comandi ajax
     */
    $(content_str + '.ajax').click(function(){
        
        var jthis   = $(this);
        var message = jthis.attr("rel");
        
        if (confirm(message))        
        {
            $.get(jthis.attr("href"), {},
                function(data, textStatus){
                    
                    // per debug
                    if (DEBUG)
                        alert(data);
                    
                    if (data == "ok")
                    {
                        // Operazione eseguita correttamente: visualizza un messaggio di conferma.
                        alert(strmessages['success']);
                    }
                    else
                        alert(strmessages['error']);
                    
                }, "text");
        }
        
        return false;
        
    });
    
    
    /*
     * Link semplice per qualsiasi elemento con proprietà rel impostata
     */
    $(content_str + '.link').click(function(){
        
        var jthis = $(this);
        
        location.href = jthis.attr("rel");
        
        return false;
    });
    
    
    /*
     * Link che aprono finestre di dialogo
     */
    $(content_str + '.wopen').click(function(){
        
        var jthis = $(this);
        
        window.open(jthis.attr("href"), jthis.attr("rel"), "width=700,height=600,menubar=no,locationbar=no,resizable=yes,scrollbars=yes");
        
        return false;
    });
    
    
    /*
     * 
     */
    $(content_str + '.quickbox').each(function(){
        
        var jthis = $(this);
        
        jthis.children('h4').click(function(){
            jthis.children('.content').toggle();
        });
        
    });
    
    
    $(content_str + '.toggle').each(function(){
        
        var href = $(this).attr("href");
        
        $(this).click(function(){
            
            $(href).toggle();
            
        });
        
        return false;
    });
    
}



$(document).ready(function(){
    
   stdEffect();
    
});


