// JavaScript Document
var msg;
var interval = 200;
var space10 = "";
var seq = 0;
var going = false;

var msg;
var interval = 200;
var space10 = "";
var seq = 0;
var going = false;
var autogo = false;
var waiting = 0 ;

function initApp(input) {
	msg = EntitiesToText(input);
	scrollText();
}

function scrollText() {
	if(going || autogo){
		document.getElementById('stext').innerText = msg.substring(seq, msg.length);
		seq++;seq++;
		if ( seq > msg.length ) {
			 seq = 0;
			autogo = false;
		}
	}else{
		document.getElementById('stext').innerText = msg;
		waiting++;
		if(waiting > 15){
			autogo = true;
			waiting = 0;
		}
	}
	window.setTimeout("scrollText();", interval );
}   

// for fixing html entity appearance
function TextToEntities(strPlainText, blnPartialEncodeOnly) {
    var strPartial  = [];
    var strFull     = [];
    var intP        = 0;
    var intF        = 0;
    var objPartialRegExp = (new RegExp).compile("[\\w\\s]");

    for (var intI=0; intI<strPlainText.length; ++intI) {
        var strChar = strPlainText.charAt(intI);
        var intChar = strChar.charCodeAt(0);

        if (isNaN(intChar)) {
            // IF CHAR FAILED TO DECODE, LEAVE AS CHAR
            strPartial.push(strFull.push(strChar));
        }
        else {
            var strEntity = "&#" + intChar + ";";
            strFull.push(strEntity);
            // IF CHAR WAS [a-zA-Z0-9_ \t] LEAVE AS CHAR, ELSE REPLACE WITH ENTITY
            strPartial.push(objPartialRegExp.test(strChar) ? strChar : strEntity);
        }
    }
    return (blnPartialEncodeOnly ? strPartial.join("") : strFull.join(""));
}

function EntitiesToText(strEncodedText) {
    var strData     = String(strEncodedText);
    var objRegExp   = (new RegExp).compile("&#(\\d+);", "ig");

    /**//* FOR EACH MATCH TO ANY ENTITY, REPLACE THAT
    ENTITY GLOBALLY WITH ITS SINGLE CHAR EQUIVALENT */
    while(strData.match(objRegExp)) {
        var strCharMatch    = RegExp.$1;
        var objRegExpMatch  = new RegExp("&#" + strCharMatch + ";", "ig");
        strData = strData.replace(objRegExpMatch, String.fromCharCode(strCharMatch));
    }
    return strData;
}