Source of reTest.php
<?
require("Sajax_json.php");

sajax_init();
sajax_export("reTest");
sajax_handle_client_request();

function
reTest() {
    
ob_start();
    
?>
    <script language="javascript">
    <!-- // hide from whatever
        function checkPhoneNumber(phoneNo) {
            /*
             * manually add the additional slash
             * so... \( becomes \\(
             */
            var phoneRE = /^\\(\\d\\d\\d\\) \\d\\d\\d-\\d\\d\\d\\d$/;
            alert('phoneRE: '+phoneRE+' vs. '+phoneNo+'');
            if(phoneNo.match(phoneRE)) {
                alert("The phone number entered is valid!");
                return true;
            } else {
                alert("The phone number entered is invalid!");
                return false;
            }
        }
    // -->
    </script>
    
    Phone Number: <input type="text" id="pn">
    <button onclick="checkPhoneNumber(getElem('pn').value)">Check</button>
    <?
    $html
= ob_get_contents();
    
ob_end_clean();
    
    return
setData('testDiv',$html);
}

function
fix_html($html) {
    
$patterns = array(
        
"/\n/",
        
"/\r/"
        
    
);
    
$replace = array(
        
"\\n",
        
"\\r"
    
    
);
    
$fix = addslashes($html);
    
$fix = preg_replace($patterns,$replace,$fix);
    return
$fix;    
}

function
setData($div,$data='',$error='') {
    
$html = "sethtml('{$div}','" . fix_html($data) . "');";
    return
$html;    
}
?>
<html>
<head>
    <title>Testing something</title>
    <script language="javascript">
    <!-- // hide from older browsers
    <? sajax_show_javascript() ?>
    

    function getElem(myId) {
        return document.getElementById(myId);
    }
    
    function sethtml(div,content) {
     var search = content;
     var script;
     
     var is_singleq = 0; var singleq = "'";
     var is_doubleq = 0; var doubleq = '"';
     var is_escaped = 0; var escap = "\\";
     var layer = 0;
           
     while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/)) {
        search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length);
        if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break;
        block = search.substr(0, search.indexOf(RegExp.$1));
        search = search.substring(block.length + RegExp.$1.length);
        
        while(func = block.match(/(function(.+?)\((.*?)\)\s*\{)/)) {
          eval(block.substr(0,block.indexOf(RegExp.$1)));
           // for evaluating non functions
           
           block = block.substr(block.indexOf(RegExp.$1) + RegExp.$1.length);
           name = RegExp.$2;
           param = RegExp.$3;
           
           is_singleq = 0;
           is_doubleq = 0;
           is_escaped = 0;
           layer = 0;
           
           
           for(i=0;i<block.length;i++) {
              c = block.substr(i,1);
              
              if ((is_singleq || is_doubleq) && is_escaped) {
                 is_escaped = 0;
              } else if (!is_doubleq && (c==singleq)) {
                 is_singleq = !is_singleq;
              } else if (!is_singleq && (c==doubleq)) {
                 is_doubleq = !is_doubleq;
              } else if ((is_singleq || is_doubleq) && (c==escap)) {
                 is_escaped = 1;
              } else if ( c=="{") {
                 layer++;
              } else if ( c=="}") {
                 if ( layer==0 ) {
                    break;
                 }
                 layer--;
              }
           }
           
           code = block.substr(0,i-1);
           block = block.substr(i +1);
           
           
           code = code.replace(/\n/g, '\\n');
           code = code.replace(/\r/g, '\\r');
           code = code.replace(/'/g,"\\'");
           code = code.replace(/"/g,'\\"');
           
           
           eval(name + " = new Function('"+param+"','"+code+"');");
        }
        eval(block); // for evaluating non functions
     }
     document.getElementById(div).innerHTML=content;
  }
  
  function do_cb(result) {
      eval(result);
  }
  // -->
    </script>
</head>

<body>
    <button onclick="x_reTest(do_cb);">Do Test</button>
    <div id='testDiv'></div>
</body>
</html>