function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
{ 
	if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		
	
	
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					
	
	
	var tmpNumStr = new String(tmpNum);

	
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + " " + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		
}

function desimaalit(kohdeluku)
{
	pilkku=kohdeluku.indexOf(".")
	
	if (pilkku == -1)
	{
		kohdeluku=kohdeluku+",00"
	}
	else
	{
		pituus=kohdeluku.length
		if (pituus < pilkku + 3)
		{ 
			kohdeluku=kohdeluku+"0"
		}
	}
	kohdeluku=kohdeluku.replace(".",",")
	return kohdeluku
}

//Muotoillusta luvusta muodostetaan JavaScriptille "hyväksyttävä" luku eli ei-numeeriset merkit pois pistettä lukuunottamatta
function merkkienkorvaus(korvattava)
{
	mjono=new String(korvattava);
	pituus=korvattava.length;
	var uusi="";
	etsittava=new RegExp("[0-9]");
	for(i=0;i<pituus;i++)
	{
		var v_mjono=new String(mjono.charAt(i));
		var onko=v_mjono.search(etsittava);
   
		if(onko > -1)
		{
   	
      		uusi =uusi.concat(v_mjono);
		
		}
		else
		{
			if(v_mjono==".")
			{
			 	uusi =uusi.concat(v_mjono);
			}
			if(v_mjono=="-")
			{
			 	uusi =uusi.concat(v_mjono);
			}
		}
	}
	
	return uusi;
} 

//Korvataan syötetyt pilkut pisteillä
function pilkustapiste(muokattava)
{
	uusi=muokattava.replace(",",".");
	pilkku = uusi.indexOf(".")
	if(pilkku > 0)
	{
		loppu = uusi.substring(pilkku +1,uusi.length)
		
		if(loppu.indexOf(".") > 0)
		{
			uusi = uusi.replace(".","");
			return uusi;
		}
		else
		{
			return uusi
		}
	}
	else
	{
		return uusi;
	}
}

function valuutta(arvo,nimi)
{
	if(arvo == "")
	{
		return false;
	}
	luku = pilkustapiste(arvo);
	
	luku = merkkienkorvaus(luku);
	
	luku = FormatNumber(luku,2,true,false,true);
	
	luku = desimaalit(luku);
	document.lomake.elements[nimi].style.color = "Black";
	document.lomake.elements[nimi].value = luku;
	
	apu = document.lomake.elements[nimi].value;
	if(apu == "NaN,00" || apu == "NaN")
	{
		document.lomake.elements[nimi].style.color = "Red";
		document.lomake.elements[nimi].value = "Virhe!"
		return "Virhe!"
	}
	else
	{
		return luku;
	}
}

function onkoKarkausVuosi(vuosi)
{
	return (vuosi % 4 == 0 && (vuosi % 100 != 0 || vuosi % 400 == 0));
}

function pvmtarkistus(pvm,mikapvm){
var paiviakuukaudessa=new Array(13);

	pituus=pvm.length;
	pisteita=0
	if (pituus<8 || pituus>10){
		return false;
		}
	for(i=0;i<pituus;i++){
		if (isNaN(pvm.substring(i,i+1))==true){
			if (pvm.substring(i,i+1)!="."){
				return false;
				}
			if (pvm.substring(i,i+1)=="."){
			pisteita=pisteita+1;
				}
			}
		}
	ekapistepaikka=pvm.indexOf(".",0);
	tokapistepaikka=pvm.lastIndexOf(".");
	paiva=pvm.substring(0,ekapistepaikka);

	if (paiva.length==2 && paiva.substring(0,1)==0){
		paiva=paiva.substring(1,2);
		}
	

	if (paiva<1 || paiva>31){
		return false;
		}
	kk=pvm.substring(ekapistepaikka+1,tokapistepaikka);
	if (kk.length==2 && kk.substring(0,1)==0){
		kk=kk.substring(1,2);
		}
	if (kk<1 || kk>12){
		return false;
		}
	vuosi=pvm.substring(tokapistepaikka+1,pituus+1);
	if (vuosi.length != 2 && vuosi.length != 4){
		return false;
	}

	if (pisteita!=2){
		return false;
		}
		
	if(onkoKarkausVuosi(vuosi))
	{
		paiviakuukaudessa[1]=31;
		paiviakuukaudessa[2]=29;
		paiviakuukaudessa[3]=31;
		paiviakuukaudessa[4]=30;
		paiviakuukaudessa[5]=31;
		paiviakuukaudessa[6]=30;
		paiviakuukaudessa[7]=31;
		paiviakuukaudessa[8]=31;
		paiviakuukaudessa[9]=30;
		paiviakuukaudessa[10]=31;
		paiviakuukaudessa[11]=30;
		paiviakuukaudessa[12]=31;
		if(paiva > paiviakuukaudessa[kk])
		{
			return false;
		}
	}
	else if(!onkoKarkausVuosi(vuosi))
	{
		paiviakuukaudessa[1]=31;
		paiviakuukaudessa[2]=28;
		paiviakuukaudessa[3]=31;
		paiviakuukaudessa[4]=30;
		paiviakuukaudessa[5]=31;
		paiviakuukaudessa[6]=30;
		paiviakuukaudessa[7]=31;
		paiviakuukaudessa[8]=31;
		paiviakuukaudessa[9]=30;
		paiviakuukaudessa[10]=31;
		paiviakuukaudessa[11]=30;
		paiviakuukaudessa[12]=31;
		if(paiva > paiviakuukaudessa[kk])
		{
			return false;
		}
	}	
}

function tarkistapvm(pvm,nimi,kentta)
{	
	if(pvm == "")
	{
		return false;
	}
	if(pvmtarkistus(pvm,nimi) == false)
	{
		document.lomake.elements[kentta].style.color = "Red";
		document.lomake.elements[kentta].value = "Virhe!"
		return "Virhe!"
	}	
	else
	{
		document.lomake.elements[kentta].style.color = "Black";
	}
}

function tarkistakokonaisluku(tarkistettava)
{
	var luku=tarkistettava;
	luku=luku.replace(",",".")
	if(isNaN(luku)==true || luku=="")
	{
		onkonumeerinen=false;
	}
	else
	{
		onkonumeerinen=true;
	}
	return onkonumeerinen;
}

function IsNumber(korvattava,paikka)
{
	if(korvattava == "")
	{
		return false;
	}
	mjono=new String(korvattava);
	pituus=korvattava.length;
	var uusi="";
	etsittava=new RegExp("[0-9]");
	for(i=0;i<pituus;i++)
	{
		var v_mjono=new String(mjono.charAt(i));
		var onko=v_mjono.search(etsittava);
   
		if(onko > -1)
		{
   	
      		uusi =uusi.concat(v_mjono);
		
		}
		else
		{
			if(v_mjono==",")
			{
			 	uusi =uusi.concat(v_mjono);
			}
		}
	}
	if(tarkistakokonaisluku(uusi) == true)
	{
		document.lomake.elements[paikka].style.color = "Black";
		document.lomake.elements[paikka].value = uusi;
	}
	else
	{
		document.lomake.elements[paikka].style.color = "Red";
		document.lomake.elements[paikka].value = "Virhe!";
	}
}

function OnkoVuosi(arvo,paikka)
{
	if(arvo == "")
	{
		return false;
	}
	
	arvo = merkkienkorvaus(arvo)
	var today = new Date();
	var year = today.getFullYear();

	if(tarkistakokonaisluku(arvo) == true)
	{
		if(arvo > 999 && arvo < year+10)
		{
			document.lomake.elements[paikka].style.color = "Black";
			document.lomake.elements[paikka].value = arvo;
		}
		else
		{
			document.lomake.elements[paikka].style.color = "Red";
			document.lomake.elements[paikka].value = "Virhe!";
		}
	}
	else
	{
		document.lomake.elements[paikka].style.color = "Red";
		document.lomake.elements[paikka].value = "Virhe!";
	}
}

function tarkistakoko(tyyppi)
{
	if(tyyppi == "laina-aika")
	{
		
		if(pilkustapiste(document.lomake.haettavan_lainan_tiedot_lainaaika_vuotta.value) > 30)
		{
			document.lomake.haettavan_lainan_tiedot_lainaaika_vuotta.style.color = "Red";
			document.lomake.haettavan_lainan_tiedot_lainaaika_vuotta.value = "Virhe!";
		}
	}
	if(tyyppi == "lyhennysvapaa_aika")
	{
		if(pilkustapiste(document.lomake.haettavan_lainan_tiedot_lyhennysvapaaaika_vuotta.value) > 5)
		{
			document.lomake.haettavan_lainan_tiedot_lyhennysvapaaaika_vuotta.style.color = "Red";
			document.lomake.haettavan_lainan_tiedot_lyhennysvapaaaika_vuotta.value = "Virhe!";
		}
	}
}