Тема: Скріпт дає ефект друкарської машинки
Евріка! Знайшов!
Знайшов скріпт, якай дає ефект друкарської машинки. 
Але він має недоліки.
Рядки друкуються в одному місті. Тобто один рядок стирає попередній. 
Як цьому запобігти??
Потрібно, щоб весь куплет надрукувався.
!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>masch1</title>
    <script type="text/javascript">
        var mess=new Array(
     "Что так сердце, что так сердце растревожено?",
     "Словно ветром тронуло струну… ",
     "В Украине много партий создано, ",
     "Я создам тебе, создам ещё одну. ");
    var size=32;
    var textcolor="gold";
    var lastcolor="red";
    var pause=1500;//время задержки между выводом строк.
    var speed=70;//время задержки между появлением символов;
    var i=i_str=0;
    var msg=msgpre=msgafter="";
    function get_text() {
     msgpre=mess[i].substring(0,i_str-1);//возвращает подстроку, начиная с позиции indexA 
     msgafter=mess[i].substring(i_str-1,i_str);//до, но не включая indexB.
     msg="<span style='position:relative;color:"+textcolor+";font-size:"+size+"px;'>";
     msg+=msgpre+"<font color='"+lastcolor+"'>"+msgafter+"</font></span>";
    }
    function go() {
    if (i_str<=mess[i].length-1) {
     i_str++;
     get_text();
     if (document.all) {typewriter.innerHTML=msg;}
     else if (document.layers) {
      document.typewriter.document.write(msg);
      document.typewriter.document.close();
     }
     else {document.getElementById("typewriter").innerHTML=msg;}
     var timer=setTimeout("go()", speed);
    }
    else {
     clearTimeout(timer);
     var timer=setTimeout("changemess()", pause);
    }
    }
    function changemess() {
     i++;
     i_str=0;
     if (i>mess.length-1) {i=0;}
     go();
    }
    </script>
</head>
<body>
<h1>maschinka1</h1>
    <p id="typewriter"></p>
    <script type="text/javascript">
     go();
    </script>
</body>
</html>