/* Copyright Efire Ky */

var currentajaxid = 'info'
var ajaxready = true;
var loadingtimeout = '';

/* GET-muotoinen ajax-funktio */
function ajax_get(str, id) {

  /* Jos ajax on jo käytössä ei hyväksytä uusia kyselyjä */
  //if (!ajaxready && ('currentajaxid' != 'info')) return false;

	/* Varmistetaan, että lähetettiin syöttötietoja */
	if (str.length == 0) {
		alert('"Error in ajax.ajax_get javascript parameters"')
		return
	}

	/* Luodaan xml-hakuobjekti ja tarkistetaan onnistuminen */
	xmlHttp = FetchXmlHttpObject()
	if (xmlHttp == null) {
		alert("Browser does not support HTTP Request, update it soon as possible")
		return
	}

	/* Luodaan lähetettävä get-tieto */
	var url = str
	url = url+"&ajax=1"

	/* Asetetaan palautustiedon elementin id */
	if (id) currentajaxid = id
	else currentajaxid = 'info'
	
	/* Lähetetään kysely */
	xmlHttp.onreadystatechange = stateChangedCurrentId
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)

	/* Asetetaan ajax varatuksi */
	ajaxready = false;
	releaseFocus()

	/* Näytetään latausteksti yhden sekunnin kuluttua */
	loadingtimeout = setTimeout("document.getElementById('loading').style.display=''",1000)
}

/* POST-muotoinen ajax-funktio */
function ajax_post(str, id) {

  if (!ajaxready && ('currentajaxid' != 'info')) {
    alert('Toiminto on jo käynnissä, odota hetki')
		resetInfo()
		setInfoTimeout()
		return;
	}

	if (str.length == 0) {
		alert('Error in ajax.ajax_post javascript parameters')
		return
	}

	xmlHttp = FetchXmlHttpObject()

	if (xmlHttp == null) {
		alert("Browser does not support HTTP Request, update it soon as possible")
		return
	}

	var postdata = str
	postdata = postdata+"&ajax=1"

	if (id) {
		currentajaxid = id
	} else {
	  currentajaxid = 'info'
	}
	
	xmlHttp.onreadystatechange = stateChangedCurrentId
	xmlHttp.open("POST","index.php", true)
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
	xmlHttp.send(postdata)

	ajaxready = false;
	releaseFocus()

	/* Näytetään latausteksti yhden sekunnin kuluttua */
	loadingtimeout = setTimeout("document.getElementById('loading').style.display=''",500)

}

/* Asetetaan palaute currentid-id:lle toiminnon päättyessä */
function stateChangedCurrentId() {

	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
	
	   /* Nollataan lataustimer jos se on asetettu ja poistetaan latausteksti */
	  if (loadingtimeout) {
			clearTimeout(loadingtimeout);
			document.getElementById('loading').style.display='none';
		}

		/* Päivitetään sivu jos mikään tekstilaatikko ei ole varattu */
		if (!checkFocus()) document.getElementById(currentajaxid).innerHTML = xmlHttp.responseText

    /* Asetetaan info esille ja sen häviäminen jos palautettiin ajaxvastaus infoon */
	  if (currentajaxid == 'info') {
      resetInfo()
			setInfoTimeout()
		}

		ajaxready = true
		releaseFocus()

	  /* Asetetaan virheen häviäminen jos virheteksti on asetettu, PÄIVITETTY: näyetään virheteksti ja poistetaan se sivulta*/
	  if (document.getElementById('errormessage')) {
			alert(document.getElementById('errormessage').innerHTML)
			document.body.removeChild(document.getElementById("errormessage"))
      //resetError()
			//setErrorTimeout()
		}

	}

}

/* Tehdään XmlHttpObject */
function FetchXmlHttpObject() {

	var objXMLHttp = null

  try {
		objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP")
	} catch(e) {

		try {
			objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP")
		} catch(e) {}

	}

	if (objXMLHttp==null) {
		objXMLHttp = new XMLHttpRequest()
	}

	return objXMLHttp
}

