/*
comment_bit.html

cr{comment_id}          = <div> for rating number
crv{comment_id}         = <div> for votes number
cimglg{comment_id}      = <a href=""> for image "good"
cimglb{comment_id}      = <a href=""> for image "bad"
cimgg{comment_id}       = <img> for image "good"
cimgb{comment_id}       = <img> for image "bad"
cih{comment_id}         = <img> for image "very bad" (plus.png/minus.png)
cilh{comment_id}        = <a href=""> for image "very bad" (plus.png/minus.png)
commentbox{comment_id}  = <div> for single comment
cmsg{comment_id}        = title="" for an element where a tooltip message will be used.
*/


var Page;
var PerPage;
function ajaxCommentsResponse(param, text)
{
  var rsp = ajaxTagsFilter(text, ['error', 'msg', 'comment', 'page', 'perpage', 'paging', 'pagingstats', 'type', 'clear', 'eval']); //accepted tags
  rsp['error'] = parseInt(rsp['error']);
  rsp['type'] = parseInt(rsp['type']);
  rsp['page'] = parseInt(rsp['page']);
  rsp['perpage'] = parseInt(rsp['perpage']);
  rsp['clear'] = parseInt(rsp['clear']);
  if (rsp['page'] !== '')
    Page = rsp['page'];
  if (rsp['perpage'] !== '')
    PerPage = rsp['perpage'];
  var commentformmsg = ajaxGetObject('commentformmsg');
  var commentstable = ajaxGetObject('commentstable');

  var paging = ajaxGetObject('paging');
  var paging2 = ajaxGetObject('paging2');
  var pagingtable = ajaxGetObject('pagingtable');
  var pagingtable2 = ajaxGetObject('pagingtable2');
  var pagingstats = ajaxGetObject('pagingstats');

  if (rsp['clear'])
  {
    if (typeof param[4].comment_headline != "undefined")
      param[4].comment_headline.value = "";
    if (typeof param[4].comment_text != "undefined")
      param[4].comment_text.value = "";
  }
  if (rsp['clear'] || rsp['error'])
  {
    if (ajaxGetObject('captcha_image'))
    {
      new_captcha_image();
    }
    if (ajaxGetObject("captcha_input"))
    {
      ajaxGetObject("captcha_input").value = "";
    }
  }
  if (commentformmsg && rsp['msg'])
  {
    commentformmsg.innerHTML = rsp['msg']+"<br /><br />";
  }
  if (rsp['paging'])
  {
    if (rsp['paging'] != "null")
    {
      if (paging)
      {
        paging.innerHTML = rsp['paging'];
      }
      if (pagingtable)
      {
        pagingtable.style.display = "inline";
      }
      if (paging2)
      {
        paging2.innerHTML = rsp['paging'];
      }
      if (pagingtable2)
      {
        pagingtable2.style.display = "inline";
      }
    }
  }
  else
  {
    if (pagingtable)
    {
      pagingtable.style.display = "none";
    }
    if (pagingtable2)
    {
      pagingtable2.style.display = "none";
    }
  }
  if (pagingstats && rsp['pagingstats'])
  {
    pagingstats.innerHTML = rsp['pagingstats'];
  }
  if (commentstable && rsp['comment'])
  {
    var t = commentstable.innerHTML;
    var i = t.lastIndexOf("<!--COMMENTEND-->");
    var e = t.substr(i);
    if (rsp['type'])
    {
      i = t.indexOf("<!--COMMENTSTART-->") + 19;
    }
    var s = t.substr(0,i);
    commentstable.innerHTML = s + rsp['comment'] + e;
    ajaxCommentBG = (ajaxCommentBG++ > 1) ? 1 : 2;
  }
  if (rsp['eval'])
  {
    eval(rsp['eval']);
  }
}
function ajaxCommentSubmit(obj, Url)
{
  var Query = ajaxGetFormQuery(obj,['page', Page]);
  var Url = ajaxCommentsUrl + (ajaxCommentsUrl.indexOf("?") != -1 ? '&' : '?') + "js&commentbg=" + ajaxCommentBG + "&" + Url.substring(Url.search("\\?")+1);
  return !ajaxSend([ajaxCommentsResponse,Url,"POST",Query,obj]);
}
//comment vote related:
function aCTog(cid)
{
  var ct = ajaxGetObject("commentbox"+cid);
  var obj = ajaxGetObject("cih"+cid);
  
  if (obj.src.search("plus.png") != -1)
  {
    obj.src = obj.src.replace("/plus.png", "/minus.png");
  	ct.style.display="block";
  }
  else
  {
    obj.src = obj.src.replace("/minus.png", "/plus.png");
  	ct.style.display="none";
  }
  return false;
}
function ajaxCommentVoteResponse(param, text)
{
  var obj = param[4];
  var cid = param[5];
  var rsp = ajaxTagsFilter(text, ['error', 'rating', 'votes', 'status', 'msg', 'eval']); //accepted tags
  rsp['rating'] = parseInt(rsp['rating']);
  rsp['votes'] = parseInt(rsp['votes']);
  rsp['error'] = parseInt(rsp['error']);
  rsp['status'] = parseInt(rsp['status']);

  var cr                = ajaxGetObject('cr'+cid); //rating number
  var crv               = ajaxGetObject('crv'+cid); //votes number
  var cimglg            = ajaxGetObject('cimglg'+cid); //link to "good"
  var cimglb            = ajaxGetObject('cimglb'+cid); //link to "bad"
  var cimgg             = ajaxGetObject('cimgg'+cid); //image "good"
  var cimgb             = ajaxGetObject('cimgb'+cid); //image "bad"
  var cih               = ajaxGetObject('cih'+cid); //image for hidden (very bad) comment
  var cilh              = ajaxGetObject('cilh'+cid); //link image for hidden (very bad) comment
  var commentbox        = ajaxGetObject('commentbox'+cid); //the comment text box
  var cmsg              = ajaxGetObject('cmsg'+cid); //vote message for on mouse over tooltip'

  var commentratingmsg  = ajaxGetObject('commentratingmsg'); //vote message box
  if (!rsp['error'])
  {
    if (cr) //rating number
    {
      cr.innerHTML = (rsp['rating'] > 0 ? "+" : "")+rsp['rating'];
      cr.className = "comment_rating"+(rsp['rating'] > 0 ? 1 : (rsp['rating'] < 0 ? 2 : 0));
    }
    if (crv) //votes number
    {
      crv.innerHTML = rsp['votes'];
    }
  }
  else
  {
    //error vote
  }
  if (rsp['status'])
  {
    if (cimglg) //link to "good"
    {
      cimglg.removeAttribute("href");
      cimglg.removeAttribute("onclick");
    }
    if (cimglb) //link to "bad"
    {
      cimglb.removeAttribute("href");
      cimglb.removeAttribute("onclick");
    }
    if (cimgg) //image "good"
    {
      cimgg.src=cimgg.src.replace("good.png", "good_off.png");
    }
    if (cimgb) //image "bad"
    {
      cimgb.src=cimgb.src.replace("bad.png", "bad_off.png");
    }

    if (cih) //image for hidden (very bad) comment
    {

      if (rsp['rating'] <= ajaxCommentRatingHide) //hide message 
      {
        if (cilh)
        {
          cilh.style.display="inline";
        }
        if (commentbox) //the comment text
        {
          if (cih.src.search("plus.png") != -1)
          {
            commentbox.style.display="none";
          }
        }
      }
      else
      {
        if (cilh)
        {
          cilh.style.display="none";
        }
        if (commentbox) //the comment text
        {
          if (commentbox.style.display == "none")
          {
            commentbox.style.display="block";
          }
        }
      }
    }
  }
  if (commentratingmsg && rsp['msg'])
  {
    commentratingmsg.innerHTML = rsp['msg'];
  }
  if (cmsg && rsp['msg'])
  {
    cmsg.title = rsp['msg'].replace(/(<br(\s+\/)?>|\r\n|\n)/ig, " ").replace(/<\/?[^>]+(>|$)/g, "");
  }
  if (rsp['eval'])
  {
    eval(rsp['eval']);
  }
}
function aCVote(obj,cid,r)
{
  var Url = ajaxCommentsUrl + (ajaxCommentsUrl.indexOf("?") != -1 ? '&' : '?') + 'js&action=ratingset&' + URL_ID + '=' + cid + '&mode=' + r;
 return !ajaxSend([ajaxCommentVoteResponse,Url,"GET",null,obj,cid,r]);
}




function CommentsPage(obj)
{
  var href = obj.getAttribute("href");
  var Query = href.substr(href.indexOf("?")+1);
  var Url = ajaxCommentsUrl + (ajaxCommentsUrl.indexOf("?") != -1 ? '&' : '?') + 'js&action=commentget&' + Query;
  return !ajaxSend([ajaxCommentsResponse, Url, "GET", null, obj]);
}

function CommentsPerPage(obj)
{
  var Query = ajaxGetFormQuery(obj);
//  var Query = ajaxGetFormQuery(obj,['page', Page]); // use this line if you want stay on the same page number
  var Url = ajaxCommentsUrl + (ajaxCommentsUrl.indexOf("?") != -1 ? '&' : '?') + 'js&action=commentget&' + (obj.getAttribute('action').indexOf("?") != -1 ? obj.getAttribute('action').substring(obj.getAttribute('action').search("\\?")+1) : '');
  return !ajaxSend([ajaxCommentsResponse, Url, "POST", Query, obj]);
}