var InterfaceManager = Class.create({

	// metoda przypisująca uruchamianie określonych metod w reakcji na akcje użytkownika w obrębie interfejsu nawigacyjnego strony
	initialize: function() {
		$('boxNavig').childElements().each(
			function(item) 
			{
				Event.observe(item, 'mouseover', this.onOver.bindAsEventListener(this));
				Event.observe(item, 'mouseout', this.onOut.bindAsEventListener(this));
				Event.observe(item, 'click', this.onClick.bindAsEventListener(this));
			}.bind(this)
		);
	},
	
	setRecBodyState: function(bodyElemID){
		var bodyElem = $('body_'+bodyElemID);
		var morelessElem = $('moreless_'+bodyElemID);
		
		if (bodyElem.getStyle('display') != 'none')
		{
			morelessElem.update('Show more <img src="images/more.gif" border="0"/>');
			//Effect.BlindUp(bodyElem);
			bodyElem.hide();
		}
		else
		{
			morelessElem.update('Show less <img src="images/less.gif" border="0"/>');
			//Effect.BlindDown(bodyElem);
			bodyElem.show();
		}
	},
	
	setInterfaceState: function(navigateID, contentID) {
		interfaceState = navigateID;

		$('boxContent').childElements().each(
			function(element)
			{
				if($(element).readAttribute('id') != contentID)
				{
					$(element).style.display="none";
					$(element).style.visibility="hidden";
				}
				else
				{
					$(element).style.display="block";
					$(element).style.visibility="visible";
				}
			}
		);
	},
	
	// metoda obsługująca Event 'OnMouseOver' na danym elemencie, związana z obsługą nawigacji
	onOver: function(event) {
		navigateID = Event.element(event).id;

		if(navigateID != interfaceState)
			Event.element(event).style.backgroundPosition = '-14px -70px';
	},
	
	// metoda obsługująca Event 'OnMouseOut' na danym elemencie, związana z obsługą nawigacji
	onOut: function(event) {
		navigateID = Event.element(event).id;
		
		if(navigateID != interfaceState)
			Event.element(event).style.backgroundPosition = '-14px -14px';
	},
	
	// metoda obsługująca Event 'OnMouseClick' na danym elemencie, związana z obsługą nawigacji, ustawia wartości navigateID danego elementu
	onClick: function(event, navigateID, contentID, startPage, maxOnPage, orderBy) {
		if (event == 'reload')
		{
			var navigateID = cm.sessionNavigateID;
			var contentID = cm.sessionContentID;
			var startPage = cm.sessionStartPage;
			var maxOnPage = cm.sessionMaxOnPage;
			var orderBy = cm.sessionOrderBy;
		}
		else if (event != null)
		{
			var elem = Event.element(event)
		
			var navigateID = elem.id;
			var contentID  = elem.readAttribute('contentID');
			var startPage  = elem.readAttribute('startPage');
			var maxOnPage  = elem.readAttribute('maxOnPage');
			var orderBy    = elem.readAttribute('orderBy');
			
			if (startPage=='') 
				var startPage = 0; 
			if (maxOnPage=='') 
				var maxOnPage = 5;
		}
		else
		{
			var navigateID = sm.sessionNavigateID;
			var contentID = sm.sessionContentID;
			var startPage = sm.sessionStartPage;
			var maxOnPage = sm.sessionMaxOnPage;
			var orderBy = sm.sessionOrderBy;
						
			if (startPage=='')
				var startPage = 0;
			if (maxOnPage!='') 
				var maxOnPage = 5;
		}
			
		//alert('click!');
	//	alert(navigateID);
		
		cm.setContentContainer(navigateID, contentID, startPage, maxOnPage, orderBy);
		im.setInterfaceState(navigateID, contentID);
		
		$(navigateID).style.backgroundPosition = '-14px -126px';

		$('boxNavig').childElements().each(
			function(element) 
			{
				if(element.id != interfaceState)
					$(element).style.backgroundPosition = '-14px -14px';
			}
		);
	}
});