/**
 * class	Y_Slider
 * author	Paul Kruijt
 */
var Y_Slider = new Class({
	
	/**
	 * initialize
	 * @return boolean	slider_state
	 * @return void
	 */
	initialize: function(slider_state)
	{
		// nodes
		this.body_node					= document.getElement('body');
		this.page_filter_node			= $('page_filter');
		this.stroke_collection_node		= $('stroke_collection');
		this.stroke_news_node			= $('stroke_news');
		this.content_collection_node	= $('content_collection');
		this.content_news_node			= $('content_news');
		
		// classes
		this.hide_class		= 'hide';
		this.show_class		= 'show';
		this.hidden_class	= 'hidden';
		this.visible_class	= 'visible';
		
		// settings
		this.slider_state		= !slider_state ? 0 : 1;
		this.slider_duration	= 400;
	},
	
	/**
	 * start
	 * @return void
	 */
	start: function()
	{
		if (this.page_filter_node && this.stroke_collection_node && this.stroke_news_node && this.content_collection_node && this.content_news_node)
		{
			// settings
			this.content_collection_pos_left_start = this.content_collection_node.getStyle('left').toInt();
			
			// set state
			if (this.slider_state == 1)
			{
				var content_collection_text_node		= this.content_collection_node.getElement('.text');
				var stroke_collection_width				= this.stroke_collection_node.getStyle('width').toInt();
				var content_collection_width			= this.content_collection_node.getStyle('width').toInt();
				var content_collection_pos_left_start	= (this.content_collection_pos_left_start - (content_collection_width - stroke_collection_width)).toInt()
				
				this.stroke_collection_node.setStyle('left', content_collection_pos_left_start+'px');
				this.content_collection_node.setStyle('left', content_collection_pos_left_start+'px');
				
				if (content_collection_text_node) content_collection_text_node.setStyle('visibility', 'visible');
			}
			
			// set events
			this.setEvents();
		}
	},
	
	/**
	 * set events
	 * @return void
	 */
	setEvents: function()
	{
		// set object as var
		var _this					= this;
		var header_collection_node	= this.content_collection_node.getElement('h1');
		var header_news_node		= this.content_news_node.getElement('h1');
		
		if (header_collection_node)
		{
			header_collection_node.onclick = function()
			{
				// slide collection
				_this.slideCollection();
			}
		}	
	},
	
	/**
	 * slide collection in or out
	 * @return void
	 */
	slideCollection: function()
	{
		// set object as var
		var _this	= this;
		
		// get coordinates of menu (parts)
		var stroke_collection_width			= this.stroke_collection_node.getStyle('width').toInt();
		var content_collection_width		= this.content_collection_node.getStyle('width').toInt();
		var content_collection_left_start	= this.content_collection_node.getStyle('left').toInt();
		var content_collection_left_end		= content_collection_left_start < this.content_collection_pos_left_start ? this.content_collection_pos_left_start : (content_collection_left_start - (content_collection_width - stroke_collection_width)).toInt();
		var content_collection_text_node	= this.content_collection_node.getElement('.text');
		
		// display text
		var display_text	= content_collection_left_start < this.content_collection_pos_left_start ? 'hidden' : 'visible';
		
		if (content_collection_text_node && content_collection_left_start < this.content_collection_pos_left_start)
		{
			content_collection_text_node.setStyle('visibility', display_text);
		}
		
		// show page filter
		this.page_filter_node.className = this.show_class;
		
		// start effects
		var content_collection_effect = new Fx.Morph(this.content_collection_node, {duration: this.slider_duration, transition: Fx.Transitions.Quad.easeOut});
 		
		content_collection_effect.start({
			'left': [content_collection_left_start, content_collection_left_end]
		}).chain(function()
		{
			// hide page filter
			_this.page_filter_node.className = _this.hide_class;
			
			if (content_collection_text_node)
			{
				content_collection_text_node.setStyle('visibility', display_text);
			}
		});
		
		var stroke_collection_effect = new Fx.Morph(this.stroke_collection_node, {duration: this.slider_duration, transition: Fx.Transitions.Quad.easeOut});
 		
		stroke_collection_effect.start({
			'left': [content_collection_left_start, content_collection_left_end]
		});
	}
	
});