function register_collapsibles() {
	var Y = YUI().use("node", "anim", "event", function(Y) {
		register_collapsible_panels(Y);
	});
}

function register_collapsible_panels(Y) {
	var CONFIG_MORE = "czytaj wiêcej";
	var CONFIG_LESS = "mniej";

	var collapsibles = Y.all('.collapsible');
	
	for (var i=0, n=collapsibles.size(); i<n; i++) {
		var collapsible = collapsibles.item(i);
		var collapsible_id = collapsible.getAttribute('col_id')
		
		make_collapsible(collapsible, collapsible_id);
	}
	
	function find_collapsible_id(classes) {
		
	}
	
	function find_collapsible_content(collapsible_panel_head, collapsible_id) {
		/*var found;
		while ((found = head.next('.collapsible_content')) == null) {
			head = head.get('parentNode');
			if (head.get('tag') == 'body') {
				return null;
			}
		}
		return found;*/
		return Y.one('.collapsible_content_' + collapsible_id);
	}
	
	function make_collapsible(collapsible_panel_head, collapsible_id) {
			
			var collapsible_panel = find_collapsible_content(collapsible_panel_head, collapsible_id);
			if (collapsible_panel == null) return;
			
			var content = collapsible_panel.plug(Y.Plugin.NodeFX, {
					to: { 
						height: 0
					},
					from: {
							height: function(node) { // dynamic in case of change
									return node.get('scrollHeight'); // get expanded height (offsetHeight may be zero)
							}
					},

					easing: Y.Easing.easeIn,
					duration: 1
			});
			
			Y.Node.getDOMNode(collapsible_panel).fx = content.fx;

			// use dynamic control for dynamic behavior
			/*var control = Y.Node.create(
					'<a title="show/hide content" class="collapsible_toggle" href="#">' +
							'<em>[' + CONFIG_MORE + ']</em>' +
					'</a>'
			);*/
			
			var onClick = function(e) {
					e.preventDefault();
					
					var text_el = control.one('em');
					if (!content.fx.get('reverse')) {
						text_el.setContent("[" + CONFIG_LESS + "]");
					} else {
						text_el.setContent("[" + CONFIG_MORE + "]");
					}
					
					content.fx.set('reverse', !content.fx.get('reverse')); // toggle reverse 
					content.fx.run();
			};

			// append dynamic control to header section
			/*collapsible_panel_head.appendChild(control);*/
			var control = collapsible_panel_head.one('.collapsible_toggle');
			control.on('click', onClick);
	}

}

