<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Broadcasting and Listening - RJM Programming - October, 2015</title>
<link href='//www.rjmprogramming.com.au/PHP/emboss_h1.css' rel='stylesheet' type='text/css'>
<script type='text/javascript'>
var words=new Array();
var fromtext="Please select a broadcast below ...";
var totext="Please select a broadcast below ...";
var inboxurl="";
var outboxurl="";
var identity="";
var datetimebit="";
var subject="";
var cf = "14px Courier New";
var stcmd=new Array();
var numcmd=0;
var thiscmd=0;
var listenurl="";
var score=2000;
var goes=0;
var delim='';
var elem, which=0, ie, elemLeft=0, elemTop=0, context=null;
var si=null;
function wordsformsubmit() {
    fixdatetimebit();
    document.getElementById('wordsform').submit();
}
function doslowly() {
  if (eval(thiscmd) < eval(numcmd)) {
    eval(stcmd[thiscmd]);
    thiscmd++;
    setTimeout(doslowly, 103);
  } 
}
function drawsomewords(somewords) {
    var thewords=somewords.replace(/<br>\\n/g, "\\n");
    var thelines, jj, tx, ty, stuffs, stuff="", nextx=10, nexty=-20, kk, onex=0;
    context.clearRect(0, 0, elem.width, elem.height);
    
    if (document.getElementById('mailin').innerHTML != '') {
      context.strokeStyle = "black";
      context.font = cf;
      thelines=document.getElementById('mailin').innerHTML.replace(/<br>/g,"\n").replace(/<br>/g,"\n").split("\n");
      kk=300;
      for (jj=0; jj<thelines.length; jj++) {
       if (kk <= 440) context.strokeText(thelines[jj].replace('<font size="1" color="red">','').replace('</font>',''),10,kk);
       kk+=20;
      }
    } 
    
    if (1 == 2) {
    context.strokeStyle = "blue";
    context.font = cf;
    thelines=thewords.split("\\n");
    if (thelines.length == 1) thelines=thewords.split("\n");
    for (jj=0; jj<thelines.length; jj++) {
      stuffs=thelines[jj].split(",");
      if (stuffs.length >= 3) {
      stuff=thelines[jj].replace("" + stuffs[0] + "," + stuffs[1] + ",", "");
      context.strokeText(stuff,stuffs[0],stuffs[1]);
      nextx=eval(stuffs[0]);
      nexty=eval(20 + eval(stuffs[1]));
      } else {
      stuff=thelines[jj];
      context.strokeText(stuff,nextx,Math.abs(eval(nexty)));
      nexty=eval(20 + Math.abs(eval(nexty)));
      }
    }
    } else {
    onex=nextx;
    thiscmd=0;
    numcmd=0;
    context.strokeStyle = "blue";
    context.font = cf;
    thelines=thewords.split("\\n");
    if (thelines.length == 1) thelines=thewords.split("\n");
    for (jj=0; jj<thelines.length; jj++) {
      stuffs=thelines[jj].split(",");
      if (stuffs.length >= 3) {
      stuff=thelines[jj].replace("" + stuffs[0] + "," + stuffs[1] + ",", "");
      if (eval(nexty) < 0) {
        nextx=eval(stuffs[0]);
        onex=nextx;
        nexty=eval(stuffs[1]);
      }
      } else {
      stuff=thelines[jj];
      if (eval(nexty) < 0) {
        onex=nextx;
        nexty=eval(Math.abs(eval(nexty)));
      }
      }
      for (kk=0; kk<stuff.length; kk++) {
	        if (eval(1 + numcmd) > eval(stcmd.length)) {
	         stcmd.push('context.strokeText("' + stuff.substring(kk, eval(1 + kk)) + '",' + nextx + ',' + nexty + ')');
	        } else {
	         stcmd[numcmd]='context.strokeText("' + stuff.substring(kk, eval(1 + kk)) + '",' + nextx + ',' + nexty + ')';
	        }
	  numcmd++;
	  if (numcmd == 1) {
	   setTimeout(doslowly, 103);
	  }
      //context.strokeText(stuff.substring(kk, eval(1 + kk)),nextx,nexty);
      //alert(nextx + "," + nexty + "," + stuff.substring(kk, eval(1 + kk)));
      nextx+=8;
      }
      nextx=eval(onex);
      nexty=eval(20 + nexty);
    }
    }
}
function fixdatetimebit() {
  var d = new Date();
  document.getElementById('datetimebit').value = ' @ ' + d.toLocaleString();
}
function validatetheform() {
  if (document.getElementById('words').value == "") {
    document.getElementById('words').style.border='2px solid red';
    return false;
  }
  return true;
}
function lfixdatetimebit() {
  var d = new Date();
  document.getElementById('ldatetimebit').value = ' @ ' + d.toLocaleString();
}
function lvalidatetheform() {
  if (document.getElementById('lwords').value == "") {
    document.getElementById('lwords').style.border='2px solid red';
    return false;
  }
  return true;
}
</script>
</head>
<body style='background-color:orange;'>
<h1 align='center'>Broadcasting <a target=_blank style='text-decoration:none;' href='./broadcast_listen.html' title='Broadcast and Listen'>and</a> Listening</h1>
<h2 align='center'>RJM Programming - October, 2015</h2>
<h4 align='center'>Be a broadcaster or listen to broadcast present or past</h4>
<div align='center' id='mydiv'>
<table cellspacing=5 cellpadding=5>
<tbody>
<tr><th style='background-color:lightblue;'>Broadcast or Listen Status</th><th id='titlebit'>Feedback (at yellow canvas below)</th></tr>
<tr><td style='background-color:lightblue;'>I am a: <select id='iam' name='iam' onchange='whatami(this.value);'><option value=''>Please choose role below ...</option><option value='broadcast'>Broadcaster</option><option value='listen'>Listener</option></select><br><br><div style='display:none;' id='broadcastdiv'><form id='wordsform' target='writer' action='./broadcast_listen.php' method='POST' onsubmit="return validatetheform()">Subject: <input style='width:55%;' type='text' value='' name='subject' id='subject'></input><br><br>Words *: <br><textarea onkeyup=" if (si == null) {  si=setInterval(wordsformsubmit,5000); }  document.getElementById('titlebit').innerHTML='This is what a listener sees (at yellow canvas below)'; drawsomewords(this.value);" id='words' name='words' rows=12 cols=28></textarea><br><br>My Name/Email: <input style='width:55%;' type='text' value='' name='emailname' id='emailname'></input><input type='hidden' name='datetimebit' id='datetimebit' value=''></input><input type="hidden" name="liveflag" id="liveflag" value=" (live)"></input><br><br><input style='background-color:pink;' onclick=' document.getElementById("liveflag").value=""; if (si != null) { clearInterval(si); si=null; }  fixdatetimebit();' type='submit' value='Broadcast Words for Listeners'></input> <input style='background-color:pink;' onclick=' document.getElementById("liveflag").value=" (live)"; document.getElementById("words").value=" "; if (si != null) { clearInterval(si); si=null; }  fixdatetimebit();' type='submit' value='Delete'></input></form><br><p id='bstatus'></p></div><div id='dmail' align='center' style='word-wrap: break-word;background-color:#fffff0;width:100%;'></div><table style="width:100%;"><tr><th style='width:50%;'><a href="#" onclick=" window.open('test_broadcast_listen.php','_blank','top=100,left=100,width=300,height=300'); " title="Mailbox self tester">Mail</a> In</th><th style='width:50%;'><a href="#" onclick=" window.open('test_broadcast_listen.php','_blank','top=100,left=100,width=300,height=300'); " title="Mailbox self tester">Mail</a> Out</th></tr><tr><td id='mailin' style='width:50%;word-wrap: break-word;'></td><td id='mailout' style='width:50%;word-wrap: break-word;'></td></tr></table></div></td><td><canvas id='mycanvas' width=500 height=440 style='background-color:yellow;position:absolute;top:265px;left:52%;width:500px;height:440px;'></canvas></td></tr>
</tbody>
</table>
</div>
<script type='text/javascript'>
function keeplistening() {
  if (document.getElementById('lwords').value == "" && decodeURIComponent(subject).indexOf(" (live)") != -1) {
      var d = new Date();
  //alert(decodeURIComponent(subject));
      var rnum=Math.floor(Math.random() * 19000) + 1;
      document.getElementById('broadcastdiv').innerHTML='<iframe src="broadcast_list.html?rnum=-' + rnum + d.toLocaleString() + '" onload="listenerplacetwo(this);" id="listeneriframe"></iframe>';
  }
}
function whatami(urole) {
    if (urole == 'broadcast') {
      document.getElementById('broadcastdiv').style.display='block';
      document.getElementById('subject').focus();
    } else {
      var d = new Date();
      var rnum=Math.floor(Math.random() * 19000) + 1;
      document.getElementById('broadcastdiv').innerHTML='<iframe src="broadcast_list.html?rnum=' + rnum + d.toLocaleString() + '" onload="listenerplace(this);" id="listeneriframe"></iframe>';
      setTimeout(keeplistening, 10000);
    }
}
function read_mail(instuff) {
  var outstuff=instuff;
  if (instuff != "") {
  var d, redofd="", ofd="", prefixb="";
  var spare=document.getElementById('mailin').innerHTML;
  var inlines=instuff.split("\n");
  d = new Date();
  redofd="<font size=1 color=red>" + d.toLocaleString() + "</font><br>";
  for (var i=eval(-1 + inlines.length); i>=0; i--) {
    if (inlines[i].replace("<br>","") != "") {
    spare=prefixb + ofd + inlines[i] + "<br>" + spare;
    prefixb="";
    ofd="";
    } else if (1 == 2) {
    d = new Date();
    ofd="<font size=1 color=green>" + d.toLocaleString() + "</font><br>";
    }
  }
  document.getElementById('mailin').innerHTML="<br>" + redofd + spare;
  }
  return outstuff;
}
function send_mail(outstuff) {
  var instuff=outstuff;
  if (outstuff != "") {
  var d, redofd="", ofd="", prefixb="";
  var spare=document.getElementById('mailout').innerHTML;
  var inlines=instuff.split("\n");
  d = new Date();
  redofd="<font size=1 color=red>" + d.toLocaleString() + "</font><br>";
  for (var i=eval(-1 + inlines.length); i>=0; i--) {
    if (inlines[i].replace("<br>","") != "") {
    spare=prefixb + ofd + inlines[i] + "<br>" + spare;
    ofd="";
    prefixb="";
    } else if (1 == 2) {
    d = new Date();
    ofd="<font size=1 color=green>" + d.toLocaleString() + "</font><br>";
    }
  }
  document.getElementById('mailout').innerHTML="<br>" + redofd + spare;
  }
  return instuff;
}
function inboxcheck() {
  if (inboxurl != "") {
    if (1 == 2 && document.getElementById('inbox').src.indexOf("broadcast_listen.php") != -1) {
    document.getElementById('mailinout').innerHTML='<iframe onload=check_mail_in(this) style=display:none id=inbox src=' + inboxurl + ' title=inbox></iframe><iframe onload=check_mail_out(this) style=display:none id=outbox src=' + inboxurl.replace('mb_in', 'mb_out') + ' title=outbox></iframe>';
    } else {
    document.getElementById('inbox').src=inboxurl;
    }
    inboxurl="";
  }
}
function outboxcheck() {
  if (outboxurl != "") {
    if (1 == 2 && document.getElementById('outbox').src.indexOf("broadcast_listen.php") != -1) {
    document.getElementById('mailinout').innerHTML='<iframe onload=check_mail_in(this) style=display:none id=inbox src=' + outboxurl.replace('mb_out', 'mb_in') + ' title=inbox></iframe><iframe onload=check_mail_out(this) style=display:none id=outbox src=' + outboxurl + ' title=outbox></iframe>';
    } else {
    document.getElementById('outbox').src=outboxurl;
    }
    outboxurl="";
  }
}
function check_mail_in(iois) {
  if (iois != null) {
    var aconto = (iois.contentWindow || iois.contentDocument); 
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null && inboxurl == "") {
       var d = new Date();
       var rnum=Math.floor(Math.random() * 19000) + 1;
       var preqs=iois.src.split('?');
       inboxurl=preqs[0] + '?rnum=' + rnum + d.toLocaleString();
       setTimeout(inboxcheck, 1964);
       if (aconto.body.innerHTML != "") {
         document.title="mail in is " + read_mail(aconto.body.innerHTML);
         iois.src='./broadcast_listen.php?rnum=-1' + rnum + d.toLocaleString();
       }
     }
    }
  }
}
function check_mail_out(iois) {
  if (iois != null) {
    var aconto = (iois.contentWindow || iois.contentDocument); 
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null && outboxurl == "") {
       var d = new Date();
       var rnum=Math.floor(Math.random() * 19000) + 1;
       var preqs=iois.src.split('?');
       outboxurl=preqs[0] + '?rnum=' + rnum + d.toLocaleString();
       setTimeout(outboxcheck, 1969);
       if (aconto.body.innerHTML != "") {
         document.title="mail out is " + send_mail(aconto.body.innerHTML);
         iois.src='./broadcast_listen.php?rnum=-2' + rnum + d.toLocaleString();
       }
     } 
    }
  }
}
function remotemailboxhere(iois) {
 var ee;
 try {
  if (iois != null) {
    var aconto = (iois.contentWindow || iois.contentDocument); 
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null) {
      document.getElementById('lregardingmailbox').value=aconto.body.innerHTML;
      //alert(document.getElementById('lregardingmailbox').value);
     }
    }
  }
 } catch (ee) { }
}
function listenerplace(iois) {
  if (iois != null) {
    var aconto = (iois.contentWindow || iois.contentDocument); 
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null) {
       //alert(aconto.body.innerHTML);
       var suff="";
       var resubject="";
       var newsubject="";
       if (subject != "") {
         resubject="Re: " + decodeURIComponent(subject).replace(" (live)","");
         newsubject="mail" + "box/subject_" + decodeURIComponent(subject).toLowerCase().replace(" (live)","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","") + ".html";
       }
       // if (fromtext != totext) suff="<div id='dreply' style='background-color:lightgreen;'><form id='fdreply' target='writer' action='./broadcast_listen.php' method='POST' onsubmit='return lvalidatetheform()'>Subject: <input style='width:55%;' type='text' value='" + resubject + "' name='lsubject' id='lsubject'></input><br>Words *: <br><textarea id='lwords' name='lwords' rows=2 cols=28></textarea><br>My Name/Email: <input style='width:55%;' type='text' value='' name='lemailname' id='lemailname'></input><br><br><input type='hidden' name='lregardingmailbox' id='lregardingmailbox' value=''></input><input type='hidden' name='ldatetimebit' id='ldatetimebit' value=''></input><input type='hidden' name='lregardingemailname' id='lregardingemailname' value=''></input><input type='hidden' name='lregardingsubject' id='lregardingsubject' value=''></input><input type='hidden' name='lregardingdatetimebit' id='lregardingdatetimebit' value=''></input><input style='background-color:pink;' onclick='lfixdatetimebit();' type='submit' value='Send Words to Broadcaster'></input></form><br></div>";
       document.getElementById('broadcastdiv').innerHTML=aconto.body.innerHTML.replace(fromtext,totext.substring(0,fromtext.length)).replace(/\n/g, "<br>") + suff;
       if (totext != fromtext) {
         if (newsubject != "") {
          if (document.body.innerHTML.indexOf(newsubject) == -1) {
           //document.getElementById('remotemail').innerHTML='<iframe style="display:none;" title="Broadcast Writer" id="writertwo" name="writertwo" src="./broadcast_listen.php"></iframe><iframe src="' + newsubject + '" onload=" remotemailboxhere(this); " style="display:none;"></iframe>';
           document.getElementById('remotemail').innerHTML='<iframe src="' + newsubject + '" onload=" remotemailboxhere(this); " style="display:none;"></iframe>';
           document.getElementById('lsubject').value=resubject;
          }
         }
         document.getElementById('dreply').style.display='block';
         document.getElementById('lregardingemailname').value=decodeURIComponent(identity);
         document.getElementById('lregardingdatetimebit').value=decodeURIComponent(datetimebit);
         document.getElementById('lregardingsubject').value=decodeURIComponent(subject); //.replace(" (live)","");
         drawsomewords(totext);
         //alert(document.getElementById('lregardingsubject').value);
         //alert(document.getElementById('lregardingemailname').value);
       }
       totext="Please select a broadcast below ...";
       document.getElementById('broadcastdiv').style.display='block';
     }
    }
  }
}
function listenerplacetwo(iois) {
  if (iois != null) {
    var aconto = (iois.contentWindow || iois.contentDocument); 
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null) {
       //alert(aconto.body.innerHTML);
       var suff="";
       var resubject="";
       var newsubject="";
       if (subject != "") {
         resubject="Re: " + decodeURIComponent(subject).replace(" (live)","");
         newsubject="mail" + "box/subject_" + decodeURIComponent(subject).toLowerCase().replace(" (live)","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","").replace(" ","") + ".html";
       }
       // if (fromtext != totext) suff="<div id='dreply' style='background-color:lightgreen;'><form id='fdreply' target='writer' action='./broadcast_listen.php' method='POST' onsubmit='return lvalidatetheform()'>Subject: <input style='width:55%;' type='text' value='" + resubject + "' name='lsubject' id='lsubject'></input><br>Words *: <br><textarea id='lwords' name='lwords' rows=2 cols=28></textarea><br>My Name/Email: <input style='width:55%;' type='text' value='' name='lemailname' id='lemailname'></input><br><br><input type='hidden' name='lregardingmailbox' id='lregardingmailbox' value=''></input><input type='hidden' name='ldatetimebit' id='ldatetimebit' value=''></input><input type='hidden' name='lregardingemailname' id='lregardingemailname' value=''></input><input type='hidden' name='lregardingsubject' id='lregardingsubject' value=''></input><input type='hidden' name='lregardingdatetimebit' id='lregardingdatetimebit' value=''></input><input style='background-color:pink;' onclick='lfixdatetimebit();' type='submit' value='Send Words to Broadcaster'></input></form><br></div>";
       document.getElementById('broadcastdiv').innerHTML=aconto.body.innerHTML.replace(fromtext,totext.substring(0,fromtext.length)).replace(/\n/g, "<br>") + suff;
       if (totext != fromtext || 1 == 1) {
         if (newsubject != "") {
          if (document.body.innerHTML.indexOf(newsubject) == -1) {
           //document.getElementById('remotemail').innerHTML='<iframe style="display:none;" title="Broadcast Writer" id="writertwo" name="writertwo" src="./broadcast_listen.php"></iframe><iframe src="' + newsubject + '" onload=" remotemailboxhere(this); " style="display:none;"></iframe>';
           document.getElementById('remotemail').innerHTML='<iframe src="' + newsubject + '" onload=" remotemailboxhere(this); " style="display:none;"></iframe>';
           document.getElementById('lsubject').value=resubject;
          }
         }
         document.getElementById('dreply').style.display='block';
         document.getElementById('lregardingemailname').value=decodeURIComponent(identity);
         document.getElementById('lregardingdatetimebit').value=decodeURIComponent(datetimebit);
         document.getElementById('lregardingsubject').value=decodeURIComponent(subject); //.replace(" (live)","");
         drawsomewords(totext);
         //alert(document.getElementById('lregardingsubject').value);
         //alert(document.getElementById('lregardingemailname').value);
       }
       totext="Please select a broadcast below ...";
       document.getElementById('broadcastdiv').style.display='block';
       var plus=' (live run)';
       //alert(subject + ' ... ' + document.getElementById('broadcastlist').innerHTML);
       var things=document.getElementById('broadcastlist').innerHTML.split('">' + decodeURIComponent(subject) + plus + '<');
       if (things.length == 1) {
         plus='';
         things=document.getElementById('broadcastlist').innerHTML.split('">' + decodeURIComponent(subject) + plus + '<');
         if (things.length > 1) {
           var prethings=things[eval(-2 + things.length)].split(' value="');
           document.getElementById('broadcastlist').value=prethings[eval(-1 + prethings.length)];
           drawsomewords(prethings[eval(-1 + prethings.length)]);
           setTimeout(keeplistening, 10000);
         }
       }
     }
    }
  }
}
window.onload = (function(){
var frombit="", whenbit="", subjectbit="", emailbit="";
listenurl=location.search.split('listenurl=')[1] ? location.search.split('listenurl=')[1].split('&')[0] : "";
identity=location.search.split('identity=')[1] ? location.search.split('identity=')[1].split('&')[0] : "";
datetimebit=location.search.split('dtb=')[1] ? location.search.split('dtb=')[1].split('&')[0] : "";
subject=location.search.split('subject=')[1] ? location.search.split('subject=')[1].split('&')[0] : "";
if (listenurl != "") {
  document.getElementById('iam').value='listen';
  totext=decodeURIComponent(listenurl).replace(/<br>\\n/g, "\\n");
  if (subject == "") {
    subjectbit="";
  } else {
    subjectbit="<br>" + decodeURIComponent(subject);
    emailbit+=encodeURIComponent(decodeURIComponent(subject));
  }
  if (datetimebit == "") {
    whenbit="";
  } else {
    whenbit="<br> ... at " + decodeURIComponent(datetimebit);
    emailbit+=encodeURIComponent(" ... at " + decodeURIComponent(datetimebit));
  }
  if (identity == "") {
    frombit="";
  } else {
    if (decodeURIComponent(identity).indexOf("@") != -1) {
    frombit="<br> ... via <a href='mailto:" + decodeURIComponent(identity) + "?subject=" + encodeURIComponent("Re: ") + emailbit + "&body=" + encodeURIComponent("Regarding \n\n" + '"' + "\n") + encodeURIComponent(totext.replace(/\\n/g, "\n").replace(/\n/g, "\n")) + encodeURIComponent("\n" + '"' + "\n\n ... can I just say ...\n\n\n") + "' title='Optional email (reply)'>" + decodeURIComponent(identity) + "</a>";
    } else {
    frombit="<br> ... via " + decodeURIComponent(identity);
    }
  }
  document.getElementById('titlebit').innerHTML='Feedback (at yellow canvas below)' + subjectbit + frombit + whenbit;
  whatami('listen');
  //setTimeout(andthen, 2000);
}
score=location.search.split('score=')[1] ? location.search.split('score=')[1].split('&')[0] : score;
goes=location.search.split('goes=')[1] ? location.search.split('goes=')[1].split('&')[0] : goes;
ie = (function(){  // thanks to http://stackoverflow.com/questions/5574842/best-way-to-check-for-ie-less-than-9-in-javascript-without-library
    var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]
    );
    return v > 4 ? v : undef;
}());
if (ie < 9) {
    elem=document.getElementById('mydiv');
} else {
       //alert(981);
    elem=document.getElementById('mycanvas');
       //alert(982 + elem.id);
    context = elem.getContext("2d");
    //context.drawImage(img,0,0);
       //alert(983);
    elemLeft = elem.offsetLeft;
       //alert(984);
    elemTop = elem.offsetTop;
       //alert(985 + " " + elemTop);
}
   }());
</script>
<iframe style='display:none;' title='Broadcast Writer' id='writer' name='writer' src='./broadcast_listen.php'></iframe>
<div id='mailinout'>
</div>
<div id='remotemail'>
</div>
</body>
</html>