var TIMEOUT_HEADER_CATEGORYBARINIT = null;
var TIMEOUT_HEADER_CATEGORYBAR = null;
var HEADER_LAYERS = null;
var HEADER_XSOBJ;
function Header_CategoryBar()
{
	if(HEADER_LAYERS && HEADER_LAYERS['mnu'])
	{
		if(HEADER_LAYERS['mnu_slide'] || HEADER_LAYERS['mnu_list'])
		{
			var op = '+';
			if(document.images['header_clip_arrow'].src.match(/_up/)) {
				Header_CategoryBarInitTimeClear();
				op = '-';
			}
			var height = 10;
			if(op == '+') height = 100;	// height of drop menu
			var ch = HEADER_LAYERS['mnu'].offsetHeight;
			if(( op == '+' && ch < height ) || ( op == '-' && ch > height ) ) {
				if(HEADER_LAYERS['mnu_slide'])	HEADER_LAYERS['mnu_slide'].style.display = 'none';
				if(HEADER_LAYERS['mnu_list'])	HEADER_LAYERS['mnu_list'].style.display = 'none';
				HEADER_LAYERS['mnu'].style.height = eval(ch+' '+op+ '10')+'px';
				TIMEOUT_HEADER_CATEGORYBAR=setTimeout("Header_CategoryBar('"+op+"')", 50);	// speed drop 
			}
			else	{
				clearTimeout(TIMEOUT_HEADER_CATEGORYBAR);
				TIMEOUT_HEADER_CATEGORYBAR = null;
				if(op == '+')	{
					if(HEADER_LAYERS['mnu_slide'])		HEADER_LAYERS['mnu_slide'].style.display = 'block';
					else if(HEADER_LAYERS['mnu_list'])	HEADER_LAYERS['mnu_list'].style.display = 'block';
					HEADER_LAYERS['mnu'].style.height = '';
					document.images['header_clip_arrow'].src = document.images['header_clip_arrow'].src.replace(/_down/,'_up');
					if(HEADER_LAYERS['mnu_slide'] && !HEADER_XSOBJ)		{
						HEADER_XSOBJ = new Xs();
						HEADER_XSOBJ.defObjName('HEADER_XSOBJ');
						HEADER_XSOBJ.defContainer('xs-mnu-slide-container');
						HEADER_XSOBJ.defBar('xs-mnu-slide-bar');
						HEADER_XSOBJ.defBarElClassName('anteprima_slide');
						HEADER_XSOBJ.view();
						if(HEADER_LAYERS['mnu_slide'])	{
							HEADER_LAYERS['mnu_slide'].onmouseover = Header_CategoryBarInitTimeClear;
							HEADER_LAYERS['mnu_slide'].onmouseout = HEADER_XSOBJ.moveBarStop;
						}
						if(HEADER_LAYERS['mnu_list'])	{
							HEADER_LAYERS['mnu_list'].onmouseover = Header_CategoryBarInitTimeClear;
							HEADER_LAYERS['mnu_list'].onmouseout = HEADER_XSOBJ.moveBarStop;
						}
					}			
				}	else	{
					if(HEADER_LAYERS['mnu_slide'])	HEADER_LAYERS['mnu_slide'].style.display = 'none';
					document.images['header_clip_arrow'].src = document.images['header_clip_arrow'].src.replace(/_up/,'_down');
				}
				if(HEADER_XSOBJ)	HEADER_XSOBJ.moveBarStop('',true);
			}
		}
	}
}

function Header_CategoryBarInitTimeClear()
{
	if(TIMEOUT_HEADER_CATEGORYBARINIT) {
		clearTimeout(TIMEOUT_HEADER_CATEGORYBARINIT);
		TIMEOUT_HEADER_CATEGORYBARINIT=null;
	}
}

function Header_ChangeCategoryView()
{
	if(HEADER_XSOBJ)
		HEADER_XSOBJ.moveBarStop('',true);
	if(HEADER_LAYERS && HEADER_LAYERS['mnu_slide'] && HEADER_LAYERS['mnu_list'])
	{
		if(HEADER_LAYERS['mnu_slide'] && HEADER_LAYERS['mnu_slide'].style.display != 'block')	{
			if(HEADER_LAYERS['mnu_slide'])		HEADER_LAYERS['mnu_slide'].style.display = 'block';
			if(HEADER_LAYERS['mnu_list'])		HEADER_LAYERS['mnu_list'].style.display = 'none';
		}
		else
		{
			if(HEADER_LAYERS['mnu_slide'])		HEADER_LAYERS['mnu_slide'].style.display = 'none';
			if(HEADER_LAYERS['mnu_list'])		HEADER_LAYERS['mnu_list'].style.display = 'block';
		}
	}
}

function Header_Init()
{
	if(document.getElementById('mnu'))
	{
		HEADER_LAYERS = new Array();
		HEADER_LAYERS['mnu'] = document.getElementById('mnu');
		HEADER_LAYERS['mnu_slide'] = document.getElementById('mnu-slide');
		HEADER_LAYERS['mnu_list'] = document.getElementById('mnu-list');
	}
	else
	{
		if(document.getElementById('hca_div'))	document.getElementById('hca_div').style.display = 'none';
	}
}

Xs = function()
{
	this.container = null;
	this.bar = null;
	this.bar_el_classname = '';
	this.step_min = 46.5;
	this.step_max = 145;
	this.step_op = '+';
	this.step = 20;
	this.margin = 6;
	this.moveTime = null;
	this.lastType = '';
	this.lock = false;
	this.obj_name='';

	this.defContainer = function(name)	{
		this.container = document.getElementById(name);
	}
	this.defBar = function(name)	{
		this.bar = document.getElementById(name);
	}
	this.defBarElClassName = function(classname)	{
		this.bar_el_classname = classname;
	}
	this.defObjName = function(name)	{
		this.obj_name = name;
	}
	this.view = function()	{
		var width = 0;
		var height = 0;
		if(!this.bar)	return false;
		
		for(var i=0;i<this.bar.childNodes.length;i++)	{
			if(this.bar.childNodes[i].className == this.bar_el_classname)	{
				this.bar.childNodes[i].style.left = width+'px';
				width += (this.bar.childNodes[i].offsetWidth + this.margin);
				if(this.bar.childNodes[i].offsetHeight > height)	height = this.bar.childNodes[i].offsetHeight;
				if(!this.bar.els)	this.bar.els=new Array();
				this.bar.els.push(this.bar.childNodes[i]);
			}
		}
		this.bar.style.height = height+'px';
		this.container.style.height = this.bar.style.height;
		this.bar.offsetRight = this.bar.offsetLeft + this.bar.offsetWidth;
		this.bar.offsetBottom = this.bar.offsetTop + this.bar.offsetHeight;
		
		this.bar.realLeft = this.container.offsetLeft + this.bar.offsetLeft;
		this.bar.realRight = this.bar.realLeft + this.bar.offsetWidth;
		this.bar.realMiddle = this.container.offsetLeft + this.bar.offsetLeft + (this.bar.offsetWidth/2);
		
		this.bar.xsobj = this;
		this.bar.onmouseover = this.stopIt;
		this.container.xsobj = this;
		this.container.onmouseout = this.stopIt;
	}
	
	this.moveBarStart = function(type)	{
		if(this.lock == false && this.lastType != type)	{
			this.moveBarStop('',true);
			this.lock = true;
			this.lastType = type;
			this.moveTime = setInterval(this.obj_name+".moveBar('"+type+"');",100);
		}
	}
	
	this.moveBar = function(type)	{
		if(type == 'l')	{
			var right = 0;
			var last = 0;
			var elsToMove = new Array();
			for(var i=0;i<this.bar.els.length;i++)	{
				this.bar.els[i].style.left = (this.bar.els[i].offsetLeft - this.step)+'px';
				right = (this.bar.els[i].offsetLeft + this.bar.els[i].offsetWidth);
				if( right <= 0 )	elsToMove.push(i);
				if(last < right)	last = right;
			}
			if(elsToMove.length>0)	{
				for(i=0;i<elsToMove.length;i++)	{
					if(last < this.bar.offsetWidth)	last = this.bar.offsetWidth;
					this.bar.els[elsToMove[i]].style.left = (last+this.margin)+'px';
					last = this.bar.els[elsToMove[i]].offsetLeft + this.bar.els[elsToMove[i]].offsetWidth;
				}
			}
		} else if(type == 'r') {
			var left = 0;
			var first = 0;
			var elsToMove = new Array();
			for(var i=0;i<this.bar.els.length;i++)	{
				this.bar.els[i].style.left = (this.bar.els[i].offsetLeft + this.step)+'px';
				left = this.bar.els[i].offsetLeft;
				if( left >= this.bar.offsetRight )	elsToMove.push(i);
				if(first == 0 || left < first )		first = left;
			}
			if(elsToMove.length>0)	{
				for(i=0;i<elsToMove.length;i++)	{
					this.bar.els[elsToMove[i]].style.left = (first - this.margin - this.bar.els[elsToMove[i]].offsetWidth)+'px';
					first = this.bar.els[elsToMove[i]].offsetLeft;
				}
			}
		}
		else
			this.moveBarStop('',true);
		(this.step >= this.step_min) ? this.setStep(5) : this.moveBarStop('',true);			
	}
	
	this.stopIt = function(e)	{
		this.step_op='-';
		this.xsobj.setStep(15,this.xsobj);
	}
	
	this.setStep = function(n,obj)	{
		if(!obj) obj = this;
		var step = eval(obj.step+' '+obj.step_op+' '+n);
		if(obj.step_op == '-' || (step >= obj.step_min && step <= obj.step_max)) obj.step = step;
	}
	
	this.moveBarStop = function(e,force_stop)	{
		if(force_stop || this.step <= this.step_min)	{
			this.lock = false;
			this.step_op = '+';
			this.step = this.step_min;
			if(this.moveTime)	{
				clearInterval(this.moveTime);
				this.moveTime = null;
			}
			this.lastType = '';
		} else {
			this.step_op='-';
		}
	}
}