/**
  * $sum should be int
  * $to should be string
  */
 function balance_transfer($sum, $to)
 {
     if ($this->status != sCCC_PICTURE) {
         return ccERR_STATUS;
     }
     if (!is_int($sum)) {
         return ccERR_BAD_PARAMS;
     }
     if (!is_string($to)) {
         return ccERR_BAD_PARAMS;
     }
     if ($sum <= 0) {
         return ccERR_BAD_PARAMS;
     }
     $pack = new cc_packet();
     $pack->setVer(CC_PROTO_VER);
     $pack->setCmd(cmdCC_BALANCE_TRANSFER);
     $desc = new cc_balance_transfer_descr();
     $desc->setTo($to);
     $desc->setSum($sum);
     $desc->calcSize();
     $pack->setData($desc->pack());
     $pack->calcSize();
     if ($pack->packTo($this->s) === FALSE) {
         return ccERR_NET_ERROR;
     }
     if ($pack->unpackFrom($this->s) === FALSE) {
         return ccERR_NET_ERROR;
     }
     switch ($pack->getCmd()) {
         case cmdCC_OK:
             return ccERR_OK;
         default:
             // unknown error
             return ccERR_GENERAL;
     }
 }
 /**
  *
  */
 function picture_bad2($major_id, $minor_id)
 {
     $pack = new cc_packet();
     $pack->setVer(CC_PROTO_VER);
     $pack->setCmd(cmdCC_PICTUREFL);
     $desc = new cc_pict_descr();
     $desc->setTimeout(ptoDEFAULT);
     $desc->setType(ptUNSPECIFIED);
     $desc->setMajorID($major_id);
     $desc->setMinorID($minor_id);
     $desc->calcSize();
     $pack->setData($desc->pack());
     $pack->calcSize();
     if ($pack->packTo($this->s) === FALSE) {
         return ccERR_NET_ERROR;
     }
     return ccERR_NET_ERROR;
 }