SEESenv/web/javascript/hsbook.js
author amit@thunder
Fri, 12 Feb 2010 01:11:21 +0530
changeset 2 52d12eb31c30
parent 0 web/javascript/hsbook.js@8083d21c0020
permissions -rwxr-xr-x
Virtual enviroment for SEES-hacks added ...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     1
function qid(id) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     2
  return id.replace(/([.:])/g, "\\$1");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     3
}
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     4
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     5
function beforeComment(formData, jqForm, options) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     6
  var form = jqForm[0];
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     7
  if (!form.comment.value) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     8
    $(options.target + " span.comment_error").empty().append(
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     9
      "<span class=\"comment_error\">Your comment is empty</span>");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    10
    return false;
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    11
  }
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    12
  if (!form.name.value) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    13
    $(options.target + " span.comment_error").empty().append(
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    14
      "<span class=\"comment_error\">Please provide a name</span>");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    15
    return false;
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    16
  }
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    17
  $(options.target + " span.comment_error").empty().after(
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    18
    "<img src=\"figs/throbber.gif\" style=\"vertical-align: middle\"/>");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    19
  $(options.target + " input[@name=submit]").attr("disabled", true);
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    20
}
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    21
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    22
function ajaxifyForm(id) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    23
  var q = qid(id);
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    24
  
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    25
  $("#form_" + q).ajaxForm({ beforeSubmit: beforeComment,
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    26
			     success: function() { ajaxifyForm(id); },
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    27
			     target: "#comments_" + q });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    28
}
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    29
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    30
function toggleComment(id) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    31
  $("#toggle_" + qid(id)).nextAll().toggle();
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    32
  return false;
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    33
}
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    34
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    35
function loadComments(id) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    36
  $("#comments_" + qid(id)).load(location.protocol + "//" + location.host +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    37
				 "/comments/single/" + id + "/", function() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    38
    ajaxifyForm(id);
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    39
  });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    40
  return false;
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    41
}
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    42
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    43
function loadAllComments() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    44
  $("a.commenttoggle").each(function() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    45
    var id = $(this).attr("pid");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    46
    if (id) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    47
      loadComments(id);
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    48
    }
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    49
  });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    50
}
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    51
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    52
$(document).ready(function() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    53
  function loading(id) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    54
    return " <span id=\"comments_" + id + "\" class=\"comment\">" +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    55
      "<span pid=\"" + id + "\" class=\"commenttoggle\">Loading..." +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    56
      "</span></span>";
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    57
  }
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    58
  $("div.toc>p")
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    59
    .after("<p style='display: none;'><a onclick='return loadAllComments()'>" +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    60
	   "Load all comments (<b>slow</b>)</a></p>")
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    61
    .toggle(function() { $(this).nextAll().show("normal"); },
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    62
	    function() { $(this).nextAll().hide("normal"); })
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    63
    .hover(function() { $(this).fadeTo("normal", 0.8); },
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    64
	   function() { $(this).fadeTo("normal", 0.35); });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    65
  $("p[@id]").each(function() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    66
    $(this).append(loading($(this).attr("id")));
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    67
  });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    68
  $("table[@id].equation").each(function() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    69
    $(this).after(loading($(this).attr("id")));
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    70
  });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    71
  $("pre[@id]").each(function() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    72
    $(this).after(loading($(this).attr("id")));
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    73
  });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    74
  var chapid = $("body, div.preface, div.chapter, div.appendix, div.bibliography").attr("id");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    75
  $("#chapterfeed").attr("href",
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    76
			 $("#chapterfeed").attr("href") + chapid + "/");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    77
  $.getJSON(location.protocol + "//" + location.host + "/comments/chapter/" +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    78
	    chapid + "/count/", function(data) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    79
    $.each(data, function(id, item) {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    80
      var s = item == 1 ? "" : "s";
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    81
      $("#comments_" + qid(id) + " span.commenttoggle").replaceWith(
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    82
        "<a class='commenttoggle' id='toggle_" + id + "' " +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    83
	"pid='" + id + "' " +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    84
	"onclick='return loadComments(\"" + id + "\")' " +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    85
	"href='comments: show / hide'>" + item + " comment" + s + "</a>");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    86
    });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    87
    $("span.commenttoggle").each(function() {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    88
      var id = $(this).attr("pid");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    89
      $(this).replaceWith("<a class='commenttoggle' id='toggle_" + id + "' " +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    90
			  "onclick='return loadComments(\"" + id + "\")' " +
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    91
			  "href='comment: add'>No comments</a>");
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    92
    });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    93
  });
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    94
});