//= require <mootools-core-1.3-full-nocompat>
//= require <puremvc-mootools-port>
//= require <findsalons/ApplicationFacade>
//= require <findsalons/AsyncProxy>
var BreadcrumbsMediator = function()
{
	this.Extends = Mediator;
	this.breadcrumbs = null;

	this.initialize = function(viewComponent /* TabBar */)
	{
		this.parent(BreadcrumbsMediator.NAME, viewComponent);
		this.breadcrumbs = this.getViewComponent();
	};

	this.listNotificationInterests = function()
	{
		return [ AsyncProxy.CONTENT_RECEIVED, ApplicationFacade.RETRIEVE_CURRENT_HASH ];
	};

	this.onRegister = function()
	{
		this.breadcrumbs.addEventListener("tabChanged", this.breadcrumbs_tabChangedHandler, false, 0, this);
		this.breadcrumbs.addEventListener("dataChanged", this.breadcrumbs_dataChangedHandler, false, 0, this);
		this.breadcrumbs_dataChangedHandler(
		{
			data : this.breadcrumbs.dataProvider()
		});
	};

	this.handleNotification = function(notification)
	{
		switch (notification.getName())
		{
			case AsyncProxy.CONTENT_RECEIVED:
				this.breadcrumbs.setCrumbsByJSON(notification.getBody());
				break;
		}
	};

	// ////////////////////////////////////////////////////
	// Event Handlers
	this.breadcrumbs_tabChangedHandler = function(event)
	{
		var data = event.data;
		this.sendNotification(ApplicationFacade.SET_HASH, "category=" + data.category_id);
	};

	this.breadcrumbs_dataChangedHandler = function(event)
	{
		this.sendNotification(ApplicationFacade.BREADCRUMB_DATA_CHANGED, event.data);
	};
};
BreadcrumbsMediator = new Class(new BreadcrumbsMediator());
BreadcrumbsMediator.NAME = "BreadcrumbsMediator";
