var preloadImgNames = new Array('songs/a_bologna.mp3', 'songs/anche_robinson_crusoe.mp3', 'songs/ferragosto.mp3', 'songs/fuori_dal_tuo_riparo.mp3', 'songs/il_bombarolo.mp3', 'songs/lato_proibito.mp3', 'songs/manifesto_abusivo.mp3', 'songs/pesce_d_aprile.mp3', 'songs/ragno.mp3', 'songs/sedici_noni.mp3', 'songs/un_periodo_pieno_di_sorprese.mp3', 'songs/valzer_nello_spazio.mp3');
var page_in='p_1_1';
var wPage=900;
var hPage=490;
var fadeMask=0.4;
var pageLoading=new Array();
var scrolling=false;
var navPositions={
	'nav_top': {'top': 0, 'left': 442}, 
	'nav_top_right': {'top': 0, 'left': 885}, 
	'nav_right': {'top': 237, 'left': 885}, 
	'nav_bottom_right': {'top': 475, 'left': 885}, 
	'nav_bottom': {'top': 475, 'left': 442}, 
	'nav_bottom_left': {'top': 475, 'left': 0},
	'nav_left': {'top': 237, 'left': 0}, 
	'nav_top_left': {'top': 0, 'left': 0}
};
var songPlaying='';
var preloadComplete=false;
var preloadImg=new Array();
var popupOpen=false;

Array.prototype.find = function(searchStr) {
  var returnArray = false;
  for (i=0; i<this.length; i++) {
    if (typeof(searchStr) == 'function') {
      if (searchStr.test(this[i])) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    } else {
      if (this[i]===searchStr) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    }
  }
  return returnArray;
}

function preloadImage(){
	for(i=0; i<preloadImgNames.length; i++){
		preloadImg[i]=new Image; 
		preloadImg[i].src=preloadImgNames[i];
	}
}//preloadImage

function setMenu(){
	new Effect.Opacity('menu_int_sfondo', { 
		from: 1.0, 
		to: 0.75, 
		duration: 0
	 });
	if(BrowserDetect.browser=='Explorer'){
		new Effect.Opacity('menu_canzoni', { 
			from: 1.0, 
			to: 0.75, 
			duration: 0
		 });
		new Effect.Opacity('menu_media', { 
			from: 1.0, 
			to: 0.75, 
			duration: 0
		 });
	}
}//setMenu

function showMask(e){
	$$('.page').each(function(elt){
		maschera=elt.down('.mask');
		if(!elt.hasClassName('in')){
			new Effect.Opacity(maschera, { 
				from: 1.0, 
				to: fadeMask, 
				duration: 0
			 });
			Element.show(maschera);
		}else{
			new Effect.Opacity(maschera, { 
				from: 1.0, 
				to: 0, 
				duration: 0
			 });
		}
	});
}//showMask

function setViewport(e){
	altezza=document.viewport.getHeight();
	if(altezza>575){
		$('viewport').setStyle('height:'+altezza+'px');
	}
	setAllPosition();
	setNavPosition();
}//setViewport

function findNewAllPosition(){
	pos=page_in.split('_');
	left1=(pos[2]-1)*wPage;
	top1=(pos[1]-1)*hPage;
	dimViewport=$('viewport').getDimensions();
	left2=-left1+Math.round((dimViewport['width']-wPage)/2);
	if(Math.round((dimViewport['height']-hPage)/2)<97 && (dimViewport['height']-hPage)>=97){
		top2=-top1+97;
	}else{
		top2=-top1+Math.round((dimViewport['height']-hPage)/2);
	}
	pos=new Array(left2, top2);
	return pos;
}//findNewAllPosition

function setAllPosition(e){
	pos=findNewAllPosition();
	$('all').setStyle('left:'+pos[0]+'px; top:'+pos[1]+'px;');
}//setAllPosition

function findNewNavPosition(){
	dimViewport=$('viewport').getDimensions();
	left1=Math.round((dimViewport['width']-wPage)/2);
	//top1=Math.round((dimViewport['height']-hPage)/2);
	if(Math.round((dimViewport['height']-hPage)/2)<97 && (dimViewport['height']-hPage)>=97){
		top1=97;
	}else{
		top1=Math.round((dimViewport['height']-hPage)/2);
	}
	pos=new Array(left1, top1);
	return pos;
}//findNewNavPosition

function setNavPosition(e){
	pos=findNewNavPosition();
	$('nav_top').setStyle('left:'+(Number(pos[0])+navPositions['nav_top']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_top']['top'])+'px;');
	$('nav_top_right').setStyle('left:'+(Number(pos[0])+navPositions['nav_top_right']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_top_right']['top'])+'px;');
	$('nav_right').setStyle('left:'+(Number(pos[0])+navPositions['nav_right']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_right']['top'])+'px;');
	$('nav_bottom_right').setStyle('left:'+(Number(pos[0])+navPositions['nav_bottom_right']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_bottom_right']['top'])+'px;');
	$('nav_bottom').setStyle('left:'+(Number(pos[0])+navPositions['nav_bottom']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_bottom']['top'])+'px;');
	$('nav_bottom_left').setStyle('left:'+(Number(pos[0])+navPositions['nav_bottom_left']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_bottom_left']['top'])+'px;');
	$('nav_left').setStyle('left:'+(Number(pos[0])+navPositions['nav_left']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_left']['top'])+'px;');
	$('nav_top_left').setStyle('left:'+(Number(pos[0])+navPositions['nav_top_left']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_top_left']['top'])+'px;');
	$('footer').setStyle('left:'+(Number(pos[0])+navPositions['nav_bottom_left']['left'])+'px; top:'+(Number(pos[1])+navPositions['nav_bottom_left']['top']-5)+'px;');
}//setNavPosition

/*function showNav(){
	pos=page_in.split('_');
	if(pos[1]==1){
		$('nav_top').hide();
		$('nav_top_right').hide();
		$('nav_top_left').hide();
	}else{
		$('nav_top').show();
		if(pos[2]==1){
			$('nav_top_left').hide();
		}else{
			$('nav_top_left').show();
		}
		if(pos[2]==4){
			$('nav_top_right').hide();
		}else{
			$('nav_top_right').show();
		}
	}
	if(pos[1]==6){
		$('nav_bottom').hide();
		$('nav_bottom_right').hide();
		$('nav_bottom_left').hide();
	}else{
		$('nav_bottom').show();
		if(pos[2]==1){
			$('nav_bottom_left').hide();
		}else{
			$('nav_bottom_left').show();
		}
		if(pos[2]==4){
			$('nav_bottom_right').hide();
		}else{
			$('nav_bottom_right').show();
		}
	}
	if(pos[2]==1){
		$('nav_left').hide();
		$('nav_bottom_left').hide();
		$('nav_top_left').hide();
	}else{
		$('nav_left').show();
	}
	if(pos[2]==4){
		$('nav_right').hide();
		$('nav_bottom_right').hide();
		$('nav_top_right').hide();
	}else{
		$('nav_right').show();
	}
}//showNav
*/

function showNav(){
	pos=page_in.split('_');
	if(pos[1]==1){
		$('nav_top').hide();
		$('nav_top_right').hide();
		$('nav_top_left').hide();
	}else{
		$('nav_top').show();
		if(pos[2]==1){
			$('nav_top_left').hide();
		}else{
			$('nav_top_left').show();
		}
		if(pos[2]==4){
			$('nav_top_right').hide();
		}else{
			$('nav_top_right').show();
		}
	}
	if(pos[1]==3){ // Basta cambiare il 3, che sta per l'ultima riga
		$('nav_bottom').hide();
		$('nav_bottom_right').hide();
		$('nav_bottom_left').hide();
	}else{
		$('nav_bottom').show();
		if(pos[2]==1){
			$('nav_bottom_left').hide();
		}else{
			$('nav_bottom_left').show();
		}
		if(pos[2]==4){
			$('nav_bottom_right').hide();
		}else{
			$('nav_bottom_right').show();
		}
	}
	if(pos[2]==1){
		$('nav_left').hide();
		$('nav_bottom_left').hide();
		$('nav_top_left').hide();
	}else{
		$('nav_left').show();
	}
	if(pos[2]==4){
		$('nav_right').hide();
		$('nav_bottom_right').hide();
		$('nav_top_right').hide();
	}else{
		$('nav_right').show();
	}
}//showNav

function getPageToNav(elt){
	page_to='';
	pos=page_in.split('_');
	switch(elt.up('div').className.split(' ')[0]){
		case 'nav_top': page_to='p_'+(Number(pos[1])-1)+'_'+pos[2];
		break;
		case 'nav_top_right': page_to='p_'+(Number(pos[1])-1)+'_'+(Number(pos[2])+1);
		break;
		case 'nav_right': page_to='p_'+pos[1]+'_'+(Number(pos[2])+1);
		break;
		case 'nav_bottom_right': page_to='p_'+(Number(pos[1])+1)+'_'+(Number(pos[2])+1);
		break;
		case 'nav_bottom': page_to='p_'+(Number(pos[1])+1)+'_'+pos[2];
		break;
		case 'nav_bottom_left': page_to='p_'+(Number(pos[1])+1)+'_'+(Number(pos[2])-1);
		break;
		case 'nav_left': page_to='p_'+pos[1]+'_'+(Number(pos[2])-1);
		break;
		case 'nav_top_left': page_to='p_'+(Number(pos[1])-1)+'_'+(Number(pos[2])-1);
		break;
	}
	return page_to;
}//getPageToNav

function getPageToKeyboard(code){
	page_to='';
	//alert(popupOpen);
	if(!popupOpen){
		pos=page_in.split('_');
		switch(code){
			case Event.KEY_UP: page_to='p_'+(Number(pos[1])-1)+'_'+pos[2];
			break;
			case Event.KEY_RIGHT: page_to='p_'+pos[1]+'_'+(Number(pos[2])+1);
			break;
			case Event.KEY_DOWN: page_to='p_'+(Number(pos[1])+1)+'_'+pos[2];
			break;
			case Event.KEY_LEFT: page_to='p_'+pos[1]+'_'+(Number(pos[2])-1);
			break;
		}
	}
	return page_to;
}//getPageToKeyboard

function goTo(e){
	Event.stop(e);
	if(!scrolling){
		scrolling=true;
		if(e.keyCode){
			page_to=getPageToKeyboard(e.keyCode);
		}else{
			elt=Event.element(e);
			if(!elt.match('a') && !elt.match('area')){elt=elt.up('a');}
			if(elt){
				if(elt.hasClassName('freccia')){
					page_to=getPageToNav(elt);
				}else{
					page_to=elt.className.split(' ')[0].replace('a', 'p');
				}
			}else{
				scrolling=false;
				return;
			}
		}
		if($(page_to) && page_to!=page_in){
			if(songPlaying){
				MPSound.stop(songPlaying);
				songPlaying='';
			}
			// $$('#info_position div.in').each(function(n){
			// 		n.removeClassName('in');
			// });
			$$('#menu_voci a.in, .sottomenu a.in').each(function(n){
				n.removeClassName('in');
				ni=n.down('img');
				ni.addClassName('img_rollover');
				ni.src=ni.src.replace('_on', '');
				cerca_rollover_on_specific_object('menu_int');
			});
			$$('.sottomenu').invoke('hide');
			$(page_in).down('.mask').show();
			new Effect.Opacity($(page_in).down('.mask'), { 
				from: 0, 
				to: fadeMask, 
				duration: 0.5,
				afterFinish: function(){
					page_in=page_to;
					pos=findNewAllPosition();
					if(page_in.substr(2,1)!=6 && $('footer').visible()){
						$('footer').hide();
					}
					new Effect.Move('all', {
						x: pos[0],
						y: pos[1],
						mode: 'absolute',
						afterFinish: function(){
							if($(page_in).down('.page_content').empty()){
								getContent(page_in.replace('p_', ''), false);
							}
							showNav();
							if(page_in.substr(2,1)==6 && !$('footer').visible()){
								$('footer').show();
							}
							new Effect.Opacity($(page_in).down('.mask'), { 
								from: fadeMask, 
								to: 0, 
								duration: 0.5,
								afterFinish: function(){
									$(page_in).down('.mask').hide();
									//$(page_in.replace('p', 'i')).addClassName('in');
									$$('#menu_voci a[class~='+page_in.replace('p', 'a')+'], .sottomenu a[class~='+page_in.replace('p', 'a')+']').each(function(n){
										n.addClassName('in');
										ni=n.down('img');
										ni.removeClassName('img_rollover');
										if(ni.src.indexOf('_on.')==-1){ni.src=ni.src.replace('.png', '_on.png');}
									});
									scrolling=false;							
								}
							 });
						}
					});
				}
			 });
		}else{
			scrolling=false;
		}
	}
}//goTo

function endSong(song){
	if(songPlaying==song){
		songPlaying='';
	}
}//endSong

function playSong(e){
	Event.stop(e);
	song=Event.element(e).href;
	song='songs'+song.substr(song.lastIndexOf('/'));
	tk=Event.element(e).up('.page').id.replace('p','song');
	if(songPlaying!=tk){
		if(songPlaying){
			MPSound.stop(songPlaying);
			songPlaying='';
		}
		MPSound.play(song, tk, true);
		songPlaying=tk;
		window.setTimeout("endSong('"+song+"')", 40000);
	}else{
		MPSound.stop(tk);
		songPlaying='';
	}
}//playSong

function afterGetContent(name){
	if(supersleight){supersleight.limitTo('p_'+name); supersleight.run();}
	cerca_rollover_on_specific_object('p_'+name);
	if($$('#p_'+name+' .mp3 a').length){
		$$('#p_'+name+' .mp3 a').each(function(n){
			Event.observe(n, 'click', playSong);
		})
	}
}//afterGetContent

function getContent(name, preload){
	if(!pageLoading.find(name)){
		new Ajax.Updater($('p_'+name).down('.page_content'), 'content_'+name+'.php', {
			evalScripts: true,
			onCreate: function(){
				pageLoading.push(name);
			},
		  	onSuccess: function(){
				$('p_'+name).down('.page_spinner').hide();
				$('p_'+name).down('.page_content').show();
			},
		  	onFailure: function(){
				pageLoading=pageLoading.without(name);
			},
		  	onException: function(){
				pageLoading=pageLoading.without(name);
			},
			onComplete: function(requester){
				afterGetContent(name);
				pageLoading=pageLoading.without(name);
				if(preload){ preloadContent(); }
			}
		});
	}else{
		if(preload){ preloadContent(); }
	}
}//getContent

function preloadContent(){
	contenuti=new Array($$('#p_1_2 .page_content')[0], $$('#p_2_1 .page_content')[0], $$('#p_2_2 .page_content')[0]);//prima carico le pagine più visibili
	contenuti=contenuti.concat($$('.page_content:first-child'));
	contenuti=contenuti.uniq();
	try{
		$R(0, contenuti.length-1).each(function(n){
			if(contenuti[n].empty()){
				getContent(contenuti[n].up('.page').id.replace('p_', ''), true);
				throw $break;
			}
		});
	}catch(err){
		//niente
	}
}//preloadContent

function openNews(e){
	Event.stop(e);
	window.open('news.php',"news","height=550, width=565, left=20, top=20, resizable=no, scrollbars=yes, menubar=no, toolbar=no, directories=no, location=no, status=no");
}//openNews

function showPopup(e, name){
	if(e){Event.stop(e);}
	name.overlayShow();
}//showPopup

function hidePopup(e, name){
	if(e){Event.stop(e);}
	name.overlayHide();
}//hidePopup

function sendFormScrivimi(e){
	Event.stop(e);
	var pattern_email=/^[a-zA-Z0-9][_\.a-zA-Z0-9-]+@([a-zA-Z0-9][0-9A-Za-z-]+\.)+([a-zA-Z]{2,4})$/;
	if($F('scrivimi_form_email') && pattern_email.exec($F('scrivimi_form_email')) && $F('scrivimi_form_name') && $F('scrivimi_form_subject') && $F('scrivimi_form_text')){
		var feedback='';
		new Ajax.Request('scrivimi_ajax.php', {
		  method: 'get',
		  parameters: $('scrivimi_form').serialize(),
		  onCreate: function(){
			$('scrivimi_form_feedback').update('<img src="img/page_spinner.gif" />');
		  },
		  onSuccess: function(transport) {
			//alert(transport.responseText);
		    if(transport.responseText=='1' || transport.responseText==1){
				feedback='Il tuo messaggio è stato inviato.<br />Grazie.';
			}else{
				feedback='Si è verificato un errore durante l\'invio dei dati.';
			}
		  },
		  onFailure: function(){
			feedback='Si è verificato un errore durante l\'invio dei dati.';
		  },
		  onException: function(){
			feedback='Si è verificato un errore durante l\'invio dei dati.';
		  },
		  onComplete: function(){
			$('scrivimi_form_feedback').update(feedback);
		  }
		});
	}else{
		$('scrivimi_form_feedback').update('Devi riempire tutti i campi correttamente.');
	}
}//sendFormScrivimi

function showScrivimiPopupCustom(e, name){
	if(e){Event.stop(e);}
	$('scrivimi_form').reset();
	$('scrivimi_form_feedback').update('');
	popupOpen=true;
	name.overlayShow();
}//showDownloadPopupCustom

function hideScrivimiPopupCustom(e, name){
	if(e){Event.stop(e);}
	popupOpen=false;
	name.overlayHide();
}//hideDownloadPopuppCustom

function emptyFieldScrivimiName(e){
	if($F('scrivimi_form_name')=='inserisci qui il tuo nome'){
		$('scrivimi_form_name').value='';
	}
}//emptyFieldScrivimiName

function emptyFieldScrivimiEmail(e){
	if($F('scrivimi_form_email')=='inserisci qui la tua e-mail'){
		$('scrivimi_form_email').value='';
	}
}//emptyFieldScrivimiName

function emptyFieldScrivimiSubject(e){
	if($F('scrivimi_form_subject')=='oggetto della mail'){
		$('scrivimi_form_subject').value='';
	}
}//emptyFieldScrivimiName

function emptyFieldScrivimiText(e){
	if($F('scrivimi_form_text')=='inserisci qui il tuo messaggio'){
		$('scrivimi_form_text').value='';
	}
}//emptyFieldScrivimiName

function inizio(){
	preloadImage();
	if(supersleight){supersleight.init();}
	cerca_rollover();
	setViewport();
	Event.observe(window, 'resize', setViewport);
	$$('.goTo').each(function(elt){
		Event.observe(elt, 'click', goTo);
	});
	$$('a.goTo').each(function(elt){
		Event.observe(elt, 'click', goTo);
	});
	preloadContent();
	if($$('a.freccia').length){
		$$('a.freccia').each(function(n){
			Event.observe(n, 'click', goTo);
		});
	}
	Event.observe(document, 'keyup', goTo);
	if($$('.a_news').length){
		$$('.a_news').each(function(n){
			Event.observe(n, 'click', openNews);
		});
	}
	if($('scrivimi_popup')){
		dialog1 = $('scrivimi_popup');
		overlay1 = new DialogOverlay(dialog1);
		$$('.a_scrivimi').each(function(n){
			Event.observe(n, 'click', showScrivimiPopupCustom.bindAsEventListener(this, overlay1));
		});
		Event.observe($$('#scrivimi_popup .chiudi')[0], 'click', hideScrivimiPopupCustom.bindAsEventListener(this, overlay1));
		Event.observe($('scrivimi_form'), 'submit', sendFormScrivimi);
		Event.observe($('scrivimi_form_name'), 'click', emptyFieldScrivimiName);
		Event.observe($('scrivimi_form_name'), 'focus', emptyFieldScrivimiName);
		Event.observe($('scrivimi_form_email'), 'click', emptyFieldScrivimiEmail);
		Event.observe($('scrivimi_form_email'), 'focus', emptyFieldScrivimiEmail);
		Event.observe($('scrivimi_form_subject'), 'click', emptyFieldScrivimiSubject);
		Event.observe($('scrivimi_form_subject'), 'focus', emptyFieldScrivimiSubject);
		Event.observe($('scrivimi_form_text'), 'click', emptyFieldScrivimiText);
		Event.observe($('scrivimi_form_text'), 'focus', emptyFieldScrivimiText);
	}
}//inizio

Event.observe(window, 'load', inizio);

