programatorazet.sk / Text to Speech Ebook Reader

// ==UserScript==
// @name         Text to Speech Ebook Reader
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Text to speech ebook reader using public TTS API
// @author       programator@azet.sk
// @match        https://www.ivona.com/
// @grant        none
// ==/UserScript==
/* jshint -W097 */
'use strict';
var div  = document.createElement ('div');        div.style.cssText="position:fixed;z-index:2000;width:50%;height:100%;left:50%;background:white";
var text = document.createElement ('textarea');  text.style.cssText="position:absolute;width:100%;height:100%";
var txt2,btn2,lbl,audio,all='' ; function gi(o) { return document.getElementById(o); }
function start(){ div.appendChild (text); document.body.appendChild (div); setInterval(checkplaybackready,100);} 
var playing=0;
if(document.location.hostname=='www.ivona.com') { 
    txt2 = "VoiceTesterForm_text"; 
    btn2 = "voiceTesterLogicpbut"; 
    lbl  = "voiceTesterLogicpbuttext";
    start();
}


function checkplaybackready(){
    var l=gi(lbl);
    if (l.textContent=='Play' && text.value.length && text.value.indexOf('.')!=-1) {
        l.textContent='Stop2';
        //debugger;        
        var block = text.value.substring(0,250); var len=0,p;
        p=block.lastIndexOf('.'); if(p>len) len=p+1;
        if(!len) len=block.length;
        block = block.substring(0,len); 
        gi(txt2).value=block; gi(btn2).click();
        text.value=text.value.substring(len,text.value.length);
    }
}