Event.observe(window, 'load', init);
Event.observe(window, 'unload', Event.unloadCache);

	if (typeof(SlideShowList) != 'undefined' ) 
		slideshowlist = SlideShowList.create();
function init()
{
	// get css class of body, excluding isJs
	var bodyClasses = document.body.classNames().reject(function(i) { return i=="isJs"});;
	// use the first one to recognize page (convention)
	currentPage = bodyClasses[0];
	debug(currentPage);

	projectLoader = new ProjectLoader();
	projectFilter = new ProjectFilter();
	mouseoverLoader = new MouseoverLoader();
	registerBodyEvents();
}

function unregisterBodyEvents()
{
	projectLoader.unregisterLinks();
	projectFilter.unregisterLinks();
	mouseoverLoader.unregister();
//	categoryLoader.unregisterLinks();
}

function registerBodyEvents()
{
	projectLoader.registerLinks();
	projectFilter.registerLinks();
	mouseoverLoader.register();
//	categoryLoader.registerLinks();
}

/**
 * adds isJs CSS clas to body
 */
function checkJs() 
{
	Element.extend(document.body);
	document.body.addClassName('isJs');
}

function debug(message)
{
	if (typeof console != "undefined")
		console.log(message);
}
function error(message)
{
	if (typeof console != "undefined")
		console.error(message);
}
function ajax_error(message)
{
	error("Meister Glanz: "+message);
}

var DefaultCallback = { onFailure: function() { ajax_error("Transportfehler") } };

function sendRequest2(url,callback,params)
{
	var parameters = { };
	var parameters = Object.extend(parameters, params);
	var tmp = DefaultCallback;
	if(callback)
		var tmp = Object.extend(tmp,callback);
	var tmp = Object.extend(tmp,
		{
			method: 'post',
			parameters: parameters
		}
	);
	new Ajax.Request(url,tmp);
}

function sendRequest(action,subaction,callback,params)
{
	var parameters =
	{
		action: ""+action,
		subaction: ""+subaction
	};
	var parameters = Object.extend(parameters, params);
	var tmp = DefaultCallback;
	if(callback)
		var tmp = Object.extend(tmp,callback);
	var tmp = Object.extend(tmp,
		{
			method: 'post',
			parameters: parameters
		}
	);
	new Ajax.Request('/index.rpc.php',tmp);
}


function registerEventByClassName(name, eventFunction)
{
                var links = Element.getElementsBySelector(document.body, name);
                var i = 0;
                while (i<links.length)
                {
                        debug("registerLink: "+links[i])
                        Event.observe(links[i], "click", eventFunction);
                        i++;
                }
}
function unregisterEventByClassName(name, eventFunction)
{
                var links = Element.getElementsBySelector(document.body, name);
                var i = 0;
                while (i<links.length)
                {
                        debug("unregisterLink: "+links[i])
                        Event.stopObserving(links[i], "click", eventFunction);
                        i++;
                }
}

function openPopup(url, popup, width, height) {
        return window.open(url,popup,'width='+width+',height='+height+',status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
}
