// 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 dependssuffix='';
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 emailtitle = 'Email Attachment Title suffixes are &ema' + 'ilto=[emailTo] &emailsubject=[EmailSubject] ';
var yesgo='noway' + 'okay' + '675';
var nogo=yesgo;
var yesgo2=yesgo;
var nogo2=yesgo;
var yesgo3=yesgo;
var nogo3=yesgo;
var yesgo4=yesgo;
var nogo4=yesgo;
var yesgo5=yesgo;
var nogo5=yesgo;
var ghurl='';
var ghform='';
var tdghuhta='';
var oncprefix='';
var remail='remail';
var deftois='';
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 (typeof paramdata === "undefined") {
var paramdata="";
}
var lhpassed=('' + location.hash);
if (document.URL.indexOf('?') == -1 && lhpassed.indexOf('&data=') != -1) {
if (3 == 3) { // good for new style of hashtagged email
var gformoh='
';
var fldsare=lhpassed.replace(/^\#/g,'').split('=');
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
gformoh=gformoh.replace('','');
}
for (var ifldsare=1; ifldsare','');
}
setTimeout(function() {
document.body.innerHTML+=gformoh;
document.getElementById('gformsubis').click(); }, 7000);
} else {
var gzhr = new XMLHttpRequest();
var gzform=new FormData();
if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
gzform.append('nojwinyes' 'Q');
}
var fldsare=lhpassed.replace(/^\#/g,'').split('=');
for (var ifldsare=1; ifldsare 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 alatr() {
if (document.getElementById('psubm')) {
document.getElementById('psubm').click();
}
}
function toolong(inup) {
if (inup.split('&emailto=').length > 2) {
while (inup.split('&emailto=').length > 2) {
inup=inup.replace('&emailto=' + inup.split('&emailto=')[1].split('&')[0],'');
}
}
if (inup.split('&emailsubject=').length > 2) {
while (inup.split('&emailsubject=').length > 2) {
inup=inup.replace('&emailsubject=' + inup.split('&emailsubject=')[1].split('&')[0],'');
}
}
if (inup.split('&emailcc=').length > 2) {
while (inup.split('&emailcc=').length > 2) {
inup=inup.replace('&emailcc=' + inup.split('&emailcc=')[1].split('&')[0],'');
}
}
if (inup.split('&emailbcc=').length > 2) {
while (inup.split('&emailbcc=').length > 2) {
inup=inup.replace('&emailbcc=' + inup.split('&emailbcc=')[1].split('&')[0],'');
}
}
if (inup.indexOf('&email') > inup.indexOf('&data')) {
var putb=inup.substring(inup.indexOf('&email'));
inup=inup.replace(putb,'');
inup=inup.replace('&data', putb + '&data');
}
if (inup.length < 900) return inup;
var texr='';
if (document.getElementById('specf')) { texr=' target=specf '; }
var pform='';
var pars=inup.replace('?','&').split('#')[0].split('&');
for (var ipars=1; ipars', '');
} else {
pform=pform.replace('', '');
}
}
document.body.innerHTML+=pform;
//alert(pform.split(' name="task"')[1]);
setTimeout(alatr, 2000); //document.getElementById('psubm').click();
return '#';
}
function sethash(towhat) {
if (towhat.indexOf(encodeURIComponent('#')) == 0) {
dependssuffix=decodeURIComponent(towhat);
} else {
dependssuffix=towhat;
}
//alert('dependssuffix=' + dependssuffix);
}
function depends(ins) {
if (ins == "") return wisWebView;
if (ins.indexOf('?') == -1 && ins.indexOf('#') == -1 && dependssuffix != '') {
if (dependssuffix.indexOf('?') == 0) {
return (ins + '#' + dependssuffix.substring(1));
} else if (dependssuffix.indexOf('#') == 0) {
//alert('url=' + (ins + dependssuffix));
return (ins + dependssuffix);
} else {
return (ins + '#' + dependssuffix);
}
}
return ins;
}
function getH1s(evt) {
var rest = '', rests, restss, brest='?justmenu=justmenu', nojx='';
var orsms=' or SMS';
if (typeof paramdata !== "undefined") {
if (eval('' + ('' + paramdata).length) > 850) {
orsms='';
}
}
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" + orsms + " snapshot to: ";
}
} else {
if (document.body.innerHTML.replace("sm" + "s:","mail" + "to:").indexOf("mail" + "to:") == -1 && document.body.innerHTML.indexOf(">E" + "mail") == -1) {
document.body.innerHTML = document.body.innerHTML + "Email" + orsms + " snapshot ... ";
document.getElementById('email').click();
}
}
}
function pausecomp(ms) {
ms += new Date().getTime();
while (new Date() < ms){}
}
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 orsms=' or SMS';
if (typeof paramdata !== "undefined") {
if (eval('' + ('' + paramdata).length) > 850) {
orsms='';
}
}
if (!document.body) {
setTimeout(gcinit, 2000);
return;
}
if (typeof paramdata === "undefined") {
paramdata="";
}
var bae = document.getElementById('bitsatend');
var prebae='';
if (document.getElementById('thedivemail')) {
prebae=' ' + emailtitle + ' ';
}
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+=prebae + " MenuEmail" + orsmns + " snapshot of Google Chart to: ";
if (document.URL.indexOf('data=') == -1 && paramdata.trim() == '') { setTimeout(gfillindata,1); pausecomp(1000); }
} else {
document.body.innerHTML = document.body.innerHTML + prebae + " MenuEmail" + orsms + " snapshot of Google Chart to: ";
if (document.URL.indexOf('data=') == -1 && paramdata.trim() == '') { setTimeout(gfillindata,1); pausecomp(1000); }
}
}
} else {
if (document.body.innerHTML.replace("SM" + "S:","MAIL" + "TO:").indexOf("MAIL" + "TO:") == -1 && document.body.innerHTML.indexOf(">E" + "mail") == -1) {
if (bae != null) {
bae.innerHTML+=" MenuEmail" + orsms + " snapshot of Google Chart ... ";
if (document.URL.indexOf('data=') == -1 && paramdata.trim() == '') { setTimeout(gfillindata,1); pausecomp(1000); }
} else {
document.body.innerHTML = document.body.innerHTML + " MenuEmail" + orsms + " snapshot of Google Chart ... ";
if (document.URL.indexOf('data=') == -1 && paramdata.trim() == '') { setTimeout(gfillindata,1); pausecomp(1000); }
}
}
}
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+=prebae + " Menu";
} else {
document.body.innerHTML = document.body.innerHTML + prebae + " Menu";
}
}
var ozmenu=document.getElementById('zmenu');
if (ozmenu != null) {
ozmenu.href='//www.rjmprogramming.com.au/PHP/justmenuWebView.html';
}
}
setTimeout(ftde, 1000);
}
function fixanother() {
if (document.getElementById('another')) {
if (document.getElementById('another').href.indexOf('./') == 0 || document.getElementById('another').href.toLowerCase().indexOf('http') != 0) {
document.getElementById('another').href=document.URL.split('#')[0].split('?')[0];
}
}
}
function makeabs(inh) {
var outh=inh;
var uide=["ww" + "w.","ma" + "ps.","ic" + "ons.","go" + "ogle.","yo" + "utube."];
for (var iuyt=0; iuyt') != -1) {
inbo=inbo.replace('', + ' function dub() { ' + " documentURL=\"" + documentURL + "\"; if (documentURL.indexOf(\"&data=\") != -1) { paramdata=(documentURL + \"&\").split(\"&data=\")[1].split(\"&\")[0]; pardata=encodeURIComponent(paramdata); } } " + ' ');
} else {
inbo+=' function dub() { ' + " documentURL=\"" + documentURL + "\"; if (documentURL.indexOf(\"&data=\") != -1) { paramdata=(documentURL + \"&\").split(\"&data=\")[1].split(\"&\")[0]; pardata=encodeURIComponent(paramdata); } } " + ' ';
}
if (inbo.split('')[0].indexOf(' onload=') == -1) {
return inbo.replace('' + makeabs(document.head.innerHTML) + makeabs(makeright(document.body.outerHTML.replace('dIsPlAy:nOnE;','').split('