$(function () {
	$("#basic_html").tree(
		{
			async : true,
			
			data : {
				type : "json", 
				opts : {
					method : 'GET',
					url : "/ajaxfolder/getfolders"
				}					
			},
			
			rules : {
				max_children: 1
			},
			
			ui : {
				theme_name : "classic", 
				theme_path : '/themes/classic/style.css'
			},
			
			types : {
				"default" : {
					draggable : false
				},
				"root" : {
					draggable : false
				}
			},
			
			callback: {
      	onload : function(TREE_OBJ) {
      		TREE_OBJ.select_branch('#foldertree_node_'+$('#selected_category').val());
					initClick();
				},
				
				beforerename : function(NODE, LANG, TREE_OBJ) {
					TREE_OBJ.lock(true);
					old = TREE_OBJ.get_text(NODE);
					return true;
				},
				
				onrename: function(NODE, TREE_OBJ, RB) {
					if (old != TREE_OBJ.get_text(NODE)){
						$.post("/ajaxfolder/renamefolder", {name: TREE_OBJ.get_text(NODE),id:$(NODE).attr("folder")},
							function(data){
								if(data.status != 1){
						    	alert("Some errors occured.All changes will be rolled back");
						    	$.tree_rollback(RB);
								}
								TREE_OBJ.lock(false);
							},
							'json'
						);							
					}
					initClick();
					TREE_OBJ.lock(false);
				},
				
				oncreate: function(NODE,REF_NODE,TYPE,TREE_OBJ,RB){
					if(TYPE != "inside") { TYPE="inside"; REF_NODE = $(NODE).parents("li:eq(0)").get(0); }
					//TREE_OBJ.lock(true);
					$.post("/ajaxfolder/add", {name: $(NODE).text(),id_parent:$(REF_NODE).attr("folder")},
					function(data)
					{
						if(data.status==1)
				  	{
				    	$(NODE).attr("folder",data.id);
				    	$(NODE).attr("id",'foldertree_nod_'+data.id);
				    	$(NODE).attr("href", data.href);
				    }
				    else 
				    {
				    	alert("Some errors occured.All changes will be rolled back");
				    	$.tree_rollback(RB);
						}
						//TREE_OBJ.lock(false);
					},
					'json');
					
					initClick();
				},
				
				beforedelete: function(node,tree){
					if (node.attributes.isroot!=undefined)
					{
						alert("Can't delete this folder");
						return false;
					}
					return confirm("You really want delete this folder with all subfolders?");
				},
				
				ondelete	: function(NODE,TREE_OBJ,RB){
					TREE_OBJ.lock(true);
					$.post("/ajaxfolder/delfolder", {id: $(NODE).attr("folder")},
					function(data)
					{
						if(data.status!=1)
				    {
				    	alert("Some errors occured.All changes will be rolled back");
				    	$.tree_rollback(RB);
						}
						TREE_OBJ.lock(false);
					},
					'json');
					
					initClick();
				}
		  }
		}
	);
});

function initClick()
{
	$('.editfolder').bind('click', function(){
		id_node = '#' + $(this).parent().attr('id');
		$.tree.focused().select_branch(id_node);
		$.tree.focused().rename();
		//var buttons = '<input class="savefolder" onclick="saveFolder();" type="button" value="save"><input class="cancelfolder" type="button" value="cancel">';
		//$(id_node).append(buttons);
		//$(id_node+' .addfolder,'+id_node+' .delfolder,'+id_node+' .addimage,'+id_node+' .editfolder').hide();				
	});
	
	$('.addimage').bind('click', function(){
		id_node = '#' + $(this).parent().attr('id');
		document.location.href = '/upload/' + $(id_node).attr('folder');				
	});
	
	$('.addfolder').bind('click', function(){
		id_node = '#' + $(this).parent().attr('id');
		$.tree.focused().select_branch(id_node);
		$.tree.focused().create();				
	});
	
	$('.delfolder').bind('click', function(){
		id_node = '#' + $(this).parent().attr('id');
		$.tree.focused().select_branch(id_node);
		$.tree.focused().remove();				
	});
	
	$("li[id^='foldertree_node_'] a").bind('click', function(){
		id_node = '#' + $(this).parent().attr('id');
		document.location.href = $(id_node).attr('href');
	});
}