/* 
	AJAX base (c) 2005 Kimmo Tapala
	Perustuu Mozilla.orgin alkuperäiseen AJAX-sovellusesimerkkiin
	(http://developer.mozilla.org/en/docs/AJAX:Getting_Started)
	
	Tämä tiedosto sisältää funktiot HTML-sisällön noutamiseksi 
	sivulla olevan elementin sisään.
*/

var http_request = false; // Muuttuja, josta tehdään XMLHTTP-instanssi
var emt_id = ""; // Kohde-elementin id



/*
	Funktio, joka luo XMLHTTP-instanssin ja lähettää pyynnön palvelimelle.
	Funktio saa parametrinaan seuraavat muuttujat:
		method	:	Metodi, millä pyyntö palvelimelle lähetetään ('GET', 'POST'...)
		url		:	Osoite, mihin pyyntö lähetetään
		send	:	Lähetettävä merkkijono
		
	Mikäli metodiksi valitaan 'POST', funktio vaihtaa pyynnölle oikean MIME-tyypin.
	'POST'-metodia käytettäessä sisällön tulee olla muotoa:
		name=value&anothername=othervalue&so=on

	Funktio ei tarkista saamiensa parametrien oikeellisuutta!
*/

function makeRequest(method, url, send){

	http_request = false;

	if(window.XMLHttpRequest){ // Muut selaimet
		http_request = new XMLHttpRequest();
		
		if(http_request.overrideMimeType){
			http_request.overrideMimeType('text/xml');
		}
		
	} else if(window.ActiveXObject){ // IE
		try{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch(e){
			}
		}
	}

	
	if(!http_request){
		alert("*** AJAX base: ***\n\nCould not create an XMLHTTP instance.");
		return false;
	}
	
	
	
	http_request.onreadystatechange = useContents; // Kutsutaan funktiota, joka käsittelee palvelimelta saadun sisällön, kun pyynnön valmiustila muuttuu
	http_request.open(method, url, true);
	
	if(method == 'POST'){
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	}
	
	http_request.send(send);
}






/*
	Funktio, joka vaihtaa elementin sisällöksi palvelimelta saadun HTML-
	sisällön. HTML-sisältöä ei tarkisteta!
*/

function useContents(){

	if(http_request.readyState == 4){
		if(http_request.status == 200){
			document.getElementById(emt_id).innerHTML = http_request.responseText;
			display_floatwin();
		}
		else{
			//alert('*** AJAX base: ***\n\nHTTP request failed.');
			document.getElementById(emt_id).innerHTML = "<p>*** AJAX base: ****<br /><br />HTTP request failed.</p>";
		}
	}
}



/*
	Funktio, jota voidaan kutsua sivulta kahdella parametrilla:
		id = elementin id : elementti, johon palvelimelta saatu sisältö sijoitetaan
		addr = osoite : osoite, josta sisältö haetaan HTTP-pyynnöllä
*/

function floatwin_open(id, addr){
	set_id(id);
	
	makeRequest('GET', addr, "");
	return false;
}


/*
	Funktio, jolla asetetaan kohde-elementin id
*/

function set_id(id){
	emt_id = id;
}

function display_floatwin(){
	var emt = document.getElementById(emt_id);
	emt.style.left = "119px";
}

function hide_floatwin(){
	var emt = document.getElementById(emt_id);
	emt.style.left = "-9999px";
}