blog.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * Toggles a drop-down list.
  3. * @param name. Element name, same as the id without the 'list_'.
  4. */
  5. function toggleElement(name){
  6. if (document.getElementById("list_" + name).clientHeight > 0){
  7. document.getElementById("list_" + name).style.maxHeight = '0em';
  8. setTimeout(function(){document.getElementById('slid_' + name).src = '/img/misc/slid-right.png';}, 500);
  9. }
  10. else{
  11. document.getElementById("list_" + name).style.maxHeight = '90em';
  12. setTimeout(function(){document.getElementById('slid_' + name).src = '/img/misc/slid-down.png';}, 500);
  13. }
  14. document.getElementById('slid_' + name).style.opacity = '0';
  15. setTimeout(function(){document.getElementById('slid_' + name).style.opacity = '1';}, 500);
  16. }
  17. /**
  18. * Redirects to the search page.
  19. * @param where Only valid value: 'todo'.
  20. */
  21. function launchSearch(where){
  22. text = document.getElementById("search_panel_input").value;
  23. if (text.length > 0)
  24. window.location.href = "/blog/buscar/" + where + "/" + text;
  25. }
  26. /**
  27. * Returns an input element to it's default borders once an error
  28. * has been corrected.
  29. * WARNING: If changed in css, change here.
  30. * @param id The element whose border must be altered.
  31. */
  32. function defaultInputBorder(id){
  33. id.style.border = '0.2em solid #0078ff'
  34. }
  35. /**
  36. * Posts a comment in the blog. Checks required fields and
  37. * makes an AJAX request. Also it inserts the comment in
  38. * the page without needingo to reload.
  39. * @param post Post ID.
  40. * @param lang User language.
  41. */
  42. function postComment(post, lang){
  43. //Get field values
  44. var text = document.getElementById('new_comment_text').value;
  45. var user = document.getElementById('new_comment_user').value;
  46. //Check fields
  47. if (text.length == 0){
  48. defaultBorderStyle = document.getElementById('new_comment_text').style.border;
  49. document.getElementById('new_comment_text').style.border = '0.2em solid #fc5359';
  50. document.getElementById('new_comment_text').focus();
  51. return false;
  52. }
  53. if (user.length == 0){
  54. document.getElementById('new_comment_user').style.border = '0.2em solid #fc5359';
  55. document.getElementById('new_comment_user').focus();
  56. return false;
  57. }
  58. //Load page
  59. if(XMLHttpRequest){
  60. var x = new XMLHttpRequest();
  61. }
  62. else { // IE v<7
  63. var x = new ActiveXObject("Microsoft.XMLHTTP");
  64. }
  65. x.open("POST", "/blog/comment.php", true);
  66. var params = "from=web&post=" + post + "&user=" + user + "&text=" + text + "&lang=" + lang;
  67. x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  68. x.onreadystatechange = function(){
  69. if(x.readyState == 4){
  70. if(x.status == 200){
  71. document.getElementById('comment_list').innerHTML = x.responseText;
  72. document.getElementById('new_comment_text').value = '';
  73. document.getElementById('new_comment_user').value = '';
  74. }
  75. }
  76. }
  77. x.send(params);
  78. return false;
  79. }