var C_catalogueCollapsableMenu=new Class ({
	holder: null,
	typesTree: false,
	marginPerLevel: 10,
	defaultOffset: 12,
	options:{},
	init: function(holder,_options) {
		// Configuracion por defecto.
		this.options = {
			rowsClassName:'',
			selectedRowClassName:'',
			rowsHRef:'javascript:alert(%TYPE%);',
			selectedOption: false,
			moduleType: ''
		} 
		// Opciones sobrecargadas.
		if (_options) { for(var o in _options) { this.options[o] = _options[o]; } }
		
		this.holder = holder;
		this.loadTree();
	},
	loadTree: function () {
		ajaxPetition("resources/PHP/API_catalogues.php","command=getCatalogueTypesTree&moduleType="+this.options.moduleType,function(ajax) {
			var r = eval ("("+ajax.responseText+")");
			if (parseInt(r.errorCode,10)) { return; }
			this.typesTree = r.data;
			this.renderTree(this.typesTree);
		}.bind(this));
	},
	renderTree: function(tree,level) {
		if (!level) { level=0; }
		if (level==0) { 
			this.holder.innerHTML=''; 
			$C('DIV',{innerHTML:'<a href="'+this.options.rowsHRef.replace(/%TYPE%/g,'all')+'">Todos los productos</a>','.paddingLeft':this.defaultOffset+(this.marginPerLevel*level)+'px',className:this.options.rowsClassName},this.holder);
		}
		$A(tree).each(function(elem) {
			$C('DIV',{innerHTML:'<a href="'+this.options.rowsHRef.replace(/%TYPE%/g,elem.id)+'">'+elem.name+'</a>','.paddingLeft':this.defaultOffset+(this.marginPerLevel*level)+'px',className:(elem.id==this.options.selectedOption?this.options.selectedRowClassName:this.options.rowsClassName)},this.holder);
			if (elem.children.length>0) { this.renderTree(elem.children,level+1); }
		}.bind(this));
	}
});

// Ejemplo de uso...
// var calendar = new C_calendar(holder);