// menu dinamico multicanale
var mastertabvar=new Object()
mastertabvar.baseopacity=0;
mastertabvar.browserdetect="";
var _currentTable;
var highlighting;
var insubmenu = false;

function instantsetitem(item,degree){
if (mastertabvar.browserdetect=="mozilla")
item.style.MozOpacity=degree/100
else if (mastertabvar.browserdetect=="ie")
{
item.style.filter = 'alpha(opacity='+degree+')'
item.filters.alpha.opacity=degree
}
}

function gradualfade(cur2){
if (mastertabvar.browserdetect=="mozilla" && cur2.style.MozOpacity<1)
cur2.style.MozOpacity=Math.min(parseFloat(cur2.style.MozOpacity)+0.1, 0.99)
else if (mastertabvar.browserdetect=="ie" && cur2.filters.alpha.opacity<100)
cur2.filters.alpha.opacity+=10
else if (typeof highlighting!="undefined") //fading animation over
clearInterval(highlighting)
}

var DelayMenu = function(idmenu) {
    
    /* Private Members */
    var _hoverClass     = 'jshovered';
    var _hoverDelay     = 100;
    var _hoverLi        = [];		
    var _hoverIntv;
    var _currentLi;


	/* Private Methods */            
	var dynamenu 				= function(id) {
		return (document.getElementById)
			? document.getElementById(id)
			: document.all(id);
	};


	var _addClass		= function(el, c) {
		if (el.className !== '') { 
			var classes = el.className.toLowerCase().split(' ');
			for (var i=0; i<classes.length; i++) { 
		  		if (c.toLowerCase() === classes[i]) { return; } 
			}
		}
		el.className = [el.className, c].join(' ');
	};

	var _removeClass	= function(el, c) {
		var cRe = new RegExp(['(^|\\b)', c, '($|\\b)'].join(''), 'i');
		el.className = el.className.replace(cRe, '');
		if (el.className.toString() === '') { 
			el.removeAttribute('class'); 
		}
	};


    return {
            
        /* Privileged Methods */                
        setHoverClass	: function(hc) {
            if (typeof hc === 'string' && (/^\w[\w\d]*$/).test(hc)) {
                _hoverClass = hc;
            }
        },
            
        setHoverDelay	: function(hd) {
            if (!isNaN(hd)) {
                _hoverDelay = hd;
            }
        },
         
            
        /* Public Method (constructor) */
        init			: function() {			
    
            /* remove pure css approach */
            if (dynamenu('purecssmenu')) {
                var cssrules = dynamenu('purecssmenu');
                cssrules.parentNode.removeChild(cssrules);
            };
                
            // collect all first-level list-items
            var mLinks = dynamenu(idmenu).getElementsByTagName('a');
            for (var i=0; i<mLinks.length; i++) { 
                if (mLinks[i].rel === 'first-level')
                {
                	if (mLinks[i].parentNode.className !== 'current')
	                    _hoverLi[_hoverLi.length] = mLinks[i].parentNode; 
               		else
               			{
	                    _hoverLi[_hoverLi.length] = mLinks[i].parentNode; 
	               		_currentLi = mLinks[i].parentNode;
	               	}
               	}
            	else
            	{
            		mLinks[i].onmouseover = (function() {
            			insubmenu = true;
	            		}
        			)
            	}
            };

			mastertabvar.browserdetect=_hoverLi[0].filters? "ie" : typeof _hoverLi[0].style.MozOpacity=="string"? "mozilla" : ""
                
            /* Set onmouseover/onmouseout events for timed delay */
            for (var i=0; i<_hoverLi.length; i++) { 
                var li = _hoverLi[i]
                
                li.onmouseover = (function(i) {
                    return function() {
                    	if (insubmenu)
                    	{
                    		mastertabvar.baseopacity=100;
                    		insubmenu = false;
                    	}
                    	else
            				mastertabvar.baseopacity=0;
            				
                        var _thisLi = this;
                        clearInterval(_hoverIntv);
                        _hoverIntv = setTimeout(function() {
                            for (var j=0; j<_hoverLi.length; j++) {
                                _removeClass(_hoverLi[j], _hoverClass)
                            };
                            _removeClass(_currentLi, 'current')
                            _addClass(_thisLi, _hoverClass)
							if (typeof highlighting!="undefined")
							clearInterval(highlighting)
                            _currentTable = _thisLi.getElementsByTagName('table')[0]
							instantsetitem(_currentTable,mastertabvar.baseopacity)
							highlighting=setInterval("gradualfade(_currentTable)",50)

                        }, _hoverDelay);
                    }
                })(i);
                
                
                li.onmouseout = (function(i) {
                    return function() {
                        var _thisLi = this;
                        clearInterval(_hoverIntv);
                        _hoverIntv = setTimeout(function() {
				            for (var i=0; i<_hoverLi.length; i++)
				            { 
				                if (_hoverLi[i].className.indexOf(_hoverClass) != -1)
	                                _removeClass(_hoverLi[i], _hoverClass);
			                }
                            _addClass(_currentLi, 'current');
                        }, _hoverDelay);
                    }
                })(i);
                
            }
            
        }  /* end init function */
        
    }  /* end return statement */ 
};
