// EXPLORER
var Explorer = {
	Self: {
		vars: false,
		validate: function(bw) {
			if(Explorer.Self.vars != false) {
				var explorer = Explorer.Self.vars.explorer;
				var browser = explorer.find("#Browser");
				var content = explorer.find("#Content");
				var top = content.children("#Top");
				var files = content.children("#Files");
				
				if(bw == true) browser.width(browser.find("#ROOT").width());
				browser.height(explorer.height()+(browser.height()-browser.outerHeight(true)));
				content.width(explorer.width()-browser.outerWidth(true)+(content.width()-content.outerWidth(true)));
				content.height(explorer.height()+(content.height()-content.outerHeight(true)));
				//files.height(content.height()-top.outerHeight(true));
			}
		},
		validateFiles: function(content, file) {
			if(Explorer.Self.vars != false) {
				Explorer.Self.validate();
				var explorer = Explorer.Self.vars.explorer;
				var content = explorer.find("#Content").children("#Files");
				var files = content.children(".file");
				files.each(function() {
					var image = files.children(".image");
					var info = files.children(".info");
					info.width(content.width()-image.width());
					info.height(files.height());
				});
			}
		}
	},
	
	Funcs: {
		setFolder: function(options) {
			var explorer = Explorer.Self.vars.explorer;
			var browser = explorer.find("#Browser");
			var content = explorer.find("#Content").children("#Files");
			var data = getData("files.php", { ACTION:"LIST_FILES", ID:options.id }, true);
			
			browser.XTreeView("setFolder", { which: (options.id == 0) ? 1 : options.which, id: options.id, inner: browser.find("#ROOT").find("#LI_"+options.id+"_inner"), subs: browser.find("#ROOT").find("#LI_"+options.id+"_subs") });
			if(data != "null") {
				content.html("");
				$.each(data, function(index, value) {
					content.append(
					'<div id="File_'+value[0]+'" class="file">'+
						'<div class="image"></div>'+
						'<div class="info">'+
							'<div class="name">'+value[1]+'</div>'+
							'<div class="tags"></div>'+
							'<div class="size"></div>'+
							'<div class="uploadTime"></div>'+
						'</div>'+
					'</div><div class="clearLeft"></div>');
				}); Explorer.Self.validateFiles();
			} else { content.html("Keine Dateien gefunden."); }
		}
	},
	
	init: function(data) {		
		Explorer.Self.vars = { explorer: data.content.find("#Explorer") };
		var explorer = Explorer.Self.vars.explorer;
		var browser = explorer.find("#Browser");
		var content = explorer.find("#Content");
		
		browser.XTreeView();
		Explorer.Funcs.setFolder({ id:0 });
		Explorer.Self.validate(true);
		
		// RESIZE
		/*var explorer = Explorer.Self.vars.explorer;
		var obj = explorer.find("#Browser");
		var content = explorer.find("#Content");
		
		obj.data("dragCursor", "none");
		obj.data("isMove", false);
		obj.data("isDrag", false);
		
		var browserResize = {
			thickness: { border: 5 }
		};
		
		function mousemove(e) {
			if(obj.data("isDrag") == false && obj.data("isMove") == false) {
				browserResize.mouseOffset = {
					x: e.pageX - obj.offset().left,
					y: e.pageY - obj.offset().top
				};
				
				browserResize.size = {
					width: obj.outerWidth(true),
					height: obj.outerHeight(true)
				};
				
				var cursor = ((browserResize.mouseOffset.x >= browserResize.size.width-browserResize.thickness.border-2) && (browserResize.mouseOffset.x < browserResize.size.width-2)) ? "E" : "none";
				
				obj.data("dragCursor", cursor);
				setCursor(obj.data("dragCursor"), false);
			}
		} explorer.bind('mousemove.explorerBrowserResize', mousemove);
		explorer.bind('mouseleave.explorerBrowserResize', function() { if(obj.data("dragCursor") != "none" && obj.data("isDrag") == false) setCursor("default"); });
		
		explorer.bind('mousedown.explorerBrowserResize', function(e) {
			mousemove(e);
			if(obj.data("dragCursor") != "none" && e.which == 1) {
				setCursor(obj.data("dragCursor"));
				obj.data("isDrag", true);
				
				var dragOffset = {
					x: obj.offset().left,
					y: obj.offset().top
				};
				var dragSize = {
					width: obj.width(),
					height: obj.height()
				};
				
				$("#Body").bind('mousemove.explorerBrowserResize', function(e) {
					if(obj.data("dragCursor") == "E") XUtils.adjustSize(obj, { width: e.pageX+(dragSize.width-browserResize.mouseOffset.x)-obj.offset().left, minWidth: obj.find("ul").width() });
					Explorer.Self.validate();
				});
			}
		});
		
		$("#Body").bind('mouseup.explorerBrowserResize', function() {			
			if(obj.data("isDrag") == true) {
				$("#Body").unbind('mousemove.explorerBrowserResize');
				obj.data("isDrag", false);
				setCursor(((browserResize.mouseOffset.x >= browserResize.size.width-browserResize.thickness.border-2) && (browserResize.mouseOffset.x < browserResize.size.width-2)) ? "E" : "none");
			}
		});
		
		function setCursor(c, b) {
			var rC = c.toLowerCase()+"-resize";
			if(c.length > 2) { rC = "default"; }
			
			if(b == false) {
				explorer.css({ cursor: rC });
			} else {
				$("body").css({ cursor: rC });
			}
		}*/
	},
	
	resize: function() { Explorer.Self.validate(); Explorer.Self.validateFiles(); }
}
