
var is_effect_on_going = false;
var content_tree_closetimer = 0;

// Funzione javascript per l'interfaccia del widget content tree - gestione dei livelli di menù
function content_tree(widget_id, level, resource_id, effect, check) {
    
    content_tree_cancelclosetime(); // DEBUG
    if (is_effect_on_going) { return false };
     var target = 'ul_' + widget_id + '_' + resource_id;
     var element_id = 'menu_item_' + widget_id + '_' + resource_id;
        // Chiusura degli active
        $$('#menu_' + widget_id + ' li.active').each(function(el) {
                    el.removeClassName('active');
        });
      
        // Nasconde tutti gli ul aperti in un determinato livello
        if (check){ 
            $$('.' + widget_id + '_level_'+ level + ' ul').each(function(element) {
                    if (effect == 'show' && element.visible() && element.id != target) { element.hide();}
                    if (effect == 'blind' && element.visible() && element.id != target) {new Effect.BlindUp(element.id, { duration:1.0, delay:0.0});}
                    if (effect == 'fade' && element.visible() && element.id != target) {new Effect.Fade(element.id, { duration:1.5, delay:0.0});} 
            });
        }
	
       // Chiusura degli ul
       
        var parent_ul = $(element_id).up('ul');
        
        if (parent_ul != undefined) {  
            var parent_node_id = parent_ul.id;   
            var ul_to_close = $$('#menu_' + widget_id + ' ul.level_' + level);
            if(ul_to_close) {
            ul_to_close.each(function(ul) {
                if (ul.visible() && ul.id != parent_node_id ) {ul.hide();};
            });
            }
        }
    
       var ul_to_close = $$('#menu_' + widget_id + ' ul.level_' + (level+2));
       if(ul_to_close) {
            ul_to_close.each(function(ul) {
                if (ul.visible() && ul.id != parent_node_id ) {ul.hide();};
            });
       }
     
     
       for(var i = 0; i < level ; i++){
            el =  $(element_id).up('li', i);
            el.toggleClassName('active');  
        }

            if ($(target) && check && $(target).visible() == false) {
                
                $(element_id).toggleClassName('active');
                if (effect == 'show') { 
                    $(target).show();
                }
                if (effect == 'blind') {
                    new Effect.BlindDown(target, 
                        { 
                        duration:1.5, 
                        beforeStart: function callback(obj) { is_effect_on_going = true; },
                        afterFinish: function callback(obj) { is_effect_on_going = false; }
                        });
                }
                if (effect == 'fade') {
                    new Effect.Appear(target, 
                        { 
                        duration:1.5, 
                        beforeStart: function callback(obj) { is_effect_on_going = true; },
                        afterFinish: function callback(obj) { is_effect_on_going = false; }
                        });
                }                
            };
  }

// Funzione di chiusura dei menu tramite content_tree
function content_tree_out(element_id) {
	
 var elements = $$('#menu_' + element_id + ' ul ul');
 
    if(elements) {	
        elements.each(function(element) {
	      		
              if (element.visible()) {element.hide();};
         });

    }
  //  $$('#menu_' + widget_id + ' li.active').each(function(el) {
  //                  el.removeClassName('active');
  //  });
    
}
// Funzione di chiusura dei menu tramite content_tree
function content_tree_out_custom() {
	
 var elements = $$('#ul_140_32 ul');
    if(elements) {
		
        elements.each(function(element) {
			
              if (element.visible()) {element.hide();};
         });

    }
  //  $$('#menu_' + widget_id + ' li.active').each(function(el) {
  //                  el.removeClassName('active');
  //  });
    
}
// Timer per la chiusura del content tree
function content_tree_closetime(time, widget_id) {
        if (time > 0) {
        content_tree_closetimer = window.setTimeout(this.content_tree_out.bind(this, widget_id), time);
        }
}

// Funzione per annullare il timer per la chiusura del content tree
function content_tree_cancelclosetime(){
        if(content_tree_closetimer){
				
                window.clearTimeout(content_tree_closetimer);
                content_tree_closetimer = null;
        }
}

