<?php
// talk_about_it.php
// RJM Programming
// October, 2025
// Message Board
    
$issayable='';
if (PHP_OS == 'DARWIN') {
    $issayable='y';
}
        
function zserver_remote_addr() {
    global $issayable;
    $rma = $_SERVER['REMOTE_ADDR'];
    //$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    // you can add different browsers with the same way ..
    if (1 == 2) {
    if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua))
            $rma = '000000'.$rma;
    elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua))
            $rma = '00000'.$rma;
    elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua))
            $rma = '0000'.$rma;
    elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua))
            $rma = '000'.$rma;
    elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua))
            $rma = '00'.$rma;
    elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua))
            $rma = '0'.$rma;
    }
    return str_replace(':','_',str_replace('.','_',$rma));
}

$sayvoices="Alex                en_US    # Most people recognize me by my voice.
Alice               it_IT    # Salve, mi chiamo Alice e sono una voce italiana.
Alva                sv_SE    # Hej, jag heter Alva. Jag är en svensk röst.
Amelie              fr_CA    # Bonjour, je m’appelle Amelie. Je suis une voix canadienne.
Anna                de_DE    # Hallo, ich heiße Anna und ich bin eine deutsche Stimme.
Carmit              he_IL    # שלום. קוראים לי כרמית, ואני קול בשפה העברית.
Damayanti           id_ID    # Halo, nama saya Damayanti. Saya berbahasa Indonesia.
Daniel              en_GB    # Hello, my name is Daniel. I am a British-English voice.
Diego               es_AR    # Hola, me llamo Diego y soy una voz española.
Ellen               nl_BE    # Hallo, mijn naam is Ellen. Ik ben een Belgische stem.
Fiona               en_scotland # Hello, my name is Fiona. I am a Scottish-English voice.
Fred                en_US    # I sure like being inside this fancy computer
Ioana               ro_RO    # Bună, mă cheamă Ioana . Sunt o voce românească.
Joana               pt_PT    # Olá, chamo-me Joana e dou voz ao português falado em Portugal.
Jorge               es_ES    # Hola, me llamo Jorge y soy una voz española.
Juan                es_MX    # Hola, me llamo Juan y soy una voz mexicana.
Kanya               th_TH    # สวัสดีค่ะ ดิฉันชื่อKanya
Karen               en_AU    # Hello, my name is Karen. I am an Australian-English voice.
Kyoko               ja_JP    # こんにちは、私の名前はKyokoです。日本語の音声をお届けします。
Laura               sk_SK    # Ahoj. Volám sa Laura . Som hlas v slovenskom jazyku.
Lekha               hi_IN    # नमस्कार, मेरा नाम लेखा है. मैं हिन्दी में बोलने वाली आवाज़ हूँ.
Luca                it_IT    # Salve, mi chiamo Luca e sono una voce italiana.
Luciana             pt_BR    # Olá, o meu nome é Luciana e a minha voz corresponde ao português que é falado no Brasil
Maged               ar_SA    # مرحبًا اسمي Maged. أنا عربي من السعودية.
Mariska             hu_HU    # Üdvözlöm! Mariska vagyok. Én vagyok a magyar hang.
Mei-Jia             zh_TW    # 您好，我叫美佳。我說國語。
Melina              el_GR    # Γεια σας, ονομάζομαι Melina. Είμαι μια ελληνική φωνή.
Milena              ru_RU    # Здравствуйте, меня зовут Milena. Я – русский голос системы.
Moira               en_IE    # Hello, my name is Moira. I am an Irish-English voice.
Monica              es_ES    # Hola, me llamo Monica y soy una voz española.
Nora                nb_NO    # Hei, jeg heter Nora. Jeg er en norsk stemme.
Paulina             es_MX    # Hola, me llamo Paulina y soy una voz mexicana.
Samantha            en_US    # Hello, my name is Samantha. I am an American-English voice.
Sara                da_DK    # Hej, jeg hedder Sara. Jeg er en dansk stemme.
Satu                fi_FI    # Hei, minun nimeni on Satu. Olen suomalainen ääni.
Sin-ji              zh_HK    # 您好，我叫 Sin-ji。我講廣東話。
Tessa               en_ZA    # Hello, my name is Tessa. I am a South African-English voice.
Thomas              fr_FR    # Bonjour, je m’appelle Thomas. Je suis une voix française.
Ting-Ting           zh_CN    # 您好，我叫Ting-Ting。我讲中文普通话。
Veena               en_IN    # Hello, my name is Veena. I am an Indian-English voice.
Victoria            en_US    # Isn't it nice to have a computer that will talk to you?
Xander              nl_NL    # Hallo, mijn naam is Xander. Ik ben een Nederlandse stem.
Yelda               tr_TR    # Merhaba, benim adım Yelda. Ben Türkçe bir sesim.
Yuna                ko_KR    # 안녕하세요. 제 이름은 Yuna입니다. 저는 한국어 음성입니다.
Yuri                ru_RU    # Здравствуйте, меня зовут Yuri. Я – русский голос системы.
Zosia               pl_PL    # Witaj. Mam na imię Zosia, jestem głosem kobiecym dla języka polskiego.
Zuzana              cs_CZ    # Dobrý den, jmenuji se Zuzana. Jsem český hlas.
";

$svinnards='';
$svarr=explode("\n", $sayvoices);

$svinnards='<option id=commopt value="">Optionally add commentary with Voice ...</option>';
for ($isv=0; $isv<sizeof($svarr); $isv++) {
     if (trim($svarr[$isv]) != '') {
      $svinnards.='<option value="' . explode(' ',$svarr[$isv])[0] . '">' . explode(' ',$svarr[$isv])[0] . ' ' . trim(str_replace(explode(' ',$svarr[$isv])[0],'',$svarr[$isv])) . '</option>';
     }
}

if (strpos($_SERVER['SERVER_NAME'], 'localhost') === false) { // if (strpos($_SERVER['SERVER_NAME'], 'rjmprogramming.com.au') !== false) {
  require "./prepend.php";
}

$hashvoice='';
if (isset($_GET['voice'])) {
   $hashvoice='#voice=' . $_GET['voice'];
} else if (isset($_POST['voice'])) {
   $hashvoice='#voice=' . $_POST['voice'];
}

echo "<html><head><meta charset='UTF-8'/><title>Message Board One Liners for " . $regarding . " ... </title><style> body { background-color: #f0f9f4;  } span:not(.sdatetime) { color: black; font-weight: bold; text-shadow:-0.5px 0.5px 0.5px #ff2d95; } textarea {  color: black; font-weight: bold; text-shadow:-0.5px 0.5px 0.5px #ff2d95;  } div { border-radius: 20px; padding: 5 5 5 5; border:1px dotted blue; box-shadow: 10px 5px 5px red; background-image: -o-linear-gradient(to left bottom, rgba(255, 255, 191, 0.2) 0%, rgba(255, 255, 223, 0.4) 30%, rgba(255, 255, 255, 0.6) 70%); background-image: -moz-linear-gradient(to left bottom, rgba(255, 255, 191, 0.2) 0%, rgba(255, 255, 223, 0.4) 30%, rgba(255, 255, 255, 0.6) 70%); background-image: -webkit-linear-gradient(to left bottom, rgba(255, 255, 191, 0.2) 0%, rgba(255, 255, 223, 0.4) 30%, rgba(255, 255, 255, 0.6) 70%); background-image: -ms-linear-gradient(to left bottom, rgba(255, 255, 191, 0.2) 0%, rgba(255, 255, 223, 0.4) 30%, rgba(255, 255, 255, 0.6) 70%); background-image: linear-gradient(to left bottom, rgba(255, 255, 191, 0.2) 0%, rgba(255, 255, 223, 0.4) 30%, rgba(255, 255, 255, 0.6) 70%); }  input { border-radius: 5px;  } textarea { border-radius: 5px;  }  .sdatetime { color: red !important;  } span[id^=span] { color: red !important;  }  </style><script type=text/javascript src='./talk_about_it.js?rand=" . rand(0,6756453) . "'></script><script type=text/javascript> var issayable='" . $issayable . "',origval='',hangon=false, hp='', betternick=''; function tempshow() { document.getElementById('msg').value=origval; if (origval != '') { origval=''; setTimeout(tempshow,5000);  } } function refresh() { if (document.getElementById('nickname').value != '') { betternick=document.getElementById('nickname').value; } else if (document.getElementById('nickname').outerHTML.indexOf(' data-nickname=') != -1) { betternick=document.getElementById('nickname').getAttribute('data-nickname');  } else { betternick='';  } document.getElementsByTagName('h1')[0].innerHTML+=(groupis == '' ? '' : ' for group ' + groupis); if (!hangon) { location.href=document.URL.split('?')[0].split('#')[0] + '?nickname=' + encodeURIComponent((betternick != '' ? betternick : '" . explode(' group is ',$regarding)[0] . "')) + (voicesuffix != '' ? voicesuffix : '') + (groupis != '' ? '&groupis=' + encodeURIComponent(groupis) : '') + (filteris != '' ? '&filteris=' + encodeURIComponent(filteris) : '') + (document.getElementById('localtz').value != '' ? '&localtz=' + encodeURIComponent(document.getElementById('localtz').value) : ''); }  } setTimeout(refresh, 30000); </script></head><body onload=\"document.getElementById('myta').innerHTML=subalt(document.getElementById('myta').innerHTML); document.getElementById('myta').scrollTop = document.getElementById('myta').scrollHeight;  document.getElementById('nickname').title=document.getElementById('nickname').title.replace('last 10 minutes',String.fromCharCode(32) + 'last 10 minutes').replace('^Fred*yes',String.fromCharCode(32) + '^Fred*yes').replace('red?r*k*yes$',String.fromCharCode(32) + 'red?r*k*yes$').replace('Frederick says ',String.fromCharCode(32) + 'Frederick says ').replace(' yes)',' yes' + String.fromCharCode(32) + ')');\"><h1>Message Board &#x1F4DD; One<sup><font size=1>++</font></sup> Liners ...</h1><h3>For " . ($regarding != '' ? ($regarding . '  &#x1F464;') : '') . "</h3><h4>RJM Programming - October, 2025</h4>" . $tahtml . "<br><br><form onsubmit=\"origval=document.getElementById('msg').value; document.getElementById('msg').value=crlftospacing(document.getElementById('msg').value);  document.getElementById('localdt').value=document.getElementById('localdt').value=('' + new Date()); setTimeout(tempshow, 2000); return true;\" method=POST id=pform action=\"./talk_about_it.php" . $hashvoice . "\"><input title='Name you will see on board above where a comma separated list like RJM[rmetcalfe15@gmail.com],RMet[rmetcalfe@rjmprogramming.com.au] would invite RMet to Message Board via that email address and flagging that rmetcalfe15@gmail.com would be sending the invitation, whereas a semicolon separated list describes a wildcard * and ? (as well as ^ start and $ end) savvy list of Message Board filter criteria, as well as criteria like for example (of matching with Frederick says at 30/10/2025 00:13 GMT ... yes) ... last 10 minutes ^Fred*yes red?r*k*yes\$' ondblclick='hp=prompt(this.title,this.title);' onkeydown='hangon=true;' onblur='this.value=inviteanalysis(this); setTimeout(function(){ hangon=false; }, 3000);' id=nickname name=nickname type=text " . (explode(' group is ',$regarding)[0] != '' ? (' data-nickname="' . explode(' group is ',$regarding)[0] . '" ') : '') . " value='" . explode(' group is ',$regarding)[0] . "' placeholder='" . $myip . "'></input>&nbsp;&#x1F464;&nbsp;says&nbsp;&#x270D;&#xFE0F;&nbsp;<textarea rows=1 title='Message to show on board above ... ~~ can be a line feed' style=height:30px;width:300px;vertical-align:bottom; onkeydown='hangon=true;' onblur='setTimeout(function(){ hangon=false; }, 3000);' id=msg name=msg data-type=text value='' placeholder='Your talk ...'></textarea><div style=display:none; id=dfilter></div><div style=display:none; id=dgrp></div>&nbsp;&nbsp;" . $grouptb . "<input type=hidden id=localtz name=localtz value=''></input><input type=hidden id=localdt name=localdt value=''></input><input style=background-color:lightgreen;height:30px;width:160px;color:black; type=submit value='Publish &#x2B06;&#xFE0F;'></input>&nbsp;<select style=display:none; onchange=commonoff(this); name=voice id=myinputvc value='" . $vcb . "'>" . $svinnards . "</select></form><iframe data-onerror=alert(564); onload=resproof(this); name=theproofif id=theproofif style=display:none; src='/About_Us.html'></iframe><textarea style=display:none; id=thewords value=''></textarea>&nbsp;<input type=hidden data-name=sayip id=sayip value='" . zserver_remote_addr() . "'></input><input type=hidden data-name=commentary id=myinputcb value=''></input></body></html>";

?>
