/* Copyright Efire Ky */

var infoTimeout = '';
var errorTimeout = '';
var selectedElement = '';
var focusReserved = false;

/* Vaihdetaan syöttötiedon id-mukaiset elementit joko näkyviksi tai piilotetuiksi*/
function openClose(target_id, display, only) {
	if (!display) display = '';
	// Jos elementti on avattu, niin suljetaan se
	if ((!only || only == 'close')&&(document.getElementById('open_' + target_id).style.display == 'none')) {
		document.getElementById('open_' + target_id).style.display = display;
		document.getElementById('close_' + target_id).style.display = 'none';
		if (document.getElementById('closed_' + target_id)) document.getElementById('closed_' + target_id).style.display = 'none';
	// Jos elementti on suljettu, niin avataan se
	} else if (!only || only == 'open') {
		document.getElementById('open_' + target_id).style.display = 'none';
		document.getElementById('close_' + target_id).style.display = display;
		if (document.getElementById('closed_' + target_id)) document.getElementById('closed_' + target_id).style.display = display;
	}
}

function openOnly(target_id) {
	openClose(target_id, '', 'open')
}
function closeOnly(target_id) {
	openClose(target_id, '', 'close')
}


/* Asetetaan sivun maski näkyviin */
function showMask() {
	document.getElementById('mask').style.display=''
	/* Piilotetaan checkboxit IEltä ettei se sotke niillä prompteja */
	if(document.getElementById('mask_form') && navigator.appName == "Microsoft Internet Explorer") {
		var x = document.getElementsByName("mask_form")
		for (i=0 ; i < x.length ; i++) {
			for (j=0 ; j < x[i].elements.length ; j++) {
				if (x[i].elements.elements[j] && x[i].elements.elements[j].type == 'select-one') x[i].elements[j].style.display = 'none';
			}
		}
	}
}

/* Poistetaan sivun maski näkyvistä */
function hideMask() {
	document.getElementById('mask').style.display='none'
	/* Palautetaan checkboxit IElle */
	if(document.getElementById('mask_form') && navigator.appName == "Microsoft Internet Explorer") {
		var x = document.getElementsByName("mask_form")
		for (i=0 ; i < x.length ; i++) {
			for (j=0 ; j < x[i].elements.length ; j++) {
				if (x[i].elements.elements[j] && x[i].elements.elements[j].type == 'select-one') x[i].elements[j].style.display = '';
			}
		}
	}
}

/* Palautetaan hiiren x-sijainti */
function mouseX(evt) {
if (evt.pageX) return evt.pageX;
else if (evt.clientX)
   return evt.clientX + (document.documentElement.scrollLeft ?
   document.documentElement.scrollLeft :
   document.body.scrollLeft);
else return null;
}

/* Palautetaan hiiren y-sijainti */
function mouseY(evt) {
if (evt.pageY) return evt.pageY;
else if (evt.clientY)
   return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
else return null;
}

/* Varmistetaan valinta ennen funktion suorittamista */
function fetchConfirm(confirmtext, confirmok, confirmcancel) {

	if (!confirmok) confirmok = 'Ok'
	if (!confirmcancel) confirmcancel = 'Peruuta'

	showMask()
	var agree = confirm(confirmtext, confirmok, confirmcancel);
	hideMask()

	if (agree) return true;
	else return false ;

}

/* Lähetetään new_submit onclick jos painetaan enteriä, formia vastaava toiminta javascript "formeihin" */
function newSubmitIfEnter(e, elementId) {
	if ( (window.event && (e.keyCode == 13) || (e.which == 13)) ) {
		if (document.getElementById(elementId)) eval(document.getElementById(elementId).onclick())
		else eval(document.getElementById('new_submit').onclick())
	}
}

/* Nollataan info jos sellainen aiemmin asetettu */
function resetInfo() {
	if (infoTimeout) clearTimeout(infoTimeout)
	document.getElementById('infocontainer').style.width = ((document.getElementById('info').innerHTML.length)*7) + 'pt'
	document.getElementById('infocontainer').style.display = ''
}

/* Asetetaan ajastus virhenäytön poistamiseksi */
function setInfoTimeout() {
	infoTimeout = setTimeout("document.getElementById('infocontainer').style.display='none';", 2000)
}

/* Asetetaan tällä hetkellä valittu elementti */
function setSelectedElement(element) {
  if (focusReserved) return false
	selectedElement = element
	try {
	  element.setAttribute('autocomplete','off')
		element.focus()
	} catch(e) {
	  
	}
	return true
}
/* Tarkistetaan tällä hetkellä valittu elementti */
function checkSelectedElement(element) {
  if (selectedElement == element) return true
  else return false
}
/* Varataan focus */
function reserveFocus() { focusReserved = true }
/* Vapautetaan focus */
function releaseFocus() { focusReserved = false }
/* Haetaan focus */
function checkFocus() { return focusReserved }
/* Lähetetään new_submit onclick jos painetaan enteriä, formia vastaava toiminta javascript "formeihin" */
function onchangeIfEnter(e, element) {
	if ( window.event && ((e.keyCode == 13) || (e.which == 13)) ) {
		releaseFocus()
		eval(element.onchange())
	}
}

/* Textarean tapahtumat */
function textareaActions(e, element) {

  /* Kasvatetaan textarean kokoa tarvittaessa ... */
  if ( (window.event && (e.keyCode == 13 || e.keyCode == 8 || e.keyCode == 46) ) || (e.which == 13 || e.which == 8 || e.keyCode == 46) ) {

		var textareacontent = element.value
		var newHeight = parseInt((textareacontent.split("\n")).length)*13 + 'px'
		element.style.height = newHeight

	}

}

/* Lisätään tab tarvittaessa */
function checkTab(e, element) {
	if ( ( window.event && (e.keycode == 9) ) || (e.which == 9) ) {
		insertTabCharacter(element,e)
		return true;
	}
}

/* Lisätään TAB-merkki */
function insertTabCharacter(object, event) {

  var keyCode = event.keyCode ? event.keyCode : event.charCode ? event.charCode : event.which;
	if (keyCode == 9 && !event.shiftKey && !event.ctrlKey && !event.altKey) {
		var objectTop = object.scrollTop;
		if (object.setSelectionRange) {
			var selStart = object.selectionStart;
			var selEnd = object.selectionEnd;
			object.value = object.value.substring(0, selStart) + "\t" + object.value.substr(selEnd);
			object.setSelectionRange(selStart + 1, selStart + 1);
			object.focus();
		} else if (object.createTextRange) {
			document.selection.createRange().text = "\t";
			event.returnValue = false;
		}
		object.scrollTop = objectTop;
		if (event.preventDefault) {
			event.preventDefault();
		}
		return false;
	}
	return true;
}

/* Add tab to textarea */
function textareaTabs(e, element) {

}

/* Avataan ohjeikkuna */
function help(str) {
  window.open('help/?helpfile='+str,'pdf','fullscreen=no,resizable=yes,width=250px,height=350px')
}

/* Päivitetään kuvakevalinta */
function updateSelectImages(element) {
	selectImages = element.parentNode.getElementsByTagName("img");
	for (i = 0 ; i < selectImages.length ; i++) selectImages[i].className = 'selectable'
	element.className='selected'
}

