jQuery(document).ready(function() 
{	
	var isAddingFolder = false;
	var CurrentFolderID = 0;
	var isNode = false;
	var isFolderButtonAdd = true;
	
	var isFolderUpload = false;
	var isVideoCatSelected = false;

	var url = document.location.href;
	url = url.split('?');

	if ($(".uploader_video").length)
	{
		$(".VideoCatSelect").click(function()
		{
/*			if ($(".VideoCatSelect").attr('value'))
			{
	//	$(".OnUploadNext").css('display', 'block');
				isVideoCatSelected = true;
				ProcessShowButton();
			}*/
/*		});	
		$(".OnUploadNext").click(function()
		{*/
			var c_id = $(".VideoCatSelect").attr('value');
		
			if (c_id > 0)
			{				
				isVideoCatSelected = true;
				ProcessShowButton();
				
				var href = $(".a_right").attr('action');
				href = href + '&c_id=' + c_id;
				//alert(href);
				$(".a_right").attr('action', href);
				return true;
			}
			return false;
		});
	}
	else
		isVideoCatSelected = true;
	
	if ($(".FolderAddButton").length)
	{
		$(".FolderAddButton").live("click", function()
		{
			if (isFolderButtonAdd) // Add new folder
			{
				var Name, Tags, Desc;
				
				Name = $(".Large_InputName").attr("value");
				Tags = $(".Large_InputTags").attr("value");
				Desc = $(".Large_InputDesc").attr("value");
				
				dialogClose('CreateFolder');
				CreateFolder(Name, Tags, Desc);
			}
			else
			{
				var Name, Tags, Desc;
					
				Name = $(".Large_InputName").attr("value");
				Tags = $(".Large_InputTags").attr("value");
				Desc = $(".Large_InputDesc").attr("value");
					
				dialogClose('CreateFolder');
				
				EditFolder(Name, Tags, Desc);
			}
		});
	}

	if (url.length > 1)
	{

		var addition_action = url[1].split('#');
	
		if (addition_action[1] == "add")
		{
			isNode = true;
			DrawControls();
		}
		
		if (addition_action[1] == "edit")
		{
			CurrentFolderID = getParameter(url[1], 'album_id');	
			DrawControlsEdit();
		}
	
		if (addition_action[1] == "remove")
		{
			CurrentFolderID = getParameter(url[1], 'album_id');	
			DrawControlsDelete();
		}	
	}

	function ProcessShowButton()
	{
		//alert('isFolderUpload = ' + isFolderUpload);
		if ((isFolderUpload) && (isVideoCatSelected))
		{
			$(".OnUploadNext").show();
		}
		else
		{
			$(".OnUploadNext").hide();		
		}
	}
	
	function getParameter ( queryString, parameterName ) {
	   // Add "=" to the parameter name (i.e. parameterName=value)
	   var parameterName = parameterName + "=";
	   if ( queryString.length > 0 ) {
	      // Find the beginning of the string
	      begin = queryString.indexOf ( parameterName );
	      // If the parameter name is not found, skip it, otherwise return the value
	      if ( begin != -1 ) {
	         // Add the length (integer) to the beginning
	         begin += parameterName.length;
	         // Multiple parameters are separated by the "&" sign
	         end = queryString.indexOf ( "&" , begin );
	      if ( end == -1 ) {
	         end = queryString.length
	      }
	      // Return the string
	      return unescape ( queryString.substring ( begin, end ) );
	   }
	   // Return "null" if no parameter has been found
	   return "null";
	   }
	}	
	
	if ($("#folders_list").length)
	{
		var CurrentFolderID = $("#current_folder_id").html();
		DrawFolders(CurrentFolderID);
	}
	
	function ShowFolder(id)
	{
		$("#folder_" + id).toggleClass("folder_browser_process");
		DrawFolders(id);
		CurrentFolderID = id;
	}
	function CreateFolder(Name, Tags, Desc)
	{			
		dialogHide();
		
		if (isNode)
			CurrentFolderID = 0;

		 $.ajax({
		   type: "POST",
		   url: url[0] + "?service=service_folder&action=folder_add",
		   data: 'id=' + CurrentFolderID + '&name=' + Name + '&tags=' + Tags + '&desc=' + Desc,
		   dataType: "json",
		   success: function(data){
				if (data.id < 0)
				{
					alert(data.errcode);
					return false;
				}
	
				$(".controls").hide();
				isAddingFolder = false;
				DrawFolders(data.id);
		   }
		 });

/*		$.getJSON(url[0] + '?service=service_folder&action=folder_add&id=' + CurrentFolderID + '&name=' + Name + '&tags=' + Tags + '&desc=' + Desc,	
	      //запрос завершен, получаем данные
	        function (data) 
			{				
				if (data.id < 0)
				{
					alert(data.errcode);
					return false;
				}
	
				$(".controls").hide();
				isAddingFolder = false;
				DrawFolders(data.id);
			});*/
	//	DrawControls(CurrentFolderID);
	}
	function EditFolder(Name, Tags, Desc)
	{				
		dialogHide();
		
//		$.getJSON(url[0] + '?service=service_folder&action=folder_edit&id=' + CurrentFolderID + '&name=' + Name + '&tags=' + Tags + '&desc=' + Desc,	

		 $.ajax({
		   type: "POST",
		   url: url[0] + "?service=service_folder&action=folder_edit",
		   data: 'id=' + CurrentFolderID + '&name=' + Name + '&tags=' + Tags + '&desc=' + Desc,
		   dataType: "json",
		   success: function (data) 
			{				
				if (data.id < 0)
				{
					alert(data.errcode);
					return false;
				}
	
				$(".controls").hide();
				isAddingFolder = false;
				DrawFolders(data.id);
			}
	//	DrawControls(CurrentFolderID);
		});
	}
	function HideControls()
	{		
		$(".controls").hide(300);
		isAddingFolder = false;
	}
	function DrawControls()
	{
		isAddingFolder = true;
				
	//	$("#controls").show(300);
		var txt = $(".controls").html();
		var search = /LargeInput/g;
		txt = txt.replace(search, 'Large_Input');
		
		dialogSetContentAndShow(txt, 'CreateFolder', $(".controls").attr('name'));
	
		isFolderButtonAdd = true;
	}
	
	function DrawControlsEdit()
	{
		isAddingFolder = true;
			
		$.getJSON(url[0] + '?service=service_folder&action=get_info&id=' + CurrentFolderID,	
	      //запрос завершен, получаем данные
	        function (data) 
			{						
//				var tmp = $(".controls").clone();
//				$(".dialogWindowBody div").html(tmp.html());
//				$("#dialogWindow").jqmShow();
//				dialogSetContentAndShow($(".controls").html(), 'CreateFolder', $(".controls").attr('name'));			
				var txt = $(".controls").html();
				var search = /LargeInput/g;
				txt = txt.replace(search, 'Large_Input');
		
				dialogSetContentAndShow(txt, 'CreateFolder', $(".controls").attr('name'));
		
				if (data.name == null)
					data.name = '';
				if (data.tags == null)
					data.tags = '';
				if (data.description == null)
					data.description = '';
			
				$(".Large_InputName").attr("value", data.name);
				$(".Large_InputTags").attr("value", data.tags);
				$(".Large_InputDesc").attr("value", data.description);
				
				isFolderButtonAdd = false;
			});
	}
	
	function DrawControlsDelete()
	{
   		if (confirmDelete())
   		{
			$.getJSON(url[0] + '?service=service_folder&action=folder_delete&id=' + CurrentFolderID,	
		      //запрос завершен, получаем данные
		        function (data) 
				{			
					if (data.id < 0)	
						alert(data.errcode);

					DrawFolders(0);
				});
   			
   		}
	}
	
	function DrawFolders(id)
	{
		var url = document.location.href;
		url = url.split('?');
		
		var f_id = $("#folder_type_id").text();
		
		var full_url = url[0] + '?service=service_folder&action=folder_getlist&id=' + id + '&ftype=' + f_id;
		
		$.getJSON(full_url,
		
		      //запрос завершен, получаем данные
		      function (data) 
		      {		
		      	var InsertName = "#folders_list";
		      	$("#folders_list").html("");
			    for (i = 0; i < data.tree.length; i++)
			    {
		    		InsertName = "#folders_list";
		    		
			    	if (data.tree[i].parent > 0)
			    		InsertName = "#folder_" + data.tree[i].parent;
			    		
					classname = "folder_browser";
					if (data.tree[i].id == data.selected)
					{
						CurrentFolderID = data.selected;
						classname = "folder_browser_opened";
						data.tree[i].name = '<b>' + data.tree[i].name + '</b>';					
//						$("#current_folder").html(data.tree[i].name);
/*						data.tree[i].name = data.tree[i].name + $("#current_folder_add").html();
						if (data.tree[i].parent > 0)
							data.tree[i].name = data.tree[i].name + $("#current_folder_edit").html();			*/
						if (data.is_write)
							data.tree[i].name = data.tree[i].name + "&nbsp;<img class=\"DrawControlsAdd\" src=\"" + $("#folder_control_buttons").attr('write') + "\" />";
							
						if (data.is_change)
							data.tree[i].name = data.tree[i].name + "&nbsp;<img class=\"DrawControlsEdit\" src=\"" + $("#folder_control_buttons").attr('edit') + "\" />";
							
						if (data.is_delete)
							data.tree[i].name = data.tree[i].name + "&nbsp;<img class=\"DrawControlsDelete\" src=\"" + $("#folder_control_buttons").attr('remove') + "\" />";
							
						if (data.is_rights_change)
							data.tree[i].name = data.tree[i].name + "&nbsp;<a href=\"" + url[0] + "?module=folder&action=folder_rights&ftype=" + f_id + "&id=" + data.selected + "\"><img class=\"DrawControlsRights\" src=\"" + $("#folder_control_buttons").attr('rights') + "\" /></a>";

						if ($(".OnUploadNext").length) // UPLOAD VIDEO
						{								
							if ($(".uploader_video").length)
							{
								if (data.is_upload_video)
								{
									isFolderUpload = true;
									ProcessShowButton();								
	//								$(".OnUploadNext").show();
								}
								else
								{
									isFolderUpload = false;
									ProcessShowButton();								
	//								$(".OnUploadNext").hide();
								}						
							}
							else // UPLOAD PHOTOS
							{
								if (data.is_upload_image)
								{
									isFolderUpload = true;
									ProcessShowButton();								
	//								$(".OnUploadNext").show();
								}
								else
								{
									isFolderUpload = false;
									ProcessShowButton();								
	//								$(".OnUploadNext").hide();
								}						
							}
						}
						if ($(".OnUploadNextDis").length)
						{
							if (data.is_upload_image)
								$(".OnUploadNextDis").hide();
							else
								$(".OnUploadNextDis").show();
						}
					}
					else
					{
						data.tree[i].name = "<div class=\"FolderItem\" id=\"" + data.tree[i].id + "\">" + data.tree[i].name + "</div>";
					}
					
			    	$(InsertName).append('<div class="' + classname + '" id="folder_' + data.tree[i].id + '">' + data.tree[i].name + '</div>');
			    }
		    	
			    $(".FolderItem").click(function()
			    {
			    	ShowFolder($(this).attr('id'));
			    });
			    $(".DrawControlsAdd").click(function()
		    	{
		    		DrawControls();
		    	});	
		    	$(".DrawControlsEdit").click(function()
		    	{
		    		DrawControlsEdit();
		    	});	
		    	$(".DrawControlsDelete").click(function()
		    	{
		    		DrawControlsDelete();
		    	});	
		      }); 
	}
	
});

