
var form_touched = 0;
var orig_fields  = new Array();
function setChanged( evt ) {
	evt = (evt) ? evt : ((window.event) ? window.event : "");
	var elem = (evt.target) ? evt.target : evt.srcElement;
	
	if( orig_fields[ elem.getAttribute('name') ] != elem.value ) {
		form_touched++;
		document.getElementById('change_notifier').innerHTML
			= "Lomakkeessa on mahdollisesti tallentamattomia muutoksia!";
		document.getElementById('change_notifier').style.color = 'red';
	}
	return true;
}

function checkChange() {
	if( form_touched ) {
		return confirm('Lomaketta on mahdollisesti muokattu tallennuksen jälkeen.\nHaluatko varmasti jatkaa tallentamatta?');
	}
}

function resetChange() {
	form_touched = 0;
	document.getElementById('change_notifier').innerHTML
		= "";
	return true;
}

function initReqSave() {
	var links = document.getElementsByTagName('A');
	for(var i = 0; i < links.length; i++) {
		//links[i].onMouseOver = checkChange();
		if( links[i].getAttribute('name') != 'popup' ) {
			links[i].onclick = checkChange;
			if (links[i].captureEvents) element.captureEvents(Event.CLICK);
		}
	}

	var inputs = document.getElementsByTagName('INPUT');
	for(var i = 0; i < inputs.length; i++) {
		//inputs[i].onChange = setChanged();
		if( inputs[i].getAttribute('type') != 'reset' ) {
			if( inputs[i].getAttribute('type') == 'text' ) {
				orig_fields[ inputs[i].getAttribute('name') ] = inputs[i].value;
			}
			inputs[i].onchange = setChanged;
			if (inputs[i].captureEvents) element.captureEvents(Event.CHANGE);
		}
		else {
			inputs[i].onclick = resetChange;
			if (inputs[i].captureEvents) element.captureEvents(Event.CHANGE);
		}
	}
	
	var inputs = document.getElementsByTagName('SELECT');
	for(var i = 0; i < inputs.length; i++) {
		//inputs[i].onChange = setChanged();
		orig_fields[ inputs[i].getAttribute('name') ] = inputs[i].value;
		inputs[i].onchange = setChanged;
		if (inputs[i].captureEvents) element.captureEvents(Event.CHANGE);
	}
	var inputs = document.getElementsByTagName('TEXTAREA');
	for(var i = 0; i < inputs.length; i++) {
		//inputs[i].onChange = setChanged();
		orig_fields[ inputs[i].getAttribute('name') ] = inputs[i].value;
		inputs[i].onchange = setChanged;
		if (inputs[i].captureEvents) element.captureEvents(Event.CHANGE);
	}
	setTimeout("saveSession()", 25*60*1000);
}

function saveSession() {
	alert("Palvelin katkaisee yhteyden 5 minuutin kuluessa!");
}

