Ext.BLANK_IMAGE_URL = '/js/ext/resources/images/default/s.gif';
Ext.onReady(function(){

	if (!Ext.get('tree-div')) return;

	var curNode = null;

//-------------tree loader
	Ext.tree.myTreeLoader = function(config){
    	Ext.apply(this, config);
        	Ext.tree.myTreeLoader.superclass.constructor.call(this, config);
	};

    Ext.tree.myTreeLoader = Ext.extend(Ext.tree.myTreeLoader, Ext.tree.TreeLoader, {
		requestData:function(A,B)
		{
			if(this.fireEvent("beforeload",this,A,B)!==false) {
				this.transId=Ext.Ajax.request({
					method:this.requestMethod,
					url:this.dataUrl||this.url,
					success:this.handleResponse,
					failure:this.handleFailure,
					scope:this,
					argument:{callback:B,node:A},
					params:this.getParams(A)
				})
			}else{
				if(typeof B=="function"){B()}
			}
		},
		handleResponse:	function(B){
			this.transId=false;
			var A=B.argument;
			this.processResponse(B,A.node,A.callback);
			this.fireEvent("load",this,A.node,B)
		},
		load:function(A,B){
			if(this.clearOnLoad) {
				while(A.firstChild){
					A.removeChild(A.firstChild)
				}
			}
			if(this.doPreload(A)){
				if(typeof B=="function"){B()}
			}else{
				if(this.dataUrl||this.url){this.requestData(A,B)}
			}
		},
		processResponse:function(response,node,callback){
			var json=response.responseText;
			try{
				var o=eval("("+json+")");
				node.beginUpdate();
				for(var i=0,len=o.length;i<len;i++){
					var n=this.createNode(o[i]);
					if(n){
						node.appendChild(n);
						//node.fireEvent("expand", n);
						//n.expand();

					}
				}
				node.endUpdate();
				if(typeof callback=="function"){
					callback(this,node)
				}
			}
			catch(e){
				this.handleFailure(response)
			}
		}


    }); //myTreeLoader

//-------------tree
	var Tree = Ext.tree;

	var tree = new Tree.TreePanel({
		el:'tree-div',
		autoScroll:true,
		animate:false,
		containerScroll: false,
		rootVisible: false,
		//loader: new Tree.TreeLoader()		
		loader: new Ext.tree.myTreeLoader({
		    dataUrl:getnodesUrl
		})
	});

	var root = new Tree.AsyncTreeNode({
		text:'root',
		draggable:false,
		id: root_node_id,
		href:'/admin/items/edit/' + root_node_id,
		children: json
	});
	tree.setRootNode(root);

	var oldPosition = null;
	var oldNextSibling = null;

    tree.render();
    root.expand();

});
