﻿var AjaxCssButton = new Class(
{
	initialize : function()
	{
		this.activeItems = { };
	},

	onMouseEnter : function()
	{
		if (ajaxCssButton.isActivated(this))
		{
			return;
		}

		if (this.hoverCss != "")
		{
			this.setProperty("class", this.hoverCss);
		}
	},

	onMouseLeave : function()
	{
		if (ajaxCssButton.isActivated(this))
		{
			return;
		}

		if (this.normalCss != "")
		{
			this.setProperty("class", this.normalCss);
		}
	},

	isActivated : function(cssButton)
	{
		if (cssButton.section == "")
		{
			return false;
		}

		return ajaxCssButton.activeItems[cssButton.section] == cssButton;
	},

	activate : function(cssButton)
	{
		if (ajaxCssButton.isActivated(this))
		{
			return;
		}

		var currentItem = ajaxCssButton.activeItems[cssButton.section];

		if (currentItem != null)
		{
			currentItem.setProperty("class", currentItem.normalCss);
		}

		if (cssButton.activeCss != "")
		{
			cssButton.setProperty("class", cssButton.activeCss);
		}

		ajaxCssButton.activeItems[cssButton.section] = cssButton;
	},

	onClick : function()
	{
		if (this.section != "")
		{
			ajaxCssButton.activate(this);
		}
	},

	initControl : function(dialogID, controlID, normalCss, hoverCss, activeCss, section)
	{
		var control = ui.getNestedControl(dialogID, controlID);

		if (control == null)
		{
			return;
		}

		control["normalCss"] = normalCss;
		control["hoverCss"] = hoverCss;
		control["activeCss"] = activeCss;
		control["section"] = section;

		control.addEvent('mouseenter', ajaxCssButton.onMouseEnter);
		control.addEvent('mouseleave', ajaxCssButton.onMouseLeave);
		control.addEvent('click', ajaxCssButton.onClick);
	}
});

var ajaxCssButton = new AjaxCssButton();