function dispSummaryForm() {
    $("#resume_upload").hide();
    $("#summary_box").toggle();
    $("#resume_headline").toggle();
}

function dispUploadForm() {
    $("#summary_box").hide();
    $("#resume_headline").show();
    $("#resume_upload").toggle();
}

function handleErrors(data, id) {
    var errors = data[0].errors;
    if (typeof(errors) != 'undefined') {
	for (i in errors) {
	    var id_elem = "#id_" + (id ? i+"_"+id : i);
	    if ($(id_elem).length) {
		$(id_elem).after(errors[i]);
	    } else {
		$("div#errors").after(errors[i]);
	    }
	}
    }
}

function submitSummaryForm() {
    var headline = $("#id_resume_headline").val();
    var summary  = $("#id_resume_summary_editor").contents().find("body").html();
    $("#id_resume_headline").siblings("ul.errorlist").remove();
    $("textarea[name=resume_summary]").siblings("ul.errorlist").remove();
    $.post($("input[name=resume_url]").val(),
	   {"resume_headline": headline, "resume_summary": summary}, 
	   function(data, textStatus) { 
	       if (!$(data[0]).attr("errors")) {
		   $("#resume_headline").html(data[0].headline);
		   $("#resume_headline").show();
		   $("#summary_box").hide();
		   $("#resume_summary").html(data[0].summary);
	       } else {
		   handleErrors(data);
	       }
	   }, "json");
}

function submitUploadForm() {
    $("form[name=uploadForm] input[name=resume_headline]").val($("#resume_headline").html());
    $("form[name=uploadForm]").submit();
}

function dispAddTopicForm() {
    $("#topic_form").toggle();
}

function delTopic(topic_id, delURL) {
    if (confirm("Really delete this topic? All assigned posts will get unassigned!")) {
	$.get(delURL, {}, function(data, textStatus) { 
	    if (!$(data[0]).attr("errors")) {
		$("a#topic_"+topic_id).remove();
		$("div#topic_form_"+topic_id).fadeOut.remove();
	    } else {
		handleError(data, topic_id);
	    }
	});
    }
}

function submitTopicForm(topic_id) {
    if (!topic_id) {
	var topic_div_name = 'topic_form';
    } else {
	var topic_div_name = 'topic_form_'+topic_id;
    }
    var disp_name = $("div#"+topic_div_name+" input[name=display_name]").val();
    var list_name = $("div#"+topic_div_name+" input[name=list_name]").val();
    $("div#"+topic_div_name+" input[name=display_name]").siblings("ul.errorlist").remove();
    $("div#"+topic_div_name+" input[name=list_name]").siblings("ul.errorlist").remove();
    $.post($("div#"+topic_div_name+" input[name=topic_url]").val(),
	  {"display_name": disp_name, "list_name": list_name},
	  function(data, textStatus) {
	      if (!$(data[0]).attr("errors")) {
		  $("#"+topic_div_name).hide();
		  if (topic_id) {
		      $("a#topic_name_"+topic_id).children("h3").val(data[0].display_name);
		      $("a#topic_name_"+topic_id).toggle()
		  } else {
		      $("#topic_success").show();
		      window.location = "/";
		  }
	      } else {
		  handleErrors(data, topic_id);
	      }
	  }, "json");
}

function dispEditTopicForm(topic_id) {
    $("a#topic_name_"+topic_id).toggle();
    $("div#topic_form_"+topic_id).toggle();
}

function delPost(post_id, delURL) {
    if (confirm("Really delete this post?")) {
	$.get(delURL, {}, function(data, textStatus) { 
	    if (!$(data[0]).attr("errors")) {
		$("li#post_"+post_id).remove();
	    } else {
		handleError(data, post_id);
	    }
	});
    }
}

function dispTestmonialForm() {
    $("div#invite_testimonials").toggle();
}

function submitTestimonialForm() {
    var emails = $("#id_email").val();
    var inv_msg = $("#id_invitation_message").html();
    $("#id_email").siblings("ul.errorlist").remove();
    $("#id_invitation_message").siblings("ul.errorlist").remove();
    $.post($("input[name=testimonial_url]").val(), {"email": emails, "invitation_message": inv_msg},
	  function (data, textStatus) {
	      if (!$(data[0]).attr("errors")) {
		  $("#invite_testimonials").hide();
		  $("#testimonial_success").show();
		  window.location = "/";
	      } else {
		  handleErrors(data);
	      }
	  }, "json");
}

function delEnd(eid, delURL) {
    if (confirm("Really delete the endorsement?")) {
	$.get(delURL, {}, function(data, textStatus){ 
	    if (!$(data[0]).attr("errors")) {
		$("li#testimonial_"+eid).remove();
	    } else {
		handleErrors(data, eid);
	    }
	});
    }
}

function dispRListForm(rlid) {
    if (arguments.length) {
	var rlist_div_name = "rlist_form_"+rlid;
    } else {
	var rlist_div_name = "rlist_form";
    }
    $("#"+rlist_div_name).toggle();
}

function submitRListForm(rlid) {
    if (rlid) {
	var rlist_div_name = "rlist_form_"+rlid;
    } else {
	var rlist_div_name = "rlist_form";
    }
    var name = $("div#"+rlist_div_name+" input[name=name]").val();
    var url  = $("div#"+rlist_div_name+" input[name=url]").val();
    $("div#"+rlist_div_name+" input[name=name]").siblings("ul.errorlist").remove();
    $("div#"+rlist_div_name+" input[name=url]").siblings("ul.errorlist").remove();
    var raction_url = $("div#"+rlist_div_name+" input[name=rlist_url]").val();
    $.post(raction_url, {"name": name, "url": url}, function(data, textStatus){ 
	if (!$(data[0]).attr("errors")) {
	    $("#"+rlist_div_name).hide();
	    window.location = "/";
	} else {
	    handleErrors(data, rlid);
	}
    });
}

function delRList(rlid, delURL) {
    if (confirm("Really delete the reading list item?")) {
	$.get(delURL, {}, function(data, textStatus){ 
	    if (!$(data[0]).attr("errors")) {
		$("li#rlist_"+rlid).remove();
		$("div#rlist_form_"+rlid).remove();
	    } else {
		handleErrors(data, rlid);
	    }
	});
    }    
}

function dispLinkForm() {
    $("#link_form").toggle();
}

function submitLinkForm() {
    var tab_name = $("#id_tab_name_link").val();
    var url  = $("#id_url_link").val();
    $("#id_tab_name_link").siblings("ul.errorlist").remove();
    $("#id_url_link").siblings("ul.errorlist").remove();
    var link_url = $("input[name=link_url]").val();
    $.post(link_url, {"tab_name": tab_name, "url": url}, function(data, textStatus){ 
	if (!$(data[0]).attr("errors")) {
	    $("#user_tabs").append("<li>&nbsp;<a href=\""+data[0].tab_url+"\">"+data[0].tab_name+"</a></li>");
	    $("#link_form").hide();
	} else {
	    handleErrors(data, "link");
	}
    });
}

function changeTheme(theme_name, theme_url) {
    $.post(theme_url, {"selected_theme": theme_name}, function (data, textStatus){ window.location = "/"; });
}

function showUploadForm() {
    $("#upload_form").toggle();
}
