var httpCommentsPhpUrl = "AJAX/comments.php";

var globalArtId = 0;
var globalPart = 'nothing';
var globalPath = '';

var totalCommentsToShow = new Array();
var minLevelOfComm = new Array();
var dontHideGlobal = false;
var minCommConstant = 0;
var maxCommConstant = 10;

function displayCommentBox(artId, dontHide, part){
  
  var commentBox = document.getElementById("comment_box_" + artId);
  var comments_added = document.getElementById("comments_added_" + artId);
  var commentCountElement = document.getElementById("comment_count_" + artId);
  var commentsToolbox = document.getElementById("comments_toolbox_" + artId);
  
  if((commentBox.style.display == "none" || !commentBox.style.display) || dontHide){
    commentBox.style.display = "block";
    comments_added.style.display = "block";
    commentsToolbox.style.display = "block";
    
    if(dontHide){
      dontHideGlobal = true;
    }else if(commentCountElement.innerHTML != ''){
      comments_added.innerHTML = "<div id=\"loading\"><img src=\""+globalPath+"images/progressbar.gif\"></div>";
    }
    
    if ((httpComments.readyState == 4 || httpComments.readyState == 0) && commentCountElement.innerHTML != '') {
      
      //return false;  
      globalArtId = artId; 
      globalPart = part;
      
      param = 'do=view&artid='+artId+'&row_count=' + totalCommentsToShow[artId] + '&minToShow=' + minLevelOfComm[artId] + '&part='+part;
      httpComments.open("POST",httpCommentsPhpUrl, true);
      httpComments.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpComments.onreadystatechange = handleComments; 
      httpComments.send(param);
    }
  }else{
    commentBox.style.display = "none";
    commentsToolbox.style.display = "none";
    comments_added.style.display = "none";
    comments_added.innerHTML = "";
  }
}

function comments_init(path){
  
  globalPath = path;
  httpCommentsPhpUrl = path + httpCommentsPhpUrl;
  var artidCountObject = document.getElementById("comments_artid_count_1");
  
  if(artidCountObject){
    var total_article_rows = parseInt(artidCountObject.value);
    var idsStr = "";
    var part = "";
    
    var commentPartElement = document.getElementById("comments_part_");
    if(commentPartElement)part = commentPartElement.value;
    
    for(var i = 1; i <= total_article_rows; i++){
      var commentElement = document.getElementById("comments_" + i);
      
      
      if(commentElement && part!=""){
        if(i!=1)idsStr = idsStr + ",";
        var artId = '' + commentElement.attributes['name'].value;  
        commentElement.innerHTML = "<a id=\"doComentA\" href=\"#\" onclick=\"displayCommentBox('"+artId+"', false, '"+part+"'); return false;\">Komentāri</a>&nbsp;<span id=\"comment_count_"+artId+"\"></span>";
        idsStr = idsStr + artId;
        var arIdInt = parseInt(artId);   
        totalCommentsToShow[arIdInt] = maxCommConstant;
        minLevelOfComm[arIdInt] = minCommConstant;  
      }else{
        break;
      }
    }
  
    if (httpComments.readyState == 4 || httpComments.readyState == 0) {    
      param = 'do=getcounts&artids=' + idsStr + '&part=' + part;  
      httpComments.open("POST",httpCommentsPhpUrl, true);
      httpComments.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpComments.onreadystatechange = handleCommentCounts; 
      httpComments.send(param);
    }
  }
}

function submitComment(artId, part){
  
  if(!artId) return false;
  
  var email = document.getElementById("comment_email_"+artId);
  var nick = document.getElementById("comment_nick_"+artId);
  var towho = document.getElementById("comment_towho_"+artId);
  var text = document.getElementById("comment_text_"+artId);
  var error = document.getElementById("comment_error_"+artId);
  var nc_authcode = document.getElementById("nc_authcode_"+artId);
  
  if(error) error.innerHTML = '';
  
  /*if(text.value.length > 2){
    alert(text.value.length);
    error.innerHTML = " * Teksts parak garš :(";
    return false;
  }*/
  
  if(nick.value == "" || text.value == "" || nc_authcode.value == ""){
    error.innerHTML = "* Niks, teksts, aut. kods obligāti lauki!";
    return false;
  }
  
  
  if(httpComments.readyState == 4 || httpComments.readyState == 0) {    
    globalArtId = artId;
    globalPart = part;
    param = 'do=update&artid='+artId+'&email='+email.value+'&nick='+nick.value+'&towho='+towho.value+'&text='+text.value+'&nc_authcode='+nc_authcode.value+'&part='+part; 
    httpComments.open("POST",httpCommentsPhpUrl, true);
    httpComments.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    httpComments.onreadystatechange = handleComments; 
    httpComments.send(param);
  }
  
  //nc_authcode.value = '';
  //towho.value = '';
 // text.value = '';
  
  delete(email);
  delete(nick);
  delete(towho);
  delete(text);
  delete(error);
  
}

function handleCommentCounts(){
  
  if (httpComments.readyState == 4) {

    var results = httpComments.responseText;
    var count_row = results.split("--");
    
    for(var i = 0; i < count_row.length - 1; i++){
      var artidandcount = count_row[i].split("::");
      var commentElement = document.getElementById("comment_count_" + artidandcount[0]);
      
      if(commentElement){
        commentElement.innerHTML = "/<b>"+artidandcount[1]+"</b>";
      }
    }
  }
}

function handleComments(){
  if (httpComments.readyState == 4) {

    results = httpComments.responseText;    
    
    //alert(results); return false;
    
    var commentsShowAll = document.getElementById("comments_show_all_" + globalArtId);
    var comments_added = document.getElementById("comments_added_" + globalArtId);
    var firstCommChild = comments_added.firstChild;
    var commentCountElement = document.getElementById("comment_count_" + globalArtId);
    var nmbrWithQutes = commentCountElement.innerHTML;
    
    var numberExp = new RegExp("\\d+","g");
    var new_comm_count = 0;
    var comm_count = numberExp.exec(nmbrWithQutes);
    
    if(comm_count){
      new_comm_count = parseInt(comm_count);
    }

    delete(nmbrWithQutes);
    delete(numberExp);
    delete(comm_count);
    
    //alert(firstCommChild.id);
    
    if(firstCommChild && !dontHideGlobal && results.indexOf("<") != -1 && firstCommChild.id != 'loading'){
      //alert(totalCommentsToShow[globalArtId]);
      commentsShowAll.checked = false;
      
      //new_comm_count++;
      
      var min = parseInt(new_comm_count / maxCommConstant) * maxCommConstant;
      new_comm_count++;
      
      totalCommentsToShow[globalArtId] = maxCommConstant;
      minLevelOfComm[globalArtId] = min;
      
      commentCountElement.innerHTML = "/<b>"+new_comm_count+"</b>";
      displayCommentBox(globalArtId, true, globalPart);
      clearFields(globalArtId);
    }else if(results.indexOf("<") == -1){
      dontHideGlobal = false;
      var error = document.getElementById("comment_error_"+globalArtId);
      error.innerHTML = results;
    }else{
      if(new_comm_count == 0){
        dontHideGlobal = false;
        new_comm_count++;
        commentCountElement.innerHTML = "/<b>"+new_comm_count+"</b>";
        displayCommentBox(globalArtId, true, globalPart);
        clearFields(globalArtId)
      }else{
        dontHideGlobal = false;
        comments_added.innerHTML = "<div id=\"comment_each_added\">" + results + "</div>";
        clearFields(globalArtId) 
      }
    }
    
    var authimagerefresh = document.getElementById("comm_auth_image_" + globalArtId);
    authimagerefresh.src = globalPath + "images/authcode.img.php?part="+globalPart+"&ID=" + globalArtId + "&t=" + (new Date()).getTime();
    
    commentPagesProcessor(globalArtId, new_comm_count, globalPart);
    
    //totalCommentsToShow    
    //getToWho(globalArtId);
    
    delete(new_comm_count);
    delete(results);
    delete(globalArtId);
    delete(globalPart);
    
  }
}

function clearFields(artId){

  var towho = document.getElementById("comment_towho_"+artId);
  var text = document.getElementById("comment_text_"+artId);
  var nc_authcode = document.getElementById("nc_authcode_"+artId);
  
  nc_authcode.value = '';
  towho.value = '';
  text.value = '';
  
  //document.body.scrollTop = 180; 
}

function showAllPages(artId, part){
  var commentsShowAll = document.getElementById("comments_show_all_" + artId);
  if(commentsShowAll.checked){
    totalCommentsToShow[artId] = 400;
    minLevelOfComm[artId] = 0;
    displayCommentBox(artId, true, part);
  }else{
    totalCommentsToShow[artId] = maxCommConstant;
    minLevelOfComm[artId] = minCommConstant;
    displayCommentBox(artId, true, part);
  }  
}

/*
function getToWho(artId){  
  if (httpCommentsToWho.readyState == 4 || httpCommentsToWho.readyState == 0) {     
    param = 'do=getToWhoList&artId=' + artId;
    httpCommentsToWho.open("POST",httpCommentsPhpUrl, true);
    httpCommentsToWho.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    httpCommentsToWho.onreadystatechange = handleCommentsToWho; 
    httpCommentsToWho.send(param);
  }
}
*/

function commentPagesProcessor(artId, count, part){
  //alert(count);
  var commentsToolbox = document.getElementById("comment_pages_" + artId);
  var pager = 0;
  if(parseInt(totalCommentsToShow[artId]) < parseInt(count)){
     pager = count / totalCommentsToShow[artId];
     commentsToolbox.innerHTML = '';
  }
  
  var smartPageShower = 1;
  if(minLevelOfComm[artId] != 0){
    smartPageShower = (minLevelOfComm[artId] / maxCommConstant) + 1;
  }

  for(var i = 1; i < pager + 1; i++){
    var min = (i - 1) * totalCommentsToShow[artId];
    var max = totalCommentsToShow[artId];
    
    if(i == smartPageShower)
      commentsToolbox.innerHTML = commentsToolbox.innerHTML + " " + "<a href=\"\" onclick=\"switchPageCounters("+min+","+max+","+artId+");displayCommentBox('"+artId+"', true, '"+part+"'); return false;\"><b>" + i + "</b></a>";
    else
      commentsToolbox.innerHTML = commentsToolbox.innerHTML + " " + "<a href=\"\" onclick=\"switchPageCounters("+min+","+max+","+artId+");displayCommentBox('"+artId+"', true, '"+part+"'); return false;\">" + i + "</a>";
  }
  //alert(commentsToolbox.innerHTML);
  //minLevelOfComm
  //totalCommentsToShow
}

function switchPageCounters(min, max, artId){
  var commentsShowAll = document.getElementById("comments_show_all_" + artId);
  commentsShowAll.checked = false;
  minLevelOfComm[artId] = min;
  totalCommentsToShow[artId] = max;
}

function refreshAuthCode(artId){
  var authimagerefresh = document.getElementById("comm_auth_image_" + artId);
  authimagerefresh.src = globalPath + "images/authcode.img.php?part="+globalPart+"&ID=" + globalArtId + "&t=" + (new Date()).getTime();  
}

function checkEmailField(field){
  if(field.value == "tavs e-pasts") field.value = "";
  else if(field.value == "") field.value="tavs e-pasts";
}

function getHTTPObject() {
  var xmlhttp;
  //alert(typeof XMLHttpRequest);
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

/*function init(){
  loadLoginData();
  checkNoticeAlert();
  comments_init('');
}*/

//window.onload = init;

var httpComments = getHTTPObject();
var httpCommentsToWho = getHTTPObject();
