| 
<?
class array_to_js {
 var $js_arrays;
 function error ($message, $stop = true) {
 echo "<b>array_to_js</b> - FATAL ERROR: ".$message;
 if ($stop) exit;
 }
 function add_array($myarray, $outputvarname, $level = 0) {
 if (isset($this->js_arrays[$outputvarname]))
 $this->error('This Array has been added more than once: "'.$outputvarname.'"');
 for ($i=0; $i<$level; $i++) $pre .= '    ';
 $this->js_arrays[$outputvarname] .= $pre.$outputvarname.' = new Object();'."\n";
 foreach ($myarray as $key => $value) {
 if (!is_int($key))
 $key = '"'.addslashes($key).'"';
 if (is_array($value))
 $this->add_array($value, $outputvarname.'['.$key.']', $level+1);
 else {
 $this->js_arrays[$outputvarname] .= $pre.'    '.$outputvarname.'['.$key.']'.' = ';
 
 if (is_int($value) or is_float($value))
 $this->js_arrays[$outputvarname] .= $value;
 elseif (is_bool($value))
 $this->js_arrays[$outputvarname] .= $value ? "true" : "false";
 elseif (is_string($value))
 $this->js_arrays[$outputvarname] .= '"'.addslashes($value).'"';
 else
 $this->error('Unknown Datatype for "'.$outputvarname.'['.$key.']"');
 $this->js_arrays[$outputvarname] .= ";\n";
 }
 }
 }
 function output_all($scripttag = true) {
 if ($scripttag) $outputstring = '<script language="JavaScript" type="text/javascript">'."\n";
 foreach ($this->js_arrays as $array)
 $outputstring .= $array;
 if ($scripttag) $outputstring .= '</script>'."\n";
 
 return $outputstring;
 }
 }
 ?>
 |