var http_request = false;
var slot = 15;
/*
function ajax_paivita(elementti) {
	var lomake = document.forms['lomake_'+elementti];
	lomake.laheta.value = "lähtee..";
	lomake.laheta.disabled = true;
	querystring = 'elementti='+elementti;
	for (var i=0; i<lomake.elements.length; i++) {
		querystring += '&'+lomake.elements[i].name + '=' + lomake.elements[i].value;
	}
	alert(querystring);

	var xmlHttpReq = false;
	var self = this;

	if (window.XMLHttpRequest) { // Mozilla/Safari
		self.xmlHttpReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	self.xmlHttpReq.open('POST', '/ajax', true);
	self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	self.xmlHttpReq.onreadystatechange = function() {
		if (self.xmlHttpReq.readyState == 4) {
//			elementti.style.backgroundColor='#ffffff';
			document.getElementById('div_'+elementti).innerHTML = self.xmlHttpReq.responseText;
		}
	}
	self.xmlHttpReq.send(querystring);
}
/**/
function haeUusiDIV(querystring,outputDIV) {
	var xmlHttpReq = false;
	var self = this;

	if (window.XMLHttpRequest) { // Mozilla/Safari
		self.xmlHttpReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	self.xmlHttpReq.open('POST', '/ajax', true);
	self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	self.xmlHttpReq.onreadystatechange = function() {
//		debug = document.getElementById('slogan-text');
//		debug.innerHTML = "readyState: "+self.xmlHttpReq.readyState;
		if (self.xmlHttpReq.readyState == 4)
		{
//			debug.innerHTML += "<br>status: "+self.xmlHttpReq.status;
			if (self.xmlHttpReq.status == 200)
			{
				var response = self.xmlHttpReq.responseText;
//				debug.innerHTML += "<br>response.length: "+response.length;

				if (response.length != 0 && response != null)
				{
//					debug.innerHTML += "<br>outputDIV: "+outputDIV;
					document.getElementById(outputDIV).innerHTML = response;
				}
			} else {
//				debug.innerHTML = 'Error!<br/>'+self.xmlHttpReq.status+' : '+self.xmlHttpReq.statusText+'<br/>'+querystring+'<br/>'+self.xmlHttpReq.responseText;
			}
		}
//		if (self.xmlHttpReq.readyState == 4) {
//			document.getElementById(outputDIV).innerHTML = self.xmlHttpReq.responseText;
//			tarkistaInputFocus(outputDIV);
//		}
	}
//	alert(querystring+outputDIV);
	self.xmlHttpReq.send(querystring);
}
/**/
function paivitaDIV(lomake) {
	var isIE = (document.all && !window.opera)?true:false;
//	alert(isIE);

	var url = '/ajax';
	querystring = '';
	for (i=0 ; i<lomake.elements.length ; i++) {
		querystring += lomake.elements[i].name + "=" + lomake.elements[i].value + "&";
	}

//	document.getElementById('div_ajanvaraus').innerHTML = querystring;

	http_request = false;
	if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	} else if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			// set type accordingly to anticipated content type
//			http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	}
	if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange = alertContents;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", querystring.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(querystring);
}
function alertContents() {
//	debug = document.getElementById('slogan-text');
//	debug.innerHTML = http_request.readyState;
	if (http_request.readyState == 4)
	{
//		debug.innerHTML = http_request.status;
		if (http_request.status == 200)
		{
			var response = http_request.responseText;

			if (response.length != 0 && response != null)
			{
				if (response.match("\\|") != null)
				{
					// Jos palautteella käsitellään useampia kenttiä
					response_array = response.split("|");
					for (i in response_array)
					{
/**/
						// Pilkotaan palaute kenttäkohtaisiin palautteisiin
						// Luodaan taulukko, jossa on kentän nimi ja palaute teksti
						pos = response_array[i].indexOf(':');
						kentta = response_array[i].substr(0,pos);
						palaute = response_array[i].substr(pos+1);
						if (palaute.length==0) {
							continue;
						}
//						alert(kentta);
						if (palaute.substr(0,6)=='Array-')
						{
							valikko = document.getElementById('select_'+kentta);
							valikko.options.length=0;
							palaute = palaute.substr(6);
							if (palaute.length==0) {
								continue;
							}
							// Jos palautteella on tarkoitus muokata pudotusvalikkoa
							arvoparit = palaute.split("&")
							for (j in arvoparit)
							{
								// Pilkotaan palaute avain/arvo -pareihin
								avain_arvo = arvoparit[j].split("=",2);	// Luodaan
								valikko.options[j] = new Option(avain_arvo[1], avain_arvo[0], false, false)
							}
						}
						else
						{
//							alert(kentta);
							document.getElementById('div_'+kentta).innerHTML = palaute;
						}
/**/
					}
				}
				else
				{
					pos = response.indexOf(':');
					kentta = response.substr(0,pos);
					palaute = response.substr(pos+1);
					if (palaute.length==0)
					{
						return;
					}
/**/
					if (palaute.substr(0,6)=='Array-')
					{
							valikko = document.getElementById('select_'+kentta);
							valikko.options.length=0;
							palaute = palaute.substr(6);
							if (palaute.length==0) {
								return;
							}
							// Jos palautteella on tarkoitus muokata pudotusvalikkoa
							arvoparit = palaute.split("&")
							for (j in arvoparit)
							{
								// Pilkotaan palaute avain/arvo -pareihin
								avain_arvo = arvoparit[j].split("=",2);	// Luodaan
								valikko.options[j] = new Option(avain_arvo[1], avain_arvo[0], false, false)
							}
					}
					else
					{
//						debug.innerHTML = kentta;
						document.getElementById('div_'+kentta).innerHTML = palaute;
					}
/**/
				}
			} else {
//				debug.innerHTML = "ei tule responsea lainkaan...";
			}
		}
		else
		{
			document.getElementById('div_ajanvaraus').innerHTML = 'Error!<br/>'+http_request.status+' : '+http_request.statusText+'<br/>'+querystring+'<br/>'+http_request.responseText;
			return;
		}
	}
}
function korostaAika(tyontekija,aika,kesto) {
	korostettavat_solut = haeKorostettavatSolut(tyontekija,aika,kesto);
	if (!korostettavat_solut) {
		return false;
	}
//	alert(korostettavat_solut);
	korostettavat_solut.sort(sortNumber);
//	alert(korostettavat_solut);
	teksti = korostettavat_solut[0];
	teksti = 'varaa';

	for (i in korostettavat_solut) {
		document.getElementById(tyontekija + '_' + korostettavat_solut[i]).className = 'valittu';
//		if (i==0) {
			document.getElementById(tyontekija + '_' + korostettavat_solut[i]).innerHTML = teksti;
//		}
	}
}
function palautaAika(tyontekija,aika,kesto) {
	korostettavat_solut = haeKorostettavatSolut(tyontekija,aika,kesto);
	if (!korostettavat_solut) {
		return false;
	}
	korostettavat_solut.sort(sortNumber);
	document.getElementById(tyontekija + '_' + korostettavat_solut[0]).innerHTML = '&nbsp;';

	for (i in korostettavat_solut) {
		document.getElementById(tyontekija + '_' + korostettavat_solut[i]).className = 'vapaa';
//		if (i==0) {
			document.getElementById(tyontekija + '_' + korostettavat_solut[i]).innerHTML = '&nbsp;';
//		}
	}
}
function haeKorostettavatSolut(tyontekija,aika,kesto) {
	korostettavat_solut = new Array();								// määritellään korostettavat solut
	solu = document.getElementById(tyontekija + '_' + aika); // haetaan fokustettu solu
	korostettavat_solut.push(aika);									// lisätään fokustettu solu korostettaviin soluihin
//	solu.innerHTML = "a" + kesto + "/" + korostettu_kesto;
	korostettu_kesto = slot;											// korostettujen solujen yhteiskesto
	kesto -= slot;

	while (kesto>0) {
	// käydään läpi kaikki myöhemmät vapaat slotit
		solu = document.getElementById(tyontekija + '_' + (aika+korostettu_kesto));
		if (solu == null || solu.className == 'varattu') {
			break;
		} else {
		// Jos tämä solu ei ole varattu
			korostettavat_solut.push(aika+korostettu_kesto); // lisätään valittu solu korostettaviin soluihin
//			solu.innerHTML = "a" + kesto + "/" + korostettu_kesto;
			korostettu_kesto += slot;		// merkitään korostettu kesto
			kesto -= slot;
		}
	}
	while (kesto>0) {
	// käydään läpi kaikki aikaisemmat vapaat slotit
		solu = document.getElementById(tyontekija + '_' + (aika-kesto));
		if (solu == null || solu.className == 'varattu') {
			break;
		} else {
		// Jos tämä solu ei ole varattu
			korostettavat_solut.push(aika-kesto); // lisätään valittu solu korostettaviin soluihin
//			solu.innerHTML = "a" + kesto + "/" + korostettu_kesto;
			korostettu_kesto += slot;		// merkitään korostettu kesto
			kesto -= slot;
		}
	}
	if (kesto>0) {
		return false;
	} else {
		return korostettavat_solut;
	}
}
function varaaAika(solu,pvm,aika,tyontekija,palvelu) {
	if (solu.className != 'valittu') {
		alert('ei tähän');
		return false;
	}
	if (document.getElementById(tyontekija + '_' + (aika-slot))) {
		while (document.getElementById(tyontekija + '_' + (aika-slot)).className == 'valittu') {
			aika-=slot;
		}
	}
	palautaAika(tyontekija,aika,240);
	window.location = 'ajanvaraus/'+pvm+'/'+aika+'/'+tyontekija+'/'+palvelu;
}
function sortNumber(a,b) {
	return a - b;
}