/*INIT*/
var _Dir='';
var _Page='';
window.onload = function () {
	MainInit ();
	var tmp=window.location.href.split('/');
	_Dir=tmp[tmp.size()-2];
	_Page=tmp.last().split('?').first().gsub('.php','');
}

numDocs=0;
function GetNumDocs() {
	var strSubmit='action=DC'; //docs count
	
	new Ajax.Request('/documenti/getDocs.php', {
		method: 'post',
		parameters: strSubmit, 
		onSuccess: function(transport) {
			if (transport.responseText[0]=="#")
				alert (transport.responseText);
			else {
				numDocs=transport.responseText;
				$$('#footer li').last().down('a',1).insert({bottom: numDocs});
			}			
		},
		onFailure: function () {					
			alert ('Doc init error');
		}
	});
}

function MainInit () {	
	var ieob=GetCookie('ieob');
	['elib','eriv','earee'].each(function (s) {
		if (ieob==undefined)
			ieob=s;
		InitScroll('evidenza_'+s,-19);
		if (ieob!=s)
			$('cnt_evidenza_'+s).hide();
	});
	//InitScroll('evidenza');
	InitScroll('lastdoc');
	var mrob=GetCookie('mrob');
	['doc','lib','aree','news'].each(function (s) {
		if (mrob==undefined)
			mrob=s;
		InitScroll('letti_'+s,-19);
		if (mrob!=s)
			$('cnt_letti_'+s).hide();
	});
	GetNumDocs();
}

function printContent (id,type,idc) {
	window.open('/stampa.php?id='+id+'&type='+type+(idc!=undefined?'&idc='+idc:''),'Stampa','status=yes,scrollbars=yes,resizable=yes,width=600,height=500');
	
	return false;
}

function printBox (id) {
	var content=$(id).innerHTML;
  var pwin=window.open('','print_content','status=yes,scrollbars=yes,resizable=yes,width=600,height=500');

  pwin.document.open();
  pwin.document.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Olir</title></head>');
	pwin.document.write('<body onload="window.print()"><img src="/images/header_print.gif" width="570" height="62" border="0" /><br />'+content+'</body></html>');
  pwin.document.close();
 
 	//setTimeout(function(){pwin.close();},1000);
}

function openPrivacy() {
	window.open('/privacy/','Privacy','status=yes,scrollbars=yes,resizable=yes,width=600,height=500');
	
	return false;
}

/* BOX */
function SHClose(_elements) {
	if (_elements==undefined) {
		//$(window.event.target).toggleClassName('box_close');
	} else {
		/*_elements.each(function (s) {
			$(s).firstDescendant().toggleClassName('box_close');
	 });*/
	}
}

function OpenCloseBox() {
	var boxs=Array('lastdocBOX','evidenzaBOX','lettiBOX');		
	if ($(boxs[0]).getHeight()<227) {
		nh=225;
	} else {
		nh=30;
		boxs.each(function (s) {
			if (s=='lettiBOX') {
				['doc','lib','aree','news'].each(function (b) {
					if ($('handle_letti_'+b))
						$('handle_letti_'+b).hide();
				});
			} else {
				if ($('handle_'+s.sub('BOX','')))
					$('handle_'+s.sub('BOX','')).hide();
			}
		});
	}
	var len=0;
	Effect.multiple(boxs, Effect.Morph, {
													style: 'height: '+nh+'px;',
													duration: 0.3,
													speed: 0.0, 
													afterFinish: function () {
														if (boxs[len]=='lettiBOX') {
															['doc','lib','aree','news'].each(function (s) {
																if ($('handle_letti_'+s) && nh==225)
																	$('handle_letti_'+s).show();
															});
														} else {
															if ($('handle_'+boxs[len].sub('BOX','')) && nh==225)
																$('handle_'+boxs[len].sub('BOX','')).show();
														}
														if (nh==225) {
															$(boxs[len]).down('div').removeClassName('box_open');
															$(boxs[len]).down('div').addClassName('box_close');
														} else {
															$(boxs[len]).down('div').removeClassName('box_close');
															$(boxs[len]).down('div').addClassName('box_open');
														}
														len++;
													}
											 });
}
/* SCROLL */
var slider=new Array();
function InitScroll (_box,_delta)
{	
	var vh=$(_box).getHeight();
	if (_delta)
		vh+=_delta;
	var rh=$(_box).scrollHeight+vh;
	
	var sh=Math.round((vh*vh)/rh);	

	if ($(_box).scrollHeight <= $(_box).offsetHeight) {
		$(_box).style.width='210px';
		return;
	}
	$(_box).insert({after: '<div id="track_'+_box+'" class="track"><div id="handle_'+_box+'" class="handle"></div></div>'});
	if (_delta)
		$('track_'+_box).setStyle({height: ($('track_'+_box).getHeight()+_delta)+'px'});

	if ($(_box).up('.box').getHeight()<40)
		$('handle_'+_box).hide();
	
	if (sh>15)
		$('handle_'+_box).style.height=sh+"px";
	
	slider[_box] = new Control.Slider('handle_'+_box, 'track_'+_box, {
		axis: 'vertical',
		onSlide: function(v) { scrollVertical(v, $(_box), slider);  },
		onChange: function(v) { scrollVertical(v, $(_box), slider); }
	});	
	
	if (window.addEventListener)	//DOMMouseScroll is for mozilla.
		$(_box).addEventListener('DOMMouseScroll', wheel, false);

	$(_box).onmousewheel = $(_box).onmousewheel = wheel;// IE/Opera.
}

function InitAreaScroll (_box,_delta)
{	
	var vh=$(_box).getHeight();
	if (_delta)
		vh+=_delta;
	var rh=$(_box).scrollHeight+vh;
	
	var sh=Math.round((vh*vh)/rh);	
	
	if ($(_box).scrollHeight <= $(_box).offsetHeight) {
		alert ($(_box).scrollHeight+' <= '+$(_box).offsetHeight);
		$(_box).style.width='686px';
		return;
	}
	$(_box).insert({after: '<div id="track_'+_box+'" class="track"><div id="handle_'+_box+'" class="handle"></div></div>'});
	if (_delta)
		$('track_'+_box).setStyle({height: ($('track_'+_box).getHeight()+_delta)+'px'});

	if ($(_box).up('.box').getHeight()<40)
		$('handle_'+_box).hide();
	
	if (sh>15)
		$('handle_'+_box).style.height=sh+"px";
	
	slider[_box] = new Control.Slider('handle_'+_box, 'track_'+_box, {
		axis: 'vertical',
		onSlide: function(v) { scrollVertical(v, $(_box), slider);  },
		onChange: function(v) { scrollVertical(v, $(_box), slider); }
	});	
	
	if (window.addEventListener)	//DOMMouseScroll is for mozilla.
		$(_box).addEventListener('DOMMouseScroll', wheel, false);

	$(_box).onmousewheel = $(_box).onmousewheel = wheel;// IE/Opera.
}

function scrollVertical(value, element, slider)
{	
	element.scrollTop = Math.round(value/slider[element.id].maximum*(element.scrollHeight+10-element.offsetHeight));
}

function handle(obj,delta) {	
	slider[obj.id].setValueBy(-delta/5);
}

function wheel(event) {	
	var delta = 0;
	if (!event) /* For IE. */
		event = window.event;
	if (event.wheelDelta) { /* IE/Opera. */
		delta = event.wheelDelta/120;
		/** In Opera 9, delta differs in sign as compared to IE.*/
		/*if (window.opera)
			delta = -delta;*/
	} else if (event.detail) { /** Mozilla case. */
		/** In Mozilla, sign of delta is different than in IE.
		* Also, delta is multiple of 3.
		*/
		delta = -event.detail/3;
	}
	/** If delta is nonzero, handle it.
	* Basically, delta is now positive if wheel was scrolled up,
	* and negative, if wheel was scrolled down.
	*/
	if (delta)
		handle(this,delta);
	/** Prevent default actions caused by mouse wheel.
	* That might be ugly, but we handle scrolls somehow
	* anyway, so don't bother here..
	*/
	if (event.preventDefault)
		event.preventDefault();
	event.returnValue = false;
}

/* SEARCH */
function ShowAdvanced (_show) {
	if (_show || _show==undefined) {
		$('lnk_adv_search').show();
		if ($$('#FSS input')[1].value=='cerca') {
			$$('#FSS input')[1].value='';
			$$('#FSS input')[1].removeClassName($$('#FSS input')[1].className);
		}
		$$('#FSS input')[2].enable();
	}
	else {		
		$('lnk_adv_search').hide();
		$$('#FSS input')[1].value='cerca';
		$$('#FSS input')[1].addClassName('lightInput');
		$$('#FSS input')[2].disable();
	}
}
function ShowAdvSearch () {
	var strSubmit=($$('#FSS input')[1].value!='cerca'?'Form_search_testo='+$$('#FSS input')[1].value:'')+'&dir='+_Dir+'&page='+_Page;
	
	$('FSS').hide();
	ShowAdvanced(false);
	new Ajax.Request('/ricerca/adv_search.php', {
		method: 'post',
		parameters: strSubmit, 
		onSuccess: function(transport) {
			DrawAdvSearchPannel(transport.responseText);
		},
		onFailure: function () {					
			alert ('Adv Search error');
		}
	});		
}
function DrawAdvSearchPannel(_cnt) {
	var arrayPageSize = getPageSize();
	
	//BACK
	$('cnt').insert({after: '<div id="wOver_overlay" style="display: none;" onclick="CloseAdvSearchPannel()"></div>'});

	$('wOver_overlay').style.width=arrayPageSize[0]+'px';
	$('wOver_overlay').style.height=arrayPageSize[1]+'px';	
	new Effect.Appear('wOver_overlay', { duration: 0.2, from: 0.0, to: 0.2 });
	
	//CNT
	$('cnt').insert({top: '<div id="wOver" style="display:none;"><div id="wOverContainer">'+_cnt+'</div><div class="shadow">&nbsp;</div></div>'});
	
	Effect.toggle('wOver', 'slide', { delay: 0, duration: 0.3 });
}

function CloseAdvSearchPannel () {
	Effect.toggle('wOver', 'slide', 
							  {delay: 0, 
								 duration: 0.3, 
								 afterFinish: function () {
										$('wOver_overlay').remove();
										$('wOver').remove();										
										ShowAdvanced(false);
										$('FSS').show();
								}});
}
/* AREETEMATICHE */
function OpenCloseArea() {
	if ($('area_cnt').getHeight()>0) {
		nh=0;
		pd=0;
	} else {
		nh=areaHeight;
		$('area_cnt').setStyle({padding: '10px'});
	}

	new Effect.Morph('area_cnt', {
		style: { height: nh+'px' }, 
		duration: 0.3, 
		speed: 0.0, 
		afterFinish: function () {
			if (nh==areaHeight) {
				$('area_label').removeClassName('box_open');
				$('area_label').addClassName('box_close');
			} else {
				$('area_label').removeClassName('box_close');
				$('area_label').addClassName('box_open');
				$('area_cnt').setStyle({padding: '0px'});
			}			
		}
	});
}


/* NEWSLETTER */
var _email;
function SetNewsletter (_show) 
{
	if (_show || _show==undefined) {
		_email='';
		if ($$('#newsletter input')[0].value=='email') {
			$$('#newsletter input')[0].value='';
			$$('#newsletter input')[0].removeClassName($$('#newsletter input')[0].className);
		}
		$$('#newsletter div')[0].show();
		$$('#newsletter div')[1].show();
		$('_hideNewsletter').show();
	}
	else {
		_email=$$('#newsletter input')[0].value;
		$$('#newsletter input')[0].value='email';
		$$('#newsletter input')[0].addClassName('lightInput');
		$$('#newsletter div')[0].hide();
		$$('#newsletter div')[1].hide();
		$('_hideNewsletter').hide();
	}
}

function USNewsletter (_reg) {
	var _email=$$('#newsletter input')[0].value;
	if (_email=='email' || _email=='') {
		alert ('Compila il campo email');
		return false;
	}
	
	$$('#newsletter div')[0].hide();
	$$('#newsletter div')[0].insert({after: '<div id="wait"><img src="/images/loader2.gif" width="16" height="16" border="0" align="absmiddle" /> attendi</div>'});
	
	var strSubmit='?action='+(_reg==false?'NWSDEL':'NWSREG')+'&news_email='+_email;
	new Ajax.Request('/include/nwslt_proc.php', {
		method: 'post',
		parameters: strSubmit, 
		onSuccess: function(transport) {
			if ($('wait'))
					$('wait').remove();
			switch (transport.responseText) {
			case 'OK': //Reg OK -> check mail*/				
				$('newsletter').innerHTML='';
				if (_reg==false)
					$('newsletter').insert({top: 'Controlla la posta e segui le istruzioni per confermare l\'annullamento della tua iscrizione alla Newsletter.'});
				else
					$('newsletter').insert({top: 'Controlla la posta e segui le iscrizioni per confermare la tua iscrizione alla Newsletter.'});
				$('_hideNewsletter').hide();
				break;
			case 'KO': //Invalid
				alert ('L\'indizizzo email inserito non sembra essere valido');
				$$('#newsletter div')[0].show();
				break;
			case 'NO': //Dulicate
				alert ('Questo indirizzo email risulta già registrato');
				$$('#newsletter div')[0].show();
				break;
			default: //General error
				alert ('Errore\r\nRiprovare in un secondo momento ['+transport.responseText+']');
				$$('#newsletter div')[0].show();
				//alert (transport.responseText);
				break;
			}
		},
		onFailure: function () {					
			alert(strResponse);
		}
	});
}

/* NEWS */
function GetSearchNewsVals() {
	var fq='';	
	fq+=($('argomento').getValue()!=''?'&argomento='+$('argomento').getValue():'');
	if ($('fromMonth').getValue()!='' && $('fromYear').getValue()=='') {
		alert('Devi selezionare l\'anno di inizio');
		return false;
	}
	
	if (($('toYear').getValue()!="" && $('fromYear').getValue()>$('toYear').getValue()) ||
			($('fromYear').getValue()==$('toYear').getValue() && $('fromMonth').getValue()>$('toMonth').getValue())) {
		alert ('Controlla le date');
		return false;
	}
	fq+=($('fromMonth').getValue()!=''?'&fromMonth='+$('fromMonth').getValue():'');
	fq+=($('fromYear').getValue()!=''?'&fromYear='+$('fromYear').getValue():'');
	if ($('toMonth').getValue()!='' && $('toYear').getValue()=='') {
		alert('Devi selezionare l\'anno di fine');
		return false;
	}	
	fq+=($('toMonth').getValue()!=''?'&toMonth='+$('toMonth').getValue():'');
	fq+=($('toYear').getValue()!=''?'&toYear='+$('toYear').getValue():'');
	
	fq+=($('testo').getValue()!=''?'&testo='+$('testo').getValue():'');
	
	return (fq);
}

function SearchNews () {
	
	var qs=GetSearchNewsVals();
	if (qs===false) {
		return false;
	}
	
	window.location.href=window.location.pathname+'?action=SEARC'+qs;
	return false;
}

function initNewsletterList() {
	$$('a.year').each (function (a) {
		Event.observe(a, 'click', toggleItems);
	});
}

function toggleItems (event) {
	event.stop();
	var box=Event.element(event).up('div').down('div');
	
	if (!box.visible())
		box.show();
	else
		box.hide();
	
	return false;
}

function setCookie(name, value, expires, path, domain, secure) { 
	 var curCookie = name + "=" + escape(value) + 
		((expires) ? "; expires=" + expires.toGMTString() : "") + 
		((path) ? "; path=" + path : "") + 
		((domain) ? "; domain=" + domain : "") + 
		((secure) ? "; secure" : ""); 
	 document.cookie = curCookie;
}

function GetCookie(name){ 
   var biscotti = document.cookie.split("; ");
   for (i=0; i < biscotti.length; i++) {
      briciola = biscotti[i].split("=");
      if (briciola[0] == name) {
        valore = briciola[1];
        return valore;
      }
   }
}

// -----------------------------------------------------------------------------------
// getPageSize() from lightbox by Lokesh Dhakar
// Returns array with page width, height and window width, height
// Core code from - quirksmode.com
// Edit for Firefox by pHaez
// 2 Edit by me
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
//	console.log(self.innerWidth);
//	console.log(document.documentElement.clientWidth);

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

//	console.log("xScroll " + xScroll)
//	console.log("windowWidth " + windowWidth)

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
//	console.log("pageWidth " + pageWidth)

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.com
//
function getPageScroll(){

	var xScroll, yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}

	arrayPageScroll = new Array(xScroll,yScroll) 
	return arrayPageScroll;
}
