function set_spinner(){
	$('right-container').innerHTML = "<tr><td><img style='position: aboslute; top: 0; left: 0' src='spin.gif'></td></tr>";
}
function get_inbox(){
	set_spinner();
	set_selected('inbox');
	new Ajax.Request('mailserver.php', {
				parameters: { operation: 'change-folder', folder: 'inbox' }
				, onSuccess: function(transport){
						$('right-container').innerHTML = transport.responseText;
						add_onclicks();
					}
			});
}

function get_sentbox(){
	set_spinner();
	set_selected('sentbox');
	new Ajax.Request('mailserver.php', {
				parameters: { operation: 'change-folder', folder: 'sent' }
				, onSuccess: function(transport){
						$('right-container').innerHTML = transport.responseText;
						add_onclicks();
					}
			});
}

var search = function(){
	set_spinner();
	set_selected('');
	new Ajax.Request('mailserver.php', {
				parameters: { operation: 'search', text: $('search-text').value  }
				, onSuccess: function(transport){
						$('right-container').innerHTML = transport.responseText;
						add_onclicks();
					}
			});
}

function draw_options(){
	set_spinner();
	set_selected('option');
	new Ajax.Request('mailserver.php', {
				parameters: { operation: 'options' }
				, onSuccess: function(transport){
						var options = eval("a = " + transport.responseText);
						var form  = "<tr><td>"
								+ '<h2>Opciones</h2>'
								+ '<form id=\"options\">'
								+ '<table>'
								+ '<tr><td>Order:</td><td>' + draw_sort(options.sort) + '</td></tr>' 
								+ '<tr><td>Lenguaje:</td><td>' + draw_language(options.language) + '</td></tr>' 
								+ '<tr><td>Firma:</td><td>' + draw_signature(options.signature) + '</td></tr>' 
								+ '</table>'
								+ '<input type="hidden" name="operation" value="save_options">\n'
								+ '<input type="button" value="Guardar" onclick="save_options()">'
								+ "</form></td></tr>";
						$('right-container').innerHTML = form;
					}
			});
}

function save_options(){
	show_saving();
	new Ajax.Request('mailserver.php', {
				parameters: $('options').serialize(true)
				, onSuccess: function(transport){
						hide_saving();
					}
				});
}

function draw_signature(value){
	return '<textarea name="signature">' + value + '</textarea>\n';
}

function draw_language(value){
	var ret = '<select name="language">\n';
	ret += '<option value="spanish" '+ ('spanish' == value ? 'selected' : '' ) + '>spanish</option>\n';
	ret += '<option value="english" '+ ('english' == value ? 'selected' : '' ) + '>english</option>\n';
	return ret + '</select>';
}

function draw_sort(value){
	var ret = '';
	ret += '<input type="radio" value="ascendente" name="sort" ' + ( 'ascendente' == value ? 'checked' : '' ) + '>ascendente<br/>\n';
	ret += '<input type="radio" value="descendente" name="sort" ' + ( 'descendente' == value ? 'checked' : '' ) + '>descendente<br/>\n';
	return ret;
}

function add_onclicks(){
	$$('.email-header ').each( function(element){
		element.onclick = function(){
				read_email(this.id);
			}
	});
}

function read_email(id){
	set_spinner();
	new Ajax.Request('mailserver.php', {
				parameters: { operation: 'read', mailid: id }
				, onSuccess: function(transport){
					var emailjson = (transport.responseText);
					var email = eval("a = " + transport.responseText);
					draw_email(email);
				}
			});
}

function draw_email(email){
	$('right-container').innerHTML = "<tr><td><div \"email-subject\"><h2>Asunto</h2>" + email.subject + "</div><div \"email-body\"><h2>Mensaje</h2>" + email.body + "</div></td></tr>";
}

function set_selected(folder){
	$$('.folder').each(function(e){e.removeClassName('selected'); e.addClassName('not-selected');});
	if($(folder)){
		$(folder).removeClassName('not-selected');
		$(folder).addClassName('selected');
	}
}

function show_saving(){
	$('saving').style.display = 'block';
}
function hide_saving(){
	$('saving').style.display = 'none';
}

function send_mail(){
	show_saving();
	new Ajax.Request('mailserver.php', {
			parameters: $('send-form').serialize(true)
			, onSuccess: function(transport){
					get_inbox();
					hide_saving();
				}
			});
}
function draw_compose_form(){
	set_selected('compose');
	$('right-container').innerHTML = "<tr><td><form id=\"send-form\">"
					 + "<input type=\"hidden\" value=\"send\" name=\"operation\">"
					 + "<table>"
					 + "<tr><td>asunto: </td><td><input name=\"subject\" type=\"text\" size=\"30\"></td></tr>"
					 + "<tr><td>Para:</td><td> <input type=\"text\" name=\"to\" size=\"30\"></td></tr>"
					 + "<tr><td colspan='2'>Mensaje<br/><textarea cols=\"45\" rows=\"6\" name=\"body\"></textarea></td></tr>"
					 + "<tr><td colspan='2'><input type=\"button\" value=\"enviar\" onclick=\"send_mail()\"><input type=\"button\" id=\"cancel\" value=\"cancelar\" onclick=\"get_inbox()\"/></td></tr>"
					 + "</form></td></tr>";
}

function reset_db(){
	new Ajax.Request('mailserver.php',{
				parameters: { operation: 'reset' }
				, onSuccess: function() {get_inbox();}
			});
}

window.onload = function(){
	get_inbox();
	$('search-button').onclick = search;
	$('reset').onclick = reset_db;
}

