Effect.DefaultOptions.duration = 0.2;
var SliderMessagesBox = Class.create();

SliderMessagesBox.prototype = {
	initialize : function(messagesHolderId) {
		this.messagesHolderId = messagesHolderId;
		
		var makeActiveFunction = this.makeActive
		var makeInactiveFunction = this.makeInactive
		var switchBlockContent = this.switchBlockContent
		var tthis = this;				
		$$('#' + messagesHolderId + ' .sliderHedaer', '#' + messagesHolderId + ' .sliderFooter').each(function(e) {
			Event.observe(e, 'mouseover', makeActiveFunction.bindAsEventListener(tthis));
			Event.observe(e, 'mouseout', makeInactiveFunction.bindAsEventListener(tthis));
			Event.observe(e, 'mousedown', switchBlockContent.bindAsEventListener(tthis));
		});
                $$('#' + messagesHolderId + ' .static .anonsContent').each(function(e) {
                    e.show();                    
                });
                
                $$('#' + messagesHolderId + ' .static .sliderHedaer').each(function(e) {
                    SliderMessagesBox.makeActive(e);
                });
	},
		
	makeActive: function(ev)
	{	
	  	var el = Event.element(ev);
	  	SliderMessagesBox.makeActive(el);		
	},
	
	makeInactive: function(ev) 
	{
                var el = Event.element(ev);
                SliderMessagesBox.makeInactive(el);
	},
	
	switchBlockContent: function(ev)
	{
	    var el = Event.element(ev);
            var box = SliderMessagesBox.findSliderBoxElement(el);
            var content = SliderMessagesBox.getContentElelment(box);

            if (!content) return;
            if (SliderMessagesBox.isStaticBox(box)) return;
            
            if (content.visible())
            {
                    Effect.BlindUp(content, {afterFinish: function(e){
                            SliderMessagesBox.makeInactive(e.element);
                    }});
            }
            else
            {
                    this.closeOpenedBoxes();
                    Effect.BlindDown(content, {afterFinish: function(e) {
                                    SliderMessagesBox.makeActive(e.element);
                            }});
            }
	},
	
	closeOpenedBoxes: function()
	{
		$$('#' + this.messagesHolderId + ' div.anonsContent').each(function(e) {
			if (e.visible() && !SliderMessagesBox.isStaticBox(e)) {
				Effect.BlindUp(e, {
                                    afterFinish: function(e) {
					SliderMessagesBox.makeInactive(e.element);
                                    }
                                });
				SliderMessagesBox.makeInactive(e);								
			}
		});		
	}
};

SliderMessagesBox.isStaticBox = function(el) {
    return SliderMessagesBox.findSliderBoxElement(el).hasClassName('static');
}

SliderMessagesBox.getContentElelment = function(box)
{	
	var elems = box.getElementsByClassName('anonsContent');
	if (elems.length == 0) return;
	return elems[0];			
}

SliderMessagesBox.getSliderBoxHeader = function(el)
{
	var result;		
	el.immediateDescendants().each(function(elem) {			
		if (elem.hasClassName('sliderHedaer') || elem.hasClassName('sliderHedaerActive')) result = elem;
	});
	
	return result;		
}

SliderMessagesBox.getSliderBoxFooter = function (el) 
{
	var result;
	el.immediateDescendants().each(function(elem) {	
		if (elem.hasClassName('sliderFooter') || elem.hasClassName('sliderFooterActive')) result = elem;
	});
	return result;		
}

SliderMessagesBox.findSliderBoxElement = function(el)
{
	var condition = function(el) 
	{
	    return $(el).hasClassName('sliderBox');
	}
	
	return FdJsHelper.findParentElement(el, condition);
}

SliderMessagesBox.makeActive = function(el)
{
	var box = SliderMessagesBox.findSliderBoxElement(el);	
	var header = SliderMessagesBox.getSliderBoxHeader(box);
	var footer = SliderMessagesBox.getSliderBoxFooter(box);
	SliderMessagesBox.updateSwitcher(box)
	
	header.removeClassName('sliderHedaer');
	header.addClassName('sliderHedaerActive');		
	footer.removeClassName('sliderFooter');
	footer.addClassName('sliderFooterActive');	
}
	
SliderMessagesBox.makeInactive = function(el)
{
	var box = SliderMessagesBox.findSliderBoxElement(el);
	var header = SliderMessagesBox.getSliderBoxHeader(box);
	var footer = SliderMessagesBox.getSliderBoxFooter(box);
	var content = SliderMessagesBox.getContentElelment(box);
	SliderMessagesBox.updateSwitcher(box);
	if(content && content.visible()) return;
		
	header.removeClassName('sliderHedaerActive');
	header.addClassName('sliderHedaer');
	footer.removeClassName('sliderFooterActive');
	footer.addClassName('sliderFooter');
}

SliderMessagesBox.updateSwitcher = function(box)
{	
	var content = SliderMessagesBox.getContentElelment(box);
	var switcher;
	box.descendants().each(function(elem) {			
		if (elem.hasClassName('switcherExpanded') || elem.hasClassName('switcherCollapsed')) switcher = elem;
	});
	if (!switcher) return;
		
	switcher.removeClassName('switcherExpanded', 'switcherCollapsed');
	if (content.visible()) 
	{
		switcher.addClassName('switcherExpanded');
	}
	else
	{
		switcher.addClassName('switcherCollapsed');
	}
}