// Create namespace
var Magilia_Pages = {};

// Newsticker Class
Magilia_Pages.ticker = Class.create();
Magilia_Pages.ticker.prototype = {
	initialize: function()
	{
		// Get elements
		this.interval = 5000;
		this.container = $("home-slideshow");
		if(!this.container)
			return;
		
		this.messages  = $$(".ticker-item");
		this.number_of_messages = this.messages.length;
		if (this.number_of_messages == 0)
			return;
		
		// Associo l'evento onclick ai fast_slideshow_buttons
		for(i=0; i<this.number_of_messages; i++) {
			$('fast_slideshow_button_'+i).observe('click', this.fastSlide.bind(this));
		}
		
		this.current_message = 0;
		this.previous_message = null;
		this.hideMessages();
		this.showMessage();
		// Install timer
		this.timer = setInterval(this.showMessage.bind(this), this.interval);
  	},
	showMessage: function()
	{  		
		Effect.Appear(this.messages[this.current_message], {duration: 0.6});
		$('fast_slideshow_button_' + this.current_message).addClassName('active');
		this.timer2 = setTimeout(this.fadeMessage.bind(this), this.interval-1000);
		if (this.current_message < this.number_of_messages-1)
		{
			this.previous_message = this.current_message;
			this.current_message = this.current_message + 1;
		} else {
			this.current_message = 0;
			this.previous_message = this.number_of_messages - 1;
		}
	},
	showMessage2: function()
	{  		
		Effect.Appear(this.messages[this.current_message], {duration: 0.6});
		$('fast_slideshow_button_' + this.current_message).addClassName('active');		
		if (this.current_message < this.number_of_messages-1)
		{
			this.previous_message = this.current_message;
			this.current_message = this.current_message + 1;
		} else {
			this.current_message = 0;
			this.previous_message = this.number_of_messages - 1;
		}
	},
	fadeMessage: function()
	{
		Effect.Fade(this.messages[this.previous_message], {duration: 0.6});
		$('fast_slideshow_button_' + this.previous_message).removeClassName('active');
	},
	hideMessages: function()
	{
		this.messages.each(function(message, index)
		{			
			Element.hide(message);
		})
	},
	toggle: function()
	{
		Effect.BlindUp(this.container, 1000);
	},
	fastSlide: function(event){
		clearInterval(this.timer);
		clearInterval(this.timer2);
		
		this.fadeMessage();
		Event.stop(event);		
		
		var element = Event.element(event);
		var id = element.getAttribute('id');
		var pageId = id.substring(id.lastIndexOf('_') + 1);
										
		this.current_message = parseInt(pageId);		
		this.showMessage2();
	}
}

Magilia_Pages.initialize = function()
{	
	if($("home-slideshow"))
		new Magilia_Pages.ticker();
		
	// Installazione gestore della accessibility bar
	if($('accessibility-bar'))
	{
		Event.observe('accessibility_print', 'click', Magilia_Pages.print);
		Event.observe('accessibility_sendto_friend', 'click', Magilia_Pages.mailpage);
		Event.observe('accessibility_smaller_text', 'click', Magilia_Pages.smallerText);
		Event.observe('accessibility_bigger_text', 'click', Magilia_Pages.biggerText);
		Event.observe('accessibility_facebook', 'click', Magilia_Pages.shareOnFacebook);
	}
	
	if((pictureElement = $('header-picture')) && ((pageHeaderElement = $('page-header-image')) && (pageHeaderElement.src != document.location.href)))
	{		
		pictureElement.src = pageHeaderElement.src;
	}	
}

Magilia_Pages.print = function(event)
{
	// Fermo la propagazione dell'evento
	Event.stop(event);
	
	self.print();
	
	return false;
}

Magilia_Pages.shareOnFacebook = function(event)
{
	// Fermo la propagazione dell'evento
	Event.stop(event);
	
	var newWindow = window.open('http://www.facebook.com/sharer.php?u=' + document.URL,'Share on facebook');
	newWindow.focus();   
	
	return false;
}

Magilia_Pages.mailpage = function(event)
{
	// Fermo la propagazione dell'evento
	Event.stop(event);
	
	mail_str = "mailto:?subject=" + document.title;
	mail_str += "&body=" + document.title;
	mail_str += ". Link: " + location.href;
	location.href = mail_str;
}

Magilia_Pages.smallerText = function(event)
{	
	// Fermo la propagazione dell'evento
	Event.stop(event);
	
	$$('.resizable-text').each(
	function(s, index)
	{	
		var size = s.getStyle('font-size').split('px');		
		size = parseInt(size[0]) - 2;
		
		if(size >= 10){
			s.setStyle({
  				fontSize: size + "px"
  			});
		}
	});
	
	return false;
}

Magilia_Pages.biggerText = function(event)
{
	// Fermo la propagazione dell'evento
	Event.stop(event);
	
	$$('.resizable-text').each(
	function(s)
	{	
		var size = s.getStyle('font-size').split('px');		
		size = parseInt(size[0]) + 2;
		
		if(size < 26){			
			s.setStyle({
  				fontSize: size + "px"
  			});
		}
	});
	
	return false;
}

Event.observe(document, 'dom:loaded', Magilia_Pages.initialize);