
function isIE() { return( navigator.appName.indexOf("Microsoft") != -1 ); }


// Siirtymiset, GET ja POST
	function confirmGo(confirmText,goLocation) {
		isOk=confirm(confirmText);
		if(isOk) document.location=goLocation;
	}
	
	function mySubmit() {
		document.forms[0].submit();
	}

// STRING-KÄSITTELIJÄT
	function strLower(varValue) {
		realStr=""+varValue;
		return realStr.toLowerCase();
	}
	
	function strUpper(varValue) {
		realStr=""+varValue;
		return realStr.toUpperCase();
	}

// ELEMENTIN PIILOTTAMINEN / NÄYTTÄMINEN

	function nayta(idOfElement) {
		obj=getElementObjByID(idOfElement);
		if(obj!=false) obj.style.display="block";
	}
	
	function piilota(idOfElement) {
		obj=getElementObjByID(idOfElement);
		if(obj!=false) obj.style.display="none";
	}
	
	function nayta_visibility(idOfElement) {
		obj=getElementObjByID(idOfElement);
		if(obj!=false) obj.style.visibility="visible";
	}
	
	function piilota_visibility(idOfElement) {
		obj=getElementObjByID(idOfElement);
		if(obj!=false) obj.style.visibility="hidden";
	}
	
	function displayElementByID(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) elementObj.style.display="block";
	}
	
	function hideElementByID(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) elementObj.style.display="none";
	}
	
	function getElementStyleDisplayByID(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) return elementObj.style.display;
		else return false;
	}
	
	function setEnabledByName(nameOfElement) {
		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) elementObj.disabled=false;
	}
	
	function setDisabledByName(nameOfElement) {
		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) elementObj.disabled=true;
	}

	function setDisabledByID(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) elementObj.disabled=true;
	}
	
// TYYLIEN HAKU JA ASETTAMINEN
	function setElementClassByName(nameOfElement,classOfElement) {
		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) elementObj.className=classOfElement;
	}
	
	function setElementClassByID(idOfElement,classOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) elementObj.className=classOfElement;
	}

// HTML-ELEMENTTIEN, HTML-FORM-FIELDIEN HTML-SISÄLTÖJEN ASETTAJAT JA ARVOJEN HAKU-KOMENNOT
	function getElementObjByID(idOfElement) {
		obj=document.getElementById(idOfElement);
		if(notNull(obj)) return obj;
		else return false;
	}
	
	function getHiddenInputValueById(idOfElement) {
	  elementObj=document.getElementById(idOfElement);
	  if(notNull(elementObj)) return elementObj.value;
	  else return "";
	}
  
	function getElementObjByName(nameOfElement) {
		elementsByName=document.getElementsByName(nameOfElement);
		if(notNull(elementsByName[0])) return elementsByName[0];
		else return false;
	}
	
	function setElementValueById(idOfElement, valueOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) elementObj.value=valueOfElement;
	}
	
	function getElementValueByID(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) return elementObj.value;
		else return false;
	}
	
	function setElementInnerHTMLbyID(idOfElement, innerHTMLofElement) {
		elementObj=getElementObjByID(idOfElement);
		
		if(notNull(elementObj)) elementObj.innerHTML=innerHTMLofElement;
	}
	
	function getElementInnerHTMLbyID(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) return elementObj.innerHTML;
		else return false;
	}
	
	function setElementValueByName(nameOfElement,valueOfElement) {
		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) elementObj.value=valueOfElement;
	}
	
	function getElementValueByName(nameOfElement) {
		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) return elementObj.value;
		else return false;
	}

	function setInputValueByID(idOfElement,valueOfElement) {
		elementObj=getElementObjByID(idOfElement);
		
		if(notNull(elementObj)) elementObj.value=valueOfElement;
	}

// Kuva img src jne
	function setImageSrcById(idOfImg, srcOfImg) {
		elementObj=getElementObjByID(idOfImg);
		if(notNull(elementObj)) elementObj.src=srcOfImg;
	}


// HTML-CHECKBOX
	function setCheckboxByID(idOfElement, onOrOff) {
		elementObj=getElementObjByID(idOfElement);
		
		setCheckboxByObj(elementObj, onOrOff);
	}
	
	function getCheckboxStateByID(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj))
			if(elementObj.checked==true) return true;
		
		return false;
	}
	
	function setCheckboxByName(nameOfElement, onOrOff) {
		elementObj=getElementObjByName(nameOfElement);
		
		setCheckboxByObj(elementObj, onOrOff);
	}
	
	function setCheckboxByObj(elementObj, onOrOff) {
		if(notNull(elementObj)) {
			if(onOrOff==1 || onOrOff=="on" || onOrOff==true)
				elementObj.checked=true;
			else
				elementObj.checked=false;
		}
	}
	
	function getCheckboxStateByName(nameOfElement) {
		elementObj=getElementObjByName(nameOfElement);
		
		if(notNull(elementObj))
			if(elementObj.checked==true) return true;
		
		return false;
	}


// focus asettaminen
	function setElementFocusById(idOfElement) {
		elementObj=getElementObjByID(idOfElement);
		if(notNull(elementObj)) elementObj.focus();
	}
	
	function setElementFocusByName(nameOfElement) {
		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) elementObj.focus();
	}

// HTML-RADIO
	function setRadioCheckedByName(nameOfElement, valueToBeChecked) {
		elementObj=document.forms[0].elements[nameOfElement];
//		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) {
			radioLength = elementObj.length;
			
			// IE ja Firefox käyttävät eri tapaa radio-inputtien käsittelyssä, 
			// ensimmäinen lauselma on IE:tä varten (eli radioLengthiä ei ole olemassakaan)
			if(radioLength == undefined) {
				elementObj.checked = (elementObj.value == valueToBeChecked.toString());
				return;
			}
			else {
				for(var i = 0; i < radioLength; i++) {
					if(elementObj[i].value==valueToBeChecked.toString()) {
						elementObj[i].checked=true;
					}
				}
			}
		}
	}
	
	function getRadioCheckedValueByName(nameOfElement) {
		elementObj=document.forms[0].elements[nameOfElement];
		
//		elementObj=getElementObjByName(nameOfElement);
		if(notNull(elementObj)) {
			radioLength = elementObj.length;
			
			// IE ja Firefox käyttävät eri tapaa radio-inputtien käsittelyssä, 
			// ensimmäinen lauselma on IE:tä varten (eli radioLengthiä ei ole olemassakaan)
			if(radioLength == undefined) elementObj.value;
			else {
				for(var i = 0; i < radioLength; i++) {
					if(elementObj[i].checked==true) return elementObj[i].value;
				}
			}
		}
	}
	
// HTML-SELECT
	function setSelectedByValue(nameOfSelect,valueOfSelected) {
		selectObj=getElementObjByName(nameOfSelect);
		setSelected_to_Obj(selectObj,valueOfSelected);
	}
	
	function setSelectedByID(idOfSelect,valueOfSelected) {
		selectObj=getElementObjByID(idOfSelect);
		setSelected_to_Obj(selectObj,valueOfSelected);
	}
	
	function setSelected_to_Obj(selectObj,valueOfSelected) {
		if(notNull(selectObj)) {
			selectObj.selectedIndex=0;
			selIndex=-1;
			for(i=1; i < selectObj.options.length; i++) {
				if(selectObj.options[i].value==valueOfSelected) {
					selIndex=i;
					selectObj.options[i].selected=true;
				}
			}
			selectObj.selectedIndex=selIndex;
		}
	}
	
	function getSelectTextByName(nameOfSelect) {
		selectObj=getElementObjByName(nameOfSelect);
		
		if(notNull(selectObj)) {
			selIndx = selectObj.selectedIndex;
			
			if(selIndx!=-1) return selectObj.options[selIndx].text;
			else return "";
		}
		else return false;
	}
	
	function getSelectTextByID(idOfSelect) {
		selectObj=getElementObjByID(idOfSelect);
		
		if(notNull(selectObj)) {
			selIndx = selectObj.selectedIndex;
			
			if(selIndx!=-1) return selectObj.options[selIndx].text;
			else return "";
		}
		else return false;
	}
	
	function getSelectValueByName(nameOfSelect) {
		selectObj=getElementObjByName(nameOfSelect);
		
		if(notNull(selectObj)) {
			selIndx = selectObj.selectedIndex;
			
			if(selIndx!=-1) return selectObj.options[selIndx].value;
			else return "";
		}
		else return false;
	}
	
	function getSelectLengthByName(selectName) {
		selectObj=getElementObjByName(selectName);
		
		if(notNull(selectObj)) return selectObj.options.length;
		else return false;
	}
	
	function removeOptions(selectName) {
		selectObj=getElementObjByName(selectName);
		
		if(notNull(selectObj)) selectObj.options.length=0;
	}
	
	function addOptionByName(selectName,optionValue,optionText) {
		selectObj=getElementObjByName(selectName);
		
		if(notNull(selectObj)) {
			var opt = document.createElement("OPTION");
			opt.value = optionValue;
			opt.text = optionText;
			selectObj.options.add(opt,selectObj.options.length+1);
		}
	}


// MUUT YLEISET FUNKTIOT

	function checkNumberFieldByName(nameOfField,maxDecimals,minValue,maxValue) {
		luku=getElementValueByName(nameOfField);
		
		if(!isNumberOK(luku,maxDecimals)) setElementClassByName(nameOfField,"virheField");
		else if(notNull(minValue) && luku < minValue) setElementClassByName(nameOfField,"virheField");
		else if(notNull(maxValue) && luku > maxValue) setElementClassByName(nameOfField,"virheField");
		else setElementClassByName(nameOfField,"normalField");
	}
		
	function isNumberOK(luku,maxDecimals) {
		strLuku=""+luku;
		len=strLuku.length;
		
		decimals=0;
		pilkkuMennyt=false;
		for(i=0; i <= len-1; i++) {
			c=strLuku.substring(i,i+1);
			if(pilkkuMennyt) decimals++;
			if(c=="." || c==",") pilkkuMennyt=true;
		}
		
		luku_pilkkuMuunnettuna=strLuku.replace(/\,/, ".");
		luku_numerona=numeroksi(luku);
		
		if(luku_numerona!=luku_pilkkuMuunnettuna) return false;
		if(decimals > maxDecimals) return false;
		else return true;
	}
	
	
	function numeroksi(strForNum) {
		realStr=""+strForNum;
		pilkkuMuunnettu=realStr.replace(/\,/, ".");
		num=parseFloat(pilkkuMuunnettu);
		if(isNaN(num) || num==undefined || num!=pilkkuMuunnettu) return 0;
		else return num;
	}
	
	function printEuro(numStr) {
		realStr=""+myRound(numeroksi(numStr));
		realStr=realStr.replace(/\./, ",");
		
		pilkkuMennyt=false;
		merkkiMaaraPilkunJalkeen=0;
		for(i=0; i < realStr.length; i++) {
			merkki=realStr.charAt(i);
			if(pilkkuMennyt) merkkiMaaraPilkunJalkeen++;
			if(merkki==',') pilkkuMennyt=true;
		}
		
		if(pilkkuMennyt==false) realStr = realStr + ",";
		if(merkkiMaaraPilkunJalkeen==0) realStr = realStr + "00";
		if(merkkiMaaraPilkunJalkeen==1) realStr = realStr + "0";
		
		return realStr;
	}
	
	
	function printKM(numStr) {
		realStr=""+myRound1(numeroksi(numStr));
		realStr=realStr.replace(/\./, ",");
		
		pilkkuMennyt=false;
		merkkiMaaraPilkunJalkeen=0;
		for(i=0; i < realStr.length; i++) {
			merkki=realStr.charAt(i);
			if(pilkkuMennyt) merkkiMaaraPilkunJalkeen++;
			if(merkki==',') pilkkuMennyt=true;
		}
		
		if(pilkkuMennyt==false) realStr = realStr + ",";
		if(merkkiMaaraPilkunJalkeen==0) realStr = realStr + "0";
		
		return realStr;
	}
	
	function printPros(numStr) {
		realStr=""+myRound1(numeroksi(numStr));
		realStr=realStr.replace(/\./, ",");
		
		pilkkuMennyt=false;
		merkkiMaaraPilkunJalkeen=0;
		for(i=0; i < realStr.length; i++) {
			merkki=realStr.charAt(i);
			if(pilkkuMennyt) merkkiMaaraPilkunJalkeen++;
			if(merkki==',') pilkkuMennyt=true;
		}
		
		return realStr;
	}
	
	function myRound(num) {
		num=numeroksi(num);
		return Math.round(num*100)/100;
	}
	
	function myRound1(num) {
		num=numeroksi(num);
		return Math.round(num*10)/10;
	}

	function getEvent(event) {
		if(!event) return window.event;
		else return event;
	}
	
	function getKey(event) {
		if(notNull(event['keyCode'])) return event['keyCode'];
		else return false;
	}
	
	function notNull(myVar) {
		if(myVar!==false && myVar!=undefined && myVar!=null) return true;
		else return false;
	}
	
	function epalvLomakeSubmit(painettuNappiNimi,mustConfirm) {
		painettuNappiHiddenObj=getElementObjByID("epalv_painettu_nappi");
		epalvLomakeForm=document.forms[0];
		
		if(notNull(epalvLomakeForm) && notNull(painettuNappiHiddenObj)) {
			if(notNull(mustConfirm)) {
				confirmOk=confirm("Oletko varma?");
			} else confirmOk=true;
			
			if(confirmOk==true) {
				setElementValueById("epalv_painettu_nappi",painettuNappiNimi);
				epalvLomakeForm.submit();
			}
		}
	}
	
	// Päivittää sivun uudelleen käyttäen "document.location.href"-lausetta
	function refreshLomake(sivuID,varmistusTeksti) {
		confirmOk=confirm(varmistusTeksti);
		
		if(confirmOk==true) {
			document.location.href="index.cgi?sivu_id="+sivuID;
		}
	}
	
function TrimString(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

function findElementPosX(obj) {
	curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}//if offsetParent exists
	else if (obj.x)
		curleft += obj.x
	return curleft;
}//findElementPosX

function findElementPosY(obj) {
	curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}//if offsetParent exists
	else if (obj.y)
		curtop += obj.y
	return curtop;
}//findElementPosY

