<?php
function plugin_egold_variables() {
    /* Specification
          itemkey     - used to identify variable in your other functions
          type        - text,textarea,yesno,password
          description - description of the variable, displayed in ClientExec
    */

    $variables = array (
               "Plugin Name" => array (
                                    "type"=>"hidden",
                                    "description"=>"How CE sees this plugin (not to be confused with the Signup Name)",
                                    "value"=>"e-gold"
                                   ),
               "In Signup" => array (
                                    "type"=>"yesno",
                                    "description"=>"Select YES if you want to include this payment processor in the signup script.",
                                    "value"=>"0"
                                   ),
               "User ID" => array (
                                    "type"=>"text",
                                    "description"=>"ID used to identify you to E-Gold.<br>NOTE: This ID is required if you have selected E-Gold as a payment gateway for any of your clients.",
                                    "value"=>""
                                   ),
               "Alternate Passphrase" => array (
                                    "type"=>"text",
                                    "description"=>"Password used to verify valid transactions from E-Gold Callbacks.<br>NOTE: This password has to match the value set in the E-Gold Account Information.",
                                    "value"=>""
                                   ),
               "Visa" => array (
                                    "type"=>"yesno",
                                    "description"=>"Select YES to allow Visa card acceptance with this plugin.  No will prevent this card type.",
                                    "value"=>"0"
                                   ),
               "MasterCard" => array (
                                    "type"=>"yesno",
                                    "description"=>"Select YES to allow MasterCard acceptance with this plugin. No will prevent this card type.",
                                    "value"=>"0"
                                   ),
               "AmericanExpress" => array (
                                    "type"=>"yesno",
                                    "description"=>"Select YES to allow American Express card acceptance with this plugin. No will prevent this card type.",
                                    "value"=>"0"
                                   ),
               "Discover" => array (
                                    "type"=>"yesno",
                                    "description"=>"Select YES to allow Discover card acceptance with this plugin. No will prevent this card type.",
                                    "value"=>"0"
                                   ),
               "Invoice After Signup" => array (
                                    "type"=>"yesno",
                                    "description"=>"Select YES if you want an invoice sent to the customer after signup is complete.",
                                    "value"=>"1"
                                   ),
               "Signup Name" => array (
                                    "type"=>"text",
                                    "description"=>"Select the name to display in the signup process for this payment type. Example: eCheck or Credit Card.",
                                    "value"=>"egold"
                                   ),
               "Dummy Plugin" => array (
                                    "type"=>"hidden",
                                    "description"=>"1 = Only used to specify a billing type for a customer. 0 = full fledged plugin requiring complete functions",
                                    "value"=>"0"
                                   ),
               "Accept CC Number" => array (
                                       "type"=>"hidden",
                                    "description"=>"Selecting YES allows the entering of CC numbers when using this plugin type. No will prevent entering of cc information",
                                    "value"=>"0"
                                   ),
               "Auto Payment" => array (
                                    "type"=>"hidden",
                                    "description"=>"No description",
                                    "value"=>"0"
                                   ),
               "30 Day Billing" => array (
                                    "type"=>"hidden",
                                    "description"=>"Select YES if you want ClientExec to treat monthly billing by 30 day intervals.  If you select NO then the same day will be used to determine intervals.",
                                    "value"=>"0"
                                   )
    );
    return $variables;
}

function get_egold_currency($currency){
   $CURRENCY = array('USD' => 1,
                     'CAD' => 2,
                     'GBP' => 44,
                     'AUD' => 61,
                     'JPY' => 81,
                     'EUR' => 85);

   return $CURRENCY[$currency];
}

function plugin_egold_singlepayment($params) {
    //Function needs to build the url to the payment processor, then redirect
    //Plugin variables can be accesses via $params["plugin_[pluginname]_[variable]"] (ex. $params["plugin_paypal_UserID"])
    $stat_url = substr($params['clientExecURL'],-1,1) == "//" ? $params['clientExecURL']."plugins/gateways/egold/callback.php" : $params['clientExecURL']."/plugins/gateways/egold/callback.php";

    $strURL  = "https://www.e-gold.com/sci_asp/payments.asp?";
    $strURL .= "PAYEE_ACCOUNT=".$params["plugin_egold_User ID"];
    $strURL .= "&PAYEE_NAME=".$params["companyName"];
    $strURL .= "&PAYMENT_ID=".$params['invoiceNumber'];
    $strURL .= "&PAYMENT_AMOUNT=".sprintf("%.2f", $params["invoiceTotal"]);
    $strURL .= "&STATUS_URL=".$stat_url;
    $strURL .= "&PAYMENT_URL=".$params["clientExecURL"];
    $strURL .= "&NOPAYMENT_URL=".$params["clientExecURL"];
    $strURL .= "&PAYMENT_URL_METHOD=LINK";
    $strURL .= "&NOPAYMENT_URL_METHOD=LINK";
    $strURL .= "&PAYMENT_UNITS=".get_egold_currency($params["currencytype"]);
    $strURL .= "&PAYMENT_METAL_ID=1";
    $strURL .= "&BAGGAGE_FIELDS=";
    $strURL .= "&SUGGESTED_MEMO=Payment Invoice ".$params['invoiceNumber'];
    header("Location: $strURL");
    exit;
}
?>
