///////////////////////////////////////////////////////////////////////
//
//   This program is free software; you can redistribute it and/or
//   modify it under the terms of the GNU General Public License (GPL)
//   as published by the Free Software Foundation; either version
//   2 of the License, or (at your option) any later version.
//
//   This program is distributed in the hope that it will be
//   useful, but WITHOUT ANY WARRANTY; without even the implied
//   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
//   PURPOSE. See the GNU General Public License for more details.
//
//   You can read the terms of GPL at http://www.gnu.org/copyleft/gpl.html
//   if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
//   Cambridge, MA 02139, USA.
//
//   NOTES
//
//   - IE 5.00.29 does not understand non-grouping regular expressions: '?:'
//
///////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////
//
//  Generic Window class
//
///////////////////////////////////////////////////////////////////////

function LibWin(strName, strTitle, strAttrib, msg)
{
    this.lib        = "LibWin.";
    var id          = this.lib + "constructor";

    this.win        = null;
    this.name       = strName  ? strName  : "window";
    this.title      = strTitle ? strTitle : "window";
    this.mime       = "text/html";
    this.msg        = msg;

    this.attrib = strAttrib
        ? strAttrib
        : "width=500,height=400,resizable,status";
}

LibWin.prototype.Window = function()
{
    var id = this.lib + "Window";

    if ( (this.win == null) || this.win.closed )
    {
        if ( this.msg != null )
        {
            status = this.msg;
        }

        this.win = window.open("", this.name, this.attrib);
        this.win.document.open( this.mime );

        if ( ! this.opener )
        {
            //  This browser version does not support Javascript 1.2
            //  and `opener' property, so add it

            this.opener = self;
        }

        if ( this.msg != null )
        {
            status = '';
        }

    }

    return this.win;
}

LibWin.prototype.WriteMsg = function(strMsg)
{
    var id = this.lib + "WriteMsg";

    var win = this.Window();
    win.document.write( strMsg );
    win.document.close();
}

///////////////////////////////////////////////////////////////////////
//
//  Utility functions
//
///////////////////////////////////////////////////////////////////////

function FillZeroes(str, max)
{
    var ret = '';

    for ( var i = str.length; i < max; i++ )
    {
        ret += '0';
    }

    return ret + str;
}

function Is(val)
{
    if (  (val == null)  || (val == '' ) )
    {
        return null;
    }
    else
    {
        return val;
    }
}

function MySleep(count, msg)
{
    if ( msg )
    {
        msg += ' / ';
    }
    else
    {
        msg = '';
    }

    for (var i = 0; i < count; i++)
    {
        i++;
        var x = Math.sqrt(100 / 2);        //  Doing something
        window.status = msg + i;
    }
}

function GetVerse()
{
    return LAST_VERSE;
}

function IsVerse( re )
{
    reg = new RegExp( re );

    if ( Is(LAST_VERSE)  &&  (reg.exec(LAST_VERSE) != null) )
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

function StringReplace(str, replace, start, len)
{
    //  STR     = input string, like "abc12cde"
    //  REPLACE = Added string, like "--"
    //  START   = Replace position start, say 3
    //  LEN     = How much to replace, say 2
    //
    //  StringReplace( "abc12cde", "--", 3, 2)  => "abc--cde"

    var ret = str;

    if ( (start != null)  &&  (start > -1) )
    {
        if ( start > str.length )
        {
            ret = ret + replace;        // Add to the end
        }
        else
        {
            var left = str.substring( 0, start);
            var pos  = start + len;

            if ( pos > str.length )
            {
                ret = left + replace;
            }
            else
            {
                var right = str.substring( pos, str.length);
                ret = left + replace + right;
            }
        }
    }

    return ret;
}

function MyPrint()
{
    window.print();
    // parent.frames[1].focus();
    // parent.frames[1].print();
}

///////////////////////////////////////////////////////////////////////
//
//  Array regexp data types
//
//  'Some regexp here{extra message}!modifier'
//
///////////////////////////////////////////////////////////////////////

function StrRegexpMatcher(str)
{
    //  any character before !  or {

    var result;

    if ( result = str.match( /(.*)\{/ )  )
    {
        str = result[1];
    }
    else if ( result = str.match( /(.*)\!/ )  )
    {
        str = result[1];
    }

    return str;
}

function StrRegexpExtraString(str)
{
    //  anything inside { ... }

    var ret    = null;
    var result = str.match( /(\{[^}!]+\})/ );

    if ( result != null )
    {
        ret = result[1];
    }

    return ret;
}

function StrRegexpModifier(str)
{
    //  The string "g" or "gi" after !

    var pos      = str.indexOf('!');
    var modifier = '';

    if ( pos != -1 )
    {
        modifier = str.slice(pos + 1, str.length);
    }

    return modifier;
 }

///////////////////////////////////////////////////////////////////////
//
//  Book, Chapter, Verse parsing
//
///////////////////////////////////////////////////////////////////////

function BibleVerseParseBookVerse(str)
{
    var ret    = null;
    var result = str.match( /[12]*[A-Z][^ ]+\s+\d+:(\d+)/ );

    if ( result != null )
    {
        ret = result[1];
    }

    return ret;
}

function BibleVerseParseBookChapter(str)
{
    var ret    = null;
    var result = str.match( /^[12]*[A-Z][^ ]+\s+(\d+):/ );

    if ( result != null )
    {
        ret = result[1];
    }

    return ret;
}

function BibleVerseParseBookName(str)
{
    var ret    = null;
    var result = str.match( /^[12]*[A-Z][^ .]+/ );

    if ( result != null )
    {
        ret = result[0];
    }

    return ret;
}

///////////////////////////////////////////////////////////////////////
//
//  Blue Letter Bible interface: Original Greek text
//
///////////////////////////////////////////////////////////////////////

var bibleBlue_fi_en = new Array();

bibleBlue_fi_en['1Moos'] = 'Gen';
bibleBlue_fi_en['2Moos'] = 'Exd';
bibleBlue_fi_en['3Moos'] = 'Lev';
bibleBlue_fi_en['4Moos'] = 'Num';
bibleBlue_fi_en['5Moos'] = 'Deu';
bibleBlue_fi_en['Joosua'] = 'Jos';
bibleBlue_fi_en['Tuom'] = 'Jdg';
bibleBlue_fi_en['Ruut'] = 'Rth';
bibleBlue_fi_en['1Sam'] = '1Sa';
bibleBlue_fi_en['2Sam'] = '2Sa';
bibleBlue_fi_en['1Kun'] = '1Ki';
bibleBlue_fi_en['2Kun'] = '2Ki';
bibleBlue_fi_en['1Aik'] = '1Ch';
bibleBlue_fi_en['2Aik'] = '2Ch';
bibleBlue_fi_en['Esra'] = 'Ezr';
bibleBlue_fi_en['Neh'] = 'Neh';
bibleBlue_fi_en['Ester'] = 'Est';
bibleBlue_fi_en['Job'] = 'Job';
bibleBlue_fi_en['Ps'] = 'Psa';
bibleBlue_fi_en['Snl'] = 'Pro';
bibleBlue_fi_en['Srn'] = 'Ecc';
bibleBlue_fi_en['Kv'] = 'Sgs';
bibleBlue_fi_en['Jes'] = 'Isa';
bibleBlue_fi_en['Jer'] = 'Jer';
bibleBlue_fi_en['Val'] = 'Lam';
bibleBlue_fi_en['Hes'] = 'Eze';
bibleBlue_fi_en['Dan'] = 'Dan';
bibleBlue_fi_en['Hoos'] = 'Hsa';
bibleBlue_fi_en['Joel'] = 'Joe';
bibleBlue_fi_en['Aam'] = 'Amo';
bibleBlue_fi_en['Obad'] = 'Oba';
bibleBlue_fi_en['Joona'] = 'Jon';
bibleBlue_fi_en['Miika'] = 'Mic';
bibleBlue_fi_en['Naah'] = 'Nah';
bibleBlue_fi_en['Hab'] = 'Hab';
bibleBlue_fi_en['Sef'] = 'Zep';
bibleBlue_fi_en['Hag'] = 'Hag';
bibleBlue_fi_en['Sak'] = 'Zec';
bibleBlue_fi_en['Mal'] = 'Mal';
bibleBlue_fi_en['Matt'] = 'Mat';
bibleBlue_fi_en['Mark'] = 'Mar';
bibleBlue_fi_en['Luuk'] = 'Luk';
bibleBlue_fi_en['Joh'] = 'Jhn';
bibleBlue_fi_en['Apt'] = 'Act';
bibleBlue_fi_en['Room'] = 'Rom';
bibleBlue_fi_en['1Kor'] = '1Cr';
bibleBlue_fi_en['2Kor'] = '2Cr';
bibleBlue_fi_en['Gal'] = 'Gal';
bibleBlue_fi_en['Ef'] = 'Eph';
bibleBlue_fi_en['Fil'] = 'Phl';
bibleBlue_fi_en['Kol'] = 'Col';
bibleBlue_fi_en['1Tess'] = '1Th';
bibleBlue_fi_en['2Tess'] = '2Th';
bibleBlue_fi_en['1Tim'] = '1Ti';
bibleBlue_fi_en['2Tim'] = '2Ti';
bibleBlue_fi_en['Tiit'] = 'Tts';
bibleBlue_fi_en['Filemon'] = 'Phm';
bibleBlue_fi_en['Hepr'] = 'Hbr';
bibleBlue_fi_en['Jaak'] = 'Jam';
bibleBlue_fi_en['1Piet'] = '1Pe';
bibleBlue_fi_en['2Piet'] = '2Pe';
bibleBlue_fi_en['1Joh'] = '1Jo';
bibleBlue_fi_en['2Joh'] = '2Jo';
bibleBlue_fi_en['3Joh'] = '3Jo';
bibleBlue_fi_en['Juud'] = 'Jud';
bibleBlue_fi_en['Ilm'] = 'Rev';

function BibleBookTranslateFI_EN(book)
{
    var ret = null;
    var en = bibleBlue_fi_en[ book ];

    if ( en == null )
    {
        window.status = "Error: FI_EN " + book;
    }
    else
    {
        ret = en;
    }

    return en;
}

function UrlBlueFillZeroes(str)
{
     return FillZeroes(str, 3);
}

function UrlBlueHtmlPagePrimitive(book, chap, verse)
{
    var page    = book + UrlBlueFillZeroes( chap) + '.html';
    var section = '#' + verse;
    var ret     = page + section;

    return ret;
}

function UrlBlueHtmlPageKjv(book, chapter, verse)
{
    var url  = "http://www.blueletterbible.com/kjv/";
    var page = UrlBlueHtmlPagePrimitive(book, chapter, verse);
    var ret  = null;

    if ( Is(page) )
    {
        // Gen/Gen001.html#20
        ret = url + book + '/' + page;
    }

    return url;
}

function UrlBlueHtmlPageGreek(book, chapter, verse)
{
    // book=1Cr&chapter=6&verse=19&version=kjv
    var url = "http://www.blueletterbible.org/cgi-bin/c.pl";

    var ret = url
            + '?book='      + book
            + '&chapter='   + chapter
            + '&verse='     + verse
            + '&version=kjv'
            ;

    return ret;
}

function UrlBlueHtmlPageMain(str, type)
{
    //  TYPE = greek

    var ret     = null;

    if ( str == null )
    {
        return ret;
    }

    var book    = BibleVerseParseBookName(str);
    var chapter = BibleVerseParseBookChapter(str);
    var verse   = BibleVerseParseBookVerse(str);

    if ( (book != null)  &&  (chapter != null)  &&  (verse != null) )
    {
        var book  = BibleBookTranslateFI_EN(book);

        if ( Is(book) )
        {
            if ( (type != null)  &&  (type == 'greek') )
            {
                ret = UrlBlueHtmlPageGreek(book, chapter, verse);
            }
            else
            {
                ret = UrlBlueHtmlPageKjv(book, chapter, verse);
            }
        }
    }

    return ret;
}

function UrlBlueWindowOpenGreek(ref)
{
    // REF = Bible verse in Finnish

    var url  = UrlBlueHtmlPageMain(ref, 'greek');

    if ( Is(url) )
    {
        window.open( url, "blueletter" );
    }
}

function UrlBlueWindowOpenKjv(ref)
{
    var url  = UrlBlueHtmlPageMain(ref, 'kjv');

    if ( Is(url) )
    {
        window.open( url, "blueletter" );
    }
}

///////////////////////////////////////////////////////////////////////
//
//  Blue Letter Bible interface: Strong's words
//
///////////////////////////////////////////////////////////////////////

function UrlStrongHtmlPage(num)
{
    //  Blue Letter Bible - Strong's word search service

    var url = '';

    if ( Is(num) )
    {
        url  = 'http://www.blueletterbible.org/cgi-bin/strongs.pl';

        var lang = 'G';
        var stat = num.search( /^0\d/ );

        //  Strong numbers that start with 0 are Hebrew
        if (  stat != null  &&   stat > -1 )
        {
            lang = 'H';
        }

        url += '?language=' + lang + '&strongs=' + num;
    }

    return url;
}

function UrlStrongHref(msg)
{
    var ret     = msg;
    var re      = /&lt;\[(\d+)\]/g;
    var reLen   = "&lt;[]".length;
    var str     = '';
    var loop    = 0;
    var result  = '';

    while ( (result = re.exec(msg)) != null )
    {
        var num     = result[1];
        var href    = '<A HREF="javascript:opener.UrlStrongWindowOpen(\''
                    + num
                    + '\');">';

        //  Note: Opera 7, does not support IE 5.5 RegExp.leftContext
        //  or RegExp.rightContext

        var left    = msg.substring(0, result.index);

        str += left        //  RegExp.leftContext
            + '&lt;['
            + href
            + num
            + '</A>'
            + ']'
            ;

        //  Search only the rightmost string
        //  "msg  = RegExp.rightContext" does not work in all
        //  browsers.

        var len   = reLen + num.length + result.index;
        var right = msg.substring(len);

        // Force searching rest of the string again
        // reset the search index in regexp object.

        re.lastIndex = 0;
        msg          = right;
        loop         = 1;
    }

    if ( loop  &&  (right != null) )
    {
        ret = str + right;
    }

    return ret;
}

function UrlStrongWindowOpen(num)
{
    var url     = UrlStrongHtmlPage(num);

    if ( Is(url) )
    {
        //  This will not open new window if there is already
        //  window identified by "strong"

        window.open( url, "strong" );
    }
}

///////////////////////////////////////////////////////////////////////
//
//  Text: highlighting and marking bible verses
//
///////////////////////////////////////////////////////////////////////

// .................................................................
// Greek

function HighlightGreekMarkings(msg)
{
    var style, end, re;

    // 1Sam. 19:20. And Saul <[07586] Sha'uwl> sent

    style = '<SPAN STYLE="color:teal;">';
    end   = '</SPAN>';
    re    = /(&lt;\[(\d*)([^;]+)&gt;)/g;
    msg   = msg.replace( re, style + '$1' + end );

    return msg;
}

function HighlightGreekWords(msg)
{
    var style, end, re;

    //  Definitive article

    style = '<SPAN STYLE="color:blue;font-style:italic;">';
    end   = '</SPAN>';
    re    = /\b(ho|ton)\b/g;
    msg   = msg.replace( re, style + '$1' + end );

    return msg;
}

function HighlightGreekPrepositions(msg)
{
    var style, end, re;

    // In Finnish: kreikan prepositiot
    // en   = -ssa, sisalla jossakin
    // ek   = -sta, pois jostakin
    // eis  = -een, -aan, -iin, johonkin (esim. haneen)
    // hypo = -lta

    style = '<SPAN STYLE="text-decoration:underline;">';
    end   = '</SPAN>';
    re    = /\b(en|ek|eis|dia|hutos|hupo|huper|para|kata)([& ])/g;
    msg   = msg.replace( re, style + ' $1' + end + '$2');

    return msg;
}

function HighlightGreekPrepositionsFinnish(msg)
{
    var style, end, re;

    style = '<SPAN STYLE="text-decoration:underline;">';
    end   = '</SPAN>';
    re = /\B(lla|ll&auml;|lta|l&auml;|lle|ssa|ss&auml;|sta|st&auml;aan|een|iin|oon)( +&[^ ]+ +(en|eks?|eis|dia|hutos|para|kata|hupo)\b)/g;
    msg   = msg.replace( re, style + '$1' + end + '$2');

    return msg;
}

function HighlightGreekPrepositionsEnglish(msg)
{
    var style, end, re;

    style = '<SPAN STYLE="text-decoration:underline;">';
    end   = '</SPAN>';
    re    = /\b(in|from|by|under|above|below|whereby|at)\b/g;
    msg   = msg.replace( re, style + ' $1' + end );

    return msg;
}

function highlightBlueEnglish(msg)
{
    var style, end, re;

    style = '<SPAN STYLE="font-family=Arial;font-style:italic;font-size:1.1em;color:red;font-weight:bold;">';
    end   = '</SPAN>';
    re = /\b(punish[^ ]*|torment|kolazo|kolasis|glory|glorious|doxa|spirit|pneuma|ruwach|salvation|soteria[^& ]*|[lL]ord|kyri[^& ]+|kurio[^& ]*|worship|proskyn[^& ]+|latreuo|magnif[^ ]+|megalun[^& ]+|power|dunamis|Y.hovah|LORD|redeem[^ ]*|lutro[^ ]+|proseuchomai|marturia|witness)\b/g;
    msg = msg.replace( re, style + '$1' + end );


    style = '<SPAN STYLE="font-size:1.0em;color:navy;font-weight:bold;">';
    end   = '</SPAN>';
    re    = /\b(grace|charis|euaggeli[^ ]+|gospel|onoma|name)\b/g;
    msg   = msg.replace( re, style + '$1' + end );

    return msg;
}

function HighlightGreekBlue(msg)
{
    msg = highlightBlueEnglish(msg);
    msg = HighlightGreekMarkings(msg);
    msg = HighlightGreekPrepositions(msg);
    msg = HighlightGreekPrepositionsEnglish(msg);

    //  Add STRONG links

    msg = UrlStrongHref(msg);

    return msg;
}

function HighlightGreekNovum(msg)
{
    msg = HighlightGreekPrepositionsFinnish(msg);
    msg = HighlightGreekWords(msg);
    msg = HighlightGreekMarkings(msg);
    msg = HighlightGreekPrepositions(msg);

    return msg;
}

function HighlightGreekKit(msg)
{
    msg = HighlightGreekPrepositionsEnglish(msg);
    msg = HighlightGreekWords(msg);

    return msg;
}

// .................................................................
//  UM

var UMwordAdded = new Array();

//UMwordAdded['']       = '';
UMwordAdded['Matt. 5:19']       = '(n&auml;hden)!g';
UMwordAdded['Matt. 10:32']      = '(yhteyden)!g';
UMwordAdded['Matt. 11:25']      = '(julkisesti)';
UMwordAdded['Mark. 1:4']        = '(vertauskuvaksi)';
UMwordAdded['Luuk. 1:3']        = '(johdonmukaisessa)';
UMwordAdded['Luuk. 1:37']       = '(julistus)';
UMwordAdded['Luuk. 1:80']       = '(julkisesti)';
UMwordAdded['Luuk. 10:21']      = '(julkisesti)';
UMwordAdded['Luuk. 24:47']      = '(perusteella)';
UMwordAdded['Joh. 3:21']        = '(sopusoin[^ ]+)';
UMwordAdded['Joh. 4:22']        = '(l&auml;ht&ouml;isin)';
UMwordAdded['Joh. 8:42']        = '(luota|omasta aloitteestani)!g';
UMwordAdded['Joh. 10:38']       = '(yhteyd[^,. ]+)!g';
UMwordAdded['Joh. 17:3']        = '(hankkivat)';
UMwordAdded['Joh. 17:11']       = '(takia)';
UMwordAdded['Joh. 17:12']       = '(takia)';
UMwordAdded['Joh. 20:31']       = '(avulla)';
UMwordAdded['Apt. 2:22']        = '(julkisesti|v&auml;lit[^ ]+)!g';
UMwordAdded['Apt. 3:12']        = '(jumal.*antaum[^,. ]+)';
UMwordAdded['Apt. 4:12']        = '(ihmisten +keskuudessa)';
UMwordAdded['Apt. 5:28']        = '(perusteella)';
UMwordAdded['Apt. 10:36']       = '\\b(muu[^ ]*|mui[^ ]+|v&auml;l[^ ]+)!g';
UMwordAdded['Apt. 13:2']        = '(julkisesti)';
UMwordAdded['Apt. 13:24']       = '(julkisesti)';
UMwordAdded['Apt. 17:23']       = '(huolellisesti|jumal.*antaum[^,. ]+)!g';
UMwordAdded['Apt. 18:25']       = '(suullisesti|koskevia asioita)!g';
UMwordAdded['Apt. 20:20']       = '(julkisesti)';
UMwordAdded['Apt. 23:8']        = '(julkisesti)';
UMwordAdded['Apt. 20:24']       = '(perusteellisen)';
UMwordAdded['Room. 1:28']       = '\\b(t&uml;sm[^,. ]+)';
UMwordAdded['Room. 3:20']       = '\\b(t&uml;sm[^,. ]+)';
UMwordAdded['Luuk. 3:22']       = '(v&auml;lityksell[^,. ]+){?}';
UMwordAdded['Room. 8:8']        = '(sopusoin[^ ]+)';
UMwordAdded['Room. 8:9']        = '(sopusoin[^ ]+|todella)!g';
UMwordAdded['Room. 8:11']       = '(yhteyd[^,. ]+)!g';
UMwordAdded['Room. 8:12']       = '(yhteyd[^,. ]+)!g';
UMwordAdded['Room. 8:32']       = '(huomaavaisesti|muuta)!g';
UMwordAdded['Room. 12:15']      = '(yhteyd[^,. ]+)!g';
UMwordAdded['Room. 10:9']       = '(julkisesti)';
UMwordAdded['Room. 15:27']      = '(julkisesti)';
UMwordAdded['1. Kor. 1:2']      = '(yhteyd[^,. ]+)!g';
UMwordAdded['1. Kor. 1:30']     = '(yhteyd[^,. ]+|vap.*perusteella|ansiostaan)!g';
UMwordAdded['1. Kor. 14:14']    = '(lahj[ao][^,. ]*)!g';
UMwordAdded['1. Kor. 14:15']    = '(lahj[ao][^,. ]*)!g';
UMwordAdded['1. Kor. 14:16']    = '(lahj[ao][^,. ]*)!g';
UMwordAdded['2. Kor. 4:6']      = '(v&auml;lityksell[^,. ]+)';
UMwordAdded['2. Kor. 5:19']     = '(v&auml;lityksell[^,. ]+)';
UMwordAdded['2. Kor. 9:13']     = '(julkisesti|koskevalle|antamassanne +avustuksessa)!g';
// UMwordAdded['2. Kor. 11:2']     = '(siveellisesti)';
UMwordAdded['Gal. 2:16']        = '(kohdistuv[^ ]+)';
UMwordAdded['Gal. 5:4']         = '(h&auml;nen)';
UMwordAdded['Ef. 1:6']          = '(v&auml;lityksell[^,. ]+)';
UMwordAdded['Ef. 1:10']         = '(hallinto|rajalla)!g';
UMwordAdded['Ef. 1:12']         = '(palvelisimme)';
UMwordAdded['Ef. 1:17']         = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['Ef. 2:3']          = '(sopusoin[^ ]+)';
UMwordAdded['Ef. 2:21']         = '(sopusoin[^ ]+|yhteyde[^ ]+)';
UMwordAdded['Ef. 3:12']         = '(jonka.*vapaasti|kohdistuv[^ ]+)';
UMwordAdded['Ef. 4:13']         = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['Ef. 4:16']         = '(sopusoin[^ ]+)';
UMwordAdded['Fil. 1:9']         = '(t&auml;sm&auml;l[^,. ]+|jatkuvasti)!g';
UMwordAdded['Fil. 1:20']        = '(sopusoin[^ ]+|avulla)!g';
UMwordAdded['Fil. 1:29']        = '(etu)';
UMwordAdded['Fil. 2:9']         = '\\b(mu[ui][^,. ]*|huomaavai[^ ]+)!g';
UMwordAdded['Kol. 1:6']         = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['Kol. 1:9']         = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['Kol. 1:10']        = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['Kol. 1:15']        = '\\b(muu[^,. ]*)!g';
UMwordAdded['Kol. 1:16']        = '\\b(muu)!g';
UMwordAdded['Kol. 1:17']        = '\\b(mu[iu][^,. ]*|v&auml;lityk[^,. ]+)!g';
UMwordAdded['Kol. 2:2']         = '(t&auml;sm&auml;l[^,. ]+|sopusoin[^ ]+|sopusoin[^ ]+|silm[^ ]+)!g';
UMwordAdded['Kol. 2:3']         = '(huolellisesti)';
UMwordAdded['Kol. 2:9']         = '(ominai[^ ]+)';
UMwordAdded['Kol. 2:10']        = '(v&auml;lityk[^,. ]+)';
UMwordAdded['Kol. 2:12']        = '(yhteyd[^,. ]+|kohdistuv[^ ]+)';
UMwordAdded['Kol. 2:19']        = '(sopusoin[^ ]+)';
UMwordAdded['Kol. 3:10']        = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['Gal. 6:18']        = '(ilmaisemanne)';
UMwordAdded['2. Tess. 2:4']     = '(julkisesti)';
UMwordAdded['1. Tim. 2:2']      = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 2:4']      = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['1. Tim. 3:16']     = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 4:3']      = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['1. Tim. 4:7']      = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 4:8']      = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 4:13']     = '(Kiinnit.*huomiota.*julkise[^ ]+)';
UMwordAdded['1. Tim. 4:16']     = '(alitajuisesti)';
UMwordAdded['1. Tim. 5:4']      = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 5:24']     = '(julkisesti)';
UMwordAdded['1. Tim. 5:25']     = '(julkisesti)';
UMwordAdded['1. Tim. 6:3']      = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 6:5']      = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 6:6']      = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 6:11']     = '(antaum[^,. ]+)';
UMwordAdded['1. Tim. 6:15']     = '(hallitsevien)';
UMwordAdded['2. Tim. 2:1']      = '(yhteyd[^,. ]+)';
UMwordAdded['2. Tim. 2:10']     = '(yhteyd[^,. ]+|ohella)!g';
UMwordAdded['2. Tim. 2:25']     = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['2. Tim. 3:5']      = '(antaum[^,. ]+|n&auml;hden)!g';
UMwordAdded['2. Tim. 3:7']      = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['2. Tim. 3:12']     = '(antaum[^,. ]+|yhteyde[^,. ]+)!g';
UMwordAdded['Tiit. 1:1']        = '(t&auml;sm&auml;l[^,. ]+|antaumuksen)!g';
UMwordAdded['Tiit. 1:16']       = '(julistavat +julkisesti)';
UMwordAdded['Tiit. 2:12']       = '(antaum.*osoittaen)';
UMwordAdded['Hepr. 10:32']      = '(jatkuvasti)';
UMwordAdded['Hepr. 11:13']      = '(julkisesti)';
UMwordAdded['Hepr. 10:26']      = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['Hepr. 12:28']      = '(jatkuvasti)';
UMwordAdded['1. Piet. 4:19']    = '(sopusoin[^ ]+)';
UMwordAdded['2. Piet. 1:2']     = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['2. Piet. 1:3']     = '(t&auml;sm&auml;l[^,. ]+|auliisti|antaumusta)!g';
UMwordAdded['2. Piet. 1:8']     = '(t&auml;sm&auml;l[^,. ]+|suhteen)!g';
UMwordAdded['2. Piet. 1:6']     = '(antaum[^,. ]+)';
UMwordAdded['2. Piet. 1:7']     = '(antaum[^,. ]+)';
UMwordAdded['2. Piet. 2:9']     = '(antaum[^,. ]+)';
UMwordAdded['2. Piet. 2:20']    = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['2. Piet. 2:21']    = '(t&auml;sm&auml;l[^,. ]+)';
UMwordAdded['2. Piet. 3:11']    = '(antaum[^,. ]+ +teoissa)';
UMwordAdded['1. Joh. 4:4']      = '(yhteyde[^,. ]+)';
UMwordAdded['1. Joh. 3:24']     = '(yhteyde[^,. ]+)!g';
UMwordAdded['Ilm. 1:4']         = '(piirikunnassa)';


var UMwordDeleted = new Array();
UMwordDeleted['Mark. 9:41']     = '(perusteella){&lt;=muutos/puuttuu:minun nimess&auml;ni}';
UMwordDeleted['Room. 8:1']      = '(t&auml;hden){puuuttu:nyt}';
UMwordDeleted['Room. 15:20']    = '(Kristus){puuuttu:nimi}';
UMwordDeleted['2. Kor. 5:18']   = '(meid&auml;t){puuttuu:itsens&auml;}';
UMwordDeleted['2. Kor. 5:19']   = '(kanssaan){puuttuu:itsens&auml;}';
UMwordDeleted['Hepr. 10:34']    = '(on){puuttuu:taivaissa}';


var UMwordModified = new Array();
UMwordModified['1. Moos. 1:2']  = '(vaikut[^ ]+ +voima){&lt;=muutos:Henki}';
UMwordModified['1. Moos. 1:30'] = '(sieleuna){&lt;=muutos:henki}';
UMwordModified['1. Aik. 12:18'] = '(verhosi){&lt;=tarkemmin:vaatettaa,pukeutua,t&auml;ytt&auml;&auml;}';
UMwordModified['Matt. 2:8']     = '(kumartamaan){&lt;=muutos:palvoa}';
UMwordModified['Matt. 22:43']   = '(henkey[^,. ]+){&lt;=muutos:hengess&auml;}';
// UMwordModified['Mark. 9:41']    = '(perusteella){&lt;=muutos:minun nimess&auml;ni}';
UMwordModified['Luuk. 4:22']    = '(miellyttäviä){&lt;=muutos:armo)';
UMwordModified['Luuk. 2:38']    = '(vapaut[^,. ]+){&lt;=muutos:lunastusta}';
UMwordModified['Luuk. 24:21']   = '(vapaut[^,. ]+){&lt;=muutos:lunastaa}';
UMwordModified['Luuk. 18:13']   = '(suosiollinen){&lt;=armollinen)';
UMwordModified['Luuk. 24:47']   = '(saarnattaisiin){&lt;=muutos:k&auml;sky?}';
UMwordModified['Joh. 1:4']      = '(v&auml;[^ ]){&lt;=muutos:oli}';
UMwordModified['Joh. 5:36']     = '(m&auml;&auml;r&auml;si){&lt;=muutos:antoi}';
UMwordModified['Joh. 17:3']     = '(tuntem[^ ]){{&lt;=muutos:tuntevat}';
UMwordModified['Joh. 20:31']    = '\\b(takia)';
UMwordModified['Apt. 3:16']     = '(tulee +h&auml;nen +kauttaan){&lt;=muutos:h&auml;n vaikuttaa}';
UMwordModified['Apt. 6:8']      = '(miellytt&auml;vyytt[^ ]+){&lt;=muutos:armoa,uskoa}';
UMwordModified['Apt. 7:10']     = '(miellytt[^ ]+){&lt;=armon)';
UMwordModified['Apt. 7:59']     = '(esitt.*vetoomusta){&lt;=muutos:huutaa avuksi}';
UMwordModified['Apt. 13:48']    = '(asetetut ehdolle){&lt;=muutos:m&auml;&auml;r&auml;t&auml;}';
UMwordModified['Apt. 20:24']    = '(sieluani){&lt;=tarkemmin:el&auml;m&auml;ni,henkeni}';
UMwordModified['Room. 3:25']    = '(uhriksi|jolloin.*noudatti +k[^ ]+)!g';
UMwordModified['Room. 8:26']    = '(puhuu){&lt;=muutos:rukoilee}';
UMwordModified['Room. 8:34']    = '(puhuu){&lt;=muutos:rukoilee}';
UMwordModified['Room. 11:12']   = '(kansakuntien +ihmi[^ ]+|t&auml;ysi lukunsa)!g';
UMwordModified['Room. 15:27']   = '(kansakuntien +ihmi[^ ]+){&lt;=muutos:pakanat}';
UMwordModified['Ef. 1:6']       = '(rakkaansa){muutos:-ssa}';
UMwordModified['Ef. 4:16']      = '(yhteistoim[^ ]+)';
UMwordModified['Fil. 1:9']      = '(t&auml;yden.*ohella)';
UMwordModified['Fil. 1:20']     = '(tulee.*julist[^ ]+){&lt;=muutos:ylist&auml;&auml;}';
UMwordModified['Kol. 2:10']     = '\\b(teil.*eys)\\b';
UMwordModified['1. Tim. 3:16']  = '(kansakuntien){&lt;=muutos:pakanoiden}';
UMwordModified['1. Tim. 4:1']   = '(henkey[^ ]+ +ilma[^ ]+){&lt;=muutos:henki}!g';
UMwordModified['1. Tim. 4:14']  = '(lahjaa){&lt;=muutos:armolahjaa}';

UMwordModified['2. Tim. 3:5']   = '(osoittautuvat +pettymykseksi){&lt;=muutos:kielt&auml;&auml;}';
UMwordModified['Tiit. 2:11']    = '(kaikenlaisille){&lt;=muutos:kaikille}';
UMwordModified['Hepr. 9:12']    = '(vapaut[^ ]+){&lt;=muutos:lunastuksen}';
UMwordModified['Hepr. 11:7']    = '(jumalallinen){&lt;=muutos:Jumalan}';
UMwordModified['Hepr. 11:7']    = '(vapauttanne){&lt;=muutos:luottamus,rohkeus,uskallus}';
UMwordModified['Hepr. 12:9']    = '(hengellisen +el[^ ]+){&lt;=muutos:henkien}';
UMwordModified['Hepr. 12:23']   = '(hengell[^ ]+ +el[^ ]+){&lt;=muutos:henkien luo}';
UMwordModified['1. Piet. 1:18'] = '(vapaut[^ ]+){&lt;=muutos:lunastettu}';
UMwordModified['1. Piet. 1:11'] = '(henki +Kristuksesta){&lt;=Kristuksen henki}';
UMwordModified['1. Piet. 5:12'] = '(pysyk[^ ]+ lujina){&lt;=muutos:jossa olette}';
UMwordModified['2. Piet. 2:9']  = '(vapaut[^ ]+){&lt;=muutos:pelastaa}';
UMwordModified['2. Piet. 3:11'] = '(k&auml;t[^ ]+){&lt;=tarkemmin:vaellus,el&auml;mel&auml;}';
UMwordModified['Juud. 1:19']      = '(hengellisy[^,. ]+){&lt;=muutos:Henke&auml;}';
UMwordModified['1. Joh. 4:1']   = '(henkey[^ ]+ +ilma[^,. ]+){&lt;=muutos:henki}!g';
UMwordModified['1. Joh. 4:2']   = '(henkey[^ ]+ +ilma[^,. ]+){&lt;=muutos:henki}!g';
UMwordModified['1. Joh. 4:3']   = '(henkey[^ ]+ +ilma[^,. ]+){&lt;=muutos:henki}!g';
UMwordModified['1. Joh. 4:4']   = '(teid&auml;n){&lt;=muutos:teiss&auml;}!g';
UMwordModified['1. Joh. 4:6']   = '(henkey[^ ]+ +ilma[^,. ]+){&lt;=muutos:henki}!g';
UMwordModified['Ilm. 1:9']      = '(puhumisen){&lt;=muutos:sana}';
UMwordModified['Ilm. 1:10']     = '(henkeytyksest[^ ]+){&lt;=muutos:hengess&auml;}';
UMwordModified['Ilm. 6:9']      = '(todistus[^ ]+){&lt;=muutos:todistuksen}';
UMwordModified['Ilm. 16:14']    = '(henkeytt&auml;mi&auml; +ilmauksia){&lt;=muutos:henki&auml;}';
UMwordModified['Ilm. 12:17']    = '(Jees.*todistamis[^ ]+ +ty[^ ]+){&lt;=muutos:Jeesuksen todistus}';
UMwordModified['Ilm. 19:10']    = '(Jees.*todistamis[^ ]+ +ty[^ ]+){&lt;=muutos:Jeesuksen todistus}';


function HighlightWordChange(verse, msg, type, array)
{
    var style   = '<SPAN STYLE="color:blue;">';
    var end     = '</SPAN>';

    var str     = array[verse];

    if ( str != null )
    {

        // alert( type + ' ' + str);


        var modifier = StrRegexpModifier( str );
        var re1      = StrRegexpMatcher( str);
        var re       = new RegExp( re1, modifier);
        var add      = StrRegexpExtraString( str );

        if ( type == 'added' )
        {

            msg     = msg.replace( re,
                    style
                    + '$1'
                    + '{&lt;=lis&auml;ys}'
                    + end
                    , modifier);

        }
        else if ( type == 'deleted' )
        {
            add     = add ? add : '{}';

            msg     = msg.replace( re, '$1'
                    + style
                    + ' ' + add + ' '
                    + end
                    , modifier);

        }
        else if ( type == 'modified' )
        {
            add         = add ? add : '{&lt;=muutos}';
            var style2  = '<SPAN STYLE="text-decoration:underline;">';

            msg     = msg.replace( re,
                    style
                        + style2
                        + '$1'
                        + end
                    + add
                    + end
                    , modifier);
        }
    }

    return msg;
}

function HighlightUMwords(msg)
{
    var verse = GetVerse();

    msg = HighlightWordChange(verse, msg, 'added'   , UMwordAdded);
    msg = HighlightWordChange(verse, msg, 'deleted' , UMwordDeleted);
    msg = HighlightWordChange(verse, msg, 'modified', UMwordModified);

    return msg;
}

function HighlightUMwords2(msg, verse, one, two, type)
{
    if ( IsVerse(verse) )
    {
        var arr = new Array();
        arr[verse] = one;
        msg = HighlightWordChange(verse, msg, type, arr);

        arr[verse] = two;
        msg = HighlightWordChange(verse, msg, type, arr);
    }

    return msg;
}

function HighlightUM (msg)
{

    var style, end, re;

    msg = HighlightUMwords(msg);


    msg = HighlightUMwords2(  msg
                        , 'Luuk. 1:68'
                        , '(vapaut[^,. ]+){&lt;=muutos:lunastuksen}'
                        , '(toteuttanut){&lt;=tarkemmin:valmistanut}'
                        , 'modified'
                        );

    msg = HighlightUMwords2(  msg
                        , 'Joh. 14:14'
                        , '(tahansa){&lt;=poistettu:minulta}'
                        , '(niin){&lt;=poistettu:min&auml;}'
                        , 'deleted'
                        );

    msg = HighlightUMwords2(  msg
                        , 'Room. 8:27'
                        , '(puhuu){&lt;=muutos:rukoilee}'
                        , '(tarkoitus){&lt;=muutos:mieli}'
                        , 'modified'
                        );

    msg = HighlightUMwords2(  msg
                        , '2. Tim. 1:10'
                        , '(luonut valoa +el[^ ]+){&lt;=muutos:tuoda p&auml;iv&auml;nvaloon,}'
                        , '(ja turmeltumattomuuteen){&lt;=muutos:el&auml;m&auml;n ja kuolemattomuuden}'
                        , 'modified'
                        );


    msg = HighlightUMwords2(  msg
                        , 'Tiit. 2:14'
                        , '(vapaut[^ ]+){&lt;=muutos:lunastaa}'
                        , '(kaikenlaisesta){&lt;=tarkemmin:kaikesta}'
                        , 'modified'
                        );

    //      Other Changes

    if ( ! GetVerse().match( /(Aik|Moos|Sam|Job)\./ ))
    {
        style   = '<SPAN STYLE="color:blue;">';
        end     = '</SPAN>';
        re      = /(Jehov[^,. ]+)/g;
        msg     = msg.replace( re, style + '$1{&lt;=lis&auml;ys}' + end );
    }

    //  if ( IsVerse('Room. 8:39') )
    //  Jeesuksessa, Kristuksessa
    style   = '<SPAN STYLE="color:teal;">';
    end     = '</SPAN>';
    re      = /\b([JK][^{,. ]+se)(s[st]a)\b/g;
    msg     = msg.replace( re, '$1' + style + '$2' + end );


    style   = '<SPAN STYLE="color:blue;">';
    end     = '</SPAN>';
    re      = /(v&auml;lity[^,.{ ]+)([ ,.])/g;
    msg     = msg.replace( re, style + '$1{?}$2' + end );


    style   = '<SPAN STYLE="color:blue;">';
    end     = '</SPAN>';
    re      = /(yhteydess&auml;) /g;
    msg     = msg.replace( re, style + '$1{?} ' + end );


    re = /([Vv]aikuttava voima|elämän voima|harjoittaa|ominaisuus|alitajuisesti|uudelleen luominen|omasta aloitteestani|rinnallasi|loistoisaa [Hh]erraa|tarkoitti|persoonallisuu[^ ]+|vapauttamista|Jumalan toimintaan|täytyy olla|puolueellisuutta|vastuunalaiseksi|pelastukseen kohdistuvan uskon|sen vaikutuksesta|ikuinen elämä silm&amul;m&amul;&amul;r&amul;n&amul;|todistamisen.*ty&ouml;[^ ]*|vaikutuksella|rangaistustuomio|teh[^ ]+ palvelu[^ ]+|kumar[^ ]+|asetetut ehdolle)/g;

    style   = '<SPAN STYLE="color:blue;">';
    end     = '</SPAN>';
    msg     = msg.replace( re, style + '$1' + end );


    style = '<SPAN STYLE="color:red;">';
    end   = '</SPAN>';
    re = /(rangais[^ ]+)/g;
    msg = msg.replace( re, style + '$1' + end );



    style = '<SPAN STYLE="color:Teal;">';
    end   = '</SPAN>';
    re = /(\bte[kh][^ ]+ ilmeiseksi|tul[^ ]+ ilmeiseksi|ilmeiseksi tul[^ ]*|pois karsi[^ ]+|kirkkau[^ ]+|kirkast[^ ]+|loisto[^ ]+|hyv&auml;[^ ]* +uuti[^ ]+|ennuste[^ ]*|ainosynty[^ ]+|riiva[^ ]+|asiainj[^ ]+|armo[^ ]*|\btaiva[^ ]+|Jumalan +[Hh]enki|\bhenki\b)/g;
    msg = msg.replace( re, style + '$1' + end );


    style = '<SPAN STYLE="text-decoration:underline;">';
    end   = '</SPAN>';
    re = /([Aa]nsaitsem[^ ]+ +hyv[^ ]+)/g;
    msg = msg.replace( re, style + '$1' + end );

    style = '<SPAN STYLE="font-style:italic;">';
    end   = '</SPAN>';
    re = /(ikui[ns][^ ]+)/g;
    msg = msg.replace( re, style + '$1' + end );


    style = '<SPAN STYLE="color:blue;font-style:italic;">';
    end   = '</SPAN>';
    re = /(\[[^][]+\])/g;
    msg = msg.replace( re, style + '$1' + end );

    return msg;
}

// .................................................................
//  KR38

var KRwordAdded = new Array();
KRwordAdded['Fil. 2:9']     = '\\b(muita|muutakin)';
KRwordAdded['Room. 8:32']   = '\\b(muita|muutakin)';

var KRwordDeleted = new Array();
KRwordDeleted['Ef. 1:12']     = '(panneet){tarkemmin:ensiksi}';
KRwordDeleted['Hepr. 11:7']   = '(saatuaan){puuttuu:Jumalan}';
KRwordDeleted['Hepr. 12:28']  = '(arkuudella +ja +){(Jumalan)}';
KRwordDeleted['Hepr. 10:34']  = '(on){puuttuu:taivaissa}';

var KRwordModified = new Array();
KRwordModified['Matt. 2:8']     = '(kumartamaan){&lt;=tarkemmin:palvoa}';
KRwordModified['1. Piet. 1:11'] = '(kunniasta){&lt;=tarkemmin:kirkkaudesta}';



function HighlightKRwords(msg)
{
    var verse = GetVerse();

    msg = HighlightWordChange(verse, msg, 'added'   , KRwordAdded);
    msg = HighlightWordChange(verse, msg, 'deleted' , KRwordDeleted);
    msg = HighlightWordChange(verse, msg, 'modified', KRwordModified);

    return msg;
}

function HighlightKR(msg)
{
    var re, style, end;


    msg = HighlightKRwords(msg);

    // Kristuksessa, Jeesuksessa, Jumalasta, Isässä

    re    = /\b((J[ue]|Kr|Is|He|heng)[^ ]+)(s[st]a|s[st]&auml;)/g;

    if ( msg.match( re ) )
    {
        style = '<SPAN STYLE="text-decoration:underline">';
        end   = '</SPAN>';
        msg = msg.replace( re,
                        '<SPAN STYLE="font-style:italic;">'
                        +  '$1'
                        + style
                        + '$3'
                        + end + end);

    }
    else
    {
        re    = /(J[ue][^ ]+|Kristu[^ ]+|Is&auml;[^ ]*|Is&auml[^ ]*|henge[^ ]+)/g;
        style = '<SPAN STYLE="font-style:italic;font-size:1.1em;">';
        end   = '</SPAN>';
        msg   = msg.replace( re, style + '$1' + end );
    }


    var re = /(Messia[^ ]+|Voidel[^ ]+|[kK]arit[^ ]+|[Kk]irkkauden +Herra[^ ]*|herrain|Sebaot|Luoja|Ihmisen Poi[^ ]+|Jumalan Po[^ ]+|Poika[^ ]*|Poja[^ ]+|Pyh[^ ]+ +Hen[gk][^ ]+|Henk[^ ]+|Puolust[^ ]+|Jumal[^ ]+ hen[^ ]+|Herran [hH]enki|\b[Mm]in&auml;[^ ]*|katse[^ ]+ kiint[^ ´]+)/g;

    // Forest Green
    // font-weight:bold;color:#809F69;font-family:Georgia, Arial;
    style = '<SPAN STYLE="font-style:italic;">';
    end   = '</SPAN>';
    msg   = msg.replace( re, style + '$1' + end );

    style = '<SPAN STYLE="color:navy;font-weight:bold;">';
    end   = '</SPAN>';
    //  EI: uskottomat, uskontomme
    re = /(\bnim[ie][^ ]*|\buskon\b|\buskoi?tt?e?\b|usko[^t ][^t ]+)/g;
    msg = msg.replace( re, style + '$1' + end );

    style   = '<SPAN STYLE="color:teal;">';
    end     = '</SPAN>';
    re      = /(lunast[^ ]+|saarna[^ ]+|julis[^ ]+|opetta[^ ]+|tunte[^ ]+|kumar[^ ]+ +rukoi[^ ]+|rukoi[^ ]+|iankaik[^ ]+el[^ ]+|iankaik[^ ]+ +autu[^ ]+|iankaik[^ ]+ +kirkkau[^ ]+|[tT]aiva[^ ]+|iankaik[^ ]+)/g;
    msg = msg.replace( re, style + '$1' + end );

    style   = '<SPAN STYLE="color:Teal;">';
    end     = '</SPAN>';
    re      = /(kirkkau[^ ]+|kirkast[^ ]+|valkeu[^ ]+)/g;
    msg     = msg.replace( re, style + '$1' + end );

    style = '<SPAN STYLE="color:red;font-weight:bold;">';
    end   = '</SPAN>';
    re = /(evankelium[^ ]+|hyvä[^ ]* +sanom[^ ]+|ilosanom[^ ]+|\bkaikk?i[^ ]*|jokai[^ ]+|yksik..n|\byh&tauml[^ ]*|yhdelle[^ ]+|yhdess.k..n|[^>(]muuta[^ ]*|\bmit&auml;&auml;n|\btoista\b|\bmik&auml;&auml;n|pelas[^ ]+|\bver[ie][^ ]*|rangais[^ ]+|todist[^ ]+)/g;
    msg = msg.replace( re, style + '$1' + end );

    style = '<SPAN STYLE="text-decoration:underline;">';
    end   = '</SPAN>';
    re = /(armolah[^ ]+|armo[^ ]*|lahja[^ ]*|synti[^ ]* +anteek[^ ]+|synnit +anteek[^ ]+|syn[tn]i[^ ]*|salais[^ ]+|aarte[^ ]+|rikkaud[^ ]+|(opetus)?laps[^ ]+)/g;
    msg = msg.replace( re, style + '$1' + end );

    return msg;
}

///////////////////////////////////////////////////////////////////////
//
//  Text: Make HTML
//
///////////////////////////////////////////////////////////////////////

function HtmlifyStyle(attrib)
{
    return '<SPAN STYLE="' + attrib + '">';
}

function HtmlifyHrefJSopen(str, func, param)
{
    return '<A HREF="javascript:'
                    + 'opener.'
                    + func + '('
                    + param
                    + ');">'
                    + str
                    + '</A>'
                    ;
}

function HtmlifyHrefBasic(url, str)
{
    return '<A HREF="' + url  + '">' + str + '</A>';
}

function HtmlifyGreekHeading(verse, func, str, attrib)
{
    var ret   = str;

    var beg   = HtmlifyStyle
                (
                    attrib
                    ? attrib
                    : 'font-family:Georgia, Trebuchet MS, Times New Roman;'
                    + 'font-style:italic;'
                );

    if ( Is(verse) &&  Is(func) )
    {
        ret   = HtmlifyHrefJSopen( str, func,   '\'' + verse + '\'');
    }

    return beg + ret;
}

function HtmlifyMain(msg, type)
{

    var verse  = '';
    var verseMatch = '';
    var rest   = '';

    var result = msg.match( /^([1234]*[^0-9]+[0-9]+:[0-9]+)[.]?(.*)/ );

    if ( result != null )
    {
       verse        = result[1];
       rest         = result[2];
    }
    else
    {
        result = msg.match( /^((Juud|Jaak)\. [0-9]+)[.]?(.*)/ );

        if ( result != null )
        {
            verse   = result[1];
            rest    = result[3];
        }
    }

    if ( verse != '' )
    {
        verseMatch   = verse;          // Make copy

        if ( type == 'um' )
        {
            rest = HighlightUM(rest);
        }
        else if ( type == 'greek-blue' )
        {

            rest  = HighlightGreekBlue(rest);

            verse = HtmlifyHrefJSopen(verse,
                                      'UrlBlueWindowOpenKjv',
                                      '\'' + verse + '\'' );
        }

        else if ( type == 'greek-novum' )
        {
            rest  = HighlightGreekNovum(rest);
        }
        else if ( type == 'greek-kit' )
        {
            rest  = HighlightGreekKit(rest);
        }
        else if ( type == 'kr' )
        {
            rest = HighlightKR(rest);
        }


        msg =   '<B><SPAN STYLE="font-size:1.1em;">'
                + verse + '</SPAN></B>'
                + ': &ndash; '
                + rest;
    }

    var bible = '';
    var tmp   = '';

    if ( type == 'kr' )
    {
        bible = '<I>KR38; </I>';
    }
    else if ( type == 'um' )
    {
        bible = '<I>UM95; </I>';
    }
    else if ( type == 'greek-blue' )
    {
        tmp = 'Greek/Textus Receptus 1550';

        tmp = HtmlifyGreekHeading( verseMatch
                                   , 'UrlBlueWindowOpenGreek'
                                   , tmp);

        bible = tmp + '/Blue Letter Bible;' + '</SPAN><BR>';
    }
    else if ( type == 'greek-novum' )
    {
        tmp = 'Kreikka/Textus Receptus 1550 - Nestle Aland 25';

        tmp = HtmlifyGreekHeading( ''
                                   , ''
                                   , tmp);

        bible = tmp + '/Novum-interlineaari;' + '</SPAN><BR>';
    }
    else if ( type == 'greek-kit' )
    {
        tmp = 'Greek/Wescott and Hort 1881';

        tmp = HtmlifyGreekHeading( ''
                                   , ''
                                   , tmp);

        bible = tmp + '/Kingdom Interlinear Translation;' + '</SPAN><BR>';
    }

    return bible + msg;
}

function MyFormat(message, type)
{
    var msg  = '';          // KR38 basic format
    var bg   = '#AFB';
    var size = '14';
    var font = 'Arial';


    if ( type == 'um' )
    {
        bg   = '#FFFFFF';
        size = '14';
    }
    else if ( type == 'greek-novum' )
    {
        bg   = '#E6F1FD';
        size = '14';
        font = 'Trebuchet MS, Times New Roman';
    }
    else if ( type == 'greek-blue' )
    {
        bg   = '#D8EAFD';
        size = '14';
        font = 'Trebuchet MS, Times New Roman';
    }
    else if ( type == 'greek-kit' )
    {
        bg   = '#D2E6FC';
        size = '12';
        font = 'Trebuchet MS, Times New Roman';
    }

    if ( Is(message) )
    {
        var html = HtmlifyMain(message, type);

        msg  =   '<DIV STYLE="'
                + 'font-size:'      + size + ';'
                + 'font-family:'    + font + ';'
                + 'background:'     + bg   + ';'
                + '">'
                +  html
                + '</DIV>'
                ;
    }

    return msg;
}

///////////////////////////////////////////////////////////////////////
//
//  DISPLAY
//
///////////////////////////////////////////////////////////////////////

var myWin = null;

function HelpWindowOpen()
{
    var url =  "ohje/";
    window.open( url );
}

function HomePageOpen()
{
    var url =  "http://raamattu.cante.net";
    window.open( url );
}

function MyDisplay(msg)
{
    if ( dyn != null )
    {
        dyn.setBody(msg);
    }

    myWin.WriteMsg(msg);
}

function MyBibleKR38(arg)
{
    var verse = kr38[arg];

    if ( verse == null )
    {
        verse = '';
    }
    else
    {
        verse = MyFormat( verse, 'kr');
    }

    return verse;
}

function MyBibleUM(arg)
{
    var verse = um95[arg];

    if ( verse == null )
    {
        verse = '';
    }
    else
    {
        verse = MyFormat( verse, 'um');
    }

    return verse;
}

function MyBibleGreekBlue(arg)
{
    var verse = blue[arg];

    if ( verse == null )
    {
        verse = '';
    }
    else
    {
        verse = MyFormat( verse, 'greek-blue');
    }

    return verse;
}

function MyBibleGreekKit(arg)
{
    var verse = kit_[arg];

    if ( verse == null )
    {
        verse = '';
    }
    else
    {
        verse = MyFormat( verse, 'greek-kit');
    }

    return verse;
}

function MyBibleGreekNovum(arg)
{
    var verse = novu[arg];

    if ( verse == null )
    {
        verse = '';
    }
    else
    {
        verse = MyFormat( verse, 'greek-novum');
    }

    return verse;
}

function BibleGreekText(verse)
{
    var ret   = '';
    var greek = '';

    greek  = MyBibleGreekNovum(verse);

    if ( Is(greek) )
    {
        ret +=  greek + '<BR>';
    }

    greek = MyBibleGreekBlue(verse);

    if ( Is(greek) )
    {
        ret += greek + '<BR>';
    }

    greek = MyBibleGreekKit(verse);

    if ( Is(greek) )
    {
        ret += greek + '<BR>';
    }

    if ( ret != '' )
    {
        ret = '<BR>' + ret;
    }

    return ret;
}

function MyDisplayText(arg)
{
    var txt = '';


    txt += "<HTML>";
    txt += "<HEAD><TITLE>Jae</TITLE></HEAD>";
    txt += "<BODY>";


    var button1 = '';

    if ( IsBibleNOVUM() )
    {
        button1 = HtmlifyHrefJSopen( '[ohje]',
                                     'HelpWindowOpen', '');
    }

    var button2 = HtmlifyHrefJSopen( '[tulosta]',
                                     'MyPrint', '');
    var button3 = HtmlifyHrefJSopen( '[kotisivu]',
                                     'HomePageOpen', '');

    var style  = HtmlifyStyle( "font-size=0.8em;");

    txt +=  style
//            + button1
            + button2
//            + button3
            + '</SPAN>'
            + '<BR>'
            ;

    var kr = MyBibleKR38(arg);

    if ( Is(kr) )
    {
        txt += '<BR>' + kr;
    }

    var um = MyBibleUM(arg);

    if ( Is(um) )
    {
        txt += '<BR>' + um;
    }

    var greek = BibleGreekText(arg);

    if ( Is(greek) )
    {
        txt += greek;
    }
    else
    {
        // var url    = UrlBlueHtmlPageMain(arg, 'greek');
        // var urlAdd = HtmlifyHrefBasic(url, url);

        var urlAdd = '';
        var verse  = arg;

        urlAdd = HtmlifyHrefJSopen(
                    'Blue Letter Bible (jakeen rivienv&auml;linen sanasta sanaan teksti)'
                    , 'UrlBlueWindowOpenGreek'
                    ,  '\'' + verse + '\'');

        // urlAdd += ' Paina sivulla nappia [C]';

        txt += urlAdd;
    }

    txt += "</BODY></HTML>";


    return txt;
}

///////////////////////////////////////////////////////////////////////
//
//      Global variables and instance classes
//
///////////////////////////////////////////////////////////////////////

var LAST_VERSE  = '';

//  Bibles in finnish

var kr38        = new Array();
var um95        = new Array();

//  Greek interlinears

var blue        = new Array();  // www.blueletterbible.org
var novu        = new Array();  // Novum 1-5 book series, ISBN 951-605-650-4

// Kingdom interlinear Translation of the Greek Scriptures
// Publisher: Jehovah's Witnesses (Watchtower society)

var kit_        = new Array();

//  When the arrays are filled, each array conatains a 'check'
//  item to say that "I'm alive, you can use this array".

function IsBibleCheck(arrayName)
{
    var code = arrayName + '["used"]';

    var stat  = eval(code);
    var ret   = false;

    if ( stat == 'ok' )
    {
        ret = true;
    }

//    alert( code + ' ' + stat + ' = ' + ret);

    return ret;
}

function IsBibleKR38 ()
{
    return IsBibleCheck("kr38");
}

function IsBibleUM95 ()
{
    return IsBibleCheck("um95");
}

function IsBibleKIT ()
{
    return IsBibleCheck("kit_");
}

function IsBibleNOVUM ()
{
    return IsBibleCheck("novu");

}

function IsBibleBLUE ()
{
    return IsBibleCheck("blue");
}

///////////////////////////////////////////////////////////////////////
//
//      WINDOW INIT
//
///////////////////////////////////////////////////////////////////////

var dyn   = null;

function InitializeWindowHeight()
{
    var height = 0;

    //  find out how many bibles are available and set initial window
    //  height

    var arr = ['KR38', 'UM95', 'KIT', 'NOVUM', 'BLUE'];
    var inc = [ 140,    120,    120,   140,     160  ];

    var str = '';

    for ( var i =0; i < arr.length; i++ )
    {
        var bible = arr[i];
        var func  = 'IsBible' + bible + '()';
        var ret   = eval(func);          // Call function, see if bible is present.

// alert( str + ' - ' + bible + ' ' + func + ' ' + ret);

        if ( ret )
        {
            str    += ' ' + bible;
            height += inc[i];
        }
    }

    if ( ! height )
    {
        height = 150;
    }


    if ( str != '' )
    {
        status = "Raamatut: " + str;
    }

    return height;
}

function InitializeWindowClass()
{
    var height = InitializeWindowHeight();

    var attrib = "width=500,"
                 + "height=" + height
                 + ",resizable,status"
                 ;

    var msg = "Avataan raamatunjakeen ikkunaa, "
              + "odota hetki (5-15 sekuntia) ..."
              ;

    // This only sets parameters, does not actually yet open the window

    myWin = new LibWin( "window", "window", attrib, msg);
}

function test ()
{
    return "abc123";
}

// dyn = new DynEl( window, "d1", '', 10, 10);


///////////////////////////////////////////////////////////////////////
//
//  MOUSE
//
///////////////////////////////////////////////////////////////////////

function MyClear()
{
    if ( dyn != null )
    {
        MyMsg('');
    }
}

function MyMouseDoIt(arg)
{
    //  If same as last time, do not try to fetch
    //  Avoid extra work.

    if ( LAST_VERSE !=  arg )
    {
        LAST_VERSE = arg;

        var verse = kr38[arg];

        if ( verse == null )
        {
            MyDisplay( arg + ' <I>jae ei ole saatavilla</I>' );
        }
        else
        {
            var txt = MyDisplayText(arg);

            MyDisplay(txt);
        }
    }

    return true;
}

var BUSY = null;

function MyMouse(arg)
{
    MyMouseDoIt(arg);

    if ( 0 )
    {
        //  Non-working code commented out.

        if ( BUSY == null )             //  Make a delay
        {
            BUSY = true;
            // MySleep(1.5 * 1000, arg);
            MyMouseDoIt(arg);
            BUSY = null;
        }
    }

    return true;
}

// This call is appended to the end of file, do not TOUCH!
// LAST_CODE: InitializeWindowClass();


kr38['2. Moos. 24:4']='2Moos. 24:4 Sitten Mooses kirjoitti kaikki Herran sanat. Ja h&auml;n nousi varhain seuraavana aamuna ja rakensi alttarin vuoren juurelle sek&auml; pystytti kaksitoista patsasta Israelin kahdentoista sukukunnan mukaan.';
kr38['Jer. 30:2']='Jer. 30:2 &quot;N&auml;in sanoo Herra, Israelin Jumala: Kirjoita kaikki sanat, jotka min&auml; olen sinulle puhunut, kirjaan.';
kr38['2. Tim. 3:16']='2Tim. 3:16. Jokainen kirjoitus, joka on syntynyt Jumalan Hengen vaikutuksesta, on my&ouml;s hy&ouml;dyllinen opetukseksi, nuhteeksi, ojennukseksi, kasvatukseksi vanhurskaudessa,';
kr38['Matt. 26:28']='Matt. 26:28. sill&auml; t&auml;m&auml; on minun vereni, liiton veri, joka monen edest&auml; vuodatetaan syntien anteeksiantamiseksi.';
kr38['1. Kor. 11:23']='1Kor. 11:23. Sill&auml; min&auml; olen saanut Herralta sen, mink&auml; my&ouml;s olen teille tiedoksi antanut, ett&auml; Herra Jeesus sin&auml; y&ouml;n&auml;, jona h&auml;net kavallettiin, otti leiv&auml;n,';
kr38['2. Moos. 19:5']='2Moos. 19:5 Jos te nyt kuulette minun &auml;&auml;nt&auml;ni ja pid&auml;tte minun liittoni, niin te olette minun omaisuuteni ennen kaikkia muita kansoja; sill&auml; koko maa on minun.';
kr38['2. Moos. 19:6']='2Moos. 19:6 Ja te olette minulle pappisvaltakunta ja pyh&auml; kansa.\' Sano n&auml;m&auml; sanat israelilaisille.&quot;';
kr38['5. Moos. 7:6']='5Moos. 7:6 Sill&auml; sin&auml; olet Herralle, Jumalallesi, pyhitetty kansa; Herra, sinun Jumalasi, on valinnut sinut omaisuuskansakseen ennen kaikkia muita kansoja, mit&auml; maan p&auml;&auml;ll&auml; on.';
kr38['Ps. 135:4']='Ps. 135:4 Sill&auml; Herra on valinnut Jaakobin omaksensa, Israelin omaisuudeksensa.';
kr38['Joh. 8:42']='Joh. 8:42. Jeesus sanoi heille: &quot;Jos Jumala olisi teid&auml;n Is&auml;nne, niin te rakastaisitte minua, sill&auml; min&auml; olen Jumalasta l&auml;htenyt ja tullut; en min&auml; ole itsest&auml;ni tullut, vaan h&auml;n on minut l&auml;hett&auml;nyt.';
kr38['Apt. 16:31']='Apt. 16:31. Niin he sanoivat: &quot;Usko Herraan Jeesukseen, niin sin&auml; pelastut, niin my&ouml;s sinun perhekuntasi&quot;.';
kr38['5. Moos. 4:2']='5Moos. 4:2 &Auml;lk&auml;&auml; lis&auml;tk&ouml; mit&auml;&auml;n siihen, mit&auml; min&auml; teille m&auml;&auml;r&auml;&auml;n, &auml;lk&auml;&auml;k&auml; ottako siit&auml; mit&auml;&auml;n pois, vaan noudattakaa Herran, teid&auml;n Jumalanne, k&auml;skyj&auml;, jotka min&auml; teille annan.';
kr38['Joos. 1:7']='Joos. 1:7 Ole vain luja ja aivan rohkea ja noudata tarkoin kaikessa sit&auml; lakia, jonka minun palvelijani Mooses on sinulle antanut; &auml;l&auml; poikkea siit&auml; oikealle &auml;l&auml;k&auml; vasemmalle, ett&auml; menestyisit, miss&auml; ikin&auml; kuljetkin.';
kr38['Sananl. 30:6']='Snl. 30:6 &Auml;l&auml; lis&auml;&auml; h&auml;nen sanoihinsa mit&auml;&auml;n, ettei h&auml;n vaatisi sinua tilille ja ettet valhettelijaksi joutuisi.';
kr38['1. Kor. 4:6']='1Kor. 4:6. T&auml;m&auml;n olen, veljet, sovittanut itseeni ja Apollokseen, teid&auml;n t&auml;htenne, ett&auml; meist&auml; oppisitte t&auml;m&auml;n: &quot;Ei yli sen, mik&auml; kirjoitettu on&quot;, ettette p&ouml;yhkeillen asettuisi mik&auml; minkin puolelle toista vastaan.';
kr38['Ilm. 22:18']='Ilm. 22:18. Min&auml; todistan jokaiselle, joka t&auml;m&auml;n kirjan profetian sanat kuulee: Jos joku panee niihin jotakin lis&auml;&auml;, niin Jumala on paneva h&auml;nen p&auml;&auml;llens&auml; ne vitsaukset, jotka ovat kirjoitetut t&auml;h&auml;n kirjaan;';
kr38['Ilm. 22:19']='Ilm. 22:19. ja jos joku ottaa pois jotakin t&auml;m&auml;n profetian kirjan sanoista, niin Jumala on ottava pois sen osan, mik&auml; h&auml;nell&auml; on el&auml;m&auml;n puuhun ja pyh&auml;&auml;n kaupunkiin, joista t&auml;ss&auml; kirjassa on kirjoitettu.';
kr38['Ilm. 11:17']='Ilm. 11:17. sanoen: &quot;Me kiit&auml;mme sinua, Herra Jumala, Kaikkivaltias, joka olet ja joka olit, siit&auml;, ett&auml; olet ottanut suuren voimasi ja ottanut hallituksen.';
kr38['Ilm. 4:11']='Ilm. 4:11. &quot;Sin&auml;, meid&auml;n Herramme ja meid&auml;n Jumalamme, olet arvollinen saamaan ylistyksen ja kunnian ja voiman, sill&auml; sin&auml; olet luonut kaikki, ja sinun tahdostasi ne ovat olemassa ja ovat luodut&quot;.';
kr38['Ilm. 1:8']='Ilm. 1:8. &quot;Min&auml; olen A ja O&quot;, sanoo Herra Jumala, joka on ja joka oli ja joka tuleva on, Kaikkivaltias.';
kr38['Ilm. 4:8']='Ilm. 4:8. Ja niill&auml; nelj&auml;ll&auml; olennolla oli kullakin kuusi siipe&auml;, ja ne olivat yltymp&auml;ri ja sis&auml;lt&auml; silmi&auml; t&auml;ynn&auml;. Ja ne sanoivat lakkaamatta y&ouml;t&auml; p&auml;iv&auml;&auml;: &quot;Pyh&auml;, pyh&auml;, pyh&auml; on Herra Jumala, Kaikkivaltias, joka oli ja joka on ja joka tuleva on&quot;.';
kr38['Ilm. 15:3']='Ilm. 15:3. Ja he veisasivat Mooseksen, Jumalan palvelijan, virtt&auml; ja Karitsan virtt&auml;, sanoen: &quot;Suuret ja ihmeelliset ovat sinun tekosi, Herra Jumala, Kaikkivaltias; vanhurskaat ja totiset ovat sinun tiesi, sin&auml; kansojen kuningas.';
kr38['Ilm. 16:7']='Ilm. 16:7. Ja min&auml; kuulin alttarin sanovan: &quot;Totisesti, Herra Jumala, Kaikkivaltias, totiset ja vanhurskaat ovat sinun tuomiosi&quot;.';
kr38['Ilm. 18:8']='Ilm. 18:8. sent&auml;hden h&auml;nen vitsauksensa tulevat yhten&auml; p&auml;iv&auml;n&auml;: kuolema ja suru ja n&auml;lk&auml;, ja h&auml;n joutuu tulessa poltettavaksi, sill&auml; v&auml;kev&auml; on Herra Jumala, joka on h&auml;net tuominnut.&quot;';
kr38['Ilm. 19:6']='Ilm. 19:6. Ja min&auml; kuulin ik&auml;&auml;nkuin kansan paljouden &auml;&auml;nen ja ik&auml;&auml;nkuin paljojen vetten pauhinan ja ik&auml;&auml;nkuin suuren ukkosenjylin&auml;n sanovan: &quot;Halleluja! Sill&auml; Herra, meid&auml;n Jumalamme, Kaikkivaltias, on ottanut hallituksen.';
kr38['Ilm. 21:22']='Ilm. 21:22. Mutta temppeli&auml; min&auml; en siin&auml; n&auml;hnyt; sill&auml; Herra Jumala, Kaikkivaltias, on sen temppeli, ja Karitsa.';
kr38['Matt. 3:3']='Matt. 3:3. Sill&auml; h&auml;n on se, josta profeetta Esaias puhuu sanoen: &quot;Huutavan &auml;&auml;ni kuuluu er&auml;maassa: \'Valmistakaa Herralle tie, tehk&auml;&auml; polut h&auml;nelle tasaisiksi\'.&quot;';
kr38['Room. 14:11']='Room. 14:11. Sill&auml; kirjoitettu on: &quot;Niin totta kuin min&auml; el&auml;n, sanoo Herra, minun edess&auml;ni pit&auml;&auml; jokaisen polven notkistuman ja jokaisen kielen ylist&auml;m&auml;n Jumalaa&quot;.';
kr38['Jes. 45:23']='Jes. 45:23 Min&auml; olen vannonut itse kauttani, minun suustani on l&auml;htenyt totuus, peruuttamaton sana: Minun edess&auml;ni pit&auml;&auml; kaikkien polvien notkistuman, minulle jokaisen kielen valansa vannoman.';
kr38['Fil. 2:10']='Fil. 2:10. niin ett&auml; kaikkien polvien pit&auml;&auml; Jeesuksen nimeen notkistuman, sek&auml; niitten, jotka taivaissa ovat, ett&auml; niitten, jotka maan p&auml;&auml;ll&auml; ovat, ja niitten, jotka maan alla ovat,';
kr38['Jes. 49:18']='Jes. 49:18 Nosta silm&auml;si ja katso ymp&auml;rillesi: he kokoontuvat, he tulevat sinun tyk&ouml;si kaikki. Niin totta kuin min&auml; el&auml;n, sanoo Herra, sin&auml; puet heid&auml;t kaikki yllesi niinkuin koristeen ja sidot heid&auml;t vy&ouml;llesi niinkuin morsian vy&ouml;ns&auml;.';
kr38['Saarn. 12:14']='Srn. 12:14 Sill&auml; Jumala tuo kaikki teot tuomiolle, joka kohtaa kaikkea salassa olevaa, olkoon se hyv&auml;&auml; tai pahaa.';
kr38['Joh. 5:23']='Joh. 5:23. ett&auml; kaikki kunnioittaisivat Poikaa, niinkuin he kunnioittavat Is&auml;&auml;. Joka ei kunnioita Poikaa, se ei kunnioita Is&auml;&auml;, joka on h&auml;net l&auml;hett&auml;nyt.';
kr38['Ilm. 5:8']='Ilm. 5:8. Ja kun se oli ottanut kirjan, niin ne nelj&auml; olentoa ja kaksikymment&auml; nelj&auml; vanhinta lankesivat Karitsan eteen, ja heill&auml; oli kantele kullakin, ja heill&auml; oli kultaiset maljat t&auml;ynn&auml; suitsutuksia, jotka ovat pyhien rukoukset,';
kr38['Fil. 2:11']='Fil. 2:11. ja jokaisen kielen pit&auml;&auml; tunnustaman Is&auml;n Jumalan kunniaksi, ett&auml; Jeesus Kristus on Herra.';
kr38['Room. 14:9']='Room. 14:9. Sill&auml; sit&auml; varten Kristus kuoli ja her&auml;si eloon, ett&auml; h&auml;n olisi sek&auml; kuolleitten ett&auml; el&auml;vien Herra.';
kr38['1. Kor. 8:6']='1Kor. 8:6. niin on meill&auml; kuitenkin ainoastaan yksi Jumala, Is&auml;, josta kaikki on ja johon me olemme luodut, ja yksi Herra, Jeesus Kristus, jonka kautta kaikki on, niin my&ouml;s me h&auml;nen kauttansa.';
kr38['Ilm. 5:13']='Ilm. 5:13. Ja kaikkien luotujen, jotka ovat taivaassa ja maan p&auml;&auml;ll&auml; ja maan alla ja meren p&auml;&auml;ll&auml;, ja kaikkien niiss&auml; olevain min&auml; kuulin sanovan: &quot;H&auml;nelle, joka valtaistuimella istuu, ja Karitsalle ylistys ja kunnia ja kirkkaus ja valta aina ja iankaikkisesti!&quot;';
kr38['Room. 10:9']='Room. 10:9. Sill&auml; jos sin&auml; tunnustat suullasi Jeesuksen Herraksi ja uskot syd&auml;mess&auml;si, ett&auml; Jumala on h&auml;net kuolleista her&auml;tt&auml;nyt, niin sin&auml; pelastut;';
kr38['Ps. 22:27']='Ps. 22:27 N&ouml;yr&auml;t saavat sy&ouml;d&auml; ja tulevat ravituiksi; ne, jotka etsiv&auml;t Herraa, ylist&auml;v&auml;t h&auml;nt&auml;. Teid&auml;n syd&auml;menne on el&auml;v&auml; iankaikkisesti.';
kr38['1. Piet. 3:15']='1Piet. 3:15. vaan pyhitt&auml;k&auml;&auml; Herra Kristus syd&auml;miss&auml;nne ja olkaa aina valmiit vastaamaan jokaiselle, joka teilt&auml; kysyy sen toivon perustusta, joka teiss&auml; on, kuitenkin s&auml;vyisyydell&auml; ja pelolla,';
kr38['Apt. 26:15']='Apt. 26:15. Niin min&auml; sanoin: \'Kuka olet, herra?\' Ja Herra sanoi: \'Min&auml; olen Jeesus, jota sin&auml; vainoat.';
kr38['Kol. 1:15']='Kol. 1:15. ja h&auml;n on n&auml;kym&auml;tt&ouml;m&auml;n Jumalan kuva, esikoinen ennen kaikkea luomakuntaa.';
kr38['Hepr. 1:6']='Hepr. 1:6. Ja siit&auml;, kun h&auml;n j&auml;lleen tuo esikoisensa maailmaan, h&auml;n sanoo: &quot;Ja kumartakoot h&auml;nt&auml; kaikki Jumalan enkelit&quot;.';
kr38['Joh. 9:38']='Joh. 9:38. Niin h&auml;n sanoi: &quot;Herra, min&auml; uskon&quot;; ja h&auml;n kumartaen rukoili h&auml;nt&auml;.';
kr38['Hepr. 11:21']='Hepr. 11:21. Uskon kautta siunasi Jaakob kuollessaan kumpaisenkin Joosefin pojista ja rukoili sauvansa p&auml;&auml;h&auml;n nojaten.';
kr38['Room. 5:1']='Room. 5:1. Koska me siis olemme uskosta vanhurskaiksi tulleet, niin meill&auml; on rauha Jumalan kanssa meid&auml;n Herramme Jeesuksen Kristuksen kautta,';
kr38['Ef. 2:8']='Ef. 2:8. Sill&auml; armosta te olette pelastetut uskon kautta, ette itsenne kautta - se on Jumalan lahja -';
kr38['Ef. 2:9']='Ef. 2:9. ette tekojen kautta, ettei kukaan kerskaisi.';
kr38['used']='ok'


InitializeWindowClass();
