﻿var DashboardFilter = {
	moreFiltersText: 'More Filters',
	lessFiltersText: 'Less Filters',
	controls: {
		hiddenSwitch: null,
		moreFiltersPanel: null,
		moreFiltersButton: null
	},
	isAnimationProcess: false,
	init: function(hiddenSwitchId, moreFiltersPanelId, moreFiltersButtonId, moreFiltersText, lessFiltersText) {
		DashboardFilter.moreFiltersText = moreFiltersText;
		DashboardFilter.lessFiltersText = lessFiltersText;
		DashboardFilter.controls.hiddenSwitch = $(hiddenSwitchId);
		DashboardFilter.controls.moreFiltersPanel = $(moreFiltersPanelId);
		DashboardFilter.controls.moreFiltersButton = $(moreFiltersButtonId);


		if (DashboardFilter.controls.hiddenSwitch.value == "") {
			DashboardFilter.controls.moreFiltersButton.innerHTML = DashboardFilter.moreFiltersText;
			DashboardFilter.controls.moreFiltersPanel.hide();
		} else {
			DashboardFilter.controls.moreFiltersButton.innerHTML = DashboardFilter.lessFiltersText;
			DashboardFilter.controls.moreFiltersPanel.show();
		}
	},
	switchDisplay: function() {
	if (DashboardFilter.isAnimationProcess)
			return;

		DashboardFilter.isAnimationProcess = true;
		
		if (DashboardFilter.controls.hiddenSwitch.value == "") {
			DashboardFilter.controls.hiddenSwitch.value = "display";
			DashboardFilter.controls.moreFiltersButton.up().up().addClassName("selected");
			DashboardFilter.controls.moreFiltersButton.innerHTML = DashboardFilter.lessFiltersText;
			DashboardFilter.show();
		} else {
			DashboardFilter.controls.hiddenSwitch.value = "";
			DashboardFilter.controls.moreFiltersButton.up().up().removeClassName("selected");
			DashboardFilter.controls.moreFiltersButton.innerHTML = DashboardFilter.moreFiltersText;
			DashboardFilter.hide();
		}
	},
	show: function() {
		if (DashboardFilter.controls.moreFiltersPanel.style.display == 'none') {
			Effect.BlindDown(DashboardFilter.controls.moreFiltersPanel, { afterFinish: function() { DashboardFilter.isAnimationProcess = false; } });
		}
	},
	hide: function() {
		if (DashboardFilter.controls.moreFiltersPanel.style.display != 'none') {
			Effect.BlindUp(DashboardFilter.controls.moreFiltersPanel, { afterFinish: function() { DashboardFilter.isAnimationProcess = false; } });
		}
	}
}