// 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 _clickClass = 'current';
	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].click = (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){
				li.onclick = (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(_hoverLi[j], _clickClass);
							}
							_removeClass(_currentLi, 'current');
							_addClass(_thisLi, _hoverClass);
							_addClass(_thisLi, _clickClass);
							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 */ 
};

