
/**
	f-cja dopisująca f-cje obsługujące do podanych obiektów 
	wywoływana przez f-cje load() w plik main.js
*/
function eventsLoad()
{
	addEventsByClassName('menuElem', 'click', menuRoll);
	addEventById('sectionLogform', 'click', showLoginForm);
}

/////////////////////////////////////////////

/**
	obsługa rozwijanych list katalogu
*/
function menuRoll()
{
	elements = this.parentNode.getElementsByTagName('div');
		
	for (i in elements) {
		if (elements[i].className == 'menuSubList') {
			if (elements[i].style.display == 'block') {
				elements[i].style.display = 'none';
				this.style.backgroundImage = "url('./graphics/menuWhiteDot.png')";
			} else {
				elements[i].style.display = 'block';
				this.style.backgroundImage = "url('./graphics/menuBlueDot.png')";
			}
			
			break;
		}
	}
	
	setColumnsSize();
}


/**
	pokazywanie formularza logowania
*/
function showLoginForm()
{
	logForm = document.getElementById('logform');
	sectionImage = document.getElementById('sectionLogformImage');
	
	if (logForm.style.display == 'block') {
		logForm.style.display = 'none';
		sectionImage.style.marginTop = '0';
	} else {
		logForm.style.display = 'block';
		sectionImage.style.marginTop = '-30px';
	}
	
	setColumnsSize();
}

/////////////////////////////////////////////

function addEventsByClassName (className, type, fn)
{
	elements = document.getElementsByTagName('*');
	
	for (i in elements) {
		if (elements[i].className == className)
			addEvent (elements[i], type, fn);
	}
}

/** 
	dopisuje zdarzenie do elementu o podanym ID
	
	id - napis będący parametrem ID elementu
	type - typ zdarzenia, do którego dopisujemy obsługę. bez on (np. click zamiast onclick)
	fn - nazwa f-cji, którą przypisujemy do obsługi danego zdarzenia
*/
function addEventById (id, type, fn) 
{
	addEvent ( document.getElementById(id), type, fn );
}

/** 
	usunięcie podanego zdarzenia od elementu o podanym ID
	
	id - napis będący parametrem ID elementu
	type - typ zdarzenia, od którego uwuwamy obsługę. bez on (np. click zamiast onclick)
	fn - nazwa f-cji, którą usuwamy z obsługi danego zdarzenia
*/
function removeEventById (id, type, fn) 
{
	removeEvent ( document.getElementById(id), type, fn );
}

function addEvent( obj, type, fn ) 
{	
	if (obj.addEventListener) {
		obj.addEventListener(type, fn, false);
	} else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() {obj["e"+type+fn](window.event); }
		obj.attachEvent("on"+type, obj[type+fn]);
	}
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent) {
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}