// gchartgen.js // Email functionality for H1 onclick event specifics for Google Chart work // RJM Programming // Robert Metcalfe // January 2015 // Added event functionality in July 2015 var wua = navigator.userAgent; var wisiPad = /iPad/i.test(wua) || /iPhone OS 3_1_2/i.test(wua) || /Android/i.test(wua) || /iPhone OS 3_2_2/i.test(wua); var wisTouch = /touch/i.test(wua) || /Touch/i.test(wua); var gcadvice = ' ... To email a snapshot of this Google Chart click me.'; var wisMobile = false; var wisWebView = false; var toobigform = null; var ourbae = null; var formid = ''; var xnewfbit = ''; var divid = ''; var pnum=1, lastfi=false; var issatisfied=false; var satisfiedvalue=null; var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor); // var xpnum=1; // done back at supervisor // var allowed=true; // done back at supervisor if (document.URL.indexOf('nojwin') != -1) { // || navigator.userAgent.match(/iPhone|iPad/i)) { var prompt = function(zwords, defwords){ var vcancel=''; var vok=''; var ansis=location.search.split('val' + pnum + '=')[1] ? decodeURIComponent(decodeURIComponent(location.search.split('val' + pnum + '=')[1].split('&')[0]).replace(/\+/g,' ')) : ''; if (document.URL.indexOf('val' + pnum + '=') == -1) ansis=null; if (document.URL.indexOf('val' + pnum + '=') != -1 && pnum == eval(-1 + xpnum)) { vcancel=location.search.split('Cancel=')[1] ? location.search.split('Cancel=')[1].split('&')[0] : ''; vok=location.search.split('OK=')[1] ? location.search.split('OK=')[1].split('&')[0] : ''; } if (vcancel != '') { pnum++; return null; } else if (vok != '') { pnum++; return ansis; } else if (document.getElementById('val' + pnum)) { allowed=false; lastfi=true; document.getElementById('safariform').style.display='block'; document.getElementById('prompt').value=zwords; document.getElementById('val' + pnum).value=defwords; document.getElementById('hval' + pnum).value=encodeURIComponent(defwords); if (zwords.split(String.fromCharCode(10)).length > eval('0' + document.getElementById('prompt').rows)) { document.getElementById('prompt').rows=zwords.split(String.fromCharCode(10)).length; } else if (zwords.split('
').length > eval('0' + document.getElementById('prompt').rows)) { document.getElementById('prompt').rows=zwords.split('
').length; } document.getElementById('val' + pnum).focus(); pnum++; return ansis; } else if (lastfi) { pnum++; lastfi=false; if (ansis == 'null') return null; return ansis; } else { pnum++; if (ansis == 'null') return null; return ansis; } }; var alert = function(zwords){ var defwords=''; var vcancel=''; var vok=''; var ansis=location.search.split('val' + pnum + '=')[1] ? decodeURIComponent(decodeURIComponent(location.search.split('val' + pnum + '=')[1].split('&')[0]).replace(/\+/g,' ')) : ''; if (document.URL.indexOf('val' + pnum + '=') == -1) ansis=null; if (document.URL.indexOf('val' + pnum + '=') != -1 && pnum == eval(-1 + xpnum)) { vcancel=location.search.split('Cancel=')[1] ? location.search.split('Cancel=')[1].split('&')[0] : ''; vok=location.search.split('OK=')[1] ? location.search.split('OK=')[1].split('&')[0] : ''; } if (vcancel != '') { pnum++; return null; } else if (vok != '') { pnum++; return ''; } else if (document.getElementById('val' + pnum)) { allowed=false; lastfi=true; document.getElementById('safariform').style.display='block'; document.getElementById('prompt').value=zwords; document.getElementById('val' + pnum).value=defwords; document.getElementById('hval' + pnum).value=encodeURIComponent(defwords); document.getElementById('Cancel').style.display='none'; document.getElementById('bCancel').style.display='none'; document.getElementById('val' + pnum).style.display='none'; document.getElementById('OK').focus(); pnum++; return ansis; } else if (lastfi) { pnum++; lastfi=false; if (ansis == 'null') return null; return ansis; } else { pnum++; if (ansis == 'null') return null; return ansis; } }; var confirm = function(zwords){ //alert('val' + pnum + '=? ' + ' pnum=' + pnum + ' xpnum=' + xpnum + ' ' + document.URL); var defwords='1trueYesOK'; var vcancel=''; var vok=''; var ansis=location.search.split('val' + pnum + '=')[1] ? decodeURIComponent(decodeURIComponent(location.search.split('val' + pnum + '=')[1].split('&')[0]).replace(/\+/g,' ')) : ''; if (document.URL.indexOf('val' + pnum + '=') == -1) ansis=null; if (document.URL.indexOf('val' + pnum + '=') != -1 && pnum == eval(-1 + xpnum)) { vcancel=location.search.split('Cancel=')[1] ? location.search.split('Cancel=')[1].split('&')[0] : ''; vok=location.search.split('OK=')[1] ? location.search.split('OK=')[1].split('&')[0] : ''; } //alert('vok=' + vok); if (vcancel != '') { pnum++; return null; } else if (vok != '') { pnum++; return '1trueYesOK'; } else if (document.getElementById('val' + pnum)) { allowed=false; lastfi=true; document.getElementById('safariform').style.display='block'; document.getElementById('prompt').value=zwords; document.getElementById('val' + pnum).value=defwords; document.getElementById('hval' + pnum).value=encodeURIComponent(defwords); document.getElementById('val' + pnum).style.display='none'; document.getElementById('OK').focus(); pnum++; return ansis; } else if (lastfi) { pnum++; lastfi=false; if (ansis == 'null') return null; return ansis; } else { pnum++; if (ansis == 'null') return null; return ansis; } }; } // Thanks to http://jennifermadden.com/javascript/stringEnterKeyDetector.html function checkEnter(e){ //e is event object passed from function invocation var characterCode; //literal character code will be stored in this variable if(e && e.which){ //if which property of event object is supported (NN4) e = e; characterCode = e.which; //character code is contained in NN4's which property } else{ e = event; characterCode = e.keyCode; //character code is contained in IE's keyCode property } if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key) document.getElementById('hval' + xpnum).value=encodeURIComponent(document.getElementById('val' + xpnum).value); document.forms[-1 + eval(document.forms.length)].submit(); //submit the form return false; } else{ return true; } } function depends(ins) { if (ins == "") return wisWebView; return ins; } function getH1s(evt) { var rest = '', rests, restss, brest='?justmenu=justmenu', nojx=''; if (document.URL.indexOf('nojwin') != -1) nojx='&nojwin=y'; if (document.URL.indexOf('?') != -1) { rests = document.URL.split('?'); restss = rests[1].split('&'); if (restss[0].indexOf('title=') == -1) rest = '?' + restss[0] + nojx; if (restss[0].indexOf('title=') == -1) brest = '?justmenu=justmenu&' + restss[0] + nojx; } if (nojx != "") { if (brest.indexOf(nojx) == -1) { if (brest == "") { brest="?nojwin=y"; } else { brest+="&nojwin=y"; } } if (rest.indexOf(nojx) == -1) { if (rest == "") { rest="?nojwin=y"; } else { rest+="&nojwin=y"; } } } if (wisWebView || navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { wisWebView = wisWebView; } else { wisMobile = false; wisWebView = false; } if (wisWebView || (wisMobile && document.URL.indexOf("title=") != -1)) { if (document.body.innerHTML.indexOf("jkl" + "email") == -1) { document.body.innerHTML = document.body.innerHTML + "Email snapshot to:    
"; } } else { if (document.body.innerHTML.indexOf("mail" + "to:") == -1 && document.body.innerHTML.indexOf(">E" + "mail") == -1) { document.body.innerHTML = document.body.innerHTML + "  
"; document.getElementById('email').click(); } } } function gcinit() { // Listen for the 'select' event, and call my function selectHandler() when // the user selects something on the chart. // July, 2015 changes thanks to https://developers.google.com/chart/interactive/docs/basic_interactivity // try { //if (chart != null) { //alert(99); // google.visualization.events.addListener(chart, 'select', selectHandler); //} else { //alert(98); //} //} catch (e) { //alert(97 + " " + e.message); //} var bae = document.getElementById('bitsatend'); var rest = '', rests, restss, brest='?justmenu=justmenu', nojx=''; if (document.URL.indexOf('nojwin') != -1) nojx='&nojwin=y'; document.body.style.background='-webkit-linear-gradient(top, #FFFF00, #00FFFF)'; document.body.style.background='-moz-linear-gradient(top, #FFFF00, #00FFFF)'; if (document.URL.indexOf('?') != -1) { rests = document.URL.split('?'); restss = rests[1].split('&'); if (restss[0].indexOf('title=') == -1) rest = '?' + restss[0]; if (restss[0].indexOf('title=') == -1) brest = '?justmenu=justmenu&' + restss[0]; } if (document.URL.indexOf('nojwin') != -1) nojx='&nojwin=y'; if (document.URL.indexOf('?') != -1) { rests = document.URL.split('?'); restss = rests[1].split('&'); if (restss[0].indexOf('title=') == -1) rest = '?' + restss[0] + nojx; if (restss[0].indexOf('title=') == -1) brest = '?justmenu=justmenu&' + restss[0] + nojx; } if (nojx != "") { if (brest.indexOf(nojx) == -1) { if (brest == "") { brest="?nojwin=y"; } else { brest+="&nojwin=y"; } } if (rest.indexOf(nojx) == -1) { if (rest == "") { rest="?nojwin=y"; } else { rest+="&nojwin=y"; } } } if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { wisMobile = true; wisWebView = wisWebView; } else { wisMobile = false; wisWebView = false; } if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { // is mobile wisMobile = true; wisWebView = true; if (depends("") && (document.URL.replace(/justmenu/g,"").indexOf("=WebView") != -1 || document.URL.replace(/justmenu/g,"").indexOf("WebView=") != -1 || document.URL.replace(/justmenu/g,"").indexOf("=UIWebView") != -1)) { // called this way by iOS or Android WebView wisWebView = true; wisWebView = depends(""); if (wisWebView || (wisMobile && document.URL.indexOf("&") != -1)) { if (navigator.userAgent.toLowerCase().indexOf("ie") != (0 - 1)) { aallPs = document.getElementsByTagName('a'); } else { aallPs= document.getElementsByTagName('a'); } for (var jj=0; jj < aallPs.length; jj++) { if (("*" + aallPs[jj].innerHTML).indexOf("*Another ") != -1) { if (wisWebView) { if ((aallPs[jj].href + "*").indexOf(".php*") != -1) { if (document.URL.indexOf("&") != -1) { var huha=document.URL.split("&"); aallPs[jj].href = huha[0]; } else { aallPs[jj].href = document.URL; } } } } else if ((aallPs[jj].href.indexOf("http") != -1 || aallPs[jj].href.indexOf("//") != -1) && aallPs[jj].href.indexOf("rjmprogramming.com.au") == -1) { aallPs[jj].onclick = " alert('" + aallPs[jj].href + "'); "; aallPs[jj].href = "#"; } } } } else { wisWebView = false; } } if (1 == 1) { if (navigator.userAgent.toLowerCase().indexOf("ie") != (0 - 1)) { allPs = document.getElementsByTagName('h1'); } else { allPs= document.getElementsByTagName('h1'); } for (var j=0; j < allPs.length; j++) { if ((depends("") && wisWebView) || (wisMobile && document.URL.indexOf("&") != -1)) { if (document.body.innerHTML.indexOf("ijk" + "email") == -1) { if (bae != null) { bae.innerHTML+="  Menu  Email snapshot of Google Chart to:    
"; } else { document.body.innerHTML = document.body.innerHTML + "  Menu  Email snapshot of Google Chart to:    
"; } } } else { if (document.body.innerHTML.indexOf("MAIL" + "TO:") == -1 && document.body.innerHTML.indexOf(">E" + "mail") == -1) { if (bae != null) { bae.innerHTML+="  Menu  Email snapshot of Google Chart ...  
"; } else { document.body.innerHTML = document.body.innerHTML + "  Menu  Email snapshot of Google Chart ...  
"; } } } if ((wisiPad || wisTouch)) { allPs[j].onclick = getH1s; if (allPs[j].title.indexOf(gcadvice) == -1) allPs[j].title += gcadvice; } else { allPs[j].onclick = getH1s; if (allPs[j].title.indexOf(gcadvice) == -1) allPs[j].title += gcadvice; } } } if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { // is mobile if (document.body.innerHTML.indexOf("but" + "sel." + "php") == -1) { if (bae != null) { bae+="  Menu"; } else { document.body.innerHTML = document.body.innerHTML + "  Menu"; } } var ozmenu=document.getElementById('zmenu'); if (ozmenu != null) { ozmenu.href='//www.rjmprogramming.com.au/PHP/justmenuWebView.html'; } } } function ourencodeURIComponent(insis) { var outsis=encodeURIComponent(insis), ebits; var kbits=insis.split('&'); var jbits=insis.split('='); var altsis=''; if (eval(kbits.length) > 1 && eval(jbits.length) > 1 && eval(kbits.length) == eval(jbits.length) && eval(jbits[0].length) > eval(kbits[0].length)) { altsis=encodeURIComponent(kbits[0]); for (var iu=1; iu'; fipsuffix=''; fdsuffix=''; if (urlin.indexOf('_diff.php') != -1) fd0suffix=''; meth="POST' target='iemailbig"; if (1 == 2) divid='chart_div'; formid='bigemailform'; newfbit=''; qp='//www.rjmprogramming.com.au/PHP/webviewemail.php'; dtis=new Date(); fnamesuffix0='itb' + Math.floor(Math.random() * 2000) + dtis.valueOf() + '.huh'; fformsuffix0=''; } ourbae = document.getElementById(divid); ournewf = document.getElementById(formid); if (ourbae != null) { var qparts=urlin.split('?'); if (eval(qparts.length) == 2) { var aparts=qparts[1].split('&'); if (ournewf == null) { //var ds=document.URL.split('&data'); var ds=urlin.split('&data'); if (qp == '') qp=ds[0]; if (eval(ds.length) > 1) { for (iy=1; iy"; // ""; newfbit+=""; for (ij=0; ij'; } if (ynft0 == 'isunlikelyehwotzero' && urlin.indexOf('_diff.php') == -1) fformsuffix0=''; newfbit+=fdsuffix + fd0suffix + fipsuffix + fformsuffix + fformsuffix0 + ''; if (modeofuse == 'email') { xnewfbit=newfbit; setTimeout(dobae, 300); } else { ourbae.innerHTML+=newfbit; ournewf = document.getElementById(formid); } if (modeofuse == 'email') { if (urlin.indexOf('&data') == -1 && urlin.indexOf('_diff.php') != -1) return urlin + '&data=' + fnamesuffix + '&data0=' + fnamesuffix0; if (urlin.indexOf('&data') == -1) return urlin + '&data=' + fnamesuffix; return urlin.replace(ynft, '&data=' + fnamesuffix).replace(ynft0, '&data0=' + fnamesuffix0); } else { ournewf.submit(); } } else { for (ij=0; ij'; } if (ynft0 == 'isunlikelyehwotzero' && urlin.indexOf('_diff.php') == -1) fformsuffix0=''; newfbit+=fdsuffix + fd0suffix + fipsuffix + fformsuffix + fformsuffix0 + ''; ournewf.innerHTML=newfbit; if (modeofuse == 'email') { toobigform=ournewf; if (urlin.indexOf('&data') == -1 && urlin.indexOf('_diff.php') != -1) return urlin + '&data=' + fnamesuffix + '&data0=' + fnamesuffix0; if (urlin.indexOf('&data') == -1) return urlin + '&data=' + fnamesuffix; return urlin.replace(ynft, '&data=' + fnamesuffix).replace(ynft0, '&data0=' + fnamesuffix0); } else { ournewf.submit(); } } } else { return urlin; } return '#'; } else { return urlin; } } } setTimeout(gcinit, 2000);