if( typeof( AdmeaDossier ) == 'undefined' ) AdmeaDossier = {};

AdmeaDossier.NodeTree = function()
{
	// Private properties
	var tree = null;

	// Public
	return {
		getTree : function() {
			return tree;
		},

		// public methods
		init : function( opts )
		{
			var config = {
				id: 'tree',
				region:'west',
				title: 'Tree',
				headerAsText: false,
				collapsible: true,
				header: true,
				split:true,
				width: 225,
				minSize: 175,
				maxSize: 400,
				margins:'0 5 0 0',
				// el: 'treepanel',
		        autoScroll:true,
		        animate:true,
		        enableDD:false,
		        containerScroll: true,
				hideBorders: true,
				// border: false,
				// enableDD: false,
				tools: [
					{
						id: 'refresh',
						handler: function() { tree.getRootNode().reload(); }
					}
				],
		        loader: new Ext.tree.TreeLoader({
		            dataUrl: AdmeaDossier.getURLForMethod( 'getnodes' ),
		            requestMethod:'POST',
		            listeners: {
						'beforeload': {
							// scope: this,
							fn: function( loader, node, callback ) {
								// testloader = loader;
								var cbdata = new Date().getTime();
								
								loader.dataUrl = loader.dataUrl.replace( /cb=(\d+)/, 'cb=' + cbdata );
								loader.baseParams.pcb = cbdata;
							}
						}
		            }
		        })
			 };

			if( opts )
				for( var property_name in opts )
					config[property_name] = opts[property_name];

			/*
			tree.getLoader().on("beforeload", function(treeLoader, node) {
				// this.baseParams.category = node.attributes.category;
				testloader = this;
			}, this);
			*/
			
			// Create panels
			// tree = new Ext.tree.TreePanel( config );
			tree = new Ext.tree.DDDTreePanel( config );

			// set the root node
			var root = new Ext.tree.AsyncTreeNode({
				text: 'Dossier',
				draggable:false,
				id:'source'
			});
			
			tree.setRootNode(root);

    		root.expand();

			return tree;
		}

	};
}();
