1 $ = document
.getElementById
.bind(document
);
2 function printStats(lines
, numLines
, numChars
, parasWithExtraSpace
, parasLines
) {
3 $("results").innerHTML
="";
4 for(var i
=0; i
<numLines
; i
++) {
5 $("results").innerHTML
+=(i
<9?"0"+(i
+1):(i
+1))+" "+lines
[i
]+"<br />";
6 if(parasLines
.indexOf(i
+1)>=0 && $("chk2").checked
) $("results").innerHTML
+="<br />";
9 $("statLines").innerHTML
="Lines: "+numLines
+"/47";
10 $("statLines").style
.color
=numLines
>47?"red":"initial";
11 $("statChars").innerHTML
="Characters: "+numChars
+"/4000";
12 $("statChars").style
.color
=numChars
>4000?"red":"initial";
14 if(parasWithExtraSpace
.length
>0) {
15 $("statWarn").innerHTML
="Warning: Extra space(s) found at end of paragraph(s) "+parasWithExtraSpace
.join(", ");
16 $("statWarn").style
.visibility
="visible";
17 $("statWarn").style
.color
="red";
19 $("statWarn").innerHTML
="Warning: Extra space(s) found at end of paragraph(s) ";
20 $("statWarn").style
.visibility
="hidden";
25 var text
=$("txt1").value
;
26 var parasWithExtraSpace
=[];
28 var paras
=text
.split('\n');
32 printStats(lines
, 0, 0, parasWithExtraSpace
, parasLines
);
35 for(var i
=0; i
<paras
.length
; i
++) {
36 if(paras
[i
][paras
[i
].length
-1]==' ') parasWithExtraSpace
.push(i
+1);
38 if(paras
[i
][0]==' ') paras
[i
]=paras
[i
].substring(1); //remove preceding space
39 line
=paras
[i
].substring(0, paras
[i
].length
>94?94:paras
[i
].length
); //extract line of 94 chars or fewer
40 var lastidx
=line
.lastIndexOf(' ');
41 if(lastidx
>=0) { //if there is a space in line
42 if(line
.length
<94) lastidx
=line
.length
; //if it can contain whole line
43 } else lastidx
=line
.length
;
44 if(paras
[i
][94]==' ') lastidx
=94; //if extracted right before a space
45 paras
[i
] = line
.substring(lastidx
+1)+paras
[i
].substring(94); //remove extracted string (up to lastidx) from paras
46 line
=line
.substring(0, lastidx
);
48 } while(paras
[i
]!="");
49 parasLines
.push(lines
.length
); //lines where paragraphs end
51 printStats(lines
, lines
.length
, text
.length
+paras
.length
-1, parasWithExtraSpace
, parasLines
);
54 function autocheck() {
55 if($("chk1").checked
) {
56 $("txt1").addEventListener("input", analyse
);
57 $("btn1").style
.visibility
='hidden';
60 $("txt1").removeEventListener("input", analyse
);
61 $("btn1").style
.visibility
='visible';