var toggeled = Array();
function AJAXInteraction(urli, id, data, href) {
	
	var http = createRequestObject();
	http.onreadystatechange = handleResponse;
	
	function createRequestObject() {
		var ro;
		var browser = navigator.appName;

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

	function handleResponse() {
		if (http.readyState == 4) {
			var response = http.responseText;
			document.getElementById(id).innerHTML = response;
		}
	}
	
	this.doPost = function() {
		http.open('post', urli, true);
		http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http.send(data);
	}
	
	this.doGet = function() {			
		http.open('get', urli + '&' + data);
		http.send(null);			
	}
	
	this.chgHref = function() {
		document.getElementById(href).href = 'javascript:toggleGroup("' + id + '");';
		toggeled.push(id);
	}

	this.unToggle = function() {
		unToggle(id);
		document.getElementById(href).href = document.getElementById(href).href+' unToggle("' + id + '");';
	}
			
	this.showLoader = function() {
		document.getElementById(id).innerHTML = "<div style='filter:alpha(opacity=30); -moz-opacity:0.3; opacity: 0.3; position: absolute; width: 100%; height: 100%; top: 0; left: 0; background-color: #0c0c0c;' z-index: 100><img style='position: absolute; top: 50%; left: 50%;' src='<?php echo $imgUrl; ?>'></div>";
	}
	
	this.visible = function() {
		document.getElementById(id).style.display = 'block';
	}
}

function sndReq(div, urli, href, load, unToggle, method, data) {
			
	//	Luodaan uudi instanssi
	var ai = new AJAXInteraction(urli, div, data, href);

	//	Näytetään latausanimaatio
	if(load) {
		ai.showLoader();
	}

	//	Jos päivitetään togglegrouppaus
	if(href) {
		ai.chgHref();
	}

	if(unToggle) {
		ai.unToggle();
	}

	//	Otetaan yhteydet
	if(method == 'post') {
		ai.doPost();
	}
	else {
		ai.doGet();
	}
	
	//	Varmistetaan näkyvyys
	ai.visible();
	
}

function unToggle(id) {
	for (x in toggeled) {
		if(toggeled[x] != id) {
			document.getElementById(toggeled[x]).style.display = 'none';
		}
	}
}

function toggleGroup(id) {
	
	if (document.getElementById(id).style.display != 'none') {
		document.getElementById(id).style.display = 'none';
	}
	else {
		document.getElementById(id).style.display = 'block';
	}
}

function ajaxPost(formID, urli , minne, href, load, unToggle, method) {

	//document.write(urli);
	obj = document.getElementById(formID);
	getstr = "";

	for (i=0; i<obj.length; i++) {
		if (obj.elements[i].tagName == "INPUT" && obj.elements[i].value != "") {
			if (obj.elements[i].type == "text" || obj.elements[i].type == "hidden") {
				getstr += obj.elements[i].name + "=" + encodeURIComponent(obj.elements[i].value) + "&";
			}
			else if (obj.elements[i].type == "checkbox") {
				if (obj.elements[i].checked) {
					getstr += obj.elements[i].name + "=" + encodeURIComponent(obj.elements[i].value) + "&";
				}
				else {
					getstr += obj.elements[i].name + "=&";
				}
			}
			else if (obj.elements[i].type == "radio") {
				if (obj.elements[i].checked) {
					getstr += obj.elements[i].name + "=" + encodeURIComponent(obj.elements[i].value) + "&;";
				}
			}
		}
		if (obj.elements[i].tagName == "SELECT") {
			var sel = obj.elements[i];
			getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}
	}
	
	//document.write(getstr);

	sndReq(minne, urli, href, load, unToggle, method, getstr);
}
