// reporttool.js // External Report tool // RJM Programming // October, 2016 var newwo=null; var ielem=0; var cols=128; var elemarr=[]; var elemproparr=[]; var ctable='
'; var parentage=[""]; var decision="0"; var firstask=true; var itop=0; var ileft=0; var snapshotcnt=0; function tableize(inprops) { var recs=inprops.split('
'), tableret="", ccols, icols, irecs, subcols, isubcols, onerec=""; for (irecs=0; irecs=""'; subcols=ccols[1].split('"')[0].split(";"); for (isubcols=0; isubcols', subcols[isubcols] + ';"'); } tableret=tableret.replace('', onerec + '').replace('"', '"'); //alert(tableret); } } if (tableret != "") { tableret=tableret.replace(/<\/tr>/g, "
"); tableret=tableret.replace(/table/g, "div"); tableret=tableret.replace(/tbody/g, "div"); tableret=tableret.replace(/tbody/g, "div"); tableret=tableret.replace(/<\/td>/g, " "); tableret=tableret.replace(//g, "     "); tableret=tableret.replace(//g, " "); tableret=tableret.replace(//g, " "); return tableret; } return inprops; } function ouronload() { var retval=document.getElementsByTagName('*'), iretval, tdcs1, tdcs2, tdcs3, one=1, lastih='', lastone=2, lastparentih=' '; var proparr, iproparr, indent='', allcols=cols, prefix=''; var cdate = new Date(); var cgmt=cdate.toGMTString(); snapshotcnt++; if (eval(snapshotcnt % 10) == 0) firstask=true; ielem=0; elemarr=[]; elemproparr=[]; ctable='
' + document.URL + ' at ' + cgmt + '
'; parentage=[""]; //lastih=parentage[eval(-1 + one)]; for (iretval=0; iretval',' ').split(' ')[0]); elemproparr.push(""); ielem=elemarr.length; if (lastih.indexOf('<' + elemarr[eval(-1 + ielem)]) == 0 || lastih.indexOf('<' + elemarr[eval(-1 + ielem)]) == 1) { // handles head prefix="prea" + one + " " + lastih.substring(0,30).replace(//g,' ') + elemarr[eval(-1 + ielem)]; one++; lastone=one; lastparentih=lastih.replace(retval[iretval].innerHTML, ''); lastih=retval[iretval].innerHTML; if (elemarr[eval(-1 + ielem)] == "html" || elemarr[eval(-1 + ielem)] == "body" || elemarr[eval(-1 + ielem)] == "head") lastparentih=lastih; if (elemarr[eval(-1 + ielem)] == "htXml" || elemarr[eval(-1 + ielem)] == "body" || elemarr[eval(-1 + ielem)] == "heXad") { if (1 == 11) alert("one=" + one + " " + elemarr[eval(-1 + ielem)] + " Lastih=" + lastih + " and Lastparentih=" + lastparentih); } //prefix="a" + one + " " + lastih.substring(0,30).replace(//g,' ') + elemarr[eval(-1 + ielem)]; } else if (lastih.indexOf('<' + elemarr[eval(-1 + ielem)]) != -1) { prefix="j" + lastih.substring(0,100).replace(//g,' ') + elemarr[eval(-1 + ielem)]; one++; lastone=one; lastparentih=lastih.replace(retval[iretval].innerHTML,''); lastih=retval[iretval].innerHTML; } else if (lastparentih.indexOf('<' + elemarr[eval(-1 + ielem)]) != -1) { if (1 == 1) { one=lastone; //one--; //alert(elemarr[eval(-1 + ielem)] + " Next one=" + one + " parentage.length=" + parentage.length); if (parentage.length < eval(-1 + one)) { prefix="b"; parentage.push(retval[iretval].innerHTML); lastih=retval[iretval].innerHTML; } else { prefix="c" + lastparentih.substring(0,10).replace(//g,' ') + ' lastih=' + lastih.substring(0,30).replace(//g,' ') + elemarr[eval(-1 + ielem)]; lastparentih=lastparentih.replace(retval[iretval].innerHTML,''); if (elemarr[eval(-1 + ielem)] == "htXml" || elemarr[eval(-1 + ielem)] == "body" || elemarr[eval(-1 + ielem)] == "heXad") { if (1 == 11) alert("ONE=" + one + " " + elemarr[eval(-1 + ielem)] + " LasTih=" + lastih + " and LasTparentih=" + lastparentih); if (1 == 11) alert("OnE=" + one + " " + elemarr[eval(-1 + ielem)] + " LasTih=" + lastih + " and LasTparentih=" + lastparentih); } //one--; //while (one > 1 && parentage[eval(-1 + one)].indexOf('<' + elemarr[eval(-1 + ielem)]) == -1) { // alert("next one=" + one); // one--; //} //lastih=retval[iretval].innerHTML; lastparentih=lastparentih.replace(retval[iretval].innerHTML,""); //lastparentih=lastih; } if (elemarr[eval(-1 + ielem)] == "htXml" || elemarr[eval(-1 + ielem)] == "body" || elemarr[eval(-1 + ielem)] == "heXad") { if (1 == 11) alert("one=" + one + " " + elemarr[eval(-1 + ielem)] + " LasTih=" + lastih + " and LasTparentih=" + lastparentih); } lastone=one; } } else { if (parentage.length < eval(-1 + one)) { prefix="d"; parentage.push(retval[iretval].innerHTML); if (1 == 11) alert("Parentage[" + one + "]=" + parentage[eval(-1 + one)] + " " + one + ' <' + elemarr[eval(-1 + ielem)] + ' in ' + lastih + '?'); } else if (parentage[eval(-1 + one)] == "") { // handles "html" prefix="e"; parentage[eval(-1 + one)] = retval[iretval].innerHTML; if (1 == 11) alert("parentage[" + one + "]=" + parentage[eval(-1 + one)] + " " + one + ' <' + elemarr[eval(-1 + ielem)] + ' in ' + lastih + '?'); //one++; lastone=one; lastparentih=lastih; lastih=retval[iretval].innerHTML; if (elemarr[eval(-1 + ielem)] == "htXml" || elemarr[eval(-1 + ielem)] == "body" || elemarr[eval(-1 + ielem)] == "heXad") { if (1 == 11) alert("one=" + one + " " + elemarr[eval(-1 + ielem)] + " Lastih=" + lastih + " and Lastparentih=" + lastparentih); } } else if (lastparentih.indexOf('<' + elemarr[eval(-1 + ielem)]) != -1) { prefix="g"; //one++; parentage.push(retval[iretval].innerHTML); //while (one > 1 && parentage[eval(-1 + one)].indexOf('<' + elemarr[eval(-1 + ielem)]) == -1) { // alert("next one=" + one); // one--; //} if (1 == 11) alert("ParenTage[" + one + "]=" + parentage[eval(-1 + one)] + " " + one + ' <' + elemarr[eval(-1 + ielem)] + ' in ' + lastih + '?'); } else { prefix="h" + lastih.substring(0,10) + elemarr[eval(-1 + ielem)]; //one++; parentage.push(retval[iretval].innerHTML); //alert('Is <' + elemarr[eval(-1 + ielem)] + ' [' + one + '] in ' + parentage[eval(-1 + one)] + '?'); while (one >= 1 && parentage[eval(-1 + one)].indexOf('<' + elemarr[eval(-1 + ielem)]) == -1) { if (1 == 11) alert("next one=" + one); one--; //alert('IS <' + elemarr[eval(-1 + ielem)] + ' [' + one + '] in ' + parentage[eval(-1 + one)] + '?'); } if (elemarr[eval(-1 + ielem)] == "body") one++; if (1 == 11) alert("ParenTage[" + one + "]=" + parentage[eval(-1 + one)] + " " + one + ' <' + elemarr[eval(-1 + ielem)] + ' in ' + lastih + '?'); prefix="posth" + retval[iretval].innerHTML.substring(0,10).replace(//g,' ') + elemarr[eval(-1 + ielem)]; } //one=eval(0 + lastone); lastone=one; lastih=retval[iretval].innerHTML; if (elemarr[eval(-1 + ielem)] == "htXml" || elemarr[eval(-1 + ielem)] == "body" || elemarr[eval(-1 + ielem)] == "heXad") { if (1 == 11) alert("one=" + one + " " + elemarr[eval(-1 + ielem)] + " LasTiH=" + lastih + " and LasTparentiH=" + lastparentih); } } allcols=cols; if (indent == '' && eval(one) == 1) { tdcs1=one; tdcs2=1; tdcs3=eval(allcols - tdcs1 - tdcs2); ctable=ctable.replace('', '' + elemarr[eval(-1 + ielem)] + '' + ''); } else { tdcs1=one; tdcs2=1; tdcs3=eval(allcols - tdcs1 - tdcs2); ctable=ctable.replace('', '' + indent + '' + elemarr[eval(-1 + ielem)] + '' + ''); } proparr=(retval[iretval].outerHTML.replace(/=" /g,'="').replace(/=" /g,'="').replace(/=" /g,'="').replace('<' + elemarr[eval(-1 + ielem)],'').trim().split('/>')[0].split('>')[0] + ' ').split('" '); for (iproparr=0; iproparr', '' + '' + '' + tableize(elemproparr[eval(-1 + ielem)].replace(/" /g, '"
')) + ''); } //else { //tdcs1++; //tdcs2=1; //tdcs3=eval(allcols - tdcs1 - tdcs2); //ctable=ctable.replace('', '' + '' + '' + elemproparr[eval(-1 + ielem)].replace(/" /g, '"
') + '' + '' + ''); //} //alert(elemarr[eval(-1 + ielem)] + ' ... ' + elemproparr[eval(-1 + ielem)]); } if (newwo != null && eval(decision) < 0) { newwo.close(); newwo=null; } newwo=window.open("","_blank","top=" + itop + ",left=" + ileft + ",width=600,height=600"); itop+=5; ileft+=5; newwo.document.write(ctable); if (firstask) { setTimeout(askd, 5000); } else { if (eval(decision) != 0) { setTimeout(ouronload, Math.abs(eval(decision) * 1000.0)); } } } function askd() { firstask=false; snapshotcnt=0; decision=prompt("If you want to see this report (as another snapshot) every how ever many seconds you enter, put those seconds now, else Cancel for no more reports, else a negative number of seconds to keep overriding this one report each time. Bear in mind, on every tenth snapshot, we will ask again.", decision); if (decision) { try { if (eval(decision) != 0) { setTimeout(ouronload, Math.abs(eval(decision) * 1000.0)); } } catch (ee) { } } else { decision="0"; } } function decimalToHexString(number) { // thanks to http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript if (number < 0) { number = 0xFFFFFFFF + number + 1; } return number.toString(16).toUpperCase(); } setTimeout(ouronload, 1000);