﻿
var LeftTrigger = new Class({
	initialize: function(triggerLeft, parent) {	
		this.Element	= triggerLeft;		
		this.Parent		= parent;		
		this.Content	= triggerLeft.getNext();		
		this.Container	= new Element('div');
		this.Effect		= new Fx.Styles(this.Container, {duration:320, transition:Fx.Transitions.circOut});
		this.IsOpen		= true;
				
		
		this.Content.replaceWith(this.Container).appendChild(this.Content);
		this.MaxHeight	= this.Content.getSize().scrollSize.y;
		
		if(this.MaxHeight > 201)
		{
		    this.MaxHeight	= '250';
			this.Container.setStyles({
			'overflow-x':			'auto',
			'overflow-y':			'scroll',
			'padding-bottom':	'1px',			
			'width':			'100px'
			});			
		}
		else
		{
			this.Container.setStyles({
			'overflow-x':			'hidden',
			'overflow-y':			'hidden',
			'padding-bottom':	'1px',			
			'width':			'100px'
			});
		}		
		
		this.Element.addEvent('click', this.Toggle.bind(this, [false]));
		this.Element.setStyle('cursor', 'pointer');
	},
			
	Close: function(quick) {
		this.IsOpen = false;
		this.Effect.stop();
		if(this.Element.hasClass('ExpandedGreyHeadingT'))
		{
			this.Element.removeClass('ExpandedGreyHeadingT');
			this.Element.addClass('CollapsedGreyHeadingT');
		}
		else
		{
			this.Element.addClass('CollapsedFilter');
			this.Element.removeClass('ExpandedFilter');
		}
		
		
		if (quick) {
			this.Effect.set({
				height:		[0],
				opacity:	[0]
			});
		}
		else {
			this.Effect.start({
				height:		[0],
				opacity:	[0]
			});
		}
	},
	
	Open: function(quick) {
		this.IsOpen = true;
		this.Effect.stop();
//		if(this.Element.hasClass('CollapsedGreyHeadingT'))
//		{
//			this.Element.removeClass('CollapsedGreyHeadingT');
//			this.Element.addClass('ExpandedGreyHeadingT');
//		}
//		else
//		{
//			this.Element.removeClass('CollapsedFilter');
//			this.Element.addClass('ExpandedFilter');
//		}

        if(this.Element.hasClass('CollapsedFilter'))		
		{
			this.Element.removeClass('CollapsedFilter');
			this.Element.addClass('ExpandedFilter');
		}
		
		if (quick) {
			this.Effect.set({
				height:		[this.MaxHeight],
				opacity:	[1]
			});
		}
		else {
			this.Effect.start({
				height:		[this.MaxHeight],
				opacity:	[1]
			});
		}
		
		this.Parent.CloseAll(false, this);
	},
	
	Toggle: function(quick) {
		if (this.IsOpen)
			this.Close(quick);
		else
			this.Open(quick);
	}
});

var LeftFilter = new Class({
	initialize: function(triggersT) {
		this.TriggersFilter = new Array();		
		$each(triggersT, function(triggerLeft) { this.AddTrigger($(triggerLeft)); }, this);		
		this.CloseAll(true);
		//this.TriggersFilter[0].Open(false);
	},
	
	AddTrigger: function(triggerLeft) {
		this.TriggersFilter[this.TriggersFilter.length] = new LeftTrigger(triggerLeft, this);
	},
	
	CloseAll: function(quick, exception) {
		$each(
			this.TriggersFilter,
			function(triggerLeft) {
				if (triggerLeft !== exception)
					triggerLeft.Close(quick);
			}
		);
	}
});

