var CategoryLoader = Class.create();

CategoryLoader.prototype = {
	initialize: function()
	{
		debug("CategoryLoader->init()");
		this.eventFunction = this.load.bindAsEventListener(this);
		this.page = "category-show";
	},
	registerLinks: function()
	{
		registerEventByClassName('.'+this.page, this.eventFunction);
	},
	unregisterLinks: function()
	{
		unregisterEventByClassName('.'+this.page, this.eventFunction);
	},
	load: function(e)
	{
		var element = Event.element(e);
		if (element.match('img'))
			element = element.parentNode;
		var targetHref=element.href.replace(/^([a-z]+:\/\/[\w\.\:]+\/)([a-z]{2,4}\/)(.*)$/i, "$1rpc/$3");
		sendRequest2(targetHref, this.loadCallback());
		Event.stop(e);
	},
	loadCallback: function()
	{
		var self = this;
		return {
			onSuccess: function (transport) {
				debug("project-load:onSuccess:");
				var json = transport.responseText.evalJSON(true);
				if (!json.error)
				{
					if (currentPage==self.page)
					{
						self.unregisterLinks();

						debug(self.page);
						document.body.addClassName(self.page);

						var element = $('category_head');
						if (element)
							element.replace(json.head);
	
	debug(json)
						var tmp = Element.getElementsBySelector(document.body, "#content .middle .cat_list_left");
						var element = tmp[0]
						if (element)
							if (json.text)
								element.replace(json.text);

/*
						if (currentPage != self.page)
						{
							document.body.removeClassName(currentPage);
							currentPage = self.page;
						}
*/

						self.registerLinks();
					}
					else
					{
						error("ProjectLoad: only works from project-list & project-show page");
					}
				}
				else
				{
					ajax_error(json.error)
				}
			}
		}
	}
};

