コード例 #1
0
ファイル: create_template.php プロジェクト: ericmuyser/web2f
\t\t<a href="{$this->Site->URL}/admin/" title="{$this->Lang['title_admin']}">{$this->Lang['title_admin']}</a> » 
\t\t<a href="{$this->Site->URL}/admin/manage/" title="{$this->Lang['title_manage']}">{$this->Lang['title_manage']}</a> » 
\t\t<a href="{$this->Site->URL}/admin/manage/modules/" title="{$this->Lang['title_modules']}">{$this->Lang['title_modules']}</a> » 
\t\t<a href="{$this->Site->URL}/admin/manage/modules/configure/Mailer/" title="Configure Module">Configure Module</a> » 
\t\t<a href="{$this->Site->URL}/admin/manage/modules/configure/Mailer/templates/" title="Templates">Templates</a> » 
\t\t<a href="{$this->Page->RequestURL}" title="Create Template">Create Template</a>
\t</div>
</div>
\t
EOH;
if ($this->Request['submit']) {
    $query = array();
    $query[] = "`template_name` = '" . $this->Request['template_name'] . "'";
    $query[] = "`template_title` = '" . $this->Request['template_title'] . "'";
    $query[] = "`template_content` = '" . mysql_real_escape_string(rawurldecode($this->Request['template_content'])) . "'";
    $query = "INSERT INTO `{$this->DB->Prefix}mailer_templates` \n\t\t\tSET " . fix_query(implode(',', $query));
    if (!$this->DB->Query($query, "master", false)) {
        $this->Session['message'] = 1;
    } else {
        $this->Session['message'] = 2;
    }
    $this->Redirect($this->Page->RequestURL);
}
switch ($this->Session['message']) {
    case 1:
        ?>

<div class="error">Create failed.</div>

<?php 
        break;
コード例 #2
0
ファイル: eCommerce.php プロジェクト: ericmuyser/web2f
    public function __Cart($action, $type = false)
    {
        $settings = $this->LoadSetting("ecommerce");
        if (!$settings['order_email']) {
            $settings['order_email'] = $this->Site['email'];
        }
        if ($settings['enable_https']) {
            $this->Site->EnableHTTPS();
        }
        switch (strtolower($action)) {
            case "success":
                $this->Page->Content = <<<EOH

Thank you very much for your purchase at {$this->Site->Title}. We hope you enjoy your purchase.
<br /><br />
Have a nice day!
<br /><br />
<a href="{$this->Site->URL}/"><< Return to {$this->Site->Title}</a>

EOH;
                break;
            case "cancel":
                if ($settings['require_authorization'] && !$this->User->Validated) {
                    $this->Redirect($this->Site->URL . "/account/login/");
                }
                $query = "UPDATE `{$this->DB->Prefix}ecommerce_orders` \n\t\t\t\t\t\tSET `order_status` 'Cancelled' \n\t\t\t\t\t\tWHERE `order_id` = " . $this->Session['order_id'];
                $this->DB->Query($query);
                unset($_SESSION['order_id']);
                unset($_SESSION['token']);
                unset($_SESSION['amount']);
                unset($_SESSION['paymentType']);
                unset($_SESSION['currCodeType']);
                unset($_SESSION['payer_id']);
                unset($_SESSION['SERVER_NAME']);
                unset($_SESSION['type']);
                unset($_SESSION['shipping_first_name']);
                unset($_SESSION['shipping_last_name']);
                unset($_SESSION['shipping_street_1']);
                unset($_SESSION['shipping_street_2']);
                unset($_SESSION['shipping_city']);
                unset($_SESSION['shipping_state']);
                unset($_SESSION['shipping_postal_code']);
                unset($_SESSION['shipping_phone_number']);
                unset($_SESSION['shipping_country']);
                unset($_SESSION['billing_first_name']);
                unset($_SESSION['billing_last_name']);
                unset($_SESSION['billing_street_1']);
                unset($_SESSION['billing_street_2']);
                unset($_SESSION['billing_city']);
                unset($_SESSION['billing_state']);
                unset($_SESSION['billing_postal_code']);
                unset($_SESSION['billing_phone_number']);
                unset($_SESSION['billing_country']);
                unset($_SESSION['user_id']);
                $this->Page->Content = <<<EOH

Your checkout has been cancelled.
<br /><br />
<a href="{$this->Site->URL}/"><< Return to {$this->Site->Title}</a>

EOH;
                break;
            case "error":
                if ($settings['require_authorization'] && !$this->User->Validated) {
                    $this->Redirect($this->Site->URL . "/account/login/");
                }
                $resArray = $_SESSION['reshash'];
                $this->Page->Content .= <<<EOH

<strong>We're sorry, there's been an error. Please try again.</strong>
<br />
EOH;
                if ($settings['paypal_api_debug']) {
                    $this->Page->Content .= <<<EOH

<table cellspacing="5" cellpadding="0" border="0">

EOH;
                    //it will print if any URL errors
                    if (isset($_SESSION['curl_error_no'])) {
                        $errorCode = $_SESSION['curl_error_no'];
                        $errorMessage = $_SESSION['curl_error_msg'];
                        session_unset();
                        $this->Page->Content .= <<<EOH

<tr>
\t\t<td>Error Number:</td>
\t\t<td>{$errorCode}</td>
\t</tr>
\t<tr>
\t\t<td>Error Message:</td>
\t\t<td>{$errorMessage}</td>
\t</tr>
\t
\t</center>
\t</table>
EOH;
                    } else {
                        /* If there is no URL Errors, Construct the HTML page with 
                           Response Error parameters.   
                           */
                        $this->Page->Content .= <<<EOH

\t\t<td>Ack:</td>
\t\t<td>{$resArray['ACK']}</td>
\t</tr>
\t<tr>
\t\t<td>Correlation ID:</td>
\t\t<td>{$resArray['CORRELATIONID']}</td>
\t</tr>
\t<tr>
\t\t<td>Version:</td>
\t\t<td>{$resArray['VERSION']}</td>
\t</tr>
EOH;
                        $count = 0;
                        while (isset($resArray["L_SHORTMESSAGE" . $count])) {
                            $errorCode = $resArray["L_ERRORCODE" . $count];
                            $shortMessage = $resArray["L_SHORTMESSAGE" . $count];
                            $longMessage = $resArray["L_LONGMESSAGE" . $count];
                            $count = $count + 1;
                            $this->Page->Content .= <<<EOH

\t<tr>
\t\t<td>Error Number:</td>
\t\t<td>{$errorCode}</td>
\t</tr>
\t<tr>
\t\t<td>Short Message:</td>
\t\t<td>{$shortMessage}</td>
\t</tr>
\t<tr>
\t\t<td>Long Message:</td>
\t\t<td>{$longMessage}</td>
\t</tr>
EOH;
                        }
                    }
                    $this->Page->Content .= <<<EOH

</center>
\t</table>
\t
EOH;
                }
                break;
            case "preview":
                if ($settings['require_authorization'] && !$this->User->Validated) {
                    $this->Redirect($this->Site->URL . "/account/login/");
                }
                $this->Session->Merge($_REQUEST);
                if ($this->Session['same_information'] == "yes") {
                    $this->Session['billing_first_name'] = $this->Session['shipping_first_name'];
                    $this->Session['billing_last_name'] = $this->Session['shipping_last_name'];
                    $this->Session['billing_street_1'] = $this->Session['shipping_street_1'];
                    $this->Session['billing_street_2'] = $this->Session['shipping_street_2'];
                    $this->Session['billing_city'] = $this->Session['shipping_city'];
                    $this->Session['billing_state'] = $this->Session['shipping_state'];
                    $this->Session['billing_postal_code'] = $this->Session['shipping_postal_code'];
                    $this->Session['billing_phone_number'] = $this->Session['shipping_phone_number'];
                    $this->Session['billing_fax_number'] = $this->Session['shipping_fax_number'];
                    $this->Session['billing_country'] = $this->Session['shipping_country'];
                }
                $type = $this->Session['type'];
                $items = explode(',', $this->Session->Cart);
                $count = count($items);
                $s = $count > 1 ? 's' : '';
                $contents = array();
                foreach ($items as $item) {
                    $contents[$item] = isset($contents[$item]) ? ++$contents[$item] : 1;
                }
                $purchase_total = 0;
                $purchases = '';
                $shipping_total = $settings['base_shipping'];
                foreach ($contents as $id => $quantity) {
                    $query = "SELECT `product_id`, `product_title`, `product_shipping_price`, `product_description`, `product_price`\n\t\t\t\t\t\t\tFROM `{$this->DB->Prefix}ecommerce_products` \n\t\t\t\t\t\t\tWHERE `product_id` = {$id} \n\t\t\t\t\t\t\tLIMIT 1";
                    if ($product = $this->DB->FetchRow($query, "slave")) {
                        $purchases .= <<<EOH

{$quantity}x <a href="{$this->Site->URL}/shop/product/{$product['product_id']}/" target="_blank">{$product['product_title']}</a> (\${$product['product_price']})
<br />

EOH;
                        if (isset($product['product_price'])) {
                            $purchase_total += $product['product_price'] * $quantity;
                        }
                        if (isset($product['product_shipping_price'])) {
                            $shipping_total += $product['product_shipping_price'] * $quantity;
                        }
                    }
                }
                $purchase_total = round($purchase_total, 2);
                $shipping_total = round($shipping_total, 2);
                if ($settings['sales_tax_state'] == $this->Session['shipping_state']) {
                    $tax_total = round($purchase_total * ($settings['sales_tax_percentage'] / 100), 2);
                } else {
                    $tax_total = 0;
                }
                $this->Session['amount'] = round($purchase_total + $shipping_total + $tax_total, 2);
                if ($type == "pp_basic") {
                    $query = array();
                    $query[] = "`order_amount` = '" . $this->Session['amount'] . "'";
                    if ($this->Session['order_products']) {
                        $query[] = "`order_products` = '" . rawurldecode($this->Session['order_products']) . "'";
                    }
                    //if($currCodeType) $query[] = "`order_currency` = '" . $currCodeType . "'";
                    $query[] = "`shipping_first_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_first_name'])) . "'";
                    $query[] = "`shipping_last_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_last_name'])) . "'";
                    $query[] = "`shipping_street_1` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_street_1'])) . "'";
                    $query[] = "`shipping_street_2` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_street_2'])) . "'";
                    $query[] = "`shipping_city` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_city'])) . "'";
                    $query[] = "`shipping_state` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_state'])) . "'";
                    $query[] = "`shipping_postal_code` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_postal_code'])) . "'";
                    $query[] = "`shipping_phone_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_phone_number'])) . "'";
                    $query[] = "`shipping_fax_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_fax_number'])) . "'";
                    $query[] = "`shipping_country` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_country'])) . "'";
                    $query[] = "`billing_first_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_first_name'])) . "'";
                    $query[] = "`billing_last_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_last_name'])) . "'";
                    $query[] = "`billing_street_1` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_street_1'])) . "'";
                    $query[] = "`billing_street_2` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_street_2'])) . "'";
                    $query[] = "`billing_city` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_city'])) . "'";
                    $query[] = "`billing_state` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_state'])) . "'";
                    $query[] = "`billing_postal_code` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_postal_code'])) . "'";
                    $query[] = "`billing_phone_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_phone_number'])) . "'";
                    $query[] = "`billing_fax_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_fax_number'])) . "'";
                    $query[] = "`billing_country` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_country'])) . "'";
                    if ($this->User['id']) {
                        $query[] = "`user_id` = '" . $this->User['id'] . "'";
                    }
                    if ($this->Session->Cart) {
                        $query[] = "`order_products` = '" . $this->Session->Cart . "'";
                    }
                    $query[] = "`order_status` = 'Pending'";
                    $query[] = "`order_type` = 'PayPal Basic'";
                    $query[] = "`order_date` = FROM_UNIXTIME(" . time() . ")";
                    $query[] = "`order_notes` = '" . mysql_real_escape_string(rawurldecode($this->Session['order_notes'])) . "'";
                    $query = "INSERT INTO `{$this->DB->Prefix}ecommerce_orders` \n\t\t\t\t\t\t\t\tSET " . fix_query(implode(',', $query));
                    $this->DB->Query($query);
                    $order_id = mysql_insert_id();
                    $this->Session['order_id'] = $order_id;
                }
                $this->Page->Content .= <<<EOH

<center>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/information/">Information</a></strong>
\t</div>
\t<div class="style1 active" style="float: left;">
\t\t<strong>Preview</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Payment</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Review</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Complete</strong>
\t</div>
\t<div style="clear: both"></div>
</center>
<br /><br />
<strong>Purchases:</strong>  \${$purchase_total} USD
<br/>
<strong>Shipping:</strong> \${$shipping_total} USD
<br/>
<strong>Tax:</strong> \${$tax_total} USD
<br/>
<strong>Total:</strong> \${$this->Session['amount']} USD
<br /><br /><br />

EOH;
                $this->Page->Content .= <<<EOH

<center>
<form action="{$this->Site->URL}/shop/cart/payment/" method="post">
\t<input type="submit" name="submit" value="Continue" class="submit" />
</form>
</center>

EOH;
                break;
            case "review":
                if ($settings['require_authorization'] && !$this->User->Validated) {
                    $this->Redirect($this->Site->URL . "/account/login/");
                }
                $items = explode(',', $this->Session->Cart);
                $count = count($items);
                $s = $count > 1 ? 's' : '';
                $contents = array();
                foreach ($items as $item) {
                    $contents[$item] = isset($contents[$item]) ? ++$contents[$item] : 1;
                }
                $purchases = '';
                foreach ($contents as $id => $quantity) {
                    $query = "SELECT `product_pin`, `product_id`, `product_title`, `product_description`, `product_price`\n\t\t\t\t\t\t\tFROM `{$this->DB->Prefix}ecommerce_products` \n\t\t\t\t\t\t\tWHERE `product_id` = {$id} LIMIT 1";
                    if ($product = $this->DB->FetchRow($query, "slave")) {
                        $purchases .= <<<EOH

{$quantity}x <a href="{$this->Site->URL}/shop/product/{$product['product_id']}/" target="_blank">{$product['product_title']} (#{$product['product_pin']})</a> (\${$product['product_price']})
<br />

EOH;
                    }
                }
                $this->Page->Content .= <<<EOH

<center>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/information/">Information</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/preview/">Preview</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/payment/">Payment</a></strong>
\t</div>
\t<div class="style1 active" style="float: left;">
\t\t<strong>Review</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Complete</strong>
\t</div>
\t<div style="clear: both"></div>
</center>
<br /><br />
<center>
<strong>
\tBefore continuing, please confirm your order
\t<br />
\tand information are correct.
\t<br />
\tThank you for your patience.
</strong>
</center>
<br /><br /><br />

EOH;
                $type = $this->Session['type'];
                if ($type == "pp_express") {
                    $this->Page->Content .= <<<EOH

<h2>Amount: \${$this->Session['amount']} USD</h2>
<br /><br /><br />
<h2>Purchases</h2>
<br />
{$purchases}
<br /><br /><br />
<h2>Payment Information</h2>
<br />
<strong>Payment Method:</strong> PayPal
<br /><br /><br />
<h2>Billing Information</h2>
<br />
<strong>First Name:</strong> {$this->Session['billing_first_name']}
<br />
<strong>Last Name:</strong> {$this->Session['billing_last_name']}
<br />
<strong>Country:</strong> {$this->Session['billing_country']}
<br />
<strong>State:</strong> {$this->Session['billing_state']}
<br />
<strong>City:</strong> {$this->Session['billing_city']}
<br />
<strong>Street Address 1:</strong> {$this->Session['billing_street_1']}
<br />
<strong>Street Address 2:</strong> {$this->Session['billing_street_2']}
<br />
<strong>Postal Code:</strong> {$this->Session['billing_postal_code']}
<br />
<strong>Phone Number:</strong> {$this->Session['billing_phone_number']}
<br />
<strong>Fax Number:</strong> {$this->Session['billing_fax_number']}
<br /><br /><br />
<h2>Shipping Information</h2>
<br />
<strong>First Name:</strong> {$this->Session['shipping_first_name']}
<br />
<strong>Last Name:</strong> {$this->Session['shipping_last_name']}
<br />
<strong>Country:</strong> {$this->Session['shipping_country']}
<br />
<strong>State:</strong> {$this->Session['shipping_state']}
<br />
<strong>City:</strong> {$this->Session['shipping_city']}
<br />
<strong>Street Address 1:</strong> {$this->Session['shipping_street_1']}
<br />
<strong>Street Address 2:</strong> {$this->Session['shipping_street_2']}
<br />
<strong>Postal Code:</strong> {$this->Session['shipping_postal_code']}
<br />
<strong>Phone Number:</strong> {$this->Session['shipping_phone_number']}
<br />
<strong>Fax Number:</strong> {$this->Session['shipping_fax_number']}
<br /><br /><br />
<h2>Order Notes</h2>
<br />
{$this->Session['order_notes']}
<br /><br /><br />
<center>
<form action="{$this->Site->URL}/shop/cart/complete/" method="post">
\t<input type="submit" value="Continue" class="submit" />
</form>
</center>
<br /><br /><br />

EOH;
                } else {
                    if ($type == "pp_cc") {
                        $this->Session->Merge($_REQUEST);
                        $creditCardNumber = "xxxx-xxxx-xxxx-" . substr($this->Session['creditCardNumber'], 12, 16);
                        $this->Page->Content .= <<<EOH

<h2>Amount: \${$this->Session['amount']} USD</h2>
<br /><br /><br />
<h2>Purchases</h2>
<br />
{$purchases}
<br /><br /><br />
<h2>Payment Information</h2>
<br />
<strong>Payment Method:</strong> Credit Card
<br />
<strong>First Name:</strong> {$this->Session['user_first_name']}
<br />
<strong>Last Name:</strong> {$this->Session['user_last_name']}
<br />
<strong>Card Type:</strong> {$this->Session['creditCardType']}
<br />
<strong>Card Number:</strong> {$creditCardNumber}
<br />
<strong>Expiration Date:</strong> {$this->Session['expDateMonth']}/{$this->Session['expDateYear']}
<br />
<strong>Card Verification Number:</strong> {$this->Session['cvv2Number']}
<br />
<strong>Country:</strong> {$this->Session['user_country']}
<br />
<strong>State:</strong> {$this->Session['user_state']}
<br />
<strong>City:</strong> {$this->Session['user_city']}
<br />
<strong>Street Address 1:</strong> {$this->Session['user_street_1']}
<br />
<strong>Street Address 2:</strong> {$this->Session['user_street_2']}
<br />
<strong>Postal Code:</strong> {$this->Session['user_postal_code']}
<br /><br /><br />
<h2>Billing Information</h2>
<br />
<strong>First Name:</strong> {$this->Session['billing_first_name']}
<br />
<strong>Last Name:</strong> {$this->Session['billing_last_name']}
<br />
<strong>Country:</strong> {$this->Session['billing_country']}
<br />
<strong>State:</strong> {$this->Session['billing_state']}
<br />
<strong>City:</strong> {$this->Session['billing_city']}
<br />
<strong>Street Address 1:</strong> {$this->Session['billing_street_1']}
<br />
<strong>Street Address 2:</strong> {$this->Session['billing_street_2']}
<br />
<strong>Postal Code:</strong> {$this->Session['billing_postal_code']}
<br />
<strong>Phone Number:</strong> {$this->Session['billing_phone_number']}
<br />
<strong>Fax Number:</strong> {$this->Session['billing_fax_number']}
<br /><br /><br />
<h2>Shipping Information</h2>
<br />
<strong>First Name:</strong> {$this->Session['shipping_first_name']}
<br />
<strong>Last Name:</strong> {$this->Session['shipping_last_name']}
<br />
<strong>Country:</strong> {$this->Session['shipping_country']}
<br />
<strong>State:</strong> {$this->Session['shipping_state']}
<br />
<strong>City:</strong> {$this->Session['shipping_city']}
<br />
<strong>Street Address 1:</strong> {$this->Session['shipping_street_1']}
<br />
<strong>Street Address 2:</strong> {$this->Session['shipping_street_2']}
<br />
<strong>Postal Code:</strong> {$this->Session['shipping_postal_code']}
<br />
<strong>Phone Number:</strong> {$this->Session['shipping_phone_number']}
<br />
<strong>Fax Number:</strong> {$this->Session['shipping_fax_number']}
<br /><br /><br />
<h2>Order Notes</h2>
<br />
{$this->Session['order_notes']}
<br /><br /><br />
<center>
<form action="{$this->Site->URL}/shop/cart/complete/" method="post">
\t<input type="submit" value="Continue" class="submit" />
</form>
</center>
<br /><br /><br />

EOH;
                    } else {
                        if ($type == "pp_basic") {
                            $this->Page->Content .= <<<EOH

<h2>Amount: \${$this->Session['amount']} USD</h2>
<br /><br /><br />
<h2>Purchases</h2>
<br />
{$purchases}
<br /><br /><br />
<h2>Payment Information</h2>
<br />
<strong>Payment Method:</strong> PayPal
<br /><br /><br />
<h2>Billing Information</h2>
<br />
<strong>First Name:</strong> {$this->Session['billing_first_name']}
<br />
<strong>Last Name:</strong> {$this->Session['billing_last_name']}
<br />
<strong>Country:</strong> {$this->Session['billing_country']}
<br />
<strong>State:</strong> {$this->Session['billing_state']}
<br />
<strong>City:</strong> {$this->Session['billing_city']}
<br />
<strong>Street Address 1:</strong> {$this->Session['billing_street_1']}
<br />
<strong>Street Address 2:</strong> {$this->Session['billing_street_2']}
<br />
<strong>Postal Code:</strong> {$this->Session['billing_postal_code']}
<br />
<strong>Phone Number:</strong> {$this->Session['billing_phone_number']}
<br />
<strong>Fax Number:</strong> {$this->Session['billing_fax_number']}
<br /><br /><br />
<h2>Shipping Information</h2>
<br />
<strong>First Name:</strong> {$this->Session['shipping_first_name']}
<br />
<strong>Last Name:</strong> {$this->Session['shipping_last_name']}
<br />
<strong>Country:</strong> {$this->Session['shipping_country']}
<br />
<strong>State:</strong> {$this->Session['shipping_state']}
<br />
<strong>City:</strong> {$this->Session['shipping_city']}
<br />
<strong>Street Address 1:</strong> {$this->Session['shipping_street_1']}
<br />
<strong>Street Address 2:</strong> {$this->Session['shipping_street_2']}
<br />
<strong>Postal Code:</strong> {$this->Session['shipping_postal_code']}
<br />
<strong>Phone Number:</strong> {$this->Session['shipping_phone_number']}
<br />
<strong>Fax Number:</strong> {$this->Session['shipping_fax_number']}
<br /><br /><br />
<h2>Order Notes</h2>
<br />
{$this->Session['order_notes']}
<br /><br /><br />
<center>
<form action="{$this->Site->URL}/shop/cart/complete/" method="post">
\t<input type="submit" value="Continue" class="submit" />
</form>
</center>
<br /><br /><br />

EOH;
                        }
                    }
                }
                break;
            case "information":
                if ($settings['require_authorization'] && !$this->User->Validated) {
                    $this->Redirect($this->Site->URL . "/account/login/");
                }
                $this->Session['type'] = $this->Request['type'] ? $this->Request['type'] : $this->Session['type'];
                if ($this->Session['type'] === "pp_express") {
                    $this->Session['paymentType'] = $this->Request['paymentType'] ? $this->Request['paymentType'] : $this->Session['paymentType'];
                    $this->Session['currencyCodeType'] = $this->Request['currencyCodeType'] ? $this->Request['currencyCodeType'] : $this->Session['currencyCodeType'];
                } else {
                    if ($this->Session['type'] === "pp_cc") {
                        $this->Session['paymentType'] = $this->Request['paymentType'] ? $this->Request['paymentType'] : $this->Session['paymentType'];
                    }
                }
                //$this->Session->Merge($_REQUEST);
                $type = $this->Session['type'];
                $country = <<<EOH

\t<option selected="selected" value="">--- Choose Country ---</option>
     <option value="United States">United States</option>
    <option value="Canada">Canada</option>
    <option value="Afghanistan">Afghanistan</option>
    <option value="Albania">Albania</option>
    <option value="Algeria">Algeria</option>
    <option value="Andorra">Andorra</option>
    <option value="Angola">Angola</option>
    <option value="Anguilla">Anguilla</option>
    <option value="Antigua and Barbuda">Antigua and Barbuda</option>
    <option value="Argentina">Argentina</option>
    <option value="Armenia">Armenia</option>
    <option value="Aruba">Aruba</option>
    <option value="Australia">Australia</option>
    <option value="Austria">Austria</option>
    <option value="Azerbaijan">Azerbaijan</option>
    <option value="Bahamas">Bahamas</option>
    <option value="Bahrain">Bahrain</option>
    <option value="Bangladesh">Bangladesh</option>
    <option value="Barbados">Barbados</option>
    <option value="Belarus">Belarus</option>
    <option value="Belgium">Belgium</option>
    <option value="Belize">Belize</option>
    <option value="Benin">Benin</option>
    <option value="Bermuda">Bermuda</option>
    <option value="Bhutan">Bhutan</option>
    <option value="Bolivia">Bolivia</option>
    <option value="Borneo">Borneo</option>
    <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
    <option value="Botswana">Botswana</option>
    <option value="Brazil">Brazil</option>
    <option value="Brunei">Brunei</option>
    <option value="Bulgaria">Bulgaria</option>
    <option value="Burkina Faso">Burkina 
      Faso</option>
    <option value="Burma">Burma</option>
    <option value="Burundi">Burundi</option>
    <option value="Cameroon">Cameroon</option>
    <option value="Cambodia">Cambodia</option>
    <option value="Cape Verde">Cape 
      Verde</option>
    <option value="Central African Rep">Central African 
      Republic</option>
    <option value="Chad">Chad</option>
    <option value="Chile">Chile</option>
    <option value="China">China</option>
    <option value="Cote d'Ivoire">Cote d'Ivoire</option>
    <option value="Colombia">Colombia</option>
    <option value="Comoros">Comoros</option>
    <option value="Congo, Democratic Republic of">Congo, Democratic Republic 
      of</option>
    <option value="Costa Rica, Republic of the">Costa Rica, 
      Republic of the</option>
    <option value="Croatia">Croatia</option>
    <option value="Cuba">Cuba</option>
    <option value="Cyprus">Cyprus</option>
    <option value="Czech Republic">Czech Republic</option>
    <option value="Denmark">Denmark</option>
    <option value="Djibouti">Djibouti</option>
    <option value="Dominica">Dominica</option>
    <option value="Dominican Republic">Dominican Republic</option>
    <option value="East Timor">East Timor</option>
    <option value="Ecuador">Ecuador</option>
    <option value="Egypt">Egypt</option>
    <option value="El Salvador">El Salvador</option>
    <option value="Equatorial Guinea">Equatorial Guinea</option>
    <option value="Eritrea">Eritrea</option>
    <option value="Estonia">Estonia</option>
    <option value="Ethiopia">Ethiopia</option>
    <option value="Fiji">Fiji</option>
    <option value="Finland">Finland</option>
    <option value="France">France</option>
    <option value="Gabon">Gabon</option>
    <option value="Gambia">Gambia</option>
    <option value="Georgia">Georgia</option>
    <option value="Germany">Germany</option>
    <option value="Ghana">Ghana</option>
    <option value="Gibraltar">Gibraltar</option>
    <option value="Greece">Greece</option>
    <option value="Greenland">Greenland</option>
    <option value="Grenada">Grenada</option>
    <option value="Guadeloupe">Guadeloupe</option>
    <option value="Guatemala">Guatemala</option>
    <option value="Guinea">Guinea</option>
    <option value="Guinea-Bissau">Guinea-Bissau</option>
    <option value="Guyana">Guyana</option>
    <option value="Haiti">Haiti</option>
    <option value="Honduras">Honduras</option>
    <option value="Hong Kong">Hong 
      Kong</option>
    <option value="Hungary">Hungary</option>
    <option value="Iceland">Iceland</option>
    <option value="India">India</option>
    <option value="Indonesia">Indonesia</option>
    <option value="Iran">Iran</option>
    <option value="Iraq">Iraq</option>
    <option value="Ireland">Ireland</option>
    <option value="Israel">Israel</option>
    <option value="Italy">Italy</option>
    <option value="Jamaica">Jamaica</option>
    <option value="Japan">Japan</option>
    <option value="Jordan">Jordan</option>
    <option value="Kazakhstan">Kazakhstan</option>
    <option value="Kenya">Kenya</option>
    <option value="Kiribati">Kiribati</option>
    <option value="Korea, North">Korea, North</option>
    <option value="Korea, South">Korea, South</option>
    <option value="Kosovo">Kosovo</option>
    <option value="Kuwait">Kuwait</option>
    <option value="Kyrgyzstan">Kyrgyzstan</option>
    <option value="Laos">Laos</option>
    <option value="Latvia">Latvia</option>
    <option value="Lebanon">Lebanon</option>
    <option value="Lesotho">Lesotho</option>
    <option value="Liberia">Liberia</option>
    <option value="Libya">Libya</option>
    <option value="Liechtenstein">Liechtenstein</option>
    <option value="Lithuania">Lithuania</option>
    <option value="Luxembourg">Luxembourg</option>
    <option value="Macedonia">Macedonia</option>
    <option value="Madagascar">Madagascar</option>
    <option value="Malawi">Malawi</option>
    <option value="Malaysia">Malaysia</option>
    <option value="Maldives">Maldives</option>
    <option value="Mali">Mali</option>
    <option value="Malta">Malta</option>
    <option value="Marshall Islands">Marshall Islands</option>
    <option value="Martinique">Martinique</option>
    <option value="Mauritania">Mauritania</option>
    <option value="Mauritius">Mauritius</option>
    <option value="Mexico">Mexico</option>
    <option value="Micronesia, Federated States of">Micronesia, Federated 
      States of</option>
    <option value="Moldova">Moldova</option>
    <option value="Monaco">Monaco</option>
    <option value="Mongolia">Mongolia</option>
    <option value="Montserrat">Montserrat</option>
    <option value="Morocco">Morocco</option>
    <option value="Mozambique">Mozambique</option>
    <option value="Namibia">Namibia</option>
    <option value="Naura">Naura</option>
    <option value="Nepal">Nepal</option>
    <option value="Netherlands">Netherlands</option>
    <option value="New Zealand">New 
      Zealand</option>
    <option value="Nicaragua">Nicaragua</option>
    <option value="Niger">Niger</option>
    <option value="Nigeria">Nigeria</option>
    <option value="Norway">Norway</option>
    <option value="Oman">Oman</option>
    <option value="Pakistan">Pakistan</option>
    <option value="Palau">Palau</option>
    <option value="Panama">Panama</option>
    <option value="Papua New Guinea">Papua New Guinea</option>
    <option value="Paraguay">Paraguay</option>
    <option value="Peru">Peru</option>
    <option value="Philippines">Philippines</option>
    <option value="Poland">Poland</option>
    <option value="Portugal">Portugal</option>
    <option value="Qatar">Qatar</option>
    <option value="Romania">Romania</option>
    <option value="Russia">Russia</option>
    <option value="Rwanda">Rwanda</option>
    <option value="Samoa">Samoa</option>
    <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
    <option value="Saint Lucia">Saint Lucia</option>
    <option value="Saint Vincent and Grenadines">Saint Vincent and 
      Grenadines</option>
    <option value="San Marino">San Marino</option>
    <option value="Sao Tome and Principe">Sao Tome and Principe</option>
    <option value="Saudi Arabia">Saudi Arabia</option>
    <option value="Senegal">Senegal</option>
    <option value="Seychelles">Seychelles</option>
    <option value="Sierra Leone">Sierra 
      Leone</option>
    <option value="Singapore">Singapore</option>
    <option value="Slovakia">Slovakia</option>
    <option value="Slovenia">Slovenia</option>
    <option value="Solomon Islands">Solomon 
      Islands</option>
    <option value="Somalia">Somalia</option>
    <option value="South Africa">South Africa</option>
    <option value="Spain">Spain</option>
    <option value="Sri Lanka">Sri Lanka</option>
    <option value="Sudan">Sudan</option>
    <option value="Suriname">Suriname</option>
    <option value="Swaziland">Swaziland</option>
    <option value="Sweden">Sweden</option>
    <option value="Switzerland">Switzerland</option>
    <option value="Syria">Syria</option>
    <option value="Taiwan">Taiwan</option>
    <option value="Tajikistan">Tajikistan</option>
    <option value="Tanzania">Tanzania</option>
    <option value="Thailand">Thailand</option>
    <option value="Togo">Togo</option>
    <option value="Tonga">Tonga</option>
    <option value="Trinidad and Tobago">Trinidad and Tobago</option>
    <option value="Tunisia">Tunisia</option>
    <option value="Turkey">Turkey</option>
    <option value="Turkmenistan">Turkmenistan</option>
    <option value="Tuvalu">Tuvalu</option>
    <option value="Uganda">Uganda</option>
    <option value="Ukraine">Ukraine</option>
    <option value="United Arab Emirates">United Arab Emirates</option>
    <option value="United Kingdom">United Kingdom</option>
    <option value="Uruguay">Uruguay</option>
    <option value="Uzbekistan">Uzbekistan</option>
    <option value="Vanuatu">Vanuatu</option>
    <option value="Vatican City">Vatican 
      City</option>
    <option value="Venezuela">Venezuela</option>
    <option value="Vietnam">Vietnam</option>
    <option value="Virgin Islands">Virgin 
      Islands</option>
    <option value="West Bank and Gaza">West Bank and 
      Gaza</option>
    <option value="Western Sahara">Western Sahara</option>
    <option value="Yemen">Yemen</option>
    <option value="Yugoslavia">Yugoslavia, 
      Federal Republic of</option>
    <option value="Zambia">Zambia</option>
    <option value="Zimbabwe">Zimbabwe</option>

EOH;
                $country = str_replace("value=\"{$this->User['country']}\"", "value=\"{$this->User['country']}\" selected=\"selected\"", $country);
                $state = <<<EOH

\t<option value="">--- Choose State ---</option>
\t<option value="NA">Outside USA</option>
\t<option value="AL">Alabama</option>
\t<option value="AK">Alaska</option>
\t<option value="AZ">Arizona</option>
\t<option value="AR">Arkansas</option>
\t<option value="CA">California</option>
\t<option value="CO">Colorado</option>
\t<option value="CT">Connecticut</option>
\t<option value="DE">Delaware</option>
\t<option value="DC">Dist of Columbia</option>
\t<option value="FL">Florida</option>
\t<option value="GA">Georgia</option>
\t<option value="HI">Hawaii</option>
\t<option value="ID">Idaho</option>
\t<option value="IL">Illinois</option>
\t<option value="IN">Indiana</option>
\t<option value="IA">Iowa</option>
\t<option value="KS">Kansas</option>
\t<option value="KY">Kentucky</option>
\t<option value="LA">Louisiana</option>
\t<option value="ME">Maine</option>
\t<option value="MD">Maryland</option>
\t<option value="MA">Massachusetts</option>
\t<option value="MI">Michigan</option>
\t<option value="MN">Minnesota</option>
\t<option value="MS">Mississippi</option>
\t<option value="MO">Missouri</option>
\t<option value="MT">Montana</option>
\t<option value="NE">Nebraska</option>
\t<option value="NV">Nevada</option>
\t<option value="NH">New Hampshire</option>
\t<option value="NJ">New Jersey</option>
\t<option value="NM">New Mexico</option>
\t<option value="NY">New York</option>
\t<option value="NC">North Carolina</option>
\t<option value="ND">North Dakota</option>
\t<option value="OH">Ohio</option>
\t<option value="OK">Oklahoma</option>
\t<option value="OR">Oregon</option>
\t<option value="PA">Pennsylvania</option>
\t<option value="RI">Rhode Island</option>
\t<option value="SC">South Carolina</option>
\t<option value="SD">South Dakota</option>
\t<option value="TN">Tennessee</option>
\t<option value="TX">Texas</option>
\t<option value="UT">Utah</option>
\t<option value="VT">Vermont</option>
\t<option value="VA">Virginia</option>
\t<option value="WA">Washington</option>
\t<option value="WV">West Virginia</option>
\t<option value="WI">Wisconsin</option>
\t<option value="WY">Wyoming</option>

EOH;
                $state = str_replace("value=\"{$this->User['state']}\"", "value=\"{$this->User['state']}\" selected=\"selected\"", $state);
                $this->Page->Content .= <<<EOH

<script src="{$this->Site->URL}/libs/spry/SpryValidationTextField.js" type="text/javascript"></script>
<script src="{$this->Site->URL}/libs/spry/SpryValidationSelect.js" type="text/javascript"></script>
<link href="{$this->Site->URL}/libs/spry/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
<link href="{$this->Site->URL}/libs/spry/SpryValidationSelect.css" rel="stylesheet" type="text/css" />
\t\t\t\t\t
<center>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
\t</div>
\t<div class="style1 active" style="float: left;">
\t\t<strong>Information</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Preview</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Payment</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Review</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Complete</strong>
\t</div>
\t<div style="clear: both"></div>
</center>
<br /><br />

<form action="{$this->Site->URL}/shop/cart/preview/" method="post">
\t<h2>Shipping Information</h2>
\t<br />
\t<center>
\t<table id="shipping_information" width="100%" cellpadding="0" cellspacing="5">
        <tr>
            <td><strong>First Name <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield1">
            \t\t<input name="shipping_first_name" type="text" size="20" maxlength="50" value="{$this->User['first_name']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>Last Name <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield2">
            \t\t<input name="shipping_last_name" type="text" size="20" maxlength="50" value="{$this->User['last_name']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>Country <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="spryselect1">
            \t\t<select name="shipping_country">{$country}</select>
            \t\t<span class="selectRequiredMsg">Please select an item.</span>
            \t\t<span class="selectInvalidMsg">Please select a valid item.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>State <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="spryselect2">
            \t\t<select name="shipping_state">{$state}</select>
            \t\t<span class="selectInvalidMsg">Please select a valid item.</span>
            \t\t<span class="selectRequiredMsg">Please select an item.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>City <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield3">
            \t\t<input name="shipping_city" type="text" size="20" maxlength="40" value="{$this->User['city']}" />
           \t\t\t<span class="textfieldRequiredMsg">A value is required.</span>
           \t\t</span>
\t\t\t</td>
        </tr>
        <tr>
            <td><strong>Street Address 1 <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield4">
            \t\t<input name="shipping_street_1" type="text" size="20" maxlength="100" value="{$this->User['street_1']}" />
        \t\t\t<span class="textfieldRequiredMsg">A value is required.</span>
        \t\t</span>
        \t</td>
\t\t</tr>
        <tr>
            <td><strong>Street Address 2</strong></td>
            <td>
            \t\t<input name="shipping_street_2" type="text" size="20" maxlength="100" value="{$this->User['street_2']}" />
            </td>
        </tr>
        <tr>
            <td><strong>Postal Code <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield5">
            \t\t<input name="shipping_postal_code" type="text" size="20" maxlength="10" value="{$this->User['postal_code']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>Phone Number <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield6">
            \t\t<input name="shipping_phone_number" type="text" size="20" maxlength="25" value="{$this->User['phone_number']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span>
            \t\t<span class="textfieldInvalidFormatMsg">Invalid format.</span>
            \t</span>
           </td>
        </tr>
        <tr>
            <td><strong>Fax Number</strong></td>
            <td>
            \t<span id="sprytextfield7">
            \t\t<input name="shipping_fax_number" type="text" size="20" maxlength="25" value="{$this->User['fax_number']}" />
            \t</span>
            </td>
        </tr>
    </table>
    </center>
    <br /><br />
\t<h2>Billing Information</h2>
\t<br />
\t<center>
\t<input checked type="checkbox" name="same_information" value="yes" /> Same billing and shipping information.
\t<br />
\t<table id="billing_information" width="100%" cellpadding="0" cellspacing="5">
        <tr>
            <td><strong>First Name <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield8">
            \t\t<input disabled name="billing_first_name" type="text" size="20" maxlength="50" value="{$this->User['first_name']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>Last Name <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield9">
            \t\t<input disabled name="billing_last_name" type="text" size="20" maxlength="50" value="{$this->User['last_name']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>Country <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="spryselect3">
            \t\t<select disabled name="billing_country">{$country}</select>
            \t\t<span class="selectRequiredMsg">Please select an item.</span>
            \t\t<span class="selectInvalidMsg">Please select a valid item.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>State <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="spryselect4">
            \t\t<select disabled name="billing_state">{$state}</select>
            \t\t<span class="selectInvalidMsg">Please select a valid item.</span>
            \t\t<span class="selectRequiredMsg">Please select an item.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>City <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield10">
            \t\t<input disabled name="billing_city" type="text" size="20" maxlength="40" value="{$this->User['city']}" />
           \t\t\t<span class="textfieldRequiredMsg">A value is required.</span>
           \t\t</span>
\t\t\t</td>
        </tr>
        <tr>
            <td><strong>Street Address 1 <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield11">
            \t\t<input disabled name="billing_street_1" type="text" size="20" maxlength="100" value="{$this->User['street_1']}" />
        \t\t\t<span class="textfieldRequiredMsg">A value is required.</span>
        \t\t</span>
        \t</td>
\t\t</tr>
        <tr>
            <td><strong>Street Address 2</strong></td>
            <td>
            \t\t<input disabled name="billing_street_2" type="text" size="20" maxlength="100" value="{$this->User['street_2']}" />
            </td>
        </tr>
        <tr>
            <td><strong>Postal Code <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield12">
            \t\t<input disabled name="billing_postal_code" type="text" size="20" maxlength="10" value="{$this->User['postal_code']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span>
            \t</span>
            </td>
        </tr>
        <tr>
            <td><strong>Phone Number <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="sprytextfield13">
            \t\t<input disabled name="billing_phone_number" type="text" size="20" maxlength="25" value="{$this->User['phone_number']}" />
            \t\t<span class="textfieldRequiredMsg">A value is required.</span>
            \t\t<span class="textfieldInvalidFormatMsg">Invalid format.</span>
            \t</span>
           </td>
        </tr>
        <tr>
            <td><strong>Fax Number</strong></td>
            <td>
            \t<span id="sprytextfield14">
            \t\t<input disabled name="billing_fax_number" type="text" size="20" maxlength="25" value="{$this->User['fax_number']}" />
            \t</span>
            </td>
        </tr>
    </table>
    </center>
    <br /><br />
\t<h2>Ordering Notes</h2>
\t<br />
\t<center>
    <textarea name="order_notes" cols="40" rows="10"></textarea>
    </center>
\t<br /><br />
\t<center><input type="submit" value="Continue" class="submit" /></center>
</form>
<br /><br />
<script type="text/javascript">
\tjQuery(document).ready(function(\$)
\t{
\t\t\$("[name='same_information']").click(function()
\t\t{
\t\t\tif(\$(this).is(":checked"))
\t\t\t\t\$("#billing_information").find("input, select").attr("disabled", true); 
\t\t\telse
\t\t\t\t\$("#billing_information").find("input, select").removeAttr("disabled");
\t\t});\t\t\t
\t});
</script>

<script type="text/javascript">
<!--
new Spry.Widget.ValidationTextField("sprytextfield1", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationTextField("sprytextfield2", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationSelect("spryselect1", {validateOn:["blur", "change"], invalidValue:""});
new Spry.Widget.ValidationSelect("spryselect2", {validateOn:["blur", "change"], invalidValue:""});
new Spry.Widget.ValidationTextField("sprytextfield3", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationTextField("sprytextfield4", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationTextField("sprytextfield5", "zip_code", {validateOn:["blur"]});
new Spry.Widget.ValidationTextField("sprytextfield6", "phone_number", {validateOn:["blur"], useCharacterMasking:true});

new Spry.Widget.ValidationTextField("sprytextfield8", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationTextField("sprytextfield9", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationSelect("spryselect3", {validateOn:["blur", "change"], invalidValue:""});
new Spry.Widget.ValidationSelect("spryselect4", {validateOn:["blur", "change"], invalidValue:""});
new Spry.Widget.ValidationTextField("sprytextfield10", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationTextField("sprytextfield11", "none", {validateOn:["blur", "change"]});
new Spry.Widget.ValidationTextField("sprytextfield12", "zip_code", {validateOn:["blur"]});
new Spry.Widget.ValidationTextField("sprytextfield13", "phone_number", {validateOn:["blur"], useCharacterMasking:true});
//-->
</script>

EOH;
                break;
            case "complete":
                if ($settings['require_authorization'] && !$this->User->Validated) {
                    $this->Redirect($this->Site->URL . "/account/login/");
                }
                $type = $this->Session['type'];
                if ($type == "pp_express") {
                    require_once PATH . "/libs/paypal/constants.php";
                    require_once PATH . "/libs/paypal/CallerService.php";
                    /* Gather the information to make the final call to
                       finalize the PayPal payment.  The variable nvpstr
                       holds the name value pairs
                       */
                    $token = urlencode($this->Session['token']);
                    $paymentAmount = urlencode($this->Session['amount']);
                    $paymentType = urlencode($this->Session['paymentType']);
                    $currCodeType = urlencode($this->Session['currCodeType']);
                    $payerID = urlencode($this->Session['payer_id']);
                    $serverName = urlencode($this->Session['SERVER_NAME']);
                    $nvpstr = '&TOKEN=' . $token . '&PAYERID=' . $payerID . '&PAYMENTACTION=' . $paymentType . '&AMT=' . $paymentAmount . '&CURRENCYCODE=' . $currCodeType . '&IPADDRESS=' . $serverName;
                    /* Make the call to PayPal to finalize payment
                       If an error occured, show the resulting errors
                       */
                    $resArray = hash_call("DoExpressCheckoutPayment", $nvpstr);
                    /* Display the API response back to the browser.
                       If the response from PayPal was a success, display the response parameters'
                       If the response was an error, display the errors received using APIError.php.
                       */
                    $ack = strtoupper($resArray["ACK"]);
                    if ($ack == "SUCCESS") {
                        $query = array();
                        $query[] = "`order_amount` = '" . $resArray['AMT'] . "'";
                        if ($this->Session['order_products']) {
                            $query[] = "`order_products` = '" . rawurldecode($this->Session['order_products']) . "'";
                        }
                        if ($currCodeType) {
                            $query[] = "`order_currency` = '" . $currCodeType . "'";
                        }
                        if ($resArray['TRANSACTIONID']) {
                            $query[] = "`order_transaction_id` = '" . $resArray['TRANSACTIONID'] . "'";
                        }
                        $query[] = "`shipping_first_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_first_name'])) . "'";
                        $query[] = "`shipping_last_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_last_name'])) . "'";
                        $query[] = "`shipping_street_1` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_street_1'])) . "'";
                        $query[] = "`shipping_street_2` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_street_2'])) . "'";
                        $query[] = "`shipping_city` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_city'])) . "'";
                        $query[] = "`shipping_state` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_state'])) . "'";
                        $query[] = "`shipping_postal_code` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_postal_code'])) . "'";
                        $query[] = "`shipping_phone_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_phone_number'])) . "'";
                        $query[] = "`shipping_fax_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_fax_number'])) . "'";
                        $query[] = "`shipping_country` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_country'])) . "'";
                        $query[] = "`billing_first_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_first_name'])) . "'";
                        $query[] = "`billing_last_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_last_name'])) . "'";
                        $query[] = "`billing_street_1` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_street_1'])) . "'";
                        $query[] = "`billing_street_2` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_street_2'])) . "'";
                        $query[] = "`billing_city` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_city'])) . "'";
                        $query[] = "`billing_state` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_state'])) . "'";
                        $query[] = "`billing_postal_code` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_postal_code'])) . "'";
                        $query[] = "`billing_phone_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_phone_number'])) . "'";
                        $query[] = "`billing_fax_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_fax_number'])) . "'";
                        $query[] = "`billing_country` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_country'])) . "'";
                        if ($this->User['id']) {
                            $query[] = "`user_id` = '" . $this->User['id'] . "'";
                        }
                        if ($this->Session->Cart) {
                            $query[] = "`order_products` = '" . $this->Session->Cart . "'";
                        }
                        $query[] = "`order_status` = 'Completed'";
                        $query[] = "`order_type` = 'PayPal Express'";
                        $query[] = "`order_date` = FROM_UNIXTIME(" . time() . ")";
                        $query[] = "`order_notes` = '" . rawurldecode($this->Session['order_notes']) . "'";
                        $query = "INSERT INTO `{$this->DB->Prefix}ecommerce_orders` SET " . fix_query(implode(',', $query));
                        $this->DB->Query($query);
                        $order_id = mysql_insert_id();
                        // clear the cart
                        $this->Session->Cart = '';
                        $this->Page->Content .= <<<EOH

<center>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Information</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Preview</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Payment</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Review</strong>
\t</div>
\t<div class="style1 active" style="float: left;">
\t\t<strong>Complete</strong>
\t</div>
\t<div style="clear: both"></div>
</center>
<br /><br />

<strong>Thank you for your payment!</strong>
<br /><br />
Your order number is {$order_id}. You should keep this number for future reference.
<br /><br />
If you have any questions about your order, please don't hesitate to <a href="{$this->Site->URL}/contact/">contact us</a>.
<br /><br />
<a href="{$this->Site->URL}/"><< Return to Home</a>

EOH;
                        $template =& $this->Mail->LoadTemplate("ecommerce_order_received", array("order_id" => $order_id));
                        $this->Mail->Send($this->User->Email, $settings['order_email'], $template['title'], $template['content']);
                        $template =& $this->Mail->LoadTemplate("ecommerce_order_notify", array("order_id" => $order_id));
                        $this->Mail->Send($settings['order_email'], $settings['order_email'], $template['title'], $template['content']);
                    } else {
                        $this->Session['reshash'] = $resArray;
                        $this->Redirect($this->Site->URL . "/shop/cart/error/");
                    }
                } else {
                    if ($type == "pp_cc") {
                        require_once PATH . "/libs/paypal/constants.php";
                        require_once PATH . "/libs/paypal/CallerService.php";
                        /**
                         * Get required parameters from the web form for the request
                         */
                        $paymentType = urlencode($this->Session['paymentType']);
                        $firstName = urlencode($this->Session['user_first_name']);
                        $lastName = urlencode($this->Session['user_last_name']);
                        $creditCardType = urlencode($this->Session['creditCardType']);
                        $creditCardNumber = urlencode($this->Session['creditCardNumber']);
                        $expDateMonth = urlencode($this->Session['expDateMonth']);
                        // Month must be padded with leading zero
                        $padDateMonth = str_pad($expDateMonth, 2, '0', STR_PAD_LEFT);
                        $expDateYear = urlencode($this->Session['expDateYear']);
                        $cvv2Number = urlencode($this->Session['cvv2Number']);
                        $address1 = urlencode($this->Session['user_street_1']);
                        $address2 = urlencode($this->Session['user_street_2']);
                        $city = urlencode($this->Session['user_city']);
                        $state = urlencode($this->Session['user_state']);
                        $zip = urlencode($this->Session['user_postal_code']);
                        $amount = urlencode($this->Session['amount']);
                        $currencyCode = "USD";
                        /* Construct the request string that will be sent to PayPal.
                           The variable $nvpstr contains all the variables and is a
                           name value pair string with & as a delimiter */
                        $nvpstr = "&PAYMENTACTION={$paymentType}&AMT={$amount}&CREDITCARDTYPE={$creditCardType}&ACCT={$creditCardNumber}&EXPDATE=" . $padDateMonth . $expDateYear . "&CVV2={$cvv2Number}&FIRSTNAME={$firstName}&LASTNAME={$lastName}&STREET={$address1}&CITY={$city}&STATE={$state}" . "&ZIP={$zip}&COUNTRYCODE=US&CURRENCYCODE={$currencyCode}";
                        /* Make the API call to PayPal, using API signature.
                           The API response is stored in an associative array called $resArray */
                        $resArray = hash_call("doDirectPayment", $nvpstr);
                        /* Display the API response back to the browser.
                           If the response from PayPal was a success, display the response parameters'
                           If the response was an error, display the errors received using APIError.php.
                           */
                        $ack = strtoupper($resArray["ACK"]);
                        if ($ack == "SUCCESS") {
                            $query = array();
                            $query[] = "`order_amount` = '" . $resArray['AMT'] . "'";
                            if ($this->Session['user_id']) {
                                $query[] = "`user_id` = '" . rawurldecode($this->Session['user_id']) . "'";
                            }
                            if ($this->Session['order_products']) {
                                $query[] = "`order_products` = '" . rawurldecode($this->Session['order_products']) . "'";
                            }
                            if ($currCodeType) {
                                $query[] = "`order_currency` = '" . $currCodeType . "'";
                            }
                            if ($resArray['TRANSACTIONID']) {
                                $query[] = "`order_transaction_id` = '" . $resArray['TRANSACTIONID'] . "'";
                            }
                            $query[] = "`shipping_first_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_first_name'])) . "'";
                            $query[] = "`shipping_last_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_last_name'])) . "'";
                            $query[] = "`shipping_street_1` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_street_1'])) . "'";
                            $query[] = "`shipping_street_2` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_street_2'])) . "'";
                            $query[] = "`shipping_city` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_city'])) . "'";
                            $query[] = "`shipping_state` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_state'])) . "'";
                            $query[] = "`shipping_postal_code` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_postal_code'])) . "'";
                            $query[] = "`shipping_phone_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_phone_number'])) . "'";
                            $query[] = "`shipping_fax_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_fax_number'])) . "'";
                            $query[] = "`shipping_country` = '" . mysql_real_escape_string(rawurldecode($this->Session['shipping_country'])) . "'";
                            $query[] = "`billing_first_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_first_name'])) . "'";
                            $query[] = "`billing_last_name` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_last_name'])) . "'";
                            $query[] = "`billing_street_1` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_street_1'])) . "'";
                            $query[] = "`billing_street_2` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_street_2'])) . "'";
                            $query[] = "`billing_city` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_city'])) . "'";
                            $query[] = "`billing_state` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_state'])) . "'";
                            $query[] = "`billing_postal_code` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_postal_code'])) . "'";
                            $query[] = "`billing_phone_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_phone_number'])) . "'";
                            $query[] = "`billing_fax_number` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_fax_number'])) . "'";
                            $query[] = "`billing_country` = '" . mysql_real_escape_string(rawurldecode($this->Session['billing_country'])) . "'";
                            if ($this->User['id']) {
                                $query[] = "`user_id` = '" . $this->User['id'] . "'";
                            }
                            if ($this->Session->Cart) {
                                $query[] = "`order_products` = '" . $this->Session->Cart . "'";
                            }
                            $query[] = "`order_status` = 'Completed'";
                            $query[] = "`order_type` = 'PayPal Pro'";
                            $query[] = "`order_date` = FROM_UNIXTIME(" . time() . ")";
                            $query[] = "`order_notes` = '" . rawurldecode($this->Session['order_notes']) . "'";
                            $query = fix_query(implode(',', $query));
                            $this->DB->Query("INSERT INTO `{$this->DB->Prefix}ecommerce_orders` SET {$query}");
                            $order_id = mysql_insert_id();
                            // clear the cart
                            $this->Session->Cart = '';
                            $this->Page->Content .= <<<EOH

<center>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Information</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Preview</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Payment</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Review</strong>
\t</div>
\t<div class="style1 active" style="float: left;">
\t\t<strong>Complete</strong>
\t</div>
\t<div style="clear: both"></div>
</center>
<br /><br />

<strong>Thank you for your payment!</strong>
<br /><br />
Your order number is {$order_id}. You should keep this number for future reference.
<br /><br />
If you have any questions about your order, please don't hesitate to <a href="{$this->Site->URL}/contact/">contact us</a>.
<br /><br />
<a href="{$this->Site->URL}/"><< Return to Home</a>

EOH;
                            $template =& $this->Mail->LoadTemplate("ecommerce_order_received", array("order_id" => $order_id));
                            $this->Mail->Send($this->User->Email, $settings['order_email'], $template['title'], $template['content']);
                            $template =& $this->Mail->LoadTemplate("ecommerce_order_notify", array("order_id" => $order_id));
                            $this->Mail->Send($settings['order_email'], $settings['order_email'], $template['title'], $template['content']);
                        } else {
                            $this->Session['reshash'] = $resArray;
                            $this->Redirect($this->Site->URL . "/shop/cart/error/");
                        }
                    } else {
                        if ($type == "pp_basic") {
                            $this->Page->Content .= <<<EOH

<center>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Information</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Preview</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Payment</strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong>Review</strong>
\t</div>
\t<div class="style1 active" style="float: left;">
\t\t<strong>Complete</strong>
\t</div>
\t<div style="clear: both"></div>
</center>
<br /><br />

EOH;
                            $query = "SELECT `order_extra`, `order_amount`, `order_currency` FROM `{$this->DB->Prefix}ecommerce_orders` \n\t\t\t\t\t\t\t\t\tWHERE `order_id` = " . $this->Session['order_id'];
                            $row = $this->DB->FetchRow($query);
                            $message = <<<EOH

<strong>We're sorry, there's been a problem with your order</strong>
<br /><br />
Your order number is {$this->Session['order_id']}. Please contact our <a href="{$this->Site->URL}/contact/">contact us</a>. Our customer support e-mail is <a href="mailto:{$this->Site['support_email']}">{$this->Site['support_email']}</a>.
<br /><br />
<a href="{$this->Site->URL}/"><< Return to {$this->Site->Title}</a>

EOH;
                            $paypal = unserialize($row['extra']);
                            $order_status = $paypal['payment_status'];
                            $order_amount = $paypal['mc_gross'];
                            //$order_currency = $paypal['mc_currency'];
                            $order_transaction_id = $paypal['txn_id'];
                            // check if txn_id has been processed before
                            //$query =
                            //	"SELECT `order_transaction_id`
                            //	FROM `{$this->DB->Prefix}ecommerce_orders`
                            //	WHERE `order_transaction_id` = '" . $order_transaction_id . "'";
                            //if(!$this->DB->FetchRow($query))
                            //{
                            if ($order_status == "Completed" && $order_amount == $row['order_amount']) {
                                // post back to PayPal system to validate
                                $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
                                $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
                                $header .= "Content-Length: " . strlen($row['order_extra']) . "\r\n\r\n";
                                $fp = fsockopen("www.paypal.com", 80, $errno, $errstr, 30);
                                if (!$fp) {
                                    // HTTP ERROR
                                } else {
                                    fputs($fp, $header . $row['order_extra']);
                                    while (!feof($fp)) {
                                        $res = fgets($fp, 1024);
                                        if (strcmp($res, "VERIFIED") == 0) {
                                            $query = "UPDATE `{$this->DB->Prefix}ecommerce_orders` \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSET `order_status` 'Completed', `order_transaction_id` = '" . $order_transaction_id . "' \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `order_id` = " . $this->Session['order_id'];
                                            $this->DB->Query($query);
                                            $message = <<<EOH

<strong>Thank you for your payment!</strong>
<br /><br />
Your order number is {$this->Session['order_id']}. You should keep this number for future reference.
<br /><br />
If you have any questions about your order, please don't hesitate to <a href="{$this->Site->URL}/contact/">contact us</a>.
<br /><br />
<a href="{$this->Site->URL}/"><< Return to {$this->Site->Title}</a>

EOH;
                                            $template =& $this->Mail->LoadTemplate("ecommerce_order_received", array("order_id" => $order_id));
                                            $this->Mail->Send($this->User->Email, $settings['order_email'], $template['title'], $template['content']);
                                            $template =& $this->Mail->LoadTemplate("ecommerce_order_notify", array("order_id" => $order_id));
                                            $this->Mail->Send($settings['order_email'], $settings['order_email'], $template['title'], $template['content']);
                                        } else {
                                            if (strcmp($res, "INVALID") == 0) {
                                                $query = "UPDATE `{$this->DB->Prefix}ecommerce_orders` \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSET `order_status` 'Failed', `order_transaction_id` = '" . $order_transaction_id . "' \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `order_id` = " . $this->Session['order_id'];
                                                $this->DB->Query($query);
                                            }
                                        }
                                    }
                                    fclose($fp);
                                }
                            } else {
                                $query = "UPDATE `{$this->DB->Prefix}ecommerce_orders` \n\t\t\t\t\t\t\t\t\t\t\tSET `order_status` 'Failed', `order_transaction_id` = '" . $order_transaction_id . "' \n\t\t\t\t\t\t\t\t\t\t\tWHERE `order_id` = " . $this->Session['order_id'];
                                $this->DB->Query($query);
                            }
                            //}
                        }
                    }
                }
                $this->Page->Content .= $message;
                // clear the cart
                $this->Session->Cart = '';
                unset($_SESSION['order_id']);
                unset($_SESSION['token']);
                unset($_SESSION['amount']);
                unset($_SESSION['paymentType']);
                unset($_SESSION['currCodeType']);
                unset($_SESSION['payer_id']);
                unset($_SESSION['SERVER_NAME']);
                unset($_SESSION['type']);
                unset($_SESSION['shipping_first_name']);
                unset($_SESSION['shipping_last_name']);
                unset($_SESSION['shipping_street_1']);
                unset($_SESSION['shipping_street_2']);
                unset($_SESSION['shipping_city']);
                unset($_SESSION['shipping_state']);
                unset($_SESSION['shipping_postal_code']);
                unset($_SESSION['shipping_phone_number']);
                unset($_SESSION['shipping_country']);
                unset($_SESSION['billing_first_name']);
                unset($_SESSION['billing_last_name']);
                unset($_SESSION['billing_street_1']);
                unset($_SESSION['billing_street_2']);
                unset($_SESSION['billing_city']);
                unset($_SESSION['billing_state']);
                unset($_SESSION['billing_postal_code']);
                unset($_SESSION['billing_phone_number']);
                unset($_SESSION['billing_country']);
                unset($_SESSION['user_id']);
                break;
            case "confirm":
                //$paypal = $_POST;
                //$paypal['cmd'] = "_notify-validate";
                $query[] = "`order_status` = 'Completed'";
                $query = "UPDATE `{$this->DB->Prefix}ecommerce_orders` \n\t\t\t\t\t\tSET " . fix_query(implode(',', $query)) . "\n\t\t\t\t\t\tWHERE `order_id` = " . $_POST['item_number'];
                $this->DB->Query($query);
                break;
            case "payment":
                if ($settings['require_authorization'] && !$this->User->Validated) {
                    $this->Redirect($this->Site->URL . "/account/login/");
                }
                //$this->Session->Merge($_REQUEST);
                $this->Page->Content .= <<<EOH

<script src="{$this->Site->URL}/libs/spry/SpryValidationTextField.js" type="text/javascript"></script>
<script src="{$this->Site->URL}/libs/spry/SpryValidationSelect.js" type="text/javascript"></script>
<link href="{$this->Site->URL}/libs/spry/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
<link href="{$this->Site->URL}/libs/spry/SpryValidationSelect.css" rel="stylesheet" type="text/css" />
\t\t\t\t
EOH;
                $type = $this->Session['type'];
                if ($type == "pp_basic") {
                    $this->Redirect("https://www.paypal.com/cgi-bin/webscr/?cmd=_xclick&business=" . urlencode("{$settings['paypal_email']}") . "&item_name=" . urlencode("{$this->Site->Title} Order #{$this->Session['order_id']}") . "&item_number={$this->Session['order_id']}&amount={$this->Session['amount']}&tax=0&no_note=1&currency_code=USD&cancel_return=" . urlencode("{$this->Site->URL}/shop/cart/cancel/") . "&return=" . urlencode("{$this->Site->URL}/shop/cart/thanks/") . "&notify_url=" . urlencode("{$this->Site->URL}/shop/cart/confirm/"));
                    /*
                    							$this->Page->Content .= <<< EOH
                    
                    <center>
                    	<div class="style1" style="float: left;">
                    		<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
                    	</div>
                    	<div class="style1" style="float: left;">
                    		<strong><a href="{$this->Site->URL}/shop/cart/preview/">Preview</a></strong>
                    	</div>
                    	<div class="style1" style="float: left;">
                    		<strong><a href="{$this->Site->URL}/shop/cart/information/">Information</a></strong>
                    	</div>
                    	<div class="style1 active" style="float: left;">
                    		<strong>Payment</strong>
                    	</div>
                    	<div class="style1 disabled" style="float: left;">
                    		<strong>Review</strong>
                    	</div>
                    	<div class="style1 disabled" style="float: left;">
                    		<strong>Complete</strong>
                    	</div>
                    	<div style="clear: both"></div>
                    </center>
                    <br /><br />
                    						
                    <center>
                    <form method="post" action="https://www.paypal.com/cgi-bin/webscr" target="paypal">
                    	<input type="hidden" name="cmd" value="_xclick" />
                    	<input type="hidden" name="business" value="{$settings['paypal_email']}" />
                    	<input type="hidden" name="item_name" value="{$this->Site->Name} Order #{$order_id}" />
                    	<input type="hidden" name="item_number" value="{$order_id}" />
                    	<input type="hidden" name="amount" value="{$this->Session['amount']}" />
                    	<input type="hidden" name="tax" value="0" />
                    	<input type="hidden" name="no_note" value="1" />
                    	<input type="hidden" name="currency_code" value="USD" />
                    	<input type="hidden" name="cancel_return" value="{$this->Site->URL}/shop/cart/cancel/" />
                    	<input type="hidden" name="return" value="{$this->Site->URL}/shop/cart/review/" />
                    	<input type="hidden" name="notify_url" value="{$this->Site->URL}/shop/cart/confirm/" />
                    	<input type="submit" name="submit" value="Continue" class="submit" />
                    </form>
                    </center>
                    
                    EOH;
                    */
                }
                if ($type == "pp_express") {
                    require_once PATH . "/libs/paypal/constants.php";
                    require_once PATH . "/libs/paypal/CallerService.php";
                    $token = $this->Request['token'];
                    if (!$token) {
                        /* The servername and serverport tells PayPal where the buyer
                           should be directed back to after authorizing payment.
                           In this case, its the local webserver that is running this script
                           Using the servername and serverport, the return URL is the first
                           portion of the URL that buyers will return to after authorizing payment
                           */
                        //$serverName = $_SERVER['SERVER_NAME'];
                        //$serverPort = $_SERVER['SERVER_PORT'];
                        $url = $this->Site->URL . "/shop/cart/";
                        //$this->Session['currencyCodeType'] = $this->Request['currencyCodeType'] ? $this->Request['currencyCodeType'] : $this->Session['currencyCodeType'];
                        //$this->Session['paymentType'] = $this->Request['paymentType'] ? $this->Request['paymentType'] : $this->Session['paymentType'];
                        $paymentAmount = $this->Session['amount'];
                        $currencyCodeType = $this->Session['currencyCodeType'];
                        $paymentType = $this->Session['paymentType'];
                        //die(var_dump($this->Session));
                        /* The returnURL is the location where buyers return when a
                        			payment has been succesfully authorized.
                        			The cancelURL is the location buyers are sent to when they hit the
                        			cancel button during authorization of payment during the PayPal flow
                        			*/
                        $returnURL = urlencode($this->Site->URL . "/shop/cart/payment/");
                        $cancelURL = urlencode($this->Site->URL . "/shop/cart/cancel/");
                        /* Construct the parameter string that describes the PayPal payment
                        			the varialbes were set in the web form, and the resulting string
                        			is stored in $nvpstr
                        			*/
                        $nvpstr = "&Amt=" . $paymentAmount . "&PAYMENTACTION=" . $paymentType . "&ReturnUrl=" . $returnURL . "&CANCELURL=" . $cancelURL . "&CURRENCYCODE=" . $currencyCodeType;
                        //die(var_dump($nvpstr));
                        /* Make the call to PayPal to set the Express Checkout token
                        			If the API call succeded, then redirect the buyer to PayPal
                        			to begin to authorize payment.  If an error occured, show the
                        			resulting errors
                        			*/
                        $resArray = hash_call("SetExpressCheckout", $nvpstr);
                        $this->Session['reshash'] = $resArray;
                        $ack = strtoupper($resArray['ACK']);
                        if ($ack == "SUCCESS") {
                            // Redirect to paypal.com here
                            $token = urldecode($resArray['TOKEN']);
                            $payPalURL = PAYPAL_URL . $token;
                            $this->Redirect($payPalURL);
                        } else {
                            //Redirecting to APIError.php to display errors.
                            $this->Redirect($this->Site->URL . "/shop/cart/error/");
                        }
                    } else {
                        /* At this point, the buyer has completed in authorizing payment
                        			at PayPal.  The script will now call PayPal with the details
                        			of the authorization, incuding any shipping information of the
                        			buyer.  Remember, the authorization is not a completed transaction
                        			at this state - the buyer still needs an additional step to finalize
                        			the transaction
                        			*/
                        //die(var_dump($this->Request));
                        $token = urlencode($token);
                        /* Build a second API request to PayPal, using the token as the
                        			ID to get the details on the payment authorization
                        			*/
                        $nvpstr = "&TOKEN=" . $token;
                        /* Make the API call and store the results in an array.  If the
                        			call was a success, show the authorization details, and provide
                        			an action to complete the payment.  If failed, show the error
                        			*/
                        $resArray = hash_call("GetExpressCheckoutDetails", $nvpstr);
                        $this->Session['reshash'] = $resArray;
                        $ack = strtoupper($resArray["ACK"]);
                        if ($ack == "SUCCESS") {
                            $this->Session['token'] = $this->Request['token'];
                            $this->Session['payer_id'] = $this->Request['PayerID'];
                            //$this->Session['currCodeType'] = $this->Request['currencyCodeType'];
                            //$this->Session['paymentType'] = $this->Request['paymentType'];
                            $resArray = $this->Session['reshash'];
                            $this->Redirect($this->Site->URL . "/shop/cart/review/");
                        } else {
                            //Redirecting to APIError.php to display errors.
                            $this->Redirect($this->Site->URL . "/shop/cart/error/");
                        }
                    }
                } else {
                    if ($type == "pp_cc") {
                        $this->Page->Title[] = "Checkout";
                        $country = <<<EOH

\t<option selected="selected" value="">--- Choose Country ---</option>
     <option value="United States">United States</option>
    <option value="Canada">Canada</option>
    <option value="Afghanistan">Afghanistan</option>
    <option value="Albania">Albania</option>
    <option value="Algeria">Algeria</option>
    <option value="Andorra">Andorra</option>
    <option value="Angola">Angola</option>
    <option value="Anguilla">Anguilla</option>
    <option value="Antigua and Barbuda">Antigua and Barbuda</option>
    <option value="Argentina">Argentina</option>
    <option value="Armenia">Armenia</option>
    <option value="Aruba">Aruba</option>
    <option value="Australia">Australia</option>
    <option value="Austria">Austria</option>
    <option value="Azerbaijan">Azerbaijan</option>
    <option value="Bahamas">Bahamas</option>
    <option value="Bahrain">Bahrain</option>
    <option value="Bangladesh">Bangladesh</option>
    <option value="Barbados">Barbados</option>
    <option value="Belarus">Belarus</option>
    <option value="Belgium">Belgium</option>
    <option value="Belize">Belize</option>
    <option value="Benin">Benin</option>
    <option value="Bermuda">Bermuda</option>
    <option value="Bhutan">Bhutan</option>
    <option value="Bolivia">Bolivia</option>
    <option value="Borneo">Borneo</option>
    <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
    <option value="Botswana">Botswana</option>
    <option value="Brazil">Brazil</option>
    <option value="Brunei">Brunei</option>
    <option value="Bulgaria">Bulgaria</option>
    <option value="Burkina Faso">Burkina 
      Faso</option>
    <option value="Burma">Burma</option>
    <option value="Burundi">Burundi</option>
    <option value="Cameroon">Cameroon</option>
    <option value="Cambodia">Cambodia</option>
    <option value="Cape Verde">Cape 
      Verde</option>
    <option value="Central African Rep">Central African 
      Republic</option>
    <option value="Chad">Chad</option>
    <option value="Chile">Chile</option>
    <option value="China">China</option>
    <option value="Cote d'Ivoire">Cote d'Ivoire</option>
    <option value="Colombia">Colombia</option>
    <option value="Comoros">Comoros</option>
    <option value="Congo, Democratic Republic of">Congo, Democratic Republic 
      of</option>
    <option value="Costa Rica, Republic of the">Costa Rica, 
      Republic of the</option>
    <option value="Croatia">Croatia</option>
    <option value="Cuba">Cuba</option>
    <option value="Cyprus">Cyprus</option>
    <option value="Czech Republic">Czech Republic</option>
    <option value="Denmark">Denmark</option>
    <option value="Djibouti">Djibouti</option>
    <option value="Dominica">Dominica</option>
    <option value="Dominican Republic">Dominican Republic</option>
    <option value="East Timor">East Timor</option>
    <option value="Ecuador">Ecuador</option>
    <option value="Egypt">Egypt</option>
    <option value="El Salvador">El Salvador</option>
    <option value="Equatorial Guinea">Equatorial Guinea</option>
    <option value="Eritrea">Eritrea</option>
    <option value="Estonia">Estonia</option>
    <option value="Ethiopia">Ethiopia</option>
    <option value="Fiji">Fiji</option>
    <option value="Finland">Finland</option>
    <option value="France">France</option>
    <option value="Gabon">Gabon</option>
    <option value="Gambia">Gambia</option>
    <option value="Georgia">Georgia</option>
    <option value="Germany">Germany</option>
    <option value="Ghana">Ghana</option>
    <option value="Gibraltar">Gibraltar</option>
    <option value="Greece">Greece</option>
    <option value="Greenland">Greenland</option>
    <option value="Grenada">Grenada</option>
    <option value="Guadeloupe">Guadeloupe</option>
    <option value="Guatemala">Guatemala</option>
    <option value="Guinea">Guinea</option>
    <option value="Guinea-Bissau">Guinea-Bissau</option>
    <option value="Guyana">Guyana</option>
    <option value="Haiti">Haiti</option>
    <option value="Honduras">Honduras</option>
    <option value="Hong Kong">Hong 
      Kong</option>
    <option value="Hungary">Hungary</option>
    <option value="Iceland">Iceland</option>
    <option value="India">India</option>
    <option value="Indonesia">Indonesia</option>
    <option value="Iran">Iran</option>
    <option value="Iraq">Iraq</option>
    <option value="Ireland">Ireland</option>
    <option value="Israel">Israel</option>
    <option value="Italy">Italy</option>
    <option value="Jamaica">Jamaica</option>
    <option value="Japan">Japan</option>
    <option value="Jordan">Jordan</option>
    <option value="Kazakhstan">Kazakhstan</option>
    <option value="Kenya">Kenya</option>
    <option value="Kiribati">Kiribati</option>
    <option value="Korea, North">Korea, North</option>
    <option value="Korea, South">Korea, South</option>
    <option value="Kosovo">Kosovo</option>
    <option value="Kuwait">Kuwait</option>
    <option value="Kyrgyzstan">Kyrgyzstan</option>
    <option value="Laos">Laos</option>
    <option value="Latvia">Latvia</option>
    <option value="Lebanon">Lebanon</option>
    <option value="Lesotho">Lesotho</option>
    <option value="Liberia">Liberia</option>
    <option value="Libya">Libya</option>
    <option value="Liechtenstein">Liechtenstein</option>
    <option value="Lithuania">Lithuania</option>
    <option value="Luxembourg">Luxembourg</option>
    <option value="Macedonia">Macedonia</option>
    <option value="Madagascar">Madagascar</option>
    <option value="Malawi">Malawi</option>
    <option value="Malaysia">Malaysia</option>
    <option value="Maldives">Maldives</option>
    <option value="Mali">Mali</option>
    <option value="Malta">Malta</option>
    <option value="Marshall Islands">Marshall Islands</option>
    <option value="Martinique">Martinique</option>
    <option value="Mauritania">Mauritania</option>
    <option value="Mauritius">Mauritius</option>
    <option value="Mexico">Mexico</option>
    <option value="Micronesia, Federated States of">Micronesia, Federated 
      States of</option>
    <option value="Moldova">Moldova</option>
    <option value="Monaco">Monaco</option>
    <option value="Mongolia">Mongolia</option>
    <option value="Montserrat">Montserrat</option>
    <option value="Morocco">Morocco</option>
    <option value="Mozambique">Mozambique</option>
    <option value="Namibia">Namibia</option>
    <option value="Naura">Naura</option>
    <option value="Nepal">Nepal</option>
    <option value="Netherlands">Netherlands</option>
    <option value="New Zealand">New 
      Zealand</option>
    <option value="Nicaragua">Nicaragua</option>
    <option value="Niger">Niger</option>
    <option value="Nigeria">Nigeria</option>
    <option value="Norway">Norway</option>
    <option value="Oman">Oman</option>
    <option value="Pakistan">Pakistan</option>
    <option value="Palau">Palau</option>
    <option value="Panama">Panama</option>
    <option value="Papua New Guinea">Papua New Guinea</option>
    <option value="Paraguay">Paraguay</option>
    <option value="Peru">Peru</option>
    <option value="Philippines">Philippines</option>
    <option value="Poland">Poland</option>
    <option value="Portugal">Portugal</option>
    <option value="Qatar">Qatar</option>
    <option value="Romania">Romania</option>
    <option value="Russia">Russia</option>
    <option value="Rwanda">Rwanda</option>
    <option value="Samoa">Samoa</option>
    <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
    <option value="Saint Lucia">Saint Lucia</option>
    <option value="Saint Vincent and Grenadines">Saint Vincent and 
      Grenadines</option>
    <option value="San Marino">San Marino</option>
    <option value="Sao Tome and Principe">Sao Tome and Principe</option>
    <option value="Saudi Arabia">Saudi Arabia</option>
    <option value="Senegal">Senegal</option>
    <option value="Seychelles">Seychelles</option>
    <option value="Sierra Leone">Sierra 
      Leone</option>
    <option value="Singapore">Singapore</option>
    <option value="Slovakia">Slovakia</option>
    <option value="Slovenia">Slovenia</option>
    <option value="Solomon Islands">Solomon 
      Islands</option>
    <option value="Somalia">Somalia</option>
    <option value="South Africa">South Africa</option>
    <option value="Spain">Spain</option>
    <option value="Sri Lanka">Sri Lanka</option>
    <option value="Sudan">Sudan</option>
    <option value="Suriname">Suriname</option>
    <option value="Swaziland">Swaziland</option>
    <option value="Sweden">Sweden</option>
    <option value="Switzerland">Switzerland</option>
    <option value="Syria">Syria</option>
    <option value="Taiwan">Taiwan</option>
    <option value="Tajikistan">Tajikistan</option>
    <option value="Tanzania">Tanzania</option>
    <option value="Thailand">Thailand</option>
    <option value="Togo">Togo</option>
    <option value="Tonga">Tonga</option>
    <option value="Trinidad and Tobago">Trinidad and Tobago</option>
    <option value="Tunisia">Tunisia</option>
    <option value="Turkey">Turkey</option>
    <option value="Turkmenistan">Turkmenistan</option>
    <option value="Tuvalu">Tuvalu</option>
    <option value="Uganda">Uganda</option>
    <option value="Ukraine">Ukraine</option>
    <option value="United Arab Emirates">United Arab Emirates</option>
    <option value="United Kingdom">United Kingdom</option>
    <option value="Uruguay">Uruguay</option>
    <option value="Uzbekistan">Uzbekistan</option>
    <option value="Vanuatu">Vanuatu</option>
    <option value="Vatican City">Vatican 
      City</option>
    <option value="Venezuela">Venezuela</option>
    <option value="Vietnam">Vietnam</option>
    <option value="Virgin Islands">Virgin 
      Islands</option>
    <option value="West Bank and Gaza">West Bank and 
      Gaza</option>
    <option value="Western Sahara">Western Sahara</option>
    <option value="Yemen">Yemen</option>
    <option value="Yugoslavia">Yugoslavia, 
      Federal Republic of</option>
    <option value="Zambia">Zambia</option>
    <option value="Zimbabwe">Zimbabwe</option>

EOH;
                        $country = str_replace("value=\"{$this->User['country']}\"", "value=\"{$this->User['country']}\" selected=\"selected\"", $country);
                        $state = <<<EOH

\t<option value="">--- Choose State ---</option>
\t<option value="NA">Outside USA</option>
\t<option value="AL">Alabama</option>
\t<option value="AK">Alaska</option>
\t<option value="AZ">Arizona</option>
\t<option value="AR">Arkansas</option>
\t<option value="CA">California</option>
\t<option value="CO">Colorado</option>
\t<option value="CT">Connecticut</option>
\t<option value="DE">Delaware</option>
\t<option value="DC">Dist of Columbia</option>
\t<option value="FL">Florida</option>
\t<option value="GA">Georgia</option>
\t<option value="HI">Hawaii</option>
\t<option value="ID">Idaho</option>
\t<option value="IL">Illinois</option>
\t<option value="IN">Indiana</option>
\t<option value="IA">Iowa</option>
\t<option value="KS">Kansas</option>
\t<option value="KY">Kentucky</option>
\t<option value="LA">Louisiana</option>
\t<option value="ME">Maine</option>
\t<option value="MD">Maryland</option>
\t<option value="MA">Massachusetts</option>
\t<option value="MI">Michigan</option>
\t<option value="MN">Minnesota</option>
\t<option value="MS">Mississippi</option>
\t<option value="MO">Missouri</option>
\t<option value="MT">Montana</option>
\t<option value="NE">Nebraska</option>
\t<option value="NV">Nevada</option>
\t<option value="NH">New Hampshire</option>
\t<option value="NJ">New Jersey</option>
\t<option value="NM">New Mexico</option>
\t<option value="NY">New York</option>
\t<option value="NC">North Carolina</option>
\t<option value="ND">North Dakota</option>
\t<option value="OH">Ohio</option>
\t<option value="OK">Oklahoma</option>
\t<option value="OR">Oregon</option>
\t<option value="PA">Pennsylvania</option>
\t<option value="RI">Rhode Island</option>
\t<option value="SC">South Carolina</option>
\t<option value="SD">South Dakota</option>
\t<option value="TN">Tennessee</option>
\t<option value="TX">Texas</option>
\t<option value="UT">Utah</option>
\t<option value="VT">Vermont</option>
\t<option value="VA">Virginia</option>
\t<option value="WA">Washington</option>
\t<option value="WV">West Virginia</option>
\t<option value="WI">Wisconsin</option>
\t<option value="WY">Wyoming</option>

EOH;
                        $state = str_replace("value=\"{$this->User['state']}\"", "value=\"{$this->User['state']}\" selected=\"selected\"", $state);
                        $this->Page->Content .= <<<EOH
\t\t\t\t\t
<center>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/">View Cart</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/information/">Information</a></strong>
\t</div>
\t<div class="style1" style="float: left;">
\t\t<strong><a href="{$this->Site->URL}/shop/cart/preview/">Preview</a></strong>
\t</div>
\t<div class="style1 active" style="float: left;">
\t\t<strong>Payment</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Review</strong>
\t</div>
\t<div class="style1 disabled" style="float: left;">
\t\t<strong>Complete</strong>
\t</div>
\t<div style="clear: both"></div>
</center>
<br /><br />

<center>
<form action="{$this->Site->URL}/shop/cart/review/" method="post">
\t<input type="hidden" name="paymentType" value="Sale" />

    <table cellspacing="5" cellpadding="0" border="0">
        <tr>
            <td><strong>Amount being charged:</strong></td>
            <td>\${$this->Session['amount']} USD</td>
        </tr>
        <tr>
            <td></td>
        </tr>
        <tr>
            <td><strong>First Name <span style="color: #FF0000">*</span></strong></td>
            <td><span id="sprytextfield1">
\t\t\t<input type="text" size="30" maxlength="32" name="user_first_name" value="{$this->User['first_name']}" />
\t\t\t<span class="textfieldRequiredMsg"><br /><br />A first name is required.</span></span></td>
        </tr>
        <tr>
            <td><strong>Last Name <span style="color: #FF0000">*</span></strong></td>
\t\t\t<td><span id="sprytextfield2">
\t\t\t<input type="text" size="30" maxlength="32" name="user_last_name" value="{$this->User['last_name']}" />
\t\t\t<span class="textfieldRequiredMsg"><br /><br />
\t\t\tA last name is required.</span></span></td>
        </tr>
        <tr>
            <td><strong>Card Type <span style="color: #FF0000">*</span></strong></td>
\t\t\t<td><span id="spryselect1">
\t\t\t<select name="creditCardType">
\t\t\t<option value="">--- Choose Card ---</option>
\t\t\t<option value="Visa">Visa</option>
\t\t\t<option value="MasterCard">MasterCard</option>
\t\t\t<option value="Discover">Discover</option>
\t\t\t<option value="Amex">American Express</option>
\t\t\t</select>
\t\t\t<span class="selectInvalidMsg"><br /><br />
\t\t\tPlease select a credit card type.</span>          <span class="selectRequiredMsg">Please select a card type.</span></span></td>
        </tr>
        <tr>
            <td><strong>Card Number <span style="color: #FF0000">*</span></strong></td>
\t\t\t<td><span id="sprytextfield3">
\t\t\t<input type="text" size="19" maxlength="19" name="creditCardNumber" value="" />
\t\t\t<span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid card format.</span></span></td>
\t\t</tr>
        <tr>
            <td><strong>Expiration Date <span style="color: #FF0000">*</span></strong></td>
            <td>
            \t<span id="spryselect2">
\t                <select name="expDateMonth">
\t                \t<option value="">--- Choose Month ---</option>
\t                    <option value="1">01</option>
\t                    <option value="2">02</option>
\t                    <option value="3">03</option>
\t                    <option value="4">04</option>
\t                    <option value="5">05</option>
\t                    <option value="6">06</option>
\t                    <option value="7">07</option>
\t                    <option value="8">08</option>
\t                    <option value="9">09</option>
\t                    <option value="10">10</option>
\t                    <option value="11">11</option>
\t                    <option value="12">12</option>
\t                </select>
\t                <span class="selectInvalidMsg">Please select a month.</span>
\t                <span class="selectRequiredMsg">Please select an item.</span>
\t\t\t\t</span>
\t\t\t\t<span id="spryselect3">
\t                <select name="expDateYear">
\t                \t<option value="">--- Choose Year ---</option>
\t                    <option value="2004">2004</option>
\t                    <option value="2005">2005</option>
\t                    <option value="2006">2006</option>
\t                    <option value="2007">2007</option>
\t                    <option value="2008">2008</option>
\t                    <option value="2009">2009</option>
\t                    <option value="2010">2010</option>
\t                    <option value="2011">2011</option>
\t                    <option value="2012">2012</option>
\t                    <option value="2013">2013</option>
\t                    <option value="2014">2014</option>
\t                    <option value="2015">2015</option>
\t                    <option value="2016">2016</option>
\t                    <option value="2017">2017</option>
\t                    <option value="2018">2018</option>
\t                </select>
\t                <span class="selectRequiredMsg">Please select a year.</span>
\t                <span class="selectInvalidMsg">Please select a year.</span>
                </span>
            </td>
        </tr>
        <tr>
            <td><strong>Card Verification Number <span style="color: #FF0000">*</span></strong></td>
\t\t\t<td>
\t\t\t<span id="sprytextfield4">
\t\t\t<input type="text" size="3" maxlength="4" name="cvv2Number" value="" />
\t\t\t<span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span>
\t\t\t</td>
        </tr>
        <tr>
            <td></td>
        </tr>
        <tr>
            <td><strong>Country <span style="color: #FF0000">*</span></strong></td>
            <td><span id="spryselect4"><select name="user_country">{$country}</select><span class="selectInvalidMsg">Please select a Country.</span>              <span class="selectRequiredMsg">Please select an item.</span></span></td>
        </tr>
        <tr>
            <td><strong>State <span style="color: #FF0000">*</span></strong></td>
            <td><span id="spryselect5"><select name="user_state">{$state}</select><span class="selectInvalidMsg"><br /><br />
            Please select a State.</span>            <span class="selectRequiredMsg">Please select an item.</span></span></td>
        </tr>
        <tr>
            <td><strong>City <span style="color: #FF0000">*</span></strong></td>
            <td><span id="sprytextfield5"><input type="text" size="25" maxlength="40" name="user_city" value="{$this->User['city']}" />
            <span class="textfieldRequiredMsg"><br /><br />A City is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></td>
        </tr>
        <tr>
            <td><strong>Street Address 1 <span style="color: #FF0000">*</span></strong></td>
            <td><span id="sprytextfield6"><input type="text" size="25" maxlength="100" name="user_street_1" value="{$this->User['street_1']}" /><span class="textfieldRequiredMsg"><br /><br />A delivery address is required.</span></span></td>
        </tr>
        <tr>
            <td><strong>Street Address 2</strong></td>
            <td><input type="text" size="25" maxlength="100" name="user_street_2" value="{$this->User['street_2']}" /></td>
        </tr>
        <tr>
            <td><strong>Postal Code <span style="color: #FF0000">*</span></strong></td>
            <td><span id="sprytextfield7"><input type="text" size="10" maxlength="10" name="user_postal_code" value="{$this->User['postal_code']}" />
            <span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Continue" class="submit" /></td>
        </tr>
    </table>
</form>
</center>

<script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {validateOn:["blur", "change"]});
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "none", {validateOn:["blur", "change"]});
var spryselect1 = new Spry.Widget.ValidationSelect("spryselect1", {invalidValue:"", validateOn:["change", "blur"]});
var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "credit_card", {useCharacterMasking:true, validateOn:["blur"], hint:""});
var spryselect2 = new Spry.Widget.ValidationSelect("spryselect2", {invalidValue:"", validateOn:["blur", "change"]});
var spryselect3 = new Spry.Widget.ValidationSelect("spryselect3", {invalidValue:"", validateOn:["blur", "change"]});
var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4", "integer", {validateOn:["blur", "change"], useCharacterMasking:true, hint:""});
var spryselect4 = new Spry.Widget.ValidationSelect("spryselect4", {invalidValue:"", validateOn:["blur", "change"]});
var spryselect5 = new Spry.Widget.ValidationSelect("spryselect5", {invalidValue:"", validateOn:["blur", "change"]});
var sprytextfield5 = new Spry.Widget.ValidationTextField("sprytextfield5", "custom", {validateOn:["blur", "change"]});
var sprytextfield6 = new Spry.Widget.ValidationTextField("sprytextfield6", "none", {validateOn:["blur", "change"]});
var sprytextfield7 = new Spry.Widget.ValidationTextField("sprytextfield7", "zip_code", {hint:"", validateOn:["blur"]});
//-->
</script>

EOH;
                    }
                }
                break;
            case "thanks":
                $this->Page->Content .= <<<EOH

<strong>Thank you for your payment!</strong>
<br /><br />
Your order number is {$this->Session['order_id']}. You should keep this number for future reference.
<br /><br />
If you have any questions about your order, please don't hesitate to <a href="{$this->Site->URL}/contact/">contact us</a>.
<br /><br />
<a href="{$this->Site->URL}/"><< Return to {$this->Site->Title}</a>

EOH;
                break;
            case "update":
                $this->Page->Title[] = "Update Cart";
                $this->Session->Cart = array();
                foreach ($this->Request->ID as $offset => $id) {
                    if (!$this->Request->Delete[$id]) {
                        for ($i = 0, $l = $this->Request->Quantity[$offset]; $i < $l; ++$i) {
                            $this->Session->Cart[] = $id;
                        }
                    }
                }
                $this->Page->Content = <<<EOH

<div class="success">Shopping cart updated. <a href="{$this->Site->URL}/">Continue shopping...</a></div>
<br />

EOH;
                $this->Session->Cart = implode(',', $this->Session->Cart);
            default:
                $this->Page->Title[] = "Shopping Cart";
                $this->Page->Content .= <<<EOH

<h2>Your Shopping Cart</h2> 
<br />

EOH;
                if (!$this->Session->Cart) {
                    $this->Page->Content .= <<<EOH

You have no items in your shopping cart. <a href="{$this->Site->URL}/">Continue shopping...</a>
\t
EOH;
                } else {
                    $items = explode(',', $this->Session->Cart);
                    $count = count($items);
                    $s = $count > 1 ? 's' : '';
                    $contents = array();
                    foreach ($items as $item) {
                        $contents[$item] = isset($contents[$item]) ? ++$contents[$item] : 1;
                    }
                    $this->Page->Content .= <<<EOH

You have {$count} item{$s} in your shopping cart. <a href="{$this->Site->URL}/">Continue shopping...</a>
<br /><br />

<br />
<h2>Your Choices</h2>
<form action="{$this->Site->URL}/shop/cart/update/" method="post">
\t<table class="style1" cellpadding="0" cellspacing="10">
\t\t<thead>
\t\t\t<tr>
\t\t\t<th align="center" style="width: 20%"><input type="checkbox" class="deleteAll" /> Remove</th>
\t\t\t<th style="width: 50%">Title</th>
\t\t\t<th align="right">Price</th>
\t\t\t<th align="right">Quantity</th>
\t\t\t<th align="right">Total</th>
\t\t\t</tr>
\t\t</thead>
\t\t<tbody>
\t
EOH;
                    $total = 0;
                    foreach ($contents as $id => $quantity) {
                        $query = "\n\t\t\t\t\t\t\t\tSELECT `product_pin`, `product_id`, `product_title`, `product_description`, `product_price`\n\t\t\t\t\t\t\t\tFROM `{$this->DB->Prefix}ecommerce_products` \n\t\t\t\t\t\t\t\tWHERE `product_id` = {$id} LIMIT 1";
                        if ($product = $this->DB->FetchRow($query, "slave")) {
                            $product_total = $product['product_price'] * $quantity;
                            $this->Page->Content .= <<<EOH

<tr>
\t<td align="center"><input type="hidden" value="{$product['product_id']}" name="id[]" /><input type="checkbox" value="{$product['product_id']}" name="delete[{$product['product_id']}]" /></td>
\t<td><a href="{$this->Site->URL}/shop/product/{$product['product_id']}/">{$product['product_title']} (#{$product['product_pin']})</a></td>
\t<td align="right">\${$product['product_price']}</td>
\t<td align="right"><input type="text" name="quantity[]" value="{$quantity}" size="1" maxlength="4" /></td>
\t<td align="right">\${$product_total}</td>
</tr>
\t\t\t\t\t\t\t\t
EOH;
                            $total += $product['product_price'] * $quantity;
                        }
                    }
                    $this->Page->Content .= <<<EOH

\t\t</tbody>
\t</table>
\t<span class="style1" style="float: right"><strong>Sub-total:</strong> \${$total}</span>
\t<br />
\t<a title="Update your choices" href="#" onclick="\$(this).parent('form:first').submit()"><img src="{$this->Site->URL}/modules/eCommerce/images/cart-update.gif"/></a>
</form>
<br /><br />
<div style="text-align:right">

EOH;
                    if ($settings['paypal_pro']) {
                        $this->Page->Content .= <<<EOH
\t\t\t\t\t\t
\t<form action="{$this->Site->URL}/shop/cart/information/" method="post">
\t\t<input type="hidden" name="paymentType" value="Sale">
\t\t
\t\t<input type="hidden" name="paymentAmount" size="5" maxlength="7" value="{$total}" />
\t\t<input type="hidden" name="currencyCodeType" value="USD" />
\t\t
\t\t<input type="hidden" name="type" value="pp_cc">
\t\t
\t\t<input type="image" name="submit" title="Checkout your choices" src="{$this->Site->URL}/modules/eCommerce/images/cart-checkout.gif" style="border: 0pt" />
\t</form>
\t<br />

EOH;
                    }
                    if ($settings['paypal_express']) {
                        $this->Page->Content .= <<<EOH
\t\t\t\t\t\t
\t<form action="{$this->Site->URL}/shop/cart/information/" method="post">
\t\t<input type="hidden" name="paymentType" value="Sale">
\t\t
\t\t<input type="hidden" name="paymentAmount" size="5" maxlength="7" value="{$total}" />
\t\t<input type="hidden" name="currencyCodeType" value="USD" />
\t\t
\t\t<input type="hidden" name="type" value="pp_express">
\t\t
\t\t<input type="image" name="submit" title="Checkout your choices" src="{$this->Site->URL}/modules/eCommerce/images/cart-checkout-paypal-express.gif" style="border: 0pt" />
\t</form>
\t<br />
\t
EOH;
                    }
                    if ($settings['paypal_basic']) {
                        $this->Page->Content .= <<<EOH
\t
\t<form action="{$this->Site->URL}/shop/cart/information/" method="post">
\t\t<input type="hidden" name="paymentType" value="Sale">
\t\t
\t\t<input type="hidden" name="paymentAmount" size="5" maxlength="7" value="{$total}" />
\t\t<input type="hidden" name="currencyCodeType" value="USD" />
\t\t
\t\t<input type="hidden" name="type" value="pp_basic">
\t\t
\t\t<input type="image" name="submit" title="Checkout your choices" src="{$this->Site->URL}/modules/eCommerce/images/cart-checkout-paypal-basic.gif" style="border: 0pt" />
\t</form>
\t<br />
\t
EOH;
                    }
                    $this->Page->Content .= <<<EOH
\t\t\t\t\t\t
</div>

<script type="text/javascript">
\tjQuery(document).ready(function(\$)
\t{
\t\t\$(".deleteAll").click(function()
\t\t{
\t\t\tvar self = this;
\t\t\t
\t\t\t\$(this).parents("table:first").find(":checkbox").each(function()
\t\t\t{
\t\t\t\tthis.checked = self.checked;
\t\t\t});
\t\t});
\t});
</script>

EOH;
                }
                break;
        }
    }
コード例 #3
0
ファイル: edit_template.php プロジェクト: ericmuyser/web2f
\t\t<a href="{$this->Site->URL}/admin/manage/" title="{$this->Lang['title_manage']}">{$this->Lang['title_manage']}</a> » 
\t\t<a href="{$this->Site->URL}/admin/manage/modules/" title="{$this->Lang['title_modules']}">{$this->Lang['title_modules']}</a> »  
\t\t<a href="{$this->Site->URL}/admin/manage/modules/configure/Mailer/" title="Configure Module">Configure Module</a> » 
\t\t<a href="{$this->Site->URL}/admin/manage/modules/configure/Mailer/templates/" title="Templates">Templates</a> » 
\t\t<a href="{$this->Page->RequestURL}" title="Edit Template">Edit Template</a>
\t</div>
</div>
\t
EOH;
if ($id = $this->Request['id']) {
    if ($this->Request['submit']) {
        $query = array();
        $query[] = "`template_name` = '" . addslashes(rawurldecode($this->Request['template_name'])) . "'";
        $query[] = "`template_title` = '" . addslashes(rawurldecode($this->Request['template_title'])) . "'";
        $query[] = "`template_content` = '" . addslashes(rawurldecode($this->Request['template_content'])) . "'";
        $query = "UPDATE `{$this->DB->Prefix}mailer_templates` \n\t\t\t\tSET " . fix_query(implode(",", $query)) . " \n\t\t\t\tWHERE `template_id` = " . $id;
        if (!$this->DB->Query($query, "master", false)) {
            $this->Session['message'] = 1;
        } else {
            $this->Session['message'] = 2;
        }
        $this->Redirect($this->Page->RequestURL);
    }
    $query = "SELECT `template_name`, `template_title`, `template_content`\n\t\t\tFROM `{$this->DB->Prefix}mailer_templates` \n\t\t\tWHERE `template_id` = {$id} \n\t\t\tLIMIT 1";
    if ($data = $this->DB->FetchRow($query, "slave")) {
        $data['template_content'] = str_replace("\n", "<br />", $data['template_content']);
        $data['template_content'] = stripslashes($data['template_content']);
        $data['template_title'] = stripslashes($data['template_title']);
        $data['template_name'] = stripslashes($data['template_name']);
        switch ($this->Session['message']) {
            case 1: