  function tutki(teksti){
  //kelpuutetaan vain a-ö, A-÷ ja "-". "\n"- ja " "-merkkejä saa olla vain yksi peräkkäin.
    alfabet="abcdefghijklmnopqrstuvwxyzåäö-"

    var merkki=""
    var sana=""
    var rivi=""
    var runo=""
    var haiku=""
    var tavuja=0
    var i=0    
    while (i <= teksti.length){
      merkki=teksti.charAt(i)
      if (alfabet.indexOf(merkki.toLowerCase(),0) != -1){
        sana=sana+merkki
      }
      if (i >= teksti.length ||  merkki == "\n" || merkki == "\r" || merkki == " "){
      // "\r" on Macintoshin rivinvaihto
        if (sana != ""){
          tavutettu=erottele(sana)
          tavuja=tavuja+laskeTavut(tavutettu)
          rivi=rivi+tavutettu+" "
          sana=""
        }

        if (rivi != ""){
          if (i >= teksti.length || merkki == "\n" || merkki == "\r"){
            if (tavuja<10){
              runo=runo+" "
            }
            runo=runo+tavuja+": "+rivi+"\n"
            rivi=""
            haiku=haiku+tavuja
            tavuja=0
          }
        }

      }
      i++ 
    }//wend
    if (haiku=="575"){
      runo="Haiku!\n\n"+runo
    }
    else
      if (haiku=="57577"){
        runo="Tanka!\n\n"+runo
      }
      else
        runo=runo+" \nRunosi, joskin hieno, ei ole haiku eikä tanka."
    return runo
  }

  function erottele(sana){
    //Käsitellään käyttäjän tavuttamat yhdyssanat osa kerrallaan
    //Muut suoraan tavutukseen 
    var apusana=""
    var kohta
    while (sana.indexOf("-") != -1){
      kohta=sana.indexOf("-")
      apusana=apusana+tavuta(sana.substring(0,kohta))+"-" //osa tavutukseen      
      sana=sana.substring(kohta+1,sana.length) //poista juuri tavutettu kohta
    }//wend
    return apusana+tavuta(sana) //viimeinen osa mukaan, tai koko sana, jos ei yhdyssana
  }

  function tavuta(sana){
    var tavutettu=""
    var kaukana
    var takana
    var eka
    var toka

    sana="!"+sana+"!"
    for (j=1; j < sana.length-2 ; j++){
      //tarkastellaan väliä j/j+1, eli takana/eka
      kaukana=sana.charAt(j-1)
      takana=sana.charAt(j)
      eka=sana.charAt(j+1)
      toka=sana.charAt(j+2)
      tavutettu=tavutettu+takana

      //konsonanttisääntö
      if (onKonsonantti(eka) && onVokaali(toka)){ //konsonantti tai konsonantteja, ja vokaali
        for (m=j;!onVokaali(sana.charAt(m));m--){ //mutta edeltääkö niitä vokaali
        }//next m
        if (m>0){                                 //kyllä, laita tavuraja
          return tavutettu+"-"+tavuta(sana.substring(j+1,sana.length-1))
        }
      }

      //vokaalisääntö
      if (onVokaali(takana) && onVokaali(eka) && !onDiftongi(takana+eka)){
        return tavutettu+"-"+tavuta(sana.substring(j+1,sana.length-1))
      }

      //diftongisääntö
      if (onVokaali(eka) && onDiftongi(kaukana+takana)){
        return tavutettu+"-"+tavuta(sana.substring(j+1,sana.length-1))
      }

    }//next j
    //ei tavurajaa sanassa, palauta sana, mutta huutomerkit pois
    return sana.substring(1,sana.length-1) 
  }

  function onVokaali(kirjain){
    var vokaalit="aeiouyåäö"
    return (vokaalit.indexOf(kirjain.toLowerCase()) != -1)
  }

  function onKonsonantti(kirjain){
    var konsonantit="bcdfghjklmnpqrstvwxz"
    return (konsonantit.indexOf(kirjain.toLowerCase()) != -1)
  }

  function onDiftongi(kirjainpari){
    // Pitkät vokaalit eivät varsinaisesti ole diftongeja,
    // mutta tässä mukana ohjelmoinnin yksinkertaistamiseksi.
    // åå ja åi varsin teoreettisia.
    var diftongit="aa ee ii oo uu yy åå ää öö ai ei oi ui yi åi äi öi au eu iu ou äy öy ie uo yö ey iy"
    return (diftongit.indexOf(kirjainpari.toLowerCase()) != -1)
  }

  function laskeTavut(sana){
    var luku=1 //tavuja yksi enemmän kuin tavuviivoja
    for (k=1;k<sana.length-1;k++){ //1. ja viimeinen merkki eivät voi olla tavuviivoja
      if(sana.charAt(k)=="-"){
        luku++
      }
    }
    return luku
  }