/**
 * edit message
 *
 * @param $list_id
 * @param $message_id
 * @param $content
 * @param $subject
 * @return bool
 */
function cw_vertical_response_edit_message($list_id, $message_id, $content, $subject)
{
    global $config;
    $vertical_response_email = trim($config[vertical_response_addon_name]['vertical_response_email']);
    $vertical_response_password = trim($config[vertical_response_addon_name]['vertical_response_password']);
    $mid = $message_id;
    try {
        $vr = new SoapClient(vertical_response_wsdl, array('connection_timeout' => 5));
        $sid = $vr->login(array('username' => "{$vertical_response_email}", 'password' => "{$vertical_response_password}", 'session_duration_minutes' => vertical_response_ses_time));
        // check if email exist on VR
        $data = cw_vertical_response_get_message($list_id, $message_id);
        if (!isset($data['news_id'])) {
            $mid = 0;
        }
        if ($mid) {
            // edit message
            $vr->updateEmailContents(array('session_id' => $sid, 'email_id' => $mid, 'freeform_html' => $content, 'freeform_text' => trim($config['Company']['company_name']) . " message"));
        } else {
            // create a message
            $message = array('name' => "Email #" . cw_core_get_time(), 'email_type' => "canvas", 'from_label' => $config['Company']['company_name'], 'reply_to_email' => $config['Company']['site_administrator'], 'freeform_html' => $content, 'freeform_text' => trim($config['Company']['company_name']) . " message", 'subject' => $subject . " (#" . cw_core_get_time() . ")", 'hosted_email' => true);
            $mid = $vr->createEmail(array('session_id' => $sid, 'email' => $message));
            // attaches the list you made above to the campaign you just created
            $vr->setCampaignLists(array('session_id' => $sid, 'campaign_id' => $mid, 'list_ids' => array($list_id)));
        }
    } catch (SoapFault $exception) {
        // exit ('fault: "' . $exception->faultcode . '" - ' . $exception->faultstring . "\n");
        return false;
    }
    return $mid;
}