document.viewport={
	getDimensions: function(){
		var dimensions = { };
		$w('width height').each(function(d){
			var D = d.capitalize();
			dimensions[d] = self['inner' + D] || (document.documentElement['client' + D] || document.body['client' + D]);
		});
		return dimensions;
  },
  getWidth: function(){
		return this.getDimensions().width;
	},
	getHeight: function(){
		return this.getDimensions().height;
  },
	getScrollOffsets: function(){
		return Element._returnOffset(window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
	}
};

//addFlash(url,width,height,transparent,scale,v-align,h-align,name,background,vars)
function addFlash(u, w, h, t, s, va, ha, n, b, v){
	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + w + '" height="' + h + '" id="' + n + '" align="middle">');
	document.write('<param name="allowScriptAccess" value="sameDomain" />');
	document.write('<param name="allowFullScreen" value="false" />');
	document.write('<param name="movie" value="' + u + '" />');
	document.write('<param name="quality" value="high" />');
	if (s == 'y'){
		document.write('<param name="scale" value="noscale" />');
		var vaPar = '';
		var haPar = '';
		if (va == 'top') {vaPar = 't'}
		if (va == 'bottom') {vaPar = 'b'}
		if (va == 'middle') {vaPar = ''}
		if (ha == 'left') {haPar = 'l'}
		if (ha == 'right') {haPar = 'r'}
		if (ha == 'middle') {haPar = ''}
		document.write('<param name="salign" value="' + vaPar + '' + haPar + '" />');
	}
	if (b != '') {document.write('<param name="bgcolor" value="' + b + '" />');}
	if (t == 'y') {document.write('<param name="wmode" value="transparent" />');}
	if (v != 'n') {document.write('<param name="flashvars" value="' + v + '" />');}
	document.write('<embed src="' + u + '" quality="high"');
	if (s == 'y'){
		document.write(' scale="noscale"');
		document.write(' salign="' + vaPar + '' + haPar + '" ');
	}
	if (b != '') {document.write(' bgcolor="' + b + '"')}
	if (t == 'y') {document.write(' wmode="transparent"')}
	if (v != 'n') {document.write(' flashvars="' + v + '"')}
	document.write(' width="' + w + '" height="' + h + '" name="' + n + '"');
	document.write(' align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
	document.write('</object>');
}

var toolbar={
	openTool:function(e,params){
		if(params==null) params="";
		if (!$('tool_bg')) {
			var tool_shadow1 = Builder.node('div', {className: 'sh1'});
			var tool_shadow2 = Builder.node('div', {className: 'sh2'});
			var tool_shadow3 = Builder.node('div', {className: 'sh3'});
			var tool_shadow4 = Builder.node('div', {className: 'sh4'});
			var tool_shadow5 = Builder.node('div', {className: 'sh5'});
			var tool_contShad = Builder.node('div', {className: 'contShad', id: 'contShad'});
			var tool_cont = Builder.node('div', {className: 'tool_cont',id: 'tool_cont'});
			var tool_bg = Builder.node('div', {className: 'tool_bg',id: 'tool_bg'});		
			var tool_btnClose = Builder.node('div', {id: 'btnClose'});
			var tool_btnCloseHref = Builder.node('a', {id: 'btnCloseA', onclick: 'toolbar.closeTool(this);',href: 'javascript:void(0);'}, 'CLOSE');
			tool_contShad.appendChild(tool_shadow1);
			tool_contShad.appendChild(tool_shadow2);
			tool_contShad.appendChild(tool_shadow3);
			tool_contShad.appendChild(tool_shadow4);
			tool_contShad.appendChild(tool_shadow5);
			$('toolbar').appendChild(tool_contShad);
			tool_bg.appendChild(tool_cont);
			$('toolbar').appendChild(tool_bg);
			$$('div.cont')[0].getElementsByTagName('UL')[0].className = "open";
			$('toolbar').style.background = 'url(i/bgTool.jpg) top center no-repeat #98000e';
			$('tool_bg').style.display = "none";
			$$('A.t').each(function(a){a.target = "frame";});
			new Effect.SlideDown('tool_bg', {duration:.6,afterFinishInternal:function(){
				var tool_iframe = Builder.node('iframe', {src: e.href+params,id: 'frame',
					name:'frame',
					height:'460',
					width:'754',
					frameborder:'0',
					marginwidth:'0',
					marginheight:'0',
					align:'middle',
					scrolling:'no',
					allowtransparency:'true'
				});
				$('tool_cont').appendChild(tool_iframe);
			}});

			tool_btnClose.appendChild(tool_btnCloseHref);
			$('headLogo').appendChild(tool_btnClose);
			$('btnClose').style.display = "none";
			new Effect.Appear($('btnClose'),{duration:.6});
			e.className = "t on";
			e.parentNode.className == "red" ? e.parentNode.className =  "red on" : e.parentNode.className = "on";
		}else{
			$$('A.t').each(
				function(b){
					b.className = "t";
					b.parentNode.className == "red" ? b.parentNode.className = "red" : b.parentNode.className = "";
				}
			);
			e.className = "t on";
			e.parentNode.className == "red" ? e.parentNode.className = "red on" : e.parentNode.className = "on";
			$('frame').src = e.href+params;
		}
	},

	closeTool: function(){
		if ($('toolbarmsg-bg')) $('toolbarmsg-bg').style.display="none";
		if ($('toolbarerr')) $('toolbarerr').style.display="none";
		if ($('toolbarmsg')) $('toolbarmsg').style.display="none";
		if ($('toolbardisclaimer')) $('toolbardisclaimer').style.display="none";
		Element.remove('frame');
		new Effect.SlideUp('tool_bg',{
			duration:.8,
			afterFinishInternal:function(){
				$$('div.cont')[0].style.display = "block";
				Element.remove('tool_bg');	
				$('toolbar').style.background = 'url(/ucfin/i/tb_bg.gif) #e6e6e6 repeat-x bottom left';
				var li = $('menuTool').getElementsByTagName('LI');
				for (var i=0; i<li.length; i++) {
					li[i].className == "red" ? li[i].className= "red" : li[i].className = "";
					li[i].firstChild.className = "t";
				};
				Element.remove('contShad');
				$$('div.cont')[0].getElementsByTagName('UL')[0].className = "";		
			}
		});
		new Effect.Fade($('btnClose'),{
			duration:.5,
			afterFinishInternal: function(){
				Element.remove($('btnClose'));
			}});
	},

	displayDisclaimer: function (cont){
		if (document.all) this.IE6frameCombos(0);
		$('toolbardisclaimer').style.display="block";
		$('toolbarmsg-bg').style.display="block";
		$('toolbardisclaimer').innerHTML = cont.innerHTML;
		$$('a.btnDisclaimer').each(function(e) {
			e.onclick = function() {
				if (Element.hasClassName(e, 'pressed')) 
					Element.removeClassName(e, 'pressed');
				else {
					Element.addClassName(e, 'pressed');
					if(e.up(0).next())
						Element.removeClassName(e.up(0).next().down(0), 'pressed');
					else if(e.up(0).previous())
						Element.removeClassName(e.up(0).previous().down(0), 'pressed');
				}
				var DO='idle';
				if ($('EmailAlert') && $('SMSAlert')) {
					if (
						Element.hasClassName($('EmailAlert').down('a'), 'pressed') &&
						Element.hasClassName($('SMSAlert').down('a'), 'pressed')
					) 
						DO='SEND';
					if (
						Element.hasClassName($('EmailAlert').down('a', 1),'pressed') &&
						Element.hasClassName($('SMSAlert').down('a', 1),'pressed')
					) 
						DO='CLOSE';
				}
				else {
					if ($('EmailAlert')) {
						if (Element.hasClassName($('EmailAlert').down('a'), 'pressed')) 
							DO = 'SEND';
						else 
							DO='CLOSE';
					}
					if ($('SMSAlert')) {
						if (Element.hasClassName($('SMSAlert').down('a'), 'pressed')) 
							DO='SEND';
						else 
							DO = 'CLOSE';
					}
				}
				if (DO == 'SEND') {
					window.frame.document.getElementById('uaform').submit();
					setTimeout(function(){
						toolbar.closeDisclaimer();
					}, 1500);
				}
				if (DO == 'CLOSE') {
					setTimeout(function(){
						toolbar.closeDisclaimer();
					}, 1500);
				}
			}
		});
		var Slider = new Control.Slider('DHandler', 'DTrack', {
			axis	: 'vertical'
		});
		Slider.options.onSlide = function(value) {
		  $('textScroller').style.top = -(value * 140) + 'px'
		}
	},

	displayErr: function (nodes){
		$('toolbarerr').innerHTML = nodes.innerHTML;
		if (document.all) this.IE6frameCombos(0);
		$('toolbarmsg-bg').style.display="block";
		$('toolbarerr').style.display="block";
	},

	closeMsg: function(){
		$('toolbarerr').style.display="none";
		$('toolbarmsg').style.display="none";
		$('toolbarmsg-bg').style.display="none";
		if (document.all) this.IE6frameCombos(1);
	},

	closeDisclaimer: function(){
		$('toolbardisclaimer').style.display="none";
		$('toolbarmsg-bg').style.display="none";
		if (document.all) this.IE6frameCombos(1);
	},

	IE6frameCombos: function(how){
		if(document.all){
			var ver=navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5);
			ver=ver.substring(0,ver.indexOf(";"))
			ver=parseInt(ver);
			if (ver<7){
				var vis=(how==0)?"hidden":"";
				for(k=0;k<document.frame.document.forms.length;k++){
					for(i=0;i<document.frame.document.forms[k].elements.length;i++){
						if(document.frame.document.forms[k].elements[i].type.indexOf("select")!=-1){document.frame.document.forms[k].elements[i].style.visibility=vis}
					}
				}
			}
		}
	}
}

function changeTab(act,layOn,isSubYears){
	var chg = act.parentNode.parentNode;
	var list = act.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('div');
	for (i=0; i<(list.length-1); i++) {
		if (list[i].className == 'tabSxOn') list[i].className = 'tabSxOff'
		else if (list[i].className == 'tabDxOn') list[i].className = 'tabDxOff';
		if ((list[i].className == 'tabOn') || (list[i].className == 'tabOff')) {
			if (list[i].className == 'tabOn') list[i].className = 'tabOff'
		}
	}
	if ((chg.className == 'tabOn') || (chg.className == 'tabOff')) {
		chg.className = 'tabOn';
		lato = chg.parentNode.getElementsByTagName('div');
		for (s=0; s<(lato.length); s++){
			if ((lato[s].className == 'tabSxOff') || (lato[s].className == 'tabSxOn')) {
				lato[s].className = 'tabSxOn';
			} else if ((lato[s].className == 'tabDxOff') || (lato[s].className == 'tabDxOn')) {
				lato[s].className = 'tabDxOn';
			}
		}
	}
	var elencoTab = $$('div.contTab');
	for (var i=0;i<elencoTab.length;i++){
		elencoTab[i].style.display='none';
	}
	document.getElementById('tab'+layOn).style.display = 'block';
	if(isSubYears){
		for (i=0;i<$('btnYears').childNodes.length;i++){
			if($('btnYears').childNodes[i].tagName=='DIV') $('btnYears').childNodes[i].className="years"
		}
		document.getElementById('years_'+layOn).className = "years see"
	}
}

function showArchive(obj,id){
	if ($('archive_'+id)){
		if (obj.className=="btnArchiveOn") {
			obj.className="btnArchive"
			$('archive_'+id).style.display="none";
		}
		else {
			obj.className="btnArchiveOn"
			$('archive_'+id).style.display="block";
		}
	}
	return false;
}

function accordionMonth(){
	if($$('ul.month')[0]){
		var months = $$('ul.month')[0].getElementsByTagName('li');
		for (var i=0; i<months.length; i++) {
			months[i].down(0).onclick = function(){
				var monthz = $$('ul.month')[0].getElementsByTagName('li');
				for (var i = 0; i < monthz.length; i++) {
					monthz[i].className = '';
				}
				var li = this.up(0);
				if(li.className=='on'){ li.className = ''; }else{ li.className = 'on';}
			};
		}
	}
}

function fontSizer(){
	var sizer=document.getElementById('fontSizer').childNodes[0].nodeValue;
	switch (sizer) {
	case 'AAA': 
		document.body.style.fontSize="80%";
		document.getElementById('fontSizer').childNodes[0].nodeValue='A'
		break;
	case 'AA':
		document.body.style.fontSize="200%";
		document.getElementById('fontSizer').childNodes[0].nodeValue='AAA'
		break;
	case 'A':
		document.body.style.fontSize="100%";
		document.getElementById('fontSizer').childNodes[0].nodeValue='AA'
		break;
	}
}

function showagg(id,obj){
	div=document.getElementById('agg'+id);
	if(div){
		if (div.style.display=='block'){
			obj.className="aggTit";
			div.style.display="none"
		} else {
			obj.className="aggTit on";
			div.style.display="block";
		}
	}
}

function showYear(id,obj,tab){
	var div=(tab==null) ? document.getElementById('y'+id) : document.getElementById('y'+id+'_'+tab);
	if(div){
		if (tab==null){
			var nodes=obj.parentNode.parentNode.childNodes
			for(k=0;k<nodes.length;k++){
				if(nodes[k].className){
					if(nodes[k].className.indexOf("first")==-1) nodes[k].className=""
					else nodes[k].className="first";
				}
			}
			obj.parentNode.className="tabYear on"
		} else {
			for(i=0;i<obj.parentNode.childNodes.length;i++){
				if (obj.parentNode.childNodes[i].tagName=="A") obj.parentNode.childNodes[i].className="";
			}
			obj.className="on";
		}
		var ylen=(tab==null) ? disYears.length : eval("disYears_"+tab+".length");
		for(i=0;i<ylen;i++){
			if(tab==null){
				document.getElementById("y"+disYears[i]).style.display="none";
			} else {
				document.getElementById("y"+eval("disYears_"+tab+"[i]")+"_"+tab).style.display="none";
			}
		}
		div.style.display="block"
	}
}


function showSect(id,obj){
	div=document.getElementById('sect'+id);
	if(div){
		if (div.style.display=='block' || (div.className.indexOf("see")!=-1 && div.style.display=='')){
			obj.parentNode.className="archSect";
			obj.className="";
			div.style.display="none"
		} else {
			obj.parentNode.className="archSect on";
			obj.className="on";
			div.style.display="block";
		}
	}
}

function IsNumeric(strString){
var strValidChars = "0123456789.-";
var strChar;
var blnResult = true;
if (strString.length == 0) return false;
for (i = 0;i< strString.length&&blnResult == true;i++){
strChar = strString.charAt(i);
if (strValidChars.indexOf(strChar) == -1){blnResult = false}
}
return blnResult;
}

function isValidEmail(str) {return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);}

function uaCheck(){
	var isOk=true;
	var  errId="";
	if ($('smsalert').checked){
		$('uamobile').value = $F('uamobile').replace(/ /g,'');
		if ($('uamobile').value.length==0){
			if(isOk) errId="cellReq",isOk=false;
		} 
		else if (!IsNumeric($F('uamobile'))){
			if(isOk) errId="cellNaN",isOk=false;
		}
	} else {
		var oneCheck=false
		for (i=0;i<$('uaform').elements.length;i++){
			with($('uaform').elements[i]){
				if(type=="checkbox" && id!="smsalert" && checked) oneCheck=true;
			}
		}
		if (!oneCheck){
			if(isOk) errId="oneCheck",isOk=false;
		}
	}
	if(!isValidEmail($F('uaemail'))){
		if(isOk) errId="emailReq",isOk=false;
	}
	if ($F('uaname').length==0){
		if(isOk) errId="nameReq",isOk=false;
	}
	if ($F('uasurname').length==0){
		if(isOk) errId="surnameReq",isOk=false;
	}
	if ($('uaprof').selectedIndex==0){
		if(isOk) errId="profReq",isOk=false;
	}
	if ($('uacountry').selectedIndex==0){
		if(isOk) errId="coutryReq",isOk=false;
	}
	if(isOk == true) uaDisclaimer()
	else uaError(errId);
}

function uaError(errId){
	var msgTxt="Generic Error";
	if (errorsText[errId]) msgTxt=errorsText[errId];
	var targets={
		"cellReq":"uamobile",
		"cellNaN":"uamobile",
		"emailReq":"uaemail.focus()",
		"nameReq":"uaname.focus()",
		"surnameReq":"uasurname",
		"profReq":"uaprof",
		"coutryReq":"uacountry",
		"oneCheck":""	
	}
	var jsAction="";
	//if(errorsText[errId] && targets[errId]!='') jsAction=";document.frame.document.uaform."+targets[errId]+".focus();"
	var closeBtn =	Builder.node('A',{href:'#',onclick:'toolbar.closeMsg()'+jsAction,className:'close',title:'close'},[
		Builder.node('IMG',{src:'i/toolmsg_close.gif',width:'20',height:'20',title:'close'})
	]);

	var msgDiv = Builder.node('DIV',{className:'msg'},[msgTxt])

	var flr= Builder.node('DIV',{className:'flr'})
	var boxCorn= Builder.node('DIV',{className:'boxCorn btn2'})
	var closeLink= Builder.node('A',{href:'#',onclick:'toolbar.closeMsg();return false;'},[closeText])
	var imgtl= Builder.node('IMG',{src:'i/corn_topSx.png',height:'3',width:'3',className:'tl png'})
	var imgtr= Builder.node('IMG',{src:'i/corn_topDx.png',height:'3',width:'3',className:'tr png'})
	var imgbl= Builder.node('IMG',{src:'i/corn_botSx.png',height:'3',width:'3',className:'bl png'})
	var imgbr= Builder.node('IMG',{src:'i/corn_botDx.png',height:'3',width:'3',className:'br png'})
	boxCorn.appendChild(closeLink);
	boxCorn.appendChild(imgtl);
	boxCorn.appendChild(imgtr);
	boxCorn.appendChild(imgbl);
	boxCorn.appendChild(imgbr);
	flr.appendChild(boxCorn);
	msgDiv.appendChild(flr);
	var	container=Builder.node('DIV', {style: 'border-top: 1px solid #222;'});
	container.appendChild(closeBtn)
	container.appendChild(msgDiv)
	window.top.toolbar.displayErr(container);
}

function uaDisclaimer(){
	var	container=Builder.node('DIV', {style: 'border-top: 1px solid #222;'});
	var closeBtn =Builder.node('A',{href:'#',onclick:'toolbar.closeDisclaimer()',className:'close',title:'close'},[
		Builder.node('IMG',{src:'i/toolmsg_close.gif',width:'20',height:'20',title:'close'})
	]);
	var msgDiv = Builder.node('DIV',{className:'msg'},[
		Builder.node('h1', 'Disclaimer'),
		Builder.node('div', {style: 'height: 212px; overflow: hidden; position: relative'}, [
			Builder.node('p', {id: 'textScroller', style: 'position: absolute; top: 0; left: 0; width: 960px;'})
		]),
		Builder.node('div', {id: 'DTrack', style: 'position: absolute; right: 2px; top: 30px; padding: 2px 1px; background: url(i/track.gif) no-repeat top left;float: left; width: 13px; height: 212px'}, [
			Builder.node('img', {src: 'i/handler.gif', id: 'DHandler'})
		])
	])
	Element.down(Element.down(msgDiv, 1), 0).innerHTML = disclaimerText;
	var BottomTool = '<div id="BottomToolBox">';
	var oneCheck=false
	for (i=0;i<$('uaform').elements.length;i++){
		with($('uaform').elements[i]){
			if(type=="checkbox" && id!="smsalert" && checked) oneCheck=true;
		}
	}
	if(oneCheck){
		BottomTool += '<div class="BottomToolSx">' + 
			'<table id="EmailAlert"><tr><td class="BottomToolHead">E-mail alert</td><td width="142"><a style="cursor: pointer" class="btnDisclaimer"><span>'
			+ acceptText +
			'</span></a></td><td width="131"><a style="cursor: pointer" class="btnDisclaimer"><span>'
			+ noacceptText +
			'</span></a></td></tr></table>' + 
		'</div>';
	}
	if($('smsalert').checked){
		BottomTool += '<div class="BottomToolDx">' +
			'<table id="SMSAlert"><tr><td class="BottomToolHead">SMS alert</td><td width="142"><a style="cursor: pointer" class="btnDisclaimer"><span>'
			+ acceptText +
			'</span></a></td><td width="131"><a style="cursor: pointer" class="btnDisclaimer"><span>'
			+ noacceptText +
			'</span></a></td></tr></table>' + 
		'</div>';
	}
	BottomTool += '</div>';
	container.appendChild(closeBtn);
	container.appendChild(msgDiv);
	container.innerHTML += BottomTool;
	window.top.toolbar.displayDisclaimer(container);
}

function uaEnable(who){
	switch (who){
		case ('pr'):
			if($('prerall').disabled){
				$('prerall').disabled=false;
				$('prersens').disabled=false;
				$('prerall').checked=true;
			}
			else{
				$('prerall').disabled=true;
				$('prersens').disabled=true;
				$('prerall').checked=false;
				$('prersens').checked=false;
			}
			break;
		case ('e'):
			if($('evall').disabled){
				$('evall').disabled=false;
				$('evfin').disabled=false;
				$('evall').checked=true;
			}
			else{
				$('evall').disabled=true;
				$('evfin').disabled=true;
				$('evall').checked=false;
				$('evfin').checked=false;
			}
			break;
		case ('unsms'):
			$('uamobile').disabled=!$('uamobile').disabled;
			break;
		case ('unem'):
			$('emtp').disabled=!$('emtp').disabled;
			$('emall').disabled=!$('emall').disabled;
			break;
		default:break;
	}
}

function uaUnsubCheck(){
	var isOk=true,errId="";
	if(!isValidEmail($F('uaemail'))) isOk=false,errId="emailReq";
	if($('smsunsub').checked){
		$('uamobile').value = $F('uamobile').replace(/ /g,'');
		if ($('uamobile').value.length==0) isOk=false,errId="cellReq";
		if (!IsNumeric($F('uamobile'))) isOk=false,errId="cellNaN";
	}
	(isOk) ? $('uaform_unsub').submit() : uaError(errId);
}

function Stampa() {print();}

function addToBookmarks(){
var ua=navigator.userAgent;
if (window.opera){
document.getElementById("bm_OP").style.display="inline";
}else if (document.all && ua.indexOf("Mac")==-1){
if(document.getElementById) document.getElementById("bm_IE").style.display="inline";
else document.all.bm_DISABLED.style.display="inline";
}else if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")){
document.getElementById("bm_MZ").style.display="inline";
}else if( ua.indexOf("Mac")!=-1 && (document.all || ua.indexOf("Safari")!=-1) ){
document.getElementById("bm_DISABLED").style.display="inline";
}
}
function disabledBookmarks(){
var ua=navigator.userAgent;
if(document.all)alert("Per aggiungere questa pagina ai preferiti usa [APPLE] + [D]")
else if (ua.indexOf("Safari")!=-1)alert("Per aggiungere questa pagina ai preferiti usa [APPLE] + [D]\noppure trascina il link sulla barra dei preferiti")
else alert("Il browser non consente questa funzione.\nUsa il menu del browser.\n\nSorry! Your browser doesn't support this function.")
}
/*
* @author Paolo Moretti
* ZIndex: 
* Day event baloon			: 100
* Event filter Dropdown		: 101
* Miniagenda Day event baloon	: 102
* Parent Shadow base			: 400
* Parent Lightbox popup		: 401
*/
var Agenda={
	init: function(options){
		$Utils = this.Utils;
		$this = this;
		if (this.settings == null) {	// Default settings
			this.settings = {
				requestDate	: new Date(),
				currentDate	: new Date(),
				lang	: 'it',
				subscribeUrl:'agenda.do?todo=subscribe',
				vcsUrl:'vcs.ajax',
				imgUrl:'../i/agenda/',
				skin	:'Regular',
				freezeMonth:false
			}
		}
		Object.extend(this.settings, options);
		this.setTextLocale(this.settings.lang);
		this.onInitStatus();
		this.$setup();
		this.loadData();
	},

	onInitStatus:function(){if($('MonthsExplorer')) $('MonthsExplorer').hide()},

	$setup:function(){
		this.today = new Date();
		this.currentDate = $Utils.parseToDateObj(this.settings.requestDate);
		this.currentMonth = this.currentDate.getMonth();
		this.currentYear = this.currentDate.getFullYear();
		if(this.settings.lang == 'it') {
			this.monthsName = new Array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto','Settembre', 'Ottobre', 'Novembre', 'Dicembre');
			this.weekDay = new Array('L', 'M', 'M', 'G', 'V', 'S', 'D');
		} else {
			this.monthsName = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August','September', 'October', 'November', 'December');
			this.weekDay = new Array('M', 'T', 'W', 'T', 'F', 'S', 'S');
		}
		this.monthsDayCount = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
		if(this.categoryFilter == null) this.categoryFilter=false;
		this.CategoriesColor={
			'Price sensitive'	: '#4178b0',
			'Media related'		: '#0033FF',
			'Categoria 2'			: '#f00',
			'Categoria 3'			: '#3c0',
			'Categoria 4'			: '#f60',
			'Categoria 5'			: '#c3c',
			'Tutti gli eventi': '#fff',
			'All events'			: '#fff'
		}
		this.CustomCategories=[
			{name:'Price sensitive'},
			{name:'Media related'},
			{name:this.TXT.AllEvents}
		];
	},

	setTextLocale: function(l)
	{
		if(l == 'it') {
			this.TXT = {
				noEvents_agenda	: 'Non ci sono eventi per questo mese',
				ShowEventsLbl	: 'Mostra solo gli eventi: ',
				AllEvents		: 'Tutti gli eventi',
				VCSDownload	: 'Scarica VCS',
				Mandatory		: 'Tutti i campi sono obbligatori',
				ERR_Failure	: 'Errore tecnico.',
				ERR_KO			: 'Impossibile sottoscrivere questo evento',
				ERR_WRNG		: 'Errore generico. Impossibile sottoscrivere questo evento',
				ERR_OK			: 'Evento sottoscritto correttamente',
				Btn_close		: 'Chiudi'
			}
		} else {
			this.TXT = {
				noEvents_agenda	: 'No events for this month',
				ShowEventsLbl	: 'Show only events: ',
				AllEvents		: 'All events',
				VCSDownload	: 'Download VCS',
				Mandatory		: 'Fields are mandatory',
				ERR_Failure	: 'Technical Error',
				ERR_KO			: '[EN] Impossibile sottoscrivere questo evento',
				ERR_WRNG		: '[EN] Errore generico. Impossibile sottoscrivere questo evento',
				ERR_OK			: 'Event successfully subscribed',
				Btn_close		: 'Close'
			}
		}
	},

	loadData: function() {
		if(this.settings.testing) var ReqUrl = this.settings.dataUrl//; + '?month=' + (this.settings.requestDate.getMonth() + 1) + '&year=' + this.settings.requestDate.getFullYear();
		else var ReqUrl = '/' + this.settings.lang + '/' + this.settings.dataUrl + '?month=' + (this.settings.requestDate.getMonth() + 1) + '&year=' + this.settings.requestDate.getFullYear();
		new Ajax.Request(ReqUrl,{
			method:'get', 
			onFailure: function(ajax){
				alert("Error loading: " + ReqUrl)
			},
			onSuccess: function(ajax){
				Agenda.handleXML(ajax); 
				Agenda.onDataLoaded();
			}
		});
	},

	onDataLoaded: function() {
		this.setMonthsBrowsers();
		this.buildCalendar();
		if (this.settings.skin == 'Regular') this.buildAgenda();
		if (!this.settings.freezeMonth) this.buildFilters();
		this.Baloon.init();
	},

	handleERROR: function(e) {alert("ERROR: "+e)},

	handleXML: function(Obj) {
		if (document.implementation.createDocument){// FFx, create a new DOMParser 
			var parser = new DOMParser();
			this.settings.xmlDoc = parser.parseFromString(Obj.responseText, "text/xml");
		} else if (window.ActiveXObject){// IE, create a new XML document using ActiveX and use loadXML as a DOM parser
			this.settings.xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
			this.settings.xmlDoc.async="false";
			this.settings.xmlDoc.loadXML(Obj.responseText);
		} 
		this.prepareData();
	},

	prepareData: function(){
		this.Events = this.settings.xmlDoc.getElementsByTagName('item');
		this.Categories = this.settings.xmlDoc.getElementsByTagName('cat');
	},

	disableMonthsBrowsers: function(){
		$('AgendaPrevMonth').onclick = function() {return false;}
		$('AgendaPrevMonth').down().src = this.settings.imgUrl + 'f_prev_month_off.gif';
		$('AgendaNextMonth').onclick = function() {return false;}
		$('AgendaNextMonth').down().src = this.settings.imgUrl + 'f_next_month_off.gif';
	},

	setMonthsBrowsers: function(){
		$('MonthsExplorer').down('span').update($this.monthsName[$this.currentMonth] + ' ' + $this.currentYear);
		var Prev = $('AgendaPrevMonth');
		var Next = $('AgendaNextMonth');
		Prev.down().src = this.settings.imgUrl + 'f_prev_month.gif';
		Next.down().src = this.settings.imgUrl + 'f_next_month.gif';
		Prev.onclick = function() { 
			Agenda.init({requestDate: $Utils.getNewMonth(-1),freezeMonth:true});
			return false;
		};
		Next.onclick = function(){
			Agenda.init({requestDate:$Utils.getNewMonth(1),freezeMonth:true});
			return false;
		};
		if($('MonthsExplorer')) $('MonthsExplorer').show();
	},

	buildCalendar: function(){
		this.resetCalendar();
		if (this.settings.skin == "Regular") {
			this.buildWeekDays();
			var firstMonthDay = new Date(this.currentDate.getTime() - ((this.currentDate.getDate() - 1) * (24 * 60 * 60000)));
			var dayGap = firstMonthDay.getDay();
			if (dayGap == 0) dayGap=7; // La domenica e' restituita con 0, la voglio come ultima.
			var thisDay = new Date(firstMonthDay.getTime() - ((dayGap - 1) * 24 * 60 * 60000));
			for (var i=0;i<42;i++){
				var Day = new Element('div',{title:thisDay.getDate()}).addClassName('CalendarDay');
				Day.appendChild(new Element('span').update(thisDay.getDate()));
				var DayEvents = $Utils.getEventsByDate(thisDay);
				Day=this.addEventsToDay(Day,DayEvents);
				if (thisDay.getDate() == this.today.getDate() && thisDay.getMonth()==this.today.getMonth()) Day.down().update('today');
				if (thisDay.getMonth() != this.currentMonth) Day.addClassName('otherMonth');
				$('CalendarDays').appendChild(Day);
				thisDay=$Utils.getNextDay(thisDay);
			}
		} else {	// Mini agenda
			for (var i=0; i<this.monthsDayCount[this.currentMonth]; i++){
				var thisDay = new Date(this.currentDate.getFullYear(), $Utils.getDoubleCharNumber(this.currentMonth), $Utils.getDoubleCharNumber(i+1));
				var Day = new Element('div').addClassName('MiniCalendarDay');
				Day.appendChild(new Element('span').update(thisDay.getDate()));
				var DayEvents = $Utils.getEventsByDate(thisDay);
				Day = this.addEventsToDay(Day, DayEvents);
				if (thisDay.getDate() == this.today.getDate() && thisDay.getMonth() == this.today.getMonth()) 
					Day.setStyle({
						background:'#4076B2',
						color:'#fff'
					});
				$('CalendarDays').appendChild(Day);
			}
			$('CalendarDays').innerHTML += '<br class="clear" />'
		}
		if($('CalendarDaysLoading')) Element.remove('CalendarDaysLoading');
	},

	resetCalendar: function() {
		$('CalendarDays').update('<div id="CalendarDaysLoading"><br />Loading...</div>');
		if(this.settings.skin == 'Regular') 
			$('CalendarEventsContent').update('<div id="AgendaLoading">Loading...</div>');
	},

	buildWeekDays: function() 
	{
		this.weekDay.each(function(e){
			var WDay = new Element('div').addClassName('CalendarDay').addClassName('weekDayHead').update('<span>'+e+'</span>');
			$('CalendarDays').appendChild(WDay);
		});
	},

	buildFilters: function(){
		// labels
		if($('EventFilter').down('label')) $('EventFilter').down('label').update(this.TXT.ShowEventsLbl);
		$('EventFilterActive').down('span').update(this.TXT.AllEvents);
		var FilterDropdown = new Element('div', {id: 'FilterDropdown'});
		$A(this.Categories).each(function(Cat){
			var Cat = $Utils.parseCategoryNode(Cat);
			$this.appendFilterItem(Cat, FilterDropdown);
		});
		// Filtri custom
		$A(this.CustomCategories).each(function(Cat, i) {$this.appendFilterItem(Cat, FilterDropdown)});
		if (this.settings.skin == "Regular"){
			$('Calendar').appendChild(FilterDropdown);
			FilterDropdown.setStyle({
				'bottom':'0',
				'right':'0',
				'width':'200px'
			});
		}else{
			FilterDropdown.setStyle({
				'top':'0',
				'left':'10px',
				'width':'155px'
			});
			if (navigator.appVersion.indexOf("MSIE")!=-1 && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0])<7) FilterDropdown.style.left = '-20px';
			$('MiniAgendaCont').appendChild(FilterDropdown);
		}
		$('EventFilterActive').onclick=function(){
			$('FilterDropdown').style.display = 'block';
			Element.writeAttribute.delay(.5,$('FilterDropdown'),'OPEN')
		};
	},

	appendFilterItem: function(item, list){
		var filterItem = new Element('div').addClassName('FilterItem').update('<a href="#">' + item.name + '</a>');
		if(this.settings.skin == 'Regular')
			filterItem.setStyle({ 'background': $this.CategoriesColor[item.name] })
		filterItem.onclick = function(){
			this.up().style.display = 'none';
			Element.writeAttribute.delay(.5, $('FilterDropdown'), 'OPEN', false);
			$('EventFilterActive').onclick = function() {return false;}
			$this.setFilter(this.down('a').innerHTML)
			Element.down($('EventFilterActive'), 'span').innerHTML = item.name
		}
		list.appendChild(filterItem);
	},

	buildAgenda: function(){
		$('CalendarEventsContent').update();
		$A($Utils.getEventsByMonth()).each(function(e) {
			var DayEvent = Agenda.Utils.parseEventNode(e);
			var EventContainer = new Element('div').addClassName('AgendaEventContainer');
			var Data = new Element('div').addClassName('DataPad').setStyle({
				'backgroundColor':Agenda.CategoriesColor[DayEvent.type]
			}).update($Utils.parseToPadDate(DayEvent.date));
			var Abs = new Element('div').addClassName('EventAbs').update('<h4>'+DayEvent.title+'</h4><p>'+DayEvent.abs+'</p>');
			var Tools = new Element('div').addClassName('EventTools').update('<div style="position:relative"><label><span>'+$this.TXT.VCSDownload+'</span></label><img src="' + $this.settings.imgUrl + 'vcs_icon.gif" vspace="0" onclick="Agenda.getCsv(\''+DayEvent.id+'\', \''+DayEvent.date+'\',\''+DayEvent.dateEnd+'\');" /></div><div style="position: relative"><label><span>E-mail reminder</span></label><img src="' + $this.settings.imgUrl + 'alert_icon.gif" onclick="Agenda.openAlertPopup(\''+DayEvent.id+'\');" /></div>');
			var today=new Date()
			var evDArr=DayEvent.date.split('-')
			var evDate=new Date(evDArr[0],evDArr[1]-1,evDArr[2])
			if(today>evDate) Tools.style.display="none";
			EventContainer.appendChild(Data);
			EventContainer.appendChild(Abs);
			EventContainer.appendChild(Tools);
			$('CalendarEvents').down().appendChild(EventContainer);
			$('CalendarEvents').down().innerHTML += '<div class="hra"></div>';
		});
		$$('.EventTools').each(function(e){// Setto i tooltips per i tools
			e.down('img').onmouseover = function() { this.src = $this.settings.imgUrl + 'vcs_icon_over.gif'; this.previous().style.visibility='visible'}
			e.down('img').onmouseout = function() { this.src = $this.settings.imgUrl + 'vcs_icon.gif'; this.previous().style.visibility='hidden'}
			e.down('img', 1).onmouseover = function() { this.src = $this.settings.imgUrl + 'alert_icon_over.gif'; this.previous().style.visibility='visible'}
			e.down('img', 1).onmouseout = function() { this.src = $this.settings.imgUrl + 'alert_icon.gif'; this.previous().style.visibility='hidden'}
		});
		if($Utils.getEventsByMonth().length == 0) 
			$('CalendarEvents').down().appendChild(new Element('p').addClassName('courtesy').update($this.TXT.noEvents_agenda));
		// Aggiungo lo slider
		$Utils.setAgendaSlider();
	},

	setFilter:function(f) {
		this.resetCalendar();
		this.categoryFilter=f;
		this.buildCalendar();
		if(this.settings.skin == 'Regular') 
			this.buildAgenda();
		setTimeout(function() {
			$('EventFilterActive').onclick = function() {
				$('FilterDropdown').style.display = 'block';
				Element.writeAttribute($('FilterDropdown'), 'OPEN', true);
			};
		}, 500);
	},

	addEventsToDay: function(Day, DayEvents){
		if (DayEvents.length >= 1){
			Day.onmouseover = function(){Agenda.Baloon.showBaloon(this, Day.title);}
			Day.onmouseout = function(){Agenda.Baloon.hide();}
			if(this.settings.skin == 'Mini') {
				Element.writeAttribute(Day, 'onmouseover', 'Agenda.Baloon.showBaloon(this, \''+Day.down('span').innerHTML+'\')');
				Element.writeAttribute(Day, 'onmouseout', 'Agenda.Baloon.hide()');
			}
			Element.addClassName(Day, 'cursorPointer');
		}
		if (this.settings.skin=='Mini'&&DayEvents.length>0){
			Day.setStyle({
				backgroundColor: '#CED2D0',
				color: '#fff'
			});
			return Day;
		} 
		else if (DayEvents.length > 1) {// Evento multiplo
			Day.style.background = 'url(' +this.settings.imgUrl + 'bg_event_multi_cal.gif) no-repeat top left';
			Day.style.color = '#333';
			return Day;
		}
		else if (DayEvents.length == 1) {// Evento singolo
			Day.style.background = this.CategoriesColor[DayEvents[0].getAttribute('type')] + ' url(' + this.settings.imgUrl + 'bg_event_cal.gif) no-repeat top left';
			Day.style.color = '#333';
			return Day;
		} 
		else return Day;
	},

	openAlertPopup: function(EventID){
		var $top = parent.window;
		$top.document.getElementById('toolbarmsg-bg').style.display="block";
		var Popup = $top.document.getElementById('toolbardisclaimer');
		Popup.setStyle({
			left		:(($top.document.viewport.getDimensions()['width'] / 2) - 250) + 'px',
			top			:'80px',
			width		:'500px',
			height	:'280px',
			display :'block',
			marginTop:'10px',
			padding	:'0 0 0 10px'
		}).update('<a href="#" class="close" title="Close" onclick="toolbar.closeDisclaimer();"><img src="i/toolmsg_close.gif" /></a>' + $('EmailAlert_code').innerHTML);
		Popup.writeAttribute('EventID', EventID);
	},

	getCsv: function(id, d, de) {
		var dEnd = (de=="--") ? d : de;
		var ReqUrl = '/' + this.settings.lang + '/' + this.settings.vcsUrl + '?id=' + id + '&ds=' + d + '&de=' + dEnd;
		window.open(ReqUrl,'newWin');
	},
	checkSubscribe: function(e){
		var f = $('AgendaSubscribeForm');
		if(f.name.value != "" && isValidEmail(f.to.value) && isValidEmail(f.from.value)){
			if($('EmailAlert_msg')) $('EmailAlert_msg').style.display="none";
			var ReqUrl = $('AgendaSubscribeForm').getAttribute('action') + '&EventID='+$('toolbardisclaimer').readAttribute('EventID') + '&' + $('AgendaSubscribeForm').serialize()
			e.innerHTML='Loading...'
			Agenda.setTextLocale(document.frame.lang)
			new Ajax.Request(ReqUrl,{
				method:'GET',
				onSuccess:function(ajax){
					var txt=ajax.responseText;
					var resTxt=txt.substring(txt.indexOf('<msg_esito>')+11,txt.indexOf('</msg_esito>'))
					$('EmailAlert_table').up().update('<table cellspacing="0" cellpadding="10" id="EmailAlert_table"><tbody>'+
						'<tr><td>'+resTxt+'</td></tr>'+
						'<tr><td align="center"><br /><div class="boxCorn btn2" style="width: 100px; font-size: 12px">'+
							'<a onclick="toolbar.closeDisclaimer(); return false;" href="#">'+Agenda.TXT.Btn_close+'</a>'+
						'<img class="tl png" width="3" height="3" src="i/corn_topSx.png"/><img class="tr png" width="3" height="3" src="i/corn_topDx.png"/><img class="bl png" width="3" height="3" src="i/corn_botSx.png"/><img class="br png" width="3" height="3" src="i/corn_botDx.png"/>'+
						'</div></td></tr>'+
					'</tbody></table>');
				},
				onFailure:function() {
					$('EmailAlert_table').up().update('<table cellspacing="0" cellpadding="10" id="EmailAlert_table"><tbody>'+
						'<tr><td align="center"><br /><br /><br />'+Agenda.TXT.ERR_Failure+'</td></tr>'+
						'<tr><td align="center"><br /><div class="boxCorn btn2" style="width: 100px; font-size: 12px">'+
							'<a onclick="toolbar.closeDisclaimer(); return false;" href="#">'+Agenda.TXT.Btn_close+'</a>'+
						'<img class="tl png" width="3" height="3" src="i/corn_topSx.png"/><img class="tr png" width="3" height="3" src="i/corn_topDx.png"/><img class="bl png" width="3" height="3" src="i/corn_botSx.png"/><img class="br png" width="3" height="3" src="i/corn_botDx.png"/>'+
						'</div></td></tr>'+
					'</tbody></table>');
				}
			});
		} else {
			var emsg="";
			if(f.name.value == "") emsg= window.frame.EmailAlert_messages['noname']
			else if (!isValidEmail(f.to.value)) emsg= window.frame.EmailAlert_messages['noto']
			else if (!isValidEmail(f.from.value)) emsg= window.frame.EmailAlert_messages['nofrom']
			var msg=Builder.node('div', {},[emsg]);
			$('EmailAlert_msg').innerHTML="";
			$('EmailAlert_msg').appendChild(msg)
			$('EmailAlert_msg').style.display="block"
		}
	}
}

Agenda.Baloon={
	init: function(){
		$Utils = Agenda.Utils;
		this.itemOver	 = false;
		this.Obj		 = false;
		this.closing	 = false;
		this.createBaloon();
		$('popup_agenda').onclick = function(){
			Agenda.Baloon.show();
			Agenda.Baloon.itemOver=false;
		}
		$('popup_agenda').observe('mouseout',function() {Agenda.Baloon.hide()});
	},

	show: function(){
		this.closing = false;
		this.createBaloon();
		this.populateBaloon();
		this.showing = true;
		if (Agenda.settings.skin == 'Regular') {
			$('popup_agenda').style.left = this.itemOver.positionedOffset()['left'] + 35 + 'px';
			var gap = 1;
		}
		else {
			$('popup_agenda').style.left = -(Element.getDimensions($('popup_agenda'))['width'] - Element.positionedOffset(Agenda.Baloon.itemOver)['left']) + 'px';
			var gap = 8;
		}
		$('popup_agenda').style.display = 'block';
		$('popup_agenda').style.top = this.itemOver.offsetTop - gap + (Prototype.Browser.IE ? 20 : 0) + 'px';
	},

	hide:function(){
		this.closing = true;
		setTimeout(function(){
			if(Agenda.Baloon.closing == true){
				Agenda.Baloon.showing = false;
				$('popup_agenda').style.display = 'none';
				$('popup_agenda').style.top = '-2000px';
			}
		},500);
	},

	populateBaloon: function() {
		var $_this = this;
		var Elem = new Element('div', {id: 'BaloonContent'}).setStyle({
			width	: '216',
			position: 'relative'
		});
		$A(this.events).each(function(e, index){
			var DayEvent = $Utils.parseEventNode(e);
			var singleEvent = new Element('div').setStyle({
				backgroundColor: $this.CategoriesColor[DayEvent.type]
			}).addClassName('balloonItem').update('<a href="'+DayEvent.link+'" target="_top">'+DayEvent.title+'</a><br /><p>'+DayEvent.abs.truncate(50)+'</p>');
			if(index == $_this.events.length - 1)
				singleEvent.setStyle({border: 0});
			Elem.appendChild(singleEvent);
		});
		if($('BaloonContent')) Element.remove('BaloonContent');
		this.Obj.appendChild(Elem);
	},

	showBaloon:function(elem, events) {
		// Fix per IE6/7 pro z-index popup
		$('EventFilter').setStyle({position:'static'});
		$('EventFilterActive').setStyle({position:'static'});
		$('EventFilterActive').down('span').setStyle({position:'static'});
		// end Fix
		this.showing=true;
		this.itemOver=elem;
		if(typeof events == 'string') this.events = $Utils.getEventsByDate($Utils.parseToDateObj(Agenda.currentYear+'-'+(Agenda.currentMonth+1)+'-'+$Utils.getDoubleCharNumber(events)));
		else this.events=events;
		this.show();
	},

	hideBaloon:function(elem){this.hide()},

	createBaloon:function(){
		if(!$('popup_agenda')) {
			var pa = new Element('div', {id:'popup_agenda'});
			$('CalendarDays').appendChild(pa).setStyle({zIndex:1000});
			if (Agenda.settings.skin == 'Mini') {
				pa.appendChild(new Element('div').addClassName('bgFixer'));
				this.Obj = $('popup_agenda').down();
			}
			else this.Obj = $('popup_agenda');
			this.Obj.observe('mousemove', function() {
				Agenda.Baloon.closing = false;
			});
			this.Obj.observe('mouseout', function() {
				Agenda.Baloon.hide();
			});
			if (this.itemOver) Event.observe(Agenda.Baloon.itemOver, 'mousemove', function(){Agenda.Baloon.closing=false;});
		}
	}
}

Agenda.Utils = {
	getNewMonth: function(m){
		if (Agenda.currentMonth + m < 0) {
			var newMonth=11
			var newYear=Agenda.currentYear - 1;
		}
		else if (Agenda.currentMonth + m > 11) {
			var newMonth=0;
			var newYear=Agenda.currentYear + 1;
		}
		else {
			var newMonth=Agenda.currentMonth + m;
			var newYear=Agenda.currentYear;
		}
		return new Date(newYear, this.getDoubleCharNumber(newMonth), '01');
	},
	getEventsByMonth: function(){
		var res = new Array();
		$A(Agenda.Events).each(function (Event) {
			if(
				Agenda.categoryFilter == false ||
				Agenda.categoryFilter == Agenda.TXT.AllEvents || 
				Event.getAttribute('type') == Agenda.categoryFilter || 
				(Event.getAttribute('p_sens') == '1' && Agenda.categoryFilter == 'Price sensitive') || 
				(Event.getAttribute('m_rel') == '1' && Agenda.categoryFilter == 'Media related')
			) res.push(Event);
		});
		return res;
	},

	getEventsByDate: function(d){
		var d = this.dateToItalianDate(d);
		var res = new Array();
		var Events = this.getEventsByMonth();
		$A(Events).each(function(Event) {
			if(Event.getAttribute('date')==d) res.push(Event);
		});
		return res;
	},

	getDoubleCharNumber: function(m){
		if(m < 10) return '0' + m;
		else return m;
	},

	createParentShadow: function(){
		var ShadowBase = new Element('div', {id: 'ShadowBase'}).setStyle({
			'position':'absolute',
			'top':'0',
			'left':'0',
			'height':(parent.window.document.getElementById('tool_bg').getDimensions()['height'] + parent.window.document.getElementById('contShad').getDimensions()['height'] + parent.window.document.getElementById('menuTool').getDimensions()['height']) + 'px',
			'width':parent.window.document.viewport.getDimensions()['width'] + 'px',
			'background':'black'
		}).setOpacity(.7)
		var BaseWindow = parent.window.document;
		var BaseWindowBody = BaseWindow.body;
		BaseWindowBody.style.overflow = 'hidden'
		BaseWindowBody.appendChild(ShadowBase);
		BaseWindowBody.observe('click', function(e) {
			if(BaseWindow.getElementById('ShadowBase') && e.element().id != 'ShadowBase') {
				BaseWindowBody.removeChild(BaseWindow.getElementById('ShadowBase'));
				BaseWindowBody.removeChild(BaseWindow.getElementById('newLightBox'));
			}
		});
	},

	createLightbox: function(IstanceOptions){
		var parentDoc = parent.window.document;
		var Options={
			w:500,
			h:250,
			background:'#fff'
		}
		Object.extend(Options, IstanceOptions);
		var lb = new Element('div', {id: 'newLightBox'}).setStyle({
			position:'absolute',
			background:Options.background,
			width:Options.w + 'px',
			height:Options.h + 'px',
			top:((parentDoc.getElementById('ShadowBase').getDimensions()['height'] / 2) - (Options.h / 2)) + 'px',
			left:((parentDoc.viewport.getDimensions()['width'] / 2) - (Options.w / 2)) + 'px',
			zIndex:401
		}).update('<div style="padding: 20px">'+$('EmailAlert_code').innerHTML+'</div>');
		if(parent.window) parent.window.document.body.appendChild(lb)
		else document.body.appendChild(lb)
	},

	dateToItalianDate: function(dObj){
		var Month = dObj.getMonth() + 1;
		if(Month < 10) Month = "0" + Month;
		var Day = dObj.getDate();
		if(Day < 10) Day = "0" + Day;
		return dObj.getFullYear() + '-' + Month + '-' + Day;
	},
	
	getNextDay: function(d)
	{
		return new Date(d.getTime() + (24 * 60 * 60000));
	},

	parseEventNode: function(e){
		var JSObj = {
			title	: e.getElementsByTagName('link')[0].firstChild.nodeValue,
			link	: e.getElementsByTagName('link')[0].getAttribute('href'),
			abs		: (e.getElementsByTagName('abs')[0].firstChild) ? e.getElementsByTagName('abs')[0].firstChild.nodeValue : '',
			id		: e.getAttribute('id'),
			vcs		: e.getAttribute('vcs'),
			date	: e.getAttribute('date'),
			dateEnd: e.getAttribute('date_end'),
			type	: e.getAttribute('type'),
			p_sen	: e.getAttribute('p_sens'),
			m_rel	: e.getAttribute('m_rel')
		}
		return JSObj;
	},

	parseCategoryNode:function(e){
		var JSObj={name:e.firstChild.nodeValue}
		return JSObj;
	},

	parseToPadDate:function(d){
		var md = d.split('-');
		var res = '<span class="PadDay">'+md[2]+'</span>';
		res += '<span class="PadMonth">'+Agenda.monthsName[Number(md[1])-1]+'</span>';
		res += '<span class="PadYear">'+md[0]+'</span>';
		return res;
	},

	parseToDateObj:function(d){
		if(typeof d == 'object') return d;
		else {
			var md = d.split('-');
			return new Date(md['0'], (md['1']-1), md['2']);
		}	
	},

	parseToDateStr:function(d) {
		if(typeof d == 'object') return d.getFullYear() + '-' + this.getDoubleCharNumber((d.getMonth() + 1)) + '-' + this.getDoubleCharNumber(d.getDate())
		else return d;
	},

	setAgendaSlider:function() {
		$('CalendarEventsContent').style.top = 0;
		if ($('CalendarEvents').down().offsetHeight > 415) {
			Element.show('AgendaScroller');
			var Layer = $('CalendarEventsContent');
			var Slider = new Control.Slider('AgendaScrollerHandler', 'AgendaScroller', {
				axis: 'vertical'
			});
			var gap = Layer.offsetHeight - 415;
			Slider.options.onSlide = function(value) {
				Layer.style.top = -(value * gap) + 'px'; 
			}
		} else {
			Element.hide('AgendaScroller');
		}
	}
}
/*end agenda*/
/*Multimedia Box*/
/**
 * @author Paolo Moretti
 * 
 * Please note: XML can't have more than one "u" attribute in "cnt" node becouse is used as key.
 * 
 * ZIndex:
 * 		Base: 1000
 * 		Popup: 1001
 */

var MV={

	init:function(options){
		if (this.settings == null) { // Default settings
			this.settings = {
				dataUrl:'js/mv.xml',
				lang:'en',
				imgUrl:'i/',
				callBack:'',
				templatesUrl:'js/templates/',
				view:'Normal',
				cartItemLength:4
			}
		}
		this.TXT = {
			it: {
				ERR_FAILURE: {
					title		: 'Errore generico',
					description	: 'Riprovate pi&ugrave; tardi. Il servizio &egrave; momentaneamente non attivo.<br /><br />Grazie.',
					buttonlbl	: 'Chiudi'
				},
				SYS_OK: {
					title		: 'Eseguito!',
					description	: 'I file sono stati compressi e mandati all\'indirizzo fornito.',
					buttonlbl	: 'Chiudi'
				},
				LBL: {
					send: 'Spedizione in corso...'
				}
			},
			en: {
				ERR_FAILURE: {
					title		: 'Generic error',
					description	: 'Try again later, service temporanely unavailable.<br /><br />Thank you.',
					buttonlbl	: 'Close'
				},
				SYS_OK: {
					title		: 'Done!',
					description	: 'Files had been copressed and sent to the email you provided.',
					buttonlbl	: 'Close'
				},
				LBL: {
					send: 'Sending...'
				}
			}
		}
		this.settings.callBack = '/'+this.settings.lang+'/zip.do?d=pkmail';
		Object.extend(this.settings, options);
		this.$setup();
		this.loadData();
	},

	$setup: function(){
		if($('MV').getDimensions()['width'] < 600) { // Versione con spalla
			this.settings.view = 'Small';
			Element.addClassName($('MV'), 'smallView');
			$('MV_cats').setStyle({height:'150px'});
			this.settings.cartItemLength = 3;
		}
		this.fileTypeIcon = {
			'video':'mv_video_overlay.png',
			'image':'mv_image_overlay.png',
			'audio':'mv_audio_overlay.png',
			'ext_link':'mv_ext_link_overlay.png'
		}
		this.resLabel = {
			'lo':'Low-res',
			'med':'Medium-res',
			'hi':'High-res'
		}
		if(this.settings.lang == 'it') {
			this.TXT = {
				totalSize	: 'Peso totale',
				sendTo:'Manda i file selezionati a',
				from:'Da',
				msg:'Messaggio',
				toEmail:'Email destinatario',
				fromEmail:'Email mittente'
			}
		}
		this.Cart={
			currentView	: Number(1),
			Elements	: new Array(),
			Size		: Number(0),
			Screen		: $('MV_userItems_window_content'),
			switchScreen: function(dir) {
				this.currentView += Number(-dir);
				$xpos = this.Elements[(this.currentView-1) * MV.settings.cartItemLength].cartItem.offsetLeft
				new Effect.Move(this.Screen, {
					y: MV.Cart.Screen.offsetTop,
					x: -$xpos,
					mode: 'absolute',
					transition:Effect.Transitions.sinoidal
				})
				MV.refreshCart();
			},
			removeItem: function(e) {
				$A(MV.Cart.Elements).each(function(Obj, i) {
					if (Obj.cartItem == e) {
						new Effect.SlideUp(e, {
							scaleY	: false,
							scaleX	: true,
							duration: .6,
							transition: Effect.Transitions.sinoidal,
							afterFinish: function() {
								Element.remove(Obj.cartItem);
								MV.Cart.Size -= Obj.item.size;
								if(Obj.checkBoxEl)
									Obj.checkBoxEl.checked = false;
								MV.Cart.Elements = MV.Cart.Elements.without(MV.Cart.Elements[i]);
								MV.refreshCart();
							}
						});
					}
				});
			},
			showCartManager: function() {
				MV.Utils.createPageShadow();
				MV.Utils.createPagePopup({
					w	: 642,
					h	: 480,
					t	: 'Cart'
				});
			},
			zip:function() {
				var req = MV.settings.callBack + '?d=pkzip&url=';
				$A(this.Elements).each(function(e) {req += e.large + '&url='});
				req = req.truncate(req.length-5,'');
				location.href=req
			},
			send:function() {
				var req = MV.settings.callBack + '?d=pkmail&email=&url=';
				$A(this.Elements).each(function(e) {
					req += e.large + '&url=';
				});
				req = req.truncate(req.length-5, '')
				req += '&email=' + $F('cm_edest') + '&mitt=' + $F('cm_emitt') + '&msg=' + $F('cm_emsg');
				Element.remove('MV_cartSend');
				$('PagePopupContent').innerHTML += MV.TXT[MV.settings.lang].LBL.send+'...';
				new Ajax.Request(req, {
					method: 'post',
					onSuccess: function(res) {
						if(res.responseText.indexOf('KO') == -1) 
							MV.Cart.writeMessage(MV.TXT[MV.settings.lang].SYS_OK);
						else
							MV.Cart.writeMessage(MV.TXT[MV.settings.lang].ERR_FAILURE);
					},
					onFailure: function(res) {
						MV.Cart.writeMessage(MV.TXT[MV.settings.lang].ERR_FAILURE);
					}
				});
			},
			writeMessage: function(MSG) {
				$('PagePopupContent').innerHTML = '<div style="width: 390px">'+
					'<h3><span>'+MSG.title+'</span></h3>'+
					'<p>'+MSG.description+'</p>'+
					'<br /><br />&raquo; <a class="cursorPointer" onclick="MV.Utils.closePagePopup()">'+MSG.buttonlbl+'</a></p>'+
				'</div>';
			}
		}
		this.prev = $('mv_toPrev');
		this.next = $('mv_toNext');
		this.prev.onclick = function(){MV.Cart.switchScreen(1)}
		this.next.onclick = function(){MV.Cart.switchScreen(-1)}
	},

	loadData: function(){
		var ReqUrl = this.settings.dataUrl;
		new Ajax.Request(ReqUrl, {
			method: 'get',
			onFailure: function(ajax){
				alert("Error loading: " + ReqUrl)
			},
			onSuccess: function(ajax){
				MV.prepareData(MV.handleXML(ajax));
				MV.onDataLoaded();
			}
		});
	},

	onDataLoaded: function()
	{
		this.buildCategories();
		this.refreshCart();
	},

	handleERROR:function(e){alert("ERROR: " + e)},

	handleXML: function(Obj){
		if (document.implementation.createDocument) { // Mozilla, create a new DOMParser 
			var parser = new DOMParser();
			var xmlDoc = parser.parseFromString(Obj.responseText, "text/xml");
		}
		else if (window.ActiveXObject) { // IE
				var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
				xmlDoc.async = "false";
				xmlDoc.loadXML(Obj.responseText);
			}
		return xmlDoc;
	},

	prepareData: function(Doc){
		this.settings.xmlDoc = Doc;
		this.Categories = this.settings.xmlDoc.getElementsByTagName('cat');
	},

	buildCategories: function(actCat,actSubcat){
		this.resetCategories();
		// 1st LEVEL
		$A(this.Categories).each(function(e, i) {
			var Cat = MV.Utils.parseCatNode(e);
			var item = Builder.node('li', [
				Builder.node('a', Cat.name)
			]);
			item.onclick = function(){
				MV.buildCategories(Cat.name);
			}
			item.onmouseover=function(){this.style.cursor='pointer';}
			if(actCat == Cat.name || (actCat == null && i == 0)) Element.addClassName(item, 'activeCat');
			Element.down($('MV_cats'), 'ul').appendChild(item);
		});
		if(this.Categories.length <= 1 && this.settings.view == 'Small')
			$('MV_cats').down('ul').hide();
		// 2nd LEVEL
		$A(MV.Utils.getSubcatsByCat(MV.Utils.getActiveCat())).each(function(e, i) {
			var Scat = MV.Utils.parseSubcatNode(e);
			var item = Builder.node('li', [
				Builder.node('a', Scat.name)
			]);
			item.onclick = function(){MV.buildCategories(MV.Utils.getActiveCat().name, Scat.name);}
			item.onmouseover = function() {this.style.cursor='pointer';}
			if(actSubcat == Scat.name || (actSubcat == null && i == 0)) Element.addClassName(item,'activeSubcat');
			$('MV_subcats').down('ul').appendChild(item);
		});
		if($A(MV.Utils.getSubcatsByCat(MV.Utils.getActiveCat())).length <= 1 && this.settings.view == 'Small') $('MV_subcats').down('ul').hide();
		else $('MV_subcats').down('ul').show();
		this.buildGallery(MV.Utils.getActiveCat(), MV.Utils.getActiveSubcat());
	},

	resetCategories: function(){
		$('MV_cats').down('ul').update(''); 
		$('MV_subcats').down('ul').update('');
	},

	buildGallery: function(Cat,Subcat){
		$('MV_box_content').update();
		$('MV_box_content').setStyle({top: 0});
		$A(MV.Utils.getImagesBySubcat(Subcat)).each(function(e) {
			var Item = MV.Utils.parseImgNode(e);
			var Elem = MV.Utils.buildItem(Item);
			$('MV_box_content').insert(Elem);
		});
		this.checkScrollbar.delay(.2);
	},

	checkScrollbar: function(){
		if($('MV_box_content').getDimensions()['height'] < $('MvScrollerHandler').getDimensions()['height'] + 20) $('MvScroller').style.visibility = 'hidden';
		else {
			$('MvScroller').style.visibility = 'visible';
			var Slider = new Control.Slider('MvScrollerHandler', 'MvScroller', {axis: 'vertical'});
			var Layer = $('MV_box_content');
			var gap = Layer.offsetHeight - $('MvScroller').offsetHeight;
			Slider.options.onSlide = function(value) {
				Layer.style.top = -(value * gap) + 'px';
			}
		}
	},

	toggleFileToCart:function(e){
		if(e.checked == true) {
			if(this.checkCart(e) == false) this.addToCart(e);
		} else {
			if(this.checkCart(e) == true) this.removeFromCart(e);
		}
	},
	
	checkCart:function(e){
		var check = false;
		$A(this.Cart.Elements).each(function(Obj) {
			if(Obj.large==e.value) check = true;
		});
		return check;
	},

	refreshCart: function(){
		// carrello pieno: Elimino immagine bg
		if (this.Cart.Elements.length > 0) {
			$('MV_cats').addClassName('notEmpty');
			$('MV_iserItems_size').show().down('span').update(MV.Utils.parseFileSize(MV.Cart.Size));
			$('MV_iserItems_download').show();
		}
		else {
			$('MV_cats').removeClassName('notEmpty');
			$('MV_iserItems_size').hide();
			$('MV_iserItems_download').hide();
		}
		// Controllo le frecce
		if(this.Cart.Elements.length <= ((this.Cart.currentView - 1) * this.settings.cartItemLength) && this.Cart.Elements.length != 0) this.Cart.switchScreen(1);
		if(this.Cart.Elements.length > this.settings.cartItemLength && this.Cart.currentView < (this.Cart.Elements.length / this.settings.cartItemLength)) this.next.show();
		else this.next.hide();
		if(this.Cart.Elements.length == 0 || this.Cart.currentView == 1) this.prev.hide();
		else this.prev.show();
	},

	addToCart: function(e){
		var Item = MV.Utils.getItemByLargeFile(e.value);
		var Elem = MV.Utils.buildCartItem(Item, false);
		$('MV_userItems_window_content').insert(Elem);
		this.Cart.Elements.push({
			cartItem:Elem,
			cartItemId:Elem.identify(),
			large:e.value,
			item:Item,
			checkBoxEl:e
		});
		this.Cart.Size += Number(Item.size);
		this.refreshCart();
	},

	removeFromCart: function(e){
		$A(this.Cart.Elements).each(function(Obj, i) {
			if (Obj.large == e.value) MV.Cart.removeItem(Obj.cartItem);
		});
	}

}

MV.Utils = {
	createPageShadow: function(){
		document.body.style.overflow = 'hidden'
		var ShadowBase = new Element('div', {id: 'ShadowBase'}).setStyle({
			'position':'absolute',
			'top':document.viewport.getScrollOffsets()['top'] + 'px',
			'left':'0',
			'height':document.viewport.getDimensions()['height'] + 'px',
			'width':document.viewport.getDimensions()['width'] + 'px',
			'background':'#000',
			zIndex:1000
		}).setOpacity(.7)
		document.body.appendChild(ShadowBase);
	},

	createPagePopup: function(istance){
		if(!$('ShadowBase')) this.createPageShadow();
		var PageLayer = new Element('div', {id: 'MVPageLayer'}).setStyle({
			width:istance.w + 'px',
			height:istance.h + 'px',
			top:(document.viewport.getScrollOffsets()['top'] + (document.viewport.getDimensions()['height']-istance.h) / 2) + 'px',
			left:((document.viewport.getDimensions()['width']-istance.w) / 2) + 'px',
			position:'absolute',
			zIndex:1001
		}).update('<a onclick="MV.Utils.closePagePopup()" class="mv_closePopupBtn"><img src="i/mv_closePopup.gif" /></a>');
		switch(istance.t) {
			case 'Cart':
				/* _Updating cart contents */
				this.getTemplate('cart_manager_'+MV.settings.lang+'.tpl', function(response){
					PageLayer.innerHTML += response;
					PageLayer.down('span').update(MV.Utils.parseFileSize(MV.Cart.Size));
					Element.insert(document.body, PageLayer);
				});
				break;
			case 'VideoPlayer':
				this.getTemplate('video_player.tpl', function(response) {
					var Obj = istance.Obj;
					var VideoFile = MV.Utils.getItemFilesByArray(Obj.files)[0].large;
					PageLayer.innerHTML += response;
					PageLayer.getElementsByClassName('flv')[0].update('<embed src="swf/mediaplayer.swf" quality="high" scale="noscale" bgcolor="#000000" wmode="transparent" flashvars="file=' + VideoFile + '" width="558" height="330" name="ply" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
					PageLayer.getElementsByClassName('video_title')[0].update(Obj.title);
					PageLayer.getElementsByClassName('video_description')[0].update(Obj.descr);
					Element.insert(document.body, PageLayer);
				});
				break;
		}
	},

	closePagePopup: function(){
		if($('MVPageLayer')) Element.remove('MVPageLayer');
		if($('ShadowBase')) Element.remove('ShadowBase');
		document.body.style.overflow = 'auto'
	},

	getTemplate: function(tplName,f){
		new Ajax.Request(MV.settings.templatesUrl + tplName, {
			method: 'get',
			onFailure: function(ajax){
				alert("Error loading templates: " + tplName)
			},
			onSuccess: function(ajax){
				f(ajax.responseText)
			}
		});
	},

	parseCatNode: function(e){
		var JSObj = {
			id		: 'Parsed Category node',
			name	: e.getAttribute('n'),
			subcats	: e.getElementsByTagName('scat')
		}
		return JSObj;
	},

	parseSubcatNode: function(e){
		var JSObj = {
			id:'Parsed Subcategory node',
			name:e.getAttribute('n'),
			imgs:e.getElementsByTagName('i')
		}
		return JSObj;
	},

	parseImgNode: function(e){
		var randomId=Math.random().toString()
		randomId = randomId.substr(randomId.indexOf('.')+1)
		var JSObj = {
			id		: randomId,
			thumb	: e.getAttribute('th'),
			type	: e.getAttribute('ty'),
			title	: e.getElementsByTagName('t')[0].firstChild.nodeValue,
			descr	: e.getElementsByTagName('dt')[0].firstChild.nodeValue,
			files	: e.getElementsByTagName('cnt')
		}
		return JSObj;
	},

	parseFileSize: function(s){
		if(s > 1000 && s < 1000000) return (Math.round(s / 10) / 100) + 'Kb';
		else if (s > 1000000) return (Math.round(s / 10000) / 100) + 'Mb';
		else return (Math.round(s*100) / 100) + 'Bytes';
	},

	parseFile: function(e){
		var file = {
			id		: 'Parsed file',
			large	: e.getAttribute('u'),
			res		: e.getAttribute('r'),
			size	: e.getAttribute('sz')
		}
		return file;
	},

	buildItem: function(Item){
		var Cont = new Element('div', {className: 'mv_box_item'});
		var ContBox = new Element('div', {className: 'mv_box_item_img'});
		var FileTypeIcon = new Element('div', {className: 'MV_overlay'}).update('<img class="png" width="37" height="38" src="' + MV.settings.imgUrl + MV.fileTypeIcon[Item.type] + '" />');
		var DescrLay = new Element('div', {className: 'MV_overlay_descr'}).setOpacity(0).update('<span>'+Item.title+'</span><span class="mv_descr">'+Item.descr+'</span>');
		var Thumb = new Element('img', {src: Item.thumb});
		var CheckBox = new Element('div', {className: 'mv_box_item_res'});		
		// Aggiungo i checkbox
		$A(MV.Utils.getItemFilesByArray(Item.files)).each(function(e,i){
			var chk = '';
			$A(MV.Cart.Elements).each(function(el) { if(el.large == e.large) chk = 'checked="checked"' });
			CheckBox.innerHTML += '<input type="checkbox" '+chk+' name="check' + i + '" id="mvchk'+i+Item.id+'" onclick="MV.toggleFileToCart(this);" value="' + e.large + '" /> <label for="mvchk'+i+Item.id+'">' +  MV.resLabel[e.res] + ' (' + MV.Utils.parseFileSize(e.size) + ')</label><br />';
		});

		ContBox.onmouseover = function() {
			var Descr = this.getElementsByClassName('MV_overlay_descr')[0];
			if(this.FX != null) this.FX.cancel();
			this.FX = new Effect.Opacity(Descr, { from: Descr.getOpacity(), to: 0.7, duration: .3 });
			this.getElementsByClassName('MV_overlay')[0].style.display = 'none';
			if(Item.type == 'video') this.style.cursor = 'pointer'
		}

		ContBox.onmouseout = function() {
			var Descr = this.getElementsByClassName('MV_overlay_descr')[0];
			if(this.FX != null) this.FX.cancel();
			this.FX = new Effect.Opacity(Descr, { from: Descr.getOpacity(), to: 0, duration: .3 });
			this.getElementsByClassName('MV_overlay')[0].style.display = 'block';
		}

		if(Item.type == 'video'){
			DescrLay.onclick = function() {
				MV.Utils.createPagePopup({
					w	: 642,
					h	: 480,
					t	: 'VideoPlayer',
					Obj:Item
				});
			}
			DescrLay.style.cursor = 'pointer'
		}
		ContBox.insert(FileTypeIcon);
		ContBox.insert(DescrLay)
		ContBox.insert(Thumb);
		Cont.insert(ContBox);
		Cont.insert(CheckBox);
		return Cont;
	},

	buildCartItem: function(e)
	{
		var Parent = MV.Utils.getFileParent(e);
		var Cont = new Element('div', {className: 'mv_userItem'});
		var ContBox = new Element('div', {className: 'mv_box_item_img'}).update('<a onclick="javascript:MV.Cart.removeItem(this.up(1));" class="CartItemRemover"><img src="'+MV.settings.imgUrl + 'mv_cart_remove.png" class="png" width="24" height="24" /></a>');
		var FileTypeIcon = new Element('div', {className: 'MV_overlay'}).update('<img class="png" width="37" height="38" src="' + MV.settings.imgUrl + MV.fileTypeIcon[Parent.type] + '" />');
		var DescrLay = new Element('div', {className: 'MV_overlay_descr'}).setOpacity(0).update('<span>'+Parent.title+'</span><span class="mv_descr">'+Parent.descr+'</span>');
		var Thumb = new Element('img', {src: Parent.thumb});
		ContBox.onmouseover = function() {
			var Descr = this.getElementsByClassName('MV_overlay_descr')[0];
			if(this.FX != null) this.FX.cancel();
			this.FX = new Effect.Opacity(Descr, { from: Descr.getOpacity(), to: 0.7, duration: .3 });
			this.getElementsByClassName('MV_overlay')[0].style.display = 'none';
			this.getElementsByClassName('CartItemRemover')[0].style.visibility = 'visible';
		}
		ContBox.onmouseout = function() {
			var Descr = this.getElementsByClassName('MV_overlay_descr')[0];
			if(this.FX != null) this.FX.cancel();
			this.FX = new Effect.Opacity(Descr, { from: Descr.getOpacity(), to: 0, duration: .3 });
			this.getElementsByClassName('MV_overlay')[0].style.display = 'block';
			this.getElementsByClassName('CartItemRemover')[0].style.visibility = 'hidden';
		}
		if(Parent.type == 'video') {
			DescrLay.onclick = function() {
				MV.Utils.createPagePopup({
					w:642,
					h:480,
					t:'VideoPlayer',
					Obj:Parent
				});
			}
			DescrLay.style.cursor = 'pointer'
		}
		ContBox.insert(FileTypeIcon);
		ContBox.insert(DescrLay)
		ContBox.insert(Thumb);
		Cont.insert(ContBox);
		return Cont;
	},

	getItemFilesByArray: function(files){
		var res = new Array();
		$A(files).each(function(e){
			var file = MV.Utils.parseFile(e);
			res.push(file);
		});
		return res;
	},

	getItemByLargeFile: function(f){
		var res = false;
		$A(MV.settings.xmlDoc.getElementsByTagName('cnt')).each(function(e) {
			var File = MV.Utils.parseFile(e);
			if(File.large == f)
				res = File;
		});
		return res;
	},

	getActiveCat: function(){
		return this.getCatByName($$('.activeCat')[0].down('a').innerHTML)
	},

	getActiveSubcat: function(){
		return this.getSubcatByName($$('.activeSubcat')[0].down('a').innerHTML)
	},

	getSubcatByName: function(n){
		var res = false;
		$A(MV.Categories).each(function(e) {
			var Cat = MV.Utils.parseCatNode(e);
			$A(MV.Utils.getSubcatsByCat(Cat)).each(function(s) {
				var Scat = MV.Utils.parseSubcatNode(s);
				if(Scat.name == n) res = Scat;
			});
		});
		return res;
	},

	getCatByName: function(n){
		var res = false;
		$A(MV.Categories).each(function(e) {
			var Cat = MV.Utils.parseCatNode(e);
			if(Cat.name == n) res = Cat;
		});
		return res;
	},

	getFileParent: function(e){
		var res = false;
		$A(MV.Utils.getImagesBySubcat(MV.Utils.getActiveSubcat())).each(function(a) {
			var ImgNode = MV.Utils.parseImgNode(a);
			$A(MV.Utils.getItemFilesByArray(ImgNode.files)).each(function(f) {
				if(f.large == e.large) res = ImgNode;
			});
		});
		return res;
	},

	getSubcatsByCat: function(c){
		var res;
		$A(MV.settings.xmlDoc.getElementsByTagName('cat')).each(function(e) {
			if(e.getAttribute('n') == c.name) res = e.getElementsByTagName('scat');
		});
		return res;
	},

	getImagesBySubcat: function(Scat){
		var res = '';
		$A(MV.settings.xmlDoc.getElementsByTagName('scat')).each(function(e) {
			if(e.getAttribute('n') == Scat.name) res = e.getElementsByTagName('i');
		});
		return res;
	}
}
/*end Multimedia Box*/
/*Presskit*/
var PK = {
	tempSize: Number(0),
	Size: Number(0),
	TXT: {
		it: {
			'ERR_EMAIL'		: 'Indirizzo email non valido',
			'ERR_FILESIZE'	: 'Impossibile leggere il peso del file (Formato sconosciuto)',
			'ERR_SEND'		: 'Impossibile mandare l\'email. Errore tecnico',
			'ERR_NO_FILES'	: 'Devi selezionare dei file prima di inviarli',
			'OK_SEND'		: 'Email mandata correttamente'
		},
		en: {
			'ERR_EMAIL'		: 'Invalid Email address',
			'ERR_FILESIZE'	: 'Error reading File size (Size format unknown)',
			'ERR_SEND'		: 'Technical error sending email.',
			'ERR_NO_FILES'	: 'You must select at least one file',
			'OK_SEND'		: 'Email successfully sent'
		}
	},
	init: function(id) {
		this.ida = id;
		$A($(this.ida).down('table').getElementsByTagName('input')).each(function(e) {
			e.onclick = function() {
				PK.refreshStatus();
			}
		});
		this.refreshStatus();
	},
	refreshStatus: function() {
		this.tempSize = Number(0);
		this.tempFilesArray = new Array();
		$A($(this.ida).down('table').getElementsByTagName('input')).each(function(e) {
			if(e.checked != false) {
				var Row = Element.up(e, 'tr');
				PK.tempSize = PK.tempSize + PK.getSizeFromStr(Row.down('td.size').innerHTML);
				PK.tempFilesArray.push(e.value)
			}
		});
		this.Size = this.tempSize;
		this.Files = PK.tempFilesArray;
		$('fileTotal').innerHTML = MV.Utils.parseFileSize(this.tempSize);
		$('fileTotalZip').innerHTML = MV.Utils.parseFileSize(this.tempSize * .95);
	},
	getSizeFromStr: function(Str) {
		var Size=Str.split(' ');
		Size[0] = Number(Size[0].split(',').join('.'));
		if(Size[1] == 'Mb') 
			var SizeNumber = Number(Size[0] * 1000000);
		else if(Size[1] == 'Kb') 
			var SizeNumber = Number(Size[0] * 1000);
		else 
			var SizeNumber = Number(Size[0]);
		if(typeof SizeNumber == 'number')
			return SizeNumber;
		else
			alert(this.TXT[lang].ERR_FILESIZE);
	},
	Send: function() {
		var Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
		if (Filtro.test($F('PressKitEmail'))) {
			if (this.Files.length > 0) {
				var url = '/' + lang + '/zip.do?d=pkmail&email=' + $F('PressKitEmail');
				this.Files.each(function(f){
					url += '&file=' + f;
				});
				/* //TEST 
				url = 'http://localhost/test.php'
				*/
				new Ajax.Request(url, {
					onFailure: function(res){
						$('PK_MSG').update('<br />'+PK.TXT[lang].ERR_SEND);
					},
					onSuccess: function(res){
						var STATUS = res.responseText.split('<esito>')[1].split('</esito>')[0].strip();
						if (STATUS == 'ko') {
							var ERR_LIST = res.responseText.split('<listaErrori>')[1].split('</listaErrori>')[0].strip().split('<errore>');
							var ERR_MSG = '';
							for(var i=1; i<ERR_LIST.length; i++) {
								ERR_MSG += ERR_LIST[i].split('</errore>')[0].strip() + '\n\r';
							}
						} else 
							$('PK_MSG').update('<br />'+PK.TXT[lang].OK_SEND);
					}
				});
				//	location.href = url;
			} else 
				alert(this.TXT[lang].ERR_NO_FILES);
		} else {
			alert(this.TXT[lang].ERR_EMAIL);
			$('PressKitEmail').focus();
		}
	},
	Download: function() {
		var url = '/'+lang+'/zip.do?d=pkzip';
		this.Files.each(function(f) {
			url += '&url=' + f;
		});
		//alert(url);
		location.href = url;
	}
}
/*end presskit*/


window.onload = function(){
	if($('Agenda')) Agenda.init({lang: lang, dataUrl: 'agenda.ajax'});
	//if($('Agenda')) Agenda.init({lang: lang, dataUrl: '/UCG/getagenda.php', testing:true});
	//if($('Agenda')) Agenda.init({lang: lang, dataUrl: '/uch/agenda.xml', testing:true});
	
	if($('MiniAgenda'))	Agenda.init({lang: lang, dataUrl: 'agenda.ajax', skin: 'Mini', imgUrl: 'i/agenda/mini_'});
	//if($('MiniAgenda'))	Agenda.init({lang: lang, dataUrl: '/UCG/getagenda.php', skin: 'Mini', imgUrl: 'i/agenda/mini_', testing:true});

	imgBgTool= new Image(1182,490);
	imgBgTool.src="i/bgTool.jpg";
	if($('toolbardisclaimer')) {
		var myLeft = (document.viewport.getWidth() - 960) / 2;
		$('toolbardisclaimer').style.left = myLeft + 'px'
	}
//	accordionMonth();
}

/* OVERLAY */				
function FLVPlayer(file_video) {
	im=document.body;
	altz=im.scrollHeight;
	overlayer=$('overlay');
	overlayer.style.display='block';
	overlayer.style.height=$('body').getHeight()+'px';
	overlayer.style.width=$('body').getWidth()+'px';
	$('lightbox').style.display='block';
	//$('popTitolo').innerHTML=title_popup;
	//$('popText').innerHTML=text_popup;
	$('containerSWF').innerHTML='<embed src="swf/mediaplayer.swf" quality="high" scale="noscale" bgcolor="#000000" wmode="transparent" flashvars="file='+file_video+'" width="558" height="330" name="ply" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	Effect.toggle('over_1','appear', {afterFinishInternal:function() {
		$('containerSWF').style.display='block';
	}});
}
function closeP() {
	$('containerSWF').innerHTML="";
	$('overlay').style.display="none";
	$('lightbox').style.display="none";
	$('over_1').style.display="none";
}