function _send_xmlrpc_($method_name, $args, $url, $debug = True)
 {
     list($uri, $hostpart) = $this->_split_url($url);
     if (!@is_array($args)) {
         $arr[] = CreateObject('phpgwapi.xmlrpcval', $args, 'string');
         $f = CreateObject('phpgwapi.xmlrpcmsg', $method_name, $arr, 'string');
     } else {
         while (list($key, $val) = @each($args)) {
             if (@is_array($val)) {
                 while (list($x, $y) = each($val)) {
                     $tmp[$x] = CreateObject('phpgwapi.xmlrpcval', $y, 'string');
                 }
                 $ele[$key] = CreateObject('phpgwapi.xmlrpcval', $tmp, 'struct');
             } else {
                 $ele[$key] = CreateObject('phpgwapi.xmlrpcval', $val, 'string');
             }
         }
         $arr[] = CreateObject('phpgwapi.xmlrpcval', $ele, 'struct');
         $f = CreateObject('phpgwapi.xmlrpcmsg', $method_name, $arr, 'struct');
     }
     $this->debug('<pre>' . htmlentities($f->serialize()) . '</pre>' . "\n", $debug);
     $c = CreateObject('phpgwapi.xmlrpc_client', $uri, $hostpart, 80);
     $c->setCredentials($this->sessionid, $this->kp3);
     //			_debug_array($c);
     $c->setDebug(0);
     $r = $c->send($f);
     if (!$r) {
         $this->debug('send failed');
     }
     $v = $r->value();
     if (!$r->faultCode()) {
         $this->debug('<hr>I got this value back<br><pre>' . htmlentities($r->serialize()) . '</pre><hr>', $debug);
         $this->result = phpgw_xmlrpc_decode($v);
     } else {
         $this->debug('Fault Code: ' . $r->faultCode() . ' Reason "' . $r->faultString() . '"<br>', $debug);
         $this->result = htmlentities($r->serialize());
     }
     return $this->result;
 }
function phpgw_xmlrpc_decode($xmlrpc_val)
{
    $kind = @$xmlrpc_val->kindOf();
    if ($kind == "scalar") {
        return $xmlrpc_val->scalarval();
    } elseif ($kind == "array") {
        $size = $xmlrpc_val->arraysize();
        $arr = array();
        for ($i = 0; $i < $size; $i++) {
            $arr[] = phpgw_xmlrpc_decode($xmlrpc_val->arraymem($i));
        }
        return $arr;
    } elseif ($kind == "struct") {
        $xmlrpc_val->structreset();
        $arr = array();
        while (list($key, $value) = $xmlrpc_val->structeach()) {
            $arr[$key] = phpgw_xmlrpc_decode($value);
        }
        return $arr;
    }
}