function eMember_aweber_new_signup_user($full_target_list_name, $fname, $lname, $email_to_subscribe)
{
    eMember_log_debug("Attempting to signup the user via AWeber API", true);
    $emember_config = Emember_Config::getInstance();
    $eMember_aweber_access_keys = $emember_config->getValue('eMember_aweber_access_keys');
    if (empty($eMember_aweber_access_keys['consumer_key'])) {
        eMember_log_debug("Missing AWeber access keys! You need to first make a conntect before you can use this API", false);
        return;
    }
    if (!class_exists('AWeberAPI')) {
        //TODO - change the class name to "eMember_AWeberAPI" to avoid conflict with others
        include_once 'lib/auto-responder/aweber_api/aweber_api.php';
        eMember_log_debug("AWeber API library inclusion succeeded.", true);
    } else {
        eMember_log_debug("AWeber API library is already included from another plugin.", true);
    }
    try {
        $aweber = new AWeberAPI($eMember_aweber_access_keys['consumer_key'], $eMember_aweber_access_keys['consumer_secret']);
        $account = $aweber->getAccount($eMember_aweber_access_keys['access_key'], $eMember_aweber_access_keys['access_secret']);
        //Get Aweber account
        $account_id = $account->id;
        $mylists = $account->lists;
    } catch (Exception $e) {
        eMember_log_debug($e->getMessage(), false);
        return;
    }
    eMember_log_debug("AWeber account retrieved. Account ID: " . $account_id, true);
    $target_list_name = str_replace("@aweber.com", "", $full_target_list_name);
    eMember_log_debug("Attempting to signup the user to the AWeber list: " . $target_list_name, true);
    $list_name_found = false;
    foreach ($mylists as $list) {
        if ($list->name == $target_list_name || $list->unique_list_id == $target_list_name) {
            $list_name_found = true;
            try {
                //Create a subscriber
                $params = array('email' => $email_to_subscribe, 'name' => $fname . ' ' . $lname);
                $subscribers = $list->subscribers;
                $new_subscriber = $subscribers->create($params);
                eMember_log_debug("User with email address " . $email_to_subscribe . " was added to the AWeber list: " . $target_list_name, true);
            } catch (Exception $exc) {
                eMember_log_debug("Failed to complete the AWeber signup! Error Details Below.", false);
                eMember_log_debug_array($exc, true);
            }
        }
    }
    if (!$list_name_found) {
        eMember_log_debug("Error! Could not find the AWeber list (" . $full_target_list_name . ") in your AWeber Account! Please double check your list name value for typo.", false);
    }
}
    eMember_log_debug("Clickbank IPN authenticity failed! This payment notification will not be processed!", false);
    exit;
}
$cb_ipn_data = array();
$cb_ipn_data['txn_type'] = $_POST['ctransaction'];
$cb_ipn_data['payer_email'] = $_POST['ccustemail'];
$cb_ipn_data['first_name'] = $_POST['ccustfirstname'];
$cb_ipn_data['last_name'] = $_POST['ccustlastname'];
$cb_ipn_data['address_street'] = $_POST['ccustaddr1'] . " " . $_POST['ccustaddr2'];
$cb_ipn_data['address_city'] = $_POST['ccustcity'];
$cb_ipn_data['address_state'] = $_POST['ccuststate'];
$cb_ipn_data['address_zip'] = $_POST['ccustzip'];
$cb_ipn_data['address_country'] = $_POST['ccustshippingcountry'];
$cb_ipn_data['txn_id'] = $_POST['ctransreceipt'];
$cb_ipn_data['custom'] = $_POST['cvendthru'];
eMember_log_debug_array($cb_ipn_data, true);
//------------ key value pair for the custom data --------------
$custom = $cb_ipn_data['custom'];
$delimiter = "&";
$customvariables = array();
$namevaluecombos = explode($delimiter, $custom);
foreach ($namevaluecombos as $keyval_unparsed) {
    $equalsignposition = strpos($keyval_unparsed, '=');
    if ($equalsignposition === false) {
        $customvariables[$keyval_unparsed] = '';
        continue;
    }
    $key = substr($keyval_unparsed, 0, $equalsignposition);
    $value = substr($keyval_unparsed, $equalsignposition + 1);
    $customvariables[$key] = $value;
}