<?php

// Tested on PHP 5.2, 5.3

// This snippet (and some of the curl code) due to the Facebook SDK.
if (!function_exists('curl_init')) {
  throw new Exception('Stripe needs the CURL PHP extension.');
}
if (!function_exists('json_decode')) {
  throw new Exception('Stripe needs the JSON PHP extension.');
}
if (!function_exists('mb_detect_encoding')) {
  throw new Exception('Stripe needs the Multibyte String PHP extension.');
}

// Stripe singleton
require(dirname(__FILE__) . '/api/Stripe.php');

// Utilities
require(dirname(__FILE__) . '/api/Util/RequestOptions.php');
require(dirname(__FILE__) . '/api/Util/Set.php');
require(dirname(__FILE__) . '/api/Util/Util.php');

// Errors
require(dirname(__FILE__) . '/api/Error/Base.php');
require(dirname(__FILE__) . '/api/Error/Api.php');
require(dirname(__FILE__) . '/api/Error/ApiConnection.php');
require(dirname(__FILE__) . '/api/Error/Authentication.php');
require(dirname(__FILE__) . '/api/Error/Card.php');
require(dirname(__FILE__) . '/api/Error/InvalidRequest.php');
require(dirname(__FILE__) . '/api/Error/RateLimit.php');

// Plumbing
require(dirname(__FILE__) . '/api/Object.php');
require(dirname(__FILE__) . '/api/ApiRequestor.php');
require(dirname(__FILE__) . '/api/ApiResource.php');
require(dirname(__FILE__) . '/api/SingletonApiResource.php');
require(dirname(__FILE__) . '/api/AttachedObject.php');

// Stripe API Resources
require(dirname(__FILE__) . '/api/Account.php');
require(dirname(__FILE__) . '/api/ApplicationFee.php');
require(dirname(__FILE__) . '/api/ApplicationFeeRefund.php');
require(dirname(__FILE__) . '/api/Balance.php');
require(dirname(__FILE__) . '/api/BalanceTransaction.php');
require(dirname(__FILE__) . '/api/BitcoinReceiver.php');
require(dirname(__FILE__) . '/api/BitcoinTransaction.php');
require(dirname(__FILE__) . '/api/Card.php');
require(dirname(__FILE__) . '/api/Charge.php');
require(dirname(__FILE__) . '/api/Collection.php');
require(dirname(__FILE__) . '/api/Coupon.php');
require(dirname(__FILE__) . '/api/Customer.php');
require(dirname(__FILE__) . '/api/Event.php');
require(dirname(__FILE__) . '/api/FileUpload.php');
require(dirname(__FILE__) . '/api/Invoice.php');
require(dirname(__FILE__) . '/api/InvoiceItem.php');
require(dirname(__FILE__) . '/api/Plan.php');
require(dirname(__FILE__) . '/api/Recipient.php');
require(dirname(__FILE__) . '/api/Refund.php');
require(dirname(__FILE__) . '/api/Subscription.php');
require(dirname(__FILE__) . '/api/Token.php');
require(dirname(__FILE__) . '/api/Transfer.php');
