var new_email_index = 2;
function handle_simple_add_email_response(transport)
{
	var json = transport.responseJSON;
	var first_email = $('author_emails_email_1_email_type_id');
	$('email-wrapper').append(data);
}

function simple_add_email(url)
{
	new Ajax.Request(url, {
		parameters: { email_index: new_email_index },
	//	asynchronous: true, 
	//	evalScripts: false, 
		onComplete: function(transport) {
			handle_simple_add_email_response(transport)
		}
	});

	new_email_index = new_email_index + 1;
	return false;
}

function show_add_email_form()
{
	new Effect.BlindDown('add_email_form', { duration: 1.0 });
	new Effect.BlindDown('add-buttons', { duration: 1.0 });
}

function hide_add_email_form()
{
	new Effect.BlindUp('add-buttons', { duration: 1.0 });
	new Effect.BlindUp('add_email_form', { duration: 1.0 });
}

function do_add_email(url)
{
	var email_type = $F('email_type');
	var email_address = $F('email_address');
	var is_target = $F('is_target');
	if (null == is_target)
		is_target = 0;

	if (0 == email_type.toString().length)
		return;
	if (0 == email_address.toString().length)
		return;
	if (0 == is_target.toString().length)
		return;

	new Ajax.Request(url, {
		parameters: { email_type: email_type, email_address: email_address, is_target: is_target },
		asynchronous: true, 
		evalScripts: false, 
		onComplete: function(transport) {
			handle_add_email_response(transport)
		}
	});

	return false;
}

function handle_add_email_response(transport)
{
	var json = transport.responseJSON;

	var newOption = '<option value="' + json.email_id + '">' + json.email_text + '</option>';
	$('emailList').insert(newOption);

	$('email_type').selectedIndex  = 0;
	$('email_address').value  = '';
	$('is_target').value = null;

	hide_add_email_form();
}

function show_update_email_form()
{
	new Effect.BlindDown('add_email_form', { duration: 1.0 });
	new Effect.BlindDown('update-buttons', { duration: 1.0 });
}

function hide_update_email_form()
{
	new Effect.BlindUp('update-buttons', { duration: 1.0 });
	new Effect.BlindUp('add_email_form', { duration: 1.0 });
}

function show_edit_email_form(url)
{
	var email = $('emailList');
	if (null == email)
		return false;
	var email_id = email[email.options.selectedIndex].value;
	if (null == email_id)
		return false;

	new Ajax.Request(url, {
		parameters: { email_id: email_id },
		asynchronous: true, 
		evalScripts: false, 
		onComplete: function(transport) {
			handle_fetch_email_response(transport)
		}
	});

	return false;	
}

function get_email_type_index(email_type)
{
	$$('email_type').each(function(elem) {
		if (elem.value == email_type)
			return elem.index;
	});

	return -1;
}

function handle_fetch_email_response(transport)
{
	var json = transport.responseJSON;
	if (null == json)
		return;

	show_update_email_form();

	var index = get_email_type_index(json.email_type_id);
	if (-1 != index)
		$('email_type').selectedIndex = index;
	$('email_address').value = json.email_address;
	if (json.is_target > 0)
		$('is_target').value = 1;
}

function do_update_email(url)
{
	var email_type = $F('email_type');
	var email_address = $F('email_address');
	var is_target = $F('is_target');
	if (null == is_target)
		is_target = 0;

	if (0 == email_type.toString().length)
		return;
	if (0 == email_address.toString().length)
		return;
	if (0 == is_target.toString().length)
		return;

	new Ajax.Request(url, {
		parameters: { email_type: email_type, email_address: email_address, is_target: is_target },
		asynchronous: true, 
		evalScripts: false, 
		onComplete: function(transport) {
			handle_update_email_response(transport)
		}
	});

	return false;
}

function handle_update_email_response(transport)
{
	var json = transport.responseJSON;

	var newOption = '<option value="' + json.email_id + '">' + json.email_text + '</option>';
	$('emailList').insert(newOption);

	$('email_type').selectedIndex  = 0;
	$('email_address').value  = '';
	$('is_target').value = null;

	hide_update_email_form();
}

function delete_selected_email(url)
{
	var email = $('emailList');
	var email_address = email.textContent;
	if (null == email_address || '' == email_address)
		return;

	new Ajax.Request(url, {
		parameters: { email_address: email_address },
		asynchronous: true, 
		evalScripts: false, 
		onComplete: function(transport) {
			handle_delete_email_response(transport)
		}
	});

	return false;
}

function handle_delete_email_response(transport)
{
	var json = transport.responseJSON;
}

