    function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        ro = new XMLHttpRequest();
    }
    return ro;
  }

  var http = createRequestObject();
  var toHide = -1;

  function killoldstuff() {
    if(document.getElementById('kysymykset')) {
      var kyss = document.getElementById('kysymykset').getElementsByTagName('div');
      for (var i = 0; i < kyss.length; i++) {
        if (kyss[i] != null && kyss[i].id != null ) {
          if (kyss[i].id.length > 4 && kyss[i].id.substring(0,4) == 'kys-') {
            if (kyss[i].style.display=='none') {
              kyss[i].remove();
            }
          }
        }
      }
    }
  }

  function submitAndHide(kys,vas) {
    killoldstuff();
    toHide = kys;
    var requri = '/tulokset.php?k=' + kys + '&v=' + vas;
    if (document.getElementById('tark-'+kys)) {
      if (document.getElementById('tark-'+kys).checked) {
        requri += '&t=2';
      }
    }
    http.open('get',requri);
    http.onreadystatechange = handleTulokset;
    http.send(null);
    return false;
  }

  function hideAndSubmit(e) {
    if (!e) var e = window.event;
    var relTarg = e.target || e.srcElement;
    var arr = relTarg.id.split("-");
    killoldstuff();
    var kys = arr[1];
    var vas = arr[2];
    toHide = kys;
    displaywaitmessage(kys);
    var requri = '/tulokset.php?k=' + kys + '&v=' + vas;
    if (document.getElementById('tark-'+kys)) {
      if (document.getElementById('tark-'+kys).checked) {
        requri += '&t=2';
      }
    }
    http.open('get',requri);
    http.onreadystatechange = handleTulokset;
    http.send(null);
    return false;
  }
  
  function displaywaitmessage(kys) {
    var el = document.getElementById('kys-'+kys);
    if (el) {
      el.style.height = el.clientHeight + 'px';
      el.innerHTML = 
        '<p style="text-align:center;font-weight:bold;">Odota hetki, tuloksia päivitetään...</p>';
    }
  }
  
  function hidekys(kys) {
    killoldstuff();
    toHide = kys;
    http.open('get','/uusikysymys.php');
    http.onreadystatechange = handleUusiKysymys2;
    http.send(null);
  }

  function handleTulokset() {
    if (http.readyState == 4) {
      document.getElementById('tulokset').innerHTML = http.responseText;
      http.open('get','/vastaukset.php?kys='+toHide);
      http.onreadystatechange = handleVastaukset;
      http.send(null);
    }
  }
  
  function handleUusiKysymys() {
    if (http.readyState == 4) {
      document.getElementById('kysymykset').innerHTML = 
        document.getElementById('kysymykset').innerHTML + http.responseText;
      //new Effect.Highlight('tulokset');
      new Effect.Puff('kys-' + toHide, { queue: 'end' });
      klikit();
    }
  }

  function handleUusiKysymys2() {
    if (http.readyState == 4) {
      document.getElementById('kysymykset').innerHTML = 
        document.getElementById('kysymykset').innerHTML + http.responseText;
      new Effect.Puff('kys-' + toHide);
      klikit();
    }
  }
  
  function handleVastaukset() {
    if (http.readyState == 4) {
      document.getElementById('vastaukset').innerHTML = http.responseText;
      http.open('get','/uusikysymys.php');
      http.onreadystatechange = handleUusiKysymys;
      http.send(null);
    }
  }

  var klikit = function() {
    // response onclicks
    var el = document.getElementById('kysymykset').getElementsByTagName('a');
    for (var i = 0; i < el.length; i++) {
      if (el[i] != undefined && el[i].className != null && el[i].className == 'vastaus') {
        el[i].onclick = function(e) { hideAndSubmit(e); return false; };
      }
    }
    // IE labels
    if(document.all && navigator.appVersion.indexOf("MSIE")>-1 && navigator.appVersion.indexOf("Windows")>-1)
    {
      var a = document.getElementsByTagName("label");
      for(var i=0,j=a.length;i<j;i++){
        if(a[i].hasChildNodes && a[i].childNodes.item(0).tagName == "IMG")
        {
          a[i].childNodes.item(0).forid = a[i].htmlFor;
          a[i].childNodes.item(0).onclick = function(){
            var e = document.getElementById(this.forid);
            switch(e.type){
              case "radio": e.checked|=1;break;
              case "checkbox": e.checked=!e.checked;break;
              case "text": case "password": case "textarea": e.focus(); break;
            }
          }
        }
      }
    }
  };

  window.onload = klikit;
