var S3action = {
    endpoint:'/s3/ajax/action',

    deleteFile: function(file_id){
	Filetree.remove(file_id);
	var params = 'mode=delete_file&file_id='+encodeURI(file_id);
	new Ajax.Request(S3action.endpoint, {method:'post', postBody:params});
    },

    setPublic: function(file_id){
	Filetree.tree[file_id].isPrivate = 0;
	Filetree.populate();
	var params = 'mode=set_privacy&private_p=0&file_id='+encodeURI(file_id);
	new Ajax.Request(S3action.endpoint, {method:'post', postBody:params});
    },

    setPrivate: function(file_id){
	Filetree.tree[file_id].isPrivate = 1;
	Filetree.populate();
	var params = 'mode=set_privacy&private_p=1&file_id='+encodeURI(file_id);
	new Ajax.Request(S3action.endpoint, {method:'post', postBody:params});
    },

    setTitle: function(title){
	$('title').innerHTML = title;
    },
    
    editFilename: function(file_id){
	Filetree.tree[file_id].editFilename = true;
	Filetree.tree[file_id].editTags = false;
	Filetree.tree[file_id].editDescription = false;
    },

    setFilename: function(file_id, filename){
	Filetree.tree[file_id].filename = filename;
	Filetree.tree[file_id].editFilename = false;
	Filetree.populate();
	var params = 'mode=set_filename&file_id='+encodeURI(file_id)+'&filename='+encodeURI(filename);
	new Ajax.Request(S3action.endpoint, {method:'post',postBody:params});
    },

    editTags: function(file_id){
	Filetree.tree[file_id].editTags = true;
	Filetree.tree[file_id].editFilename = false;
	Filetree.tree[file_id].editDescription = false;
    },

    editDescription: function(file_id){
	Filetree.tree[file_id].editDescription = true;
	Filetree.tree[file_id].editFilename = false;
	Filetree.tree[file_id].editTags = false;
    },

    setTags: function(file_id, tags){
	var params = 'mode=set_tags&file_id='+encodeURI(file_id)+'&tags='+encodeURI(tags);
	new Ajax.Request(S3action.endpoint, {method:'post', postBody:params, onComplete:function(originalRequest){Filetree.appendXML(originalRequest.responseXML); Filetree.select(file_id);}})
    },

    deleteTag: function(file_id, tag){
	Filetree.removeTag(file_id, tag);

	var params = 'mode=delete_tag&file_id='+encodeURI(file_id)+'&tag='+encodeURI(tag);
	new Ajax.Request(S3action.endpoint, {method:'post', postBody:params});
    },

    deleteConfirm: function(file_id, confirm){
	Filetree.tree[file_id].deleteConfirm = confirm;
    },

    showTag: function(tag){
	S3action.setTitle('<a href="javascript:S3action.showAllFiles()">'+filesTitle+'</a> / ' + tag);
	Filetree.clear();
	Filetree.appendXMLFromUrl('/s3/ajax/get-files', 'user_id='+user_id+'&mode=tag&tag='+encodeURI(tag));
    },

    showSearch: function(search){
	if (search.length==0) {
            S3action.showRecentFiles();
	    return;
	}

	S3action.setTitle('<a href="javascript:S3action.showAllFiles()">'+filesTitle+'</a> / Search for "' + search + '"');
	Filetree.clear();
	Filetree.appendXMLFromUrl('/s3/ajax/get-files', 'user_id='+user_id+'&mode=search&search='+encodeURI(search));
    },

    showAllUntaggedFiles: function(){
	S3action.setTitle('<a href="javascript:S3action.showAllFiles()">'+filesTitle+'</a> / Untagged files');
	Filetree.clear();
	Filetree.appendXMLFromUrl('/s3/ajax/get-files', 'user_id='+user_id+'&mode=untagged');
    },

    showAllFiles: function(){
	S3action.setTitle(filesTitle);
	Filetree.clear();
	Filetree.appendXMLFromUrl('/s3/ajax/get-files', 'user_id='+user_id);
    },

    showRecentFiles: function(){
	S3action.setTitle('<a href="javascript:S3action.showAllFiles()">'+filesTitle+'</a> / Recent files');
	Filetree.clear();
	Filetree.appendXMLFromUrl('/s3/ajax/get-files', 'user_id='+user_id+'&mode=user_recent');
    },

    setDescription: function(file_id, description){
	Filetree.tree[file_id].description = Filetree.tree[file_id].descriptionHtml = description;
	Filetree.tree[file_id].editDescription = false;
	Filetree.populate();

	var params = 'mode=set_description&file_id='+encodeURI(file_id)+'&description='+encodeURI(description);
	new Ajax.Request(S3action.endpoint, {method:'post', postBody:params, onComplete:function(originalRequest){Filetree.appendXML(originalRequest.responseXML); Filetree.select(file_id);}})
    }
}
