// JavaScript Document
function initilize_ajax() {
  if  (window.XMLHttpRequest) {
      ajaho  =  new  XMLHttpRequest();
    } else if  (window.ActiveXObject) {      
        try {
          ajaho  = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
        try {
          ajaho  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (failed) {
      ajaho  = false;
      }
    }
  }
  return ajaho;
}//function


function ajax(file,get,xdiv,add,qtype) {

  if (xdiv == "" || xdiv == undefined) xdiv = "bufer";
  if(qtype != "POST") qtype = "GET";
  now_time= new Date();
  unix_time= now_time.getTime();

  ajaho = initilize_ajax();
  
  nav = (navigator.appVersion.indexOf("Safari") != -1) ? "Safari" : navigator.appName;
  nav = (navigator.appVersion.indexOf("Chrome") != -1) ? "Chrome" : nav;
     
  query = "&ajax=true&navigator=" + nav + "&" + unix_time + get;
  
  if(nav == "Microsoft Internet Explorer") {
    var reg = /MSIE 6/;
    arr = reg.exec(navigator.appVersion);
    if(arr != null)
    if(arr == "MSIE 6") query += "&ie6=yes";
  }//if


  if(qtype == "POST") url = file;
  else url = file + "?&" + query;
  ajaho.open(qtype,  url);
  if(qtype == "POST") {
    ajaho.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
    ajaho.setRequestHeader("Content-Length", query.length);
    ajaho.send(query);
  }//if
  ajaho.onreadystatechange  =  function() {
  if (ajaho.readyState  ==  4  &&  
      ajaho.status  ==  200) {
      response_text = ajaho.responseText;
      ajax_conditions(file,get,xdiv,add,qtype,response_text);
    }//if

  }//function
    
  if(qtype == "GET") ajaho.send(null);

}//function

function ajax_conditions(file,get,to,add,qtype,response_text)  {
  if(add == "get voting results") {
    arr0 = response_text.split("}{");
    if(arr0[0] != "") {
      arr = arr0[0].split(",");
      for(i=0;i<arr.length;i++) {
        arr2 = arr[i].split("|");
        d("vidr_"+arr2[0]).innerHTML = arr2[1] + "|" + arr2[2];  
      }//for
    }//if
    $("#text_votings_results").css("opacity","0");
    d("text_votings_results").innerHTML = arr0[1];
    $("#text_votings_results").animate({opacity:100})
  } else if(add == "vote for text") {
    yn = extract_value(get,"yn");
    vid = extract_value(get,"vid");
    if(d("vidr_"+vid).innerHTML == "") {
      if(yn == "y") {
        d("vidr_"+vid).innerHTML = "1|0";
        d("vl0_yn_yr").innerHTML = 1;
      }//if
      if(yn == "n") {
        d("vidr_"+vid).innerHTML = "0|1";
        d("vl0_yn_nr").innerHTML = 1;
      }//if
    } else {
      vidr = d("vidr_"+vid).innerHTML.split("|");
      cy = oy = vidr[0];
      cn = on = vidr[1];
      
      if(d("voting_label_y").style.display == "") {
        if(yn == "y") {
          if(response_text == "new") {
            d("vly_r").innerHTML = parseInt(d("vly_r").innerHTML) + 1;
            d("vly_r").innerHTML = "+" + d("vly_r").innerHTML;
            d("vly_yn_yr").innerHTML = parseInt(d("vly_yn_yr").innerHTML) + 1;
            cy++;
          }//if
          if(response_text == "changed") {
            d("vly_r").innerHTML = parseInt(d("vly_r").innerHTML) + 2;
            d("vly_r").innerHTML = "+" + d("vly_r").innerHTML;
            d("vly_yn_yr").innerHTML = parseInt(d("vly_yn_yr").innerHTML) + 1;
            d("vly_yn_nr").innerHTML = parseInt(d("vly_yn_nr").innerHTML) - 1;
            cy++;
            cn--;
          }//if
        } else {
          if(response_text == "new") {
            d("vly_r").innerHTML = parseInt(d("vly_r").innerHTML) - 1;
            if(parseInt(d("vly_r").innerHTML) > 0) 
              d("vly_r").innerHTML = "+" + d("vly_r").innerHTML;
            d("vly_yn_nr").innerHTML = parseInt(d("vly_yn_nr").innerHTML) + 1;
            cn++;
          }//if
          if(response_text == "changed") {
            d("vly_r").innerHTML = parseInt(d("vly_r").innerHTML) - 2;
            if(parseInt(d("vly_r").innerHTML) > 0) 
              d("vly_r").innerHTML = "+" + d("vly_r").innerHTML;
            d("vly_yn_nr").innerHTML = parseInt(d("vly_yn_nr").innerHTML) + 1; 
            d("vly_yn_yr").innerHTML = parseInt(d("vly_yn_yr").innerHTML) - 1;  
            cn++;
            cy--;          
          }//if
        }//if-else
        if(oy > on && cy < cn)
          d("vlyi").style.backgroundImage = "url(icons/bad.gif)";
        if(oy < on && cy > cn)
          d("vlyi").style.backgroundImage = "url(icons/good.gif)";
        if(cy == cn) d("vlyi").style.backgroundImage = "";
      }//if
      
      if(d("voting_label_n").style.display == "") {
        if(yn == "y") {
          if(response_text == "new") {
            d("vln_r").innerHTML = parseInt(d("vln_r").innerHTML) + 1;
            d("vln_yn_yr").innerHTML = parseInt(d("vln_yn_yr").innerHTML) + 1;
            cy++;
          }//if
          if(response_text == "changed") {
            d("vln_r").innerHTML = parseInt(d("vln_r").innerHTML) + 2;
            if(parseInt(d("vln_r").innerHTML) > 0)
              d("vln_r").innerHTML = "+" + d("vln_r").innerHTML;            
            d("vln_yn_yr").innerHTML = parseInt(d("vln_yn_yr").innerHTML) + 1;
            d("vln_yn_nr").innerHTML = parseInt(d("vln_yn_nr").innerHTML) - 1;
            cy++;
            cn--;
          }//if
        } else {
          if(response_text == "new") {
            d("vln_r").innerHTML = parseInt(d("vln_r").innerHTML) - 1;
            d("vln_yn_nr").innerHTML = parseInt(d("vln_yn_nr").innerHTML) + 1; 
            cn++;           
          }//if
          if(response_text == "changed") {
            d("vln_r").innerHTML = parseInt(d("vln_r").innerHTML) - 2;
            d("vln_yn_nr").innerHTML = parseInt(d("vln_yn_nr").innerHTML) + 1;
            d("vln_yn_yr").innerHTML = parseInt(d("vln_yn_yr").innerHTML) - 1;
            cn++;
            cy--;            
          }//if
        }//if-else
        if(oy < on && cy > cn)
          d("vlni").style.backgroundImage = "url(icons/good.gif)";
        if(oy > on && cy < cn)
          d("vlni").style.backgroundImage = "url(icons/bad.gif)";
        if(cy == cn) d("vlni").style.backgroundImage = "";
      }//if
      
      if(d("voting_label_0").style.display == "") {

        if(yn == "y") {
          if(response_text == "new") {
            d("vl0_yn_yr").innerHTML = parseInt(d("vl0_yn_yr").innerHTML) + 1;
            cy++;
          }//if
          if(response_text == "changed") {
            d("vl0_yn_yr").innerHTML = parseInt(d("vl0_yn_yr").innerHTML) + 1;
            d("vl0_yn_nr").innerHTML = parseInt(d("vl0_yn_nr").innerHTML) - 1;
            cy++;
            cn--;
          }//if
        } else {
          if(response_text == "new") {
            d("vl0_yn_nr").innerHTML = parseInt(d("vl0_yn_nr").innerHTML) + 1;
            cn++;
          }//if
          if(response_text == "changed") {
            d("vl0_yn_nr").innerHTML = parseInt(d("vl0_yn_nr").innerHTML) + 1; 
            d("vl0_yn_yr").innerHTML = parseInt(d("vl0_yn_yr").innerHTML) - 1;  
            cn++;
            cy--;          
          }//if
        }//if-else
        
      }//if 
      
      d("vidr_"+vid).innerHTML = cy + "|" + cn;    

    }//if-else
      
    or = parseInt(d("pvr").innerHTML);
    
    if(response_text == "new")  {
      if(yn == "y") {
        d("pvry").innerHTML = parseInt(d("pvry").innerHTML) + 1;
        d("pvr").innerHTML = parseInt(d("pvr").innerHTML) + 1;
        if(parseInt(d("pvr").innerHTML) > 0)
          d("pvr").innerHTML = "+" + d("pvr").innerHTML;
      }//if
      if(yn == "n") {
        d("pvrn").innerHTML = parseInt(d("pvrn").innerHTML) + 1;
        d("pvr").innerHTML = parseInt(d("pvr").innerHTML) - 1;
        if(parseInt(d("pvr").innerHTML) > 0)
          d("pvr").innerHTML = "+" + d("pvr").innerHTML;       
      }//if
    }//if
       
    if(response_text == "changed")  {
      if(yn == "y") {
        d("pvry").innerHTML = parseInt(d("pvry").innerHTML) + 1;
        d("pvrn").innerHTML = parseInt(d("pvrn").innerHTML) - 1;
        d("pvr").innerHTML = parseInt(d("pvr").innerHTML) + 2;
        if(parseInt(d("pvr").innerHTML) > 0)
          d("pvr").innerHTML = "+" + d("pvr").innerHTML;
      }//if
      if(yn == "n") {
        d("pvrn").innerHTML = parseInt(d("pvrn").innerHTML) + 1;
        d("pvry").innerHTML = parseInt(d("pvry").innerHTML) - 1;
        d("pvr").innerHTML = parseInt(d("pvr").innerHTML) - 2;
        if(parseInt(d("pvr").innerHTML) > 0)
          d("pvr").innerHTML = "+" + d("pvr").innerHTML;       
      }//if
    }//if      
    
    nr = parseInt(d("pvr").innerHTML);
    if(or < 0 && nr > 0)  {
      d("pvri").style.backgroundImage = "url(icons/good.gif)";
    }//if
    if(or > 0 && nr < 0)  {
      d("pvri").style.backgroundImage = "url(icons/bad.gif)";
    }//if
    if(nr == 0)
      d("pvri").style.backgroundImage = "";     
  } else if(add == "article steps voting") {
    if(response_text == "") return;
    step = extract_value(get, "step");
    pstep = step - 1;
    if(asvcs >= step) {
      for(i=step;;i++) {
        if(d("asv_"+i) != null) $("#asv_"+i).remove();
        else break;
      }//for
    } else
      asvcs = step;
    arr = new Array();
    arr1 = new Array();
    to_width = d(to).style.width;
    if(response_text.indexOf("|") != -1)  {
      arr = response_text.split("|");
      arr1 = arr[1].split(",");    
      d("asvcy_"+pstep).innerHTML = arr1[0];
      d("asvcn_"+pstep).innerHTML = arr1[1];    
      d("asvpy_"+pstep).innerHTML = arr1[2] + "%";
      d("asvpn_"+pstep).innerHTML = arr1[3] + "%";
      d("asvb_"+pstep).innerHTML = arr[2];
      buf = arr[0] + "<div id=\"temporary_id\" style=\"width:" + to_width + ";text-align:center;\"></div>";
    } else {
      buf = response_text + "<div id=\"temporary_id\" style=\"width:" + to_width + ";text-align:center;\"></div>";
    }//if-else
    $("#"+to).after(buf).remove();
    d("temporary_id").id = to;
      
  } else {
    target_element = d(to);
    if(target_element != null)
      target_element.innerHTML = response_text;
    if(add == "refresh") {
      setTimeout(function() {
        refresh();
      },60000);
    }//if
  }//if-else
}//function

function d(id)  {
  return document.getElementById(id);
}//function
