function show_editor()
{
	var editor = document.getElementById( 'tag_editor' );
	if( editor )
		editor.style.display = '';
}

function hide_editor()
{
	var editor = document.getElementById( 'tag_editor' );
	if( editor )
		editor.style.display = 'none';
	var adder = document.getElementById( 'tag_adder' );
	if( adder )
		adder.value = "";
}

function delete_tag(url, tag)
{
	tag = decodeURIComponent(tag);
	AjaxRequest.get(
		{
		url:url,
		parameters:{ 'delete':tag },
		onSuccess:function(req)
		{
			data = "";
			eval( 'data=' + req.responseText );
			if( data.length == 0 )
				return;
			var dObj = document.getElementById( 'd' + data[0] );
			if( dObj )
			{
				dObj.parentNode.parentNode.removeChild( dObj.parentNode );
			}
		},
		onError:function(req)
		{
			alert("An error happened:\n" + req.responseText);
		}
	});
}

function add_tags(url)
{
	var adder = document.getElementById( 'tag_adder' );
	if( adder )
	{
		AjaxRequest.get(
			{
				url:url,
				parameters:{ 'add':adder.value },
				onSuccess:function(req)
				{
					data = "";
					eval( 'data=' + req.responseText );
					if( data.length == 0 )
						return;
					var tag_container = document.getElementById( 'tags' );
					if( !tag_container )
						return;

					var row = tag_container.tBodies[0].rows[0];
					if( !row )
						return;

					var col1 = row.cells[0];
					var col2 = row.cells[1];
					var col3 = row.cells[2];
					if( !col1 || !col2 || !col3 )
						return;
					
					while( col1.hasChildNodes() )
						col1.removeChild( col1.firstChild );
					while( col2.hasChildNodes() )
						col2.removeChild( col2.firstChild );
					while( col3.hasChildNodes() )
						col3.removeChild( col3.firstChild );

					var num1 = Math.floor(data.length/3) + (((data.length%3)>0)?1:0);
					var num2 = num1 + Math.floor(data.length/3) + (((data.length%3)>1)?1:0);
					for( var i = 0; i < data.length; i++ )
					{
						var tag = data[i]['tag'];
						var trunc = data[i]['truncated'];
						var disp = data[i]['display'];
						
						if( i < num1 )
						{
							col1.innerHTML += "<div><div id='d" +
								tag + "' class='tag_deleter' title=\"Delete tag '" +
								disp + "'\" onclick=\"delete_tag('" +
								url + "', '" + tag + "')\"></div>" +
								"<div id='l" + tag + "' class='tag_link' " +
								"title='" + disp +"'>" +
								"<a href='/video/tag/" + tag + "/'>" +
								trunc + "</a></div></div>";
						}
						else if( i < num2 )
						{
							col2.innerHTML += "<div><div id='d" +
								tag + "' class='tag_deleter' title=\"Delete tag '" +
								disp + "'\" onclick=\"delete_tag('" +
								url + "', '" + tag + "')\"></div>" +
								"<div id='l" + tag + "' class='tag_link' " +
								"title='" + disp +"'>" +
								"<a href='/video/tag/" + tag + "/'>" +
								trunc + "</a></div></div>";
						}
						else
						{
							col3.innerHTML += "<div><div id='d" +
								tag + "' class='tag_deleter' title=\"Delete tag '" +
								disp + "'\" onclick=\"delete_tag('" +
								url + "', '" + tag + "')\"></div>" +
								"<div id='l" + tag + "' class='tag_link' " +
								"title='" + disp +"'>" +
								"<a href='/video/tag/" + tag + "/'>" +
								trunc + "</a></div></div>";
						}
					}
					adder.value = "";
				},
				onError:function(req)
				{
					alert("An error happened:\n" + req.responseText);
				}
			});
	}
}

function load_tags(obj, url)
{
	obj.innerHTML = "loading...";
	obj.onclick = null;
	AjaxRequest.get(
		{
			'url':url,
			'onSuccess':function(req)
			{
				obj.innerHTML = "Click a tag: ";
				data = "";
				eval( 'data=' + req.responseText );
				for(var i = 0; i < data.length; i++)
				{
					obj.innerHTML += "<a href=\"javascript:;\" onclick=\"add_to_tags('" + data[i]['display'] + "'); return false;\">" + data[i]['display'] + "</a>&nbsp; ";
				}
			},
			'onError':function(req)
			{
				obj.innerHTML = "Sorry, an error happened.";
			}
		});
}

function add_to_tags(tag)
{
	if( tag.indexOf( ',' ) != -1 )
		tag = '"' + tag + '"';
	var adder = document.getElementById( 'tag_adder' );
	if( adder )
	{
		adder.value = tag + ", " + adder.value;
	}
}

function check_key(e)
{
	var key_code = (window.event) ? event.keyCode : e.keyCode;
	if( key_code == 13 )
	{
		var button = document.getElementById( 'adder_button' );
		if( button )
		{
			button.click();
		}
	}
}

if( document.getElementById( 'tag_adder' ) )
	document.getElementById( 'tag_adder' ).onkeypress = check_key;
