// RAKENTAA XML/HTTP YHTEYDEN (SELAIMESTA RIIPPUEN)
function GetXmlHttpObject() {
  var xmlHttp = null;
  try {
    xmlHttp = new XMLHttpRequest();
  } catch (e) {
    try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}

// SUORITTAA KUTSUN PALVELIMELLE
// target = tulostuksen ohjaus (div/span)
// url = palvelintiedoston nimi
// param = annettava parametri (nyt q=param)
function ajaxquery(target, url, param) {
  var xmlHttp;
  xmlHttp = GetXmlHttpObject();
  if (xmlHttp == null) {
    alert ("Your browser does not support AJAX!");
    return;
  } 
  xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4) {
      var ajaxobj = document.getElementById(target);
      if(ajaxobj != null) {
        ajaxobj.innerHTML= ajaxobj.innerHTML + xmlHttp.responseText;
      } else {
        alert ("Couldn't find element" + target + "!");
        return;
      }
      document.getElementById(target).innerHTML= xmlHttp.responseText;
    }
  }
  var ajaxurl = "";
  ajaxurl = url + "?" + param;
  xmlHttp.open("GET", ajaxurl, true);
  xmlHttp.send(null);
}

// SUORITTAA KUTSUN PALVELIMELLE ANTAEN FORMIN TIEDOT PARAMETRINÄ
// target = tulostuksen ohjaus (div/span)
// url = palvelintiedoston nimi
// paramform = Formi josta parametrit löytyvät
function ajaxqueryform(target, url, paramform) {
  ajaxquery(target, url, FormContents(paramform));
}

// SUORITTAA KUTSUN PALVELIMELLE JA SUORITTAA VASTAUKSEN
// target = tulostuksen ohjaus (div/span)
// url = palvelintiedoston nimi
// param = annettava parametri (nyt q=param)
function ajaxqueryeval(target, url, param) {
  var xmlHttp;
  xmlHttp = GetXmlHttpObject();
  if (xmlHttp == null) {
    alert ("Your browser does not support AJAX!");
    return;
  } 
  xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4) {
      var ajaxobj = document.getElementById(target);
      if(ajaxobj != null) {
        eval(xmlHttp.responseText);
      } else {
        alert ("Couldn't find element" + target + "!");
        return;
      }
    }
  }

  var ajaxurl = "";
  ajaxurl = url + "?" + param;
  xmlHttp.open("GET", ajaxurl, true);
  xmlHttp.send(null);
}

// SUORITTAA KUTSUN PALVELIMELLE ANTAEN FORMIN TIEDOT PARAMETRINÄ
// SUORITTAA ANNETUN TEKSTIN SCRIPTINÄ
// target = tulostuksen ohjaus (div/span)
// url = palvelintiedoston nimi
// paramform = Formi josta parametrit löytyvät
function ajaxqueryformeval(target, url, paramform) {
  ajaxqueryeval(target, url, FormContents(paramform));
}


// HAKEE FORMILTA TIEDOT JA TEKEE QUERYSTRINGIN
// formname = formin nimi josta halutaan hakea parametrit
function FormContents(formname)  {
  var qstr = "";
  var frm = null;
  frm = document.getElementById(formname);
  if(frm == null) {
    return "";
  }
  for(i = 0; i < frm.length; i++) {
    var qname = "";
    var qvalue = "";
    if(frm.elements[i].type == "text") {
      qname = frm.elements[i].name;
      qvalue = frm.elements[i].value;
    }
    if(frm.elements[i].type == "hidden") {
      qname = frm.elements[i].name;
      qvalue = frm.elements[i].value;
    }
    if(frm.elements[i].type == "password") {
      qname = frm.elements[i].name;
      qvalue = frm.elements[i].value;
    }
    if(frm.elements[i].type == "textarea") {
      qname = frm.elements[i].name;
      qvalue = frm.elements[i].value;
    }
    if(frm.elements[i].type == "checkbox") {
      qname = frm.elements[i].name;
      if(frm.elements[i].checked) {
        qvalue = frm.elements[i].value;
        if(qvalue.length == 0) {
          qvalue = "1";
        }
      }
    }
    if(frm.elements[i].type == "radio") {
      if(frm.elements[i].checked) {
        qname = frm.elements[i].name;
        qvalue = frm.elements[i].value;
      }
    }
    if(frm.elements[i].type == "select-one") {
      qname = frm.elements[i].name;
      if(frm.elements[i].checked) {
        qvalue = frm.elements[i].options[frm.elements[i].selectedIndex];
      }
    }
    if(frm.elements[i].type == "select-multiple") {
      qname = frm.elements[i].name;
      qvalue = "Please don't ever use multi-checkboxes";
    }
    if(qname.length > 0) {        
      if(qstr.length > 0) {
        qstr += "&";
      }
      qstr += qname + "=" + qvalue;
    }
  }
  return qstr;
}

