var my_tree_class = Class.create({ 
	initialize: function(args) {
		this.args = args || new Array();
		this.args['tree_container_id'] = 'c_left';

		this.createEvents();
		this.hideSubnodes();

	},

	createEvents: function() {
		$$('#' + this.args['tree_container_id'] +' img.parent').each(this.createEvent.bind(this));			
	},

	createEvent: function(obj) {
		im1=this.args['img_minus4'];
		im2=this.args['img_plus'];
		//ul_id=this.imgToUl(obj.identify());
		//ul_obj=$(obj).up('li').next('li').down('ul');
		Event.observe($(obj), 'click', function(event) {
 			var element = Event.element(event);
			ul_obj=element.up('li').next('li').down('ul');
  		  	if(element.name == 'plus') {
				element.src=im1;
				element.name = 'minus';
				ul_obj.up('li').show();
			} else {
				element.src=im2;
				element.name = 'plus';	
				ul_obj.up('li').hide();
			}
		});

			
	},

	imgToUl: function(img_id) {
		pieces=img_id.toArray();
		res=new Array();
		var result="ul";
		for (i=3 ; i<pieces.length ; i++) {
			res.push(pieces[i]);
		}
		for (i=0 ; i<res.length ; i++) {
			result+=res[i];
		}
		return result;
	},

	hideSubnodes: function() {
		$$('#' + this.args['tree_container_id'] +' ul').each(this.hideSubnodesProceed.bind(this));	
	},

	hideSubnodesProceed: function(obj) {
		if (!$(obj).hasClassName('drzewo')) {
			$(obj).up(0).hide();
		}
	},

	expand: function(obj,link_obj, img_obj, leaf) {
		$(obj).up(0).show();
		this.activate(link_obj, img_obj, leaf);
		if(!$(obj).up(0).hasClassName('stop'))
			this.expand($(obj).up('ul'), $(obj).up(0).previous('li').down('a').identify(), $(obj).up(0).previous('li').down('img').identify(), 1);
		else	return false;
		//id_of_object = $(obj).identify();
	},


	activate: function(link_obj, img_obj, leaf) {
		//alert(link_obj);
		if(leaf == 0) {
			link_class="drzewo4";
			img=this.args['img_minus3'];
		}
		else	{
			link_class="drzewo1";
			img=this.args['img_minus'];
		}
		$(link_obj).className=link_class;
		$(img_obj).src=img;
		$(img_obj).name='minus';
	}

	
});
