<?
    
# Tools and Web Services.

    # (c) 2003 Morten Frederiksen
    # License: http://www.gnu.org/licenses/gpl

    
$path=$_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
    
$metadata=@file($path.'index.rdf');
    if (
$metadata)
        
$metadata=join('',$metadata);
    else
    {
        
$metadata='';
        
header('HTTP/1.1 404 Not Found');
    };
    
$xhtml='';

    
# Create XSLT parser.
    
$xslt=xslt_create();
    
xslt_set_error_handler($xslt,'xsltError');
    
$xslterror='';
    if (!(
$xhtml=@xslt_process($xslt,'arg:/_xml','arg:/_xsl',NULL,
            array(
'/_xsl'=>join('',@file('services-xhtml.xsl',1)),'/_xml'=>$metadata),
            array(
'path'=>$path))))
        
$xhtml='<h1>Error</h1><p>Unable to parse or transform metadata.</p><p>'.$xslterror.'</p>';

    if (!(
$metafoot=@xslt_process($xslt,'arg:/_xml','arg:/_xsl',NULL,
            array(
'/_xsl'=>join('',@file('metafoot.xsl',1)),'/_xml'=>$metadata))))
        
$metafoot='<p>Unable to parse metadata.</p><p>'.$xslterror.'</p>';
    if (!(
$metahead=@xslt_process($xslt,'arg:/_xml','arg:/_xsl',NULL,
            array(
'/_xsl'=>join('',@file('metahead.xsl',1)),'/_xml'=>$metadata))))
        
$metahead='<title>?</title>';

    
# Display page.
    
print('<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
'
.$metahead.'
</head>
<body>
  <div style="float: right; padding: 0.5em">
<script type="text/javascript"><!--
google_ad_client = "pub-2944687592158127";
google_ad_width = 160;
google_ad_height = 600;
google_ad_format = "160x600_as";
google_ad_type = "text";
google_ad_channel ="";
google_color_border = "80D080";
google_color_bg = "D0F0D0";
google_color_border = "80D080";
google_color_bg = "D0F0D0";
google_color_link = "0000CC";
google_color_url = "00A000";
google_color_text = "6F6F6F";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
  </div>
  <div style="padding: 1em">
'
.$xhtml.'
  </div>
'
.$metafoot.'
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-62237-5";
urchinTracker();
</script>
</body>
</html>'
);

    function
xsltError($x,$e,$l,$f)
    {
        global
$xslterror;
        
$xslterror='Sablotron XSLT transformation error';
        
reset($f);
        while(list(
$key,$val)=each($f))
        {
            if (
$key=='line')
                
$xslterror.=' on line '.$val;
            if (
$key=='msg')
                
$xslterror.=': <strong>'.$val.'</strong>';
        };
        
$xslterror.='.';
    };

?>