function limitText(limitField, limitCount, limitNum){
	if(limitField.value.length > limitNum)
		limitField.value = limitField.value.substring(0, limitNum);
  }

var one_day = 1000 * 60 * 60 * 24;
var one_month = 1000 * 60 * 60 * 24 * 30;
var one_year = 1000 * 60 * 60 * 24 * 30 * 12;

function displayage(yr, mon, day, unit, decimal, roundi){
	var today = new Date();
	var pastdate = new Date(yr, mon-1, day);
	var countunit = unit;
	var decimals = decimal;
	var rounding = roundi;
	
	var finalunit = (countunit == "days")? one_day : (countunit == "months")? one_month : one_year;
	var decimals = (decimals <= 0)? 1 : decimals * 10;
	
	if(unit != "years")	{
		if(rounding == "rounddown")
			return Math.floor((today.getTime() - pastdate.getTime()) / (finalunit) * decimals) / decimals;
		else
			return Math.ceil((today.getTime() - pastdate.getTime()) / (finalunit) * decimals) / decimals;
	  }
	else{
		var yearspast = today.getFullYear() - yr - 1;
		var tail = (today.getMonth() > mon - 1 || today.getMonth() == mon - 1 && today.getDate() >= day)? 1 : 0;
		pastdate.setFullYear(today.getFullYear());
		var pastdate2 = new Date(today.getFullYear() - 1, mon - 1, day);
		tail = (tail == 1)? tail + Math.floor((today.getTime() - pastdate.getTime()) / (finalunit) * decimals) / decimals : Math.floor((today.getTime() - pastdate2.getTime()) / (finalunit) * decimals) / decimals;
		return yearspast + tail;
	  }
  }

 
function tarkista(){
	var yer = document.lomake.yy.value;
	var mon = document.lomake.mm.value;
	var day = document.lomake.dd.value;		
	ika = displayage(yer, mon, day, "years", 8, "rounddown");
	
	var virhe = 'Seuraavat tiedot puuttuvat:\n\n';
	var hylkaa = 0;

	if (ika < 18)	{
		if (document.lomake.Huoltajan_sukunimi.value == "") {
			virhe += 'Huoltajan sukunimi\n'
			hylkaa = 1;
		  }
		if (document.lomake.Huoltajan_etunimet.value == "") {
			virhe += 'Huoltajan etunimi\n'
			hylkaa = 1;
		  }		
		if (document.lomake.dd5.value == "x" || document.lomake.mm5.value == "x" || document.lomake.yy5.value == "x" || document.lomake.Huoltajan_loppuosa.value == "") {
			virhe += 'Huoltajan henkilötunnus\n'
			hylkaa = 1;
		  }
		if (document.lomake.Huoltajan_lahiosoite.value == "") {
			virhe += 'Huoltajan lähiosoite\n'
			hylkaa = 1;
		  }
		if (document.lomake.Huoltajan_postinumero.value == "") {
			virhe += 'Huoltajan postinumero\n'
			hylkaa = 1;
		  }
		if (document.lomake.Huoltajan_Postitoimipaikka.value == "") {
			virhe += 'Huoltajan postitoimipaikka\n'
			hylkaa = 1;
		  } 
   
		var htarkistusMerkit = "0123456789ABCDEFHJKLMNPRSTUVWXYZ"
	  document.lomake.Huoltajan_loppuosa.value = document.lomake.Huoltajan_loppuosa.value.toUpperCase();
	  var hloppuosa = document.lomake.Huoltajan_loppuosa.value;
		var hyer = document.lomake.yy5.value;
  	var hmon = document.lomake.mm5.value;
	  var hday = document.lomake.dd5.value;
	  if(hyer < 2000) var hmerkki = '-';
	  else if(hyer >= 2000) var hmerkki = 'A'
	  var hsossu = hday + hmon + hyer.slice(2, 4) + hmerkki + hloppuosa;
	  var hnro = hsossu.slice(0, 6) + hsossu.slice(7, 10);
	  var hjakojaannos = hnro % 31;
	  var htarkistusmerkki = htarkistusMerkit.charAt(hjakojaannos);
	  if(htarkistusmerkki != hsossu.charAt(hsossu.length - 1))	{
		  hylkaa = 1;
		  virhe += 'Huoltajan SOTU väärin\n';
	    }		
		virhe += '\n';	
	  } // if ika

	if (document.lomake.H_Nimi.value == "") {
					virhe += 'Hakijan nimi\n'
					hylkaa = 1;
	}
	if (document.lomake.dd.value == "x" || document.lomake.mm.value == "x" || document.lomake.yy.value == "x" || document.lomake.H_loppuosa.value == "") {
		      virhe += 'Hakijan henkilötunnus\n'
		      hylkaa = 1;
	}	
	if (document.lomake.H_Nami[0].selected == true) {
		      virhe += 'Hakijan sukupuoli\n'
		      hylkaa = 1;
	}		
	if (document.lomake.H_Postios.value == "") {
					virhe += 'Hakijan lähiosoite\n'
					hylkaa = 1;
	}
	if (document.lomake.H_Postinro.value == "") {
					virhe += 'Hakijan postinumero\n'
					hylkaa = 1;
	}
	if (document.lomake.H_Postitp.value == "") {
					virhe += 'Hakijan postitoimipaikka\n'
					hylkaa = 1;
	}
	if (document.lomake.H_Puhelin.value == "") {
					virhe += 'Hakijan puhelinnumero\n'
					hylkaa = 1;
	}
	if (document.lomake.H_Sahkoposti.value == "") {
					virhe += 'Hakijan sähköpostiosoite\n'
					hylkaa = 1;
	}		
	if (document.lomake.H_Oppilaitos[0].selected == true) {
					virhe += 'Hakijan oppilaitos\n'
					hylkaa = 1;
	}	
	if (document.lomake.dd2.value == "x" || document.lomake.mm2.value == "x" || document.lomake.yy2.value == "x") {
					virhe += 'Oppil. kirjautumis pvm.\n'
					hylkaa = 1;
	}
  if (document.lomake.H_Tulot.value == "") {
          virhe += 'Hakijan tulot\n'
          hylkaa = 1;
  }
  if (document.lomake.H_Varallisuus.value == "") {
          virhe += 'Hakijan varallisuus\n'
          hylkaa = 1;
  }

	var eikohdetta = 1;

	if(document.lomake.kohde1.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde2.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde3.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde4.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde5.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde7.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde8.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde9.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde10.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde11.checked == true){
		eikohdetta = 0;}
	if(document.lomake.kohde12.checked == true){
		eikohdetta = 0;		}
	if (eikohdetta == 1){
		virhe += 'Valitse vähintään yksi asuntokohde\n';
		hylkaa = 1;
	}
	
  var eityyppia = 1;
	for(a = 0; a < document.lomake.tyyppi.length; a++){ 
    if(document.lomake.tyyppi[a].checked == true){ 
      eityyppia = 0;
      } 
    } 
  if (eityyppia == 1){
 		virhe += 'Huoneistotyyppi on valitsematta\n'
		hylkaa = 1;
	  }
	
	var tarkistusMerkit = "0123456789ABCDEFHJKLMNPRSTUVWXYZ"
	document.lomake.H_loppuosa.value = document.lomake.H_loppuosa.value.toUpperCase();
	var loppuosa = document.lomake.H_loppuosa.value;
	if(yer < 2000) var merkki = '-';
	else if(yer >= 2000) var merkki = 'A'
	var sossu = day + mon + yer.slice(2, 4) + merkki + loppuosa;
	var nro = sossu.slice(0, 6) + sossu.slice(7, 10);
	var jakojaannos = nro % 31;
	var tarkistusmerkki = tarkistusMerkit.charAt(jakojaannos);
	if(tarkistusmerkki != sossu.charAt(sossu.length - 1))	{
		hylkaa = 1;
		virhe += 'Hakijan SOTU väärin\n'
	  }
	
	if(document.lomake.P_Nimi.value != ""){	
		virhe += '\n';
		if (document.lomake.dd3.value == "x" || document.lomake.mm3.value == "x" || document.lomake.yy3.value == "x" || document.lomake.P_loppuosa.value == "") {
		  virhe += 'Hakijan 2 henkilötunnus\n'
			hylkaa = 1;
	    }
			
	  var pyer = document.lomake.yy3.value;
	  var pmon = document.lomake.mm3.value;
	  var pday = document.lomake.dd3.value;
  
		var ptarkistusMerkit = "0123456789ABCDEFHJKLMNPRSTUVWXYZ"
  	document.lomake.P_loppuosa.value = document.lomake.P_loppuosa.value.toUpperCase();
	  var ploppuosa = document.lomake.P_loppuosa.value;
  	if(pyer < 2000) var pmerkki = '-';
	  else if(pyer >= 2000) var pmerkki = 'A'
	  var psossu = pday + pmon + pyer.slice(2, 4) + pmerkki + ploppuosa;
	  var pnro = psossu.slice(0, 6) + psossu.slice(7, 10);
	  var pjakojaannos = pnro % 31;
	  var ptarkistusmerkki = ptarkistusMerkit.charAt(pjakojaannos);

		if(ptarkistusmerkki != psossu.charAt(psossu.length - 1))	{
		  hylkaa = 1;
		  virhe += 'Hakijan 2 SOTU väärin\n';
	    }		
	  }		
    if (document.lomake.H_Maxvuokra.value == "") {
    virhe += 'Max vuokra\n'
    hylkaa = 1;
    }	
	if (document.lomake.vercodekentta.value == "") {
          virhe += 'Tarkistuskoodi\n'
          hylkaa = 1;
  }
				
	if (hylkaa == 1){
		alert(virhe);
		return false;
	  }
	else{
		return true;
		}
  }

